diff options
author | Gabor Kovesdan <gabor@FreeBSD.org> | 2013-02-05 09:14:34 +0000 |
---|---|---|
committer | Gabor Kovesdan <gabor@FreeBSD.org> | 2013-02-05 09:14:34 +0000 |
commit | a06603e1e8c43dac65e769d0577e15561dde3acb (patch) | |
tree | 56789ede4270141e038c244e602fe2503127b62f | |
parent | 5be98520031882d40220ca83d603138abb7ef89a (diff) | |
parent | fbf79ce9835e43f0e5de684052af39c914b817ab (diff) | |
download | doc-a06603e1e8c43dac65e769d0577e15561dde3acb.tar.gz doc-a06603e1e8c43dac65e769d0577e15561dde3acb.zip |
- MFH
Notes
Notes:
svn path=/projects/xml-tools/; revision=40889
601 files changed, 116531 insertions, 90837 deletions
diff --git a/bn_BD.ISO10646-1/articles/explaining-bsd/Makefile b/bn_BD.ISO10646-1/articles/explaining-bsd/Makefile index 815f5d9a8d..d83d4430f3 100644 --- a/bn_BD.ISO10646-1/articles/explaining-bsd/Makefile +++ b/bn_BD.ISO10646-1/articles/explaining-bsd/Makefile @@ -11,7 +11,7 @@ FORMATS?= html INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= -# SGML content +# XML content SRCS= article.xml DOC_PREFIX?= ${.CURDIR}/../../.. diff --git a/da_DK.ISO8859-1/htdocs/Makefile b/da_DK.ISO8859-1/htdocs/Makefile index ca4ae87349..105931eede 100644 --- a/da_DK.ISO8859-1/htdocs/Makefile +++ b/da_DK.ISO8859-1/htdocs/Makefile @@ -8,7 +8,7 @@ .endif # Subdirectories -# SGML +# XML .if !defined(WEB_ONLY) || empty(WEB_ONLY) SUBDIR= doc .endif diff --git a/de_DE.ISO8859-1/articles/Makefile b/de_DE.ISO8859-1/articles/Makefile index 34481504f0..7d45a87782 100644 --- a/de_DE.ISO8859-1/articles/Makefile +++ b/de_DE.ISO8859-1/articles/Makefile @@ -12,6 +12,7 @@ SUBDIR+= explaining-bsd SUBDIR+= laptop SUBDIR+= linux-comparison SUBDIR+= new-users +SUBDIR+= port-mentor-guidelines SUBDIR+= solid-state # ROOT_SYMLINKS+= new-users diff --git a/de_DE.ISO8859-1/articles/contributing-ports/article.xml b/de_DE.ISO8859-1/articles/contributing-ports/article.xml index f50e5e9543..585df8c56a 100644 --- a/de_DE.ISO8859-1/articles/contributing-ports/article.xml +++ b/de_DE.ISO8859-1/articles/contributing-ports/article.xml @@ -15,8 +15,8 @@ <title>Zur FreeBSD Ports-Sammlung beitragen</title> <abstract> - <para>Dieser Artikel beschreibt, wie man zur FreeBSD Ports-Sammlung - beitragen kann.</para> + <para>Dieser Artikel beschreibt, wie man zur FreeBSD + Ports-Sammlung beitragen kann.</para> <para><emphasis>Übersetzt von Martin Wilke</emphasis>.</para> </abstract> @@ -78,7 +78,8 @@ <listitem> <para>Finden Sie eine begehrte oder nützliche Software und <link - linkend="create-port">erstellen Sie einen Port</link>.</para> + linkend="create-port">erstellen Sie einen + Port</link>.</para> </listitem> <listitem> @@ -150,16 +151,17 @@ bedingte Abhängigkeiten, die nicht im Standard-Index <filename>INDEX</filename> zu finden sind. Wir erwarten, dass Sie in der Lage sind, solche Ports zu erkennen, indem Sie sich - die <filename>Makefile</filename>s anderer Ports ansehen.</para> - </sect2> + die <filename>Makefile</filename>s anderer Ports + ansehen.</para> </sect2> <sect2> <title>Wie man einen Port übernimmt</title> <para>Bitte vergewissern Sie sich, dass Sie die - <link linkend="maintain-port">Aufgaben eines Maintainers</link> - verstanden haben. Lesen Sie bitte auch das - <ulink url="&url.books.porters-handbook;">Porter-Handbuch</ulink>. + <link linkend="maintain-port">Aufgaben eines + Maintainers</link> verstanden haben. Lesen Sie bitte auch + das <ulink + url="&url.books.porters-handbook;">Porter-Handbuch</ulink>. <emphasis>Übernehmen Sie nicht mehr Aufgaben, als Sie bewältigen können</emphasis>.</para> @@ -168,23 +170,23 @@ Sie dazu bereit sind, setzen Sie <makevar>MAINTAINER</makevar> auf Ihre E-Mail-Adresse und reichen einen Problembericht (PR) mit den von Ihnen vorgenommenen Änderungen ein. Wenn beim - Kompilieren des Ports Fehler auftreten oder eine Aktualisierung - notwendig ist, können Sie derartige Änderungen dem - selben PR beifügen. Das ist sehr hilfreich, weil sich viele - Committer weigern, die Wartung eines Ports zu übergeben, + Kompilieren des Ports Fehler auftreten oder eine + Aktualisierung notwendig ist, können Sie derartige Änderungen + dem selben PR beifügen. Das ist sehr hilfreich, weil sich + viele Committer weigern, die Wartung eines Ports zu übergeben, wenn jemand nicht die nötige Erfahrung mit &os; vorweisen - kann. Das Einreichen von PRs, die Kompilierfehler beheben oder - Ports aktualisieren, ist der beste Weg, um Erfahrung zu + kann. Das Einreichen von PRs, die Kompilierfehler beheben + oder Ports aktualisieren, ist der beste Weg, um Erfahrung zu sammeln.</para> <para>Erstellen Sie Ihren PR mit der - <foreignphrase>category</foreignphrase> <literal>ports</literal> - und der <foreignphrase>class</foreignphrase> - <literal>change-request</literal>. Ein Committer wird - Ihren PR analysieren, die Änderungen committen und danach - den PR abschließen. Manchmal kann dieser Prozess eine - Weile dauern (auch Committer sind "nur" freiwillige - Helfer!).</para> + <foreignphrase>category</foreignphrase> + <literal>ports</literal> und der + <foreignphrase>class</foreignphrase> + <literal>change-request</literal>. Ein Committer wird Ihren + PR analysieren, die Änderungen committen und danach den PR + abschließen. Manchmal kann dieser Prozess eine Weile dauern + (auch Committer sind "nur" freiwillige Helfer!).</para> </sect2> </sect1> @@ -219,7 +221,8 @@ <itemizedlist> <listitem> <formalpara> - <title>Neue Software-Versionen und Aktualisierungen</title> + <title>Neue Software-Versionen und + Aktualisierungen</title> <para>Neue Versionen und Aktualisierung von bereits portierter Software werden kontinuierlich @@ -260,8 +263,8 @@ <para>Ein Teil der Aufgabe eines Maintainers ist es, Support zu leisten. Damit ist kein Hauptsupport für die Software gemeint (wir haben allerdings nichts - dagegen, wenn Sie sich dennoch entscheiden, dies zu tun). - Ihre Aufgabe ist aber, sich um &os;-spezifische + dagegen, wenn Sie sich dennoch entscheiden, dies zu + tun). Ihre Aufgabe ist aber, sich um &os;-spezifische Fragen zu Ihren Ports zu kümmern.</para> </formalpara> </listitem> @@ -271,11 +274,11 @@ <title>Bugs finden</title> <para>Eine Portierung könnte vielleicht von - &os;-spezifischen Bugs beeinflusst werden. In einem solchen - Fall ist es Ihre Aufgabe, den Fehler zu finden und zu - beheben. Daher sollten Sie Ihren Port umfassend testen, - um derartige Probleme zu entdecken, bevor Sie einen - Port in die Ports-Sammlung aufnehmen.</para> + &os;-spezifischen Bugs beeinflusst werden. In einem + solchen Fall ist es Ihre Aufgabe, den Fehler zu finden + und zu beheben. Daher sollten Sie Ihren Port umfassend + testen, um derartige Probleme zu entdecken, bevor Sie + einen Port in die Ports-Sammlung aufnehmen.</para> </formalpara> </listitem> @@ -284,10 +287,10 @@ <title>Änderungen an Ports, Infrastruktur und Lizenzen</title> - <para>Gelegentlich werden die Werkzeuge für das Bauen von Ports - erneuert oder es wird ein neuer Vorschlag zur - Infrastruktur der Ports-Sammlung gemacht. Sie sollten von - diesen Änderungen wissen, falls Ihre Ports betroffen + <para>Gelegentlich werden die Werkzeuge für das Bauen von + Ports erneuert oder es wird ein neuer Vorschlag zur + Infrastruktur der Ports-Sammlung gemacht. Sie sollten + von diesen Änderungen wissen, falls Ihre Ports betroffen sind und aktualisiert werden müssen.</para> </formalpara> </listitem> @@ -365,8 +368,8 @@ Architekturen, wie Sie können. Es kommt sehr häufig vor, dass ein Port auf einem Entwicklungszweig oder einer Plattform - funktioniert, auf einer anderen Plattform aber Fehler - erzeugt.</para> + funktioniert, auf einer anderen Plattform aber + Fehler erzeugt.</para> </listitem> <listitem> @@ -399,15 +402,15 @@ Port nicht den Bau eines anderen Ports verhindern. Ist dies der Fall, besprechen Sie die von Ihnen durchgeführten Änderungen mit den - Maintainern der betroffenen Ports. Dies ist besonders - dann wichtig, wenn Ihre Aktualisierung die - <quote>Shared Library</quote>-Version ändert; - in diesem Fall werden Sie für die abhängigen - Ports einen <makevar>PORTREVISION</makevar>-Bump - benötigen, damit diese von automatisierten Werkzeugen - wie <application>portmaster</application> oder - &man.portupgrade.1; auf dem neuesten Stand gehalten - werden.</para> + Maintainern der betroffenen Ports. Dies ist + besonders dann wichtig, wenn Ihre Aktualisierung die + <quote>Shared Library</quote>-Version ändert; in + diesem Fall werden Sie für die abhängigen Ports + einen <makevar>PORTREVISION</makevar>-Bump + benötigen, damit diese von automatisierten + Werkzeugen wie <application>portmaster</application> + oder &man.portupgrade.1; auf dem neuesten Stand + gehalten werden.</para> </listitem> </itemizedlist> </step> @@ -427,11 +430,11 @@ <note> <para>Bitte schicken Sie kein &man.shar.1;-Archiv des gesamten Ports. Benutzen Sie stattdessen - &man.diff.1; <literal>-ruN</literal>. Auf diese Art und - Weise können Committer viel einfacher erkennen, + &man.diff.1; <literal>-ruN</literal>. Auf diese Art + und Weise können Committer viel einfacher erkennen, welche Änderungen vorgenommen wurden. Das - Porter-Handbuch enthält viele nützliche - Informationen zum <ulink + Porter-Handbuch enthält viele nützliche Informationen + zum <ulink url="&url.books.porters-handbook;/port-upgrading.html">Upgrading</ulink> eines Ports.</para> </note> @@ -441,9 +444,9 @@ <title>Warten</title> <para>Es kann nur sehr wenig Zeit vergehen, bis sich ein - Committer mit Ihrem PR befasst. Es kann aber auch mehrere - Wochen dauern, bis eine Reaktion erfolgt - haben Sie bitte - Geduld.</para> + Committer mit Ihrem PR befasst. Es kann aber auch + mehrere Wochen dauern, bis eine Reaktion erfolgt - haben + Sie bitte Geduld.</para> </step> <step> @@ -472,8 +475,8 @@ <title>Stellen Sie sicher, dass Ihre Ports den Buildprozess weiterhin erfolgreich durchlaufen</title> - <para>Dieser Abschnitt beschreibt, wie Sie Probleme entdecken und - beheben, die ihre Ports daran hindern, den Buildprozess + <para>Dieser Abschnitt beschreibt, wie Sie Probleme entdecken + und beheben, die ihre Ports daran hindern, den Buildprozess erfolgreich zu durchlaufen.</para> <para>&os; garantiert nur für die @@ -490,11 +493,11 @@ <para>Seit die Mehrheit von &os;-Installationen auf PC-kompatiblen Maschinen arbeitet (<literal>i386</literal>-Architektur) erwarten wir, dass Ihr - Port auf dieser Architektur funktioniert. Ebenfalls bevorzugen - wir es, wenn Ports nativ auf der - <literal>amd64</literal>-Architektur funktionieren. Es ist durchaus - in Ordnung, um Hilfe zu fragen, wenn Sie keine solche Maschine - besitzen.</para> + Port auf dieser Architektur funktioniert. Ebenfalls + bevorzugen wir es, wenn Ports nativ auf der + <literal>amd64</literal>-Architektur funktionieren. Es ist + durchaus in Ordnung, um Hilfe zu fragen, wenn Sie keine + solche Maschine besitzen.</para> <note> <para>Häufige Fehler beim Umgang mit @@ -522,12 +525,12 @@ und den <ulink url="http://www.portscout.org">Distfiles-Scanner</ulink>, um festzustellen, ob einer Ihrer Ports nicht gebaut oder - die Distfiles nicht geladen werden können (lesen Sie - den Abschnitt <link linkend="resources">Ressourcen</link> + die Distfiles nicht geladen werden können (lesen Sie den + Abschnitt <link linkend="resources">Ressourcen</link> dieses Artikels für weitere Informationen zu diesen - Systemen). Fehlerberichte kommen eventuell auch - von anderen Benutzern oder als automatisierte Meldungen - per E-Mail.</para> + Systemen). Fehlerberichte kommen eventuell auch von + anderen Benutzern oder als automatisierte Meldungen per + E-Mail.</para> </step> <step> @@ -607,10 +610,10 @@ einen Port unter FreeBSD zum Laufen zu bekommen. Einige (aber nicht alle) Programmautoren nehmen diese Patches in Ihren Code für das nächste - Release auf. Dies kann den Benutzern anderer BSD-Systeme - helfen und einiges an unnötiger Mehrarbeit ersparen. - Bitte betrachten Sie das Versenden von verwertbaren - Patches an die Autoren als ein Gebot der + Release auf. Dies kann den Benutzern anderer + BSD-Systeme helfen und einiges an unnötiger Mehrarbeit + ersparen. Bitte betrachten Sie das Versenden von + verwertbaren Patches an die Autoren als ein Gebot der Höflichkeit.</para> </step> </procedure> @@ -626,8 +629,8 @@ entdecken ist oft sehr schwierig, glücklicherweise sind derartige Probleme aber nicht sehr häufig.</para> - <para>Folgende Schritte sind notwendig, um sicherzustellen, dass - ihr Port weiterhin wie gewünscht funktioniert:</para> + <para>Folgende Schritte sind notwendig, um sicherzustellen, + dass ihr Port weiterhin wie gewünscht funktioniert:</para> <procedure> <step> @@ -645,9 +648,10 @@ dass Sie noch etwas Zeit brauchen, bevor Sie den PR bearbeiten können.</para> - <para>Sollten Sie nicht innerhalb von 14 Tagen geantwortet haben, - darf jeder Committer via <literal>maintainer-timeout</literal> - auf einen PR, den Sie nicht beantwortet haben, reagieren.</para> + <para>Sollten Sie nicht innerhalb von 14 Tagen geantwortet + haben, darf jeder Committer via + <literal>maintainer-timeout</literal> auf einen PR, den + Sie nicht beantwortet haben, reagieren.</para> </step> <step> @@ -665,8 +669,8 @@ <itemizedlist> <listitem> - <para>Eine genaue Beschreibung dessen, was Er/Sie getan - hat, den erwarteten Programmverlauf und den + <para>Eine genaue Beschreibung dessen, was Er/Sie + getan hat, den erwarteten Programmverlauf und den tatsächlichen Ablauf.</para> </listitem> @@ -695,14 +699,14 @@ <step> <title>Schließen Sie falsche Reports aus</title> - <para>Einige Fehlerberichte sind eventuell falsch. Es kommt - vor, dass ein Programm falsch benutzt wird. Weiterhin - können installierten Pakete veraltet sein und - müssten einfach nur aktualisiert werden. Manchmal - ist ein gemeldeter Fehler auch nicht &os;-spezifisch. In + <para>Einige Fehlerberichte sind eventuell falsch. Es + kommt vor, dass ein Programm falsch benutzt wird. + Weiterhin können installierten Pakete veraltet sein und + müssten einfach nur aktualisiert werden. Manchmal ist + ein gemeldeter Fehler auch nicht &os;-spezifisch. In diesem Fall melden Sie den Fehler den derzeitigen - Entwicklern der Software. Wenn Sie in der Lage sind, den - Fehler zu beheben, können Sie dies natürlich + Entwicklern der Software. Wenn Sie in der Lage sind, + den Fehler zu beheben, können Sie dies natürlich trotzdem tun und den Entwicklern Ihren Patch zukommen lassen.</para> </step> @@ -746,13 +750,13 @@ <para>Manchmal müssen Sie eventuell ihre diplomatischen Fähigkeiten auffrischen und Benutzer freundlich an die korrekten Anlaufstellen für den Hauptsupport verweisen. - Nur selten werden Sie auf eine Person treffen, die Sie fragt, - warum die <literal>RPM</literal>s nicht aktuell sind oder wie - Sie die Software unter <literal>Foo Linux</literal> zum Laufen - bringen. Ergreifen Sie die Gelegenheit und berichten Sie, - dass Ihr Port aktuell ist (natürlich nur, wenn er es auch - tatsächlich ist) und schlagen Sie vor, einmal &os; - auszuprobieren.</para> + Nur selten werden Sie auf eine Person treffen, die Sie + fragt, warum die <literal>RPM</literal>s nicht aktuell sind + oder wie Sie die Software unter <literal>Foo Linux</literal> + zum Laufen bringen. Ergreifen Sie die Gelegenheit und + berichten Sie, dass Ihr Port aktuell ist (natürlich nur, + wenn er es auch tatsächlich ist) und schlagen Sie vor, + einmal &os; auszuprobieren.</para> <para>Wenn Sie Glück haben, werden Benutzer und Entwickler gelegentlich daran denken, dass Sie eine sehr @@ -763,7 +767,8 @@ <itemizedlist> <listitem> - <para>Einen PR einreichen oder Ihnen Patches schicken.</para> + <para>Einen PR einreichen oder Ihnen Patches + schicken.</para> </listitem> <listitem> @@ -849,9 +854,10 @@ <para>In jedem Fall behält sich das Ports Management Team (<literal>portmgr</literal>) das Recht vor, Ihnen den Maintainer-Status abzuerkennen, wenn Sie für längere - Zeit nicht aktiv sind (derzeit liegt diese Grenze bei drei Monaten). - Damit ist gemeint, dass ungelöste Probleme oder ausstehende - Aktualisierungen in diesem Zeitraum nicht bearbeitet wurden.</para> + Zeit nicht aktiv sind (derzeit liegt diese Grenze bei drei + Monaten). Damit ist gemeint, dass ungelöste Probleme oder + ausstehende Aktualisierungen in diesem Zeitraum nicht bearbeitet + wurden.</para> </sect1> <sect1 id="resources"> @@ -859,8 +865,8 @@ <para>Das <ulink url="&url.books.porters-handbook;">Porter-Handbuch</ulink> - ist Ihr <quote>Ratgeber zum Ports-System</quote> und sollte stets - in Ihrer Reichweite sein!</para> + ist Ihr <quote>Ratgeber zum Ports-System</quote> und sollte + stets in Ihrer Reichweite sein!</para> <para>Der Artikel <ulink url="&url.articles.problem-reports.en;">Writing FreeBSD Problem @@ -889,8 +895,8 @@ müssten.</para> <para>Der <ulink url="http://www.portscout.org">&os; Ports - Distfile-Scanner</ulink> kann Ihnen die Ports anzeigen, deren Distfiles - nicht erreichbar sind. Sie können damit Ihre eigenen + Distfile-Scanner</ulink> kann Ihnen die Ports anzeigen, deren + Distfiles nicht erreichbar sind. Sie können damit Ihre eigenen Ports prüfen oder auch herauszufinden, ob die <makevar>MASTER_SITES</makevar>-Einträge bestimmter Ports nicht mehr aktuell sind.</para> diff --git a/de_DE.ISO8859-1/articles/contributing/article.xml b/de_DE.ISO8859-1/articles/contributing/article.xml index a280edf3c2..6993c696dd 100644 --- a/de_DE.ISO8859-1/articles/contributing/article.xml +++ b/de_DE.ISO8859-1/articles/contributing/article.xml @@ -65,23 +65,23 @@ <para>Das FreeBSD-Projekt ist für ein komplettes Betriebssytem verantwortlich, nicht nur für einen Kernel oder ein paar verstreute Werkzeuge. Daher umfasst unsere - <filename>TODO</filename>-Liste viele verschiedene Aufgabenbereiche: - Angefangen von der Dokumentation, über Betatests und - Präsentationen bis zu Systeminstallationen und speziellen + <filename>TODO</filename>-Liste viele verschiedene + Aufgabenbereiche: Angefangen von der Dokumentation, über Betatests + und Präsentationen bis zu Systeminstallationen und speziellen Weiterentwicklungen des Kernels. Da Fähigkeiten in den verschiedensten Bereichen benötigt werden, kann fast jeder etwas zu diesem Projekt beitragen.</para> - <para>Personen, die im kommerziellen Umfeld mit FreeBSD zu tun haben, - sind ebenfalls aufgefordert, sich bei uns zu melden. Brauchen Sie - eine spezielle Erweiterung, damit Ihr Produkt funktioniert? Wir - kommen Ihren Wünschen gerne entgegen, vorausgesetzt, sie sind - nicht zu speziell. Arbeiten Sie an einem Mehrwertprodukt? Dann - informieren Sie uns bitte! Wir könnten in der Lage sein, an - einem Teil davon mitzuarbeiten. Die Welt der freien Software - fordert viele bestehenden Annahmen über die Entwicklung, den - Verkauf und die Wartung von Software heraus, und wir bitten Sie, - ernsthaft darüber nachzudenken.</para> + <para>Personen, die im kommerziellen Umfeld mit FreeBSD zu tun + haben, sind ebenfalls aufgefordert, sich bei uns zu melden. + Brauchen Sie eine spezielle Erweiterung, damit Ihr Produkt + funktioniert? Wir kommen Ihren Wünschen gerne entgegen, + vorausgesetzt, sie sind nicht zu speziell. Arbeiten Sie an einem + Mehrwertprodukt? Dann informieren Sie uns bitte! Wir könnten in + der Lage sein, an einem Teil davon mitzuarbeiten. Die Welt der + freien Software fordert viele bestehenden Annahmen über die + Entwicklung, den Verkauf und die Wartung von Software heraus, und + wir bitten Sie, ernsthaft darüber nachzudenken.</para> <sect1 id="contrib-what"> <title>Was wird gebraucht?</title> @@ -95,10 +95,10 @@ <title>Aufgaben für Nicht-Programmierer</title> <para>Viele Menschen, die an FreeBSD beteiligt sind, sind keine - Programmierer. Es sind Leute, die an der Dokumentation arbeiten, - Internetseiten erstellen oder einfach Hilfe anbieten. Alles, was - diese Leute mitbringen müssen, sind Zeit und die - Bereitschaft, etwas zu lernen.</para> + Programmierer. Es sind Leute, die an der Dokumentation + arbeiten, Internetseiten erstellen oder einfach Hilfe + anbieten. Alles, was diese Leute mitbringen müssen, sind Zeit + und die Bereitschaft, etwas zu lernen.</para> <orderedlist> <listitem> @@ -111,10 +111,10 @@ </listitem> <listitem> - <para>Helfen Sie dabei, die Dokumentation in Ihre Muttersprache - zu übersetzen. Wenn an der Übersetzung in Ihre - Sprache bereits gearbeitet wird, helfen Sie, indem Sie - weitere Dokumente übersetzen, oder sorgen Sie dafür, + <para>Helfen Sie dabei, die Dokumentation in Ihre + Muttersprache zu übersetzen. Wenn an der Übersetzung in + Ihre Sprache bereits gearbeitet wird, helfen Sie, indem + Sie weitere Dokumente übersetzen, oder sorgen Sie dafür, dass die Übersetzungen aktuell sind. Lesen Sie zuerst die <ulink url="&url.books.fdp-primer;/translations.html"> Übersetzungs-FAQ</ulink> der Fibel für neue @@ -178,7 +178,8 @@ <listitem> <para>Verschieben Sie beigetragene Software im Quellcodebaum - nach <filename class="directory">src/contrib</filename>.</para> + nach <filename + class="directory">src/contrib</filename>.</para> </listitem> <listitem> @@ -203,8 +204,8 @@ <listitem> <para>Wenn Sie einen Port beigetragen und dabei irgendwelche &os;-spezifischen Änderungen getätigt haben, senden Sie - Ihre Patches an die ursprünglichen Autoren (das wird ihr Leben - einfacher machen, wenn die nächste Version des Ports + Ihre Patches an die ursprünglichen Autoren (das wird ihr + Leben einfacher machen, wenn die nächste Version des Ports erscheint).</para> </listitem> @@ -213,13 +214,13 @@ &posix;. Als Ausgangspunkt für Ihre Suche können Sie die Seite des <ulink url="&url.base;/projects/c99/index.html">FreeBSD - C99 & POSIX Standards Conformance Project</ulink> verwenden. - Vergleichen Sie das Verhalten von FreeBSD mit dem von dem - jeweiligen Standard geforderten Verhalten. Verhält - sich FreeBSD in einem Bereich unterschiedlich, sollten Sie - einen Problembericht (PR) einsenden. Wenn Sie dazu in der - Lage sind, können Sie sich auch eine Lösung des - Problems überlegen und Ihrem PR einen Patch + C99 & POSIX Standards Conformance Project</ulink> + verwenden. Vergleichen Sie das Verhalten von FreeBSD mit + dem von dem jeweiligen Standard geforderten Verhalten. + Verhält sich FreeBSD in einem Bereich unterschiedlich, + sollten Sie einen Problembericht (PR) einsenden. Wenn Sie + dazu in der Lage sind, können Sie sich auch eine Lösung + des Problems überlegen und Ihrem PR einen Patch anfügen. Wenn Sie der Meinung sind, dass der Standard nicht korrekt ist, können Sie auch das jeweilige Standardgremium um weitere Informationen bitten.</para> @@ -243,9 +244,9 @@ Problemberichte und Verbesserungswüsche, die von Anwendern eingereicht wurden. Die PR-Datenbank enthält sowohl Aufgaben für Programmierer als auch für - Nichtprogrammierer. Gehen Sie die Liste der offenen PRs durch, - um festzustellen, ob Sie ein Problem interessiert. Bei manchen - Berichten geht es nur darum, zu überprüfen, ob der + Nichtprogrammierer. Gehen Sie die Liste der offenen PRs + durch, um festzustellen, ob Sie ein Problem interessiert. Bei + manchen Berichten geht es nur darum, zu überprüfen, ob der bereitgestellte Patch korrekt funktioniert. Andere Problemberichte sind hingegen komplexer, oder beinhalten überhaupt keinen Lösungsvorschlag.</para> @@ -255,8 +256,8 @@ bereits jemandem zugewiesen, nehmen Sie mit dem dafür Zuständigen Kontakt auf und fragen Sie ihn, ob Sie an der Lösung mitarbeiten können — es könnte - etwa bereits ein Patch existieren, der nur noch getestet werden - muss, oder Sie könnten weitere Ideen mit ihm + etwa bereits ein Patch existieren, der nur noch getestet + werden muss, oder Sie könnten weitere Ideen mit ihm diskutieren.</para> </sect2> @@ -269,8 +270,8 @@ für Freiwillige interessant, die etwas zum &os; Projekt beitragen möchten. Diese Liste wird regelmäßig aktualisiert und enthält Einträge für Programmierer - und Nicht-Programmierer sowie Informationen zu jedem Projekt.</para> - </sect2> + und Nicht-Programmierer sowie Informationen zu jedem + Projekt.</para> </sect2> </sect1> <sect1 id="contrib-how"> @@ -297,25 +298,26 @@ &man.send-pr.1; oder dessen <ulink url="&url.base;/de/send-pr.html">Internetschnittstelle</ulink> zu erstellen. Versuchen Sie bitte, jedes Feld auszufüllen. - Ist Ihr Patch kleiner als 65 KB, sollten Sie ihn direkt in - den Bericht einbauen. Kann der Patch direkt auf den Quellcodebaum - angewendet werden, fügen Sie <literal>[PATCH]</literal> - im Synopsis-Feld ein. Wenn Sie einen Patch einfügen, - verwenden Sie bitte <emphasis>kein copy-and-paste</emphasis>, - weil dadurch Tabulatoren in Leerzeichen umgewandelt werden, was - den Patch unbrauchbar macht. Sind die Patches viel größer - als 20 KB, sollten Sie sie komprimieren (z.B. mit &man.gzip.1; - oder &man.bzip2.1;) und &man.uuencode.1; verwenden, um diese in ihren - Problembericht einzufügen.</para> - - <para>Nachdem Sie einen Bericht versandt haben, erhalten Sie eine - E-Mail, die eine Bestätigung sowie eine + Ist Ihr Patch kleiner als 65 KB, sollten Sie ihn direkt + in den Bericht einbauen. Kann der Patch direkt auf den + Quellcodebaum angewendet werden, fügen Sie + <literal>[PATCH]</literal> im Synopsis-Feld ein. Wenn Sie + einen Patch einfügen, verwenden Sie bitte <emphasis>kein + copy-and-paste</emphasis>, weil dadurch Tabulatoren in + Leerzeichen umgewandelt werden, was den Patch unbrauchbar + macht. Sind die Patches viel größer als 20 KB, sollten + Sie sie komprimieren (z.B. mit &man.gzip.1; oder + &man.bzip2.1;) und &man.uuencode.1; verwenden, um diese in + ihren Problembericht einzufügen.</para> + + <para>Nachdem Sie einen Bericht versandt haben, erhalten Sie + eine E-Mail, die eine Bestätigung sowie eine Identifikationsnummer enthält. Geben Sie diese Nummer im - Betreff der Nachricht an (<literal>"Re: kern/3377"</literal>), - wenn Sie neue Informationen zu diesem Problem an - &a.bugfollowup; senden. - Zusätzliche Informationen zu Problemberichten sollten immer - auf diese Art und Weise verschickt werden.</para> + Betreff der Nachricht an (<literal>"Re: + kern/3377"</literal>), wenn Sie neue Informationen zu diesem + Problem an &a.bugfollowup; senden. Zusätzliche Informationen + zu Problemberichten sollten immer auf diese Art und Weise + verschickt werden.</para> <para>Sollten Sie innerhalb einer Woche keine Bestätigung erhalten, oder &man.send-pr.1; nicht verwenden können, @@ -422,7 +424,8 @@ wir sind aber manchmal nicht in der Lage, das Problem sofort anzugehen. Es verbleibt aber in der PR-Datenbank, bis wir dafür Zeit finden. Verwenden Sie den Begriff - <literal>[PATCH]</literal> im Synopsis-Feld des Berichts.</para> + <literal>[PATCH]</literal> im Synopsis-Feld des + Berichts.</para> <indexterm> <primary><command>uuencode</command></primary> @@ -487,19 +490,19 @@ <indexterm><primary>GNU General Public License</primary></indexterm> - <para>Der GNU General Public License, oder <quote>GPL</quote>. - Diese Lizenz ist nicht ganz so beliebt bei uns, da sie - die kommerzielle Nutzung des Quellcodes einschränkt. - In Anbetracht der schieren Menge an GPL-Quellcode, den - wir derzeit benötigen (wie Compiler, Assembler oder - Textformatierer) wären wir aber schlecht beraten, - Beiträge, die unter dieser Lizenz stehen, abzulehnen. - Code, der unter der GPL steht, befindet sich in einem - gesonderten Bereich des Quellcodebaums, und zwar unter - <filename class="directory">/sys/gnu</filename> oder - <filename class="directory">/usr/src/gnu</filename>, und ist daher - für jeden, für den die GPL ein Problem darstellt, sofort - erkennbar.</para> + <para>Der GNU General Public License, oder + <quote>GPL</quote>. Diese Lizenz ist nicht ganz so + beliebt bei uns, da sie die kommerzielle Nutzung des + Quellcodes einschränkt. In Anbetracht der schieren Menge + an GPL-Quellcode, den wir derzeit benötigen (wie Compiler, + Assembler oder Textformatierer) wären wir aber schlecht + beraten, Beiträge, die unter dieser Lizenz stehen, + abzulehnen. Code, der unter der GPL steht, befindet sich + in einem gesonderten Bereich des Quellcodebaums, und zwar + unter <filename class="directory">/sys/gnu</filename> oder + <filename class="directory">/usr/src/gnu</filename>, und + ist daher für jeden, für den die GPL ein Problem + darstellt, sofort erkennbar.</para> </listitem> </orderedlist> @@ -588,10 +591,9 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. <para>Für weitere Informationen zur FreeBSD Foundation sollten Sie den Artikel <ulink url="http://people.FreeBSD.org/~jdp/foundation/announcement.html"> - The FreeBSD Foundation -- an Introduction</ulink> lesen. Sie - erreichen die FreeBSD Foundation über die - E-Mail-Adresse <email>bod@FreeBSDFoundation.org</email>.</para> - </sect3> + The FreeBSD Foundation -- an Introduction</ulink> lesen. + Sie erreichen die FreeBSD Foundation über die E-Mail-Adresse + <email>bod@FreeBSDFoundation.org</email>.</para> </sect3> <sect3> <title>Hardwarespenden</title> @@ -610,12 +612,11 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. <para>Wir sind ständig auf der Suche nach neuen FTP-, WWW- oder <command>cvsup</command>-Spiegeln. Wenn Sie einen - solchen Spiegel einrichten wollen, lesen Sie bitte den Artikel - <ulink - url="&url.articles.hubs.en;/index.html">Mirroring FreeBSD</ulink>, - der weitere Informationen enthält.</para> + solchen Spiegel einrichten wollen, lesen Sie bitte den + Artikel <ulink + url="&url.articles.hubs.en;/index.html">Mirroring + FreeBSD</ulink>, der weitere Informationen enthält.</para> </sect3> </sect2> </sect1> - </article> diff --git a/de_DE.ISO8859-1/articles/explaining-bsd/article.xml b/de_DE.ISO8859-1/articles/explaining-bsd/article.xml index a0b735ecc6..d383c634cf 100644 --- a/de_DE.ISO8859-1/articles/explaining-bsd/article.xml +++ b/de_DE.ISO8859-1/articles/explaining-bsd/article.xml @@ -50,14 +50,14 @@ url="http://www.leb.net/hzo/ioscount/data/r.9904.txt">Internet Operating System Counter</ulink> liefen im April 1999 weltweit 31,3 Prozent der vernetzten Rechner unter Linux, - 14,6 Prozent liefen hingegen unter BSD &unix;. Einige - der weltweit größten Internetdienstleister, darunter - <ulink url="http://www.yahoo.com/">Yahoo!</ulink>, verwenden BSD. - Der im Jahre 1999 weltgrößte FTP-Server <ulink - url="ftp://ftp.cdrom.com/">ftp.cdrom.com</ulink> (inzwischen - abgeschaltet) verwendete BSD, um täglich 1,4 Terabyte - an Daten zu übertragen. Hier geht es offensichtlich nicht - um einen Nischenmarkt, BSD ist vielmehr ein gut gehütetes + 14,6 Prozent liefen hingegen unter BSD &unix;. + Einige der weltweit größten Internetdienstleister, darunter + <ulink url="http://www.yahoo.com/">Yahoo!</ulink>, verwenden + BSD. Der im Jahre 1999 weltgrößte FTP-Server <ulink + url="ftp://ftp.cdrom.com/">ftp.cdrom.com</ulink> (inzwischen + abgeschaltet) verwendete BSD, um täglich 1,4 Terabyte an + Daten zu übertragen. Hier geht es offensichtlich nicht um + einen Nischenmarkt, BSD ist vielmehr ein gut gehütetes Geheimnis.</para> <para>Worin besteht nun dieses Geheimnis? Warum ist BSD nicht @@ -81,8 +81,8 @@ entwickeltes &unix; Betriebssystem gedacht. Verschiedene Open Source-Projekte beruhen auf dieser, als 4.4BSD-Lite bekannten Quellcodeausgabe. In dieser Ausgabe sind auch - Softwarepakete anderer Open Source-Projekte, insbesondere jene des - GNU-Projekts, enthalten. Das komplette Betriebssystem + Softwarepakete anderer Open Source-Projekte, insbesondere jene + des GNU-Projekts, enthalten. Das komplette Betriebssystem umfasst:</para> <itemizedlist> @@ -153,21 +153,23 @@ <para>Es stimmt, dass AT&T &unix; kein Open Source ist. Im Sinne des Copyright ist BSD daher eindeutig <emphasis>kein</emphasis> &unix;. Andererseits fügte - AT&T aber Quellcode von anderen Projekten in den eigenen Code - ein, insbesondere jenen der Computer Sciences Research Group (CSRG) - der University of California in Berkeley, CA. Im Jahr 1976 - begann die CSRG damit, Bänder ihrer Software zu vertreiben, - die sie <emphasis>Berkeley Software Distribution</emphasis> oder - <emphasis>BSD</emphasis> nannten.</para> + AT&T aber Quellcode von anderen Projekten in den eigenen + Code ein, insbesondere jenen der Computer Sciences Research + Group (CSRG) der University of California in Berkeley, CA. Im + Jahr 1976 begann die CSRG damit, Bänder ihrer Software zu + vertreiben, die sie <emphasis>Berkeley Software + Distribution</emphasis> oder <emphasis>BSD</emphasis> + nannten.</para> <para>Anfangs wurden vor allem Anwendungen veröffentlicht. Das änderte sich schlagartig, als die CSRG von der Advanced Research Projects Agency (DARPA) den Auftrag bekam, deren Kommunikationsprotokolle (ARPANET) zu überarbeiten. Die - neuen Protokolle wurden als <emphasis>Internet Protocols</emphasis> - bezeichnet, und wurden später als <emphasis>TCP/IP</emphasis> - weltbekannt. Die erste Implementierung dieser Protokolle erfolgte - 1982 als Teil von 4.2BSD.</para> + neuen Protokolle wurden als <emphasis>Internet + Protocols</emphasis> bezeichnet, und wurden später als + <emphasis>TCP/IP</emphasis> weltbekannt. Die erste + Implementierung dieser Protokolle erfolgte 1982 als Teil von + 4.2BSD.</para> <para>Im Laufe der 80er Jahre entstanden einige neue Firmen, die Workstations vertrieben. Viele zogen es vor, &unix; zu @@ -243,8 +245,9 @@ <listitem> <para>BSD-Entwickler sind vielleicht erfahrener als Linux-Entwickler, und haben deshalb weniger Interesse daran, - die Benutzung des Systems einfacher zu gestalten. Einsteiger - sind bei Linux wahrscheinlich besser aufgehoben.</para> + die Benutzung des Systems einfacher zu gestalten. + Einsteiger sind bei Linux wahrscheinlich besser + aufgehoben.</para> </listitem> <listitem> @@ -254,8 +257,8 @@ urheberrechtlich geschützten AT&T Code. Zwar kam es 1994 zu einer außergerichtlichen Einigung, die Leute waren aber erst einmal verunsichert. Noch im März 2000 - behauptete ein im Web publizierter Artikel, das Verfahren sei - erst <quote>kürzlich</quote> eingestellt worden.</para> + behauptete ein im Web publizierter Artikel, das Verfahren + sei erst <quote>kürzlich</quote> eingestellt worden.</para> <para>Bezüglich der Bezeichnung schaffte der Gerichtsprozess jedoch Klarheit: In den 80er Jahren war @@ -312,12 +315,12 @@ weiterentwickelt. Jedes Projekt unterhält einen öffentlich zugänglichen <emphasis>Quellcode-Baum</emphasis>, der mit dem <ulink - url="http://www.cvshome.org/">Concurrent Versions System</ulink> - (CVS) verwaltet wird, und alle Quellen des Projekts, die - Dokumentation und andere notwendige Dateien enthält. - CVS erlaubt es Anwendern, jede gewünschte Version des - Systems <quote>auszuchecken</quote> (mit anderen Worten, eine - Kopie des System zu erhalten).</para> + url="http://www.cvshome.org/">Concurrent Versions + System</ulink> (CVS) verwaltet wird, und alle Quellen des + Projekts, die Dokumentation und andere notwendige Dateien + enthält. CVS erlaubt es Anwendern, jede gewünschte Version + des Systems <quote>auszuchecken</quote> (mit anderen Worten, + eine Kopie des System zu erhalten).</para> <para>Eine Vielzahl von Entwicklern trägt weltweit zur Verbesserung von BSD bei. Dabei werden drei Typen @@ -328,8 +331,8 @@ <para>Ein <firstterm>Contributor</firstterm> schreibt Code oder Dokumentationen. Ihm ist es nicht gestattet, seinen Beitrag direkt in den Quellbaum einfließen zu lassen. - Bevor dieser Code in das System eingebracht wird, muss er von - einem registrierten Entwickler, dem + Bevor dieser Code in das System eingebracht wird, muss er + von einem registrierten Entwickler, dem <emphasis>Committer</emphasis> geprüft werden.</para> </listitem> @@ -348,13 +351,13 @@ könnte etwa typografische oder grammatikalische Korrekturen ohne lange Diskussion durchführen. Auf der anderen Seite sollten Änderungen mit weitreichenden - Konsequenzen vor dem Commit zur Begutachtung bereitgestellt - werden. Im Extremfall kann ein Mitglied des Core Teams, das - als Principal Architect fungiert, sogar die Entfernung der - Änderung aus dem Quellcodebaum veranlassen. Dieser - Vorgang wird als <firstterm>backing out</firstterm> - bezeichnet. Alle Committer werden durch eine E-Mail - über die erfolgte Änderung informiert. Es ist + Konsequenzen vor dem Commit zur Begutachtung + bereitgestellt werden. Im Extremfall kann ein Mitglied + des Core Teams, das als Principal Architect fungiert, + sogar die Entfernung der Änderung aus dem Quellcodebaum + veranlassen. Dieser Vorgang wird als <firstterm>backing + out</firstterm> bezeichnet. Alle Committer werden durch + eine E-Mail über die erfolgte Änderung informiert. Es ist daher nicht möglich, heimlich eine Änderung durchzuführen.</para> </listitem> @@ -396,11 +399,11 @@ <listitem> <para>BSD-Projekte pflegen das komplette - <quote>Betriebssystem</quote>, nicht nur den Kernel. Dieser - Unterschied ist aber marginal, da weder BSD noch Linux ohne - Anwendungsprogramme sinnvoll einsetzbar sind. Die unter BSD - eingesetzten Applikationen sind oft identisch mit denen - von Linux.</para> + <quote>Betriebssystem</quote>, nicht nur den Kernel. + Dieser Unterschied ist aber marginal, da weder BSD noch + Linux ohne Anwendungsprogramme sinnvoll einsetzbar sind. + Die unter BSD eingesetzten Applikationen sind oft + identisch mit denen von Linux.</para> </listitem> <listitem> @@ -408,8 +411,8 @@ werden muss, ist die Entwicklung übersichtlicher, und es ist möglich, auf jede beliebige Version einer Datei zuzugreifen. CVS ermöglicht auch inkrementelle Updates: - Das FreeBSD-Repository wird beispielsweise etwa 100 Mal pro - Tag verändert. Viele dieser Änderungen betreffen + Das FreeBSD-Repository wird beispielsweise etwa 100 Mal + pro Tag verändert. Viele dieser Änderungen betreffen aber nur einen relativen kleinen Bereich von FreeBSD.</para> </listitem> </orderedlist> @@ -427,16 +430,15 @@ <orderedlist> <listitem> <para>Die Entwicklerversion hat das Suffix - <firstterm>CURRENT</firstterm>. FreeBSD weist diesem Suffix - eine Nummer zu, z.B. FreeBSD 5.0-CURRENT. NetBSD verwendet - ein etwas anderes Bezeichnungsschema und hängt als - Suffix nur einen Buchstaben an die Versionsnummer an, der - Änderungen an den internen Schnittstellen anzeigt, z.B. - NetBSD 1.4.3G. OpenBSD weist der Entwicklerversion keine - Nummer zu, sie heißt also einfach - <quote>OpenBSD-current</quote>. - Neue Entwicklungen werden zuerst in diesen Zweig - eingefügt.</para> + <firstterm>CURRENT</firstterm>. FreeBSD weist diesem + Suffix eine Nummer zu, z.B. FreeBSD 5.0-CURRENT. NetBSD + verwendet ein etwas anderes Bezeichnungsschema und hängt + als Suffix nur einen Buchstaben an die Versionsnummer an, + der Änderungen an den internen Schnittstellen anzeigt, + z.B. NetBSD 1.4.3G. OpenBSD weist der Entwicklerversion + keine Nummer zu, sie heißt also einfach + <quote>OpenBSD-current</quote>. Neue Entwicklungen werden + zuerst in diesen Zweig eingefügt.</para> </listitem> <listitem> @@ -446,22 +448,22 @@ veröffentlicht, die dann beispielsweise als OpenBSD 2.6-RELEASE oder NetBSD 1.4-RELEASE bezeichnet wird. Diese sind sowohl auf CD-ROM - als auch als freier Download von den FTP-Servern der Projekte - erhältlich. Diese RELEASE-Versionen sind für + als auch als freier Download von den FTP-Servern der + Projekte erhältlich. Diese RELEASE-Versionen sind für Endbenutzer gedacht. NetBSD verwendet sogar eine dritte - Ziffer, um gepatchte Releases zu kennzeichnen - (etwa NetBSD 1.4.2).</para> + Ziffer, um gepatchte Releases zu kennzeichnen (etwa NetBSD + 1.4.2).</para> </listitem> <listitem> - <para>Sobald Fehler in einer RELEASE-Version gefunden werden, - werden diese beseitigt und in den CVS-Baum eingefügt. - Beim FreeBSD-Projekt wird die daraus resultierende Version - als <firstterm>STABLE</firstterm> bezeichnet, während - sie bei NetBSD und OpenBSD weiterhin RELEASE heißt. - Kleinere Änderungen, die sich nach einer Testphase im - CURRENT-Zweig als stabil erweisen, können ebenfalls - in die STABLE-Version einfließen.</para> + <para>Sobald Fehler in einer RELEASE-Version gefunden + werden, werden diese beseitigt und in den CVS-Baum + eingefügt. Beim FreeBSD-Projekt wird die daraus + resultierende Version als <firstterm>STABLE</firstterm> + bezeichnet, während sie bei NetBSD und OpenBSD weiterhin + RELEASE heißt. Kleinere Änderungen, die sich nach einer + Testphase im CURRENT-Zweig als stabil erweisen, können + ebenfalls in die STABLE-Version einfließen.</para> </listitem> </orderedlist> @@ -484,8 +486,8 @@ <sect2> <title>Welche BSD-Versionen gibt es überhaupt?</title> - <para>Im Gegensatz zu den zahlreichen Linux-Distributionen gibt es - nur vier große frei verfügbare BSDs. Jedes BSD-Projekt + <para>Im Gegensatz zu den zahlreichen Linux-Distributionen gibt + es nur vier große frei verfügbare BSDs. Jedes BSD-Projekt unterhält seinen eigenen Quellcode-Baum und seinen eigenen Kernel. In der Praxis scheinen die Unterschiede im Code der Anwenderprogramme aber geringer zu sein als bei Linux.</para> @@ -494,7 +496,6 @@ genau zu trennen, da die Unterschiede eher subtiler Natur sind:</para> - <itemizedlist> <listitem> <para>FreeBSD will eine hohe Leistung erreichen, für @@ -513,11 +514,11 @@ <listitem> <para>Bei NetBSD ist Portabilität das oberste Ziel: <quote>Natürlich läuft NetBSD darauf</quote>. - NetBSD kann auf vielen verschiedenen Systemen, von Palmtops - bis hin zu großen Servern, installiert werden, und - wurde sogar schon im Raumfahrtprogramm der NASA eingesetzt. - Besonders für alte Nicht-&intel;-Plattformen ist NetBSD - die erste Wahl.</para> + NetBSD kann auf vielen verschiedenen Systemen, von + Palmtops bis hin zu großen Servern, installiert werden, + und wurde sogar schon im Raumfahrtprogramm der NASA + eingesetzt. Besonders für alte Nicht-&intel;-Plattformen + ist NetBSD die erste Wahl.</para> </listitem> <listitem> @@ -534,12 +535,12 @@ <listitem> <para>Das Ziel von DragonFlyBSD ist eine hohe Leistung und - Skalierbarkeit auf allen Systemen, vom Einzelplatzrechner bis - hin zu riesigen Cluster-Systemen. DragonFlyBSD verfolgt dabei - langfristig verschiedene technische Ziele, der Schwerpunkt der - Entwicklung liegt aber auf der Bereitstellung einer - SMP-fähigen Infrastruktur, die leicht zu verstehen, zu - warten und weiterzuentwickeln ist.</para> + Skalierbarkeit auf allen Systemen, vom Einzelplatzrechner + bis hin zu riesigen Cluster-Systemen. DragonFlyBSD + verfolgt dabei langfristig verschiedene technische Ziele, + der Schwerpunkt der Entwicklung liegt aber auf der + Bereitstellung einer SMP-fähigen Infrastruktur, die leicht + zu verstehen, zu warten und weiterzuentwickeln ist.</para> </listitem> </itemizedlist> @@ -553,12 +554,12 @@ Betriebssystem. Es war zwar nicht Open Source, Quellcode-Lizenzen konnten aber relativ günstig erworben werden. Es wies viele Gemeinsamkeiten mit - FreeBSD auf. Zwei Jahre, nachdem BSDi von Wind River Systems - übernommen worden war, wurde die Entwicklung von BSD/OS - als eigenständiges Produkt eingestellt. Zwar wird BSD/OS - von Wind River noch unterstützt, eine aktive Weiterentwicklung - erfolgt allerdings nur noch für das Embedded-Betriebssystem - VxWorks.</para> + FreeBSD auf. Zwei Jahre, nachdem BSDi von Wind River + Systems übernommen worden war, wurde die Entwicklung von + BSD/OS als eigenständiges Produkt eingestellt. Zwar wird + BSD/OS von Wind River noch unterstützt, eine aktive + Weiterentwicklung erfolgt allerdings nur noch für das + Embedded-Betriebssystem VxWorks.</para> </listitem> <listitem> @@ -609,10 +610,11 @@ ermöglicht. Dieses Paket enthält zwei Dinge: Kernelmodifikationen zur korrekten Ausführung von Linux-Systemaufrufen sowie Linuxkompatibilitätsdateien, - beispielsweise die C-Bibliothek von Linux. Unterschiede in der - Ausführungsgeschwindigkeit von Linuxanwendungen auf einem + beispielsweise die C-Bibliothek von Linux. Unterschiede in + der Ausführungsgeschwindigkeit von Linuxanwendungen auf einem Linuxrechner und einem vergleichbaren mit BSD ausgestatteten - Rechner sind in der Praxis so gut wie nicht feststellbar.</para> + Rechner sind in der Praxis so gut wie nicht + feststellbar.</para> <para>Die <quote>Alles-aus-einer-Hand</quote>-Natur von BSD hat den Vorteil, dass Upgrades im Vergleich zu Linux häufig @@ -643,12 +645,11 @@ <listitem> <para>BSD-Systeme, inbesondere FreeBSD, können eine - weitaus bessere Leistung als Linux-Systeme aufweisen. Diese - Aussage ist aber nicht allgemein gültig. In den - meisten Fällen sind die Leistungsunterschiede aber - gering oder gar nicht festzustellen. In bestimmten - Fällen kann auch Linux eine bessere Leistung - aufweisen.</para> + weitaus bessere Leistung als Linux-Systeme aufweisen. + Diese Aussage ist aber nicht allgemein gültig. In den + meisten Fällen sind die Leistungsunterschiede aber gering + oder gar nicht festzustellen. In bestimmten Fällen kann + auch Linux eine bessere Leistung aufweisen.</para> </listitem> <listitem> @@ -693,8 +694,10 @@ <para>Darüber hinaus finden sich auf den folgenden Seiten der einzelnen Projekte Firmen, die Supportleistungen anbieten: - <ulink url="&url.base;/commercial/consult_bycat.html">FreeBSD</ulink>, - <ulink url="http://www.netbsd.org/gallery/consultants.html">NetBSD</ulink>, + <ulink + url="&url.base;/commercial/consult_bycat.html">FreeBSD</ulink>, + <ulink + url="http://www.netbsd.org/gallery/consultants.html">NetBSD</ulink>, und <ulink url="http://www.openbsd.org/support.html">OpenBSD</ulink>.</para> </sect2> </sect1> diff --git a/de_DE.ISO8859-1/articles/laptop/article.xml b/de_DE.ISO8859-1/articles/laptop/article.xml index bb9a958631..8c8c2de164 100644 --- a/de_DE.ISO8859-1/articles/laptop/article.xml +++ b/de_DE.ISO8859-1/articles/laptop/article.xml @@ -38,24 +38,24 @@ </articleinfo> <para>FreeBSD wird oft für ein reines Server-Betriebssystem - gehalten, obwohl es auch auf Desktoprechnern sehr gut einsetzbar ist. - Falls Sie es auf einem Notebook einsetzen möchten, können - Sie auch hier die Vorzüge von FreeBSD nutzen: Ein - systematisches und stringentes Layout, einfache Administration und + gehalten, obwohl es auch auf Desktoprechnern sehr gut einsetzbar + ist. Falls Sie es auf einem Notebook einsetzen möchten, können + Sie auch hier die Vorzüge von FreeBSD nutzen: Ein systematisches + und stringentes Layout, einfache Administration und Aktualisierung, das Ports- und Packagesystem für die - Softwareinstallation und vieles andere mehr. Weitere Vorzüge, - wie lange Laufzeiten, Netzwerkperformance und gute Performance unter - hoher Last sind natürlich auf einem Notebookrechner nicht ganz - so wichtig. Auf Notebookrechnern können aber während der + Softwareinstallation und vieles andere mehr. Weitere Vorzüge, wie + lange Laufzeiten, Netzwerkperformance und gute Performance unter + hoher Last sind natürlich auf einem Notebookrechner nicht ganz so + wichtig. Auf Notebookrechnern können aber während der Installation Probleme auftreten, die bei Desktoprechnern nicht existieren und die daher hier diskutiert werden (Notebooks sind - – anders als Desktoprechner – oft auf µsoft.windows; - abgestimmt). In diesem Artikel sollen solche Probleme angesprochen - werden. Einige Leute haben Ihre Erfahrungen mit dem Betrieb von - &os; auf Notebooks auf eigenen Webseiten veröffentlicht, die - nicht Teil der &os;-Dokumentation sind. Wenn Sie den Namen Ihres - Notebooks zusammen mit <quote>&os;</quote> in der Suchmaschine - Ihrer Wahl eingeben, ist es gut möglich, dass Sie + – anders als Desktoprechner – oft auf + µsoft.windows; abgestimmt). In diesem Artikel sollen solche + Probleme angesprochen werden. Einige Leute haben Ihre Erfahrungen + mit dem Betrieb von &os; auf Notebooks auf eigenen Webseiten + veröffentlicht, die nicht Teil der &os;-Dokumentation sind. Wenn + Sie den Namen Ihres Notebooks zusammen mit <quote>&os;</quote> in + der Suchmaschine Ihrer Wahl eingeben, ist es gut möglich, dass Sie Informationen finden, die Ihnen weiterhelfen. Zusätzlich existiert eine &os;-spezifische Online-Datenbank unter <ulink url="http://laptop.bsdgroup.de/freebsd/">The &os; Laptop @@ -80,12 +80,13 @@ <para>Lesen Sie das Handbuch Ihres Notebooks, um herauszufinden, welche Grafikkarte (oder welcher Grafikchip) eingebaut wurde. Danach überprüfen Sie die - <application>&xorg;</application>-Dokumentation, um festzustellen, - ob Ihre Grafikkarte unterstützt wird. Ist dies nicht der - Fall, verwenden Sie einen allgemeinen Treiber. Versuchen Sie - nicht, einfach einen Treiber mit einem ähnlichen Namen zu - verwenden. Mit <userinput>Xorg -configure</userinput> lassen sich - viele Konfigurationsparameter automatisch einstellen.</para> + <application>&xorg;</application>-Dokumentation, um + festzustellen, ob Ihre Grafikkarte unterstützt wird. Ist dies + nicht der Fall, verwenden Sie einen allgemeinen Treiber. + Versuchen Sie nicht, einfach einen Treiber mit einem ähnlichen + Namen zu verwenden. Mit <userinput>Xorg -configure</userinput> + lassen sich viele Konfigurationsparameter automatisch + einstellen.</para> <para>Manchmal verursacht auch die Konfiguration des Displays Probleme. Die verfügbaren &xorg;-Ressourcen @@ -95,12 +96,11 @@ und Sie müssen keine Modelines angeben, da die einfache Angabe von horizontaler und vertikalen Wiederholrate ausreicht. Reichen diese Angaben nicht aus, sollten Sie im Internet nach - Seiten suchen, die sich mit der Konfiguration von X auf Notebooks - beschäftigen (diese beziehen sich zwar oft auf Linux, da - allerdings sowohl &os; als auch Linux &xorg; verwenden, spielt - dies keine Rolle). Von dort können Sie sich eine - Modeline kopieren, die für ähnliche Hardware - gültig ist.</para> + Seiten suchen, die sich mit der Konfiguration von X auf + Notebooks beschäftigen (diese beziehen sich zwar oft auf Linux, + da allerdings sowohl &os; als auch Linux &xorg; verwenden, + spielt dies keine Rolle). Von dort können Sie sich eine + Modeline kopieren, die für ähnliche Hardware gültig ist.</para> <para>Die meisten Notebooks haben zwei Maustasten, die unter X nur selten Probleme verursachen (abgesehen von der mittleren @@ -127,13 +127,13 @@ bereitzustellen). Besitzt Ihr Modem beispielsweise einen Lucent LT-Chipsatz, wird dieser wahrscheinlich vom <filename role="package">comms/ltmdm</filename>-Port - unterstützt. Hat Ihr Notebook aber ein - <quote>Winmodem</quote> eingebaut, müssen Sie sich ein - externes Modem kaufen: Die kompakteste Lösung sind hier - PCMCIA-Modems, die weiter unten besprochen werden. Serielle oder - über USB angeschlossene Modems sind aber deutlich billiger. - In der Regel sollten <quote>normale</quote> Modems (so genannte - Non-Winmodems) problemlos funktionieren.</para> + unterstützt. Hat Ihr Notebook aber ein <quote>Winmodem</quote> + eingebaut, müssen Sie sich ein externes Modem kaufen: Die + kompakteste Lösung sind hier PCMCIA-Modems, die weiter unten + besprochen werden. Serielle oder über USB angeschlossene Modems + sind aber deutlich billiger. In der Regel sollten + <quote>normale</quote> Modems (so genannte Non-Winmodems) + problemlos funktionieren.</para> </sect1> <sect1 id="pcmcia"> @@ -143,29 +143,29 @@ PC-Card-Slots. Diese werden von FreeBSD sehr gut unterstützt. Verwenden Sie &man.dmesg.8;, um festzustellen, ob die PCMCIA-Geräte beim Systemstart korrekt erkannt wurden. - Ist dies der Fall, sollten Einträge ähnlich den - folgenden auftauchen: <devicename>pccard0</devicename>, + Ist dies der Fall, sollten Einträge ähnlich den folgenden + auftauchen: <devicename>pccard0</devicename>, <devicename>pccard1</devicename> sowie Geräte wie <devicename>pcic0</devicename>.</para> <para>&os; 4.X unterstützt nur 16-Bit PCMCIA-Karten, &os; 5.X unterstützt sowohl 16-Bit-Karten als auch - 32-Bit-Karten. Eine Liste der unterstützten Karten finden - Sie in <filename>/etc/defaults/pccard.conf</filename>. Kaufen - Sie möglichst nur Karten, die in dieser Liste aufgeführt - sind. Ist Ihre Karte nicht aufgeführt, kann sie aber - trotzdem funktionieren, da die meisten 16-Bit-Modems trotzdem - unterstützt werden, vorausgesetzt, es handelt sich nicht um + 32-Bit-Karten. Eine Liste der unterstützten Karten finden Sie + in <filename>/etc/defaults/pccard.conf</filename>. Kaufen Sie + möglichst nur Karten, die in dieser Liste aufgeführt sind. Ist + Ihre Karte nicht aufgeführt, kann sie aber trotzdem + funktionieren, da die meisten 16-Bit-Modems trotzdem unterstützt + werden, vorausgesetzt, es handelt sich nicht um <quote>Winmodems</quote> (diese gibt es auch bei PCMCIA-Karten, sie sollten daher beim Kauf der Karte aufpassen). Sollte Ihre Karte als generisches Modem (<foreignphrase>generic - modem</foreignphrase>) erkannt werden, müssen Sie daran - denken, dass in der Defaultkonfiguration von + modem</foreignphrase>) erkannt werden, müssen Sie daran denken, + dass in der Defaultkonfiguration von <filename>pccard.conf</filename> eine Verzögerung von 10 Sekunden angegeben ist (dies verhindert das Einfrieren bestimmter Modems). Für Ihr Modem kann dieser Eintrag - überflüssig sein, Sie sollten daher versuchen, die Zeit - zu reduzieren oder die Zeile komplett zu entfernen.</para> + überflüssig sein, Sie sollten daher versuchen, die Zeit zu + reduzieren oder die Zeile komplett zu entfernen.</para> <para>Einige Abschnitte der Datei <filename>pccard.conf</filename> müssen angepasst werden. Prüfen Sie die Zeile, in der @@ -261,20 +261,20 @@ dass nur einige oder keiner dieser Befehle funktionieren.</para> - <para>Vielleicht können Sie den Suspend-/Standby-Modus - nur auf der Konsole aktivieren, aber nicht unter X - (dann bleibe der Bildschirm nach dem Reaktivieren dunkel). - Seit &os; 5.X könnte eine Lösung darin bestehen, - die Zeile <literal>options SC_NO_SUSPEND_VTYSWITCH</literal> in - die Kernel-Konfigurationsdatei aufzunehmen und den Kernel - neu zu kompilieren. Eine andere Lösung wäre es, vor - dem &man.apm.8;-Aufruf in den Konsolen-Modus zu wechseln, indem + <para>Vielleicht können Sie den Suspend-/Standby-Modus nur auf + der Konsole aktivieren, aber nicht unter X (dann bleibe der + Bildschirm nach dem Reaktivieren dunkel). Seit &os; 5.X + könnte eine Lösung darin bestehen, die Zeile <literal>options + SC_NO_SUSPEND_VTYSWITCH</literal> in die + Kernel-Konfigurationsdatei aufzunehmen und den Kernel neu zu + kompilieren. Eine andere Lösung wäre es, vor dem + &man.apm.8;-Aufruf in den Konsolen-Modus zu wechseln, indem die Tastenkombination <keycombo action="simul"><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo> - oder eine andere Funktionstaste gedrückt wird. Dieser - Vorgang kann mit &man.apmd.8; automatisiert werden, falls der - &man.apmd.8;-Daemon läuft. Dazu fügen Sie die - folgenden Abschnitte in <filename>/etc/apmd.conf</filename> + oder eine andere Funktionstaste gedrückt wird. Dieser Vorgang + kann mit &man.apmd.8; automatisiert werden, falls der + &man.apmd.8;-Daemon läuft. Dazu fügen Sie die folgenden + Abschnitte in <filename>/etc/apmd.conf</filename> ein:</para> <programlisting>apm_event SUSPENDREQ { @@ -312,13 +312,13 @@ apm_event NORMRESUME, STANDBYRESUME { kann sogar so weit kommen, dass &os; auf manchen Notebooks nicht startet, wenn ACPI aktiviert ist.</para> - <para>Sollte ACPI auf Ihrem Notebook Probleme verursachen, sollten - Sie prüfen, ob der Hersteller Ihres Notebooks eine neuere - BIOS-Version bereitstellt, in der die ACPI-Fehler behoben sind. - Da die ACPI-Implementierung von &os; sich noch im - Entwicklungsstatus befindet, könnten Sie auch Ihr System - aktualisieren. Die Chancen stehen gut, dass sich Ihre Probleme - damit beheben lassen.</para> + <para>Sollte ACPI auf Ihrem Notebook Probleme verursachen, + sollten Sie prüfen, ob der Hersteller Ihres Notebooks eine + neuere BIOS-Version bereitstellt, in der die ACPI-Fehler + behoben sind. Da die ACPI-Implementierung von &os; sich noch + im Entwicklungsstatus befindet, könnten Sie auch Ihr System + aktualisieren. Die Chancen stehen gut, dass sich Ihre + Probleme damit beheben lassen.</para> <para>Möchten Sie ACPI abschalten, bearbeiten Sie die Zeile <literal>hint.acpi.0.disabled="1"</literal> in diff --git a/de_DE.ISO8859-1/articles/linux-comparison/article.xml b/de_DE.ISO8859-1/articles/linux-comparison/article.xml index fcec49289c..0670e959bd 100644 --- a/de_DE.ISO8859-1/articles/linux-comparison/article.xml +++ b/de_DE.ISO8859-1/articles/linux-comparison/article.xml @@ -84,30 +84,29 @@ Copyright (c) 2005 Dru Lavigne <sect1 id="introduction"> <title>Einleitung</title> - <para>&os; ist ein &unix;-ähnliches Betriebssystem, das auf - der + <para>&os; ist ein &unix;-ähnliches Betriebssystem, das auf der Berkeley Software Distribution (<acronym>BSD</acronym>) - basiert. Während &os; und &linux; häufig als sehr - ähnlich empfunden werden, gibt es doch Unterschiede:</para> + basiert. Während &os; und &linux; häufig als sehr ähnlich + empfunden werden, gibt es doch Unterschiede:</para> <orderedlist> <listitem> <para>&linux; selbst ist ein Kernel. Distributionen (z.B. Red Hat, Debian, SUSE) stellen dem Benutzer ein - Installationswerkzeug und Programme zur Verfügung. Auf - der &linux;-Projektseite befindet sich eine <ulink + Installationswerkzeug und Programme zur Verfügung. Auf der + &linux;-Projektseite befindet sich eine <ulink url="http://www.linux.org/dist/">Auflistung verschiedener Distributionen</ulink> mit mehr als 300 Einträgen. - Während dem Benutzer ein Höchstmaß an - Flexibilität geboten wird, erhöht das Bestehen - dieser Vielzahl an Distributionen auch die Schwierigkeit, - die eigenen Kenntnisse von einer Distribution auf eine - andere zu übertragen. Distributionen unterscheiden sich - nicht nur in der Einfachheit der Installation und der zur - Verfügung stehenden Programme, sie unterscheiden sich - auch in der Verzeichnisstruktur, in den verfügbaren - Shells und Window Managern sowie in den Vorgehensweisen - bei der Installation und Aktualisierung von Software.</para> + Während dem Benutzer ein Höchstmaß an Flexibilität geboten + wird, erhöht das Bestehen dieser Vielzahl an Distributionen + auch die Schwierigkeit, die eigenen Kenntnisse von einer + Distribution auf eine andere zu übertragen. Distributionen + unterscheiden sich nicht nur in der Einfachheit der + Installation und der zur Verfügung stehenden Programme, sie + unterscheiden sich auch in der Verzeichnisstruktur, in den + verfügbaren Shells und Window Managern sowie in den + Vorgehensweisen bei der Installation und Aktualisierung von + Software.</para> <para>&os; ist ein komplettes Betriebssystem (Kernel und Userland) mit einem hoch angesehenem Erbe, das bis in die @@ -121,38 +120,36 @@ Copyright (c) 2005 Dru Lavigne zurückreicht. Da der Kernel und die bereitgestellten Programme unter der Aufsicht desselben Release Engineering Teams stehen, ist die - Wahrscheinlichkeit gering, dass Inkompatibilitäten - zwischen Bibliotheken auftreten. Mit Sicherheitslücken - kann sich das Security Team zeitnah befassen. Wenn neue - Programm- oder Kernel-Funktionen hinzugefügt werden, - braucht der Benutzer nur die Release Notes lesen, die - auf der <ulink url="&url.base;/">&os;-Projektseite</ulink> + Wahrscheinlichkeit gering, dass Inkompatibilitäten zwischen + Bibliotheken auftreten. Mit Sicherheitslücken kann sich das + Security Team zeitnah befassen. Wenn neue Programm- + oder Kernel-Funktionen hinzugefügt werden, braucht der + Benutzer nur die Release Notes lesen, die auf der + <ulink url="&url.base;/">&os;-Projektseite</ulink> veröffentlicht werden.</para> </listitem> <listitem> - <para>&os; verfügt über eine großen und gut - organisierten Entwicklerstamm, der gewährleistet, dass - Änderungen auf schnelle und geregelte Art und Weise - durchgeführt werden. Dazu gehören mehrere tausend - Entwickler, die regelmäßig Code beisteuern, von - denen jedoch nur etwa 300 ein sogenanntes Commit Bit - besitzen, das es ihnen erlaubt, direkt Änderungen am - Kernel, den Programmen und der offiziellen Dokumentation - durchzuführen. Das Release Engineering Team - ist zuständig für die Qualitätssicherung und - das Security Team für die Behandlung von - Sicherheitsproblemen. Des Weiteren existiert eine + <para>&os; verfügt über eine großen und gut organisierten + Entwicklerstamm, der gewährleistet, dass Änderungen auf + schnelle und geregelte Art und Weise durchgeführt werden. + Dazu gehören mehrere tausend Entwickler, die regelmäßig Code + beisteuern, von denen jedoch nur etwa 300 ein sogenanntes + Commit Bit besitzen, das es ihnen erlaubt, direkt + Änderungen am Kernel, den Programmen und der offiziellen + Dokumentation durchzuführen. Das + Release Engineering Team ist zuständig für die + Qualitätssicherung und das Security Team für die Behandlung + von Sicherheitsproblemen. Des Weiteren existiert eine gewählte Core Group, die aus 8 Senior Committern besteht und die Gesamtleitung des Projekts übernimmt.</para> - <para>Im Gegensatz dazu müssen Änderungen am - &linux;-Kernel erst vom Kernel Source Maintainer - Linus Torvalds bewilligt werden. Wie Änderungen an - Distributionen erfolgen, kann von Projekt zu Projekt stark - variieren und ist abhängig von der Größe des - jeweiligen Entwicklerstamms sowie dessen + <para>Im Gegensatz dazu müssen Änderungen am &linux;-Kernel + erst vom Kernel Source Maintainer Linus Torvalds + bewilligt werden. Wie Änderungen an Distributionen erfolgen, + kann von Projekt zu Projekt stark variieren und ist abhängig + von der Größe des jeweiligen Entwicklerstamms sowie dessen Organisation.</para> </listitem> @@ -186,7 +183,7 @@ Copyright (c) 2005 Dru Lavigne und BSDL</ulink>, ohne Partei zu beziehen.</para> </footnote> - . Stabilen und sicheren Code unter die BSD-Lizenz zu stellen + Stabilen und sicheren Code unter die BSD-Lizenz zu stellen ermöglicht, dass viele Betriebssysteme wie <ulink url="http://developer.apple.com/opensource/">Mac OS X</ulink> auf &os;-Code basieren. Daneben bedeutet die Nutzung von @@ -268,8 +265,8 @@ Copyright (c) 2005 Dru Lavigne zur einfachen Installation bereit <footnote> - <para><ulink url="&url.base;/de/ports/">&os;-Ports</ulink>: Zur - Installation von Software genügt ein einfaches + <para><ulink url="&url.base;/de/ports/">&os;-Ports</ulink>: + Zur Installation von Software genügt ein einfaches <command>pkg_add -r <replaceable>Paketname</replaceable></command></para> </footnote> @@ -318,14 +315,13 @@ Copyright (c) 2005 Dru Lavigne <para>Netgraph ist ein baukastenartiges Netzwerkteilsystem, das verwendet werden kann, um die bestehende Netzwerkinfrastruktur des Kernels zu - erweitern. Entwickler haben durch Hooks die - Möglichkeit, eigene Komponenten abzuleiten. - Infolgedessen gestaltet sich der kurzfristige Bau von - Prototypen und die anschließende - Produktionsentwicklung bei erweiterten Netzwerkdiensten - viel einfacher und weniger fehleranfällig. Viele - funktionsfähige Komponenten werden mit &os; - mitgeliefert, die unter anderem Unterstützung + erweitern. Entwickler haben durch Hooks die Möglichkeit, + eigene Komponenten abzuleiten. Infolgedessen gestaltet + sich der kurzfristige Bau von Prototypen und die + anschließende Produktionsentwicklung bei erweiterten + Netzwerkdiensten viel einfacher und weniger + fehleranfällig. Viele funktionsfähige Komponenten werden + mit &os; mitgeliefert, die unter anderem Unterstützung bieten für:</para> <itemizedlist> @@ -613,13 +609,12 @@ Copyright (c) 2005 Dru Lavigne url="&url.base;/doc/de_DE.ISO8859-1/books/handbook/eresources.html#ERESOURCES-MAIL">Mailinglisten</ulink> zu &os;. Der Nachrichtenverkehr wird archiviert und ist durchsuchbar. Falls eine Frage mit Hilfe des Handbuchs - nicht beantwortet werden konnte, wurde sie mit - größer Wahrscheinlichkeit schon auf einer der - Mailinglisten beantwortet. Handbuch und Mailinglisten - stehen in verschiedenen Sprachen zur Verfügung, die - alle auf der Startseite des <ulink - url="&url.base;/">&os; Projects</ulink> - auswählbar sind.</para> + nicht beantwortet werden konnte, wurde sie mit größer + Wahrscheinlichkeit schon auf einer der Mailinglisten + beantwortet. Handbuch und Mailinglisten stehen in + verschiedenen Sprachen zur Verfügung, die alle auf der + Startseite des <ulink url="&url.base;/">&os; + Projects</ulink> auswählbar sind.</para> </listitem> <listitem> @@ -665,16 +660,16 @@ Copyright (c) 2005 Dru Lavigne </itemizedlist> <para>Es gibt außerdem die Initiative, eine Zertifizierung von - BSD-Systemadministratoren anzubieten. Weitere Informationen dazu - finden Sie unter <ulink + BSD-Systemadministratoren anzubieten. Weitere Informationen + dazu finden Sie unter <ulink url="http://www.bsdcertification.org"></ulink>.</para> <para>Projekte, die eine Common Criteria-Zertifizierung benötigen, können die Hilfe von <ulink url="http://www.trustedbsd.org">TrustedBSD</ulink> in Anspruch nehmen, um (beispielsweise durch den Einsatz des - &os; MAC Frameworks) diesen Prozess zu erleichtern.</para> - </sect2> + &os; MAC Frameworks) diesen Prozess zu + erleichtern.</para> </sect2> </sect1> <sect1 id="freebsd-advantages"> diff --git a/de_DE.ISO8859-1/articles/new-users/article.xml b/de_DE.ISO8859-1/articles/new-users/article.xml index dc13a733cf..8a3c9b1c93 100644 --- a/de_DE.ISO8859-1/articles/new-users/article.xml +++ b/de_DE.ISO8859-1/articles/new-users/article.xml @@ -211,8 +211,8 @@ <listitem> <para>Zeigt uns, wo wir uns befinden, gibt also das aktuelle Verzeichnis - (<foreignphrase>working directory</foreignphrase>) aus.</para> - </listitem> + (<foreignphrase>working directory</foreignphrase>) + aus.</para> </listitem> </varlistentry> <varlistentry> @@ -647,12 +647,12 @@ als der DOS-Editor EDIT. Rufen Sie doch einmal das Kommando <command>:r</command> auf.) Drücken Sie die <keycap>Esc</keycap>-Taste ruhig öfter als einmal, um sicher - zu gehen, dass Sie sich im Kommandomodus befinden und arbeiten Sie - in diesem Modus weiter, falls Probleme auftreten. Speichern Sie - die Datei immer wieder mit <command>:w</command>, und geben Sie - <command>:q!</command> ein, um von vorne zu beginnen (genauer - gesagt, vom letzten <command>:w</command>-Kommando), falls dies - nötig sein sollte.</para> + zu gehen, dass Sie sich im Kommandomodus befinden und arbeiten + Sie in diesem Modus weiter, falls Probleme auftreten. Speichern + Sie die Datei immer wieder mit <command>:w</command>, und geben + Sie <command>:q!</command> ein, um von vorne zu beginnen + (genauer gesagt, vom letzten <command>:w</command>-Kommando), + falls dies nötig sein sollte.</para> <para>Danach können Sie mit <command>cd</command> nach <filename>/etc</filename> wechseln, mit <command>su</command> @@ -674,10 +674,10 @@ <para>Bis zu diesem Zeitpunkt haben Sie wahrscheinlich noch keinen Drucker eingerichtet, daher zeigen wir Ihnen, wie man eine Datei - aus einer Manualpage erzeugt, diese auf eine Diskette kopiert und - dann unter DOS ausdruckt. Möchten Sie etwa nachlesen, wie - Sie Dateirechte verändern können (was sehr wichtig ist), - rufen Sie mit <command>man chmod</command> die entsprechende + aus einer Manualpage erzeugt, diese auf eine Diskette kopiert + und dann unter DOS ausdruckt. Möchten Sie etwa nachlesen, wie + Sie Dateirechte verändern können (was sehr wichtig ist), rufen + Sie mit <command>man chmod</command> die entsprechende Manualpage auf. Der Befehl</para> <informalexample> @@ -703,8 +703,8 @@ benötigen, werden Sie durch die Eingabe von <command>exit</command> wieder zu <username>jack</username> und wechseln dann in das Verzeichnis, in dem sich - <filename>chmod.txt</filename> befindet, und kopieren diese Datei - mit</para> + <filename>chmod.txt</filename> befindet, und kopieren diese + Datei mit</para> <informalexample> <screen>&prompt.user; <userinput>cp chmod.txt /mnt</userinput></screen> @@ -715,21 +715,22 @@ <filename>/mnt</filename> an. Als Ergebnis sollten Sie <filename>chmod.txt</filename> erhalten.</para> - <para>Leiten Sie nun die Ausgabe von <command>/sbin/dmesg</command> - in eine Datei um, indem Sie</para> + <para>Leiten Sie nun die Ausgabe von + <command>/sbin/dmesg</command> in eine Datei um, indem + Sie</para> <informalexample> <screen>&prompt.user; <userinput>/sbin/dmesg > dmesg.txt</userinput></screen> </informalexample> - <para>eingeben und diese Datei ebenfalls auf die Diskette kopieren. - Mit <command>/sbin/dmesg</command> können Sie alle - während des Systemstarts angezeigten Meldungen ausgeben. - Es ist wichtig, dass Sie diese Meldungen verstehen, da hier - angezeigt wird, welche Hardware von FreeBSD beim Systemstart - gefunden wurde. Falls Sie Fragen auf der Mailingliste - &a.de.questions; oder im USENET stellen (etwa <quote>FreeBSD erkennt - mein Bandlaufwerk nicht, was soll ich tun?</quote>), wird man Sie + <para>eingeben und diese Datei ebenfalls auf die Diskette + kopieren. Mit <command>/sbin/dmesg</command> können Sie alle + während des Systemstarts angezeigten Meldungen ausgeben. Es ist + wichtig, dass Sie diese Meldungen verstehen, da hier angezeigt + wird, welche Hardware von FreeBSD beim Systemstart gefunden + wurde. Falls Sie Fragen auf der Mailingliste &a.de.questions; + oder im USENET stellen (etwa <quote>FreeBSD erkennt mein + Bandlaufwerk nicht, was soll ich tun?</quote>), wird man Sie fragen, was <command>dmesg</command> ausgibt.</para> <para>Anschließend können Sie das Diskettenlaufwerk @@ -876,19 +877,19 @@ <sect1 id="next-steps"> <title>Die nächsten Schritte</title> - <para>Sie sollten nun alle wichtigen Werkzeuge kennen, um sich auf Ihrem - System zurechtzufinden, Dateien zu editieren und alles am Laufen - zu halten. Viele nützliche Informationen finden sich im - FreeBSD-Handbuch (das vielleicht schon auf Ihrer - Festplatte ist) und auf der <ulink - url="http://www.FreeBSD.org/index.html">FreeBSD Webseite</ulink>. - Viele Softwarepakte und Ports sind sowohl auf der FreeBSD-CD-ROM - als auch auf der Webseite verfügbar. Im Handbuch finden Sie - Hinweise, wie Sie mit diesen arbeiten können. Pakete - installieren Sie mit + <para>Sie sollten nun alle wichtigen Werkzeuge kennen, um sich auf + Ihrem System zurechtzufinden, Dateien zu editieren und alles am + Laufen zu halten. Viele nützliche Informationen finden sich im + FreeBSD-Handbuch (das vielleicht schon auf Ihrer Festplatte ist) + und auf der <ulink + url="http://www.FreeBSD.org/index.html">FreeBSD + Webseite</ulink>. Viele Softwarepakte und Ports sind sowohl auf + der FreeBSD-CD-ROM als auch auf der Webseite verfügbar. Im + Handbuch finden Sie Hinweise, wie Sie mit diesen arbeiten + können. Pakete installieren Sie mit <command>pkg_add /cdrom/packages/All/<replaceable>Paketname</replaceable></command>, - wobei <replaceable>Paketname</replaceable> für den - Dateinamen des Paketes steht. Auf der CD-ROM finden Sie auch eine + wobei <replaceable>Paketname</replaceable> für den Dateinamen + des Paketes steht. Auf der CD-ROM finden Sie auch eine Liste der Pakete und Ports inklusive einer kurzen Beschreibung. Lesen Sie dazu <filename>cdrom/packages/index</filename>, @@ -917,9 +918,9 @@ </informalexample> <para>Danach wird das Verzeichnis - <filename>/usr/local/kermit</filename> angelegt, in dem sich alle - Dateien des Unterverzeichnisses <filename>kermit</filename> der - CD-ROM finden.</para> + <filename>/usr/local/kermit</filename> angelegt, in dem sich + alle Dateien des Unterverzeichnisses <filename>kermit</filename> + der CD-ROM finden.</para> <para>Danach legen Sie mit <command>mkdir</command> das Verzeichnis <filename>/usr/ports/distfiles</filename> an, @@ -933,8 +934,8 @@ <para>Wechseln Sie nun mit <command>cd</command> nach <filename>/usr/local/kermit</filename>. In diesem Verzeichnis - befindet sich bereits ein <filename>Makefile</filename>. Geben Sie - hier Folgendes ein:</para> + befindet sich bereits ein <filename>Makefile</filename>. Geben + Sie hier Folgendes ein:</para> <informalexample> <screen>&prompt.root; <userinput>make all install</userinput></screen> @@ -947,25 +948,23 @@ Falls Sie noch keine Internetverbindung haben und die benötigten Dateien nicht in <filename>/cdrom/ports/distfiles</filename> vorhanden sind, - müssen Sie sich die Dateien über einem anderen Rechner - besorgen und manuell nach <filename>/usr/ports/distfiles</filename> - kopieren (entweder über eine Diskette oder durch das - Einhängen einer DOS-Partition. Sehen Sie im - <filename>Makefile</filename> (mit <command>cat</command>, - <command>more</command> oder <command>view</command>) nach, wo - die Dateien zu finden sind (meist auf der Hauptseite des Programms) - und besorgen Sie sich die Datei. Laden Sie die Datei unter DOS - herunter, wird der Dateiname möglicherweise gekürzt. In - diesem Fall müssen Sie, nachdem die Datei nach - <filename>/usr/ports/distfiles</filename> kopiert wurde, den - ursprünglichen Namen mit <command>mv</command> - wiederherstellen, damit die Datei von der + müssen Sie sich die Dateien über einem anderen Rechner besorgen + und manuell nach <filename>/usr/ports/distfiles</filename> + kopieren (entweder über eine Diskette oder durch das Einhängen + einer DOS-Partition. Sehen Sie im <filename>Makefile</filename> + (mit <command>cat</command>, <command>more</command> oder + <command>view</command>) nach, wo die Dateien zu finden sind + (meist auf der Hauptseite des Programms) und besorgen Sie sich + die Datei. Laden Sie die Datei unter DOS herunter, wird der + Dateiname möglicherweise gekürzt. In diesem Fall müssen Sie, + nachdem die Datei nach <filename>/usr/ports/distfiles</filename> + kopiert wurde, den ursprünglichen Namen mit + <command>mv</command> wiederherstellen, damit die Datei von der Installationsroutine gefunden werden kann. Laden Sie die Datei - mit FTP herunter, müssen Sie den Binär-Modus verwenden. - Nun wechseln Sie zurück nach - <filename>/usr/local/kermit</filename> (hier befindet sich ja - das zur Installation nötige <filename>Makefile</filename>) - und installieren das Programm mit + mit FTP herunter, müssen Sie den Binär-Modus verwenden. Nun + wechseln Sie zurück nach <filename>/usr/local/kermit</filename> + (hier befindet sich ja das zur Installation nötige + <filename>Makefile</filename>) und installieren das Programm mit <command>make all install</command>.</para> <para>Beim Installieren von Ports oder Paketen kann es auch @@ -1163,23 +1162,22 @@ setenv XNLSPATH /usr/X11R6/lib/X11/nls</programlisting> <sect1 id="other"> <title>Einige abschließende Bemerkungen</title> - <para>Als <username>root</username> können Sie das - CD-ROM-Laufwerk mit <command>/sbin/umount /cdrom</command> - abhängen, eine andere CD-ROM einlegen und mit - <command>/sbin/mount_cd9660 /dev/cd0a /cdrom</command> wieder - einhängen (falls <hardware>cd0a</hardware> der Devicename - Ihres CD-ROM-Laufwerkes ist). Bei neueren FreeBSD-Versionen - muss dafür nur <command>/sbin/mount /cdrom</command> - eingegeben werden.</para> - - <para>Das Live-Filesystem (die zweite FreeBSD-CD-ROM) kann hilfreich - sein, wenn auf Ihrem System nur begrenzt Speicherplatz vorhanden - ist. Was genau auf dieser Live-CD enthalten ist, variiert von - Ausgabe zu Ausgabe. Vielleicht können verschiedene Spiele - von CD-ROM gespielt werden. Dazu muss aber auch + <para>Als <username>root</username> können Sie das CD-ROM-Laufwerk + mit <command>/sbin/umount /cdrom</command> abhängen, eine andere + CD-ROM einlegen und mit <command>/sbin/mount_cd9660 /dev/cd0a + /cdrom</command> wieder einhängen (falls + <hardware>cd0a</hardware> der Devicename Ihres CD-ROM-Laufwerkes + ist). Bei neueren FreeBSD-Versionen muss dafür nur + <command>/sbin/mount /cdrom</command> eingegeben werden.</para> + + <para>Das Live-Filesystem (die zweite FreeBSD-CD-ROM) kann + hilfreich sein, wenn auf Ihrem System nur begrenzt Speicherplatz + vorhanden ist. Was genau auf dieser Live-CD enthalten ist, + variiert von Ausgabe zu Ausgabe. Vielleicht können verschiedene + Spiele von CD-ROM gespielt werden. Dazu muss aber auch <command>lndir</command> vorhanden sein, damit diese Programme - wissen, wo sie die von ihnen benötigten Dateien finden, da - sich diese unter <filename>/cdrom</filename> und nicht unter + wissen, wo sie die von ihnen benötigten Dateien finden, da sich + diese unter <filename>/cdrom</filename> und nicht unter <filename>/usr</filename> und den entsprechenden Unterverzeichnissen befinden, wie es diese Programme erwarten. Lesen Sie dazu auch &man.lndir.1;.</para> diff --git a/de_DE.ISO8859-1/articles/port-mentor-guidelines/Makefile b/de_DE.ISO8859-1/articles/port-mentor-guidelines/Makefile new file mode 100644 index 0000000000..08088577f8 --- /dev/null +++ b/de_DE.ISO8859-1/articles/port-mentor-guidelines/Makefile @@ -0,0 +1,22 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD German Documentation Project +# +# $FreeBSD$ +# basiert auf: r39631 +# +# Article: Port Mentor Guidelines +# + +DOC?= article + +FORMATS?= html +WITH_ARTICLE_TOC?= YES + +INSTALL_COMPRESSED?= gz +INSTALL_ONLY_COMPRESSED?= + +SRCS= article.xml + +DOC_PREFIX?= ${.CURDIR}/../../.. +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/de_DE.ISO8859-1/articles/port-mentor-guidelines/article.xml b/de_DE.ISO8859-1/articles/port-mentor-guidelines/article.xml new file mode 100644 index 0000000000..275eccc463 --- /dev/null +++ b/de_DE.ISO8859-1/articles/port-mentor-guidelines/article.xml @@ -0,0 +1,266 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN" + "../../../share/xml/freebsd45.dtd"> + +<!-- The FreeBSD Documentation Project + The FreeBSD German Documentation Project + + $FreeBSD$ + basiert auf: r396332 +--> + +<article lang="en"> + <articleinfo> + <title>Richtlinien für Port-Mentoren</title> + + <authorgroup> + <corpauthor>Das &os; Ports-Management Team</corpauthor> + </authorgroup> + + <pubdate>$FreeBSD$</pubdate> + + <releaseinfo>$FreeBSD$</releaseinfo> + + <copyright> + <year>2011</year> + <holder role="mailto:tabthorpe@FreeBSD.org">Thomas + Abthorpe</holder> + <holder role="mailto:crees@FreeBSD.org">Chris Rees</holder> + </copyright> + </articleinfo> + + <sect1 id="port-mentor.guidelines"> + <title>Richtlinien für Mentor/Mentee Beziehungen</title> + + <para>Dieser Abschnitt soll dazu dienen, den Mythos des + Mentoringprozesses zu entzaubern und gleichzeitig einen offenen + Dialog zu führen, um diese Richtlinien anzupassen und zu + erweitern. Es gibt bereits sehr viele Regeln in unserem Leben + und wir sind auch keine Regierungsorganisation, die Gesetze + aufzwingt. Stattdessen verstehen wir uns als eine Gemeinschaft + von gleichgesinnten Individuen, die an einem gemeinsamen Ziel + arbeiten, um die Qualitätsansprüche an das Produkt, + welches als Portbaum bekannt ist, zu gewährleisten.</para> + + <sect2 id="why.mentor"> + <title>Warum Mentor sein?</title> + + <itemizedlist> + <listitem> + <para>Die meisten von uns kamen durch die Hife eines Mentors + in das Projekt hinein. Also sollte man jemand anderem auch + diesen Gefallen tun.</para> + </listitem> + + <listitem> + <para>Sie haben das unwiderstehliche Bedürfnis, anderen + Ihr Wissen mitzuteilen.</para> + </listitem> + + <listitem> + <para>Die übliche Bestrafung wird angewendet, da Sie es + mittlerweile Leid sind, die gute Arbeit von anderen Leuten + zu committen.</para> + </listitem> + </itemizedlist> + </sect2> + + <sect2 id="mentor.comentor"> + <title>Mentor/Mit-Mentor</title> + + <para>Gründe für eine Mit-Mentorenschaft:</para> + + <itemizedlist> + <listitem> + <para>Signifikanter Zeitzonenunterschied. Verfügbare + Mentoren, mit denen man interaktiv Dinge via Instant + Messenger besprechen kann, sind extrem hilfreich.</para> + </listitem> + + <listitem> + <para>Potentielle Sprachbarriere. Ja, &os; ist, wie die + meiste Softwareentwicklung auch, sehr Englisch-orientiert. + Jedoch kann ein Mentor, der die eigene Sprache spricht, + hilfreich sein.</para> + </listitem> + + <listitem> + <para>ENOTIME! Solange es keinen 30-Stunden Tag und eine + 8-Tage Woche gibt, haben manche von uns nur eine begrenzte + Menge Zeit zur Verfügung. Diese Last mit jemandem zu + teilen macht die Sache einfacher.</para> + </listitem> + + <listitem> + <para>Ein Mentor-Neuling kann von den Erfahrungen eines + erfahrenen Committers bzw. Mentors profitieren.</para> + </listitem> + + <listitem> + <para>Zwei Köpfe sind besser als einer allein.</para> + </listitem> + </itemizedlist> + + <para>Gründe für einen Einzelmentor:</para> + + <itemizedlist> + <listitem> + <para>Sie arbeiten nicht so gut mit anderen zusammen.</para> + </listitem> + + <listitem> + <para>Sie bevorzugen eine 1:1-Beziehung.</para> + </listitem> + + <listitem> + <para>Die Gründe für die Mit-Mentorenschaft + treffen auf Sie nicht zu.</para> + </listitem> + </itemizedlist> + </sect2> + + <sect2 id="mentor.expectations"> + <title>Erwartungen</title> + + <para>Wir erwarten, dass Mentoren alle vorgeschlagenen Patche, + zumindest für einen Anfangszeitraum, welcher mehr als + eine oder zwei Wochen dauert, prüfen und testweise bauen + sollten.</para> + + <para>Wir erwarten, dass Mentoren die Verantwortung für die + Aktionen Ihres Mentees übernehmen. Ein Mentor sollte + hinter den Commits des Mentees stehen, sowohl implizit als + auch explizit.</para> + + <para>Wir erwarten, dass Mentoren ihre Mentees die Lektüre + des <ulink url="&url.books.porters-handbook;">Handbuch + für Ports Committer</ulink>, die <ulink + url="&url.articles.pr-guidelines;">PR-Richtlinien</ulink> sowie + den <ulink url="&url.articles.committers-guide;">Committer's + Guide</ulink> empfehlen. Obwohl es nicht notwendig ist, all + diese Details im Gedächtnis zu behalten, sollte jeder + Committer einen Überblick über diese Dinge haben, um + ein effizienter Teil der Gemeinschaft zu sein (und um + Anfängerfehler so weit wie möglich zu vermeiden).</para> + </sect2> + + <sect2 id="mentees"> + <title>Auswahl eines Mentees</title> + + <para>Es existiert keine definierte Regel, die festlegt, dass + ein Kandidat bereit ist. Es kann eine Kombination der Anzahl + von PRs sein, die an <application>GNATS</application> + geschickt wurden, die Anzahl an Ports, die von dieser Person + gepflegt werden, die Häfigkeit von Ports-Aktualisierungen + bzw. die Menge von Beteiligungen in einem bestimmten Bereich, + z.B. <application>GNOME</application>, + <application>KDE</application>, + <application>Gecko</application> oder andere.</para> + + <para>Ein Kandidat sollte fasst keine Auszeiten haben, auf + Anfragen antworten und generell sehr hilfreich in der + Unterstützung seiner Ports sein.</para> + + <para>Es sollte eine Historie von Einsatzbereitschaft vorliegen, + da es bekanntermassen Zeit und Aufwand benötigt, um einen + Committer zu trainieren. Falls jemand schon längere Zeit + dabei ist und Zeit damit verbringt, zu beobachten, wie die + Dinge funktionieren, ergibt sich eine Erwartungshaltung von + angehäuftem Wissen. Viel zu oft schon haben wir + beobachten müssen, dass jemand viele PRs schickt, um + anschliessend im IRC aufzutauchen um zu fragen, wann das + Commit-Bit gewährt wird.</para> + + <para>Eine Mailingliste abonniert zu haben und dieser zu folgen + ist vorteilhaft. Es gibt keine echte Erwartungshaltung, dass + durch das schreiben auf einer Mailingliste jemand zum + Committer wird, doch es zeigt dennoch die Bereitschaft. Manche + Mails bieten Einsichten in das Wissen eines Kandidaten + genauso, wie gut jemand mit anderen interagiert. Gleichfalls + kann durch Teilnahme im IRC jemand ein höheres Ansehen + erhalten.</para> + + <para>Fragen Sie sechs verschiedene Committer, wieviele PRs + jemand vor seiner Nominierung einschicken sollte und Sie + erhalten sechs verschiedene Antworten. Fragen Sie diese + Individuen wie lange jemand schon etwas beigetragen haben + sollte, ergibt sich das gleiche Dilemma. Wieviele Ports sollte + jemand als Minimum betreuen? Jetzt haben wir wirklich eine + Diskussion ausgelöst! Manche Dinge sind einfach schwer als + Mengen abzubilden, also muss ein Mentor eine Einschätzung + machen und hoffen, dass portmgr zustimmt.</para> + + </sect2> + <sect2 id="mentorship.duration"> + <title>Dauer der Mentorenschaft</title> + + <para>Mit der Zeit wird das Vertrauen in jemanden wachsen und + der Mentee wird <quote>implizite</quote> Commitrechte + erhalten. Dies kann triviale Änderungen für + <filename>Makefile</filename>, <filename>pkg-descr</filename> + und andere Dateien beinhalten. Genauso kann dies + Aktualisierungen der <makevar>PORTVERSION</makevar>, die keine + <makevar>plist</makevar>-Änderungen sind, betreffen. + Andere Umstände können nach Gutdünken des + Mentors formuliert werden. Allerdings sollten + Versionsänderungen bei Ports, die andere Ports betreffen, + vorher von einem Mentor geprüft werden.</para> + + <para>Genauso wie wir alle verschiedene Individuen sind, besitzt + jeder Mentee unterschiedliche Lernkurven, Zeitinvestitionen + und andere Einflussfaktoren, die zu der Zeit beitragen, bevor + jemand <quote>allein fliegt</quote>. Empirisch sollte ein + Mentee für mindestens 3 Monate beobachtet werden. 90-100 + Commits ist ein weiteres Ziel, dass ein Mentor nutzen kann, + bevor jemand als Mentee entlassen wird. Andere Faktoren, die + man vor der Freilassung seines Mentees berücksichtigen + sollte, ist die Anzahl der gemachten Fehler, die erhaltenen + QATs, usw. Falls immer noch Fehler gemacht werden, ist die + Betreuung durch einen Mentor weiterhin notwendig.</para> + </sect2> + + <sect2 id="mentor.comentor.debate"> + <title>Mentor/Mit-Mentor Debatten</title> + + <para>Wenn eine Anfrage an portmgr geht, sieht dies + normalerweise so aus: <quote>I propose 'foo' for a ports + commit bit, I will co-mentor with 'bar'</quote>. Anfrage wurde + erhalten, abgestimmt und die Entscheidung wird + getragen.</para> + + <para>Der Mentor ist die primäre Kontaktperson, oder + zumindest der <quote>erste unter gleichgestellten</quote>, der + Co-Mentor dient als Absicherung.</para> + + <para>Mancher Schurke, dessen Name hier nicht genannt werden + soll, machte den <ulink + url="http://lists.freebsd.org/pipermail/cvs-ports/2007-September/134614.html"> + ersten aufgezeichneten Mit-Mentoren Commit</ulink>. Es wurden + auch schon Mit-Mentoren commits im src-Baum beobachtet. Macht + dieses Vorgehen die Sache richtig? Ist es falsch? Es scheint + Teil dessen zu sein, wie die Dinge sich entwickeln.</para> + </sect2> + + <sect2 id="mentee.expectations"> + <title>Erwartungen</title> + + <para>Wir erwarten von Mentees, dass diese für konstruktive + Kritik aus der Gemeinschaft offen sind. Es gibt immer noch + viel <quote>Wissen</quote>, welches nicht geschrieben steht. + Richtig auf konstruktive Kritik zu antworten ist was wir + hoffen zu erkennen, wenn wir jemanden anhand seiner + Beiträge im IRC und auf den Mailinglisten + auswählen.</para> + + <para>Wir warnen Mentees davor, dass manche Kritik, die sie + erhalten werden, weniger <quote>konstruktiv</quote> als andere + sein wird (egal ob durch Verständigungsprobleme, die + durch die Sprache bedingt sind oder durch Pingeligkeit). Mit + dieser Art von Kritik kultiviert umzugehen ist auch Teil + davon, einer grossen Gemeinschaft anzugehören. Bei + spezifischen Problemen mit bestimmten Leuten oder falls fragen + aufkommen, hoffen wir dass diese sich an ein Mitglied von + portmgr wenden, entweder via IRC oder per eMail.</para> + </sect2> + </sect1> +</article> diff --git a/de_DE.ISO8859-1/articles/solid-state/article.xml b/de_DE.ISO8859-1/articles/solid-state/article.xml index 75a6d728c4..819b02ef07 100644 --- a/de_DE.ISO8859-1/articles/solid-state/article.xml +++ b/de_DE.ISO8859-1/articles/solid-state/article.xml @@ -72,22 +72,26 @@ <para>Dieser Artikel behandelt die Verwendung von Solid State Festplatten in &os;, um eingebettete Systeme zu erstellen.</para> - <para>Eingebettete Systeme haben den Vorteil, dass sie eine höhere - Stabilität aufgrund des fehlens von beweglichen Bauteilen - (Festplatten) besitzen. Es muss jedoch beachtet werden, dass generell - weniger Speicherplatz zur Verfügung steht und die Lebensdauer des - Speichermediums geringer ist.</para> - - <para>Spezielle Themen die behandelt werden beinhalten die Typen und - Attribute von Solid State Datenträgern, die in &os; verwendet - werden, Kernel-Optionen die in solch einer Umgebung von Interesse sind, - der <filename>rc.initdiskless</filename>-Mechanismus, welcher die - Initalisierung solcher Systeme automatisiert, sowie die Notwendigkeit - von Nur-Lese-Dateisystemen und das Erstellen von Dateisystemen von - Grund auf. Der Artikel schliesst mit ein paar generellen Strategien - für kleine und Nur-Lese-&os; Umgebungen.</para> - - <para><emphasis>Übersetzt von Benedict Reuschling</emphasis>.</para> + <para>Eingebettete Systeme haben den Vorteil, dass sie eine + höhere Stabilität aufgrund des fehlens von beweglichen + Bauteilen (Festplatten) besitzen. Es muss jedoch beachtet + werden, dass generell weniger Speicherplatz zur Verfügung + steht und die Lebensdauer des Speichermediums geringer + ist.</para> + + <para>Spezielle Themen die behandelt werden beinhalten die Typen + und Attribute von Solid State Datenträgern, die in &os; + verwendet werden, Kernel-Optionen die in solch einer Umgebung + von Interesse sind, der + <filename>rc.initdiskless</filename>-Mechanismus, welcher die + Initalisierung solcher Systeme automatisiert, sowie die + Notwendigkeit von Nur-Lese-Dateisystemen und das Erstellen von + Dateisystemen von Grund auf. Der Artikel schliesst mit ein + paar generellen Strategien für kleine und Nur-Lese-&os; + Umgebungen.</para> + + <para><emphasis>Übersetzt von Benedict + Reuschling</emphasis>.</para> </abstract> </articleinfo> @@ -95,39 +99,42 @@ <title>Solid State Festplattengeräte</title> <para>Der Umfang des Artikels ist auf Solid State Geräte - beschränkt, die auf Flash-Speicher basieren. Flash-Speicher ist ein - Solid State Speicher (keine beweglichen Teile), der nicht flüchtig - ist (der Speicher behält die Daten sogar nachdem alle Energiequellen - ausgeschaltet wurden). Flash-Speicher kann grossen physischen Schock - aushalten und ist vergleichsweise schnell (die Flash-Speicher - Lösungen, die in diesem Artikel behandelt werden, sind nur wenig - langsamer als eine EIDE-Festplatte in der Schreibgeschwindigkeit und viel - schneller bei Lese-Operationen). Ein sehr wichtiger Aspekt von + beschränkt, die auf Flash-Speicher basieren. Flash-Speicher ist + ein Solid State Speicher (keine beweglichen Teile), der nicht + flüchtig ist (der Speicher behält die Daten sogar nachdem alle + Energiequellen ausgeschaltet wurden). Flash-Speicher kann + grossen physischen Schock aushalten und ist vergleichsweise + schnell (die Flash-Speicher Lösungen, die in diesem Artikel + behandelt werden, sind nur wenig langsamer als eine + EIDE-Festplatte in der Schreibgeschwindigkeit und viel schneller + bei Lese-Operationen). Ein sehr wichtiger Aspekt von Flash-Speichern, dessen Auswirkungen später in diesem Artikel - diskutiert werden, ist, dass jeder Sektor eine begrenzte Kapazität - zur Wiederbeschreibung besitzt. Man kann nur eine bestimmte Anzahl von - Schreib-, Lösch- und Wiederbeschreibungsvorgängen - durchführen, bevor der Sektor permanent unbrauchbar wird. Obwohl - viele Flash-Speicher Produkte automatisch schlechte Blöcke markieren - und manche Geräte Schreiboperationen gleichmässig verteilen, - bleibt weiterhin die Anzahl der durchführbaren Schreibvorgänge - begrenzt. Verschiedene Geräteeinheiten besitzen zwischen 1,000,000 - und 10,000,000 Schreibzyklen pro Sektor in ihren Spezifikationen. Diese - Zahlen variieren aufgrund der Umgebungstemperatur.</para> + diskutiert werden, ist, dass jeder Sektor eine begrenzte + Kapazität zur Wiederbeschreibung besitzt. Man kann nur eine + bestimmte Anzahl von Schreib-, Lösch- und + Wiederbeschreibungsvorgängen durchführen, bevor der Sektor + permanent unbrauchbar wird. Obwohl viele Flash-Speicher + Produkte automatisch schlechte Blöcke markieren und manche + Geräte Schreiboperationen gleichmässig verteilen, bleibt + weiterhin die Anzahl der durchführbaren Schreibvorgänge + begrenzt. Verschiedene Geräteeinheiten besitzen zwischen + 1,000,000 und 10,000,000 Schreibzyklen pro Sektor in ihren + Spezifikationen. Diese Zahlen variieren aufgrund der + Umgebungstemperatur.</para> <para>Im Speziellen werden wir ATA-kompatible Compact-Flash-Karten - betrachten, welche als Speichermedien für Digitalkameras ziemlich - populär sind. Von besonderem Interesse ist der Umstand, dass diese - direkt an den IDE-Bus angeschlossen werden und kompatibel zu den - ATA-Befehlen sind. Aus diesem Grund können diese Geräte mit - einem einfachen und billigen Adapter direkt an den IDE-Bus eines - Computers angeschlossen werden. Auf diese Weise sehen Betriebssysteme - wie &os; diese Geräte dann als normale (wenn auch sehr kleine) - Festplatten an.</para> - - <para>Andere Solid State Plattenlösungen existieren, jedoch platzieren - deren Kosten, Obskurität und ihre Unhandlichkeit sie aussserhalb - des Umfangs dieses Artikels.</para> + betrachten, welche als Speichermedien für Digitalkameras + ziemlich populär sind. Von besonderem Interesse ist der + Umstand, dass diese direkt an den IDE-Bus angeschlossen werden + und kompatibel zu den ATA-Befehlen sind. Aus diesem Grund + können diese Geräte mit einem einfachen und billigen Adapter + direkt an den IDE-Bus eines Computers angeschlossen werden. Auf + diese Weise sehen Betriebssysteme wie &os; diese Geräte dann als + normale (wenn auch sehr kleine) Festplatten an.</para> + + <para>Andere Solid State Plattenlösungen existieren, jedoch + platzieren deren Kosten, Obskurität und ihre Unhandlichkeit sie + aussserhalb des Umfangs dieses Artikels.</para> </sect1> <sect1 id="kernel"> @@ -137,17 +144,18 @@ diejenigen, welche diese eingebetteten &os;-Systeme erstellen möchten.</para> - <para>Alle eingebetteten &os;-Systeme, die Flash-Speicher als Systemplatte - verwenden, sind interessant für Dateisysteme im Hauptspeicher und - RAM-Disks. Wegen der begrenzten Anzahl von Schreibzyklen, die auf - Flash-Speicher durchgeführt werden können, werden die Platte - und die Dateisysteme darauf mit grosser Wahrscheinlichkeit nur lesend - eingehängt werden. In dieser Umgebung werden Dateisysteme wie - <filename>/tmp</filename> und <filename>/var</filename> als RAM-Disks - eingebunden, um dem System zu erlauben, Logdateien anzulegen und - Zähler sowie temporäre Dateien zu aktualisieren. RAM-Disks - sind eine kritische Komponente für eine erfolgreiche Solid State - Umsetzung in &os;.</para> + <para>Alle eingebetteten &os;-Systeme, die Flash-Speicher als + Systemplatte verwenden, sind interessant für Dateisysteme im + Hauptspeicher und RAM-Disks. Wegen der begrenzten Anzahl von + Schreibzyklen, die auf Flash-Speicher durchgeführt werden + können, werden die Platte und die Dateisysteme darauf mit + grosser Wahrscheinlichkeit nur lesend eingehängt werden. In + dieser Umgebung werden Dateisysteme wie + <filename>/tmp</filename> und <filename>/var</filename> als + RAM-Disks eingebunden, um dem System zu erlauben, Logdateien + anzulegen und Zähler sowie temporäre Dateien zu aktualisieren. + RAM-Disks sind eine kritische Komponente für eine erfolgreiche + Solid State Umsetzung in &os;.</para> <para>Sie sollten dafür sorgen, dass die folgenden Zeilen in Ihrer Kernelkonfigurationsdatei vorhanden sind:</para> @@ -166,55 +174,58 @@ pseudo-device md # memory disk</programlisting> kontrolliert.</para> <para><filename>/etc/rc.d/var</filename> hängt - <filename>/var</filename> als RAM-Disk ein, erstellt eine konfigurierbare - Liste von Verzeichnissen in <filename>/var</filename> mittels des - &man.mkdir.1;-Kommandos und ändert die Attribute von ein paar dieser - Verzeichnisse. Bei der Ausführung von - <filename>/etc/rc.d/var</filename> kommt eine andere - <filename>rc.conf</filename>-Variable ins Spiel: + <filename>/var</filename> als RAM-Disk ein, erstellt eine + konfigurierbare Liste von Verzeichnissen in + <filename>/var</filename> mittels des &man.mkdir.1;-Kommandos + und ändert die Attribute von ein paar dieser Verzeichnisse. Bei + der Ausführung von <filename>/etc/rc.d/var</filename> kommt eine + andere <filename>rc.conf</filename>-Variable ins Spiel: <literal>varsize</literal>. Die Datei <filename>/etc/rc.d/var</filename> - erstellt eine <filename>/var</filename>-Partition basierend auf dem Wert - dieser Variable in <filename>rc.conf</filename>:</para> + erstellt eine <filename>/var</filename>-Partition basierend auf + dem Wert dieser Variable in <filename>rc.conf</filename>:</para> <programlisting>varsize=8192</programlisting> - <para>Standardmässig wird dieser Wert in Sektoren angegeben.</para> - - <para>Der Fakt, dass es sich bei <filename>/var</filename> um ein nur-Lese - Dateisystem handelt, ist eine wichtige Unterscheidung, da die - <filename>/</filename>-Partition (und jede andere Partition, die Sie auf - Ihrem Flash-Medium haben) nur lesend eingehängt wird. Erinnern Sie - sich, dass in <xref linkend="intro"/> die Beschränkungen von - Flash-Speichern erläutert wurden, speziell deren begrenzte - Kapazität zum Schreiben. Die Notwendigkeit, Dateisysteme auf - Flash-Speichern nur lesend einzubinden und keine Swap-Dateien zu - verwenden, kann nicht oft genug erwähnt werden. Eine Swap-Datei auf - einem ausgelasteten System kann in weniger als einem Jahr den gesamten + <para>Standardmässig wird dieser Wert in Sektoren + angegeben.</para> + + <para>Der Fakt, dass es sich bei <filename>/var</filename> um ein + nur-Lese Dateisystem handelt, ist eine wichtige Unterscheidung, + da die <filename>/</filename>-Partition (und jede andere + Partition, die Sie auf Ihrem Flash-Medium haben) nur lesend + eingehängt wird. Erinnern Sie sich, dass in <xref + linkend="intro"/> die Beschränkungen von Flash-Speichern + erläutert wurden, speziell deren begrenzte Kapazität zum + Schreiben. Die Notwendigkeit, Dateisysteme auf Flash-Speichern + nur lesend einzubinden und keine Swap-Dateien zu verwenden, kann + nicht oft genug erwähnt werden. Eine Swap-Datei auf einem + ausgelasteten System kann in weniger als einem Jahr den gesamten Flash-Speicher aufbrauchen. Häufige Protokollierung oder das Erstellen und Löschen von temporären Dateien kann das gleiche - verursachen. Aus diesem Grund sollten Sie zusätzlich zum entfernen - des <literal>swap</literal>-Eintrags aus ihrer - <filename>/etc/fstab</filename>-Datei auch noch die Optionsfelder - für jedes Dateisystem auf <literal>ro</literal> wie folgt - stellen:</para> + verursachen. Aus diesem Grund sollten Sie zusätzlich zum + entfernen des <literal>swap</literal>-Eintrags aus ihrer + <filename>/etc/fstab</filename>-Datei auch noch die + Optionsfelder für jedes Dateisystem auf <literal>ro</literal> + wie folgt stellen:</para> <programlisting># Device Mountpoint FStype Options Dump Pass# /dev/ad0s1a / ufs ro 1 1</programlisting> - <para>Ein paar Anwendungen im normalen System werden sofort nach dieser - Änderung ausfallen. Beispielsweise wird Cron nicht richtig - funktionieren, aufgrund von fehlenden Cron-Tabellen in + <para>Ein paar Anwendungen im normalen System werden sofort nach + dieser Änderung ausfallen. Beispielsweise wird Cron nicht + richtig funktionieren, aufgrund von fehlenden Cron-Tabellen in <filename>/var</filename> die von - <filename>/etc/rc.d/var</filename> erstellt wurden. Syslog und DHCP - werden ebenfalls Probleme durch das nur-Lese Dateisystem + <filename>/etc/rc.d/var</filename> erstellt wurden. Syslog und + DHCP werden ebenfalls Probleme durch das nur-Lese Dateisystem und fehlende Elemente im Verzeichnis <filename>/var</filename> - verursachen, die <filename>/etc/rc.d/var</filename> erstellt hat. Diese - Probleme sind jedoch nur vorübergehend und werden zusammen mit - Lösungen zur Ausführung von anderen gebräuchlichen - Softwarepaketen in <xref linkend="strategies"/> angesprochen.</para> - - <para>Eine wichtige Sache, an die man sich erinnern sollte, ist, dass - ein Dateisystem, welches als nur lesend in + verursachen, die <filename>/etc/rc.d/var</filename> erstellt + hat. Diese Probleme sind jedoch nur vorübergehend und werden + zusammen mit Lösungen zur Ausführung von anderen gebräuchlichen + Softwarepaketen in <xref linkend="strategies"/> + angesprochen.</para> + + <para>Eine wichtige Sache, an die man sich erinnern sollte, ist, + dass ein Dateisystem, welches als nur lesend in <filename>/etc/fstab</filename> eingebunden wurde, jederzeit als schreibend durch das folgende Kommando eingehängt werden kann:</para> @@ -229,55 +240,58 @@ pseudo-device md # memory disk</programlisting> <sect1> <title>Ein Dateisystem von Grund auf neu erstellen</title> - <para>Wenn ATA-kompatible Compact-Flash-Karten von &os; als normale - IDE-Festplatten erkannt werden, könnten Sie theoretisch &os; aus dem - Netzwerk mittels der Kern- und mfsroot-Floppies oder einer CD - installieren.</para> - - <para>Jedoch kann selbst eine kleine Installation von &os; durch die - normale Installationsprozedur ein System erzeugen, dass grösser als - 200 MB ist. Da die meisten Leute kleinere Flash-Speichermedien - einsetzen (128 MB wird hier als gross angesehen - 32 oder sogar - 16 MB sind gebräuchlich) ist eine gewöhnliche Installation - mit normalen Methoden nicht möglich, da es einfach nicht genug - freien Plattenplatz gibt, selbst für die kleinste - Installationsart.</para> - - <para>Der einfachste Weg, diese Speicherlimitierung zu umgehen, ist, &os; - auf konventionelle Weise auf eine normale Festplatte zu installieren. - Nachdem die Installation abgeschlossen wurde, kürzen Sie das - Betriebssystem auf das nötigste, bis Sie eine Grösse erreicht - hat, die auf das Flash-Medium passt und benutzen Sie dann tar auf dem - gesamten Dateisystem. Die folgenden Schritte werden Sie durch den - Prozess der Vorbereitung eines Flash-Mediums für ihr getartes - Dateisystem führen. Beachten Sie, dass Operationen wie - Partitionierung, Benennung, Erstellung von Dateisystemen, etc. von Hand - durchgeführt werden müssen, da eine normale Installation nicht - möglich ist. Zusätzlich zu den Kern- und mfsroot-Disketten - benötigen Sie auch die fixit-Floppy.</para> + <para>Wenn ATA-kompatible Compact-Flash-Karten von &os; als + normale IDE-Festplatten erkannt werden, könnten Sie theoretisch + &os; aus dem Netzwerk mittels der Kern- und mfsroot-Floppies + oder einer CD installieren.</para> + + <para>Jedoch kann selbst eine kleine Installation von &os; durch + die normale Installationsprozedur ein System erzeugen, dass + grösser als 200 MB ist. Da die meisten Leute kleinere + Flash-Speichermedien einsetzen (128 MB wird hier als gross + angesehen - 32 oder sogar 16 MB sind gebräuchlich) ist eine + gewöhnliche Installation mit normalen Methoden nicht möglich, da + es einfach nicht genug freien Plattenplatz gibt, selbst für die + kleinste Installationsart.</para> + + <para>Der einfachste Weg, diese Speicherlimitierung zu umgehen, + ist, &os; auf konventionelle Weise auf eine normale Festplatte + zu installieren. Nachdem die Installation abgeschlossen wurde, + kürzen Sie das Betriebssystem auf das nötigste, bis Sie eine + Grösse erreicht hat, die auf das Flash-Medium passt und benutzen + Sie dann tar auf dem gesamten Dateisystem. Die folgenden + Schritte werden Sie durch den Prozess der Vorbereitung eines + Flash-Mediums für ihr getartes Dateisystem führen. Beachten + Sie, dass Operationen wie Partitionierung, Benennung, Erstellung + von Dateisystemen, etc. von Hand durchgeführt werden müssen, da + eine normale Installation nicht möglich ist. Zusätzlich zu den + Kern- und mfsroot-Disketten benötigen Sie auch die + fixit-Floppy.</para> <procedure> <step> <title>Partitionierung Ihrer Flash-Medien</title> - <para>Wählen Sie nach dem Starten der Kern- und mfsroot-Disketten, - <literal>custom</literal> aus dem Installationsmenü. In diesem - Menü wählen Sie dann <literal>partition</literal> aus. - Dort sollten Sie alle bestehenden Partitionen mit Hilfe der Taste + <para>Wählen Sie nach dem Starten der Kern- und + mfsroot-Disketten, <literal>custom</literal> aus dem + Installationsmenü. In diesem Menü wählen Sie dann + <literal>partition</literal> aus. Dort sollten Sie alle + bestehenden Partitionen mit Hilfe der Taste <keycap>d</keycap> löschen. Nachdem alle bestehenden Partitionen gelöscht wurden, erstellen Sie mittels der Taste <keycap>c</keycap> eine Partition und akzeptieren Sie den Standardwert für die Grösse der Partition. Wenn Sie nach - dem Typ der Partition gefragt werden, stellen Sie sicher, dass der - Wert auf <literal>165</literal> eingestellt ist. Schreiben Sie jetzt - diese Partitionstabelle auf die Platte durch betätigen der Taste - <keycap>w</keycap> (dies ist die versteckte Option auf diesem - Bildschirm). Wenn Sie eine ATA-kompatible Compact Flash-Karte - verwenden, sollten Sie den &os; Bootmanager auswählen. - Drücken Sie nun die Taste <keycap>q</keycap>, um das - Partitionsmenü zu verlassen. Sie werden das Menü des - Bootmanagers noch ein weiteres Mal gezeigt bekommt. In diesem Fall - wiederholen Sie die Auswahl von vorher.</para> + dem Typ der Partition gefragt werden, stellen Sie sicher, + dass der Wert auf <literal>165</literal> eingestellt ist. + Schreiben Sie jetzt diese Partitionstabelle auf die Platte + durch betätigen der Taste <keycap>w</keycap> (dies ist die + versteckte Option auf diesem Bildschirm). Wenn Sie eine + ATA-kompatible Compact Flash-Karte verwenden, sollten Sie + den &os; Bootmanager auswählen. Drücken Sie nun die Taste + <keycap>q</keycap>, um das Partitionsmenü zu verlassen. Sie + werden das Menü des Bootmanagers noch ein weiteres Mal + gezeigt bekommt. In diesem Fall wiederholen Sie die Auswahl + von vorher.</para> </step> <step> @@ -285,27 +299,28 @@ pseudo-device md # memory disk</programlisting> Flashspeicher-Gerät</title> <para>Verlassen Sie das Installationsmenü und wählen Sie aus - dem Hauptinstallationsmenü die Option <literal>fixit</literal>. - In der fixit-Umgebung angelangt, geben Sie den folgenden Befehl - ein:</para> + dem Hauptinstallationsmenü die Option + <literal>fixit</literal>. In der fixit-Umgebung angelangt, + geben Sie den folgenden Befehl ein:</para> <screen>&prompt.root; <userinput>disklabel -e /dev/ad0c</userinput></screen> - <para>Zu diesem Zeitpunkt sollten Sie sich im vi-Editor unter der - Herrschaft des disklabel-Kommandos befinden. Als nächstes - müssen Sie die eine <literal>a:</literal>-Zeile an das Ende der - Datei hinzufügen. Diese - <literal>a:</literal>-Zeile sollte wie folgt aussehen:</para> + <para>Zu diesem Zeitpunkt sollten Sie sich im vi-Editor unter + der Herrschaft des disklabel-Kommandos befinden. Als + nächstes müssen Sie die eine <literal>a:</literal>-Zeile an + das Ende der Datei hinzufügen. Diese + <literal>a:</literal>-Zeile sollte wie folgt + aussehen:</para> <programlisting>a: <replaceable>123456</replaceable> 0 4.2BSD 0 0</programlisting> - <para>Wobei <replaceable>123456</replaceable> eine Zahl darstellt, die - exakt der gleichen Zahl in der bestehenden Zeile mit dem - <literal>c:</literal>-Eintrag entspricht. Sie kopieren quasi - die bestehende Zeile <literal>c:</literal> als eine neue Zeile - <literal>a:</literal> und stellen sicher, dass fstype - <literal>4.2BSD</literal> entspricht. Speichern Sie die Datei und - verlassen Sie den Editor.</para> + <para>Wobei <replaceable>123456</replaceable> eine Zahl + darstellt, die exakt der gleichen Zahl in der bestehenden + Zeile mit dem <literal>c:</literal>-Eintrag entspricht. Sie + kopieren quasi die bestehende Zeile <literal>c:</literal> + als eine neue Zeile <literal>a:</literal> und stellen + sicher, dass fstype <literal>4.2BSD</literal> entspricht. + Speichern Sie die Datei und verlassen Sie den Editor.</para> <screen>&prompt.root; <userinput>disklabel -B -r /dev/ad0c</userinput> &prompt.root; <userinput>newfs /dev/ad0a</userinput></screen> @@ -318,24 +333,26 @@ pseudo-device md # memory disk</programlisting> <screen>&prompt.root; <userinput>mount /dev/ad0a /flash</userinput></screen> - <para>Verbinden Sie diese Maschine mit dem Netzwerk, um die tar-Datei - zu übertragen und extrahieren Sie es auf das Dateisystem des - Flash-Mediums. Ein Beispiel dazu wäre folgendes:</para> + <para>Verbinden Sie diese Maschine mit dem Netzwerk, um die + tar-Datei zu übertragen und extrahieren Sie es auf das + Dateisystem des Flash-Mediums. Ein Beispiel dazu wäre + folgendes:</para> <screen>&prompt.root; <userinput>ifconfig xl0 192.168.0.10 netmask 255.255.255.0</userinput> &prompt.root; <userinput>route add default 192.168.0.1</userinput></screen> - <para>Jetzt da die Maschine ans Netzwerk angeschlossen ist, kopieren - Sie die tar-Datei. An diesem Punkt werden Sie möglicherweise - mit einem Dilemma konfrontiert - sollte Ihr Flash-Speicher - beispielsweise 128 MB gross sein und Ihre tar-Datei grösser - als 64 MB, können Sie ihre tar-Datei auf dem Flash-Speicher - nicht entpacken - Ihnen wird vorher der Speicherplatz ausgehen. Eine - Lösung für dieses Problem, sofern Sie FTP verwenden, ist, - dass Sie die Datei entpacken können, während es von FTP - übertragen wird. Wenn Sie die Übertragung auf diese Weise - durchführen, haben Sie niemals die tar-Datei und deren Inhalt - zur gleichen Zeit auf Ihrem Medium:</para> + <para>Jetzt da die Maschine ans Netzwerk angeschlossen ist, + kopieren Sie die tar-Datei. An diesem Punkt werden Sie + möglicherweise mit einem Dilemma konfrontiert - sollte Ihr + Flash-Speicher beispielsweise 128 MB gross sein und + Ihre tar-Datei grösser als 64 MB, können Sie ihre + tar-Datei auf dem Flash-Speicher nicht entpacken - Ihnen + wird vorher der Speicherplatz ausgehen. Eine Lösung für + dieses Problem, sofern Sie FTP verwenden, ist, dass Sie die + Datei entpacken können, während es von FTP übertragen wird. + Wenn Sie die Übertragung auf diese Weise durchführen, haben + Sie niemals die tar-Datei und deren Inhalt zur gleichen Zeit + auf Ihrem Medium:</para> <screen><prompt>ftp></prompt> <userinput>get tarfile.tar "| tar xvf -"</userinput></screen> @@ -344,19 +361,20 @@ pseudo-device md # memory disk</programlisting> <screen><prompt>ftp></prompt> <userinput>get tarfile.tar "| zcat | tar xvf -"</userinput></screen> - <para>Nachdem der Inhalt Ihrer tar-Datei auf dem Dateisystem des - Flash-Mediums abgelegt wurden, können Sie den Flash-Speicher - aushängen und neu starten:</para> + <para>Nachdem der Inhalt Ihrer tar-Datei auf dem Dateisystem + des Flash-Mediums abgelegt wurden, können Sie den + Flash-Speicher aushängen und neu starten:</para> <screen>&prompt.root; <userinput>cd /</userinput> &prompt.root; <userinput>umount /flash</userinput> &prompt.root; <userinput>exit</userinput></screen> - <para>In der Annahme, dass Sie Ihr Dateisystem richtig konfiguriert - haben, als es noch auf der gewöhnlichen Festplatte gebaut wurde - (mit Ihren Nur-Lese-Dateisystemen und den nötigen Optionen im - Kernel), sollten Sie nun erfolgreich von Ihrem &os; Embedded-System - starten können.</para> + <para>In der Annahme, dass Sie Ihr Dateisystem richtig + konfiguriert haben, als es noch auf der gewöhnlichen + Festplatte gebaut wurde (mit Ihren Nur-Lese-Dateisystemen + und den nötigen Optionen im Kernel), sollten Sie nun + erfolgreich von Ihrem &os; Embedded-System starten + können.</para> </step> </procedure> </sect1> @@ -364,13 +382,14 @@ pseudo-device md # memory disk</programlisting> <sect1 id="strategies"> <title>Systemstrategien für kleine und Nur-Lese-Umgebungen</title> - <para>In <xref linkend="ro-fs"/> wurde darauf hingewiesen, dass das - <filename>/var</filename>-Dateisystem von - <filename>/etc/rc.d/var</filename> konstruiert wurde und die Präsenz - eines Nur-Lese-Wurzeldateisystems Probleme mit vielen in &os; - gebrächlichen Softwarepaketen verursacht. In diesem Artikel werden - Vorschläge für das erfolgreiche Betreiben von cron, syslog, - Installationen von Ports und dem Apache-Webserver unterbreitet.</para> + <para>In <xref linkend="ro-fs"/> wurde darauf hingewiesen, dass + das <filename>/var</filename>-Dateisystem von + <filename>/etc/rc.d/var</filename> konstruiert wurde und die + Präsenz eines Nur-Lese-Wurzeldateisystems Probleme mit vielen in + &os; gebrächlichen Softwarepaketen verursacht. In diesem + Artikel werden Vorschläge für das erfolgreiche Betreiben von + cron, syslog, Installationen von Ports und dem Apache-Webserver + unterbreitet.</para> <sect2> <title>cron</title> @@ -385,36 +404,39 @@ pseudo-device md # memory disk</programlisting> Standardverzeichnisse erstellt werden.</para> <para>Jedoch löst das noch nicht das Problem, Crontabs über - Neustarts des Systems hinaus zu erhalten. Wenn das System neu - gestartet wird, verschwindet das <filename>/var</filename>-Dateiystem, - welches sich im Hauptspeicher befunden hat und jegliche Crontabs, die - Sie hatten werden ebenfalls verschwinden. Aus diesem Grund besteht eine - Lösung darin, Crontabs für diejenigen Benutzer zu erstellen, - die diese auch benötigen. Dazu sollte das - <filename>/</filename>-Dateisystem lesend und schreibend - eingehängt und diese Crontabs an einen sicheren Ort kopiert - werden, wie beispielsweise <filename>/etc/tabs</filename>. Fügen - Sie dann eine Zeile an das Ende der Datei - <filename>/etc/rc.initdiskless</filename> hinzu, die diese Crontabs in - <filename>/var/cron/tabs</filename> kopiert, nachdem dieses Verzeichnis - während der Systeminitialisierung erstellt wurde. Sie werden auch - eine Zeile hinzufügen mössen, welche die Besitzer und - Berechtigungen auf diesen Verzeichnissen, die Sie erstellen und den - dazugehörigen Dateien, die Sie mittels - <filename>/etc/rc.initdiskless</filename> kopieren, setzen.</para> + Neustarts des Systems hinaus zu erhalten. Wenn das System neu + gestartet wird, verschwindet das + <filename>/var</filename>-Dateiystem, welches sich im + Hauptspeicher befunden hat und jegliche Crontabs, die Sie + hatten werden ebenfalls verschwinden. Aus diesem Grund besteht + eine Lösung darin, Crontabs für diejenigen Benutzer zu + erstellen, die diese auch benötigen. Dazu sollte das + <filename>/</filename>-Dateisystem lesend und schreibend + eingehängt und diese Crontabs an einen sicheren Ort kopiert + werden, wie beispielsweise <filename>/etc/tabs</filename>. + Fügen Sie dann eine Zeile an das Ende der Datei + <filename>/etc/rc.initdiskless</filename> hinzu, die diese + Crontabs in <filename>/var/cron/tabs</filename> kopiert, + nachdem dieses Verzeichnis während der Systeminitialisierung + erstellt wurde. Sie werden auch eine Zeile hinzufügen mössen, + welche die Besitzer und Berechtigungen auf diesen + Verzeichnissen, die Sie erstellen und den dazugehörigen + Dateien, die Sie mittels + <filename>/etc/rc.initdiskless</filename> kopieren, + setzen.</para> </sect2> <sect2> <title>syslog</title> - <para>Die Datei <filename>syslog.conf</filename> spezifiziert den Ort von - bestimmten Logdateien, welche in <filename>/var/log</filename> - existieren. Diese Dateien werden nicht von - <filename>/etc/rc.d/var</filename> während der - Systeminitialisierung erstellt. Aus diesem Grund müssen Sie - irgendwo in <filename>/etc/rc.d/var</filename> nach dem Abschnitt, der - die Verzeichnisse in <filename>/var</filename> erstellt, eine Zeile - ähnlich der folgenden hinzufügen:</para> + <para>Die Datei <filename>syslog.conf</filename> spezifiziert + den Ort von bestimmten Logdateien, welche in + <filename>/var/log</filename> existieren. Diese Dateien + werden nicht von <filename>/etc/rc.d/var</filename> während + der Systeminitialisierung erstellt. Aus diesem Grund müssen + Sie irgendwo in <filename>/etc/rc.d/var</filename> nach dem + Abschnitt, der die Verzeichnisse in <filename>/var</filename> + erstellt, eine Zeile ähnlich der folgenden hinzufügen:</para> <screen>&prompt.root; <userinput>touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages</userinput> &prompt.root; <userinput>chmod 0644 /var/log/*</userinput></screen> @@ -424,56 +446,60 @@ pseudo-device md # memory disk</programlisting> <title>Installation von Ports</title> <para>Bevor die notwendigen Änderungen erkärt werden, einen - Ports-Baum zu verwenden, ist es notwendig, Sie an die - Nur-Lese-Besonderheit Ihres Dateisystems auf dem Flash-Medium zu - erinnern. Da dieses nur lesend verfügbar ist, müssen Sie es - vorübergehend mit Schreibrechten ausstatten, indem Sie die - mount-Syntax, wie in <xref linkend="ro-fs"/> dargestellt wird, - verwenden. Sie sollten immer diese Dateisysteme erneut mit - nur-Lese-Rechten einhängen wenn Sie damit fertig sind - - unnötige Schreibvorgänge auf dem Flash-Medium kann dessen - Lebenszeit erheblich verkürzen.</para> + Ports-Baum zu verwenden, ist es notwendig, Sie an die + Nur-Lese-Besonderheit Ihres Dateisystems auf dem Flash-Medium + zu erinnern. Da dieses nur lesend verfügbar ist, müssen Sie + es vorübergehend mit Schreibrechten ausstatten, indem Sie die + mount-Syntax, wie in <xref linkend="ro-fs"/> dargestellt wird, + verwenden. Sie sollten immer diese Dateisysteme erneut mit + nur-Lese-Rechten einhängen wenn Sie damit fertig sind - + unnötige Schreibvorgänge auf dem Flash-Medium kann dessen + Lebenszeit erheblich verkürzen.</para> <para>Um es zu ermöglichen, in das Ports-Verzeichnis zu wechseln - und erfolgreich - <command>make</command> <maketarget>install</maketarget> - auszuführen, müssen wir ein Paketverzeichnis auf einem - Nicht-Hauptspeicherdateisystem erstellen, welches die Pakete über - Neustarts hinweg im Auge behält. Weil es sowieso nötig ist, - Ihre Dateisysteme mit Lese-Schreibrechten für die Installation - eines Pakets einzuhängen, ist es sinnvoll anzunehmen, dass ein - Bereich Ihres Flash-Mediums ebenfalls für Paketinformationen, die - darauf abgespeichert werden, verwendet wird.</para> - - <para>Erstellen Sie zuerst ein Verzeichnis für die Paketdatenbank. - Normalerweise ist dies <filename>/var/db/pkg</filename>, jedoch - können wir es dort nicht unterbringen, da es jedesmal verschwinden - wird, wenn das System neu gestartet wird.</para> + und erfolgreich <command>make</command> + <maketarget>install</maketarget> auszuführen, müssen wir ein + Paketverzeichnis auf einem Nicht-Hauptspeicherdateisystem + erstellen, welches die Pakete über Neustarts hinweg im Auge + behält. Weil es sowieso nötig ist, Ihre Dateisysteme mit + Lese-Schreibrechten für die Installation eines Pakets + einzuhängen, ist es sinnvoll anzunehmen, dass ein Bereich + Ihres Flash-Mediums ebenfalls für Paketinformationen, die + darauf abgespeichert werden, verwendet wird.</para> + + <para>Erstellen Sie zuerst ein Verzeichnis für die + Paketdatenbank. Normalerweise ist dies + <filename>/var/db/pkg</filename>, jedoch können wir es dort + nicht unterbringen, da es jedesmal verschwinden wird, wenn das + System neu gestartet wird.</para> <screen>&prompt.root; <userinput>mkdir /etc/pkg</userinput></screen> - <para>Fügen Sie nun eine Zeile in <filename>/etc/rc.d/var</filename> - hinzu, welche das <filename>/etc/pkg</filename>-Verzeichnis mit - <filename>/var/db/pkg</filename> verknüpft. Ein Beispiel:</para> + <para>Fügen Sie nun eine Zeile in + <filename>/etc/rc.d/var</filename> hinzu, welche das + <filename>/etc/pkg</filename>-Verzeichnis mit + <filename>/var/db/pkg</filename> verknüpft. Ein + Beispiel:</para> <screen>&prompt.root; <userinput>ln -s /etc/pkg /var/db/pkg</userinput></screen> <para>Nun wird jedes Mal, wenn Sie Ihre Dateisysteme mit - Lese-Schreibrechten einbinden und ein Paket installieren, der Befehl - <command>make</command> <maketarget>install</maketarget> funktionieren - und Paketinformationen werden erfolgreich nach - <filename>/etc/pkg</filename> geschrieben (da zu diesem Zeitpunkt das - Dateisystem mit Lese-Schreibrechten eingebunden ist), welche dann stets - dem Betriebssystem als <filename>/var/db/pkg</filename> zur - Verfügung stehen.</para> + Lese-Schreibrechten einbinden und ein Paket installieren, der + Befehl <command>make</command> + <maketarget>install</maketarget> funktionieren und + Paketinformationen werden erfolgreich nach + <filename>/etc/pkg</filename> geschrieben (da zu diesem + Zeitpunkt das Dateisystem mit Lese-Schreibrechten eingebunden + ist), welche dann stets dem Betriebssystem als + <filename>/var/db/pkg</filename> zur Verfügung stehen.</para> </sect2> <sect2> <title>Apache Webserver</title> <note> - <para>Die Anweisungen in diesem Abschnitt sind nur notwendig, wenn - Apache so eingerichtet ist, dass dieser seine PID oder + <para>Die Anweisungen in diesem Abschnitt sind nur notwendig, + wenn Apache so eingerichtet ist, dass dieser seine PID oder Protokollierungsinformationen ausserhalb von <filename class="directory">/var</filename> ablegt. Standardmässig bewahrt Apache seine PID-Datei in <filename @@ -482,28 +508,31 @@ pseudo-device md # memory disk</programlisting> class="directory">/var/log</filename> auf.</para> </note> - <para>Es wird nun davon ausgegangen, dass Apache seine Protokolldateien - in einem Verzeichnis namens <filename + <para>Es wird nun davon ausgegangen, dass Apache seine + Protokolldateien in einem Verzeichnis namens <filename class="directory"><replaceable>apache_log_dir</replaceable></filename> - ausserhalb von <filename class="directory">/var</filename> speichert. - Wenn dieses Verzeichnis auf einem nur-Lese-Dateisystem existiert, wird - Apache nicht in der Lage sein, Protokolldateien zu speichern und wird - vermutlich nicht richtig funktionieren. Wenn dies der Fall ist, muss - ein neues Verzeichnis zu der Liste der Verzeichnisse in - <filename>/etc/rc.d/var</filename> hinzugefügt werden, um dieses - in <filename>/var</filename> zu erstellen und um <filename + ausserhalb von <filename class="directory">/var</filename> + speichert. Wenn dieses Verzeichnis auf einem + nur-Lese-Dateisystem existiert, wird Apache nicht in der Lage + sein, Protokolldateien zu speichern und wird vermutlich nicht + richtig funktionieren. Wenn dies der Fall ist, muss ein neues + Verzeichnis zu der Liste der Verzeichnisse in + <filename>/etc/rc.d/var</filename> hinzugefügt werden, um + dieses in <filename>/var</filename> zu erstellen und um + <filename class="directory"><replaceable>apache_log_dir</replaceable></filename> - nach <filename>/var/log/apache</filename> zu verknüpfen. Es ist - auch nötig, Berechtigungen und Besitzer auf diesem neuen + nach <filename>/var/log/apache</filename> zu verknüpfen. Es + ist auch nötig, Berechtigungen und Besitzer auf diesem neuen Verzeichnis zu setzen.</para> - <para>Fügen Sie zuerst das Verzeichnis <literal>log/apache</literal> - zu der Liste von Verzeichnissen hinzu, die in - <filename>/etc/rc.d/var</filename> angelegt werden sollen.</para> + <para>Fügen Sie zuerst das Verzeichnis + <literal>log/apache</literal> zu der Liste von Verzeichnissen + hinzu, die in <filename>/etc/rc.d/var</filename> angelegt + werden sollen.</para> <para>Danach tragen Sie die folgenden Befehle in - <filename>/etc/rc.d/var</filename> nach dem Abschnitt zum Erstellen der - Verzeichnisse ein:</para> + <filename>/etc/rc.d/var</filename> nach dem Abschnitt zum + Erstellen der Verzeichnisse ein:</para> <screen>&prompt.root; <userinput>chmod 0774 /var/log/apache</userinput> &prompt.root; <userinput>chown nobody:nobody /var/log/apache</userinput></screen> diff --git a/de_DE.ISO8859-1/books/developers-handbook/Makefile b/de_DE.ISO8859-1/books/developers-handbook/Makefile index d95d600e9a..375e408711 100644 --- a/de_DE.ISO8859-1/books/developers-handbook/Makefile +++ b/de_DE.ISO8859-1/books/developers-handbook/Makefile @@ -23,11 +23,11 @@ INSTALL_ONLY_COMPRESSED?= IMAGES_EN= sockets/layers.eps sockets/sain.eps sockets/sainfill.eps sockets/sainlsb.eps sockets/sainmsb.eps sockets/sainserv.eps sockets/serv.eps sockets/serv2.eps sockets/slayers.eps # -# SRCS lists the individual SGML files that make up the document. Changes +# SRCS lists the individual XML files that make up the document. Changes # to any of these files will force a rebuild # -# SGML content +# XML content SRCS= book.xml SRCS+= introduction/chapter.xml SRCS+= ipv6/chapter.xml diff --git a/de_DE.ISO8859-1/books/faq/Makefile b/de_DE.ISO8859-1/books/faq/Makefile index ab4bd96f55..ab7732fd7e 100644 --- a/de_DE.ISO8859-1/books/faq/Makefile +++ b/de_DE.ISO8859-1/books/faq/Makefile @@ -20,11 +20,11 @@ INSTALL_ONLY_COMPRESSED?= WITH_BIBLIOXREF_TITLE?=YES # -# SRCS lists the individual SGML files that make up the document. Changes +# SRCS lists the individual XML files that make up the document. Changes # to any of these files will force a rebuild # -# SGML content +# XML content SRCS= book.xml URL_RELPREFIX?= ../../../.. diff --git a/de_DE.ISO8859-1/books/fdp-primer/Makefile b/de_DE.ISO8859-1/books/fdp-primer/Makefile index e65b36fd2a..eab8b29286 100644 --- a/de_DE.ISO8859-1/books/fdp-primer/Makefile +++ b/de_DE.ISO8859-1/books/fdp-primer/Makefile @@ -15,11 +15,11 @@ INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= # -# SRCS lists the individual SGML files that make up the document. Changes +# SRCS lists the individual XML files that make up the document. Changes # to any of these files will force a rebuild # -# SGML content +# XML content SRCS= book.xml SRCS+= overview/chapter.xml SRCS+= psgml-mode/chapter.xml diff --git a/de_DE.ISO8859-1/books/handbook/Makefile b/de_DE.ISO8859-1/books/handbook/Makefile index a14145b020..5787f7d20e 100644 --- a/de_DE.ISO8859-1/books/handbook/Makefile +++ b/de_DE.ISO8859-1/books/handbook/Makefile @@ -224,11 +224,11 @@ IMAGES_LIB+= callouts/14.png IMAGES_LIB+= callouts/15.png # -# SRCS lists the individual SGML files that make up the document. Changes +# SRCS lists the individual XML files that make up the document. Changes # to any of these files will force a rebuild # -# SGML content +# XML content SRCS+= audit/chapter.xml SRCS+= book.xml SRCS+= bsdinstall/chapter.xml @@ -275,8 +275,8 @@ SRCS+= chapters.ent # alle Kapitel bauen CHAPTERS?= ${SRCS:M*chapter.xml} -SGMLFLAGS+= ${CHAPTERS:S/\/chapter.xml//:S/^/-i chap./} -SGMLFLAGS+= -i chap.freebsd-glossary +XMLFLAGS+= ${CHAPTERS:S/\/chapter.xml//:S/^/-i chap./} +XMLFLAGS+= -i chap.freebsd-glossary pgpkeyring: pgpkeys/chapter.xml @${JADE} -V nochunks ${OTHERFLAGS} ${JADEOPTS} -d ${DSLPGP} -t sgml ${MASTERDOC} diff --git a/de_DE.ISO8859-1/books/porters-handbook/Makefile b/de_DE.ISO8859-1/books/porters-handbook/Makefile index 06df80a74d..82650b4629 100644 --- a/de_DE.ISO8859-1/books/porters-handbook/Makefile +++ b/de_DE.ISO8859-1/books/porters-handbook/Makefile @@ -15,11 +15,11 @@ INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= # -# SRCS lists the individual SGML files that make up the document. Changes +# SRCS lists the individual XML files that make up the document. Changes # to any of these files will force a rebuild # -# SGML content +# XML content SRCS= book.xml # Use the local DSSSL file diff --git a/de_DE.ISO8859-1/htdocs/Makefile b/de_DE.ISO8859-1/htdocs/Makefile index 8ac43c6614..994a4a20c8 100644 --- a/de_DE.ISO8859-1/htdocs/Makefile +++ b/de_DE.ISO8859-1/htdocs/Makefile @@ -36,7 +36,7 @@ DOCS+= where.xml #DATA+= vendors.html # Subdirectories -# SGML +# XML SUBDIR= community SUBDIR+= developers SUBDIR+= docproj @@ -61,7 +61,7 @@ SUBDIR+= doc SUBDIR+= relnotes .endif -# Non-SGML +# Non-XML SUBDIR+= gifs WEBDIR?= data/de diff --git a/de_DE.ISO8859-1/htdocs/administration.xml b/de_DE.ISO8859-1/htdocs/administration.xml index 688b7f62d3..e2e635e38e 100644 --- a/de_DE.ISO8859-1/htdocs/administration.xml +++ b/de_DE.ISO8859-1/htdocs/administration.xml @@ -2,7 +2,7 @@ <!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN" "http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [ <!ENTITY dedate "$FreeBSDde$"> -<!ENTITY reference "basiert auf: r39260"> +<!ENTITY reference "basiert auf: r39867"> <!ENTITY title "FreeBSD Project - Administration und Management"> ]> @@ -44,7 +44,7 @@ <li><a href="#t-donations">Donations Team</a></li> <li><a href="#t-marketing">Marketing Team</a></li> <li><a href="#t-secteam">Security Team</a></li> - <li><a href="#t-vendor">Vendor Relations Team</a></li> + <li><a href="#t-vendor">Vendor Relations</a></li> </ul> </li> <li>Sekretäre @@ -62,7 +62,6 @@ <li><a href="#t-bugmeister">Bugmeisters & GNATS Administrators</a></li> <li><a href="#t-clusteradm">Cluster Administrators</a></li> - <li><a href="#t-dcvs">CVS doc/www Repository Managers</a></li> <li><a href="#t-pcvs">CVS ports Repository Managers</a></li> <li><a href="#t-ncvs">CVS src Repository Managers</a></li> <li><a href="#t-cvsup-master">CVSup Mirror Site @@ -133,12 +132,11 @@ <li>&a.tabthorpe; <<a href="mailto:tabthorpe@FreeBSD.org">tabthorpe@FreeBSD.org</a>></li> <li>&a.marcus; <<a href="mailto:marcus@FreeBSD.org">marcus@FreeBSD.org</a>></li> <li>&a.bapt; <<a href="mailto:bapt@FreeBSD.org">bapt@FreeBSD.org</a>></li> + <li>&a.decke; <<a href="mailto:decke@FreeBSD.org">decke@FreeBSD.org</a>></li> <li>&a.beat; <<a href="mailto:beat@FreeBSD.org">beat@FreeBSD.org</a>></li> <li>&a.erwin; <<a href="mailto:erwin@FreeBSD.org">erwin@FreeBSD.org</a>></li> <li>&a.linimon; <<a href="mailto:linimon@FreeBSD.org">linimon@FreeBSD.org</a>></li> - <li>&a.pav; <<a href="mailto:pav@FreeBSD.org">pav@FreeBSD.org</a>></li> <li>&a.itetcu; <<a href="mailto:itetcu@FreeBSD.org">itetcu@FreeBSD.org</a>></li> - <li>&a.flz; <<a href="mailto:flz@FreeBSD.org">flz@FreeBSD.org</a>></li> <li>&a.miwi; <<a href="mailto:miwi@FreeBSD.org">miwi@FreeBSD.org</a>></li> </ul> @@ -163,8 +161,6 @@ <li>&a.hrs; <<a href="mailto:hrs@FreeBSD.org">hrs@FreeBSD.org</a>></li> <li>&a.kensmith; <<a href="mailto:kensmith@FreeBSD.org">kensmith@FreeBSD.org</a>> (Lead)</li> - <li>&a.rwatson; <<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>></li> - <li>&a.bz; <<a href="mailto:bz@FreeBSD.org">bz@FreeBSD.org</a>></li> </ul> <h3><a name="t-re-builder">Builders Release Engineering Team</a> @@ -177,6 +173,7 @@ <ul> <li>&a.marcel; <<a href="mailto:marcel@FreeBSD.org">marcel@FreeBSD.org</a>></li> <li>&a.nyan; <<a href="mailto:nyan@FreeBSD.org">nyan@FreeBSD.org</a>></li> + <li>&a.nwhitehorn; <<a href="mailto:nwhitehorn@FreeBSD.org">nwhitehorn@FreeBSD.org</a>></li> </ul> <hr/> @@ -192,8 +189,8 @@ href="&enbase;/donations/">FreeBSD Donations Liaison</a>.</p> <ul> + <li>&a.tabthorpe; <<a href="mailto:tabthorpe@FreeBSD.org">tabthorpe@FreeBSD.org</a>></li> <li>&a.gjb; <<a href="mailto:gjb@FreeBSD.org">gjb@FreeBSD.org</a>></li> - <li>&a.wilko; <<a href="mailto:wilko@FreeBSD.org">wilko@FreeBSD.org</a>></li> <li>&a.gahr; <<a href="mailto:gahr@FreeBSD.org">gahr@FreeBSD.org</a>></li> <li>&a.pgollucci; <<a href="mailto:pgolluci@FreeBSD.org">pgolluci@FreeBSD.org</a>></li> <li>&a.skreuzer; <<a href="mailto:skreuzer@FreeBSD.org">skreuzer@FreeBSD.org</a>></li> @@ -245,25 +242,29 @@ Verantwortungsbereiche des Security Officers ausführlich.</p> <ul> + <li>&a.benl; <<a href="mailto:benl@FreeBSD.org">benl@FreeBSD.org</a>></li> <li>&a.bz; <<a href="mailto:bz@FreeBSD.org">bz@FreeBSD.org</a>></li> <li>&a.cperciva; <<a href="mailto:cperciva@FreeBSD.org">cperciva@FreeBSD.org</a>></li> <li>&a.csjp; <<a href="mailto:csjp@FreeBSD.org">csjp@FreeBSD.org</a>></li> <li>&a.delphij; <<a href="mailto:delphij@FreeBSD.org">delphij@FreeBSD.org</a>></li> - <li>&a.miwi; <<a href="mailto:miwi@FreeBSD.org">miwi@FreeBSD.org</a>></li> + <li>&a.des; <<a href="mailto:des@FreeBSD.org">des@FreeBSD.org</a>></li> + <li>&a.gavin; <<a href="mailto:gavin@FreeBSD.org">gavin@FreeBSD.org</a>></li> + <li>&a.jonathan; <<a href="mailto:jonathan@FreeBSD.org">jonathan@FreeBSD.org</a>></li> <li>&a.philip; <<a href="mailto:philip@FreeBSD.org">philip@FreeBSD.org</a>></li> - <li>&a.qingli; <<a href="mailto:qingli@FreeBSD.org">qingli@FreeBSD.org</a>></li> <li>&a.remko; <<a href="mailto:remko@FreeBSD.org">remko@FreeBSD.org</a>></li> - <li>&a.rwatson; <<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>> - (Core Team Liaison)</li> + <li>&a.rwatson; <<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>></li> <li>&a.simon; <<a href="mailto:simon@FreeBSD.org">simon@FreeBSD.org</a>> (Officer)</li> <li>&a.stas; <<a href="mailto:stas@FreeBSD.org">stas@FreeBSD.org</a>></li> </ul> - <h3><a name="t-vendor">Vendor Relations Team</a> + <h3><a name="t-vendor">Vendor Relations</a> <<a href="mailto:vendor-relations@FreeBSD.org">vendor-relations@FreeBSD.org</a>></h3> - <p>Ansprechpartner für Unternehmen und Verkäufer.</p> + <p>&os; Vendor Relations ist für die Bearbeitung der E-Mails + von Hard- und Softwareverkäufern verantwortlich. An Vendor + Relations geschickte E-Mails werden zusätzlich an das + &os; Core Team sowie die &os; Foundation weitergeleitet.</p> <ul> <li>&a.gioria; <<a href="mailto:gioria@FreeBSD.org">gioria@FreeBSD.org</a>></li> @@ -364,10 +365,10 @@ ungültige Einträge.</p> <ul> + <li>&a.eadler; < <a href="mailto:eadler@FreeBSD.org">eadler@FreeBSD.org</a>></li> <li>&a.gavin; <<a href="mailto:gavin@FreeBSD.org">gavin@FreeBSD.org</a>></li> + <li>&a.gonzo; <<a href="mailto:gonzo@FreeBSD.org">gonzo@FreeBSD.org</a>></li> <li>&a.linimon; <<a href="mailto:linimon@FreeBSD.org">linimon@FreeBSD.org</a>></li> - <li>&a.remko; <<a href="mailto:remko@FreeBSD.org">remko@FreeBSD.org</a>></li> - <li>&a.vwe; <<a href="mailto:vwe@FreeBSD.org">vwe@FreeBSD.org</a>></li> </ul> <h3><a name="t-clusteradm">Cluster Administrator</a> @@ -384,30 +385,12 @@ werden.</p> <ul> + <li>&a.bhaga; <<a href="mailto:bhaga@FreeBSD.org">bhaga@FreeBSD.org</a>></li> <li>&a.brd; <<a href="mailto:brd@FreeBSD.org">brd@FreeBSD.org</a>></li> - <li>&a.billf; <<a href="mailto:billf@FreeBSD.org">billf@FreeBSD.org</a>></li> - <li>&a.simon; <<a href="mailto:simon@FreeBSD.org">simon@FreeBSD.org</a>></li> - <li>&a.ps; <<a href="mailto:ps@FreeBSD.org">ps@FreeBSD.org</a>></li> <li>&a.kensmith; <<a href="mailto:kensmith@FreeBSD.org">kensmith@FreeBSD.org</a>></li> <li>&a.peter; <<a href="mailto:peter@FreeBSD.org">peter@FreeBSD.org</a>></li> - </ul> - - <h3><a name="t-dcvs">CVS doc/www Repository Manager</a> - <<a href="mailto:dcvs@FreeBSD.org">dcvs@FreeBSD.org</a>></h3> - - <p>CVS doc/www Repository Manager dürfen das doc/www-Repository - ohne CVS-Mittel modifizieren. Sie achten darauf, dass Probleme - innerhalb des Repositories umgehend gelöst werden. - CVS www/doc Repository Manager haben das Recht, Committs - rückgängig zu machen, falls dies zur Lösung eines - CVS-Problems erforderlich ist. Anfragen bezüglich - Repo-copies sollten ebenfalls direkt an die Repository Manager - gestellt werden.</p> - - <ul> - <li>&a.joe; <<a href="mailto:joe@FreeBSD.org">joe@FreeBSD.org</a>></li> - <li>&a.kuriyama; <<a href="mailto:kuriyama@FreeBSD.org">kuriyama@FreeBSD.org</a>></li> - <li>&a.markm; <<a href="mailto:markm@FreeBSD.org">markm@FreeBSD.org</a>></li> + <li>&a.gioria; <<a href="mailto:gioria@FreeBSD.org">gioria@FreeBSD.org</a>></li> + <li>&a.sbruno; <<a href="mailto:sbruno@FreeBSD.org">sbruno@FreeBSD.org</a>></li> <li>&a.simon; <<a href="mailto:simon@FreeBSD.org">simon@FreeBSD.org</a>></li> </ul> @@ -475,7 +458,6 @@ <p>DNS Administrators verwalten DNS und verwandte Dienste.</p> <ul> - <li>&a.billf; <<a href="mailto:billf@FreeBSD.org">billf@FreeBSD.org</a>></li> <li>&a.dg; <<a href="mailto:dg@FreeBSD.org">dg@FreeBSD.org</a>></li> <li>&a.ps; <<a href="mailto:ps@FreeBSD.org">ps@FreeBSD.org</a>></li> <li>&a.kensmith; <<a href="mailto:kensmith@FreeBSD.org">kensmith@FreeBSD.org</a>></li> @@ -525,6 +507,7 @@ <ul> <li>&a.jmb; <<a href="mailto:jmb@FreeBSD.org">jmb@FreeBSD.org</a>></li> <li>&a.brd; <<a href="mailto:brd@FreeBSD.org">brd@FreeBSD.org</a>></li> + <li>&a.flo; <<a href="mailto:flo@FreeBSD.org">flo@FreeBSD.org</a>></li> <li>&a.sahil; <<a href="mailto:sahil@FreeBSD.org">sahil@FreeBSD.org</a>></li> <li>&a.dhw; <<a href="mailto:dhw@FreeBSD.org">dhw@FreeBSD.org</a>></li> </ul> diff --git a/de_DE.ISO8859-1/htdocs/community.xsl b/de_DE.ISO8859-1/htdocs/community.xsl index d8831d99b8..5b61e2f0ae 100644 --- a/de_DE.ISO8859-1/htdocs/community.xsl +++ b/de_DE.ISO8859-1/htdocs/community.xsl @@ -6,17 +6,19 @@ ]> <!-- $FreeBSD$ --> -<!-- $FreeBSDde: de-www/community.xsl,v 1.7 2011/08/01 09:27:32 jkois Exp $ --> -<!-- basiert auf: 1.9 --> +<!-- $FreeBSDde$ --> +<!-- basiert auf: r40558 --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns="http://www.w3.org/1999/xhtml"> + xmlns:date="http://exslt.org/dates-and-times" + xmlns="http://www.w3.org/1999/xhtml" + extension-element-prefixes="date"> <xsl:import href="http://www.FreeBSD.org/XML/www/lang/share/xml/libcommon.xsl"/> <xsl:import href="http://www.FreeBSD.org/XML/www/share/xml/xhtml.xsl"/> - <xsl:key name="last-year-event-by-country" match="event[number(enddate/year) = (number($curdate.year) - 1)]" + <xsl:key name="last-year-event-by-country" match="event[number(enddate/year) = (number(date:year()) - 1)]" use="location/country" /> <xsl:key name="event-by-year" match="event" use="enddate/year" /> @@ -39,7 +41,7 @@ select="count(document($usergroups.xml)//entry)" /><xsl:text> </xsl:text>--> <a href="&enbase;/usergroups.html">User Groups</a> in - 36 Ländern. <!--<xsl:value-of + 38 Ländern. <!--<xsl:value-of select="count(document($usergroups.xml)//country)" />--> Zusätzlich existiert eine aktive <a href="&base;/community/irc.html">IRC</a>-Gemeinde. @@ -54,10 +56,10 @@ href="&enbase;/community/social.html">Sozialen Netzwerken</a> vertreten.</p> - <p>Letztes Jahr gab es insgesamt 19 <!-- <xsl:value-of + <p>Letztes Jahr gab es insgesamt 9 <!-- <xsl:value-of select="count(/events/event[number(enddate/year) = (number($curdate.year) -1)])" />--> - &os;-Veranstaltungen in 12 <!--<xsl:value-of + &os;-Veranstaltungen in 9 <!--<xsl:value-of select="count(/events/event[(number(enddate/year) = (number($curdate.year) -1)) and (generate-id() = generate-id(key('last-year-event-by-country', diff --git a/de_DE.ISO8859-1/htdocs/features.xml b/de_DE.ISO8859-1/htdocs/features.xml index 8a67bcfe0b..752a9e4e96 100644 --- a/de_DE.ISO8859-1/htdocs/features.xml +++ b/de_DE.ISO8859-1/htdocs/features.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN" "http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [ -<!ENTITY dedate "$FreeBSDde: de-www/features.xml,v 1.22 2008/03/24 14:30:04 jkois Exp $"> -<!ENTITY reference "basiert auf: 1.34"> +<!ENTITY dedate "$FreeBSDde$"> +<!ENTITY reference "basiert auf: r39632"> <!ENTITY title "Die technischen Fortschritte von FreeBSD"> ]> @@ -299,7 +299,7 @@ sichere Shells, Kerberos-Authentifizierung, "virtuelle Server" durch die Verwendung von Jails, den Betrieb von Diensten in chroot-Umgebungen, um den Zugang der Dienste - zum Dateisystem einzuschräken, Secure RPCs sowie + zum Dateisystem einzuschränken, Secure RPCs sowie Zugriffslisten für Dienste, die TCP-Wrapper unterstützen.</p> diff --git a/de_DE.ISO8859-1/htdocs/releases/index.xml b/de_DE.ISO8859-1/htdocs/releases/index.xml index db3b5d4144..9588eb6fdc 100644 --- a/de_DE.ISO8859-1/htdocs/releases/index.xml +++ b/de_DE.ISO8859-1/htdocs/releases/index.xml @@ -2,7 +2,7 @@ <!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN" "http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [ <!ENTITY dedate "$FreeBSDde$"> -<!ENTITY reference "basiert auf: r39198"> +<!ENTITY reference "basiert auf: r40515"> <!ENTITY title "Release Information"> ]> @@ -49,7 +49,7 @@ <h3>Produktion</h3> - <p><b>Release &rel.current;</b> (Januar 2012) <!--(&rel.current.date;) --> + <p><b>Release &rel.current;</b> (Dezember 2012) <!--(&rel.current.date;) --> <em> <a href="&u.rel.announce;">Announcement</a> : <a href="&u.rel.notes;">Release Notes</a> : @@ -96,17 +96,37 @@ href="&enbase;/doc/de_DE.ISO8859-1/books/handbook/current-stable.html#CURRENT">FreeBSD-CURRENT</a> sind ebenfalls verfügbar. Weitere Informationen finden Sie unter <a href="&base;/where.html">FreeBSD Bezugsquellen</a>.</p> - +<!-- <a name="prior-supported"></a> <h2>Alte, aber noch unterstützte Versionen</h2> +--> + <a name="prior-unsupported"></a> - <p>Information zu aktuell unterstützten Versionen sowie - finden Sie auf der Seite <a - href="&base;/security/security.html#sup">&os; - Sicherheit</a>.</p> + <h2>Alte, nicht mehr unterstützte Versionen + (End-of-Life-Versionen)</h2> + + <p>Alle Informationen zu diesen Versionen, darunter Datum der + Veröffentlichung, Versionsart, Ende der + Unterstützung mit Sicherheitsupdates (End-of-Life-Datum) + finden Sie im Abschnitt <a + href="&base;/security/security.html#sup">Unterstützte + FreeBSD-Versionen</a> auf der Seite <a + href="&base;/security/security.html">FreeBSD Sicherheit</a>.</p> <ul> + <li><b>9.0</b> (Januar 2012) + <em> + <a href="&enbase;/releases/9.0R/announce.html">Announcement</a>: + <a href="&enbase;/releases/9.0R/relnotes.html">Release Notes</a>: + <a href="&enbase;/releases/9.0R/installation.html">Installation + Instructions</a>: + <a href="&enbase;/releases/9.0R/hardware.html">Hardware Notes</a>: + <a href="&enbase;/releases/9.0R/readme.html">Readme</a>: + <a href="&enbase;/releases/9.0R/errata.html">Errata</a> + </em> + </li> + <li><b>8.2</b> (Februar 2011) <em> <a href="&enbase;/releases/8.2R/announce.html">Announcement</a>: @@ -126,22 +146,7 @@ <a href="&enbase;/releases/8.1R/errata.html">Errata</a> </em> </li> - </ul> - <a name="prior-unsupported"></a> - - <h2>Alte, nicht mehr unterstützte Versionen - (End-of-Life-Versionen)</h2> - - <p>Alle Informationen zu diesen Versionen, darunter Datum der - Veröffentlichung, Versionsart, Ende der - Unterstützung mit Sicherheitsupdates (End-of-Life-Datum) - finden Sie im Abschnitt <a - href="&base;/security/security.html#sup">Unterstützte - FreeBSD-Versionen</a> auf der Seite <a - href="&base;/security/security.html">FreeBSD Sicherheit</a>.</p> - - <ul> <li><b>8.0</b> (November 2009) <em> <a href="&enbase;/releases/8.0R/announce.html">Announcement</a>: diff --git a/de_DE.ISO8859-1/htdocs/security/security.xml b/de_DE.ISO8859-1/htdocs/security/security.xml index 27fb357876..9099481997 100644 --- a/de_DE.ISO8859-1/htdocs/security/security.xml +++ b/de_DE.ISO8859-1/htdocs/security/security.xml @@ -2,7 +2,7 @@ <!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN" "http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [ <!ENTITY dedate "$FreeBSDde$"> -<!ENTITY reference "basiert auf: r39195"> +<!ENTITY reference "basiert auf: r39632"> <!ENTITY title "FreeBSD Sicherheit"> <!ENTITY advisories.html.inc SYSTEM "advisories.html.inc"> <!ENTITY advisories.html.inc SYSTEM "advisories.html.inc"> @@ -286,22 +286,6 @@ </tr> <tr> - <td>RELENG_8_1</td> - <td>8.1-RELEASE</td> - <td>erweitert</td> - <td>23. Juli 2010</td> - <td>31. Juli 2012</td> - </tr> - - <tr> - <td>RELENG_8_2</td> - <td>8.2-RELEASE</td> - <td>normal</td> - <td>24. Februar 2011</td> - <td>31. Juli 2012</td> - </tr> - - <tr> <td>RELENG_8_3</td> <td>8.3-RELEASE</td> <td>erweitert</td> @@ -502,6 +486,22 @@ <td>25. November 2009</td> <td>30. November 2010</td> </tr> + + <tr> + <td>RELENG_8_1</td> + <td>8.1-RELEASE</td> + <td>erweitert</td> + <td>23. Juli 2010</td> + <td>31. Juli 2012</td> + </tr> + + <tr> + <td>RELENG_8_2</td> + <td>8.2-RELEASE</td> + <td>normal</td> + <td>24. Februar 2011</td> + <td>31. Juli 2012</td> + </tr> </table> </body> diff --git a/de_DE.ISO8859-1/htdocs/where.xml b/de_DE.ISO8859-1/htdocs/where.xml index 2cfb87796f..c7c07adca9 100644 --- a/de_DE.ISO8859-1/htdocs/where.xml +++ b/de_DE.ISO8859-1/htdocs/where.xml @@ -2,7 +2,7 @@ <!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN" "http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [ <!ENTITY dedate "$FreeBSDde$"> -<!ENTITY reference "basiert auf: r39304"> +<!ENTITY reference "basiert auf: r40536"> <!ENTITY title "FreeBSD Bezugsquellen"> <!ENTITY url.rel "ftp://ftp.FreeBSD.org/pub/FreeBSD/releases"> ]> @@ -50,11 +50,8 @@ <p>Wenn Sie FreeBSD über FTP oder HTTP beziehen wollen, suchen Sie in der <a href="&enbase;/doc/de_DE.ISO8859-1/books/handbook/mirrors-ftp.html"><strong>Liste - der Spiegel</strong></a> des Handbuchs einen Spiegel in - Ihrer Nähe. Alternativ können Sie auch BitTorrent - verwenden, um &os; herunterzuladen. Die dazu benötigten - <q>.torrent</q>-Dateien finden Sie über den <a - href="http://torrents.FreeBSD.org:8080/">&os; BitTorrent-Tracker</a>.</p> + der FTP-Spiegelserver</strong></a> des Handbuchs einen Spiegelserver in + Ihrer Nähe.</p> <table class="tblbasic"> <thead> @@ -72,10 +69,10 @@ <tr> <td colspan="2">FreeBSD &rel.current;-RELEASE</td> <td colspan="2"></td> - <td rowspan="7"><a href="&enbase;/releases/&rel.current;R/relnotes.html">[Lesen]</a></td> - <td rowspan="7"><a href="&enbase;/releases/&rel.current;R/hardware.html">[Lesen]</a></td> - <td rowspan="7"><a href="&enbase;/releases/&rel.current;R/installation.html">[Lesen]</a></td> - <td rowspan="7"><a href="&enbase;/releases/&rel.current;R/errata.html">[Lesen]</a></td> + <td rowspan="5"><a href="&enbase;/releases/&rel.current;R/relnotes.html">[Lesen]</a></td> + <td rowspan="5"><a href="&enbase;/releases/&rel.current;R/hardware.html">[Lesen]</a></td> + <td rowspan="5"><a href="&enbase;/releases/&rel.current;R/installation.html">[Lesen]</a></td> + <td rowspan="5"><a href="&enbase;/releases/&rel.current;R/errata.html">[Lesen]</a></td> </tr> <tr> <td></td> @@ -89,6 +86,7 @@ <td><a href="&url.rel;/i386/i386/&rel.current;-RELEASE">[Distribution]</a></td> <td><a href="&url.rel;/i386/i386/ISO-IMAGES/&rel.current;/">[ISO]</a></td> </tr> + <!-- <tr> <td></td> <td>ia64</td> @@ -101,6 +99,7 @@ <td><a href="&url.rel;/powerpc/powerpc/&rel.current;-RELEASE">[Distribution]</a></td> <td><a href="&url.rel;/powerpc/powerpc/ISO-IMAGES/&rel.current;/">[ISO]</a></td> </tr> + --> <tr> <td></td> <td>powerpc64</td> diff --git a/de_DE.ISO8859-1/share/xml/header.l10n.ent b/de_DE.ISO8859-1/share/xml/header.l10n.ent index 63a2c85456..f4a92a6602 100644 --- a/de_DE.ISO8859-1/share/xml/header.l10n.ent +++ b/de_DE.ISO8859-1/share/xml/header.l10n.ent @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="iso-8859-1"?> <!-- $FreeBSD$ - $FreeBSDde: de-www/share/xml/header.l10n.ent,v 1.18 2012/02/12 09:46:42 jkois Exp $ - basiert auf: 1.19 + $FreeBSDde$ + basiert auf: r39675 --> <!-- Components making up the standard headers and footers. --> <!-- Override in the prolog <em>before</em> including this --> <!-- file if necessary.--> -<!ENTITY copyright '<span xmlns="http://www.w3.org/1999/xhtml"><a href="&enbase;/search/index-site.html">Sitemap</a> | <a href="&enbase;/copyright/">Legal Notices</a> | © 1995-2012 The FreeBSD Project. Alle Rechte vorbehalten.</span>'> +<!ENTITY copyright '<span xmlns="http://www.w3.org/1999/xhtml"><a href="&enbase;/search/index-site.html">Sitemap</a> | <a href="&enbase;/copyright/">Legal Notices</a> | © 1995–2012 The FreeBSD Project. Alle Rechte vorbehalten.</span>'> <!ENTITY author '<a href="&base;/index.html">Startseite</a> | <a href="&base;/mailto.html">Ansprechpartner</a> | <a href="&enbase;/copyright/index.html">Legal</a> | @@ -67,7 +67,7 @@ <li><a href="&enbase;/projects/index.html">Entwicklung</a> <ul> <li><a href="http://wiki.FreeBSD.org/IdeasPage">Projektideen</a></li> - <li><a href="http://svn.FreeBSD.org/viewvc/base/">SVN-Repository</a></li> + <li><a href="http://svnweb.FreeBSD.org">SVN-Repository</a></li> <li><a href="http://cvsweb.FreeBSD.org">CVS-Repository</a></li> <li><a href="http://p4web.FreeBSD.org">Perforce-Repository</a></li> </ul> diff --git a/de_DE.ISO8859-1/share/xml/news.xml b/de_DE.ISO8859-1/share/xml/news.xml index fdfa0a3afd..880ea90d5f 100644 --- a/de_DE.ISO8859-1/share/xml/news.xml +++ b/de_DE.ISO8859-1/share/xml/news.xml @@ -4,7 +4,7 @@ <!-- $FreeBSD$ $FreeBSDde$ - basiert auf: r39424 + basiert auf: r40659 --> <!-- Simple schema for FreeBSD Project news. @@ -36,9 +36,406 @@ </cvs:keyword> <year> + <name>2013</name> + + <month> + <name>1</name> + + <day> + <name>16</name> + + <event> + <p>Neuer Committer: <a + href="mailto:carl@FreeBSD.org">Carl Delsey</a> (src)</p> + </event> + </day> + + <day> + <name>15</name> + + <event> + <p>Erweiterte Commit-Privilegien: <a + href="mailto:rene@FreeBSD.org">René Ladan</a> (ports, + full doc/www)</p> + </event> + </day> + + <day> + <name>14</name> + + <event> + <p>Neuer Committer: <a + href="mailto:dbn@FreeBSD.org">David Naylor</a> (ports)</p> + </event> + </day> + + <day> + <name>13</name> + + <event> + <title>Statusreport April-Juni 2012</title> + + <p>Der Statusreport für die Monate April bis Juni 2012 mit + 17 Einträgen ist ab sofort <a + href="&enbase;/news/status/report-2012-04-2012-06.html">verfügbar</a>.</p> + </event> + </day> + + <day> + <name>10</name> + <event> + <title>Ports-CVS: End-of-Life am 28. Februar 2013</title> + + <p>Die Entwicklung von &os;-Ports erfolgt seit einiger Zeit + ausschließlich in Subversion. Ab 28. Februar 2013 wird + daher der &os;-Portsbaum nicht mehr nach CVS exportiert + werden. Ab diesem Zeitpunkt wird es nicht mehr möglich + sein, den Portsbaum via CVS, CVSup oder csup(1) zu + aktualisieren. Anwendern, die diese Programme derzeit + noch nutzen, wird empfohlen, künftig portsnap(8) + einzusetzen. Alternativ können Sie Subversion auch + direkt verwenden. Weitere Informationen zu diesem Thema + finden sich in der offiziellen <a + href="&lists.ports-announce;/2012-September/000026.html">Ankündigung</a> + auf der Mailingliste freebsd-ports-announce.</p> + + <p>Eine Anleitung zur Migration von CVSup oder csup(1) nach + portsnap(8) finden Sie im <a + href="&enbase;/doc/en_US.ISO8859-1/books/handbook/ports-using.html#cvsup-migration">&os;-Handbuch</a>.</p> + </event> + </day> + + <day> + <name>8</name> + + <event> + <title>Faces of &os; ‐ Thomas Abthorpe</title> + + <p>Wir freuen uns, Ihnen unsere nächste Geschichte aus der + Reihe "Faces of &os;" präsentieren zu können. Diese Reihe + erlaubt es uns zu zeigen, wie wir verschiedene Personen + bei Ihrer Arbeit an/für &os; unterstützen. + Diese Unterstützung besteht beispielsweise in der + Finanzierung von Entwicklungsprojekten, der Organisation + von Konferenzen, der Übernahme von Reisekosten sowie + der allgemeinen Förderung von &os;.</p> + + <p>Diesmal stellen wir Ihnen Thomas Abthorpe vor. Wir haben + es ihm ermöglicht, an der BSDCan 2009, 2011 und 2012 + teilzunehmen, indem wir uns an seinen Reisekosten + beteiligt haben. Lesen Sie seine Geschichte <a + href="http://freebsdfoundation.blogspot.com/2013/01/faces-of-freebsd-thomas-abthorpe.html">hier.</a></p> + </event> + </day> + </month> + </year> + + <year> <name>2012</name> <month> + <name>12</name> + + <day> + <name>31</name> + + <event> + <title>&os; 9.1-RELEASE verfügbar</title> + + <p><a href="&enbase;/releases/9.1R/announce.html">FreeBSD + 9.1-RELEASE</a> ist ab sofort verfügbar. Lesen Sie unbedingt + die <a + href="&enbase;/releases/9.1R/relnotes.html">Release Notes</a> + (<a + href="&enbase;/releases/9.1R/relnotes-detailed.html">ausführliche + Version</a>) sowie die <a + href="&enbase;/releases/9.1R/errata.html">Release Errata</a>, + bevor Sie mit der Installation beginnen, um + sich über aktuelle Neuigkeiten und/oder eventuelle + Probleme im Umgang mit 9.1-RELEASE zu informieren. + Weitere Informationen zu verschiedenen FreeBSD-Versionen + finden Sie auf der Seite <a + href="&base;/releases/index.html">Release Information</a>.</p> + </event> + </day> + + <day> + <name>20</name> + + <event> + <title>T&os; Foundation Newsletter Dezember 2012.</title> + + <p>Die &os; Foundation hat ihren <a + href="http://www.freebsdfoundation.org/press/2012Dec-newsletter.shtml">End-of-Year Newsletter</a> + für das Jahr 2012 veröffentlicht.</p> + </event> + </day> + + <day> + <name>18</name> + + <event> + <p>Neuer Committer: <a + href="mailto:markj@FreeBSD.org">Mark Johnston</a> (src)</p> + </event> + + <event> + <title>PC-BSD 9.1 ist verfügbar</title> + + <p>Das PC-BSD Team hat PC-BSD 9.1 <a + href="http://blog.pcbsd.org/2012/12/pc-bsd-9-1-now-available/">veröffentlicht</a>.</p> + </event> + </day> + + <day> + <name>17</name> + + <event> + <title>Faces of &os; ‐ Dan Langille</title> + + <p>Wir freuen uns, Ihnen unsere nächste Geschichte aus der + Reihe "Faces of &os;" präsentieren zu können. Diese Reihe + erlaubt es uns zu zeigen, wie wir verschiedene Personen + bei Ihrer Arbeit an/für &os; unterstützen. + Diese Unterstützung besteht beispielsweise in der + Finanzierung von Entwicklungsprojekten, der Organisation + von Konferenzen, der Übernahme von Reisekosten sowie + der allgemeinen Förderung von &os;.</p> + + <p>Diesmal stellen wir Ihnen Dan Langille vor. Wir + unterstützen ihn seit 2006 durch das Sponsering der jährlichen + BSDCan. Lesen Sie seine Geschichte <a + href="http://freebsdfoundation.blogspot.com/2012/12/faces-of-freebsd-dan-langille_17.html">hier.</a></p> + </event> + </day> + + <day> + <name>12</name> + + <event> + <title>Neuer Spendenrekord: Mehr als 650 neue + Spenden über insgesamt $43.200 in nur 3 Tagen!</title> + + <p>Aufmerksame Leser des Blogs der FreeBSD Foundation + wissen, dass wir letzte Woche mit unserer jährlichen + Spendenaktion begonnen haben, mit der wir in der Regel + mehr als 50 Prozent aller Spenden erzielen. Weitere + Informationen zu dieser Aktion finden Sie <a + href="http://freebsdfoundation.blogspot.com/2012/12/stunning-news-website-fundraising.html">hier</a>.</p> + </event> + </day> + + <day> + <name>10</name> + + <event> + <title>Faces of &os; ‐ Alberto Mijares</title> + + <p>Wissen Sie, wie die &os; Foundation die &os;-Gemeinde im + letzten Jahr unterstützt hat? Im Rahmen unserer jährlichen + Spendenkampagne stellen wir Ihnen auf unserer Webseite, in + unserem Blog sowie auf Facebook verschiedene Personen vor, + die wir durch die Finanzierung von Entwicklungsprojekten, + die Organisation von Konferenzen, die Übernahme von + Reisekosten sowie die generelle Förderung von &os; + unterstützt haben. Weitere Information finden Sie <a + href="http://freebsdfoundation.blogspot.com/2012/12/faces-of-freebsd-alberto-mijares.html">hier</a>.</p> + </event> + </day> + + <day> + <name>5</name> + + <event> + <title>&os;-Spendenkampagne</title> + + <p>Ihre Spenden haben uns dabei geholfen, &os; zum besten + derzeit verfügbaren Betriebssystem zu machen. Indem Sie + die &os; Foundation unterstützen, helfen Sie uns dabei, + &os; als leistungsfähiges, sicheres und stabiles + Betriebssystem weiterzuentwickeln.</p> + + <p>Dank Personen wie Ihnen konnte die &os; Foundation das + &os; Project sowie die &os;-Gemeinde in den letzten + zwölf Jahren kontinuierlich unterstützen. Weitere Informationen + zu unserer jährlichen Spendenkampagne finden Sie <a + href="http://freebsdfoundation.blogspot.com/2012/12/year-end-fundraising-campaign.html">hier</a>.</p> + </event> + + <event> + <title>Die Webseite des &os; Projects verwendet ab sofort + Google Analytics</title> + + <p>Das &os; Project hat Google Analytics aktiviert, um + anonymisierte Statistiken über die Nutzung der Webseiten + zu erhalten. Weitere Informationen zu dieser Umstellung + finden Sie in der offiziellen <a + href="&lists.announce;/2012-December/001441.html">Ankündigung</a>.</p> + </event> + </day> + </month> + + <month> + <name>11</name> + + <day> + <name>26</name> + + <event> + <p>Neuer Committer: <a + href="mailto:syuu@FreeBSD.org">Takuya ASADA</a> (src)</p> + </event> + </day> + + <day> + <name>25</name> + + <event> + <p>Neuer Committer: <a + href="mailto:bar@FreeBSD.org">Barbara Guida</a> (ports)</p> + </event> + </day> + + <day> + <name>17</name> + + <event> + <title>Angriffsversuch auf die FreeBSD-Infrastruktur</title> + + <p>Am 11. November 2012 wurde ein unerlaubter Zugriff auf zwei + Systeme innerhalb des FreeBSD.org-Clusters entdeckt. Wir + konnten zwar keinen Hinweis darauf finden, dass Dateien + manipuliert wurden, dennoch empfehlen wir allen Benutzern, + den dazu erstellten <a + href="&enbase;/news/2012-compromise.html">Bericht</a> + zu lesen und selbst zu entscheiden, ob Handlungsbedarf + besteht.</p> + </event> + </day> + + <day> + <name>5</name> + + <event> + <p>Neuer Committer: <a + href="mailto:bryanv@FreeBSD.org">Bryan Venteicher</a> (src)</p> + </event> + </day> + + <day> + <name>4</name> + + <event> + <p>Neuer Committer: <a + href="mailto:gblach@FreeBSD.org">Grzegorz Blach</a> (ports)</p> + </event> + </day> + + <day> + <name>3</name> + + <event> + <title>&os; 9.1-RC3 verfügbar</title> + + <p>Der dritte Release Candidate aus dem &os;-9.1-Releasezyklus + ist <a + href="&lists.stable;/2012-November/070401.html">verfügbar</a>. + ISO-Images für die Architekturen amd64, i386, sparc64 sowie + powerpc64 sind inzwischen auf den meisten <a + href="&enbase;/doc/de_DE.ISO8859-1/books/handbook/mirrors-ftp.html">&os; + Spiegelservern</a> vorhanden.</p> + </event> + </day> + </month> + + <month> + <name>10</name> + + <day> + <name>24</name> + + <event> + <p>Erweiterte Commit-Privilegien: <a + href="mailto:erwin@FreeBSD.org">Erwin Lansing</a> (src, ports)</p> + </event> + </day> + + <day> + <name>23</name> + + <event> + <p>Neuer Committer: <a + href="mailto:sjg@FreeBSD.org">Simon J. Gerraty</a> (src)</p> + </event> + </day> + + <day> + <name>20</name> + + <event> + <p>Erweiterte Commit-Privilegien: <a + href="mailto:eadler@FreeBSD.org">Eitan Adler</a> (src, ports, doc)</p> + </event> + </day> + + <day> + <name>19</name> + + <event> + <p>Neues Mitglied im Ports Management Team: <a + href="mailto:decke@FreeBSD.org">Bernhard Fröhlich</a></p> + </event> + </day> + + <day> + <name>10</name> + + <event> + <title>&os; 9.1-RC2 verfügbar</title> + + <p>Der zweite Release Candidate aus dem &os;-9.1-Releasezyklus + ist <a + href="&lists.stable;/2012-October/069998.html">verfügbar</a>. + ISO-Images für die Architekturen amd64, i386, ia64, powerpc + sowie powerpc64 sind inzwischen auf den meisten <a + href="&enbase;/doc/de_DE.ISO8859-1/books/handbook/mirrors-ftp.html">&os; + Spiegelservern</a> vorhanden.</p> + </event> + </day> + </month> + + <month> + <name>9</name> + + <day> + <name>15</name> + + <event> + <p>Neuer Committer: <a + href="mailto:peterj@FreeBSD.org">Peter Jeremy</a> (src)</p> + </event> + </day> + + <day> + <name>13</name> + + <event> + <p>Neuer Committer: <a + href="mailto:ebrandi@FreeBSD.org">Edson Brandi</a> (doc/pt_BR, www/pt_BR)</p> + </event> + </day> + + <day> + <name>10</name> + + <event> + <p>Neuer Committer: <a + href="mailto:jhale@FreeBSD.org">Jason E. Hale</a> (ports)</p> + </event> + </day> + </month> + + <month> <name>8</name> <day> diff --git a/de_DE.ISO8859-1/share/xml/press.xml b/de_DE.ISO8859-1/share/xml/press.xml index b4c0a8ba40..b21c424d19 100644 --- a/de_DE.ISO8859-1/share/xml/press.xml +++ b/de_DE.ISO8859-1/share/xml/press.xml @@ -7,7 +7,7 @@ "freefall:/c/www/bsddoc/press/". $FreeBSD$ $FreeBSDde$ - basiert auf: r39030 + basiert auf: r40251 --> <press> @@ -19,6 +19,39 @@ <name>2012</name> <month> + <name>11</name> + + <story> + <name>A world without Linux: Where would Apache, + Microsoft — even Apple be today?</name> + <url>http://www.infoworld.com/d/data-center/world-without-linux-where-would-apache-microsoft-even-apple-be-today-206680</url> + <site-name>Infoworld</site-name> + <site-url>http://www.infoworld.com</site-url> + <date>12. November 2012</date> + <author>Paul Venezia</author> + <p>Hätte Linux nicht die Welt erobert, würden wir heute alle FreeBSD + verwenden. Vielleicht sogar auf dem Desktop.</p> + </story> + </month> + + <month> + <name>8</name> + + <story> + <name>FreeBSD Now Supported on Windows Server Hyper-V Via Beta + Release</name> + <url>http://redmondmag.com/articles/2012/08/09/freebsd-beta-for-windows-server-hyper-v.aspx</url> + <site-name>Redmondmag</site-name> + <site-url>http://redmondmag.com</site-url> + <date>9. August 2012</date> + <author>Kurt Mackie</author> + <p>Microsoft hat heute die Betaversion eines Treibers veröffentlicht, + mit der erstmals das frei verfügbare FreeBSD 8.2 in einer virtuellen + Machine von Microsofts Hyper-V Server installiert werden kann.</p> + </story> + </month> + + <month> <name>6</name> <story> diff --git a/el_GR.ISO8859-7/articles/mailing-list-faq/Makefile b/el_GR.ISO8859-7/articles/mailing-list-faq/Makefile index 998dcfc305..9219c6df86 100644 --- a/el_GR.ISO8859-7/articles/mailing-list-faq/Makefile +++ b/el_GR.ISO8859-7/articles/mailing-list-faq/Makefile @@ -16,11 +16,11 @@ INSTALL_ONLY_COMPRESSED?= WITH_ARTICLE_TOC?=YES # -# SRCS lists the individual SGML files that make up the document. Changes +# SRCS lists the individual XML files that make up the document. Changes # to any of these files will force a rebuild # -# SGML content +# XML content SRCS= article.xml URL_RELPREFIX?= ../../../.. diff --git a/el_GR.ISO8859-7/books/faq/Makefile b/el_GR.ISO8859-7/books/faq/Makefile index 88c4409936..22b1c3e369 100644 --- a/el_GR.ISO8859-7/books/faq/Makefile +++ b/el_GR.ISO8859-7/books/faq/Makefile @@ -19,11 +19,11 @@ INSTALL_ONLY_COMPRESSED?= WITH_BIBLIOXREF_TITLE?=YES # -# Ç ëßóôá SRCS ðåñéÝ÷åé üëá ôá SGML áñ÷åßá ðïõ áðïôåëïýí ìÝñç ôïõ êåéìÝíïõ. +# Ç ëßóôá SRCS ðåñéÝ÷åé üëá ôá XML áñ÷åßá ðïõ áðïôåëïýí ìÝñç ôïõ êåéìÝíïõ. # ÁëëáãÝò óå ïðïéïäÞðïôå áðü áõôÜ ôá áñ÷åßá ðñïêáëïýí rebuild. # -# SGML content +# XML content SRCS= book.xml URL_RELPREFIX?= ../../../.. diff --git a/el_GR.ISO8859-7/books/handbook/Makefile b/el_GR.ISO8859-7/books/handbook/Makefile index ffaec52edc..8038073aa3 100644 --- a/el_GR.ISO8859-7/books/handbook/Makefile +++ b/el_GR.ISO8859-7/books/handbook/Makefile @@ -246,11 +246,11 @@ IMAGES_LIB+= callouts/14.png IMAGES_LIB+= callouts/15.png # -# Ç ëßóôá SRCS ðåñéÝ÷åé üëá ôá SGML áñ÷åßá ðïõ áðïôåëïýí ìÝñç ôïõ êåéìÝíïõ. +# Ç ëßóôá SRCS ðåñéÝ÷åé üëá ôá XML áñ÷åßá ðïõ áðïôåëïýí ìÝñç ôïõ êåéìÝíïõ. # ÁëëáãÝò óå ïðïéïäÞðïôå áðü áõôÜ ôá áñ÷åßá ðñïêáëïýí rebuild. # -# SGML content +# XML content SRCS+= audit/chapter.xml SRCS+= book.xml SRCS+= bsdinstall/chapter.xml @@ -299,8 +299,8 @@ SYMLINKS= ${DESTDIR} index.html handbook.html # Turn on all the chapters. CHAPTERS?= ${SRCS:M*chapter.xml} -SGMLFLAGS+= ${CHAPTERS:S/\/chapter.xml//:S/^/-i chap./} -SGMLFLAGS+= -i chap.freebsd-glossary +XMLFLAGS+= ${CHAPTERS:S/\/chapter.xml//:S/^/-i chap./} +XMLFLAGS+= -i chap.freebsd-glossary pgpkeyring: pgpkeys/chapter.xml @${JADE} -V nochunks ${OTHERFLAGS} ${JADEOPTS} -d ${DSLPGP} -t sgml ${MASTERDOC} diff --git a/el_GR.ISO8859-7/htdocs/Makefile b/el_GR.ISO8859-7/htdocs/Makefile index 07d422c49c..d3647c99f8 100644 --- a/el_GR.ISO8859-7/htdocs/Makefile +++ b/el_GR.ISO8859-7/htdocs/Makefile @@ -15,7 +15,7 @@ .endif # Subdirectories -# SGML +# XML SUBDIR= FAQ .if !defined(WEB_ONLY) || empty(WEB_ONLY) SUBDIR+= doc diff --git a/en_US.ISO8859-1/articles/committers-guide/article.xml b/en_US.ISO8859-1/articles/committers-guide/article.xml index 16dbbe89a2..76ba7fc331 100644 --- a/en_US.ISO8859-1/articles/committers-guide/article.xml +++ b/en_US.ISO8859-1/articles/committers-guide/article.xml @@ -23,6 +23,7 @@ <year>2010</year> <year>2011</year> <year>2012</year> + <year>2013</year> <holder>The FreeBSD Documentation Project</holder> </copyright> @@ -209,7 +210,7 @@ <row> <entry>doc</entry> <entry>doceng@</entry> - <entry>doc/, www/, src/ documentation</entry> + <entry>doc/, src/ documentation</entry> </row> <row> @@ -367,7 +368,7 @@ <sect2 id="svn-getting-started"> <title>Getting Started</title> - <para>There are three ways to obtain a working copy of the tree + <para>There are a few ways to obtain a working copy of the tree from Subversion. This section will explain them.</para> <sect3> @@ -463,119 +464,6 @@ information on how to set one up.</para> </sect3> - <sect3> - <title>Checkout from a Local Mirror Using - <acronym>SVK</acronym></title> - - <para>The third alternative is to use <acronym>SVK</acronym> - to maintain a local mirror. It is a version control system - build on top of Subversion's storage engine. It is - identical to Subversion in most respects, except that it - allows for setting up parts of repositories as mirrors of - other repositories, and keeping local branches for merging - back into the upstream repositories. There are extensions - that allow <acronym>SVK</acronym> to mirror - <acronym>CVS</acronym> and Perforce repositories in addition - to Subversion ones.</para> - - <para>Like everything, <acronym>SVK</acronym> has its - disadvantages, one being that local revision numbers will - not match upstream revision numbers. This makes it - difficult to <command>svk log</command>, <command>svk - diff</command>, or <command>svk update</command> to an - arbitrary upstream revision.</para> - - <para>To set up a mirror of the &os; repository, do:</para> - - <screen>&prompt.user; <userinput>svk mirror svn+ssh://svn.freebsd.org/base //freebsd/base</userinput></screen> - - <para>The local <acronym>SVK</acronym> repository will be - stored in <filename - class="directory">~/.svk/local/</filename>, but can be - moved to an alternate location. If it is moved, - <filename>~/.svk/config</filename> should be amended - manually to reflect the move.</para> - - <para>Any path can be used, not just the one in the example - above. A common pattern is to place mirrors under - <literal>//mirror</literal>, e.g., - <filename - class="directory">//mirror/freebsd/base/</filename>, and - local branches under <literal>//local</literal>.</para> - - <para>To pull down the contents of the repository to the - mirror:</para> - - <screen>&prompt.user; <userinput>svk sync //freebsd/base</userinput></screen> - - <note> - <para><command>svk sync</command> will take a very long - time, possibly several days over a slow network - connection. &a.peter; has a tarball that can be used to - jumpstart the mirror, but only if one does not exist - already.</para> - </note> - - <para>To use the tarball referenced above:</para> - - <screen>&prompt.user; <userinput>cd ~</userinput> -&prompt.user; <userinput>scp freefall:/home/peter/dot_svk_r179646.tbz2 .</userinput> -&prompt.user; <userinput>tar xf dot_svk_r179646.tbz2</userinput></screen> - - <para>Then edit <filename>~/.svk/config</filename> and replace - <filename - class="directory">/scratch/tmp/peter/.svk/local/</filename> - with the equivalent of <filename - class="directory">/home/<replaceable>jarjar</replaceable>/.svk/local/</filename>.</para> - - <para>You can check out files directly from your mirror, once - it has been created:</para> - - <screen>&prompt.user; <userinput>svk checkout //freebsd/base/head /usr/src</userinput></screen> - - <para>Unlike <acronym>SVN</acronym>, <acronym>SVK</acronym> - does not store metadata or reference copies in the working - copy. All metadata is recorded in - <filename>~/.svk/config</filename>; reference copies are not - used at all because <acronym>SVK</acronym> always operates - on a local repository.</para> - - <para>When committing from a working copy like the one above, - <acronym>SVN</acronym> will commit directly to the upstream - repository, then synchronise the mirror.</para> - - <para>However, the <quote>killer app</quote> for - <acronym>SVK</acronym> is the ability to work without a - network connection. To do that, a local branch must be set - up:</para> - - <screen>&prompt.user; <userinput>svk mkdir //local/freebsd</userinput> -&prompt.user; <userinput>svk copy //freebsd/base/head //local/freebsd/head</userinput></screen> - - <para>Once again, any path can be used, it does not have to - specifically be the one in the example.</para> - - <para>Before use, the local branch has to be synchronized, - like so:</para> - - <screen>&prompt.user; <userinput>svk pull //local/freebsd/head</userinput></screen> - - <para>Then check out from the newly created local - branch:</para> - - <screen>&prompt.user; <userinput>svk checkout //local/freebsd/head /usr/src</userinput></screen> - - <para>The point of this exercise is showing that it is - possible to commit work-in-progress to a local branch, and - only push it to the upstream repository when work is - complete. The easy way to push is with <command>svk - push</command>, but there is a serious disadvantage to it: - it will push every single commit made to the local branch - incrementally instead of lumping them all into a single - commit. Therefore, using <command>svk smerge</command> is - preferable.</para> - </sect3> - <sect3 id="subversion-primer-base-layout"> <title><literal>RELENG_*</literal> Branches and General Layout</title> @@ -708,16 +596,6 @@ daily use, except for the revision renumbering mentioned earlier.</para> - <note> - <para><acronym>SVN</acronym> and <acronym>SVK</acronym> - commands that have direct <acronym>CVS</acronym> equivalents - usually have the same name and abbreviations. For example: - <emphasis>checkout</emphasis> and <emphasis>co</emphasis>, - <emphasis>update</emphasis> and <emphasis>up</emphasis>, and - <emphasis>commit</emphasis> and - <emphasis>ci</emphasis>.</para> - </note> - <sect3> <title>Help</title> @@ -821,11 +699,7 @@ <screen>&prompt.user; <userinput>svn status</userinput></screen> - <para><acronym>CVS</acronym> has no direct equivalent of this - command. The nearest would be <command>cvs up -N</command> - which shows local changes and files that are out-of-date. - Doing this in <acronym>SVN</acronym> is possible too, - however:</para> + <para>To show local changes and files that are out-of-date do:</para> <screen>&prompt.user; <userinput>svn status --show-updates</userinput></screen> </sect3> @@ -833,7 +707,7 @@ <sect3> <title>Editing and Committing</title> - <para>Like <acronym>CVS</acronym> but unlike Perforce, + <para>Unlike Perforce, <acronym>SVN</acronym> and <acronym>SVK</acronym> do not need to be told in advance about file editing.</para> @@ -879,7 +753,7 @@ </para> </note> - <para>As with <acronym>CVS</acronym>, files are added to a + <para>Files are added to a <acronym>SVN</acronym> repository with <command>svn add</command>. To add a file named <emphasis>foo</emphasis>, edit it, then:</para> @@ -907,10 +781,9 @@ <screen>&prompt.user; <userinput>svn mkdir <replaceable>bar</replaceable></userinput></screen> - <para>In <acronym>CVS</acronym>, the directory is immediately - created in the repository when you <command>cvs - add</command> it; this is not the case in Subversion. - Furthermore, unlike <acronym>CVS</acronym>, Subversion + <para>The directory is not immediately + created in the repository when you use <command>svn + mkdir</command>. Subversion allows directories to be removed using <command>svn rm</command>, however there is no <command>svn rmdir</command>:</para> @@ -935,9 +808,6 @@ <screen>&prompt.user; <userinput>svn copy <replaceable>foo.c</replaceable> <replaceable>bar.c</replaceable></userinput> &prompt.user; <userinput>svn remove <replaceable>foo.c</replaceable></userinput></screen> - - <para>Neither of these operations have equivalents in - <acronym>CVS</acronym>.</para> </sect3> <sect3> @@ -962,11 +832,11 @@ <para><command>svn diff</command> displays changes to the working copy of the repository. Diffs generated by - <acronym>SVN</acronym> are unified by default, unlike - <acronym>CVS</acronym>, and include new files by default + <acronym>SVN</acronym> are unified + and include new files by default in the diff output.</para> - <para>As with <acronym>CVS</acronym>, <command>svn + <para><command>svn diff</command> can show the changes between two revisions of the same file:</para> @@ -984,8 +854,8 @@ <title>Reverting</title> <para>Local changes (including additions and deletions) can be - reverted using <command>svn revert</command>. Unlike - <command>cvs up -C</command>, it does not update out-of-date + reverted using <command>svn revert</command>. + It does not update out-of-date files—it just replaces them with pristine copies of the original version.</para> </sect3> @@ -1848,6 +1718,13 @@ U stable/9/share/man/man4/netmap.4 <screen>&prompt.user; <userinput>svn merge -r179454:179453 svn+ssh://svn.freebsd.org/base/ROADMAP.txt</userinput></screen> + <note> + <para>It is important to ensure that the mergeinfo + is correct when reverting a file in order to permit + <command>svn mergeinfo --eligible</command> to work as + expected.</para> + </note> + <para>Reverting the deletion of a file is slightly different. Copying the version of the file that predates the deletion is required. For example, to restore a file that was @@ -1874,8 +1751,8 @@ U stable/9/share/man/man4/netmap.4 of <command>svn status</command> and <command>svn diff</command> before committing.</para> - <para>Mistakes will happen, but, unlike with - <acronym>CVS</acronym>, they can generally be fixed without + <para>Mistakes will happen but, + they can generally be fixed without disruption.</para> <para>Take a case of adding a file in the wrong location. The @@ -2011,37 +1888,20 @@ U stable/9/share/man/man4/netmap.4 <para>Don't remove and re-add the same file in a single commit as this will break the CVS exporter.</para> - <para>Speeding up checkouts and minimising network traffic is - possible with the following recipe:</para> - - <screen>&prompt.user; <userinput>svn co --depth=empty svn+ssh://svn.freebsd.org/base fbsvn</userinput> -&prompt.user; <userinput>cd fbsvn</userinput> -&prompt.user; <userinput>svn up --depth=empty stable</userinput> -&prompt.user; <userinput>svn up head</userinput> -&prompt.user; <userinput>cd stable</userinput> -&prompt.user; <userinput>cp -r ../head/ 7</userinput> -&prompt.user; <userinput>cd 7</userinput> -&prompt.user; <userinput>svn switch svn+ssh://svn.freebsd.org/base/stable/7</userinput> -&prompt.user; <userinput>cd ..</userinput> -&prompt.user; <userinput>cp -r 7/ 6</userinput> -&prompt.user; <userinput>cd 6</userinput> -&prompt.user; <userinput>svn switch svn+ssh://svn.freebsd.org/base/stable/6</userinput></screen> - - <para>What this bit of evil does is check out head, stable/7 and - stable/6. We create the empty checkout directories under - <acronym>SVN</acronym>'s control. In <acronym>SVN</acronym>, - subtrees are self identifying, like in <acronym>CVS</acronym>. - We check out head and clone it as stable/7. Except we don't - want the head version so we <quote>switch</quote> it to the - 7.x tree location. <acronym>SVN</acronym> downloads diffs to - convert the <quote>head</quote> files to - <quote>stable/7</quote> instead of doing a fresh checkout. - The same goes for stable/6. This does, however, definitely - count as abuse of the working copy client code!</para> + <para>Speeding up svn is + possible by adding the following to <filename>~/.ssh/config</filename>:</para> + + <screen>Host * +ControlPath ~/.ssh/sockets/master-%l-%r@%h:%p +ControlMaster auto +ControlPersist yes</screen> + + <para>and then typing</para> + <screen><userinput>mkdir ~/.ssh/sockets</userinput></screen> <para>Checking out a working copy with a stock Subversion client without &os;-specific patches - (<makevar>WITH_FREEBSD_TEMPLATE</makevar>) will mean that + (<makevar>OPTIONS_SET=FREEBSD_TEMPLATE</makevar>) will mean that <literal>$FreeBSD$</literal> tags will not be expanded. Once the correct version has been installed, trick Subversion into expanding them like so:</para> @@ -2049,8 +1909,7 @@ U stable/9/share/man/man4/netmap.4 <screen>&prompt.user; <userinput>svn propdel -R svn:keywords .</userinput> &prompt.user; <userinput>svn revert -R .</userinput></screen> - <para>This is not a good idea if uncommitted patches exist, - however.</para> + <para>This will wipe out uncommitted patches.</para> </sect2> </sect1> @@ -2078,7 +1937,7 @@ U stable/9/share/man/man4/netmap.4 <itemizedlist> <listitem> <para>Add your author entity to - <filename>head/en_US.ISO8859-1/share/xml/authors.ent</filename>; + <filename>head/share/xml/authors.ent</filename>; this should be done first since an omission of this commit will cause the next commits to break the doc/ build.</para> @@ -2186,8 +2045,8 @@ U stable/9/share/man/man4/netmap.4 </listitem> <listitem> - <para>(For committers only:) - If you subscribe to &a.svn-src-all.name; or the &a.cvsall;, + <para>If you subscribe to &a.svn-src-all.name;, + &a.svn-ports-all.name; or &a.svn-doc-all.name;, you will probably want to unsubscribe to avoid receiving duplicate copies of commit messages and their followups.</para> </listitem> @@ -2591,14 +2450,13 @@ U stable/9/share/man/man4/netmap.4 <term>&a.committers;</term> <listitem> - <para>cvs-committers is the entity that the version control system uses to send you all your - commit messages. You should <emphasis>never</emphasis> send email - directly to this list. You should only send replies to this list - when they are short and are directly related to a commit.</para> - - <para>There is a similar list, svn-committers, which has a - similar purpose but is a normal list, i.e., you are free to - send any suitable message to this list.</para> + <para>&a.svn-src-all.name;, &a.svn-ports-all.name; and + &a.svn-doc-all.name; are the mailing lists that the + version control system uses to send commit messages to. + You should <emphasis>never</emphasis> send email directly + to these lists. You should only send replies to this list + when they are short and are directly related to a + commit.</para> </listitem> </varlistentry> @@ -3488,9 +3346,9 @@ U stable/9/share/man/man4/netmap.4 from the port <filename>Makefile</filename>. It will also add an entry to the port's category <filename>Makefile</filename>. It was - written by &a.mharo; and &a.will;, and is currently maintained - by &a.garga;, so please send questions/patches about - <command>addport</command> to him.</para> + written by &a.mharo;, &a.will;, and &a.garga;. When sending + questions about this script to the &a.ports;, please also CC + &a.crees;, the current maintainer.</para> </answer> </qandaentry> @@ -3597,9 +3455,9 @@ U stable/9/share/man/man4/netmap.4 <para>Alternatively, you can use the <command>rmport</command> script, from <filename class="directory">ports/Tools/scripts</filename>. - This script has been written by &a.vd;, who is also its current - maintainer, so please send questions, patches or suggestions - about <command>rmport</command> to him.</para> + This script was written by &a.vd;. When sending + questions about this script to the &a.ports;, please also CC + &a.crees;, the current maintainer.</para> </answer> </qandaentry> </qandadiv> @@ -3657,6 +3515,12 @@ U stable/9/share/man/man4/netmap.4 one step.</para> </step> </procedure> + + <tip> + <para><command>addport</command> now detects when the port to + add has previously existed, and should handle all except + the <filename>ports/LEGAL</filename> step automatically.</para> + </tip> </answer> </qandaentry> </qandadiv> @@ -3954,7 +3818,7 @@ U stable/9/share/man/man4/netmap.4 <procedure> <step> - <para>Perform any needed repocopies. (This only applies + <para>Perform any needed moves. (This only applies to physical categories.)</para> </step> @@ -3978,12 +3842,9 @@ U stable/9/share/man/man4/netmap.4 </question> <answer> - <para>The procedure is a strict superset of the one to - repocopy individual ports (see above).</para> - <procedure> <step> - <para>Upgrade each copied port's + <para>Upgrade each moved port's <filename>Makefile</filename>. Do not connect the new category to the build yet.</para> @@ -4030,10 +3891,11 @@ U stable/9/share/man/man4/netmap.4 sh -e <replaceable>/path/to/ports</replaceable>/Tools/scripts/chkorigin.sh </command>. This will check <emphasis>every</emphasis> port in the ports tree, even those not connected to the - build, so you can run it directly after the repocopy. + build, so you can run it directly after the move + operation. Hint: do not forget to look at the <makevar>PKGORIGIN</makevar>s of any slave ports of the - ports you just repocopied!</para> + ports you just moved!</para> </step> <step> @@ -4067,57 +3929,11 @@ U stable/9/share/man/man4/netmap.4 </step> <step> - <para>Update the instructions for &man.cvsup.1;:</para> - - <itemizedlist> - <listitem> - <para> - add the category to - <filename>distrib/cvsup/sup/README</filename> - </para> - </listitem> - - <listitem> - <para> - adding the following files into - <filename>distrib/cvsup/sup/ports-<replaceable>categoryname</replaceable></filename>: - <filename>list.cvs</filename> and - <filename>releases</filename>.</para> - </listitem> - - <listitem> - <para> - add the category to - <filename>src/share/examples/cvsup/ports-supfile</filename> - </para> - </listitem> - </itemizedlist> - - <para> - (Note: these are - in the src, not the ports, repository). If you - are not a src committer, you will need to submit - a PR for this.</para> - </step> - - <step> - <para> - Update the list of categories used by &man.sysinstall.8; - in <filename>src/usr.sbin/sysinstall</filename>.</para> - </step> - - <step> <para>Update the documentation by modifying the following:</para> <itemizedlist> <listitem> - <para>the section of the Handbook that lists the - <ulink url="&url.books.handbook;/cvsup.html#CVSUP-COLLEC"> - cvsup collections</ulink>.</para> - </listitem> - - <listitem> <para>the <ulink url="&url.books.porters-handbook;/makefile-categories.html#PORTING-CATEGORIES"> list of categories</ulink> in the Porter's Handbook</para> @@ -4167,10 +3983,6 @@ U stable/9/share/man/man4/netmap.4 <itemizedlist> <listitem> - <para><filename>src/usr.sbin/sysinstall</filename></para> - </listitem> - - <listitem> <para>the <ulink url="&url.books.porters-handbook;/makefile-categories.html#PORTING-CATEGORIES"> list of categories</ulink> in the Porter's Handbook</para> diff --git a/en_US.ISO8859-1/articles/contributing-ports/article.xml b/en_US.ISO8859-1/articles/contributing-ports/article.xml index 7f299ebd98..f9778f0e7d 100644 --- a/en_US.ISO8859-1/articles/contributing-ports/article.xml +++ b/en_US.ISO8859-1/articles/contributing-ports/article.xml @@ -462,7 +462,7 @@ <para>Regularly check the automated ports building cluster, <ulink url="http://pointyhat.FreeBSD.org">pointyhat</ulink>, - and the <ulink url="http://www.portscout.org">distfiles + and the <ulink url="http://portscout.FreeBSD.org">distfiles scanner</ulink> to see if any of the ports you maintain are failing to build or fetch (see <link linkend="resources">resources</link> for more @@ -794,7 +794,7 @@ build status of your ports. As a contributor you can use it to find broken and unmaintained ports that need to be fixed.</para> - <para>The <ulink url="http://www.portscout.org">FreeBSD Ports + <para>The <ulink url="http://portscout.FreeBSD.org">FreeBSD Ports distfile scanner</ulink> can show you ports for which the distfiles are not fetchable. You can check on your own ports or use it to find ports that need their diff --git a/en_US.ISO8859-1/articles/contributing/article.xml b/en_US.ISO8859-1/articles/contributing/article.xml index be8171f5a2..ac6d5f2450 100644 --- a/en_US.ISO8859-1/articles/contributing/article.xml +++ b/en_US.ISO8859-1/articles/contributing/article.xml @@ -85,7 +85,7 @@ <para>Read through the FAQ and Handbook periodically. If anything is badly explained, out of date or even just completely wrong, let us know. Even better, send us a fix - (SGML is not difficult to learn, but there is no objection + (Docbook is not difficult to learn, but there is no objection to ASCII submissions).</para> </listitem> @@ -231,7 +231,8 @@ <title>Pick one of the items from the <quote>Ideas</quote> page</title> - <para>The <ulink url="&url.base;/projects/ideas/">&os; list of + <para>The <ulink url="http://wiki.freebsd.org/IdeasPage">&os; + list of projects and ideas for volunteers</ulink> is also available for people willing to contribute to the &os; project. The list is being regularly updated and contains items for both @@ -339,39 +340,22 @@ <para>The preferred &man.diff.1; format for submitting patches is the unified output format generated by <command>diff - -u</command>. However, for patches that substantially - change a region of code, a context output format diff - generated by <command>diff -c</command> may be more readable - and thus preferable.</para> + -u</command>.</para> <indexterm> <primary><command>diff</command></primary> </indexterm> - <para>For example:</para> - - <screen>&prompt.user; <userinput>diff -c oldfile newfile</userinput></screen> - - <para>or</para> - - <screen>&prompt.user; <userinput>diff -c -r olddir newdir</userinput></screen> - - <para>would generate such a set of context diffs for the given - source file or directory hierarchy.</para> - - <para>Likewise,</para> - <screen>&prompt.user; <userinput>diff -u oldfile newfile</userinput></screen> <para>or</para> - <screen>&prompt.user; <userinput>diff -u -r olddir newdir</userinput></screen> + <screen>&prompt.user; <userinput>diff -u -r -N olddir newdir</userinput></screen> - <para>would do the same, except in the unified diff - format.</para> + <para>would generate a set of unified diffs for the given source + file or directory hierarchy.</para> - <para>See the manual page for &man.diff.1; for more - details.</para> + <para>See &man.diff.1; for more information.</para> <para>Once you have a set of diffs (which you may test with the &man.patch.1; command), you should submit them for inclusion @@ -397,9 +381,8 @@ welcome.</para> <para>If your change is of a potentially sensitive nature, - e.g. you are unsure of copyright issues governing its further - distribution or you are simply not ready to release it without - a tighter review first, then you should send it to &a.core; + such as if you are unsure of copyright issues governing its further + distribution then you should send it to &a.core; directly rather than submitting it with &man.send-pr.1;. The &a.core; reaches a much smaller group of people who do much of the day-to-day work on FreeBSD. Note that this @@ -503,7 +486,7 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - $Id$</programlisting> + $&os;$</programlisting> <para>For your convenience, a copy of this text can be found in <filename>/usr/share/examples/etc/bsd-style-copyright</filename>.</para> @@ -532,9 +515,9 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. <para>Donations may be sent in check form to: <address> The FreeBSD Foundation - <street>7321 Brockway Dr.</street> + <street>P.O. Box 20247</street>, <city>Boulder</city>, - <state>CO</state> <postcode>80303</postcode> + <state>CO</state> <postcode>80308</postcode> <country>USA</country> </address></para> @@ -562,16 +545,6 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. <ulink url="&url.base;/donations/">Donations Liaison Office</ulink>.</para> </sect3> - - <sect3> - <title>Donating Internet Access</title> - - <para>We can always use new mirror sites for FTP, WWW or - <command>cvsup</command>. If you would like to be such a - mirror, please see the - <ulink url="&url.articles.hubs;/index.html">Mirroring - FreeBSD</ulink> article for more information.</para> - </sect3> </sect2> </sect1> diff --git a/en_US.ISO8859-1/articles/contributors/contrib.additional.xml b/en_US.ISO8859-1/articles/contributors/contrib.additional.xml index 02ba44b40c..fa3b55279e 100644 --- a/en_US.ISO8859-1/articles/contributors/contrib.additional.xml +++ b/en_US.ISO8859-1/articles/contributors/contrib.additional.xml @@ -1144,11 +1144,6 @@ </listitem> <listitem> - <para>Barbara</para> - <!-- (rene@) No email address per request. --> - </listitem> - - <listitem> <para>Barry Bierbauch <email>pivrnec@vszbr.cz</email></para> </listitem> @@ -1688,7 +1683,7 @@ <listitem> <para>Chris Petrik - <email>chris@officialunix.com</email></para> + <email>c.petrik.sosa@gmail.com</email></para> </listitem> <listitem> @@ -1722,6 +1717,11 @@ </listitem> <listitem> + <para>Christian Heckendorf + <email>heckend@bu.edu</email></para> + </listitem> + + <listitem> <para>Christian Lackas <email>delta@lackas.net</email></para> </listitem> @@ -2121,6 +2121,11 @@ </listitem> <listitem> + <para>Danilo Egêa Gondolfo + <email>danilogondolfo@gmail.com</email></para> + </listitem> + + <listitem> <para>Danny Braniss <email>danny@cs.huji.ac.il</email></para> </listitem> @@ -2364,11 +2369,6 @@ </listitem> <listitem> - <para>David Naylor - <email>naylor.b.david@gmail.com</email></para> - </listitem> - - <listitem> <para>David Otto <email>ottodavid@gmx.net</email></para> </listitem> @@ -2414,18 +2414,23 @@ </listitem> <listitem> + <para>David Vachulka + <email>arch_dvx@users.sourceforge.net</email></para> + </listitem> + <listitem> + <para>David Wolfskill <email>david@catwhisker.org</email></para> </listitem> <listitem> - <para>Dax Labrador - <email>semprix@bsdmail.org</email></para> + <para>David Yeske + <email>dyeske@yahoo.com</email></para> </listitem> <listitem> - <para>David Yeske - <email>dyeske@yahoo.com</email></para> + <para>Dax Labrador + <email>semprix@bsdmail.org</email></para> </listitem> <listitem> @@ -3091,6 +3096,11 @@ </listitem> <listitem> + <para>Fabian M. Borschel + <email>fmb@onibox.net</email></para> + </listitem> + + <listitem> <para>Fabien Devaux <email>fab@gcu.info</email></para> </listitem> @@ -3590,11 +3600,6 @@ </listitem> <listitem> - <para>Grzegorz Blach - <email>magik@roorback.net</email></para> - </listitem> - - <listitem> <para>Guillaume Paquet <email>amyfoub@videotron.ca</email></para> </listitem> @@ -4428,6 +4433,11 @@ </listitem> <listitem> + <para>Jean Benoit + <email>jean@unistra.fr</email></para> + </listitem> + + <listitem> <para>Jean-Sebastien Roy <email>js@jeannot.org</email></para> </listitem> @@ -5123,6 +5133,11 @@ </listitem> <listitem> + <para>Joseph Mingrone + <email>jrm@ftfl.ca</email></para> + </listitem> + + <listitem> <para>Joseph Scott <email>joseph@randomnetworks.com</email></para> </listitem> @@ -5302,11 +5317,6 @@ </listitem> <listitem> - <para>Kubilay Kocak - <email>koobs.freebsd@gmail.com</email></para> - </listitem> - - <listitem> <para>KUNISHIMA Takeo <email>kunishi@c.oka-pu.ac.jp</email></para> </listitem> @@ -6013,6 +6023,11 @@ </listitem> <listitem> + <para>Manuel Creach + <email>manuel.creach@me.com</email></para> + </listitem> + + <listitem> <para>Manuel Rabade Garcia <email>mig@mig-29.net</email></para> </listitem> @@ -6461,6 +6476,11 @@ </listitem> <listitem> + <para>Matt Stofko + <email>matt@mjslabs.com</email></para> + </listitem> + + <listitem> <para>Matt Thomas <email>matt@3am-software.com</email></para> </listitem> @@ -6760,6 +6780,11 @@ </listitem> <listitem> + <para>Michael Gmelin + <email>freebsd@grem.de</email></para> + </listitem> + + <listitem> <para>Michael Hancock <email>michaelh@cet.co.jp</email></para> </listitem> @@ -8315,6 +8340,11 @@ </listitem> <listitem> + <para>Pierre David + <email>pdagog@gmail.com</email></para> + </listitem> + + <listitem> <para>Pierre Y. Dampure <email>pierre.dampure@k2c.co.uk</email></para> </listitem> @@ -9337,11 +9367,6 @@ </listitem> <listitem> - <para>Simon J Gerraty - <email>sjg@juniper.net</email></para> - </listitem> - - <listitem> <para>Simon Lang <email>simon@lang-clan.de</email></para> </listitem> @@ -10518,6 +10543,11 @@ </listitem> <listitem> + <para>Victor Popov + <email>v.a.popov@gmail.com</email></para> + </listitem> + + <listitem> <para>Victor Semionov <email>semionov@mail.bg</email></para> </listitem> @@ -10798,6 +10828,11 @@ </listitem> <listitem> + <para>Yamagi Burmeister + <email>yamagi@yamagi.org</email></para> + </listitem> + + <listitem> <para>Yanhui Shen <email>shen.elf@gmail.com</email></para> </listitem> diff --git a/en_US.ISO8859-1/articles/contributors/contrib.committers.xml b/en_US.ISO8859-1/articles/contributors/contrib.committers.xml index ba64dac81c..07b1018b5c 100644 --- a/en_US.ISO8859-1/articles/contributors/contrib.committers.xml +++ b/en_US.ISO8859-1/articles/contributors/contrib.committers.xml @@ -68,6 +68,10 @@ </listitem> <listitem> + <para>&a.syuu;</para> + </listitem> + + <listitem> <para>&a.gavin;</para> </listitem> @@ -92,10 +96,6 @@ </listitem> <listitem> - <para>&a.dougb;</para> - </listitem> - - <listitem> <para>&a.art;</para> </listitem> @@ -120,6 +120,10 @@ </listitem> <listitem> + <para>&a.gblach;</para> + </listitem> + + <listitem> <para>&a.mbr;</para> </listitem> @@ -172,10 +176,6 @@ </listitem> <listitem> - <para>&a.wilko;</para> - </listitem> - - <listitem> <para>&a.oleg;</para> </listitem> @@ -292,6 +292,10 @@ </listitem> <listitem> + <para>&a.carl;</para> + </listitem> + + <listitem> <para>&a.vd;</para> </listitem> @@ -452,6 +456,10 @@ </listitem> <listitem> + <para>&a.sjg;</para> + </listitem> + + <listitem> <para>&a.gibbs;</para> </listitem> @@ -496,6 +504,10 @@ </listitem> <listitem> + <para>&a.bar;</para> + </listitem> + + <listitem> <para>&a.jmg;</para> </listitem> @@ -616,6 +628,10 @@ </listitem> <listitem> + <para>&a.markj;</para> + </listitem> + + <listitem> <para>&a.tj;</para> </listitem> @@ -684,6 +700,10 @@ </listitem> <listitem> + <para>&a.koobs;</para> + </listitem> + + <listitem> <para>&a.jkois;</para> </listitem> @@ -768,6 +788,10 @@ </listitem> <listitem> + <para>&a.dru;</para> + </listitem> + + <listitem> <para>&a.jlh;</para> </listitem> @@ -792,6 +816,10 @@ </listitem> <listitem> + <para>&a.ian;</para> + </listitem> + + <listitem> <para>&a.truckman;</para> </listitem> @@ -1008,6 +1036,10 @@ </listitem> <listitem> + <para>&a.dbn;</para> + </listitem> + + <listitem> <para>&a.bland;</para> </listitem> @@ -1520,6 +1552,10 @@ </listitem> <listitem> + <para>&a.bryanv;</para> + </listitem> + + <listitem> <para>&a.avilla;</para> </listitem> diff --git a/en_US.ISO8859-1/articles/contributors/contrib.corealumni.xml b/en_US.ISO8859-1/articles/contributors/contrib.corealumni.xml index 0f42288312..45028ce029 100644 --- a/en_US.ISO8859-1/articles/contributors/contrib.corealumni.xml +++ b/en_US.ISO8859-1/articles/contributors/contrib.corealumni.xml @@ -3,6 +3,10 @@ <itemizedlist> <listitem> + <para>&a.attilio; (2012)</para> + </listitem> + + <listitem> <para>&a.wilko; (2006 - 2012)</para> </listitem> diff --git a/en_US.ISO8859-1/articles/contributors/contrib.develalumni.xml b/en_US.ISO8859-1/articles/contributors/contrib.develalumni.xml index 7ab3b549b0..e11b6ff7f4 100644 --- a/en_US.ISO8859-1/articles/contributors/contrib.develalumni.xml +++ b/en_US.ISO8859-1/articles/contributors/contrib.develalumni.xml @@ -3,6 +3,14 @@ <!-- $FreeBSD$ --> <itemizedlist> <listitem> + <para>Doug Barton (2000 - 2012)</para> + </listitem> + + <listitem> + <para>&a.wilko; (2000 - 2012)</para> + </listitem> + + <listitem> <para>&a.murray; (2000 - 2012)</para> </listitem> diff --git a/en_US.ISO8859-1/articles/contributors/contrib.portmgralumni.xml b/en_US.ISO8859-1/articles/contributors/contrib.portmgralumni.xml index 418f3e058e..f9cb424f6c 100644 --- a/en_US.ISO8859-1/articles/contributors/contrib.portmgralumni.xml +++ b/en_US.ISO8859-1/articles/contributors/contrib.portmgralumni.xml @@ -3,6 +3,10 @@ <itemizedlist> <listitem> + <para>&a.pav; (2006 - 2012)</para> + </listitem> + + <listitem> <para>&a.flz; (2008 - 2012)</para> </listitem> diff --git a/en_US.ISO8859-1/articles/freebsd-update-server/article.xml b/en_US.ISO8859-1/articles/freebsd-update-server/article.xml index 0d6fdac872..7f1aff1ba7 100644 --- a/en_US.ISO8859-1/articles/freebsd-update-server/article.xml +++ b/en_US.ISO8859-1/articles/freebsd-update-server/article.xml @@ -20,7 +20,7 @@ <year>2009</year> <year>2010</year> <year>2011</year> - <holder role="mailto:jhelfman@experts-exchange.com">Jason Helfman</holder> + <holder role="mailto:jgh@FreeBSD.org">Jason Helfman</holder> </copyright> <legalnotice id="trademarks" role="trademarks"> @@ -49,9 +49,7 @@ <sect1 id="acknowledgments"> <title>Acknowledgments</title> - <para>This article was originally published at <ulink - url="http://www.experts-exchange.com/OS/Unix/BSD/FreeBSD/A_1941-Build-Your-Own-FreeBSD-Update-Server.html">Experts Exchange</ulink>, - and subsequently printed at <ulink + <para>This article was subsequently printed at <ulink url="http://bsdmag.org/magazine/1021-bsd-as-a-desktop">BSD Magazine</ulink>.</para> </sect1> diff --git a/en_US.ISO8859-1/articles/geom-class/article.xml b/en_US.ISO8859-1/articles/geom-class/article.xml index 97f7d87c21..bb33aaaf8d 100644 --- a/en_US.ISO8859-1/articles/geom-class/article.xml +++ b/en_US.ISO8859-1/articles/geom-class/article.xml @@ -89,7 +89,7 @@ <listitem><para>The &man.style.9; man page — for documentation on the coding-style conventions which must be followed for any code - which is to be committed to the FreeBSD CVS tree.</para></listitem> + which is to be committed to the FreeBSD Subversion tree.</para></listitem> </itemizedlist> diff --git a/en_US.ISO8859-1/articles/hubs/article.xml b/en_US.ISO8859-1/articles/hubs/article.xml index c3bcf45556..c523a24e29 100644 --- a/en_US.ISO8859-1/articles/hubs/article.xml +++ b/en_US.ISO8859-1/articles/hubs/article.xml @@ -122,13 +122,10 @@ also affected by the types of services you want to offer. Plain FTP or HTTP services may not require a huge amount of resources. Watch out if you provide - CVSup, rsync or even AnonCVS. This can have a huge - impact on CPU and memory requirements. Especially - rsync is considered a memory hog, and CVSup does - indeed consume some CPU. For AnonCVS it might - be a nice idea to set up a memory resident file system (MFS) of at least - 300 MB, so you need to take this into account - for your memory requirements. The following + rsync. This can have a huge + impact on CPU and memory requirements as it is + considered a memory hog. + The following are just examples to give you a very rough hint. </para> <para> diff --git a/en_US.ISO8859-1/articles/linux-users/article.xml b/en_US.ISO8859-1/articles/linux-users/article.xml index ad9e71e091..d5a00d5dd6 100644 --- a/en_US.ISO8859-1/articles/linux-users/article.xml +++ b/en_US.ISO8859-1/articles/linux-users/article.xml @@ -404,7 +404,7 @@ ifconfig_em0="DHCP"</programlisting> <para>Updating from source is the most involved update method, but offers the greatest amount of flexibility. The process involves synchronizing a local copy of the FreeBSD source code with the &os; - <application>CVS</application> (Concurrent Versioning System) servers. + <application>Subversion</application> servers. Once the local source code is up to date you can build new versions of the kernel and userland. For more information on source updates see <ulink url="&url.base;/doc/en_US.ISO8859-1/books/handbook/updating-upgrading.html">the chapter on updating</ulink> diff --git a/en_US.ISO8859-1/articles/mailing-list-faq/Makefile b/en_US.ISO8859-1/articles/mailing-list-faq/Makefile index 6412bc5980..53a873470a 100644 --- a/en_US.ISO8859-1/articles/mailing-list-faq/Makefile +++ b/en_US.ISO8859-1/articles/mailing-list-faq/Makefile @@ -13,11 +13,11 @@ INSTALL_ONLY_COMPRESSED?= WITH_ARTICLE_TOC?=YES # -# SRCS lists the individual SGML files that make up the document. Changes +# SRCS lists the individual XML files that make up the document. Changes # to any of these files will force a rebuild # -# SGML content +# XML content SRCS= article.xml URL_RELPREFIX?= ../../../.. diff --git a/en_US.ISO8859-1/articles/portbuild/article.xml b/en_US.ISO8859-1/articles/portbuild/article.xml index 5c26bca917..03443e1e95 100644 --- a/en_US.ISO8859-1/articles/portbuild/article.xml +++ b/en_US.ISO8859-1/articles/portbuild/article.xml @@ -21,6 +21,7 @@ <year>2010</year> <year>2011</year> <year>2012</year> + <year>2013</year> <holder role="mailto:portmgr@FreeBSD.org">The &os; Ports Management Team</holder> </copyright> @@ -47,95 +48,113 @@ <ulink url="http://pointyhat.FreeBSD.org"></ulink>.</para> <para>This article documents the internal workings of the - cluster.</para> + cluster.</para> <note> <para>Many of the details in this article will be of interest only to - those on the <ulink url="&url.base;/portmgr">Ports Management</ulink> - team.</para> + those on the <ulink url="&url.base;/portmgr/">Ports Management</ulink> + team.</para> </note> <sect2 id="codebase"> <title>The codebase</title> - <para>Most of the package building magic occurs under the - <filename>/var/portbuild</filename> directory. Unless - otherwise specified, all paths will be relative to - this location. <replaceable>${arch}</replaceable> will - be used to specify one of the package architectures - (amd64, &i386;, ia64, powerpc, and &sparc64;), and - <replaceable>${branch}</replaceable> will be used - to specify the build branch (7, 7-exp, 8, 8-exp, 9, 9-exp, 10, 10-exp). - </para> + <para>Most of the package building magic occurs under the + <filename>/var/portbuild</filename> directory. Unless + otherwise specified, all paths will be relative to + this location. <replaceable>${arch}</replaceable> will + be used to specify one of the package architectures + (e.g., amd64, arm, &i386;, ia64, powerpc, &sparc64;), and + <replaceable>${branch}</replaceable> will be used + to specify the build branch (e.g., 7, 7-exp, 8, 8-exp, 9, 9-exp, 10, 10-exp). + The set of branches that <username>portmgr</username> currently + supports is the same as those that the &os; + <ulink url="http://www.freebsd.org/security/index.html#supported-branches">security team</ulink> + supports. + </para> - <note> - <para>Packages are no longer built for Releases 4, 5, or 6, nor - for the alpha architecture.</para> - </note> + <note> + <para>Packages are no longer built for branches 4, 5, or 6, nor + for the alpha architecture.</para> + </note> - <para>The scripts that control all of this live in - <filename class="directory">/var/portbuild/scripts/</filename>. - These are the checked-out copies from the Subversion repository - <ulink url="http://svnweb.freebsd.org/base/projects/portbuild/scripts/"> - <filename class="directory">base/projects/portbuild/scripts/</filename> - </ulink>.</para> + <para>The scripts that control all of this live in + <filename role="directory">/var/portbuild/scripts/</filename>. + These are the checked-out copies from the Subversion repository at + <ulink url="http://svnweb.freebsd.org/base/projects/portbuild/scripts/"> + <filename role="directory">base/projects/portbuild/scripts/</filename> + </ulink>.</para> - <para>Typically, incremental builds are done that use previous - packages as dependencies; this takes less time, and puts less - load on the mirrors. Full builds are usually only done:</para> + <para>Typically, incremental builds are done that use previous + packages as dependencies; this takes less time, and puts less + load on the mirrors. Full builds are usually only done:</para> - <itemizedlist> - <listitem><para>right after release time, for the - <literal>-STABLE</literal> branches</para></listitem> + <itemizedlist> + <listitem> + <para>right after release time, for the + <literal>-STABLE</literal> branches</para> + </listitem> - <listitem><para>periodically to test changes to - <literal>-CURRENT</literal> - </para></listitem> + <listitem> + <para>periodically to test changes to + <literal>-CURRENT</literal></para> + </listitem> - <listitem><para>for experimental builds</para></listitem> - </itemizedlist> + <listitem> + <para>for experimental (<literal>"exp-"</literal>) builds</para> + </listitem> + </itemizedlist> + <para>Packages from experimental builds are not uploaded.</para> </sect2> <sect2 id="codebase-notes"> <title>Notes on the codebase</title> <para>Until mid-2010, the scripts were completely specific to - <hostid>pointyhat</hostid> as the head (dispatch) node. During + <hostid>pointyhat.FreeBSD.org</hostid> as the head (dispatch) node. During the summer of 2010, a significant rewrite was done in order to allow for other hosts to be head nodes. Among the changes were:</para> <itemizedlist> - <listitem><para>removal of the hard-coding of the string - <literal>pointyhat</literal></para></listitem> - - <listitem><para>factoring out all configuration constants (which - were previously scattered throughout the code) into configuration - files (see <link linkend="new-head-node">below</link>) - </para></listitem> + <listitem> + <para>removal of the hard-coding of the string + <literal>pointyhat</literal></para> + </listitem> - <listitem><para>appending the hostname to the directories - specified by <literal>buildid</literal> (this will allow - directories to be unambigious when copied between machines.) - </para></listitem> + <listitem> + <para>factoring out all configuration constants (which + were previously scattered throughout the code) into configuration + files (see <link linkend="new-head-node">below</link>)</para> + </listitem> - <listitem><para>making the scripts more robust in terms of setting - up directories and symlinks</para></listitem> + <listitem> + <para>appending the hostname to the directories + specified by <literal>buildid</literal> (this will allow + directories to be unambigious when copied between machines.)</para> + </listitem> - <listitem><para>where necessary, changing certain script invocations - to make all the above easier</para></listitem> + <listitem> + <para>making the scripts more robust in terms of setting + up directories and symlinks</para> + </listitem> + <listitem> + <para>where necessary, changing certain script invocations + to make all the above easier</para> + </listitem> </itemizedlist> <para>This document was originally written before these changes were made. Where things such as script invocations have changed, - they are denoted as <literal>new codebase:</literal> as opposed + they were denoted as <literal>new codebase:</literal> as opposed to <literal>old codebase:</literal>.</para> <note> - <para>As of December 2010, <hostid>pointyhat</hostid> is still - running on the old codebase, until the new codebase is considered - rock-solid.</para> + <para>Up until November 2012, <hostid>pointyhat</hostid> had still + been running the old codebase. That installation has now been + permanently offlined. Therefore, all the instructions having + to do with the old codebase have been removed.</para> </note> <note> @@ -164,10 +183,10 @@ interesting data (ports and src trees, bindist tarballs, scripts, etc.) to disconnected nodes during the node-setup phase. Then, the disconnected portbuild directory is - nullfs-mounted for chroot builds.</para> + nullfs-mounted for jail builds.</para> <para>The - <username>ports-<replaceable>${arch}</replaceable></username> + <username>portbuild</username> user can &man.ssh.1; to the client nodes to monitor them. Use <command>sudo</command> and check the <hostid>portbuild.<replaceable>hostname</replaceable>.conf</hostid> @@ -176,41 +195,32 @@ <para>The <command>scripts/allgohans</command> script can be used to run a command on all of the <replaceable>${arch}</replaceable> clients.</para> - - <para>The <command>scripts/checkmachines</command> script - is used to monitor the load on all the nodes of the - build cluster, and schedule which nodes build which ports. - This script is not very robust, and has a tendency to die. - It is best to start up this script on the build master - (e.g. <hostid>pointyhat</hostid>) - after boot time using a &man.while.1; loop. - </para> </sect1> <sect1 id="setup"> - <title>Chroot Build Environment Setup</title> + <title>Jail Build Environment Setup</title> <para>Package builds are performed in a - <literal>chroot</literal> populated by the + <literal>jail</literal> populated by the <filename>portbuild</filename> script using the <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/builds/<replaceable>${buildid}</replaceable>/bindist.tar</filename> file.</para> - <para>The following command builds a world from the + <para>The <command>makeworld</command> command builds a world from the <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/builds/<replaceable>${buildid}</replaceable>/src/</filename> tree and installs it into - <replaceable>${worlddir}</replaceable>. The tree will - be updated first unless <literal>-nocvs</literal> is - specified.</para> + <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/builds/<replaceable>${buildid}</replaceable>/bindist.tar</filename>. + The tree will + be updated first unless <literal>-novcs</literal> is + specified. It should be run as <username>root</username>:</para> - <screen>/var/portbuild&prompt.root; <userinput>scripts/makeworld <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable> <replaceable>${buildid}</replaceable> [-nocvs]</userinput></screen> + <screen>&prompt.root; <userinput>/var/portbuild/scripts/makeworld <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable> <replaceable>${buildid}</replaceable> [-novcs]</userinput></screen> <para>The <filename>bindist.tar</filename> tarball is created from the previously installed world by the <command>mkbindist</command> - script. It should be run as <username>root</username> with the following - command:</para> + script. It should be also be run as <username>root</username>:</para> - <screen>/var/portbuild&prompt.root; <userinput>scripts/mkbindist <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable> <replaceable>${buildid}</replaceable></userinput></screen> + <screen>&prompt.root; <userinput>/var/portbuild/scripts/mkbindist <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable> <replaceable>${buildid}</replaceable></userinput></screen> <para>The per-machine tarballs are located in <filename><replaceable>${arch}</replaceable>/clients</filename>.</para> @@ -218,24 +228,16 @@ <para>The <filename>bindist.tar</filename> file is extracted onto each client at client boot time, and at the start of each pass of the <command>dopackages</command> - script. - </para> + script.</para> - <sect2> - <title>New Codebase</title> - - <para>For both commands above, if - <replaceable>${buildid}</replaceable> is - <literal>latest</literal>, it may be omitted. - </para> - </sect2> + <para>For both commands above, if + <replaceable>${buildid}</replaceable> is + <literal>latest</literal>, it may be omitted.</para> </sect1> <sect1 id="customizing"> <title>Customizing Your Build</title> - <para>(The following only applies to the new codebase.)</para> - <para>You can customize your build by providing local versions of <filename>make.conf</filename> and/or <filename>src.conf</filename>, @@ -277,7 +279,7 @@ <para>(For this case, the contents are identical for both server and client.)</para> - <screen>RUBY_DEFAULT_VER= 1.9</screen> + <programlisting>RUBY_DEFAULT_VER= 1.9</programlisting> </example> <example> @@ -288,8 +290,7 @@ <para>(For this case, the contents are also identical for both server and client.)</para> - <screen> -.if !defined(CC) || ${CC} == "cc" + <programlisting>.if !defined(CC) || ${CC} == "cc" CC=clang .endif .if !defined(CXX) || ${CXX} == "c++" @@ -298,44 +299,44 @@ CXX=clang++ .if !defined(CPP) || ${CPP} == "cpp" CPP=clang-cpp .endif -# Don't die on warnings +# Do not die on warnings NO_WERROR= -WERROR= -</screen> +WERROR=</programlisting> </example> <example> <title>Sample <filename>make.conf.server</filename> for <application>pkgng</application></title> - <screen>WITH_PKGNG=yes -PKG_BIN=/usr/local/sbin/pkg</screen> + <programlisting>WITH_PKGNG=yes +PKG_BIN=/usr/local/sbin/pkg</programlisting> </example> <example> <title>Sample <filename>make.conf.client</filename> for <application>pkgng</application></title> - <screen>WITH_PKGNG=yes</screen> + <programlisting>WITH_PKGNG=yes</programlisting> </example> <example> <title>Sample <filename>src.conf.server</filename> to test new <application>sort</application> codebase</title> - <screen>WITH_BSD_SORT=yes</screen> + <programlisting>WITH_BSD_SORT=yes</programlisting> </example> </sect1> <sect1 id="starting"> <title>Starting the Build</title> - <para>Several separate builds for each architecture - branch combination + <para>Separate builds for various combinations of architecture and branch are supported. All data private to a build (ports tree, src tree, - packages, distfiles, log files, bindist, Makefile, etc) are located under - <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/builds/<replaceable>${buildid}</replaceable></filename>. - The last created build can be alternatively referenced under buildid - <literal>latest</literal>, the one before is called + packages, distfiles, log files, bindist, Makefile, etc) are located under the + <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/builds/<replaceable>${buildid}</replaceable>/</filename> + directory. + The most recently created build can be alternatively referenced using buildid + <literal>latest</literal>, and the one before using <literal>previous</literal>.</para> <para>New builds are cloned from the <literal>latest</literal>, which is @@ -344,365 +345,260 @@ PKG_BIN=/usr/local/sbin/pkg</screen> <sect2 id="build-dopackages"> <title><command>dopackages</command> scripts</title> - <para>The <filename>scripts/dopackages</filename> scripts - are used to perform the builds.</para> + <para>The <filename>scripts/dopackages.wrapper</filename> script + is used to perform the builds.</para> - <sect3> - <title>Old codebase</title> - <para>For the old codebase: the - most useful are:</para> + <screen>&prompt.root; <userinput>dopackages.wrapper <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable> <replaceable>${buildid}</replaceable> <option>[-options]</option></userinput></screen> - <itemizedlist> - <listitem> - <para><command>dopackages.7</command> - Perform - a 7.X build - </para> - </listitem> + <para>Most often, you will be using <literal>latest</literal> for + the value of <replaceable>buildid</replaceable>.</para> - <listitem> - <para><command>dopackages.7-exp</command> - Perform - a 7.X build with experimental patches - (7-exp branch) - </para> - </listitem> + <para><literal>[-options]</literal> may be zero or more of the + following:</para> - <listitem> - <para><command>dopackages.8</command> - Perform - a 8.X build - </para> - </listitem> - - <listitem> - <para><command>dopackages.8-exp</command> - Perform - a 8.X build with experimental patches - (8-exp branch) - </para> - </listitem> - - <listitem> - <para><command>dopackages.9</command> - Perform - a 9.X build - </para> - </listitem> - - <listitem> - <para><command>dopackages.9-exp</command> - Perform - a 9.X build with experimental patches - (9-exp branch) - </para> - </listitem> - - <listitem> - <para><command>dopackages.10</command> - Perform - a 10.X build - </para> - </listitem> - - <listitem> - <para><command>dopackages.10-exp</command> - Perform - a 10.X build with experimental patches - (10-exp branch) - </para> - </listitem> - </itemizedlist> - - <para>These are wrappers around <command>dopackages</command>, - and are all symlinked to <command>dopackages.wrapper</command>. - New branch wrapper scripts can be created by symlinking - <command>dopackages.${branch}</command> to - <command>dopackages.wrapper</command>. These scripts - take a number of arguments. For example:</para> - - <screen><command>dopackages.7 <replaceable>${arch}</replaceable> <replaceable>${buildid}</replaceable> <literal>[-options]</literal></command></screen> - - </sect3> - - <sect3> - <title>New codebase</title> - <para>The symlinks go away, and you just use - <command>dopackages.wrapper</command> directly. For example:</para> - - <screen><command>dopackages.wrapper <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable> <replaceable>${buildid}</replaceable> <literal>[-options]</literal></command></screen> - - </sect3> - - <sect3> - <title>Either codebase</title> + <itemizedlist> + <listitem> + <para><option>-keep</option> - Do not delete this build in the + future, when it would be normally deleted as part of the + <literal>latest</literal> - <literal>previous</literal> cycle. + Do not forget to clean it up manually when you no longer need it.</para> + </listitem> - <para>Most often, you will be using <literal>latest</literal> for - the value of <replaceable>buildid</replaceable>.</para> + <listitem> + <para><option>-nofinish</option> - Do not perform + post-processing once the build is complete. Useful + if you expect that the build will need to be restarted + once it finishes. If you use this option, do not forget to cleanup + the clients when you do not need the build any more.</para> + </listitem> - <para><literal>[-options]</literal> may be zero or more of the - following:</para> + <listitem> + <para><option>-finish</option> - Perform + post-processing only.</para> + </listitem> - <itemizedlist> - <listitem> - <para><literal>-keep</literal> - Do not delete this build in the - future, when it would be normally deleted as part of the - <literal>latest</literal> - <literal>previous</literal> cycle. - Don't forget to clean it up manually when you no longer need it. - </para> - </listitem> + <listitem> + <para><option>-nocleanup</option> - By default, when the + <option>-finish</option> stage of the build is complete, the build + data will be deleted from the clients. This option will prevent + that.</para> + </listitem> - <listitem> - <para><literal>-nofinish</literal> - Do not perform - post-processing once the build is complete. Useful - if you expect that the build will need to be restarted - once it finishes. If you use this option, don't forget to cleanup - the clients when you don't need the build anymore. - </para> - </listitem> + <listitem> + <para><option>-restart</option> - Restart an interrupted + (or non-<literal>finish</literal>ed) build from the + beginning. Ports that failed on the previous build will + be rebuilt.</para> + </listitem> - <listitem> - <para><literal>-finish</literal> - Perform - post-processing only. - </para> - </listitem> + <listitem> + <para><option>-continue</option> - Restart an interrupted + (or non-<literal>finish</literal>ed) build. Will not + rebuild ports that failed on the previous build.</para> + </listitem> - <listitem> - <para><literal>-nocleanup</literal> - By default, when the - <literal>-finish</literal> stage of the build is complete, the build - data will be deleted from the clients. This option will prevent - that.</para> - </listitem> + <listitem> + <para><option>-incremental</option> - Compare the + interesting fields of the new + <filename>INDEX</filename> with the previous one, + remove packages and log files for the old ports that + have changed, and rebuild the rest. This + cuts down on build times substantially since + unchanged ports do not get rebuilt every time.</para> + </listitem> - <listitem> - <para><literal>-restart</literal> - Restart an interrupted - (or non-<literal>finish</literal>ed) build from the - beginning. Ports that failed on the previous build will - be rebuilt. - </para> - </listitem> + <listitem> + <para><option>-cdrom</option> - This package build is + intended to end up on a CD-ROM, so + <makevar>NO_CDROM</makevar> packages and distfiles + should be deleted in post-processing.</para> + </listitem> - <listitem> - <para><literal>-continue</literal> - Restart an interrupted - (or non-<literal>finish</literal>ed) build. Will not - rebuild ports that failed on the previous build. - </para> - </listitem> + <listitem> + <para><option>-nobuild</option> - Perform all + the preprocessing steps, but do not actually do + the package build.</para> + </listitem> - <listitem> - <para><literal>-incremental</literal> - Compare the - interesting fields of the new - <literal>INDEX</literal> with the previous one, - remove packages and log files for the old ports that - have changed, and rebuild the rest. This - cuts down on build times substantially since - unchanged ports do not get rebuilt every time. - </para> - </listitem> + <listitem> + <para><option>-noindex</option> - Do not rebuild + <filename>INDEX</filename> during preprocessing.</para> + </listitem> - <listitem> - <para><literal>-cdrom</literal> - This package build is - intended to end up on a CD-ROM, so - <literal>NO_CDROM</literal> packages and distfiles - should be deleted in post-processing. - </para> - </listitem> + <listitem> + <para><option>-noduds</option> - Do not rebuild the + <filename>duds</filename> file (ports that are never + built, e.g., those marked <literal>IGNORE</literal>, + <makevar>NO_PACKAGE</makevar>, etc.) during + preprocessing.</para> + </listitem> - <listitem> - <para><literal>-nobuild</literal> - Perform all - the preprocessing steps, but do not actually do - the package build. - </para> - </listitem> + <listitem> + <para><option>-nochecksubdirs</option> - Do not check the + <makevar>SUBDIRS</makevar> for ports that are not connected + to the build.</para> + </listitem> - <listitem> - <para><literal>-noindex</literal> - Do not rebuild - <filename>INDEX</filename> during preprocessing. - </para> - </listitem> + <listitem> + <para><option>-trybroken</option> - Try to build + <makevar>BROKEN</makevar> ports (off by default + because the amd64/&i386; clusters are fast enough now + that when doing incremental builds, more time + was spent rebuilding things that were going to + fail anyway. Conversely, the other clusters + are slow enough that it would be a waste of time + to try and build <makevar>BROKEN</makevar> ports).</para> - <listitem> - <para><literal>-noduds</literal> - Do not rebuild the - <filename>duds</filename> file (ports that are never - built, e.g. those marked <literal>IGNORE</literal>, - <literal>NO_PACKAGE</literal>, etc.) during - preprocessing. - </para> - </listitem> + <note> + <para>With <option>-trybroken</option>, you probably + also want to use <option>-fetch-original</option> + and + <option>-unlimited-errors</option>.</para> + </note> + </listitem> - <listitem> - <para><literal>-nochecksubdirs</literal> - Do not check the - <makevar>SUBDIRS</makevar> for ports that are not connected - to the build. (New codebase only). - </para> - </listitem> + <listitem> + <para><option>-nosrc</option> - Do not update the + <filename>src</filename> tree from the ZFS snapshot, keep the tree from + previous build instead.</para> + </listitem> - <listitem> - <para><literal>-trybroken</literal> - Try to build - <literal>BROKEN</literal> ports (off by default - because the amd64/&i386; clusters are fast enough now - that when doing incremental builds, more time - was spent rebuilding things that were going to - fail anyway. Conversely, the other clusters - are slow enough that it would be a waste of time - to try and build <literal>BROKEN</literal> ports). - </para> - <note> - <para>With <literal>-trybroken</literal>, you probably - also want to use <literal>-fetch-original</literal> - (and, on the new codebase, - <literal>-unlimited-errors</literal>).</para> - </note> - </listitem> + <listitem> + <para><option>-srcvcs</option> - Do not update the + <filename>src</filename> tree from the ZFS snapshot, update it with + a fresh checkout instead.</para> + </listitem> - <listitem> - <para><literal>-nosrc</literal> - Do not update the - <literal>src</literal> tree from the ZFS snapshot, keep the tree from - previous build instead. - </para> - </listitem> + <listitem> + <para><option>-noports</option> - Do not update the + <filename>ports</filename> tree from the ZFS snapshot, keep the tree from + previous build instead.</para> + </listitem> - <listitem> - <para><literal>-srccvs</literal> - Do not update the - <literal>src</literal> tree from the ZFS snapshot, update it with - <literal>cvs update</literal> instead. - </para> - </listitem> + <listitem> + <para><option>-portsvcs</option> - Do not update the + <filename>ports</filename> tree from the ZFS snapshot, update it with + a fresh checkout instead.</para> + </listitem> - <listitem> - <para><literal>-noports</literal> - Do not update the - <literal>ports</literal> tree from the ZFS snapshot, keep the tree from - previous build instead. - </para> - </listitem> + <listitem> + <para><option>-norestr</option> - Do not attempt to build + <makevar>RESTRICTED</makevar> ports.</para> + </listitem> - <listitem> - <para><literal>-portscvs</literal> - Do not update the - <literal>ports</literal> tree from the ZFS snapshot, update it with - <literal>cvs update</literal> instead. - </para> - </listitem> + <listitem> + <para><option>-noplistcheck</option> - Do not make it fatal for + ports to leave behind files after deinstallation.</para> + </listitem> - <listitem> - <para><literal>-norestr</literal> - Do not attempt to build - <literal>RESTRICTED</literal> ports. - </para> - </listitem> + <listitem> + <para><option>-nodistfiles</option> - Do not collect distfiles + that pass <command>make checksum</command> for later + uploading to <hostid>ftp-master</hostid>.</para> + </listitem> - <listitem> - <para><literal>-noplistcheck</literal> - Do not make it fatal for - ports to leave behind files after deinstallation. - </para> - </listitem> + <listitem> + <para><option>-fetch-original</option> - Fetch the + distfile from the original <makevar>MASTER_SITES</makevar> + rather than any cache such as on <hostid>ftp-master</hostid>.</para> + </listitem> - <listitem> - <para><literal>-nodistfiles</literal> - Do not collect distfiles - that pass <command>make checksum</command> for later - uploading to <hostid>ftp-master</hostid>. - </para> - </listitem> + <listitem> + <para><option>-unlimited-errors</option> + - defeat the "qmanager threshhold" check for runaway + builds. You want this primarily when doing a + <option>-restart</option> of a build that you expect to mostly + fail, or perhaps a <option>-trybroken</option> run. By default, + the threshhold check is done.</para> + </listitem> + </itemizedlist> - <listitem> - <para><literal>-fetch-original</literal> - Fetch the - distfile from the original <literal>MASTER_SITES</literal> - rather than <hostid>ftp-master</hostid>. - </para> - </listitem> + <para>Unless you specify <option>-restart</option>, + <option>-continue</option>, or <option>-finish</option>, + the symlinks for the existing builds will be rotated. i.e, + the existing symlink for <filename>previous</filename> will + be deleted; the most recent build will have its symlink changed + to <filename>previous/</filename>; and a new build will be + created and symlinked into <filename>latest/</filename>.</para> - <listitem> - <para><literal>-unlimited-errors</literal> (new codebase - only) - defeat the "qmanager threshhold" check for runaway - builds. You want this primarily when doing a - <literal>-restart</literal> of a build that you expect to mostly - fail, or perhaps a <literal>-trybroken</literal> run. By default, - the threshhold check is done.</para> - </listitem> - </itemizedlist> + <para>If the last build finished cleanly you do not need to delete + anything. If it was interrupted, or you selected + <option>-nocleanup</option>, you need to clean up clients by running</para> - <para>Unless you specify <literal>-restart</literal>, - <literal>-continue</literal>, or <literal>-finish</literal>, - the symlinks for the existing builds will be rotated. i.e, - the existing symlink for <filename>previous</filename> will - be deleted; the most recent build will have its symlink changed - to <filename>previous/</filename>; and a new build will be - created and symlinked into <filename>latest/</filename>. - </para> + <screen>&prompt.user; <userinput>build cleanup <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable> <replaceable>${buildid}</replaceable> -full</userinput></screen> - <para>If the last build finished cleanly you do not need to delete - anything. If it was interrupted, or you selected - <literal>-nocleanup</literal>, you need to clean up clients by running - </para> + <para>When a new build is created, the directories <filename>errors/</filename>, + <filename>logs/</filename>, <filename>packages/</filename>, and so + forth, are cleaned by the scripts. If you are short of space, + you can also clean out <filename>ports/distfiles/</filename>. + Leave the <filename>latest/</filename> directory alone; it is + a symlink for the webserver.</para> - <para><command>build cleanup <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable> <replaceable>${buildid}</replaceable> -full</command></para> + <note> + <para><literal>dosetupnodes</literal> is supposed to be run from + the <literal>dopackages</literal> script in the + <option>-restart</option> case, but it can be a good idea to + run it by hand and then verify that the clients all have the + expected job load. Sometimes, + <filename>dosetupnode</filename> cannot clean up a build and you + need to do it by hand. (This is a bug.)</para> + </note> - <para><filename>errors/</filename>, - <filename>logs/</filename>, <filename>packages/</filename>, and so - forth, are cleaned by the scripts. If you are short of space, - you can also clean out <filename>ports/distfiles/</filename>. - Leave the <filename>latest/</filename> directory alone; it is - a symlink for the webserver.</para> + <para>Make sure the <replaceable>${arch}</replaceable> build + is run as the <username>portbuild</username> user + or it will complain loudly.</para> - <note> - <para><literal>dosetupnodes</literal> is supposed to be run from - the <literal>dopackages</literal> script in the - <literal>-restart</literal> case, but it can be a good idea to - run it by hand and then verify that the clients all have the - expected job load. Sometimes, - <literal>dosetupnode</literal> cannot clean up a build and you - need to do it by hand. (This is a bug.)</para> - </note> + <note> + <para>The actual package build itself occurs in two + identical phases. The reason for this is that sometimes + transient problems (e.g., NFS failures, FTP sites being + unreachable, etc.) may halt a build. Doing things + in two phases is a workaround for these types of + problems.</para> + </note> - <para>Make sure the <replaceable>${arch}</replaceable> build - is run as the ports-<replaceable>${arch}</replaceable> user - or it will complain loudly.</para> - - <note><para>The actual package build itself occurs in two - identical phases. The reason for this is that sometimes - transient problems (e.g. NFS failures, FTP sites being - unreachable, etc.) may halt a build. Doing things - in two phases is a workaround for these types of - problems.</para></note> - - <para>Be careful that <filename>ports/Makefile</filename> - does not specify any empty subdirectories. This is especially - important if you are doing an -exp build. If the build - process encounters an empty subdirectory, both package build - phases will stop short, and an error similar to the following - will be written to - <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/make.[0|1]</filename>: - </para> + <para>Be careful that <filename>ports/Makefile</filename> + does not specify any empty subdirectories. This is especially + important if you are doing an -exp build. If the build + process encounters an empty subdirectory, both package build + phases will stop short, and an error similar to the following + will be written to + <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/journal</filename>:</para> - <screen><literal>don't know how to make dns-all(continuing)</literal></screen> + <screen>don't know how to make dns-all(continuing)</screen> - <para>To correct this problem, simply comment out or remove - the <literal>SUBDIR</literal> entries that point to empty - subdirectories. After doing this, you can restart the build - by running the proper <command>dopackages</command> command - with the <literal>-restart</literal> option. - </para> + <para>To correct this problem, simply comment out or remove + the <makevar>SUBDIR</makevar> entries that point to empty + subdirectories. After doing this, you can restart the build + by running the proper <command>dopackages</command> command + with the <option>-restart</option> option.</para> - <note> - <para>This problem also appears if you create a new category - <filename>Makefile</filename> with no <makevar>SUBDIR</makevar>s - in it. This is probably a bug.</para> - </note> + <note> + <para>This problem also appears if you create a new category + <filename>Makefile</filename> with no <makevar>SUBDIR</makevar>s + in it. This is probably a bug.</para> + </note> - <example> - <title>Update the i386-7 tree and do a complete build</title> + <example> + <title>Update the i386-7 tree and do a complete build</title> - <para><command>dopackages.7 i386 -nosrc -norestr -nofinish</command></para> - <para><command>dopackages.wrapper i386 7 -nosrc -norestr -nofinish</command></para> - </example> + <screen>&prompt.user; <userinput>dopackages.wrapper i386 7 -nosrc -norestr -nofinish</userinput></screen> + </example> - <example> - <title>Restart an interrupted amd64-8 build without updating</title> + <example> + <title>Restart an interrupted amd64-8 build without updating</title> - <para><command>dopackages.8 amd64 -nosrc -noports -norestr -continue -noindex -noduds -nofinish</command></para> - <para><command>dopackages.wrapper amd64 8 -nosrc -noports -norestr -continue -noindex -noduds -nofinish</command></para> - </example> + <screen>&prompt.user; <userinput>dopackages.wrapper amd64 8 -nosrc -noports -norestr -continue -noindex -noduds -nofinish</userinput></screen> + </example> - <example> - <title>Post-process a completed sparc64-7 tree</title> + <example> + <title>Post-process a completed sparc64-7 tree</title> - <para><command>dopackages.7 sparc64 -finish</command></para> - <para><command>dopackages.wrapper sparc64 7 -finish</command></para> - </example> + <screen>&prompt.user; <userinput>dopackages.wrapper sparc64 7 -finish</userinput></screen> + </example> - <para>Hint: it us usually best to run the <command>dopackages</command> - command inside of <command>screen(1)</command>.</para> - </sect3> + <para>Hint: it is usually best to run the <command>dopackages</command> + command inside of <command>screen(1)</command>.</para> </sect2> <sect2 id="build-command"> @@ -719,10 +615,7 @@ PKG_BIN=/usr/local/sbin/pkg</screen> <replaceable>branch</replaceable> [<replaceable>newid</replaceable>]</literal> - Creates <replaceable>newid</replaceable> (or a datestamp if not specified). - Only needed when bringing up a new branch or a new architecture. - (TODO: document whether newid must be specified as - <literal>latest</literal> in the new codebase.) - </para> + Only needed when bringing up a new branch or a new architecture.</para> </listitem> <listitem> @@ -730,30 +623,26 @@ PKG_BIN=/usr/local/sbin/pkg</screen> <replaceable>branch</replaceable> <replaceable>oldid</replaceable> [<replaceable>newid</replaceable>]</literal> - Clones <replaceable>oldid</replaceable> to - <replaceable>newid</replaceable> (or a datestamp if not specified). - </para> + <replaceable>newid</replaceable> (or a datestamp if not specified).</para> </listitem> <listitem> <para><literal>build srcupdate <replaceable>arch</replaceable> <replaceable>branch</replaceable> <replaceable>buildid</replaceable></literal> - Replaces the src - tree with a new ZFS snapshot. Don't forget to use + tree with a new ZFS snapshot. Do not forget to use <literal>-nosrc</literal> flag to <command>dopackages</command> - later! - </para> + later!</para> </listitem> <listitem> <para><literal>build portsupdate <replaceable>arch</replaceable> <replaceable>branch</replaceable> <replaceable>buildid</replaceable></literal> - Replaces the ports - tree with a new ZFS snapshot. Don't forget to use + tree with a new ZFS snapshot. Do not forget to use <literal>-noports</literal> flag to <command>dopackages</command> - later! - </para> + later!</para> </listitem> - </itemizedlist> </sect2> @@ -764,7 +653,7 @@ PKG_BIN=/usr/local/sbin/pkg</screen> package set. This can be accomplished with the following invocation:</para> - <para><command><replaceable>path</replaceable>/qmanager/packagebuild <replaceable>amd64</replaceable> <replaceable>7-exp</replaceable> <replaceable>20080904212103</replaceable> <replaceable>aclock-0.2.3_2.tbz</replaceable></command></para> + <screen>&prompt.root; <command><replaceable>path</replaceable>/qmanager/packagebuild <replaceable>amd64</replaceable> <replaceable>7-exp</replaceable> <replaceable>20080904212103</replaceable> <replaceable>aclock-0.2.3_2.tbz</replaceable></command></screen> </sect2> </sect1> @@ -777,88 +666,72 @@ PKG_BIN=/usr/local/sbin/pkg</screen> <orderedlist> <listitem> - <para>An update of the current <literal>ports</literal> - tree from the ZFS snapshot [*] - </para> + <para>An update of the current <filename>ports</filename> + tree from the ZFS snapshot<footnote id="footnote-status1"> + <para>Status of these steps can be found in + <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/build.log</filename> + as well as on stderr of the tty running the + <command>dopackages</command> command.</para></footnote></para> </listitem> <listitem> <para>An update of the running branch's - <literal>src</literal> tree from the ZFS snapshot [*] - </para> + <filename>src</filename> tree from the ZFS snapshot<footnoteref linkend='footnote-status1'></footnoteref></para> </listitem> <listitem> <para>Checks which ports do not have a - <literal>SUBDIR</literal> entry in their respective - category's <filename>Makefile</filename> [*] - </para> + <makevar>SUBDIR</makevar> entry in their respective + category's <filename>Makefile</filename><footnoteref linkend='footnote-status1'></footnoteref></para> </listitem> <listitem> <para>Creates the <filename>duds</filename> file, which - is a list of ports not to build [*] [+] - </para> + is a list of ports not to build<footnoteref linkend='footnote-status1'></footnoteref><footnote id="footnote-buildstop"> + <para>If any of these steps fail, the build will stop + cold in its tracks.</para></footnote></para> </listitem> <listitem> <para>Generates a fresh <filename>INDEX</filename> - file [*] [+] - </para> + file<footnoteref linkend='footnote-status1'></footnoteref><footnoteref linkend='footnote-buildstop'></footnoteref></para> </listitem> <listitem> <para>Sets up the nodes that will be used in the - build [*] [+] - </para> + build<footnoteref linkend='footnote-status1'></footnoteref><footnoteref linkend='footnote-buildstop'></footnoteref></para> </listitem> <listitem> - <para>Builds a list of restricted ports [*] [+]</para> + <para>Builds a list of restricted ports<footnoteref linkend='footnote-status1'></footnoteref><footnoteref linkend='footnote-buildstop'></footnoteref></para> </listitem> <listitem> - <para>Builds packages (phase 1) [++]</para> + <para>Builds packages (phase 1)<footnote id="footnote-status2"><para>Status of these steps can be found in + <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/journal</filename>. + Individual ports will write + their build logs to + <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/logs/</filename> + and their error logs to + <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/errors/</filename>. + </para></footnote></para> </listitem> <listitem> - <para>Performs another node setup [+]</para> + <para>Performs another node setup<footnoteref linkend='footnote-status1'></footnoteref></para> </listitem> <listitem> - <para>Builds packages (phase 2) [++]</para> + <para>Builds packages (phase 2)<footnoteref linkend='footnote-status2'></footnoteref></para> </listitem> </orderedlist> - - <para>[*] Status of these steps can be found in - <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/build.log</filename> - as well as on stderr of the tty running the - <command>dopackages</command> command.</para> - - <para>[+] If any of these steps fail, the build will stop - cold in its tracks.</para> - - <para>[++] Status of these steps can be found in - <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/make</filename> (old codebase) or - <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/journal</filename> (new codebase). - Individual ports will write - their build logs to - <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/logs</filename> - and their error logs to - <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/errors</filename>. - </para> - - <para>Formerly the docs tree was also checked out, however, it has - been found to be unnecessary. - </para> </sect1> <sect1 id="build-maintenance"> <title>Build Maintenance</title> <para>There are several cases where you will need to manually clean - up a build: - </para> + up a build:</para> <orderedlist> <listitem> @@ -866,7 +739,7 @@ PKG_BIN=/usr/local/sbin/pkg</screen> </listitem> <listitem> - <para><hostid>pointyhat</hostid> has been rebooted while + <para>The head node has been rebooted while a build was running.</para> </listitem> @@ -874,99 +747,98 @@ PKG_BIN=/usr/local/sbin/pkg</screen> <para><filename>qmanager</filename> has crashed and has been restarted.</para> </listitem> - </orderedlist> - - <sect2 id="interrupting"> - <title>Interrupting a Build</title> - - <para>Manually interrupting a build is a bit messy. First you need to - identify the tty in which it's running (either record the output - of &man.tty.1; when you start the build, or use <command>ps x</command> - to identify it. You need to make sure that nothing else important - is running in this tty, e.g. <command>ps -t p1</command> or whatever. - If there is not, you can just kill off the whole term easily with - <command>pkill -t pts/1</command>; otherwise issue a - <command>kill -HUP</command> in there by, for example, -<command>ps -t pts/1 -o pid= | xargs kill -HUP</command>. Replace - <replaceable>p1</replaceable> by whatever the tty is, of course.</para> + </orderedlist> - <para>The - package builds dispatched by <command>make</command> to - the client machines will clean themselves up after a - few minutes (check with <command>ps x</command> until they - all go away).</para> + <sect2 id="interrupting"> + <title>Interrupting a Build</title> + + <para>Manually interrupting a build is a bit messy. First you need to + identify the tty in which it's running (either record the output + of &man.tty.1; when you start the build, or use <command>ps x</command> + to identify it. You need to make sure that nothing else important + is running in this tty, e.g., <userinput>ps -t p1</userinput> or whatever. + If there is not, you can just kill off the whole term easily with + <userinput>pkill -t pts/1</userinput>; otherwise issue a + <userinput>kill -HUP</userinput> in there by, for example, + <userinput>ps -t pts/1 -o pid= | xargs kill -HUP</userinput>. Replace + <replaceable>p1</replaceable> by whatever the tty is, of course.</para> + + <para>The + package builds dispatched by <command>make</command> to + the client machines will clean themselves up after a + few minutes (check with <command>ps x</command> until they + all go away).</para> + + <para>If you do not kill &man.make.1;, then it will spawn more jobs. + If you do not kill <command>dopackages</command>, then it will restart + the entire build. If you do not kill the <command>pdispatch</command> + processes, they'll keep going (or respawn) until they've built their + package.</para> + </sect2> - <para>If you do not kill &man.make.1;, then it will spawn more jobs. - If you do not kill <command>dopackages</command>, then it will restart - the entire build. If you do not kill the <command>pdispatch</command> - processes, they'll keep going (or respawn) until they've built their - package.</para> + <sect2 id="cleanup"> + <title>Cleaning up a Build</title> - </sect2> + <para>To free up resources, you will need to clean up client machines by + running <command>build cleanup</command> command. For example:</para> - <sect2 id="cleanup"> - <title>Cleaning up a Build</title> + <screen>&prompt.user; <userinput>/var/portbuild/scripts/build cleanup i386 8-exp 20080714120411 -full</userinput></screen> - <para>To free up resources, you will need to clean up client machines by - running <command>build cleanup</command> command. For example: - <screen>&prompt.user; <userinput>/var/portbuild/scripts/build cleanup i386 8-exp 20080714120411 -full</userinput></screen></para> + <para>If you forget to do this, then the old build + <literal>jail</literal>s will not be cleaned up for 24 hours, and no + new jobs will be dispatched in their place since + <hostid>pointyhat</hostid> thinks the job slot is still occupied.</para> - <para>If you forget to do this, then the old build - <literal>chroot</literal>s will not be cleaned up for 24 hours, and no - new jobs will be dispatched in their place since - <hostid>pointyhat</hostid> thinks the job slot is still occupied.</para> + <para>To check, <userinput>cat ~/loads/*</userinput> to display the + status of client machines; the first column is the number of jobs + it thinks is running, and this should be roughly concordant + with the load average. <literal>loads</literal> is refreshed + every 2 minutes. If you do <userinput>ps x | grep pdispatch</userinput> + and it is less than the number of jobs that <literal>loads</literal> + thinks are in use, you are in trouble.</para> - <para>To check, <command>cat ~/loads/*</command> to display the - status of client machines; the first column is the number of jobs - it thinks is running, and this should be roughly concordant - with the load average. <literal>loads</literal> is refreshed - every 2 minutes. If you do <command>ps x | grep pdispatch</command> - and it's less than the number of jobs that <literal>loads</literal> - thinks are in use, you're in trouble.</para> + <para>You may have problem with the <command>umount</command> + commands hanging. If so, you are going to have to use the + <command>allgohans</command> script to run an &man.ssh.1; + command across all clients for that buildenv. For example:</para> - <para>You may have problem with the <command>umount</command> - commands hanging. If so, you are going to have to use the - <command>allgohans</command> script to run an &man.ssh.1; - command across all clients for that buildenv. For example: -<screen>ssh -l root gohan24 df</screen> + <screen>&prompt.user; ssh gohan24 df</screen> - will get you a df, and + <para>will get you a df, and</para> -<screen>allgohans "umount -f pointyhat.freebsd.org:/var/portbuild/i386/8-exp/ports" -allgohans "umount -f pointyhat.freebsd.org:/var/portbuild/i386/8-exp/src"</screen> + <screen>&prompt.user; allgohans "umount -f pointyhat.freebsd.org:/var/portbuild/i386/8-exp/ports" +&prompt.user; allgohans "umount -f pointyhat.freebsd.org:/var/portbuild/i386/8-exp/src"</screen> - are supposed to get rid of the hanging mounts. You will have to - keep doing them since there can be multiple mounts.</para> + <para>are supposed to get rid of the hanging mounts. You will have to + keep doing them since there can be multiple mounts.</para> - <note> - <para>Ignore the following: + <note> + <para>Ignore the following:</para> -<screen>umount: pointyhat.freebsd.org:/var/portbuild/i386/8-exp/ports: statfs: No such file or directory + <screen>umount: pointyhat.freebsd.org:/var/portbuild/i386/8-exp/ports: statfs: No such file or directory umount: pointyhat.freebsd.org:/var/portbuild/i386/8-exp/ports: unknown file system umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! /x/tmp/8-exp/chroot/53837/compat/linux/proc: not a file system root directory</screen> - The former 2 mean that that client did not have those mounted; - the latter 2 are a bug.</para> - - <para>You may also see messages about <literal>procfs</literal>.</para> - </note> + <para>The former two mean that the client did not have those mounted; + the latter two are a bug.</para> - <para>After you have done all the above, remove the - <filename><replaceable>${arch}</replaceable>/lock</filename> - file before trying to restart the build. If you do not, - <filename>dopackages</filename> will simply exit. - </para> + <para>You may also see messages about <literal>procfs</literal>.</para> + </note> - <para>If you have to do a ports tree update before - restarting, you may have to rebuild either <filename>duds</filename>, - <filename>INDEX</filename>, or both.</para> + <para>After you have done all the above, remove the + <filename><replaceable>${arch}</replaceable>/lock</filename> + file before trying to restart the build. If you do not, + <filename>dopackages</filename> will simply exit.</para> + <para>If you have to do a ports tree update before + restarting, you may have to rebuild either <filename>duds</filename>, + <filename>INDEX</filename>, or both.</para> </sect2> <sect2 id="build-command-2"> <title>Maintaining builds with the <command>build</command> - command</title> + command</title> <para>Here are the rest of the options for the <command>build</command> command:</para> @@ -975,26 +847,16 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! <listitem> <para><literal>build destroy <replaceable>arch</replaceable> <replaceable>branch</replaceable></literal> - Destroy the - build id. - </para> + build id.</para> </listitem> <listitem> <para><literal>build list <replaceable>arch</replaceable> <replaceable>branch</replaceable></literal> - Shows the current set - of build ids. - </para> - </listitem> - - <listitem> - <para><literal>build upload <replaceable>arch</replaceable> - <replaceable>branch</replaceable></literal> - not yet - implemented.</para> + of build ids.</para> </listitem> </itemizedlist> - </sect2> - </sect1> <sect1 id="monitoring"> @@ -1003,14 +865,14 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! <para>You can use <command>qclient</command> command to monitor the status of build nodes, and to list the currently scheduled jobs:</para> - <para><command>python <replaceable>path</replaceable>/qmanager/qclient jobs</command></para> - <para><command>python <replaceable>path</replaceable>/qmanager/qclient status</command></para> + <screen>&prompt.user; <userinput>python <replaceable>path</replaceable>/qmanager/qclient jobs</userinput> +&prompt.user; <userinput>python <replaceable>path</replaceable>/qmanager/qclient status</userinput></screen> <para>The - <command>scripts/stats <replaceable>${branch}</replaceable></command> + <userinput>scripts/stats <replaceable>${branch}</replaceable></userinput> command shows the number of packages already built.</para> - <para>Running <command>cat /var/portbuild/*/loads/*</command> + <para>Running <userinput>cat /var/portbuild/*/loads/*</userinput> shows the client loads and number of concurrent builds in progress. The files that have been recently updated are the clients that are online; the others are the offline clients.</para> @@ -1025,18 +887,17 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! idle node.</para> </note> - <para>Running <command>tail -f <replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/build.log</command> + <para>Running <userinput>tail -f <replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/build.log</userinput> shows the overall build progress.</para> <para>If a port build is failing, and it is not immediately obvious from the log as to why, you can preserve the - <literal>WRKDIR</literal> for further analysis. To do this, + <makevar>WRKDIR</makevar> for further analysis. To do this, touch a file called <filename>.keep</filename> in the port's directory. The next time the cluster tries to build this port, - it will tar, compress, and copy the <literal>WRKDIR</literal> + it will tar, compress, and copy the <makevar>WRKDIR</makevar> to - <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/wrkdirs</filename>. - </para> + <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/wrkdirs/</filename>.</para> <para>If you find that the system is looping trying to build the same package over and over again, you may be able to fix the @@ -1049,19 +910,18 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! <para>Keep an eye on &man.df.1; output. If the <filename>/var/portbuild</filename> file system becomes full - then <trademark>Bad Things</trademark> happen. - </para> + then <trademark>Bad Things</trademark> happen.</para> - <para>The status of all current builds is generated twice an hour - and posted to + <para>The status of all current builds is generated periodically + into the <filename>packagestats.html</filename> file, e.g., <ulink url="http://pointyhat.FreeBSD.org/errorlogs/packagestats.html"></ulink>. For each <literal>buildenv</literal>, the following is displayed:</para> <itemizedlist> <listitem> - <para><literal>cvs date</literal> is the contents of - <filename>cvsdone</filename>. This is why we recommend that you - update <filename>cvsdone</filename> for <literal>-exp</literal> + <para><literal>updated</literal> is the contents of + <filename>.updated</filename>. This is why we recommend that you + update <filename>.updated</filename> for <literal>-exp</literal> runs (see below).</para> </listitem> @@ -1070,7 +930,7 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! </listitem> <listitem> - <para>number of lines in <literal>INDEX</literal></para> + <para>number of lines in <filename>INDEX</filename></para> </listitem> <listitem> @@ -1092,7 +952,7 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! <listitem> <para><literal>missing</literal> shows the difference between <filename>INDEX</filename> and the other columns. If you have - restarted a run after a <command>cvs update</command>, there + restarted a run after a ports tree update, there will likely be duplicates in the packages and error columns, and this column will be meaningless. (The script is naive).</para> </listitem> @@ -1116,7 +976,7 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! You can easily bounce the new ones to maintainers.</para> <para>After a port appears broken on every build combination - multiple times, it is time to mark it <literal>BROKEN</literal>. + multiple times, it is time to mark it <makevar>BROKEN</makevar>. Two weeks' notification for the maintainers seems fair.</para> <note> @@ -1133,20 +993,20 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! <para>When building packages for a release, it may be necessary to manually update the <literal>ports</literal> - and <literal>src</literal> trees to the release tag and use - <literal>-nocvs</literal> and - <literal>-noportscvs</literal>.</para> + and <filename>src</filename> trees to the release tag and use + <option>-novcs</option> and + <option>-noportsvcs</option>.</para> <para>To build package sets intended for use on a CD-ROM, - use the <literal>-cdrom</literal> option to + use the <option>-cdrom</option> option to <command>dopackages</command>.</para> <para>If the disk space is not available on the cluster, use - <literal>-nodistfiles</literal> to avoid collecting distfiles.</para> + <option>-nodistfiles</option> to avoid collecting distfiles.</para> <para>After the initial build completes, restart the build with - <literal>-restart -fetch-original</literal> + <option>-restart -fetch-original</option> to collect updated distfiles as well. Then, once the build is post-processed, take an inventory of the list of files fetched:</para> @@ -1177,8 +1037,7 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! and inform them of the release package location.</para> <para>Remember to coordinate with the &a.re; about the timing - and status of the release builds. - </para> + and status of the release builds.</para> </sect1> <sect1 id="uploading"> @@ -1187,11 +1046,11 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! <para>Once a build has completed, packages and/or distfiles can be transferred to <hostid>ftp-master</hostid> for propagation to the FTP mirror network. If the build was - run with <literal>-nofinish</literal>, then make sure to + run with <option>-nofinish</option>, then make sure to follow up with <command>dopackages -finish</command> to post-process the - packages (removes <literal>RESTRICTED</literal> and - <literal>NO_CDROM</literal> packages where appropriate, + packages (removes <makevar>RESTRICTED</makevar> and + <makevar>NO_CDROM</makevar> packages where appropriate, prunes packages not listed in <filename>INDEX</filename>, removes from <filename>INDEX</filename> references to packages not built, and generates a @@ -1199,7 +1058,7 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! summary); and distfiles (moves them from the temporary <filename>distfiles/.pbtmp</filename> directory into <filename>distfiles/</filename> and removes - <literal>RESTRICTED</literal> and <literal>NO_CDROM</literal> + <makevar>RESTRICTED</makevar> and <makevar>NO_CDROM</makevar> distfiles).</para> <para>It is usually a good idea to run the @@ -1212,41 +1071,42 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! the final package set for a release.</para> <para>The package subdirectories are named by whether they are for - <literal>release</literal>, <literal>stable</literal>, or - <literal>current</literal>. Examples:</para> + <filename>release</filename>, <filename>stable</filename>, or + <filename>current</filename>. Examples:</para> <itemizedlist> <listitem> - <para><literal>packages-7.2-release</literal></para> + <para><filename>packages-7.2-release</filename></para> </listitem> <listitem> - <para><literal>packages-7-stable</literal></para> + <para><filename>packages-7-stable</filename></para> </listitem> <listitem> - <para><literal>packages-8-stable</literal></para> + <para><filename>packages-8-stable</filename></para> </listitem> <listitem> - <para><literal>packages-9-stable</literal></para> + <para><filename>packages-9-stable</filename></para> </listitem> <listitem> - <para><literal>packages-10-current</literal></para> + <para><filename>packages-10-current</filename></para> </listitem> </itemizedlist> - <note><para>Some of the directories on - <hostid>ftp-master</hostid> are, in fact, symlinks. Examples:</para> + <note> + <para>Some of the directories on + <hostid>ftp-master</hostid> are, in fact, symlinks. Examples:</para> <itemizedlist> <listitem> - <para><literal>packages-stable</literal></para> + <para><filename>packages-stable</filename></para> </listitem> <listitem> - <para><literal>packages-current</literal></para> + <para><filename>packages-current</filename></para> </listitem> </itemizedlist> @@ -1256,7 +1116,7 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! one of the symlinks that points to it.</para> </note> - <para>If you are doing a completely new package set (e.g. for + <para>If you are doing a completely new package set (e.g., for a new release), copy packages to the staging area on <hostid>ftp-master</hostid> with something like the following:</para> @@ -1267,19 +1127,18 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! the package set was transferred successfully, remove the package set that the new package set is to replace (in <filename>~/w/ports/<replaceable>${arch}</replaceable></filename>), - and move the new set into place. (<literal>w/</literal> is + and move the new set into place. (<filename>w/</filename> is merely a shortcut.)</para> <para>For incremental builds, packages should be uploaded using <command>rsync</command> so we do not put too much strain on the mirrors.</para> - <para><emphasis>ALWAYS</emphasis> use <literal>-n</literal> + <para><emphasis>ALWAYS</emphasis> use <option>-n</option> first with <command>rsync</command> and check the output to make sure it is sane. If it looks good, re-run the - <command>rsync</command> without the <literal>-n</literal> - option. - </para> + <command>rsync</command> without the <option>-n</option> + option.</para> <para>Example <command>rsync</command> command for incremental package upload:</para> @@ -1308,12 +1167,17 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! <para>In general, an experimental patches build is run the same way as any other build, except that you should first update the ports tree to the latest version and then apply your patches. - To do the former, you can use the following: + To do the former, you can use the following:</para> + + <note> + <para>The following example is obsolete</para> + </note> + + <screen>&prompt.user; <userinput>cvs -R update -dP > update.out</userinput> +&prompt.user; <userinput>date > .updated</userinput></screen> - <screen>&prompt.user; <userinput>cvs -R update -dP > update.out</userinput> -&prompt.user; <userinput>date > cvsdone</userinput></screen> - This will most closely simulate what the <literal>dopackages</literal> - script does. (While <filename>cvsdone</filename> is merely + <para>This will most closely simulate what the <literal>dopackages</literal> + script does. (While <filename>.updated</filename> is merely informative, it can be a help.)</para> <para>You will need to edit <filename>update.out</filename> to look @@ -1327,7 +1191,7 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! tested.</para> <para>Since the machine is shared, someone else may delete your - changes by mistake, so keep a copy of them in e.g. your home + changes by mistake, so keep a copy of them in e.g., your home directory on <hostid>freefall</hostid>. Do not use <filename>tmp/</filename>; since <hostid>pointyhat</hostid> itself runs some version of <literal>-CURRENT</literal>, you @@ -1359,10 +1223,12 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! &prompt.user; <userinput>cd /var/portbuild/i386/8/errors</userinput> &prompt.user; <userinput>find . -name \*.log\* | sort > /tmp/8-errs</userinput></screen> - <note><para>If it has been a long time since one of the builds + <note> + <para>If it has been a long time since one of the builds finished, the logs may have been automatically compressed with - bzip2. In that case, you must use <literal>sort | sed - 's,\.bz2,,g'</literal> instead.</para></note> + bzip2. In that case, you must use <userinput>sort | sed + 's,\.bz2,,g'</userinput> instead.</para> + </note> <screen>&prompt.user; <userinput>comm -3 /tmp/8-errs /tmp/8-exp-errs | less</userinput></screen> @@ -1376,20 +1242,17 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! <listitem> <para>Port was fixed since the control build was run, or was upgraded to a newer version that is also broken (thus the - newer version should appear in the second column) - </para> + newer version should appear in the second column)</para> </listitem> <listitem> <para>Port is fixed by the patches in the experimental patches - build - </para> + build</para> </listitem> <listitem> <para>Port did not build under the experimental patches build - due to a dependency failure - </para> + due to a dependency failure</para> </listitem> </itemizedlist> @@ -1397,42 +1260,49 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! include:</para> <itemizedlist> - <listitem> - <para>Port was broken by the experimental patches [1]</para> + <listitem id="broken-by-exp-patches" xreflabel="broken by experimental patches"> + <para>Port was broken by the experimental patches</para> </listitem> - <listitem> + <listitem id="broken-by-upgrading" xreflabel="broken by upgrading"> <para>Port was upgraded since the control build and has become - broken [2] - </para> + broken</para> </listitem> <listitem> - <para>Port was broken due to a transient error (e.g. FTP site - down, package client error, etc.) - </para> + <para>Port was broken due to a transient error (e.g., FTP site + down, package client error, etc.)</para> </listitem> </itemizedlist> <para>Both columns should be investigated and the reason for the - errors understood before committing the experimental patches set. - To differentiate between [1] and [2] above, you can do a rebuild - of the affected packages under the control branch:</para> + errors understood before committing the experimental patches + set. To differentiate between <xref + linkend="broken-by-exp-patches"></xref> and <xref + linkend="broken-by-upgrading"></xref> above, you can do a + rebuild of the affected packages under the control + branch:</para> <screen>&prompt.user; <userinput>cd /var/portbuild/i386/8/ports</userinput></screen> - <note><para>Be sure to <literal>cvs update</literal> this tree to the same date as - the experimental patches tree.</para></note> + <note> + <para>The following example is obsolete</para> + </note> + + <note> + <para>Be sure to <userinput>cvs update</userinput> this tree to the same date as + the experimental patches tree.</para> + </note> <!-- XXX MCL fix --> <para>The following command will set up the control branch for the partial build (old codebase):</para> - <screen>&prompt.user; <userinput>/var/portbuild/scripts/dopackages.8 -noportscvs -nobuild -nocvs -nofinish</userinput></screen> + <screen>&prompt.user; <userinput>/var/portbuild/scripts/dopackages.8 -noportsvcs -nobuild -novcs -nofinish</userinput></screen> <!-- XXX MCL obsolete --> <para>The builds must be performed from the - <literal>packages/All</literal> directory. This directory should + <filename>packages/All</filename> directory. This directory should initially be empty except for the Makefile symlink. If this symlink does not exist, it must be created:</para> @@ -1440,15 +1310,17 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! &prompt.user; <userinput>ln -sf ../../Makefile .</userinput> &prompt.user; <userinput>make -k -j<#> <list of packages to build></userinput></screen> - <note><para><#> is the concurrency of the build to - attempt. It is usually the sum of the weights listed in - <filename>/var/portbuild/i386/mlist</filename> unless you have a - reason to run a heavier or lighter build.</para> - - <para>The list of packages to build should be a list of package - names (including versions) as they appear in - <filename>INDEX</filename>. The <literal>PKGSUFFIX</literal> - (i.e. .tgz or .tbz) is optional.</para></note> + <note> + <para><#> is the concurrency of the build to + attempt. It is usually the sum of the weights listed in + <filename>/var/portbuild/i386/mlist</filename> unless you have a + reason to run a heavier or lighter build.</para> + + <para>The list of packages to build should be a list of package + names (including versions) as they appear in + <filename>INDEX</filename>. The <makevar>PKGSUFFIX</makevar> + (i.e., <filename>.tgz</filename> or <filename>.tbz</filename>) is optional.</para> + </note> <para>This will build only those packages listed as well as all of their dependencies.</para> @@ -1472,8 +1344,7 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! <title>How to configure a new package building node</title> <para>Before following these steps, please coordinate with - <literal>portmgr</literal>. - </para> + <literal>portmgr</literal>.</para> <note> <para>Due to some generous donations, <literal>portmgr</literal> is @@ -1523,7 +1394,6 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! has been shown to saturate a cable modem line.</para> </listitem> </itemizedlist> - </sect2> <sect2 id="node-preparation"> @@ -1561,16 +1431,19 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! <step> <para>Pick a directory to hold ports configuration and - <command>chroot</command> subdirectories. It may be + <filename>chroot</filename> subdirectories. It may be best to put it this on its own partition. (Example: <filename>/usr2/</filename>.)</para> + <note> + <para>The filename <filename>chroot</filename> is a + historical remnant.</para> + </note> </step> </procedure> - </sect2> <sect2 id="node-src"> - <title>Configuring <literal>src</literal></title> + <title>Configuring <filename>src</filename></title> <procedure> <step> @@ -1584,7 +1457,7 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! </step> <step> - <para>If you are using <literal>pxeboot</literal>: create a + <para>If you are using <filename>pxeboot</filename>: create a directory to contain the install bits. You will probably want to use a subdirectory of <filename>/pxeroot</filename>, e.g., @@ -1594,8 +1467,8 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! <step> <para>If you are cross-building, export - <literal>TARGET_ARCH</literal>=<replaceable>${arch}</replaceable>. - </para> + <makevar>TARGET_ARCH</makevar>=<replaceable>${arch}</replaceable>.</para> + <note> <para>The procedure for cross-building ports is not yet defined.</para> @@ -1604,17 +1477,17 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed! <step> <para>Generate a kernel config file. Include - <literal>GENERIC</literal> (or, if you are using more than - 3.5G on &i386;, <literal>PAE</literal>). - </para> - <para> - Required options:<screen> -options NULLFS -options TMPFS</screen> - </para> - <para> - Suggested options:<screen> -options GEOM_CONCAT + <filename>GENERIC</filename> (or, if you are using more than + 3.5G on &i386;, <filename>PAE</filename>).</para> + + <para>Required options:</para> + + <programlisting>options NULLFS +options TMPFS</programlisting> + + <para>Suggested options:</para> + + <programlisting>options GEOM_CONCAT options GEOM_STRIPE options SHMMAXPGS=65536 options SEMMNI=40 @@ -1622,41 +1495,41 @@ options SEMMNS=240 options SEMUME=40 options SEMMNU=120 -options ALT_BREAK_TO_DEBUGGER</screen> - </para> +options ALT_BREAK_TO_DEBUGGER</programlisting> - <para>For <literal>PAE</literal>, it is not currently possible + <para>For <filename>PAE</filename>, it is not currently possible to load modules. Therefore, if you are running an architecture - that supports Linux emulation, you will need to add:<screen> -options COMPAT_LINUX -options LINPROCFS</screen> - </para> - - <para>Also for <literal>PAE</literal>, as of 20110912 you need - the following. This needs to be investigated:<screen> -nooption NFSD # New Network Filesystem Server + that supports Linux emulation, you will need to add:</para> + + <programlisting>options COMPAT_LINUX +options LINPROCFS</programlisting> + + <para>Also for <filename>PAE</filename>, as of 20110912 you need + the following. This needs to be investigated:</para> + + <programlisting>nooption NFSD # New Network Filesystem Server options NFSCLIENT # Network Filesystem Client -options NFSSERVER # Network Filesystem Server</screen> - </para> +options NFSSERVER # Network Filesystem Server</programlisting> </step> <step> - <para>As root, do the usual build steps, e.g.:<screen> -<userinput>make -j4 buildworld</userinput> -<userinput>make buildkernel KERNCONF=<replaceable>${kernconf}</replaceable></userinput> -<userinput>make installkernel KERNCONF=<replaceable>${kernconf}</replaceable></userinput> -<userinput>make installworld</userinput></screen> - The install steps use <makevar>DESTDIR</makevar>. - </para> + <para>As root, do the usual build steps, e.g.:</para> + + <screen>&prompt.root; <userinput>make -j4 buildworld</userinput> +&prompt.root; <userinput>make buildkernel KERNCONF=<replaceable>${kernconf}</replaceable></userinput> +&prompt.root; <userinput>make installkernel KERNCONF=<replaceable>${kernconf}</replaceable></userinput> +&prompt.root; <userinput>make installworld</userinput></screen> + + <para>The install steps use <makevar>DESTDIR</makevar>.</para> </step> <step> <para>Customize files in <filename>etc/</filename>. Whether you do this on the client itself, or another machine, will depend on whether you are using - <literal>pxeboot</literal>.</para> + <filename>pxeboot</filename>.</para> - <para>If you are using <literal>pxeboot</literal>: create + <para>If you are using <filename>pxeboot</filename>: create a subdirectory of <filename><replaceable>${DESTDIR}</replaceable></filename> called <filename>conf/</filename>. Create one subdirectory @@ -1677,20 +1550,20 @@ options NFSSERVER # Network Filesystem Server</screen> <itemizedlist> <listitem> <para>Create a - <literal>ports-<replaceable>${arch}</replaceable></literal> - user and group. Add it to the <literal>wheel</literal> - group. It can have the <literal>'*'</literal> password.</para> + <literal>portbuild</literal> + user and group. It can have the <literal>'*'</literal> password.</para> <para>Create - <filename>/home/ports-<replaceable>${arch}/.ssh/</replaceable></filename> + <filename>/home/portbuild/.ssh/</filename> and populate <filename>authorized_keys</filename>. </para> </listitem> <listitem> - <para>Also add the following users:<screen> -squid:*:100:100::0:0:User &:/usr/local/squid:/bin/sh -ganglia:*:102:102::0:0:User &:/usr/local/ganglia:/bin/sh</screen> - </para> + <para>Also add the following users:</para> + + <programlisting>squid:*:100:100::0:0:User &:/usr/local/squid:/bin/sh +ganglia:*:102:102::0:0:User &:/usr/local/ganglia:/bin/sh</programlisting> + <para>Add them to <filename>etc/group</filename> as well.</para> </listitem> @@ -1700,45 +1573,45 @@ ganglia:*:102:102::0:0:User &:/usr/local/ganglia:/bin/sh</screen> </listitem> <listitem> - <para>In <filename>etc/crontab</filename>: add - <screen>* * * * * root /var/portbuild/scripts/client-metrics</screen> - </para> + <para>In <filename>etc/crontab</filename>: add</para> + + <programlisting>* * * * * root /var/portbuild/scripts/client-metrics</programlisting> </listitem> <listitem> <para>Create the appropriate <filename>etc/fstab</filename>. (If you have multiple, - different, machines, you will need to put those in - the override directories.)</para> + different, machines, you will need to put those in + the override directories.)</para> </listitem> <listitem> - <para>In <filename>etc/inetd.conf</filename>: add - <screen>infoseek stream tcp nowait nobody /var/portbuild/scripts/reportload</screen> - </para> + <para>In <filename>etc/inetd.conf</filename>: add</para> + + <programlisting>infoseek stream tcp nowait nobody /var/portbuild/scripts/reportload</programlisting> </listitem> <listitem> - <para>We run the cluster on UTC: - <screen>cp /usr/share/zoneinfo/Etc/UTC etc/localtime</screen> - </para> + <para>You should run the cluster on UTC. If you have not set the clock + to UTC:</para> + + <programlisting>&prompt.root; cp -p /usr/share/zoneinfo/Etc/UTC etc/localtime</programlisting> </listitem> <listitem> <para>Create the appropriate <filename>etc/rc.conf</filename>. (If you are using - <literal>pxeboot</literal>, and have multiple, - different, machines, you will need to put those in - the override directories.)</para> + <literal>pxeboot</literal>, and have multiple, + different, machines, you will need to put those in + the override directories.)</para> - <para>Recommended entries for physical nodes:<screen> -hostname="<replaceable>${hostname}</replaceable>" + <para>Recommended entries for physical nodes:</para> + + <programlisting>hostname="<replaceable>${hostname}</replaceable>" inetd_enable="YES" linux_enable="YES" nfs_client_enable="YES" ntpd_enable="YES" -ntpdate_enable="YES" -ntpdate_flags="north-america.pool.ntp.org" sendmail_enable="NONE" sshd_enable="YES" sshd_program="/usr/local/sbin/sshd" @@ -1746,18 +1619,16 @@ sshd_program="/usr/local/sbin/sshd" gmond_enable="YES" squid_enable="YES" squid_chdir="<filename>/<replaceable>usr2</replaceable>/squid/logs</filename>" -squid_pidfile="<filename>/<replaceable>usr2</replaceable>/squid/logs/squid.pid</filename>" -</screen> - </para> +squid_pidfile="<filename>/<replaceable>usr2</replaceable>/squid/logs/squid.pid</filename>"</programlisting> - <para>Required entries for VMWare-based nodes:<screen> -vmware_guest_vmmemctl_enable="YES" -vmware_guest_guestd_enable="YES" -</screen> - </para> + <para>Required entries for VMWare-based nodes:</para> + + <programlisting>vmware_guest_vmmemctl_enable="YES" +vmware_guest_guestd_enable="YES"</programlisting> + + <para>Recommended entries for VMWare-based nodes:</para> - <para>Recommended entries for VMWare-based nodes:<screen> -hostname="" + <programlisting>hostname="" ifconfig_em0="DHCP" fsck_y_enable="YES" @@ -1771,9 +1642,7 @@ sshd_program="/usr/local/sbin/sshd" gmond_enable="YES" squid_enable="YES" squid_chdir="<filename>/<replaceable>usr2</replaceable>/squid/logs</filename>" -squid_pidfile="<filename>/<replaceable>usr2</replaceable>/squid/logs/squid.pid</filename>" -</screen> - </para> +squid_pidfile="<filename>/<replaceable>usr2</replaceable>/squid/logs/squid.pid</filename>"</programlisting> <para>&man.ntpd.8; should <emphasis>not</emphasis> be enabled for VMWare instances.</para> @@ -1785,7 +1654,6 @@ squid_pidfile="<filename>/<replaceable>usr2</replaceable>/squid/logs/squid.pid</ persistent (which should save instantiation time.) Work is still ongoing. </para> - </listitem> <listitem> @@ -1794,8 +1662,9 @@ squid_pidfile="<filename>/<replaceable>usr2</replaceable>/squid/logs/squid.pid</ </listitem> <listitem> - <para>Modify <filename>etc/sysctl.conf</filename>:<screen> -9a10,30 + <para>Modify <filename>etc/sysctl.conf</filename>:</para> + + <screen>9a10,30 > kern.corefile=<filename>/<replaceable>usr2</replaceable>/%N.core</filename> > kern.sugid_coredump=1 > #debug.witness_ddb=0 @@ -1805,7 +1674,7 @@ squid_pidfile="<filename>/<replaceable>usr2</replaceable>/squid/logs/squid.pid</ > kern.maxfiles=40000 > kern.maxfilesperproc=30000 > -> # Since the NFS root is static we don't need to check frequently for file changes +> # Since the NFS root is static we do not need to check frequently for file changes > # This saves >75% of NFS traffic > vfs.nfs.access_cache_timeout=300 > debug.debugger_on_panic=1 @@ -1817,7 +1686,6 @@ squid_pidfile="<filename>/<replaceable>usr2</replaceable>/squid/logs/squid.pid</ > security.jail.enforce_statfs=1 > > vfs.lookup_shared=1</screen> - </para> </listitem> <listitem> @@ -1826,36 +1694,32 @@ squid_pidfile="<filename>/<replaceable>usr2</replaceable>/squid/logs/squid.pid</ <literal>@pointyhat.freebsd.org</literal>.</para> </listitem> </itemizedlist> - </step> - </procedure> - </sect2> <sect2 id="node-ports"> - <title>Configuring <literal>ports</literal></title> + <title>Configuring <filename>ports</filename></title> <procedure> <step> - <para>Install the following ports:<screen> -net/rsync + <para>Install the following ports:</para> + + <programlisting>net/rsync security/openssh-portable (with HPN on) security/sudo sysutils/ganglia-monitor-core (with GMETAD off) -www/squid (with SQUID_AUFS on)</screen> - </para> +www/squid (with SQUID_AUFS on)</programlisting> <para>There is a WIP to create a meta-port, but it is not yet - complete. - </para> + complete.</para> </step> <step> <para>Customize files in <filename>usr/local/etc/</filename>. Whether you do this on the client itself, or another machine, will depend on whether you are using - <literal>pxeboot</literal>.</para> + <filename>pxeboot</filename>.</para> <note> <para>The trick of using <filename>conf</filename> @@ -1870,8 +1734,9 @@ www/squid (with SQUID_AUFS on)</screen> <itemizedlist> <listitem> <para>Modify - <filename>usr/local/etc/gmond.conf</filename>:<screen> -21,22c21,22 + <filename>usr/local/etc/gmond.conf</filename>:</para> + + <screen>21,22c21,22 < name = "unspecified" < owner = "unspecified" --- @@ -1881,7 +1746,6 @@ www/squid (with SQUID_AUFS on)</screen> < url = "unspecified" --- > url = "http://pointyhat.freebsd.org"</screen> - </para> <!-- XXX MCL adapted literally from krismail; I do not understand it --> <para>If there are machines from more than one cluster in the @@ -1892,10 +1756,11 @@ www/squid (with SQUID_AUFS on)</screen> <listitem> <!-- XXX MCL get latest patches from narutos --> <para>Create - <filename>usr/local/etc/rc.d/portbuild.sh</filename>, - using the appropriate value for - <literal>scratchdir</literal>:<screen> -#!/bin/sh + <filename>usr/local/etc/rc.d/portbuild.sh</filename>, + using the appropriate value for + <literal>scratchdir</literal>:</para> + + <programlisting>#!/bin/sh # # Configure a package build system post-boot @@ -1904,7 +1769,7 @@ scratchdir=<filename>/<replaceable>usr2</replaceable></filename> ln -sf ${scratchdir}/portbuild /var/ # Identify builds ready for use -cd /var/portbuild/<replaceable>${arch}</replaceable> +cd /var/portbuild/<replaceable>arch</replaceable> for i in */builds/*; do if [ -f ${i}/.ready ]; then mkdir /tmp/.setup-${i##*/} @@ -1912,14 +1777,14 @@ for i in */builds/*; do done # Flag that we are ready to accept jobs -touch /tmp/.boot_finished</screen> - </para> +touch /tmp/.boot_finished</programlisting> </listitem> <listitem> <para>Modify - <filename>usr/local/etc/squid/squid.conf</filename>:<screen> -288,290c288,290 + <filename>usr/local/etc/squid/squid.conf</filename>:</para> + + <screen>288,290c288,290 < #auth_param basic children 5 < #auth_param basic realm Squid proxy-caching web server < #auth_param basic credentialsttl 2 hours @@ -1935,7 +1800,6 @@ touch /tmp/.boot_finished</screen> > maximum_object_size 400 MB 2828a2838 > negative_ttl 0 minutes</screen> - </para> <para>Also, change <filename>usr/local</filename> to <filename><replaceable>usr2</replaceable></filename> in @@ -1945,37 +1809,35 @@ touch /tmp/.boot_finished</screen> <literal>cache_store_log</literal>, <literal>pid_filename</literal>, <literal>netdb_filename</literal>, - <literal>coredump_dir</literal>. - </para> + <literal>coredump_dir</literal>.</para> <para>Finally, change the <literal>cache_dir</literal> storage scheme from <literal>ufs</literal> to - <literal>aufs</literal> (offers better performance). - </para> + <literal>aufs</literal> (offers better performance).</para> </listitem> <listitem> <para>Configure <command>ssh</command>: copy - <filename>/etc/ssh</filename> to - <filename>/usr/local/etc/ssh</filename> and add + <filename>etc/ssh</filename> to + <filename>usr/local/etc/ssh</filename> and add <literal>NoneEnabled yes</literal> to <filename>sshd_config</filename>.</para> </listitem> <listitem> - <para>Modify - <filename>usr/local/etc/sudoers</filename>:<screen> -38a39,42 -> -> # local changes for package building -> %wheel ALL=(ALL) ALL -> ports-<replaceable>${arch}</replaceable> ALL=(ALL) NOPASSWD: ALL</screen> - </para> + <note> + <para>This step is under review.</para> + </note> + + <para>Create + <filename>usr/local/etc/sudoers/sudoers.d/portbuild</filename>:</para> + + <programlisting># local changes for package building +portbuild ALL=(ALL) NOPASSWD: ALL</programlisting> </listitem> </itemizedlist> </step> </procedure> - </sect2> <sect2 id="node-configuration"> @@ -1985,21 +1847,20 @@ touch /tmp/.boot_finished</screen> <step> <para>Change into the port/package directory you picked above, e.g., - <command>cd <filename>/<replaceable>usr2</replaceable></filename></command>. - </para> + <command>cd <filename>/<replaceable>usr2</replaceable></filename></command>.</para> </step> <step> - <para>As root:<screen> -<userinput>mkdir portbuild</userinput> -<userinput>chown ports-<replaceable>${arch}</replaceable>:ports-<replaceable>${arch}</replaceable> portbuild</userinput> -<userinput>mkdir pkgbuild</userinput> -<userinput>chown ports-<replaceable>${arch}</replaceable>:ports-<replaceable>${arch}</replaceable> pkgbuild</userinput> -<userinput>mkdir squid</userinput> -<userinput>mkdir squid/cache</userinput> -<userinput>mkdir squid/logs</userinput> -<userinput>chown -R squid:squid squid</userinput></screen> - </para> + <para>As root:</para> + + <screen>&prompt.root; <userinput>mkdir portbuild</userinput> +&prompt.root; <userinput>chown portbuild:portbuild portbuild</userinput> +&prompt.root; <userinput>mkdir pkgbuild</userinput> +&prompt.root; <userinput>chown portbuild:portbuild pkgbuild</userinput> +&prompt.root; <userinput>mkdir squid</userinput> +&prompt.root; <userinput>mkdir squid/cache</userinput> +&prompt.root; <userinput>mkdir squid/logs</userinput> +&prompt.root; <userinput>chown -R squid:squid squid</userinput></screen> </step> <!-- XXX MCL adapted literally from krismail; I do not understand it --> @@ -2008,9 +1869,8 @@ touch /tmp/.boot_finished</screen> between boots then they must either preserve their <filename>/tmp</filename>, or revalidate their available builds at boot time (see the script on the <literal>amd64</literal> - machines). They must also clean up stale chroots from previous - builds before creating <filename>/tmp/.boot_finished</filename>. - </para> + machines). They must also clean up stale jails from previous + builds before creating <filename>/tmp/.boot_finished</filename>.</para> </step> <step> @@ -2019,32 +1879,32 @@ touch /tmp/.boot_finished</screen> <step> <para>As root, initialize the <command>squid</command> - directories: - <screen><userinput>squid -z</userinput></screen></para> + directories:</para> + + <screen><userinput>squid -z</userinput></screen> </step> </procedure> - </sect2> <sect2 id="pointyhat-configuration"> - <title>Configuration on <literal>pointyhat</literal></title> + <title>Configuration on the server</title> <para>These steps need to be taken by a <literal>portmgr</literal> - acting as <literal>ports-<replaceable>${arch}</replaceable></literal> - on <hostid>pointyhat</hostid>. - </para> + acting as <literal>portbuild</literal> + on the server.</para> <procedure> <step> <para>If any of the default TCP ports is not available (see above), you will need to create an <command>ssh</command> - tunnel for it and include it in the + tunnel for them and include its invocation command in + <literal>portbuild</literal>'s <filename>crontab</filename>.</para> </step> <step> - <para>Add an entry to - <filename>/home/ports-<replaceable>${arch}</replaceable>/.ssh/config</filename> + <para>Unless you can use the defaults, add an entry to + <filename>/home/portbuild/.ssh/config</filename> to specify the public IP address, TCP port for <command>ssh</command>, username, and any other necessary information.</para> @@ -2052,34 +1912,36 @@ touch /tmp/.boot_finished</screen> <step> <para>Create -<filename>/var/portbuild/<replaceable>${arch}</replaceable>/clients/bindist-<replaceable>${hostname}</replaceable>.tar</filename>. - </para> + <filename>/var/portbuild/<replaceable>${arch}</replaceable>/clients/bindist-<replaceable>${hostname}</replaceable>.tar</filename>.</para> <itemizedlist> <listitem> <para>Copy one of the existing ones as a template and unpack it in a temporary directory.</para> </listitem> + <listitem> <para>Customize <filename>etc/resolv.conf</filename> - for the local site.</para> + for the local site.</para> </listitem> + <listitem> <para>Customize <filename>etc/make.conf</filename> for - FTP fetches for the local site. Note: the nulling-out - of <makevar>MASTER_SITE_BACKUP</makevar> must be common - to all nodes, but the first entry in - <makevar>MASTER_SITE_OVERRIDE</makevar> should be the - nearest local FTP mirror. Example:<screen><command> -.if defined(FETCH_ORIGINAL) + FTP fetches for the local site. Note: the nulling-out + of <makevar>MASTER_SITE_BACKUP</makevar> must be common + to all nodes, but the first entry in + <makevar>MASTER_SITE_OVERRIDE</makevar> should be the + nearest local FTP mirror. Example:</para> + + <programlisting>.if defined(FETCH_ORIGINAL) MASTER_SITE_BACKUP= .else MASTER_SITE_OVERRIDE= \ ftp://<replaceable>friendly-local-ftp-mirror</replaceable>/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ \ ftp://${BACKUP_FTP_SITE}/pub/FreeBSD/distfiles/${DIST_SUBDIR}/ -.endif</command></screen> - </para> +.endif</programlisting> </listitem> + <listitem> <para><command>tar</command> it up and move it to the right location.</para> @@ -2088,7 +1950,7 @@ MASTER_SITE_OVERRIDE= \ <para>Hint: you will need one of these for each machine; however, if you have multiple machines at one site, you - should create a site-specific one (e.g. in + should create a site-specific one (e.g., in <filename>/var/portbuild/conf/clients/</filename>) and symlink to it.</para> </step> @@ -2100,33 +1962,31 @@ MASTER_SITE_OVERRIDE= \ file contains overrides to <filename>/var/portbuild/<replaceable>${arch}</replaceable>/portbuild.conf</filename>.</para> - <para>Suggested values:<screen> -disconnected=1 + <para>Suggested values:</para> + + <programlisting>disconnected=1 http_proxy="http://localhost:3128/" squid_dir=<filename>/<replaceable>usr2</replaceable>/squid</filename> scratchdir=<filename>/<replaceable>usr2</replaceable>/pkgbuild</filename> -client_user=ports-<replaceable>${arch}</replaceable> +client_user=portbuild sudo_cmd="sudo -H" rsync_gzip=-z infoseek_host=localhost -infoseek_port=<replaceable>${tunelled-tcp-port}</replaceable></screen> - </para> +infoseek_port=<replaceable>${tunelled-tcp-port}</replaceable></programlisting> - <para>Possible other values:<screen> -use_md_swap=1 + <para>Possible other values:</para> + + <programlisting>use_md_swap=1 md_size=9g use_zfs=1 scp_cmd="/usr/local/bin/scp" -ssh_cmd="/usr/local/bin/ssh" -</screen> - </para> +ssh_cmd="/usr/local/bin/ssh"</programlisting> </step> </procedure> <para>These steps need to be taken by a <literal>portmgr</literal> - acting as <literal>root</literal> on <hostid>pointyhat</hostid>. - </para> + acting as <literal>root</literal> on <hostid>pointyhat</hostid>.</para> <procedure> <step> @@ -2138,43 +1998,41 @@ ssh_cmd="/usr/local/bin/ssh" <step> <para>Add an appropriate <literal>data_source</literal> entry to <filename>/usr/local/etc/gmetad.conf</filename>:</para> - <para> - <literal>data_source "<replaceable>arch</replaceable>/<replaceable>location</replaceable> Package Build Cluster" 30 <replaceable>hostname</replaceable></literal> - </para> - <para>You will need to restart <filename>gmetad</filename>. - </para> + <programlisting>data_source "<replaceable>arch</replaceable>/<replaceable>location</replaceable> Package Build Cluster" 30 <replaceable>hostname</replaceable></programlisting> + + <para>You will need to restart <filename>gmetad</filename>.</para> </step> </procedure> - </sect2> <sect2 id="node-enabling"> <title>Enabling the node</title> <para>These steps need to be taken by a <literal>portmgr</literal> - acting as <literal>ports-<replaceable>arch</replaceable></literal> - on <hostid>pointyhat</hostid>. - </para> + acting as <literal>portbuild</literal>:</para> <procedure> <step> - <para>Ensure that <literal>ssh</literal> is working by executing - <command>ssh <replaceable>hostname</replaceable></command>. - </para> + <para>Ensure that <literal>ssh</literal> to the client + is working by executing + <userinput>ssh <replaceable>hostname</replaceable> uname -a</userinput>. + The actual command is not important; what is important is to + confirm the setup, and also add an entry into + <filename>known_hosts</filename>, once you have confirmed the + node's identity.</para> </step> <step> - <para>Populate <filename>/var/portbuild/scripts/</filename> - by something like - <command>/var/portbuild/scripts/dosetupnode <replaceable>arch</replaceable> <replaceable>major</replaceable> latest <replaceable>hostname</replaceable></command>. - Verify that you now have files in that directory. - </para> + <para>Populate the client's copy of + <filename>/var/portbuild/scripts/</filename> by something like + <userinput>/var/portbuild/scripts/dosetupnode <replaceable>arch</replaceable> <replaceable>major</replaceable> latest <replaceable>hostname</replaceable></userinput>. + Verify that you now have files in that directory.</para> </step> <step> <para>Test the other TCP ports by executing - <command>telnet <replaceable>hostname</replaceable> <replaceable>portnumber</replaceable></command>. + <userinput>telnet <replaceable>hostname</replaceable> <replaceable>portnumber</replaceable></userinput>. <literal>414</literal> (or its tunnel) should give you a few lines of status information including <literal>arch</literal> and <literal>osversion</literal>; <literal>8649</literal> should @@ -2184,15 +2042,13 @@ ssh_cmd="/usr/local/bin/ssh" </procedure> <para>This step needs to be taken by a <literal>portmgr</literal> - acting as <literal>root</literal> on <hostid>pointyhat</hostid>. - </para> + acting as <literal>root</literal>:</para> <procedure> <step> - <para>Tell <filename>qmanager</filename> about the node. Example: - </para> + <para>Tell <filename>qmanager</filename> about the node. Example:</para> - <para><command>python <replaceable>path</replaceable>/qmanager/qclient add + <para><userinput>python <replaceable>path</replaceable>/qmanager/qclient add name=<replaceable>uniquename</replaceable> arch=<replaceable>arch</replaceable> osversion=<replaceable>osversion</replaceable> @@ -2203,7 +2059,19 @@ ssh_cmd="/usr/local/bin/ssh" primarypool=package pools="package all" maxjobs=1 acl="ports-<replaceable>arch</replaceable>,deny_all" - </command></para> + </userinput></para> + </step> + </procedure> + + <para>Finally, again as <literal>portmgr</literal> + acting as <literal>portbuild</literal>:</para> + + <procedure> + <step> + <para>Once you are sure that the client is working, tell + <application>pollmachine</application> about it by adding + it to + <filename>/var/portbuild/<replaceable>${arch}</replaceable>/mlist</filename>.</para> </step> </procedure> </sect2> @@ -2212,118 +2080,73 @@ ssh_cmd="/usr/local/bin/ssh" <sect1 id="new-branch"> <title>How to configure a new &os; branch</title> - <para>When a new branch is created, some work needs to - be done to specify that the previous branch is no longer - equivalent to <literal>HEAD</literal>. The following - instructions apply to the <emphasis>previous</emphasis> - branch number:</para> - - <itemizedlist> - <listitem> - <para>(new codebase) Edit <filename>/var/portbuild/conf/server.conf</filename> - with the following changes:</para> - - <itemizedlist> - <listitem> - <para>Add <replaceable>new-branch</replaceable> to - <makevar>SRC_BRANCHES</makevar>.</para> - </listitem> - - <listitem> - <para>For what was previously head, change - <makevar>SRC_BRANCH_<replaceable>branch</replaceable>_TAG</makevar> to - <literal>RELENG_<replaceable>branch</replaceable>_0</literal>.</para> - </listitem> - - <listitem> - <para>Add - <makevar>SRC_BRANCH_<replaceable>new-branch</replaceable>_TAG</makevar> - <literal>=.</literal> (literal period).</para> - </listitem> - </itemizedlist> - </listitem> + <sect2 id="new-branch-pre-qmanager"> + <title>Steps necessary before <application>qmanager</application> is started</title> - <listitem> - <para>(new codebase) Run <command> -/var/portbuild/updatesnap</command> manually.</para> - </listitem> + <para>When a new branch is created, some work needs to + be done to specify that the previous branch is no longer + equivalent to <literal>HEAD</literal>.</para> - <listitem> - <para>(Only for old codebase) - Create a new <application>zfs</application> filesystem - for sources: - <screen>zfs create a/snap/src-<replaceable>branch</replaceable></screen> - </para> - </listitem> + <itemizedlist> + <listitem> + <para> + Edit <filename>/var/portbuild/conf/server.conf</filename> + with the following changes:</para> - <listitem> - <para>(Only necessary for old codebase): - Checkout a <literal>src</literal> tree in the new filesystem: - <screen>cvs -Rq -d /r/ncvs co -d src-<replaceable>branch</replaceable>-r RELENG_<replaceable>branch</replaceable></screen> - </para> - </listitem> + <itemizedlist> + <listitem> + <para>Add <replaceable>new-branch</replaceable> to + <makevar>SRC_BRANCHES</makevar>.</para> + </listitem> - <listitem> - <para>(Only necessary for old codebase): - Edit the master copy of - <filename>Tools/portbuild/portbuild.conf</filename>.</para> - </listitem> + <listitem> + <para>For what was previously head, change + <makevar>SRC_BRANCH_<replaceable>branch</replaceable>_SUBDIR</makevar> to + <literal>releng/<replaceable>branch</replaceable>.0</literal> + (literal zero).</para> + </listitem> - <listitem> - <para>(Only necessary for old codebase): - For each arch, edit its copy of the above in - <filename>/var/portbuild/<replaceable>arch</replaceable>/portbuild.conf</filename>.</para> - </listitem> + <listitem> + <para>Add + <makevar>SRC_BRANCH_<replaceable>new-branch</replaceable>_SUBDIR</makevar> + <literal>=head</literal>.</para> + </listitem> + </itemizedlist> + </listitem> - <listitem> - <para>(Only necessary for old codebase): - Edit <filename>/var/portbuild/scripts/buildenv</filename>.</para> - </listitem> + <listitem> + <para>Run <command>/var/portbuild/updatesnap</command> manually.</para> + </listitem> + </itemizedlist> + </sect2> - <listitem> - <para>(Only necessary for old codebase): - Add a link from - <filename>/var/portbuild/scripts/dopackages</filename> to - <filename>/var/portbuild/scripts/dopackages.<replaceable>branch</replaceable></filename>.</para> - </listitem> + <sect2 id="new-branch-post-qmanager"> + <title>Steps necessary after <application>qmanager</application> is started</title> - <listitem> - <para>(Only necessary for old codebase): - Modify <makevar>HEAD_BRANCH</makevar> and - <makevar>NON_HEAD_BRANCHES</makevar> in - <filename>/var/portbuild/scripts/updatesnap</filename>.</para> - </listitem> + <note> + <para>Again, as + <literal>portbuild</literal>:</para> + </note> - <listitem> - <!-- XXX MCL writeup for new codebase --> - <para>(Only necessary for old codebase): - Add the <literal>snap</literal> directory to - <filename>/var/portbuild/scripts/zexpire</filename>.</para> - </listitem> + <itemizedlist> + <listitem> + <para>For each branch that will be supported, do the following:</para> - <listitem> - <para>(Only necessary for old codebase): - In the <filename>/var/portbuild/errorlogs/</filename> - directory, create links for the webserver:<screen> -ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/builds/latest/bak/errors <replaceable>arch</replaceable>-<replaceable>branch</replaceable>-full -ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/builds/latest/bak/logs <replaceable>arch</replaceable>-<replaceable>branch</replaceable>-full-logs -ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/builds/latest/errors <replaceable>arch</replaceable>-<replaceable>branch</replaceable>-latest -ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/builds/latest/logs <replaceable>arch</replaceable>-<replaceable>branch</replaceable>-latest-logs -ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/builds/latest/bak/packages <replaceable>arch</replaceable>-<replaceable>branch</replaceable>-packages-full -ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/builds/latest/packages <replaceable>arch</replaceable>-<replaceable>branch</replaceable>-packages-latest</screen> - </para> - </listitem> + <itemizedlist> + <listitem> + <para>Kick-start the build for the branch with:</para> - <listitem> - <para>Kick-start the build for the branch with - <screen>build create <replaceable>arch</replaceable> <replaceable>branch</replaceable></screen></para> - </listitem> + <screen>build create <replaceable>arch</replaceable> <replaceable>branch</replaceable></screen> + </listitem> - <listitem> - <para><link linkend="setup">Create <filename>bindist.tar</filename> - </link>.</para> - </listitem> - </itemizedlist> + <listitem> + <para><link linkend="setup">Create + <filename>bindist.tar</filename></link>.</para> + </listitem> + </itemizedlist> + </listitem> + </itemizedlist> + </sect2> </sect1> <sect1 id="old-branch"> @@ -2334,61 +2157,57 @@ ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/build <itemizedlist> <listitem> - <para>(new codebase) Edit <filename>/var/portbuild/conf/server.conf</filename> + <para>Edit <filename>/var/portbuild/conf/server.conf</filename> with the following changes:</para> - <itemizedlist> - <listitem> - <para>Delete <replaceable>old-branch</replaceable> from - <makevar>SRC_BRANCHES</makevar>.</para> - </listitem> - <listitem> - <para>Delete - <makevar>SRC_BRANCH_<replaceable>old-branch</replaceable>_TAG</makevar> - <literal>=<replaceable>whatever</replaceable></literal></para> - </listitem> - </itemizedlist> + <itemizedlist> + <listitem> + <para>Delete <replaceable>old-branch</replaceable> from + <makevar>SRC_BRANCHES</makevar>.</para> + </listitem> + + <listitem> + <para>Delete + <makevar>SRC_BRANCH_<replaceable>old-branch</replaceable>_SUBDIR</makevar><literal>=</literal> + <replaceable>whatever</replaceable></para> + </listitem> + </itemizedlist> </listitem> <listitem> - <para>(both): -<command>umount a/snap/src-<replaceable>old-branch</replaceable>/src; + <screen>umount a/snap/src-<replaceable>old-branch</replaceable>/src; umount a/snap/src-<replaceable>old-branch</replaceable>; -zfs destroy -r a/snap/src-<replaceable>old-branch</replaceable></command></para> +zfs destroy -r a/snap/src-<replaceable>old-branch</replaceable></screen> </listitem> </itemizedlist> <itemizedlist> <listitem> - <para>(both) You will probably find that the following files and + <para>You will probably find that the following files and symlinks in <filename>/var/portbuild/errorlogs/</filename> can be removed:</para> - <itemizedlist> - <listitem> - <para>Files named - <filename>*-<replaceable>old_branch</replaceable>-failure.html</filename> - </para> - </listitem> - <listitem> - <para>Files named - <filename>buildlogs_*-<replaceable>old_branch</replaceable>-*-logs.txt</filename> - </para> - </listitem> + <itemizedlist> + <listitem> + <para>Files named + <filename>*-<replaceable>old_branch</replaceable>-failure.html</filename></para> + </listitem> - <listitem> - <para>Symlinks named - <filename>*-<replaceable>old_branch</replaceable>-previous*</filename> - </para> - </listitem> + <listitem> + <para>Files named + <filename>buildlogs_*-<replaceable>old_branch</replaceable>-*-logs.txt</filename></para> + </listitem> - <listitem> - <para>Symlinks named - <filename>*-<replaceable>old_branch</replaceable>-latest*</filename> - </para> - </listitem> + <listitem> + <para>Symlinks named + <filename>*-<replaceable>old_branch</replaceable>-previous*</filename></para> + </listitem> - </itemizedlist> + <listitem> + <para>Symlinks named + <filename>*-<replaceable>old_branch</replaceable>-latest*</filename></para> + </listitem> + </itemizedlist> </listitem> </itemizedlist> </sect1> @@ -2404,34 +2223,32 @@ zfs destroy -r a/snap/src-<replaceable>old-branch</replaceable></command></para> <para>As releases go End-Of-Life (see <ulink url="http://www.freebsd.org/security/index.html#supported-branches">chart</ulink>), - a full (not incremental!) package build should be done and uploaded. - </para> + a full (not incremental!) package build should be done and uploaded.</para> - <para>The procedure for the new codebase is as follows:</para> + <para>The procedure is as follows:</para> <itemizedlist> <listitem> <para>Edit <filename>/var/portbuild/conf/server.conf</filename> with the following changes:</para> - <itemizedlist> - <listitem> - <para>Change - <makevar>SRC_BRANCH_<replaceable>branch</replaceable>_TAG</makevar> to - <literal>RELENG_<replaceable>branch</replaceable>_<replaceable>N</replaceable></literal> - where <literal>N</literal> is the newest 'oldest' release - for that branch.</para> - </listitem> - </itemizedlist> + + <itemizedlist> + <listitem> + <para>Change the value of + <makevar>SRC_BRANCH_<replaceable>branch</replaceable>_SUBDIR</makevar> to + <literal>releng/</literal><replaceable>branch</replaceable>.<replaceable>N</replaceable> + where <literal>N</literal> is the newest 'oldest' release + for that branch.</para> + </listitem> + </itemizedlist> </listitem> <listitem> - <para>Run <command> -/var/portbuild/updatesnap</command> manually.</para> + <para>Run <command>/var/portbuild/updatesnap</command> manually.</para> </listitem> <listitem> - <para>Run <command> -dopackages</command> with <literal>-nobuild</literal>.</para> + <para>Run <command>dopackages</command> with <literal>-nobuild</literal>.</para> </listitem> <listitem> @@ -2439,370 +2256,375 @@ dopackages</command> with <literal>-nobuild</literal>.</para> </listitem> <listitem> - <para>Now you can run <command> -dopackages</command> without <literal>-nobuild</literal>.</para> + <para>Now you can run <command>dopackages</command> without <literal>-nobuild</literal>.</para> </listitem> - </itemizedlist> - - <para>The procedure for the old codebase is left as an - exercise for the reader.</para> - </sect1> <sect1 id="new-arch"> <title>How to configure a new architecture</title> - <note> - <para>The initial steps need to be done using - <application>sudo</application>.</para> - </note> + <sect2 id="new-arch-pre-qmanager"> + <title>Steps necessary before <application>qmanager</application> is started</title> - <itemizedlist> - <listitem> - <para>Create a new - <literal>ports-<replaceable>arch</replaceable></literal> - user and group.</para> - </listitem> + <note> + <para>The initial steps need to be done as + <literal>root</literal>.</para> + </note> - <listitem> - <screen>mkdir /var/portbuild/<replaceable>arch</replaceable></screen> - </listitem> + <itemizedlist> + <listitem> + <para>If it has not already been done, create the + <literal>portbuild</literal> + user and group.</para> + </listitem> - <listitem> - <para>Create a new <application>zfs</application> filesystem: - <screen>zfs create -o mountpoint=/a/portbuild/<replaceable>arch</replaceable> a/portbuild/<replaceable>arch</replaceable></screen> - </para> - </listitem> + <listitem> + <screen>mkdir /var/portbuild/<replaceable>arch</replaceable></screen> + </listitem> - <listitem> - <screen> -chown ports-<replaceable>arch</replaceable>:portmgr /var/portbuild/<replaceable>arch</replaceable>; -chmod 755 /var/portbuild/<replaceable>arch</replaceable>; -cd /var/portbuild/<replaceable>arch</replaceable></screen> - </listitem> + <listitem> + <para>Create a new <application>zfs</application> filesystem:</para> - <listitem> - <para>Create and populate the <filename>.ssh</filename> directory.</para> + <screen>&prompt.root; zfs create -o mountpoint=/a/portbuild/<replaceable>arch</replaceable> a/portbuild/<replaceable>arch</replaceable></screen> </listitem> - <listitem> - <para>Create a directory for buildlogs and errorlogs: - <screen>mkdir /dumpster/pointyhat/<replaceable>arch</replaceable>/archive</screen> - </para> - - <note> - <para>It is possible that <filename>/dumpster/pointyhat</filename> - will not have enough space. In that case, create the archive - directory as - <filename>/dumpster/pointyhat/<replaceable>arch</replaceable>/archive</filename> - and symlink to that. (This needs to be sorted out.) - </para> - </note> - </listitem> + <listitem> + <screen>&prompt.root; chown portbuild:portbuild /var/portbuild/<replaceable>arch</replaceable>; +&prompt.root; chmod 775 /var/portbuild/<replaceable>arch</replaceable>; +&prompt.root; cd /var/portbuild/<replaceable>arch</replaceable></screen> + </listitem> - <listitem> - <para>Create a link to the above for the webserver: - <screen>ln -s /dumpster/pointyhat/<replaceable>arch</replaceable>/archive archive</screen> - </para> - </listitem> - </itemizedlist> + <listitem> + <para>Create the <filename>.ssh</filename> directory.</para> + </listitem> + </itemizedlist> - <note> - <para>The next steps are most easily done as user - <literal>ports-<replaceable>arch</replaceable></literal>.</para> - </note> + <note> + <para>The next steps are most easily done as user + <literal>portbuild</literal>.</para> + </note> - <itemizedlist> - <listitem> - <para>In the - <filename>/var/portbuild/<replaceable>arch</replaceable></filename> - directory:<screen>mkdir clients</screen></para> - </listitem> + <itemizedlist> + <listitem> + <para>Create an archive directory for buildlogs and errorlogs + under <filename>archive/</filename>.</para> + </listitem> - <listitem> - <para>Populate <filename>clients</filename> as usual.</para> - </listitem> + <listitem> + <para>For each branch that will be supported, do the following:</para> - <listitem> - <para><screen>mkdir loads</screen></para> - </listitem> + <itemizedlist> + <listitem> + <para>Kick-start the build for the branch with</para> - <listitem> - <para><screen>mkdir lockfiles</screen></para> - </listitem> + <screen>&prompt.root; build create <replaceable>arch</replaceable> <replaceable>branch</replaceable></screen> + </listitem> + </itemizedlist> + </listitem> - <listitem> - <para>Create a local <filename>make.conf</filename>. In the - most trivial case, you can - <screen>ln ../make.conf ./make.conf</screen></para> - </listitem> + <listitem> + <para>If you are going to store your historical buildlogs and + errorlogs on your head node's hard drive, you may skip this step. + Otherwise:</para> - <listitem> - <para>Create an empty <filename>mlist</filename> file.</para> - </listitem> + <para>Create an external directory and link to it:</para> - <listitem> - <para>(Only necessary for old codebase) Create - <filename>pnohang.<replaceable>arch</replaceable></filename>. - (The easiest way may be to do the following on a client, and - then copy it back): - <screen>cc pnohang.c -o pnohang-<replaceable>arch</replaceable></screen> - </para> - </listitem> + <example> + <title>Creating and linking an external archive directory</title> - <listitem> - <para>Create a fresh <filename>portbuild.conf</filename> file - from one of the ones for another architecture.</para> - </listitem> + <screen>&prompt.root; mkdir /dumpster/pointyhat/<replaceable>arch</replaceable>/archive +&prompt.root; ln -s /dumpster/pointyhat/<replaceable>arch</replaceable>/archive archive</screen> + </example> - <listitem> - <para>Create customized - <filename>portbuild.<replaceable>machinename</replaceable>.conf</filename> - files as appropriate.</para> - </listitem> + <note> + <para>(Historical note that only applied to the original + <hostid>pointyhat.FreeBSD.org</hostid> installation)</para> + + <para>It is possible that <filename>/dumpster/pointyhat</filename> + will not have enough space. In that case, create the archive + directory as + <filename>/dumpster/pointyhat/<replaceable>arch</replaceable>/archive</filename> + and symlink to that.</para> + </note> + </listitem> - <listitem> - <para><screen>cd .ssh && ssh-keygen</screen></para> - </listitem> + <listitem> + <para>Populate <filename>clients</filename> as usual.</para> + </listitem> - <listitem> - <para>Edit the <filename>.ssh/config</filename> file for - convenience in using <application>ssh</application>.</para> - </listitem> + <listitem> + <para>Create a fresh <filename>portbuild.conf</filename> file + from one of the ones for another architecture.</para> + </listitem> - <listitem> - <para>Make the private configuration directory: - <screen>mkdir /var/portbuild/conf/<replaceable>arch</replaceable></screen> - </para> - </listitem> + <listitem> + <para>Create customized + <filename>portbuild.<replaceable>machinename</replaceable>.conf</filename> + files as appropriate.</para> + </listitem> - <listitem> - <para>In that directory: create any <filename>dotunnel.*</filename> - scripts needed.</para> - </listitem> - </itemizedlist> + <listitem> + <screen>&prompt.root; cd .ssh && ssh-keygen</screen> + </listitem> - <note> - <para>Once again using <application>sudo</application>:</para> - </note> + <listitem> + <para>If desired, + edit the <filename>.ssh/config</filename> file for + convenience in using <application>ssh</application>.</para> + </listitem> - <itemizedlist> - <listitem> - <para>Tell <application>qmanager</application> about the arch: - <screen>python <replaceable>path</replaceable>/qmanager/qclient add_acl name=ports-<replaceable>arch</replaceable> uidlist=ports-<replaceable>arch</replaceable> gidlist=portmgr sense=1</screen></para> - </listitem> + <listitem> + <para>If you need to create any tunnels:</para> - <listitem> - <para>(Only necessary for new codebase): - Add <replaceable>arch</replaceable> to <makevar>SUPPORTED_ARCHS</makevar> in - <filename>/var/portbuild/<replaceable>arch</replaceable>/server.conf</filename>.</para> - </listitem> + <procedure> + <step> + <para>Make a private configuration directory:</para> - <listitem> - <para>(Only necessary for old codebase): - Edit <filename>/var/portbuild/scripts/buildenv</filename>.</para> - </listitem> + <screen>&prompt.root; mkdir /var/portbuild/conf/<replaceable>arch</replaceable></screen> + </step> - <listitem> - <para>Add the <replaceable>arch</replaceable> directory to - <filename>/var/portbuild/scripts/zbackup</filename> and - <filename>/var/portbuild/scripts/zexpire</filename>.</para> - </listitem> + <step> + <para>In that directory: create any <filename>dotunnel.*</filename> + scripts needed.</para> + </step> + </procedure> + </listitem> + </itemizedlist> - <listitem> - <para>(Only necessary for old codebase): - As with the procedure for creating a new branch: - in the <filename>/var/portbuild/errorlogs/</filename> - directory, create links for the webserver:<screen> -ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/builds/latest/bak/errors <replaceable>arch</replaceable>-<replaceable>branch</replaceable>-full -ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/builds/latest/bak/logs <replaceable>arch</replaceable>-<replaceable>branch</replaceable>-full-logs -ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/builds/latest/errors <replaceable>arch</replaceable>-<replaceable>branch</replaceable>-latest -ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/builds/latest/logs <replaceable>arch</replaceable>-<replaceable>branch</replaceable>-latest-logs -ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/builds/latest/bak/packages <replaceable>arch</replaceable>-<replaceable>branch</replaceable>-packages-full -ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/builds/latest/packages <replaceable>arch</replaceable>-<replaceable>branch</replaceable>-packages-latest</screen> - </para> - </listitem> + <note> + <para>Once again as <literal>root</literal>:</para> + </note> - <listitem> - <para> - In the <filename>/var/portbuild/errorlogs/</filename> - directory, create two more links for the webserver:<screen> -ln -s ../<replaceable>arch</replaceable>/archive/buildlogs <replaceable>arch</replaceable>-buildlogs -ln -s ../<replaceable>arch</replaceable>/archive/errorlogs <replaceable>arch</replaceable>-errorlogs</screen></para> - </listitem> - </itemizedlist> + <itemizedlist> + <listitem> + <para>Add <replaceable>arch</replaceable> to <makevar>SUPPORTED_ARCHS</makevar> in + <filename>/var/portbuild/conf/server.conf</filename>.</para> + </listitem> - <note> - <para>Again, as - <literal>ports-<replaceable>arch</replaceable></literal>:</para> - </note> + <listitem> + <para>Add the <replaceable>arch</replaceable> directory to + <filename>/var/portbuild/scripts/zbackup</filename> and + <filename>/var/portbuild/scripts/zexpire</filename>.</para> + </listitem> + </itemizedlist> - <itemizedlist> - <listitem> - <para>For each branch that will be supported, do the following: - </para> + <itemizedlist> + <listitem> + <para>Add an appropriate <replaceable>arch</replaceable> entry for + <filename>/var/portbuild/scripts/dologs</filename> to the portbuild + <filename>crontab</filename>. (This is a hack and should go away.)</para> + </listitem> + </itemizedlist> + </sect2> - <itemizedlist> - <listitem> - <para>Kick-start the build for the branch with - <screen>build create <replaceable>arch</replaceable> <replaceable>branch</replaceable></screen></para> - </listitem> + <sect2 id="new-arch-post-qmanager"> + <title>Steps necessary after <application>qmanager</application> is started</title> - <listitem> - <para><link linkend="setup">Create - <filename>bindist.tar</filename></link>.</para> - </listitem> - </itemizedlist> + <note> + <para>Again as <literal>root</literal>:</para> + </note> - </listitem> - </itemizedlist> + <itemizedlist> + <listitem> + <para>Tell <application>qmanager</application> about the arch:</para> - <note> - <para>One last time using <application>sudo</application>:</para> - </note> + <screen>python <replaceable>path</replaceable>/qmanager/qclient add_acl name=ports-<replaceable>arch</replaceable> uidlist=ports-<replaceable>arch</replaceable> gidlist=portbuild sense=1</screen> + </listitem> - <itemizedlist> - <listitem> - <para>(Only necessary for old codebase): - Only after the first time a - <application>dopackages</application> has been run for the - arch: add the arch to - <filename>/var/portbuild/scripts/dopackagestats</filename>.</para> - </listitem> + <listitem> + <para>For each branch that will be supported, do the following:</para> - <listitem> - <para>Add an appropriate <replaceable>arch</replaceable> entry for - <filename>/var/portbuild/scripts/dologs</filename> to the root - <filename>crontab</filename>. (This is a hack and should go away.) - </para> - </listitem> - </itemizedlist> + <itemizedlist> + <listitem> + <para><link linkend="setup">Create + <filename>bindist.tar</filename></link>.</para> + </listitem> + </itemizedlist> + </listitem> + </itemizedlist> + </sect2> </sect1> <sect1 id="new-head-node"> <title>How to configure a new head node (pointyhat instance)</title> - <para>This section is in progress.</para> + <para>Please talk to Mark Linimon before making any changes + to this section.</para> - <para>Please talk to Mark Linimon before making any changes.</para> + <sect2 id="pointyhat-privsep"> + <title>Notes on privilege separation</title> + + <para>As of January 2013, a rewrite is in progress to further separate + privileges. The following concepts are introduced:</para> + + <itemizedlist> + <listitem> + <para>Server-side user <username>portbuild</username> assumes all + responsiblity for operations involving builds and communicating + with the clients. This user no longer has access to + <application>sudo</application>.</para> + </listitem> + + <listitem> + <para>Server-side user <username>srcbuild</username> is created + and given responsiblity for operations involving both VCS + operations and anything involving src builds for the clients. + This user does not have access to + <application>sudo</application>.</para> + </listitem> + + <listitem> + <para>The server-side + <literal>ports-</literal><replaceable>arch</replaceable> + users go away.</para> + </listitem> + + <listitem> + <para>None of the above server-side users have + <application>ssh</application> keys. Individual + <literal>portmgr</literal> will accomplish all those + tasks using <application>ksu</application>. (This is + still work-in-progress.)</para> + </listitem> + + <listitem> + <para>The only client-side user is also named + <username>portbuild</username> and still has access to + <application>sudo</application> for the purpose of managing + jails.</para> + </listitem> + </itemizedlist> + + <para>This document has not yet been updated with the latest changes. + </para> + </sect2> <sect2 id="pointyhat-basics"> <title>Basic installation</title> <procedure> - <step> <para>Install FreeBSD.</para> </step> <step> - <para>For each supported arch, add a - <literal>ports-<replaceable>${arch}</replaceable></literal> - user and group. Add them to the <literal>wheel</literal> - group. They should have the <literal>'*'</literal> password. - Also, similarly, create the <literal>ports</literal> and - <literal>portmgr</literal> users.</para> + <para>Create a user to own the <application>portbuild</application> + repository, such as <literal>portbuild</literal>. It should have the + <literal>'*'</literal> password.</para> </step> <step> - <para>For each supported arch, create - <filename>/home/ports-<replaceable>${arch}/.ssh/</replaceable></filename> - and populate <filename>authorized_keys</filename>. </para> - </step> + <para>Export that value for a later initialization step:</para> -<!-- NOTYET - <step> - <para>Also add the following users:<screen> -squid:*:100:100::0:0:User &:/usr/local/squid:/bin/sh -ganglia:*:102:102::0:0:User &:/usr/local/ganglia:/bin/sh</screen> - </para> - <para>Add them to <filename>/etc/group</filename> as well.</para> + <screen>&prompt.root; export PORTBUILD_USER=<replaceable>portbuild</replaceable></screen> </step> ---> <step> - <para>Create the appropriate files in - <filename>/etc/.ssh/</filename>.</para> + <para>Similarly, create a user to own the <application>svn</application> + repository, such as <literal>srcbuild</literal>. It should have the + <literal>'*'</literal> password.</para> </step> <step> - <para>Add the following to <filename>/boot/loader.conf</filename>:<screen> -console="vidconsole,comconsole"</screen> - </para> + <para>Export that value for a later initialization step:</para> + + <screen>&prompt.root; export SRCBUILD_USER=<replaceable>srcbuild</replaceable></screen> </step> <step> - <para>Add the following to <filename>/etc/sysctl.conf</filename>:<screen> -kern.maxfiles=40000</screen> - </para> + <para>Add the following to <filename>/boot/loader.conf</filename>:</para> + + <programlisting>console="vidconsole,comconsole"</programlisting> </step> <step> - <para>Make sure the following change is made to - <filename>/etc/ttys</filename>:<screen> -ttyu0 "/usr/libexec/getty std.9600" vt100 on secure</screen> - </para> + <para>You should run the cluster on UTC. If you have not set the clock + to UTC:</para> + + <programlisting>&prompt.root; cp -p /usr/share/zoneinfo/Etc/UTC /etc/localtime</programlisting> </step> <step> - <para>TBA</para> - </step> - </procedure> + <para>Create the appropriate + <filename>/etc/rc.conf</filename>.</para> - </sect2> + <para>Required entries:</para> - <sect2 id="pointyhat-disk"> - <title>Configuring the disk</title> + <programlisting>hostname="<replaceable>${hostname}</replaceable>" +sshd_enable="YES" +zfs_enable="YES"</programlisting> - <procedure> + <para>Recommended entries:</para> - <step> - <para>Create a <application>zfs</application> volume named - <filename>a</filename> and mount it on - <filename>/a</filename>:<screen> -# zpool create a mirror da1 da2 mirror da3 da4 mirror da5 da6 mirror da7 da8</screen> - </para> + <programlisting>background_fsck="NO" +clear_tmp_enable="YES" +dumpdev="AUTO" +fsck_y_enable="YES" + +apache22_enable="YES" +apache_flags="" +apache_pidfile="/var/run/httpd.pid" +gmetad_enable="YES" +gmond_enable="YES" +inetd_enable="YES" +inetd_flags="-l -w" +mountd_enable="YES" +nfs_server_enable="YES" +nfs_server_flags="-u -t -n 12" +nfs_remote_port_only="YES" +ntpd_enable="YES" +rpcbind_enable="YES" +rpc_lockd_enable="NO" +rpc_statd_enable="YES" +sendmail_enable="NONE" +smartd_enable="YES"</programlisting> </step> <step> - <para>Set up the base portbuild directory:<screen> -# mkdir -p /a/portbuild -# cd /a/portbuild -# chown portmgr:portmgr . -# chmod 775 .</screen> - </para> + <para>Create <filename>/etc/resolv.conf</filename>, if + necessary.</para> </step> <step> - <para>TBA</para> + <para>Create the appropriate files in + <filename>/etc/ssh/</filename>.</para> </step> - </procedure> - - </sect2> - - <sect2 id="pointyhat-src"> - <title>Configuring <literal>src</literal></title> + <step> + <para>Add the following to <filename>/etc/sysctl.conf</filename>:</para> - <procedure> + <programlisting>kern.maxfiles=40000 +kern.maxfilesperproc=38000 +sysctl vfs.usermount=1 +sysctl vfs.zfs.super_owner=1</programlisting> + </step> <step> - <para>TBA</para> - </step> + <para>Make sure the following change is made to + <filename>/etc/ttys</filename>:</para> + <programlisting>ttyu0 "/usr/libexec/getty std.9600" vt100 on secure</programlisting> + </step> </procedure> + </sect2> + <sect2 id="pointyhat-src"> + <title>Configuring <filename>src</filename></title> + + <para>You should be able to install from the most recent release + using only the default kernel configuration.</para> </sect2> <sect2 id="pointyhat-ports"> - <title>Configuring <literal>ports</literal></title> + <title>Configuring <filename>ports</filename></title> <procedure> <step> - <para>The following ports (or their latest successors) are required:<screen> -databases/py-pysqlite23 -databases/py-sqlalchemy + <para>The following ports (or their latest successors) are required:</para> + + <programlisting>databases/py-sqlite3 +databases/py-sqlalchemy (only SQLITE is needed) devel/git (WITH_SVN) devel/py-configobj devel/py-setuptools @@ -2810,85 +2632,420 @@ devel/subversion net/nc net/rsync sysutils/ganglia-monitor-core (with GMETAD off) -sysutils/ganglia-webfrontend (WITHOUT_X11) -www/apache22 (with EXT_FILTER and THREADS)</screen> - </para> - - <para>Expect those to bring in:<screen> -databases/sqlite3 -lang/perl-5.12 -lang/python27</screen> - </para> - - <para>The following ports (or their latest successors) are strongly suggested:<screen> -benchmarks/bonnie++ -devel/ccache +sysutils/ganglia-webfrontend (compile with -DWITHOUT_X11) +www/apache22 (with EXT_FILTER)</programlisting> + + <para>Expect those to bring in, among others:</para> + + <programlisting>databases/sqlite3 +lang/perl-5.14 (or successor) +lang/python27 (or sucessor)</programlisting> + + <para>The following ports (or their latest successors) are strongly suggested:</para> + + <programlisting>devel/ccache mail/postfix net/isc-dhcp41-server -ports-mgmt/pkg_cutleaves -ports-mgmt/pkg_tree +ports-mgmt/pkg ports-mgmt/portaudit ports-mgmt/portmaster -security/sudo shells/bash shells/zsh -sysutils/screen -sysutils/smartmontools</screen> - </para> +sysutils/screen</programlisting> + + <note> + <para>The use of <application>sudo</application> on the master, + which was formerly required, is + <emphasis>no longer recommended</emphasis>. + </para> + </note> + + <para>The following ports (or their latest successors) are handy:</para> + + <programlisting>benchmarks/bonnie++ +ports-mgmt/pkg_tree +sysutils/dmidecode +sysutils/smartmontools +sysutils/zfs-stats</programlisting> + </step> + </procedure> + </sect2> + + <sect2 id="pointyhat-zfs-volume"> + <title>Configuring the zfs volume and setting up the repository</title> + + <para>The following steps need to be done as euid root.</para> + + <procedure> + <step> + <para>Pick a <application>zfs</application> volume name and export + it. We have used <replaceable>a</replaceable> so far to date.</para> + + <programlisting>&prompt.root; export ZFS_VOLUME=<replaceable>a</replaceable></programlisting> + </step> + + <step> + <para>Pick a mountpoint and export it. We have used + <filename>/<replaceable>a</replaceable></filename> so far to date.</para> + + <screen>&prompt.root; export ZFS_MOUNTPOINT=/<replaceable>a</replaceable></screen> + </step> + + <step> + <para>Create the <application>zfs</application> volume + and mount it.</para> + + <example> + <title>Creating a <application>zfs</application> volume for portbuild</title> + + <screen>&prompt.root; zpool create ${ZFS_VOLUME} mirror da1 da2 mirror da3 da4 mirror da5 da6 mirror da7 da8</screen> + </example> + + <note> + <para>We will define a <application>zfs</application> + <literal>permission set</literal> below, so that the + <replaceable>portbuild</replaceable> user may administer this + volume without having to have root privileges.</para> + </note> + </step> + + <step> + <para>Select an <application>svn</application> repository + and export it. See the + <ulink url="&url.books.handbook;/mirrors-svn.html">&os; Handbook</ulink> + for the currently supported list.</para> + + <screen>&prompt.root; export VCS_REPOSITORY=<replaceable>svn://svn0.us-east.FreeBSD.org</replaceable></screen> + </step> + + <step> + <para>Obtain a copy of the kickstart script into a + temporary directory. (You will not need to keep this + directory later.)</para> + + <screen>&prompt.root; mkdir -p /home/<replaceable>portbuild</replaceable>/<replaceable>tmp</replaceable> +&prompt.root; svn checkout ${VCS_REPOSITORY}/base/projects/portbuild/admin/tools /home/<replaceable>portbuild</replaceable>/<replaceable>tmp</replaceable></screen> + </step> + + <step> + <para>Run the kickstart script:</para> + + <screen>&prompt.root; sh /home/<replaceable>portbuild</replaceable>/<replaceable>tmp</replaceable>/mkportbuild</screen> + + <para>This will accomplish all the following 5 steps:</para> + + <procedure> + +<!-- begin of whitespace-broken area --> + <step> + <para>Create the <filename>portbuild</filename> directory:</para> + + <screen>&prompt.root; mkdir -p ${ZFS_MOUNTPOINT}/portbuild</screen> + </step> + + <step> + <para>Create and mount a new <application>zfs</application> + filesystem on it:</para> + + <screen>zfs create -o mountpoint=${ZFS_MOUNTPOINT}/portbuild ${ZFS_VOLUME}/portbuild</screen> + </step> + + <step> + <para>Set up the directory:</para> + + <screen>&prompt.root; chown ${PORTBUILD_USER}:${PORTBUILD_USER} ${ZFS_MOUNTPOINT}/portbuild +&prompt.root; chmod 775 ${ZFS_MOUNTPOINT}/portbuild +&prompt.root; ln -sf ${ZFS_MOUNTPOINT}/portbuild /var/portbuild</screen> + + <note> + <para>The <command>ln</command> is necessary due to a number + of hardcoded paths. This is a bug.</para> + </note> + </step> + + <step> + <para>Set up the initial repository:</para> + + <screen>&prompt.user; svn checkout ${VCS_REPOSITORY}/base/projects/portbuild ${ZFS_MOUNTPOINT}/portbuild</screen> + </step> +<!-- end of whitespace-broken area --> + + <step> + <para>Set up the <application>zfs</application> + <literal>permission sets</literal>.</para> + </step> + </procedure> + + </step> + </procedure> + </sect2> + + <sect2 id="portbuild-repo-configuration"> + <title>Configuring the <application>portbuild</application> files</title> + + <procedure> + <step> + <para>Configure how build slaves will talk to your server + by making the following changes to + <filename>/<replaceable>a</replaceable>/portbuild/conf/client.conf</filename>:</para> + + <itemizedlist> + <listitem> + <para>Set <makevar>CLIENT_NFS_MASTER</makevar> to wherever + your build slaves will PXE boot from. (Possibly, the + hostname of your server.)</para> + </listitem> + + <listitem> + <para>Set <makevar>CLIENT_BACKUP_FTP_SITE</makevar> + to a backup site for FTP fetches; again, possibly + the hostname of your server.</para> + </listitem> + + <listitem> + <para>Set <makevar>CLIENT_UPLOAD_HOST</makevar> to + where completed packages will be uploaded.</para> + </listitem> + </itemizedlist> + + <para>Most of the other default values should be fine.</para> </step> <step> - <para>Configure mail by doing the following: TBA. - </para> + <para>Most of the default values in + <filename>/<replaceable>a</replaceable>/portbuild/conf/common.conf</filename> + should be fine. This file holds definitions used by + both the server and all its clients.</para> + </step> + + <step> + <para>Configure the server by making the following changes to + <filename>/<replaceable>a</replaceable>/portbuild/conf/server.conf</filename>:</para> + + <itemizedlist> + <listitem> + <para>Set <makevar>SUPPORTED_ARCHS</makevar> to the + list of architectures you wish to build packages for.</para> + </listitem> + + <listitem> + <para>For each source branch you will be building for, set + <makevar>SRC_BRANCHES</makevar> and + <makevar>SRC_BRANCH_<replaceable>branch</replaceable>_SUBDIR</makevar> + as detailed in <xref linkend="new-branch-pre-qmanager"/>. + You should not need to change + <makevar>SRC_BRANCHES_PATTERN</makevar>.</para> + </listitem> + + <listitem> + <para>Set <makevar>ZFS_VOLUME</makevar> and + <makevar>ZFS_MOUNTPOINT</makevar> to whatever you + chose above.</para> + </listitem> + + <listitem> + <para>Set <makevar>UPLOAD_DIRECTORY</makevar>, + <makevar>UPLOAD_TARGET</makevar>, and + <makevar>UPLOAD_USER</makevar> as appropriate + for your site.</para> + </listitem> + + <listitem> + <para>Set <makevar>VCS_REPOSITORY</makevar> to whatever + you chose above.</para> + </listitem> + + <listitem> + <para>Set <makevar>MASTER_URL</makevar> to the http + URL of your server. This will be stamped into the + package build logs and the indices thereof.</para> + </listitem> + </itemizedlist> + + <para>Most of the other default values should be fine.</para> </step> </procedure> + </sect2> + <sect2 id="pointyhat-pre-qmanager"> + <title>pre-<application>qmanager</application></title> + + <procedure> + <step> + <para>For each architecture, follow the steps in + <xref linkend="new-arch-pre-qmanager"/>.</para> + </step> + </procedure> </sect2> - <sect2 id="pointyhat-other"> - <title>Other</title> + <sect2 id="pointyhat-qmanager"> + <title><application>qmanager</application></title> <procedure> + <step> + <para>Copy the following files from + <filename>/a/portbuild/admin/etc/rc.d/</filename> to + <filename>/usr/local/etc/rc.d/</filename>:</para> + + <programlisting>pollmachine +qmanager</programlisting> + + <para>As root, start each one of them. You may find it handy + to start each under <application>screen</application> for + debugging purposes.</para> + </step> <step> - <para>TBA</para> + <para>Initialize the <application>qmanager</application> + database's acl list:</para> + + <note> + <para>This should now be automatically done for you by + the first <command>build</command> command.</para> + </note> + + <screen>&prompt.root; python /<replaceable>a</replaceable>/portbuild/qmanager/qclient add_acl name=deny_all uidlist= gidlist= sense=0</screen> </step> + </procedure> + </sect2> + <sect2 id="pointyhat-src-ports-repos"> + <title>Creating src and ports repositories</title> + + <procedure> + <step> + <para>As the <replaceable>srcbuild</replaceable> user, + run the following commands manually to create the + <literal>src</literal> and <literal>ports</literal> + repositories, respectively:</para> + + <screen>&prompt.user; /<replaceable>a</replaceable>/portbuild/admin/scripts/updatesnap.ports +&prompt.user; /<replaceable>a</replaceable>/portbuild/admin/scripts/updatesnap</screen> + + <para>These will be periodically run from the + <replaceable>srcbuild</replaceable> + <filename>crontab</filename>, which you will + install below.</para> + </step> </procedure> + </sect2> + <sect2 id="pointyhat-other-services"> + <title>Other services</title> + + <procedure> + <step> + <para>Configure + <filename>/usr/local/etc/apache22/httpd.conf</filename> + as appropriate for your site.</para> + </step> + + <step> + <para>Copy <filename>/a/portbuild/admin/conf/apache.conf</filename> + to the appropriate <filename>Includes/</filename> subdirectory, e.g., + <filename>/usr/local/etc/apache22/Includes/portbuild.conf</filename>. + Configure it as appropriate for your site.</para> + </step> + + <step> + <para>Install <filename>/a/portbuild/admin/crontabs/portbuild</filename> as + the <username>portbuild</username> crontab via + <command>crontab -u portbuild -e</command>. If you do + not support all the archs listed there, make sure to comment out + the appropriate <application>dologs</application> entries.</para> + </step> + + <step> + <para>Install <filename>/a/srcbuild/admin/crontabs/portbuild</filename> as + the <username>srcbuild</username> crontab via + <command>crontab -u srcbuild -e</command>.</para> + </step> + + <step> + <para>If your build slaves will be pxebooted, make sure to + enable the <application>tftp</application> entries in + <filename>/etc/inetd.conf</filename>.</para> + </step> + + <step> + <para>Configure mail by doing the following:</para> + + <para><command>newaliases</command>.</para> + </step> + </procedure> </sect2> + <sect2 id="pointyhat-finishing-up"> + <title>Finishing up</title> + + <procedure> + <step> + <para>For each architecture, follow the steps in + <xref linkend="new-arch-post-qmanager"/>.</para> + </step> + + <step> + <para>You will probably find it handy to append + the following to the <makevar>PATH</makevar> definition for + the <replaceable>portbuild</replaceable> user:</para> + + <programlisting>/<replaceable>a</replaceable>/portbuild/scripts:/<replaceable>a</replaceable>/portbuild/tools</programlisting> + </step> + + <step> + <para>You will also probably find it handy to append + the following to the <makevar>PATH</makevar> definition for + the <replaceable>srcbuild</replaceable> user:</para> + + <programlisting>/<replaceable>a</replaceable>/portbuild/admin/scripts:/<replaceable>a</replaceable>/portbuild/admin/tools</programlisting> + </step> + </procedure> + + <para>You should now be ready to build packages.</para> + </sect2> </sect1> <sect1 id="disk-failure"> <title>Procedures for dealing with disk failures</title> - <para>When a machine has a disk failure (e.g. panics due to read errors, + <note> + <para>The following section is particular to <hostid>freebsd.org</hostid> + and is somewhat obsolete.</para> + </note> + + <para>When a machine has a disk failure (e.g., panics due to read errors, etc), then we should do the following steps:</para> <itemizedlist> - <listitem><para>Note the time and failure mode (e.g. paste in the - relevant console output) in - <filename>/var/portbuild/<replaceable>${arch}</replaceable>/reboots</filename></para></listitem> + <listitem> + <para>Note the time and failure mode (e.g., paste in the + relevant console output) in + <filename>/var/portbuild/<replaceable>${arch}</replaceable>/reboots</filename></para> + </listitem> - <listitem><para>For i386 gohan clients, scrub the disk by touching - <filename>/SCRUB</filename> in the nfsroot (e.g. - <filename>/a/nfs/8.dir1/SCRUB</filename>) and rebooting. This will - <command>dd if=/dev/zero of=/dev/ad0</command> and force the drive to - remap any bad sectors it finds, if it has enough spares left. This is - a temporary measure to extend the lifetime of a drive that is on the - way out.</para> + <listitem> + <para>For i386 gohan clients, scrub the disk by touching + <filename>/SCRUB</filename> in the nfsroot (e.g., + <filename>/a/nfs/8.dir1/SCRUB</filename>) and rebooting. This will + <command>dd if=/dev/zero of=/dev/ad0</command> and force the drive to + remap any bad sectors it finds, if it has enough spares left. This is + a temporary measure to extend the lifetime of a drive that is on the + way out.</para> - <note><para>For the i386 blade systems another signal of a failing - disk seems to be that the blade will completely hang and be - unresponsive to either console break, or even NMI.</para></note> + <note> + <para>For the i386 blade systems another signal of a failing + disk seems to be that the blade will completely hang and be + unresponsive to either console break, or even NMI.</para> + </note> - <para>For other build systems that don't newfs their disk at boot (e.g. - amd64 systems) this step has to be skipped.</para></listitem> + <para>For other build systems that do not newfs their disk at boot (e.g., + amd64 systems) this step has to be skipped.</para> + </listitem> - <listitem><para>If the problem recurs, then the disk is probably toast. - Take the machine out of <filename>mlist</filename> and (for ata disks) - run <command>smartctl</command> on the drive:</para> + <listitem> + <para>If the problem recurs, then the disk is probably toast. + Take the machine out of <filename>mlist</filename> and (for ata disks) + run <command>smartctl</command> on the drive:</para> <screen>smartctl -t long /dev/ad0</screen> @@ -2919,7 +3076,8 @@ LifeTime(hours) LBA_of_first_error <para>It will also display other data including a log of previous drive errors. It is possible for the drive to show previous DMA errors without failing the self-test though (because of sector - remapping).</para></listitem> + remapping).</para> + </listitem> </itemizedlist> <para>When a disk has failed, please inform the cluster administrators diff --git a/en_US.ISO8859-1/articles/problem-reports/article.xml b/en_US.ISO8859-1/articles/problem-reports/article.xml index 5386264d2a..61ad4fa589 100644 --- a/en_US.ISO8859-1/articles/problem-reports/article.xml +++ b/en_US.ISO8859-1/articles/problem-reports/article.xml @@ -8,7 +8,6 @@ <legalnotice id="trademarks" role="trademarks"> &tm-attrib.freebsd; - &tm-attrib.cvsup; &tm-attrib.ibm; &tm-attrib.intel; &tm-attrib.sparc; @@ -86,7 +85,7 @@ course of action, and will only serve to frustrate you and the developers. Conversely, there are cases where it might be appropriate to submit a problem report about something else than - a bug—an enhancement or a feature request, for + a bug—an enhancement or a new feature, for instance.</para> <para>So how do you determine what is a bug and what is not? As a @@ -103,12 +102,6 @@ <itemizedlist> <listitem> - <para>Requests for feature enhancements. It is generally a - good idea to air these on the mailing lists before - submitting a problem report.</para> - </listitem> - - <listitem> <para>Notification of updates to externally maintained software (mainly ports, but also externally maintained base system components such as BIND or various GNU @@ -277,7 +270,7 @@ carefully study the contents of the <filename>/usr/src/UPDATING</filename> file on your system or its latest version at - <ulink url="http://www.FreeBSD.org/cgi/cvsweb.cgi/src/UPDATING"></ulink>. + <ulink url="http://svnweb.freebsd.org/base/head/UPDATING?view=log"></ulink>. (This is vital information if you are upgrading from one version to another—especially if you are upgrading to the @@ -288,10 +281,10 @@ <filename>/usr/ports/UPDATING</filename> (for individual ports) or <filename>/usr/ports/CHANGES</filename> (for changes that affect the entire Ports Collection). - <ulink url="http://www.FreeBSD.org/cgi/cvsweb.cgi/ports/UPDATING"></ulink> + <ulink url="http://svnweb.freebsd.org/ports/head/UPDATING?view=log"></ulink> and - <ulink url="http://www.FreeBSD.org/cgi/cvsweb.cgi/ports/CHANGES"></ulink> - are also available via CVSweb.</para> + <ulink url="http://svnweb.freebsd.org/ports/head/CHANGES?view=log"></ulink> + are also available via svnweb.</para> </listitem> </itemizedlist> </section> @@ -371,8 +364,8 @@ is a place to put that, see below) and on which architecture. You should include whether you are running from a release (e.g. from a CDROM or download), or from - a system maintained by &man.cvsup.1; (and, if so, how - recently you updated). If you are tracking the + a system maintained by Subversion (and, if so, + what revision number you are at). If you are tracking the &os.current; branch, that is the very first thing someone will ask, because fixes (especially for high-profile problems) tend to get committed very quickly, and @@ -584,11 +577,11 @@ <option>-c</option> or <option>-u</option> option to &man.diff.1; to create a context or unified diff (unified is preferred), and make - sure to specify the exact CVS revision numbers of the files + sure to specify the exact SVN revision numbers of the files you modified so the developers who read your report will be able to apply them easily. For problems with the kernel or the base utilities, a patch against &os.current; (the HEAD - CVS branch) is preferred since all new code should be applied + Subversion branch) is preferred since all new code should be applied and tested there first. After appropriate or substantial testing has been done, the code will be merged/migrated to the &os.stable; branch.</para> @@ -661,8 +654,8 @@ <para><emphasis>Confidential:</emphasis> This is prefilled to <literal>no</literal>. Changing it makes no sense as there is no such thing as a confidential &os; problem - report—the PR database is distributed worldwide by - <application>CVSup</application>.</para> + report—the PR database is distributed + worldwide.</para> </listitem> <listitem> @@ -920,7 +913,7 @@ </itemizedlist> <para>Here is the current list of categories (taken from - <ulink url="http://www.FreeBSD.org/cgi/cvsweb.cgi/src/gnu/usr.bin/send-pr/categories"></ulink>):</para> + <ulink url="http://svnweb.freebsd.org/base/head/gnu/usr.bin/send-pr/categories"></ulink>):</para> <itemizedlist> <listitem> @@ -929,11 +922,6 @@ </listitem> <listitem> - <para><literal>alpha:</literal> problems specific to the - Alpha platform.</para> - </listitem> - - <listitem> <para><literal>amd64:</literal> problems specific to the AMD64 platform.</para> </listitem> diff --git a/en_US.ISO8859-1/articles/rc-scripting/article.xml b/en_US.ISO8859-1/articles/rc-scripting/article.xml index 9a93599a53..c12a4a58d6 100644 --- a/en_US.ISO8859-1/articles/rc-scripting/article.xml +++ b/en_US.ISO8859-1/articles/rc-scripting/article.xml @@ -397,8 +397,8 @@ start_cmd="${name}_start" stop_cmd=":" load_rc_config $name<co id="rcng-confdummy-loadconfig"/> -eval "${rcvar}=\${${rcvar}:-'NO'}"<co id="rcng-confdummy-enable"/> -dummy_msg=${dummy_msg:-"Nothing started."}<co id="rcng-confdummy-opt"/> +: ${dummy_enable:=no} <co id="rcng-confdummy-enable"/> +: ${dummy_msg="Nothing started."}<co id="rcng-confdummy-opt"/> dummy_start() { @@ -445,7 +445,7 @@ run_rc_command "$1"</programlisting> system, you should add a default setting for the knob to <filename>/etc/defaults/rc.conf</filename> and document it in &man.rc.conf.5;. Otherwise it is your script that - should provide a default setting for the knob. A portable + should provide a default setting for the knob. The canonical approach to the latter case is shown in the example.</para> <note> @@ -476,7 +476,7 @@ run_rc_command "$1"</programlisting> <important> <para>The names of all &man.rc.conf.5; variables used exclusively by our script <emphasis>must</emphasis> - have the same prefix: <envar>${name}</envar>. For + have the same prefix: <envar>${name}_</envar>. For example: <envar>dummy_mode</envar>, <envar>dummy_state_file</envar>, and so on.</para> </important> @@ -484,19 +484,10 @@ run_rc_command "$1"</programlisting> <note> <para>While it is possible to use a shorter name internally, e.g., just <envar>msg</envar>, adding the unique prefix - <envar>${name}</envar> to all global names introduced by + <envar>${name}_</envar> to all global names introduced by our script will save us from possible collisions with the &man.rc.subr.8; namespace.</para> - <para>As long as an &man.rc.conf.5; variable and its - internal equivalent are the same, we can use a more - compact expression to set the default value:</para> - - <programlisting>: ${dummy_msg:="Nothing started."}</programlisting> - - <para>The current style is to use the more verbose form - though.</para> - <para>As a rule, <filename>rc.d</filename> scripts of the base system need not provide defaults for their &man.rc.conf.5; variables because the defaults should @@ -509,7 +500,11 @@ run_rc_command "$1"</programlisting> <callout arearefs="rcng-confdummy-msg"> <para>Here we use <envar>dummy_msg</envar> to actually - control our script, i.e., to emit a variable message.</para> + control our script, i.e., to emit a variable message. + Use of a shell function is overkill here, since it only + runs a single command; an equally valid alternative is:</para> + + <programlisting>start_cmd="echo \"$dummy_msg\""</programlisting> </callout> </calloutlist> </sect1> diff --git a/en_US.ISO8859-1/articles/solid-state/article.xml b/en_US.ISO8859-1/articles/solid-state/article.xml index a4fc36fdfc..1290cb19cc 100644 --- a/en_US.ISO8859-1/articles/solid-state/article.xml +++ b/en_US.ISO8859-1/articles/solid-state/article.xml @@ -67,79 +67,84 @@ <releaseinfo>$FreeBSD$</releaseinfo> <abstract> - <para>This article covers the use of solid state disk devices in &os; - to create embedded systems.</para> - - <para>Embedded systems have the advantage of increased stability due to - the lack of integral moving parts (hard drives). Account must be - taken, however, for the generally low disk space available in the - system and the durability of the storage medium.</para> - - <para>Specific topics to be covered include the types and attributes of - solid state media suitable for disk use in &os;, kernel options - that are of interest in such an environment, the - <filename>rc.initdiskless</filename> mechanisms that automate the - initialization of such systems and the need for read-only filesystems, - and building filesystems from scratch. The article will conclude - with some general strategies for small and read-only &os; - environments.</para> + <para>This article covers the use of solid state disk devices in + &os; to create embedded systems.</para> + + <para>Embedded systems have the advantage of increased stability + due to the lack of integral moving parts (hard drives). + Account must be taken, however, for the generally low disk + space available in the system and the durability of the + storage medium.</para> + + <para>Specific topics to be covered include the types and + attributes of solid state media suitable for disk use in &os;, + kernel options that are of interest in such an environment, + the <filename>rc.initdiskless</filename> mechanisms that + automate the initialization of such systems and the need for + read-only filesystems, and building filesystems from scratch. + The article will conclude with some general strategies for + small and read-only &os; environments.</para> </abstract> </articleinfo> <sect1 id="intro"> <title>Solid State Disk Devices</title> - <para>The scope of this article will be limited to solid state disk - devices made from flash memory. Flash memory is a solid state memory - (no moving parts) that is non-volatile (the memory maintains data even - after all power sources have been disconnected). Flash memory can - withstand tremendous physical shock and is reasonably fast (the flash - memory solutions covered in this article are slightly slower than a EIDE - hard disk for write operations, and much faster for read operations). - One very important aspect of flash memory, the ramifications of which - will be discussed later in this article, is that each sector has a - limited rewrite capacity. You can only write, erase, and write again to - a sector of flash memory a certain number of times before the sector - becomes permanently unusable. Although many flash memory products - automatically map bad blocks, and although some even distribute write - operations evenly throughout the unit, the fact remains that there - exists a limit to the amount of writing that can be done to the device. - Competitive units have between 1,000,000 and 10,000,000 writes per - sector in their specification. This figure varies due to the - temperature of the environment.</para> - - <para>Specifically, we will be discussing ATA compatible compact-flash - units, which are quite popular as storage media for digital - cameras. Of particular interest is the fact that they pin out directly - to the IDE bus and are compatible with the ATA command set. Therefore, - with a very simple and low-cost adaptor, these devices can be attached - directly to an IDE bus in a computer. Once implemented in this manner, - operating systems such as &os; see the device as a normal hard disk - (albeit small).</para> - - <para>Other solid state disk solutions do exist, but their expense, - obscurity, and relative unease of use places them beyond the scope of - this article.</para> + <para>The scope of this article will be limited to solid state + disk devices made from flash memory. Flash memory is a solid + state memory (no moving parts) that is non-volatile (the memory + maintains data even after all power sources have been + disconnected). Flash memory can withstand tremendous physical + shock and is reasonably fast (the flash memory solutions covered + in this article are slightly slower than a EIDE hard disk for + write operations, and much faster for read operations). One + very important aspect of flash memory, the ramifications of + which will be discussed later in this article, is that each + sector has a limited rewrite capacity. You can only write, + erase, and write again to a sector of flash memory a certain + number of times before the sector becomes permanently unusable. + Although many flash memory products automatically map bad + blocks, and although some even distribute write operations + evenly throughout the unit, the fact remains that there exists a + limit to the amount of writing that can be done to the device. + Competitive units have between 1,000,000 and 10,000,000 writes + per sector in their specification. This figure varies due to + the temperature of the environment.</para> + + <para>Specifically, we will be discussing ATA compatible + compact-flash units, which are quite popular as storage media + for digital cameras. Of particular interest is the fact that + they pin out directly to the IDE bus and are compatible with the + ATA command set. Therefore, with a very simple and low-cost + adaptor, these devices can be attached directly to an IDE bus in + a computer. Once implemented in this manner, operating systems + such as &os; see the device as a normal hard disk (albeit + small).</para> + + <para>Other solid state disk solutions do exist, but their + expense, obscurity, and relative unease of use places them + beyond the scope of this article.</para> </sect1> <sect1 id="kernel"> <title>Kernel Options</title> - <para>A few kernel options are of specific interest to those creating - an embedded &os; system.</para> + <para>A few kernel options are of specific interest to those + creating an embedded &os; system.</para> <para>All embedded &os; systems that use flash memory as system - disk will be interested in memory disks and memory filesystems. Because - of the limited number of writes that can be done to flash memory, the - disk and the filesystems on the disk will most likely be mounted - read-only. In this environment, filesystems such as - <filename>/tmp</filename> and <filename>/var</filename> are mounted as - memory filesystems to allow the system to create logs and update - counters and temporary files. Memory filesystems are a critical - component to a successful solid state &os; implementation.</para> - - <para>You should make sure the following lines exist in your kernel - configuration file:</para> + disk will be interested in memory disks and memory filesystems. + Because of the limited number of writes that can be done to + flash memory, the disk and the filesystems on the disk will most + likely be mounted read-only. In this environment, filesystems + such as <filename>/tmp</filename> and <filename>/var</filename> + are mounted as memory filesystems to allow the system to create + logs and update counters and temporary files. Memory + filesystems are a critical component to a successful solid state + &os; implementation.</para> + + <para>You should make sure the following lines exist in your + kernel configuration file:</para> <programlisting>options MFS # Memory Filesystem options MD_ROOT # md device usable as a potential root device @@ -147,58 +152,63 @@ pseudo-device md # memory disk</programlisting> </sect1> <sect1 id="ro-fs"> - <title>The <literal>rc</literal> Subsystem and Read-Only Filesystems</title> + <title>The <literal>rc</literal> Subsystem and Read-Only + Filesystems</title> <para>The post-boot initialization of an embedded &os; system is controlled by <filename>/etc/rc.initdiskless</filename>.</para> - <para><filename>/etc/rc.d/var</filename> mounts <filename>/var</filename> - as a memory filesystem, makes a configurable list of directories in - <filename>/var</filename> with the &man.mkdir.1; command, and - changes modes on some of those directories. In the execution of + <para><filename>/etc/rc.d/var</filename> mounts + <filename>/var</filename> as a memory filesystem, makes a + configurable list of directories in <filename>/var</filename> + with the &man.mkdir.1; command, and changes modes on some of + those directories. In the execution of <filename>/etc/rc.d/var</filename>, one other <filename>rc.conf</filename> variable comes into play – - <literal>varsize</literal>. The <filename>/etc/rc.d/var</filename> - file creates a <filename>/var</filename> partition based on the value of + <literal>varsize</literal>. The + <filename>/etc/rc.d/var</filename> file creates a + <filename>/var</filename> partition based on the value of this variable in <filename>rc.conf</filename>:</para> <programlisting>varsize=8192</programlisting> <para>Remember that this value is in sectors by default.</para> - <para>The fact that <filename>/var</filename> - is a read-write filesystem is an important - distinction, as the <filename>/</filename> partition (and any other - partitions you may have on your flash media) should be mounted - read-only. Remember that in <xref linkend="intro"/> we detailed the - limitations of flash memory - specifically the limited write capability. - The importance of not mounting filesystems on flash media read-write, - and the importance of not using a swap file, cannot be overstated. A - swap file on a busy system can burn through a piece of flash media in - less than one year. Heavy logging or temporary file creation and - destruction can do the same. Therefore, in addition to removing the + <para>The fact that <filename>/var</filename> is a read-write + filesystem is an important distinction, as the + <filename>/</filename> partition (and any other partitions you + may have on your flash media) should be mounted read-only. + Remember that in <xref linkend="intro"/> we detailed the + limitations of flash memory - specifically the limited write + capability. The importance of not mounting filesystems on flash + media read-write, and the importance of not using a swap file, + cannot be overstated. A swap file on a busy system can burn + through a piece of flash media in less than one year. Heavy + logging or temporary file creation and destruction can do the + same. Therefore, in addition to removing the <literal>swap</literal> entry from your - <filename>/etc/fstab</filename> file, you should also change the Options - field for each filesystem to <literal>ro</literal> as follows:</para> + <filename>/etc/fstab</filename> file, you should also change the + Options field for each filesystem to <literal>ro</literal> as + follows:</para> <programlisting># Device Mountpoint FStype Options Dump Pass# /dev/ad0s1a / ufs ro 1 1</programlisting> - <para>A few applications in the average system will immediately begin to - fail as a result of this change. For instance, cron + <para>A few applications in the average system will immediately + begin to fail as a result of this change. For instance, cron will not run properly as a result of missing cron tabs in the <filename>/var</filename> created by <filename>/etc/rc.d/var</filename>, and syslog and dhcp will - encounter problems as well as a result of the read-only filesystem and - missing items in the <filename>/var</filename> that - <filename>/etc/rc.d/var</filename> has created. These are only - temporary problems though, and are addressed, along with solutions to - the execution of other common software packages in + encounter problems as well as a result of the read-only + filesystem and missing items in the <filename>/var</filename> + that <filename>/etc/rc.d/var</filename> has created. These are + only temporary problems though, and are addressed, along with + solutions to the execution of other common software packages in <xref linkend="strategies"/>.</para> - <para>An important thing to remember is that a filesystem that was mounted - read-only with <filename>/etc/fstab</filename> can be made read-write at - any time by issuing the command:</para> + <para>An important thing to remember is that a filesystem that was + mounted read-only with <filename>/etc/fstab</filename> can be + made read-write at any time by issuing the command:</para> <screen>&prompt.root; <userinput>/sbin/mount -uw <replaceable>partition</replaceable></userinput></screen> @@ -210,73 +220,79 @@ pseudo-device md # memory disk</programlisting> <sect1> <title>Building a File System From Scratch</title> - <para>Because ATA compatible compact-flash cards are seen by &os; as - normal IDE hard drives, you could - theoretically install &os; from the network using the kern and - mfsroot floppies or from a CD.</para> + <para>Because ATA compatible compact-flash cards are seen by &os; + as normal IDE hard drives, you could theoretically install &os; + from the network using the kern and mfsroot floppies or from a + CD.</para> <para>However, even a small installation of &os; using normal - installation procedures can produce a system in size of greater than 200 - megabytes. Because most people will be using smaller flash memory - devices (128 megabytes is considered fairly large - 32 or even 16 - megabytes is common) an installation using normal mechanisms is not - possible—there is simply not enough disk space for even the - smallest of conventional installations.</para> - - <para>The easiest way to overcome this space limitation is to install - &os; using conventional means to a normal hard disk. After the - installation is complete, pare down the operating system to a size that - will fit onto your flash media, then tar the entire filesystem. The - following steps will guide you through the process of preparing a piece - of flash memory for your tarred filesystem. Remember, because a normal - installation is not being performed, operations such as partitioning, - labeling, file-system creation, etc. need to be performed by hand. In - addition to the kern and mfsroot floppy disks, you will also need to use - the fixit floppy.</para> + installation procedures can produce a system in size of greater + than 200 megabytes. Because most people will be using smaller + flash memory devices (128 megabytes is considered fairly large - + 32 or even 16 megabytes is common) an installation using normal + mechanisms is not possible—there is simply not enough disk + space for even the smallest of conventional + installations.</para> + + <para>The easiest way to overcome this space limitation is to + install &os; using conventional means to a normal hard disk. + After the installation is complete, pare down the operating + system to a size that will fit onto your flash media, then tar + the entire filesystem. The following steps will guide you + through the process of preparing a piece of flash memory for + your tarred filesystem. Remember, because a normal installation + is not being performed, operations such as partitioning, + labeling, file-system creation, etc. need to be performed by + hand. In addition to the kern and mfsroot floppy disks, you + will also need to use the fixit floppy.</para> <procedure> <step> <title>Partitioning your flash media device</title> <para>After booting with the kern and mfsroot floppies, choose - <literal>custom</literal> from the installation menu. In the custom - installation menu, choose <literal>partition</literal>. In the - partition menu, you should delete all existing partitions using the - <keycap>d</keycap> key. After deleting all existing partitions, - create a partition using the <keycap>c</keycap> key and accept the - default value for the size of the partition. When asked for the - type of the partition, make sure the value is set to - <literal>165</literal>. Now write this partition table to the disk - by pressing the <keycap>w</keycap> key (this is a hidden option on - this screen). If you are using an ATA compatible compact - flash card, you should choose the &os; Boot Manager. Now press - the <keycap>q</keycap> key to quit the partition menu. You will be - shown the boot manager menu once more - repeat the choice you made - earlier.</para> + <literal>custom</literal> from the installation menu. In + the custom installation menu, choose + <literal>partition</literal>. In the partition menu, you + should delete all existing partitions using the + <keycap>d</keycap> key. After deleting all existing + partitions, create a partition using the <keycap>c</keycap> + key and accept the default value for the size of the + partition. When asked for the type of the partition, make + sure the value is set to <literal>165</literal>. Now write + this partition table to the disk by pressing the + <keycap>w</keycap> key (this is a hidden option on this + screen). If you are using an ATA compatible compact flash + card, you should choose the &os; Boot Manager. Now press + the <keycap>q</keycap> key to quit the partition menu. You + will be shown the boot manager menu once more - repeat the + choice you made earlier.</para> </step> <step> - <title>Creating filesystems on your flash memory device</title> + <title>Creating filesystems on your flash memory + device</title> <para>Exit the custom installation menu, and from the main - installation menu choose the <literal>fixit</literal> option. After - entering the fixit environment, enter the following command:</para> + installation menu choose the <literal>fixit</literal> + option. After entering the fixit environment, enter the + following command:</para> <screen>&prompt.root; <userinput>disklabel -e /dev/ad0c</userinput></screen> - <para>At this point you will have entered the vi editor under the - auspices of the disklabel command. Next, you need to add - an <literal>a:</literal> line at the end of the file. This - <literal>a:</literal> line should look like:</para> + <para>At this point you will have entered the vi editor under + the auspices of the disklabel command. Next, you need to + add an <literal>a:</literal> line at the end of the file. + This <literal>a:</literal> line should look like:</para> <programlisting>a: <replaceable>123456</replaceable> 0 4.2BSD 0 0</programlisting> - <para>Where <replaceable>123456</replaceable> is a number that is - exactly the same as the number in the existing <literal>c:</literal> - entry for size. Basically you are duplicating the existing - <literal>c:</literal> line as an <literal>a:</literal> line, making - sure that fstype is <literal>4.2BSD</literal>. Save the file and - exit.</para> + <para>Where <replaceable>123456</replaceable> is a number that + is exactly the same as the number in the existing + <literal>c:</literal> entry for size. Basically you are + duplicating the existing <literal>c:</literal> line as an + <literal>a:</literal> line, making sure that fstype is + <literal>4.2BSD</literal>. Save the file and exit.</para> <screen>&prompt.root; <userinput>disklabel -B -r /dev/ad0c</userinput> &prompt.root; <userinput>newfs /dev/ad0a</userinput></screen> @@ -289,22 +305,24 @@ pseudo-device md # memory disk</programlisting> <screen>&prompt.root; <userinput>mount /dev/ad0a /flash</userinput></screen> - <para>Bring this machine up on the network so we may transfer our tar - file and explode it onto our flash media filesystem. One example of - how to do this is:</para> + <para>Bring this machine up on the network so we may transfer + our tar file and explode it onto our flash media filesystem. + One example of how to do this is:</para> <screen>&prompt.root; <userinput>ifconfig xl0 192.168.0.10 netmask 255.255.255.0</userinput> &prompt.root; <userinput>route add default 192.168.0.1</userinput></screen> - <para>Now that the machine is on the network, transfer your tar file. - You may be faced with a bit of a dilemma at this point - if your - flash memory part is 128 megabytes, for instance, and your tar file - is larger than 64 megabytes, you cannot have your tar file on the - flash media at the same time as you explode it - you will run out of - space. One solution to this problem, if you are using FTP, is to - untar the file while it is transferred over FTP. If you perform - your transfer in this manner, you will never have the tar file and - the tar contents on your disk at the same time:</para> + <para>Now that the machine is on the network, transfer your + tar file. You may be faced with a bit of a dilemma at this + point - if your flash memory part is 128 megabytes, for + instance, and your tar file is larger than 64 megabytes, you + cannot have your tar file on the flash media at the same + time as you explode it - you will run out of + space. One solution to this problem, if you are using FTP, + is to untar the file while it is transferred over FTP. If + you perform your transfer in this manner, you will never + have the tar file and the tar contents on your disk at the + same time:</para> <screen><prompt>ftp></prompt> <userinput>get tarfile.tar "| tar xvf -"</userinput></screen> @@ -313,70 +331,74 @@ pseudo-device md # memory disk</programlisting> <screen><prompt>ftp></prompt> <userinput>get tarfile.tar "| zcat | tar xvf -"</userinput></screen> - <para>After the contents of your tarred filesystem are on your flash - memory filesystem, you can unmount the flash memory and - reboot:</para> + <para>After the contents of your tarred filesystem are on your + flash memory filesystem, you can unmount the flash memory + and reboot:</para> <screen>&prompt.root; <userinput>cd /</userinput> &prompt.root; <userinput>umount /flash</userinput> &prompt.root; <userinput>exit</userinput></screen> - <para>Assuming that you configured your filesystem correctly when it - was built on the normal hard disk (with your filesystems mounted - read-only, and with the necessary options compiled into the kernel) - you should now be successfully booting your &os; embedded - system.</para> + <para>Assuming that you configured your filesystem correctly + when it was built on the normal hard disk (with your + filesystems mounted read-only, and with the necessary + options compiled into the kernel) you should now be + successfully booting your &os; embedded system.</para> </step> </procedure> </sect1> <sect1 id="strategies"> - <title>System Strategies for Small and Read Only Environments</title> + <title>System Strategies for Small and Read Only + Environments</title> <para>In <xref linkend="ro-fs"/>, it was pointed out that the <filename>/var</filename> filesystem constructed by - <filename>/etc/rc.d/var</filename> and the presence of a read-only - root filesystem causes problems with many common software packages used - with &os;. In this article, suggestions for successfully running - cron, syslog, ports installations, and the Apache web server will be - provided.</para> + <filename>/etc/rc.d/var</filename> and the presence of a + read-only root filesystem causes problems with many common + software packages used with &os;. In this article, suggestions + for successfully running cron, syslog, ports installations, and + the Apache web server will be provided.</para> <sect2> <title>cron</title> - <para>Upon boot, <filename class="directory">/var</filename> gets - populated by <filename>/etc/rc.d/var</filename> using the list from - <filename>/etc/mtree/BSD.var.dist</filename>, so the <filename - class="directory">cron</filename>, <filename - class="directory">cron/tabs</filename>, <filename - class="directory">at</filename>, and a few other standard + <para>Upon boot, <filename class="directory">/var</filename> + gets populated by <filename>/etc/rc.d/var</filename> using the + list from <filename>/etc/mtree/BSD.var.dist</filename>, so the + <filename class="directory">cron</filename>, <filename + class="directory">cron/tabs</filename>, <filename + class="directory">at</filename>, and a few other standard directories get created.</para> - <para>However, this does not solve the problem of maintaining cron - tabs across reboots. When the system reboots, the - <filename>/var</filename> filesystem that is in memory will disappear - and any cron tabs you may have had in it will also disappear. - Therefore, one solution would be to create cron tabs for the users - that need them, mount your <filename>/</filename> filesystem as - read-write and copy those cron tabs to somewhere safe, like + <para>However, this does not solve the problem of maintaining + cron tabs across reboots. When the system reboots, the + <filename>/var</filename> filesystem that is in memory will + disappear and any cron tabs you may have had in it will also + disappear. Therefore, one solution would be to create cron + tabs for the users that need them, mount your + <filename>/</filename> filesystem as read-write and copy those + cron tabs to somewhere safe, like <filename>/etc/tabs</filename>, then add a line to the end of - <filename>/etc/rc.initdiskless</filename> that copies those crontabs into - <filename>/var/cron/tabs</filename> after that directory has been - created during system initialization. You may also need to add a line - that changes modes and permissions on the directories you create and - the files you copy with <filename>/etc/rc.initdiskless</filename>.</para> + <filename>/etc/rc.initdiskless</filename> that copies those + crontabs into <filename>/var/cron/tabs</filename> after that + directory has been created during system initialization. You + may also need to add a line that changes modes and permissions + on the directories you create and the files you copy with + <filename>/etc/rc.initdiskless</filename>.</para> </sect2> <sect2> <title>syslog</title> - <para><filename>syslog.conf</filename> specifies the locations of - certain log files that exist in <filename>/var/log</filename>. These - files are not created by <filename>/etc/rc.d/var</filename> upon - system initialization. Therefore, somewhere in - <filename>/etc/rc.d/var</filename>, after the section that creates - the directories in <filename>/var</filename>, you will need to add - something like this:</para> + <para><filename>syslog.conf</filename> specifies the locations + of certain log files that exist in + <filename>/var/log</filename>. These files are not created by + <filename>/etc/rc.d/var</filename> upon system initialization. + Therefore, somewhere in <filename>/etc/rc.d/var</filename>, + after the section that creates the directories in + <filename>/var</filename>, you will need to add something like + this:</para> <screen>&prompt.root; <userinput>touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages</userinput> &prompt.root; <userinput>chmod 0644 /var/log/*</userinput></screen> @@ -385,27 +407,30 @@ pseudo-device md # memory disk</programlisting> <sect2> <title>Ports Installation</title> - <para>Before discussing the changes necessary to successfully use the - ports tree, a reminder is necessary regarding the read-only nature of - your filesystems on the flash media. Since they are read-only, you - will need to temporarily mount them read-write using the mount syntax - shown in <xref linkend="ro-fs"/>. You should always remount those + <para>Before discussing the changes necessary to successfully + use the ports tree, a reminder is necessary regarding the + read-only nature of your filesystems on the flash media. + Since they are read-only, you will need to temporarily mount + them read-write using the mount syntax shown in <xref + linkend="ro-fs"/>. You should always remount those filesystems read-only when you are done with any maintenance - - unnecessary writes to the flash media could considerably shorten its - lifespan.</para> - - <para>To make it possible to enter a ports directory and successfully - run <command>make</command> <maketarget>install</maketarget>, - we must create a packages directory on - a non-memory filesystem that will keep track of our packages across - reboots. Because it is necessary to mount your filesystems as - read-write for the installation of a package anyway, it is sensible to - assume that an area on the flash media can also be used for package + unnecessary writes to the flash media could considerably + shorten its lifespan.</para> + + <para>To make it possible to enter a ports directory and + successfully run + <command>make</command> <maketarget>install</maketarget>, we + must create a packages directory on a non-memory filesystem + that will keep track of our packages across reboots. Because + it is necessary to mount your filesystems as read-write for + the installation of a package anyway, it is sensible to assume + that an area on the flash media can also be used for package information to be written to.</para> - <para>First, create a package database directory. This is normally in - <filename>/var/db/pkg</filename>, but we cannot place it there as it - will disappear every time the system is booted.</para> + <para>First, create a package database directory. This is + normally in <filename>/var/db/pkg</filename>, but we cannot + place it there as it will disappear every time the system is + booted.</para> <screen>&prompt.root; <userinput>mkdir /etc/pkg</userinput></screen> @@ -415,12 +440,13 @@ pseudo-device md # memory disk</programlisting> <screen>&prompt.root; <userinput>ln -s /etc/pkg /var/db/pkg</userinput></screen> - <para>Now, any time that you mount your filesystems as read-write and - install a package, the <command>make</command> <maketarget>install</maketarget> will work, - and package information - will be written successfully to <filename>/etc/pkg</filename> (because - the filesystem will, at that time, be mounted read-write) which will - always be available to the operating system as + <para>Now, any time that you mount your filesystems as + read-write and install a package, the + <command>make</command> <maketarget>install</maketarget> will + work, and package information will be written successfully to + <filename>/etc/pkg</filename> (because the filesystem will, at + that time, be mounted read-write) which will always be + available to the operating system as <filename>/var/db/pkg</filename>.</para> </sect2> @@ -428,40 +454,42 @@ pseudo-device md # memory disk</programlisting> <title>Apache Web Server</title> <note> - <para>The steps in this section are only necessary if Apache is - set up to write its pid or log information outside of + <para>The steps in this section are only necessary if Apache + is set up to write its pid or log information outside of <filename class="directory">/var</filename>. By default, Apache keeps its pid file in <filename - class="directory">/var/run/httpd.pid</filename> and its log - files in <filename class="directory">/var/log</filename>.</para> + class="directory">/var/run/httpd.pid</filename> and its + log files in <filename + class="directory">/var/log</filename>.</para> </note> <para>It is now assumed that Apache keeps its log files in a directory <filename - class="directory"><replaceable>apache_log_dir</replaceable></filename> + class="directory"><replaceable>apache_log_dir</replaceable></filename> outside of <filename class="directory">/var</filename>. - When this directory lives on a read-only filesystem, Apache will - not be able to save any log files, and may have problems working. - If so, it is necessary to add a new directory to the + When this directory lives on a read-only filesystem, Apache + will not be able to save any log files, and may have problems + working. If so, it is necessary to add a new directory to the list of directories in <filename>/etc/rc.d/var</filename> to create in <filename>/var</filename>, and to link - <filename class="directory"><replaceable>apache_log_dir</replaceable></filename> to - <filename>/var/log/apache</filename>. It is also necessary to set - permissions and ownership on this new directory.</para> + <filename + class="directory"><replaceable>apache_log_dir</replaceable></filename> + to <filename>/var/log/apache</filename>. It is also necessary + to set permissions and ownership on this new directory.</para> - <para>First, add the directory <literal>log/apache</literal> to the list - of directories to be created in + <para>First, add the directory <literal>log/apache</literal> to + the list of directories to be created in <filename>/etc/rc.d/var</filename>.</para> <para>Second, add these commands to - <filename>/etc/rc.d/var</filename> after the directory creation - section:</para> + <filename>/etc/rc.d/var</filename> after the directory + creation section:</para> <screen>&prompt.root; <userinput>chmod 0774 /var/log/apache</userinput> &prompt.root; <userinput>chown nobody:nobody /var/log/apache</userinput></screen> - <para>Finally, remove the existing - <filename class="directory"><replaceable>apache_log_dir</replaceable></filename> + <para>Finally, remove the existing <filename + class="directory"><replaceable>apache_log_dir</replaceable></filename> directory, and replace it with a link:</para> <screen>&prompt.root; <userinput>rm -rf <filename class="directory"><replaceable>apache_log_dir</replaceable></filename></userinput> diff --git a/en_US.ISO8859-1/books/Makefile b/en_US.ISO8859-1/books/Makefile index ecf27143de..4cf91fdde1 100644 --- a/en_US.ISO8859-1/books/Makefile +++ b/en_US.ISO8859-1/books/Makefile @@ -1,7 +1,6 @@ # $FreeBSD$ SUBDIR = arch-handbook -SUBDIR+= corp-net-guide SUBDIR+= design-44bsd SUBDIR+= dev-model SUBDIR+= developers-handbook diff --git a/en_US.ISO8859-1/books/arch-handbook/Makefile b/en_US.ISO8859-1/books/arch-handbook/Makefile index 7c1f296a6c..9ad49d0e62 100644 --- a/en_US.ISO8859-1/books/arch-handbook/Makefile +++ b/en_US.ISO8859-1/books/arch-handbook/Makefile @@ -16,11 +16,11 @@ INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= # -# SRCS lists the individual SGML files that make up the document. Changes +# SRCS lists the individual XML files that make up the document. Changes # to any of these files will force a rebuild # -# SGML content +# XML content SRCS= book.xml SRCS+= boot/chapter.xml SRCS+= driverbasics/chapter.xml diff --git a/en_US.ISO8859-1/books/arch-handbook/driverbasics/chapter.xml b/en_US.ISO8859-1/books/arch-handbook/driverbasics/chapter.xml index f70027a2e9..c4b87c9ba7 100644 --- a/en_US.ISO8859-1/books/arch-handbook/driverbasics/chapter.xml +++ b/en_US.ISO8859-1/books/arch-handbook/driverbasics/chapter.xml @@ -48,13 +48,7 @@ <para>Most devices in a &unix;-like operating system are accessed through device-nodes, sometimes also called special files. These files are usually located under the directory - <filename>/dev</filename> in the filesystem hierarchy. - In releases of FreeBSD older than 5.0-RELEASE, where - &man.devfs.5; support is not integrated into FreeBSD, - each device node must be - created statically and independent of the existence of the - associated device driver. Most device nodes on the system are - created by running <command>MAKEDEV</command>.</para> + <filename>/dev</filename> in the filesystem hierarchy.</para> <para>Device drivers can roughly be broken down into two categories; character and network device drivers.</para> @@ -208,25 +202,23 @@ KMOD=skeleton <para>This simple example pseudo-device remembers whatever values you write to it and can then supply them back to you when you - read from it. Two versions are shown, one for &os; 4.X and - one for &os; 5.X.</para> + read from it.</para> <example> <title>Example of a Sample Echo Pseudo-Device Driver for - &os; 4.X</title> + &os; 10.X</title> <programlisting>/* - * Simple `echo' pseudo-device KLD + * Simple Echo pseudo-device KLD * * Murray Stokely + * Søren (Xride) Straarup + * Eitan Adler */ -#define MIN(a,b) (((a) < (b)) ? (a) : (b)) - #include <sys/types.h> #include <sys/module.h> #include <sys/systm.h> /* uprintf */ -#include <sys/errno.h> #include <sys/param.h> /* defines used in kernel.h */ #include <sys/kernel.h> /* types used in module initialization */ #include <sys/conf.h> /* cdevsw struct */ @@ -236,170 +228,6 @@ KMOD=skeleton #define BUFFERSIZE 256 /* Function prototypes */ -d_open_t echo_open; -d_close_t echo_close; -d_read_t echo_read; -d_write_t echo_write; - -/* Character device entry points */ -static struct cdevsw echo_cdevsw = { - echo_open, - echo_close, - echo_read, - echo_write, - noioctl, - nopoll, - nommap, - nostrategy, - "echo", - 33, /* reserved for lkms - /usr/src/sys/conf/majors */ - nodump, - nopsize, - D_TTY, - -1 -}; - -typedef struct s_echo { - char msg[BUFFERSIZE]; - int len; -} t_echo; - -/* vars */ -static dev_t sdev; -static int count; -static t_echo *echomsg; - -MALLOC_DECLARE(M_ECHOBUF); -MALLOC_DEFINE(M_ECHOBUF, "echobuffer", "buffer for echo module"); - -/* - * This function is called by the kld[un]load(2) system calls to - * determine what actions to take when a module is loaded or unloaded. - */ - -static int -echo_loader(struct module *m, int what, void *arg) -{ - int err = 0; - - switch (what) { - case MOD_LOAD: /* kldload */ - sdev = make_dev(<literal>&</literal>echo_cdevsw, - 0, - UID_ROOT, - GID_WHEEL, - 0600, - "echo"); - /* kmalloc memory for use by this driver */ - MALLOC(echomsg, t_echo *, sizeof(t_echo), M_ECHOBUF, M_WAITOK); - printf("Echo device loaded.\n"); - break; - case MOD_UNLOAD: - destroy_dev(sdev); - FREE(echomsg,M_ECHOBUF); - printf("Echo device unloaded.\n"); - break; - default: - err = EOPNOTSUPP; - break; - } - return(err); -} - -int -echo_open(dev_t dev, int oflags, int devtype, struct proc *p) -{ - int err = 0; - - uprintf("Opened device \"echo\" successfully.\n"); - return(err); -} - -int -echo_close(dev_t dev, int fflag, int devtype, struct proc *p) -{ - uprintf("Closing device \"echo.\"\n"); - return(0); -} - -/* - * The read function just takes the buf that was saved via - * echo_write() and returns it to userland for accessing. - * uio(9) - */ - -int -echo_read(dev_t dev, struct uio *uio, int ioflag) -{ - int err = 0; - int amt; - - /* - * How big is this read operation? Either as big as the user wants, - * or as big as the remaining data - */ - amt = MIN(uio->uio_resid, (echomsg->len - uio->uio_offset > 0) ? - echomsg->len - uio->uio_offset : 0); - if ((err = uiomove(echomsg->msg + uio->uio_offset,amt,uio)) != 0) { - uprintf("uiomove failed!\n"); - } - return(err); -} - -/* - * echo_write takes in a character string and saves it - * to buf for later accessing. - */ - -int -echo_write(dev_t dev, struct uio *uio, int ioflag) -{ - int err = 0; - - /* Copy the string in from user memory to kernel memory */ - err = copyin(uio->uio_iov->iov_base, echomsg->msg, - MIN(uio->uio_iov->iov_len, BUFFERSIZE - 1)); - - /* Now we need to null terminate, then record the length */ - *(echomsg->msg + MIN(uio->uio_iov->iov_len, BUFFERSIZE - 1)) = 0; - echomsg->len = MIN(uio->uio_iov->iov_len, BUFFERSIZE); - - if (err != 0) { - uprintf("Write failed: bad address!\n"); - } - count++; - return(err); -} - -DEV_MODULE(echo,echo_loader,NULL);</programlisting> - </example> - - <example> - <title>Example of a Sample Echo Pseudo-Device Driver for - &os; 5.X</title> - - <programlisting>/* - * Simple `echo' pseudo-device KLD - * - * Murray Stokely - * - * Converted to 5.X by Søren (Xride) Straarup - */ - -#include <sys/types.h> -#include <sys/module.h> -#include <sys/systm.h> /* uprintf */ -#include <sys/errno.h> -#include <sys/param.h> /* defines used in kernel.h */ -#include <sys/kernel.h> /* types used in module initialization */ -#include <sys/conf.h> /* cdevsw struct */ -#include <sys/uio.h> /* uio struct */ -#include <sys/malloc.h> - -#define BUFFERSIZE 256 - - -/* Function prototypes */ static d_open_t echo_open; static d_close_t echo_close; static d_read_t echo_read; @@ -415,15 +243,14 @@ static struct cdevsw echo_cdevsw = { .d_name = "echo", }; -typedef struct s_echo { +struct s_echo { char msg[BUFFERSIZE]; int len; -} t_echo; +}; /* vars */ static struct cdev *echo_dev; -static int count; -static t_echo *echomsg; +static struct s_echo *echomsg; MALLOC_DECLARE(M_ECHOBUF); MALLOC_DEFINE(M_ECHOBUF, "echobuffer", "buffer for echo module"); @@ -434,20 +261,25 @@ MALLOC_DEFINE(M_ECHOBUF, "echobuffer", "buffer for echo module"); */ static int -echo_loader(struct module *m, int what, void *arg) +echo_loader(struct module *m __unused, int what, void *arg __unused) { - int err = 0; + int error = 0; switch (what) { case MOD_LOAD: /* kldload */ - echo_dev = make_dev(<literal>&</literal>echo_cdevsw, + error = make_dev_p(MAKEDEV_CHECKNAME | MAKEDEV_WAITOK, + &echo_dev, + &echo_cdevsw, 0, UID_ROOT, GID_WHEEL, 0600, "echo"); + if (error != 0) + break; + /* kmalloc memory for use by this driver */ - echomsg = malloc(sizeof(t_echo), M_ECHOBUF, M_WAITOK); + echomsg = malloc(sizeof(*echomsg), M_ECHOBUF, M_WAITOK); printf("Echo device loaded.\n"); break; case MOD_UNLOAD: @@ -456,26 +288,27 @@ echo_loader(struct module *m, int what, void *arg) printf("Echo device unloaded.\n"); break; default: - err = EOPNOTSUPP; + error = EOPNOTSUPP; break; } - return(err); + return (error); } static int -echo_open(struct cdev *dev, int oflags, int devtype, struct thread *p) +echo_open(struct cdev *dev __unused, int oflags __unused, int devtype __unused, struct thread *p __unused) { - int err = 0; + int error = 0; uprintf("Opened device \"echo\" successfully.\n"); - return(err); + return (error); } static int -echo_close(struct cdev *dev, int fflag, int devtype, struct thread *p) +echo_close(struct cdev *dev __unused, int fflag __unused, int devtype __unused, struct thread *p __unused) { - uprintf("Closing device \"echo.\"\n"); - return(0); + + uprintf("Closing device \"echo\".\n"); + return (0); } /* @@ -485,21 +318,21 @@ echo_close(struct cdev *dev, int fflag, int devtype, struct thread *p) */ static int -echo_read(struct cdev *dev, struct uio *uio, int ioflag) +echo_read(struct cdev *dev __unused, struct uio *uio, int ioflag __unused) { - int err = 0; - int amt; + int error, amt; /* * How big is this read operation? Either as big as the user wants, * or as big as the remaining data */ - amt = MIN(uio->uio_resid, (echomsg->len - uio->uio_offset > 0) ? - echomsg->len - uio->uio_offset : 0); - if ((err = uiomove(echomsg->msg + uio->uio_offset, amt, uio)) != 0) { + + amt = MIN(uio->uio_resid, echomsg->len - uio->uio_offset); + uio->uio_offset += amt; + if ((error = uiomove(echomsg->msg, amt, uio)) != 0) uprintf("uiomove failed!\n"); - } - return(err); + + return (error); } /* @@ -508,55 +341,57 @@ echo_read(struct cdev *dev, struct uio *uio, int ioflag) */ static int -echo_write(struct cdev *dev, struct uio *uio, int ioflag) +echo_write(struct cdev *dev __unused, struct uio *uio, int ioflag __unused) { - int err = 0; + int error, amt; + + /* Copy the string in from user memory to kernel memory */ + + /* + * We either write from the beginning or are appending -- do + * not allow random access. + */ + if (uio->uio_offset != 0 && (uio->uio_offset != echomsg->len)) + return (EINVAL); + + /* + * This is new message, reset length + */ + if (uio->uio_offset == 0) + echomsg->len = 0; + + /* NULL character should be overridden */ + if (echomsg->len != 0) + echomsg->len--; /* Copy the string in from user memory to kernel memory */ - err = copyin(uio->uio_iov->iov_base, echomsg->msg, - MIN(uio->uio_iov->iov_len, BUFFERSIZE - 1)); + amt = MIN(uio->uio_resid, (BUFFERSIZE - echomsg->len)); + + error = uiomove(echomsg->msg + uio->uio_offset, amt, uio); /* Now we need to null terminate, then record the length */ - *(echomsg->msg + MIN(uio->uio_iov->iov_len, BUFFERSIZE - 1)) = 0; - echomsg->len = MIN(uio->uio_iov->iov_len, BUFFERSIZE); + echomsg->len += amt + 1; + uio->uio_offset += amt + 1; + echomsg->msg[echomsg->len - 1] = 0; - if (err != 0) { + if (error != 0) uprintf("Write failed: bad address!\n"); - } - count++; - return(err); + return (error); } DEV_MODULE(echo,echo_loader,NULL);</programlisting> </example> - <para>To install this driver on &os; 4.X you will first need to - make a node on your filesystem with a command such as:</para> - - <screen>&prompt.root; <userinput>mknod /dev/echo c 33 0</userinput></screen> - <para>With this driver loaded you should now be able to type something like:</para> <screen>&prompt.root; <userinput>echo -n "Test Data" > /dev/echo</userinput> &prompt.root; <userinput>cat /dev/echo</userinput> -Test Data</screen> +Opened device "echo" successfully. +Test Data +Closing device "echo".</screen> <para>Real hardware devices are described in the next chapter.</para> - - <para>Additional Resources - <itemizedlist> - <listitem><simpara><ulink - url="http://ezine.daemonnews.org/200010/blueprints.html">Dynamic - Kernel Linker (KLD) Facility Programming Tutorial</ulink> - - <ulink url="http://www.daemonnews.org/">Daemonnews</ulink> October 2000</simpara></listitem> - <listitem><simpara><ulink - url="http://ezine.daemonnews.org/200007/newbus-intro.html">How - to Write Kernel Drivers with NEWBUS</ulink> - <ulink - url="http://www.daemonnews.org/">Daemonnews</ulink> July - 2000</simpara></listitem> - </itemizedlist> - </para> </sect1> <sect1 id="driverbasics-block"> diff --git a/en_US.ISO8859-1/books/arch-handbook/isa/chapter.xml b/en_US.ISO8859-1/books/arch-handbook/isa/chapter.xml index 20a2996f02..578d7da34b 100644 --- a/en_US.ISO8859-1/books/arch-handbook/isa/chapter.xml +++ b/en_US.ISO8859-1/books/arch-handbook/isa/chapter.xml @@ -146,7 +146,7 @@ DEVMETHOD(device_suspend, xxx_isa_suspend), DEVMETHOD(device_resume, xxx_isa_resume), - { 0, 0 } + DEVMETHOD_END }; static driver_t xxx_isa_driver = { diff --git a/en_US.ISO8859-1/books/arch-handbook/pci/chapter.xml b/en_US.ISO8859-1/books/arch-handbook/pci/chapter.xml index b6f5aff26d..15a70da312 100644 --- a/en_US.ISO8859-1/books/arch-handbook/pci/chapter.xml +++ b/en_US.ISO8859-1/books/arch-handbook/pci/chapter.xml @@ -37,7 +37,7 @@ #include <sys/conf.h> /* cdevsw struct */ #include <sys/uio.h> /* uio struct */ #include <sys/malloc.h> -#include <sys/bus.h> /* structs, prototypes for pci bus stuff */ +#include <sys/bus.h> /* structs, prototypes for pci bus stuff and DEVMETHOD macros! */ #include <machine/bus.h> #include <sys/rman.h> @@ -221,7 +221,7 @@ static device_method_t mypci_methods[] = { DEVMETHOD(device_suspend, mypci_suspend), DEVMETHOD(device_resume, mypci_resume), - { 0, 0 } + DEVMETHOD_END }; static devclass_t mypci_devclass; diff --git a/en_US.ISO8859-1/books/arch-handbook/sound/chapter.xml b/en_US.ISO8859-1/books/arch-handbook/sound/chapter.xml index 4ce5564a02..9686fae370 100644 --- a/en_US.ISO8859-1/books/arch-handbook/sound/chapter.xml +++ b/en_US.ISO8859-1/books/arch-handbook/sound/chapter.xml @@ -82,16 +82,16 @@ <sect1 id="oss-files"> <title>Files</title> - <para>All the relevant code currently (FreeBSD 4.4) lives in + <para>All the relevant code lives in <filename>/usr/src/sys/dev/sound/</filename>, except for the public ioctl interface definitions, found in <filename>/usr/src/sys/sys/soundcard.h</filename></para> <para>Under <filename>/usr/src/sys/dev/sound/</filename>, the <filename>pcm/</filename> directory holds the central code, - while the <filename>isa/</filename> and - <filename>pci/</filename> directories have the drivers for ISA - and PCI boards.</para> + while the <filename>pci/</filename>, <filename>isa/</filename> + and <filename>usb/</filename> directories have the drivers + for PCI and ISA boards, and for USB audio devices.</para> </sect1> @@ -527,7 +527,7 @@ <function>channel_resetdone()</function>, and <function>channel_notify()</function> are for special purposes and should not be implemented in a driver without discussing - it with the authorities (&a.cg;).</para> + it on the &a.multimedia;.</para> <para><function>channel_setdir()</function> is deprecated.</para> </sect3> diff --git a/en_US.ISO8859-1/books/bibliography/Makefile b/en_US.ISO8859-1/books/bibliography/Makefile index c638bf7fff..3a4bb68350 100644 --- a/en_US.ISO8859-1/books/bibliography/Makefile +++ b/en_US.ISO8859-1/books/bibliography/Makefile @@ -13,11 +13,11 @@ INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= # -# SRCS lists the individual SGML files that make up the document. Changes +# SRCS lists the individual XML files that make up the document. Changes # to any of these files will force a rebuild # -# SGML content +# XML content SRCS= book.xml DOC_PREFIX?= ${.CURDIR}/../../.. diff --git a/en_US.ISO8859-1/books/corp-net-guide/Makefile b/en_US.ISO8859-1/books/corp-net-guide/Makefile deleted file mode 100644 index e4834d3e81..0000000000 --- a/en_US.ISO8859-1/books/corp-net-guide/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -# $FreeBSD$ - -DOC?= book - -FORMATS?= html - -INSTALL_COMPRESSED?=gz -INSTALL_ONLY_COMPRESSED?= - -SRCS= book.xml - -IMAGES_EN= 08-01.eps -IMAGES_EN+= 08-02.eps -IMAGES_EN+= 08-03.eps -IMAGES_EN+= 08-04.eps -IMAGES_EN+= 08-05.eps -IMAGES_EN+= 08-06.eps - -# Use the local DSSSL file -DSLHTML?= ${.CURDIR}/freebsd.dsl -DSLPRINT?= ${.CURDIR}/freebsd.dsl - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/en_US.ISO8859-1/books/corp-net-guide/book.xml b/en_US.ISO8859-1/books/corp-net-guide/book.xml deleted file mode 100644 index abe65ada67..0000000000 --- a/en_US.ISO8859-1/books/corp-net-guide/book.xml +++ /dev/null @@ -1,3223 +0,0 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN" - "../../../share/xml/freebsd45.dtd"> - -<!-- $FreeBSD$ --> -<!-- FreeBSD Documentation Project --> - -<book lang='en'> - <bookinfo> - <title>The FreeBSD Corporate Networker's Guide</title> - - <author> - <firstname>Ted</firstname> - <surname>Mittelstaedt</surname> - </author> - - <copyright> - <year>2001</year> - <holder>Addison-Wesley Longman, Inc (Original English language edition)</holder> - </copyright> - - <copyright> - <year>2001</year> - <holder>Pearson Educational Japan (Japanese language translation)</holder> - </copyright> - - <isbn>ENGLISH LANGUAGE EDITION ISBN: 0-201-70481-1</isbn> - <isbn>JAPANESE LANGUAGE EDITION ISBN: 4-89471-464-7</isbn> - - <legalnotice id="legalnotice"> - <para>The eighth chapter of the book, <citetitle>The FreeBSD Corporate - Networker's Guide</citetitle> is excerpted here with the permission - of the publisher. No part of it may be further reproduced or - distributed without the publisher's express written - <email>Chanda.Leary-Coutu@awl.com</email>. - The other chapters of - <ulink url="http://cseng.aw.com/book/0,,0201704811,00.html">the - book</ulink> covers topics such as system administration, - fileserving, and e-mail delivery. More information about this book is - available from the publisher, with whom you can also sign up to - receive news of <ulink url="mailto:Chanda.Leary-Coutu@awl.com">related - titles</ulink>. The author's web site for the book includes sample - code, working examples, - <ulink url="http://www.freebsd-corp-net-guide.com/errata.html">errata</ulink> - and a Q&A forum, and is available at - <ulink url="http://www.freebsd-corp-net-guide.com/"></ulink>.</para> - </legalnotice> - - <releaseinfo>$FreeBSD$</releaseinfo> - </bookinfo> - - <chapter id="printserving" label="8"> - <title>Printserving</title> - - <para>Printserving is a complicated topic. There are many different - software interfaces to printers, as well as a wide variety of printer - hardware interfaces. This chapter covers the basics of setting up a - print queue, using Samba to print, and administering print queues and - connections.</para> - - <sect1 id="printserving-history"> - <title>PC printing history</title> - - <para>In the early days of the personal computer, printing was simple. - The PC owner bought a cheap printer, usually a dot matrix that barely - supported ASCII, and plugged it into the computer with a parallel - cable. Applications would either work with the printer or not, and - most did because all they could do was output DOS or ASCII text. The - few software applications that supported graphics generally could only - output on specific makes and models of printers. Shared - <emphasis>network</emphasis> printing, if it existed, was usually done - by some type of serial port switchbox.</para> - - <para>This was the general state of affairs with the PC until the - Windows operating system was released. All at once, application - programmers were finally free of the restrictions of worrying about - how some printer manufacturer would change printer control codes. - Graphics printing, in the form of fonts and images, was added to most - applications, and demand for it rapidly increased across the - corporation. Large, high-capacity laser printers designed for office - printing appeared on the scene. Printing went from 150 to 300 to - 600 dpi for the common desktop laser printer.</para> - - <para>Today organizational network printing is complex, and printers - themselves are more complicated. Most organizations find that sharing - a few high-quality laser printers is much more cost effective than - buying many cheaper dot matrix units. Good network print serving is a - necessity, and it can be very well provided by the FreeBSD UNIX - system.</para> - </sect1> - - <sect1 id="printserving-protocols"> - <title>Printer communication protocols and hardware</title> - - <para>Printers that don't use proprietary vendor codes communicate with - computers using one or more of three major printing protocols. The - communication is done over a hardware cable that can be a parallel - connection (printer port) or a serial connection (COM port).</para> - - <sect2> - <title>ASCII Printing Protocol</title> - - <para>The ASCII protocol is the simplest protocol used, as well as the - oldest. ASCII is also used to represent text files internally in - the DOS, UNIX, and Windows operating systems. Therefore, data taken - from a text file or a directory listing generally requires little - preparation before being sent to the printer, other than a - newline-to-carriage return/linefeed conversion for UNIX. Printers - usually follow the DOS text file convention of the print head - requiring an explicit carriage return character followed by a - linefeed character at the end of a line of text. Since UNIX uses - only the linefeed character to terminate text, an additional - carriage return character must be added to the end of each line in - raw text print output; otherwise, text prints in a - <emphasis>stairstep</emphasis> output. (Some printers have hardware - or software switches to do the conversion.)</para> - </sect2> - - <sect2> - <title>PostScript Printing Protocol</title> - - <para>Adobe introduced the PostScript language in 1985; it is used to - enable the printout of high quality graphics and styled font text. - PostScript is now the de-facto print standard in the UNIX community, - and the only print standard in the Macintosh community. Numerous - UNIX utilities exist to <emphasis>beautify</emphasis> and enhance - text printing with PostScript. PostScript can be used to download - font files into a printer as well as the data to be printed. - PostScript commands can be sent to instruct the printer CPU to - image, rotate, and scale complex graphics and images, thus freeing - the host CPU. Scaling is particularly important with fonts since - the document with the font has been produced on a computer screen - with far lower resolution than the printer. For example, a 1024x768 - computer screen on a 17-inch monitor allows for a resolution of - approximately 82dpi, a modern desktop printer prints at a resolution - of 600dpi. Therefore, a font must be scaled at least seven times - larger for WYSIWYG output!</para> - - <para>PostScript printers generally come with a number of resident - fonts. For example, the NEC Silentwriter 95 contains Courier, - Helvetica, ITC Avant Garde Gothic Book, ITC Bookman Light, New - Century Schoolbook Roman, Palatino Roman, Times Roman, and several - symbol fonts. These are stored in Read Only Memory (ROM) in the - printer. When a page is printed from a Windows client that contains - a font not in the printer, a font substitution table is used. If no - substitute can be made, Courier is usually used. The user should be - conscious of this when creating documents - documents with fonts not - listed in the substitution table may cause other users problems when - printing. Avoid use of strange fonts for documents that will be - widely distributed.</para> - - <para>The user program can choose to download different fonts as - outline fonts to the PostScript printer if desired. Fonts that are - commonly used by the user are often downloaded to PostScript - printers that are connected directly to the user's computer, the - fonts are then available to successive print jobs until the printer - is turned off. When PostScript printers are networked, the clients - must download any fonts desired <emphasis>with each print - job</emphasis>. Since jobs come from different clients, the - clients cannot assume that downloaded fonts will still be in the - printer.</para> - - <para>PostScript print jobs also contain a header that is sent - describing the page layout, among other things. On a shared network - printer, this header must also be downloaded with each print job. - Although some PostScript drivers allow downloading of the header - only once, this usually requires a bi-directional serial connection - to the printer, instead of a unidirectional parallel - connection.</para> - - <para>PostScript print jobs can be sent either as binary data or as - ASCII. The main advantage of binary data transmission is that it is - faster. However, not all PostScript printers support it. Also, - fonts can generally not be downloaded in binary. When FreeBSD is - used as a printserver, ASCII PostScript printing should be selected - on the clients, this is generally the default with most PostScript - drivers.</para> - - <para>The Adobe company licenses PostScript interpreters as well as - resident fonts to printer manufacturers, and extracts a hefty - license fee from any printer manufacturer who wants to use them in - its printer. This presents both a benefit and a problem to the end - user. Although a single company holding control over a standard can - guarantee compliance, it does significantly raise the cost of the - printer. As a result, PostScript has not met with much success in - the lower-end laser and inkjet Windows printing market, despite the - fact that Adobe distributes PostScript software operating system - drivers for free.</para> - - <para>One issue that is a concern when networking PostScript printers - is the selection of banner page, (also known as header page, or - <emphasis>burst page)</emphasis> printing. UNIX shared printing - began with ASCII line printers, and since UNIX is a multiuser - system, often many different user print jobs piled up in the printer - output hopper. To separate these jobs the UNIX printing system - programs support banner page printing if the client program that - submits jobs asks for them. These pages print at the beginning or - end of every print job and contain the username, submittal date, and - so on.. By default, most clients, whether remote (e.g., a Windows - LPR client) or local (e.g., the <command>/usr/bin/lpr</command> - program) trigger a banner page to be printed. One problem is that - some PostScript printers abort the entire job if they get - unformatted ASCII text instead of PostScript. (In general, - PostScript printers compatible with Hewlett-Packard Printer Control - Language [HPPCL] handle banners without problems) Banner printing - should be disabled for any printers with this problem, unless - PostScript banner page printing is set up on the server.</para> - </sect2> - - <sect2> - <title>HPPCL Printing Protocol</title> - - <para>The Hewlett Packard company currently holds the largest market - share of desktop inkjet and office laser printers. Back when - Windows was released, HP decided to expand into the desktop laser - jet market with the first LaserJet series of printers. At the time - there was much pressure on Microsoft to use Adobe Type Manager for - scalable fonts within Windows, and to print PostScript to - higher-end printers. Microsoft decided against doing this and used - a technically inferior font standard, Truetype. They thought that - it would be unlikely that the user would download fonts to the - printer, since desktop Publishing was not being done on PC's at the - time. Instead users would rasterize the entire page to the printer - using whatever proprietary graphics printer codes the selected - printer needed. HP devised HPPCL for their LaserJets, and make - PostScript an add-on. The current revision of HPPCL now allows for - many of the same scaling and font download commands that PostScript - does. HP laser jet printers that support PostScript can be - distinguished by the letter "M" in their model number. (M is for - Macintosh, since Macintosh requires PostScript to print) For - example, the HP 6MP has PostScript, the 6P doesn't.</para> - - <para>HPPCL has almost no support in the UNIX applications market, and - it is very unlikely that any will appear soon. One big reason is - the development of the free <application>Ghostscript</application> - PostScript interpreter. <application>Ghostscript</application> can - take a PostScript input stream and print it on a PCL printer under - UNIX. Another reason is the UNIX community's dislike of reinventing - the wheel. HPPCL has no advantage over PostScript, and in many ways - there are fewer problems with PostScript. Considering that - PostScript can be added to a printer, either by hardware or use of - <application>Ghostscript</application>, what is the point of - exchanging an existing working solution for a slightly technically - inferior one? Over the life of the printer, taking into account the - costs of toner, paper, and maintenance, the initial higher cost of - PostScript support is infinitesimal.</para> - </sect2> - </sect1> - - <sect1 id="printserving-network"> - <title>Network Printing Basics</title> - - <para>The most common network printing implementation is a printserver - accepting print jobs from clients tied to the server via a network - cable.</para> - - <sect2> - <title>Printservers</title> - - <para>The term "printserver" is one of those networking terms, like - <emphasis>packet,</emphasis> that has been carelessly tossed around - until its meaning has become somewhat confusing and blurred. To be - specific, a printserver is simply a program that arbitrates print - data from multiple clients for a single printer. Printservers can - be implemented in one of the four methods described in the following - sections.</para> - - <sect3> - <title>Printserver on the fileserver</title> - - <para>The printer can be physically cabled to the PC running the - Network OS. Print jobs are submitted by clients to the - printserver software on the fileserver, which sends them down the - parallel or serial cable to the printer. The printer must be - physically close to the fileserver. This kind of printserving is - popular in smaller workgroup networks, in smaller offices.</para> - - <figure> - <title>Printserver on the fileserver</title> - - <mediaobject> - <imageobject> - <imagedata fileref="08-01" format="EPS"/> - </imageobject> - - <textobject> - <literallayout class="monospaced"> ,---------. - | ======= | Server - | ======= | +---------------------+ ,-----. -+-----------+ | +---------------+ | | | -| Printer [ ]------------[ ] | Printserver | | |_____| -+-----------+ Parallel | | Software | [ ]------_________ - Cable | +---------------+ | / ::::::: \ - +---------------------+ `---------' - Network PC</literallayout> - </textobject> - - <textobject> - <phrase>Printer, connected to a network server running - printserver software, with one or more network PCs printing - through it.</phrase> - </textobject> - </mediaobject> - </figure> - </sect3> - - <sect3> - <title>Printserver on a separate PC</title> - - <para>It is possible to run a print server program on a cheap PC - that is located next to the printer and plugged into it via - parallel cable. This program simply acts as a pass-through - program, taking network packets from the network interface and - passing them to the printer. This kind of server doesn't allow - any manipulation of print jobs, jobs usually come from a central - fileserver, where jobs are controlled.</para> - - <figure> - <title>Printserver on a separate PC</title> - - <mediaobject> - <imageobject> - <imagedata fileref="08-02" format="EPS"/> - </imageobject> - - <textobject> - <literallayout class="monospaced"> Fileserver - ,----------------. - ,---------. .---| | === | - | ======= | ,-----. | `----------======' - | ======= | | | | - +-----------+ |_____| | - | Printer [ ]------------_________---------| Ethernet - +-----------+ Parallel / ::::::: \ | - Cable `---------' | - Printserver | ,-----. - | | | - | |_____| - `---------_________ - / ::::::: \ - `---------' - Network PC</literallayout> - </textobject> - - <textobject> - <phrase>Printer connected to a printserver (typically running - FreeBSD), with network files hosted on a separate machine, - and a network PC, able to access both resources.</phrase> - </textobject> - </mediaobject> - </figure> - </sect3> - - <sect3> - <title>Printserver on a separate hardware box</title> - - <para>A printserver on a separate hardware box is exemplified by - network devices such as the Intel Netport, the HP JetDirect Ex, - the Osicom/DPI NETPrint, and the Lexmark MarkNet. Basically, these - are plastic boxes with an Ethernet connection on one side and a - parallel port on the other. Like a printserver on a PC, these - devices don't allow remote job manipulation, and merely pass - packets from the network down the parallel port to the - printer.</para> - - <figure> - <title>Printserver on a separate hardware box</title> - - <mediaobject> - <imageobject> - <imagedata fileref="08-03" format="EPS"/> - </imageobject> - - <textobject> - <literallayout class="monospaced"> Fileserver - ,----------------. - ,---------. .---| | === | - | ======= | | `----------======' - | ======= | Printserver | - +-----------+ ,--------. | - | Printer [ ]-----------[ ] ooo [ ]-------| Ethernet - +-----------+ Parallel `--------' | - Cable | - | ,-----. - | | | - | |_____| - `---------_________ - / ::::::: \ - `---------' - Network PC</literallayout> - </textobject> - - <textobject> - <phrase>Printer connected to a dedicated print server - <quote>appliance</quote>.</phrase> - </textobject> - </mediaobject> - </figure> - </sect3> - - <sect3> - <title>Printserver in the Printer</title> - - <para>The HP JetDirect Internal is the best known printserver of - this type. It is inserted into a slot in the printer case, and it - works identically to the external JetDirect units.</para> - - <figure> - <title>Printserver in the printer</title> - - <mediaobject> - <imageobject> - <imagedata fileref="08-04" format="EPS"/> - </imageobject> - - <textobject> - <literallayout class="monospaced"> Fileserver - ,----------------. - ,---------. .---| | === | - | ======= | | `----------======' - | ======= | | - +-----------+ | - | Printer [ ]------------------------------| Ethernet - +-----------+ | - | - | ,-----. - | | | - | |_____| - `---------_________ - / ::::::: \ - `---------' - Network PC</literallayout> - </textobject> - - <textobject> - <phrase>Printer with an embedded print server, connecting - directly to the local network.</phrase> - </textobject> - </mediaobject> - </figure> - </sect3> - </sect2> - - <sect2> - <title>Printspools</title> - - <para>Printspooling is an integral part of network printing. Since - the PC can spit out data much faster than the printer can accept it, - the data must be buffered in a spool at some location. In addition, - because many clients share printers, when clients send print jobs at - the same time, jobs must be placed on a queue so that one can be - printed after the other.</para> - - <sect3> - <title>Logical location of the print spool</title> - - <para>Printspooling can be implemented at one of three - locations</para> - - <orderedlist> - <listitem> - <para>The client. Clients can be required to spool their own - print jobs on their own disks. For example, when a Windows - client application generates a print job the job must be - placed on the local client's hard drive. Once the remote - print server is free to accept the job it signals the client - to start sending the job a bit at a time. Client spooling is - popular in peer-to-peer networks with no defined central - fileserver. However, it is impossible for a central - administrator to perform advanced print job management tasks - such as moving a particular print job ahead of another, or - deleting jobs.</para> - </listitem> - - <listitem> - <para>The printserver. If each printer on the network is - allocated their own combination print spooler-printserver, - jobs can stack at the printer. Many of the larger printers - with internal printservers have internal hard disks for this - purpose. Although this enables basic job management, it still - restricts the ability to move jobs from one printer to - another.</para> - </listitem> - - <listitem> - <para><emphasis>A central print spooler on a - fileserver</emphasis>. Print jobs are received from all - clients on the network in the spool and then dispatched to the - appropriate printer. This scheme is the best for locations - with several busy printers and many clients. Administration - is extremely simple because all print jobs are spooled on a - central server, which is particularly important in bigger - organizations. Many large organizations have standardized on - PostScript printing for all printing; in the event that a - particular printer fails and is offline, incoming PostScript - print jobs can be rerouted automatically to another printer. - Since all printers and clients are using PostScript, clients - don't need to be reconfigured when this happens. Print jobs - appear the same whether printed on a 4 page-per-minute NEC - Silentwriter 95, or a 24 page-per-minute HP LaserJet 5SiMX if - both printers are defined in the client as PostScript - printers.</para> - </listitem> - </orderedlist> - - <figure> - <title>Print spool locations</title> - - <mediaobject> - <imageobject> - <imagedata fileref="08-05" format="EPS"/> - </imageobject> - - <textobject> - <literallayout class="monospaced"> Client - ,---------. PC - | ======= | ,-----. - | ======= | | | - +-----------+ |_____| - | Printer [ ]---------------------------------------------------_________ - +-----------+ / ::::::: \ - `---------' - Spool - - Printserver - ,---------. PC - | ======= | ,-----. - | ======= | | | - +-----------+ ,----------------. |_____| - | Printer [ ]--------------| | === |-------------------_________ - +-----------+ `----------======' / ::::::: \ - Spool `---------' - - - Fileserver - ,---------. PC - | ======= | ,-----. - | ======= | Printserver Fileserver | | - +-----------+ ,----------------. ,----------------. |_____| - | Printer [ ]----| | === |-----| | === |------_________ - +-----------+ `----------======' `----------======' / ::::::: \ - Spool `---------'</literallayout> - </textobject> - - <textobject> - <phrase>Possible locations for the print spool</phrase> - </textobject> - </mediaobject> - </figure> - - <para>FreeBSD is an excellent platform to implement centralized - printserving and print spooling. The rest of this chapter - concentrates on the centralized print spooler model. Note that - PostScript printing is not a requirement for this model--the HPPCL - protocol can be the standard print protocol as well. For - transparent printing between printers with HPPCL, however, the - printer models must be similar.</para> - </sect3> - - <sect3> - <title>Physical location of the print spool</title> - - <para>In some companies, the central fileserver is often placed in a - closet, locked away. Printers, on the other hand, are best - located in high traffic areas for ease of use. Network printing - works best when the printers are evenly distributed throughout the - organization. Attempting to place all the major printers in one - location, as technically advantageous as it may seem, merely - provokes users to requisition smaller printers that are more - convenient for that quick print job. The administrator may end up - with a datacenter full of nice, expensive printers that are never - used, while the smaller personal laser printers scattered - throughout the plant bear most of the printing load.</para> - - <para>The big problem with this is that scattering printers through - the organization makes it difficult to utilize the 3 possible - parallel ports on the fileserver due to parallel port distance - limitations. Although high-speed serial ports may extend the - distance, not many printers have good serial ports on them. This - is where the hardware network print server devices can come into - play. I prefer using these devices because they are much cheaper - and more reliable than a standalone PC running printserver - software. For example, Castelle - <ulink url="http://www.castelle.com/"></ulink> - sells the LANpress 1P/10BT printserver for about $170.00. Using - these devices a FreeBSD UNIX server can have dozens of print spools - accepting print jobs and then route them back out over the network - to these remote printserver boxes. If these hardware servers are - used, they must support the Line Printer Daemon (LPD) print - protocol.</para> - - <para>With a scheme like this it is important to have enough disk - space on the spool to handle the print jobs. A single large - PowerPoint presentation PostScript print job containing many - graphics may be over 100MB. When many such jobs stack up in the - print spool waiting to print, the print spooler should have - several gigabytes of free disk space available.</para> - </sect3> - - <sect3> - <title>Network Printing to Remote Spools</title> - - <para>Although several proprietary network printing protocols such - as Banyan Vines and NetWare, are tied to proprietary network protocols, - FreeBSD UNIX can use two TCP/IP network printing protocols to - print to remote print spools. The two print protocols available - on TCP/IP with FreeBSD are the open LPD protocol and the - NetBIOS-over-TCP/IP Server Messaging Block (SMB) print protocol - first defined by Intel and Microsoft and later used by IBM and - Microsoft.</para> - - <para>The LPD protocol is defined in RFC1179. This network protocol - is the standard print protocol used on all UNIX systems. LPD - client implementations exist for all Windows operating systems and - DOS. Microsoft has written LPD for the Windows NT versions, the - other Windows operating system implementations are provided by - third parties.</para> - - <para>The Microsoft Networking network protocol that runs on top of - SMB can use NetBIOS over TCP/IP as defined in RFC1001 and RFC1002. - This protocol has a specification for printing that is the same - print protocol used to send print jobs to NT Server by Microsoft - clients. To implement this protocol on FreeBSD requires the - installation of the Samba client suite of programs discussed in - Chapter 7.</para> - </sect3> - </sect2> - </sect1> - - <sect1 id="printserving-lpr-windows"> - <title>Setting up LPR on Windows clients</title> - - <para>The program clients use to print via LPD is the Line Printer - Remote, or LPR program. The following instructions cover enabling - this program on Windows clients.</para> - - <sect2> - <title>Windows 3.1/Windows for Workgroups 3.11</title> - - <para>Several commercial TCP/IP stacks are available for Win31, that - provide LPR client programs, in addition to the basic TCP/IP - protocol to Win31. WfW has TCP/IP networking available for free - from Microsoft, but it doesn't include an LPR client. Unfortunately, - I have not come across a freeware implementation of a 16-bit Windows - LPR client, so with the following instructions I use the Shareware - program WLPRSPL available from - <ulink url="http://www.winsite.com/info/pc/win3/winsock/wlprs41.zip"></ulink>. - This program must be active during client printing, and is usually - placed in the Startup group.</para> - - <para>Organizations that want to use UNIX as a printserver to a group - of Win31 clients without using a commercial or shareware LPR program - have another option. The Microsoft Networking client for DOS used - underneath Win31 contains SMB-based printing which is covered later - in the chapter. DOS networking client setup and use are covered in - Chapter 2 and Chapter 7.</para> - - <para>If LPR-based client printing is desired and the organization - doesn't want to upgrade to Win95, (which has several LPR clients - available) the following instructions can be used. WLPRSPL needs a - Winsock under Windows 3.1, so for the example I explain the setup of - the Novell 16-bit TCP/IP client. The stack can be FTPed from - Novell, and is easy to integrate into sites that already use the - 16-bit NetWare networking client, usually NW 3.11 and 3.12. In most - cases, however, sites that use NetWare + Win31 are probably best off - printing through the NetWare server, then loading an LPR spooler as - an Netware Loadable Module (NLM) to send the job over to - FreeBSD.</para> - - <para>As an alternate, the Microsoft Networking DOS 16-bit TCP/IP - client under Win31 contains a Winsock, as does Microsoft TCP/IP for - WfW. The target machine used here is a Compaq Deskpro 386/33 with - 12MB of ram with an operating version of Windows 3.1, and a 3com - 3C579 EISA network card. The instructions assume an LPR printserver - on the network, named <hostid>mainprinter.my.domain.com</hostid> - with a print queue named RAW.</para> - - <para>Use the installation instructions in Exhibit 8.1 for a quick and - dirty TCP/IP Winsock for Win31 systems. Administrators who already - have the Novell IPX client installed should skip those steps.</para> - </sect2> - - <sect2> - <title>Installation of the Novell TCP/IP Winsock client</title> - - <procedure> - <step> - <para>Make sure that the machine has enough environment space - (2048 bytes or more) by adding the following line to the - <filename>config.sys</filename> file and rebooting:</para> - - <programlisting>SHELL=C:\COMMAND.COM /E:2048 /P</programlisting> - </step> - - <step> - <para>Obtain the <filename>TCP16.EXE</filen |