932 lines
34 KiB
XML
932 lines
34 KiB
XML
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
|
|
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN"
|
|
"../../../share/sgml/freebsd42.dtd" [
|
|
<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//DE" "../../share/sgml/entities.ent">
|
|
%entities;
|
|
<!ENTITY % not.published "IGNORE">
|
|
]>
|
|
|
|
<!-- The FreeBSD Documentation Project
|
|
The FreeBSD German Documentation Project
|
|
|
|
$FreeBSD$
|
|
$FreeBSDde: de-docproj/articles/contributing-ports/article.sgml,v 1.11 2011/12/24 14:32:22 bcr Exp $
|
|
basiert auf: 1.9
|
|
-->
|
|
|
|
<article lang="de">
|
|
<articleinfo>
|
|
<title>Zur FreeBSD Ports-Sammlung beitragen</title>
|
|
|
|
<abstract>
|
|
<para>Dieser Artikel beschreibt, wie man zur FreeBSD Ports-Sammlung
|
|
beitragen kann.</para>
|
|
|
|
<para><emphasis>Übersetzt von Martin Wilke</emphasis>.</para>
|
|
</abstract>
|
|
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Sam</firstname>
|
|
<surname>Lawrance</surname>
|
|
</author>
|
|
<author>
|
|
<firstname>Mark</firstname>
|
|
<surname>Linimon</surname>
|
|
</author>
|
|
</authorgroup>
|
|
|
|
<legalnotice id="trademarks" role="trademarks">
|
|
&tm-attrib.freebsd;
|
|
&tm-attrib.general;
|
|
</legalnotice>
|
|
|
|
<pubdate>$FreeBSD$</pubdate>
|
|
|
|
<releaseinfo>$FreeBSD$</releaseinfo>
|
|
</articleinfo>
|
|
|
|
<indexterm><primary>Ports, beitragen</primary></indexterm>
|
|
|
|
<sect1>
|
|
<title>Einleitung</title>
|
|
|
|
<para>Die Ports-Sammlung ist ständig in Bearbeitung. Wir
|
|
wollen unseren Benutzern eine einfach zu verwendende,
|
|
aktuelle und qualitativ hochwertige Quelle für Software
|
|
von Drittanbietern bereitstellen. Deshalb suchen wir immer
|
|
Personen, die etwas von ihrer Zeit aufwenden können,
|
|
um uns dabei zu helfen.</para>
|
|
|
|
<para>An der Ports-Sammlung zu arbeiten
|
|
ist ein hervorragender Weg, um zu helfen und dem Projekt
|
|
etwas zurück zu geben. Egal, ob Sie eine dauerhafte
|
|
Funktion oder eine kleine Aufgabe für einen
|
|
regnerischen Tag suchen - wir würden uns über
|
|
Ihre Hilfe freuen!</para>
|
|
|
|
<para>Als Freiwillige/r setzen Sie sich selbst Grenzen.
|
|
Sie sollten sich aber immer bewusst sein, dass andere
|
|
Mitglieder der &os; Community möglicherweise auch
|
|
etwas von Ihnen erwarten. Sie sollten dies auf jeden
|
|
Fall in Ihre Entscheidung mit einbeziehen.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="what-contribute">
|
|
<title>Was Sie tun können, um uns zu helfen</title>
|
|
|
|
<para>Um die Ports-Sammlung aktuell und in einem sauberen Zustand
|
|
zu halten, sind viele Dinge zu erledigen:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Finden Sie eine begehrte oder nützliche
|
|
Software und <link
|
|
linkend="create-port">erstellen Sie einen Port</link>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Es gibt eine große Anzahl von Ports, die keinen
|
|
Maintainer haben. Werden Sie Maintainer und <link
|
|
linkend="adopt-port">betreuen Sie einen Port</link>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Wenn Sie einen Port erstellt haben oder betreuen,
|
|
vergessen Sie nicht, <link
|
|
linkend="maintain-port">welche Aufgaben ein Maintainer
|
|
hat</link>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Wenn Sie nur eine kleine Aufgabe suchen,
|
|
könnten Sie beispielsweise <link
|
|
linkend="fix-broken">einen Bug oder defekten
|
|
Port fixen</link>.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect1>
|
|
|
|
<sect1 id="create-port">
|
|
<title>Erstellen Sie einen neuen Port</title>
|
|
|
|
<para>Es gibt ein eigenes Handbuch, das beim Erstellen
|
|
(und Aktualisieren) von Ports hilft. Es heißt <ulink
|
|
url="&url.books.porters-handbook;">Porter-Handbuch</ulink>.
|
|
Das Porter-Handbuch ist die beste Referenz, um mit
|
|
dem Ports-System zu arbeiten. Es enthält Details
|
|
darüber, wie das Ports-System funktioniert und wie
|
|
man mit/an den Ports arbeitet.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="adopt-port">
|
|
<title>Übernahme eines nicht betreuten Ports</title>
|
|
|
|
<sect2>
|
|
<title>Einen nicht betreuten Port aussuchen</title>
|
|
|
|
<para>Die Betreuung eines Ports ist ein guter Weg zu helfen.
|
|
Nicht betreute Ports bleiben nur aktuell und stabil, wenn ein
|
|
Freiwilliger dafür sorgt. Es gibt eine grosse Anzahl
|
|
nicht betreuter Ports, daher ist es eine gute Idee für
|
|
den Einstieg, einen verwaisten Port zu übernehmen, den
|
|
Sie auch regelmässig selbst verwenden.</para>
|
|
|
|
<para>Nicht betreute Ports haben als <makevar>MAINTAINER</makevar>
|
|
den Wert <literal>ports@FreeBSD.org</literal>. Eine Liste
|
|
der derzeit nicht betreuten Ports sowie Informationen zu deren
|
|
aktuellen Fehlern und Problemen können Sie unter <ulink
|
|
url="http://portsmon.FreeBSD.org/portsconcordanceformaintainer.py?maintainer=ports%40FreeBSD.org">
|
|
&os; Ports Monitoring System</ulink> einsehen.</para>
|
|
|
|
<para>Einige Ports beeinflussen durch Abhängigkeiten
|
|
und <quote>Slave-Port-Beziehungen</quote> eine grosse
|
|
Anzahl anderer Ports. Generell ist es ratsam, dass
|
|
Maintainer über ein Mindestmaß an Erfahrung
|
|
verfügen, bevor Sie derartige Ports betreuen.</para>
|
|
|
|
<para>Um herauszufinden, ob ein Port Abhängigkeiten
|
|
oder Slave-Ports hat, können Sie im
|
|
<quote>Master-Port-Index</quote>
|
|
<filename>/usr/ports/INDEX</filename> nachsehen. (Der Name der
|
|
Datei kann bei den einzelnen Releases von FreeBSD variieren,
|
|
z.B. <filename>INDEX-8</filename>). Einige Ports haben
|
|
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>
|
|
|
|
<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>.
|
|
<emphasis>Übernehmen Sie nicht mehr Aufgaben, als Sie
|
|
bewältigen können</emphasis>.</para>
|
|
|
|
<para>Sie können einen nicht reservierten Port jederzeit
|
|
übernehmen, die Entscheidung liegt bei Ihnen. Wenn
|
|
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,
|
|
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
|
|
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>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="maintain-port">
|
|
<title>Die Herausforderung als Ports-Maintainer</title>
|
|
|
|
<para> Dieser Abschnitt erklärt, warum Ports betreut werden
|
|
müssen, und beschreibt die Pflichten eines
|
|
Ports-Maintainers.</para>
|
|
|
|
<sect2 id="why-maintenance">
|
|
<title>Warum müssen Ports betreut werden?</title>
|
|
|
|
<para>Einen Port zu erstellen ist eine einmalige Sache.
|
|
Sicherzustellen, dass ein Port aktuell ist und auch in Zukunft
|
|
funktioniert, erfordert hingegen eine laufende Betreuung
|
|
und einen nicht zu unterschätzenden Arbeitsaufwand.
|
|
Maintainer sind Personen, die einen Teil ihrer Zeit dazu
|
|
verwenden, einen Port für andere FreeBSD-Anwender aktuell
|
|
und einfach installierbar zu halten.</para>
|
|
|
|
<para>Der wichtigste Grund für die Betreuung von Ports
|
|
ist der Wunsch, der &os;-Community die neueste und beste
|
|
Drittanbieter-Software zur Verfügung zu stellen. Eine
|
|
zusätzliche Herausforderung ist die Aufrechterhaltung
|
|
der Funktionalität einzelner Ports innerhalb der
|
|
sich verändernden Ports-Sammlung.</para>
|
|
|
|
<para>Als Ports-Maintainer werden Sie folgende
|
|
Herausforderungen meistern:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<formalpara>
|
|
<title>Neue Software-Versionen und Aktualisierungen</title>
|
|
|
|
<para>Neue Versionen und Aktualisierung von bereits
|
|
portierter Software werden kontinuierlich
|
|
veröffentlicht und müssen in die Ports-Sammlung
|
|
integriert werden, um aktuelle Software ausliefern zu
|
|
können.</para>
|
|
</formalpara>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<formalpara>
|
|
<title>Änderungen an Abhängigkeiten ihres
|
|
Ports</title>
|
|
|
|
<para>Wenn bedeutende Änderungen an den
|
|
Abhängigkeiten Ihres Ports gemacht wurden,
|
|
kann es vonnöten sein, diesen zu aktualisieren,
|
|
damit er weiterhin korrekt funktioniert.</para>
|
|
</formalpara>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<formalpara>
|
|
<title>Änderungen an abhängigen Ports</title>
|
|
|
|
<para>Wenn andere Ports von einem Ihrer betreuten
|
|
Ports abhängig sind, müssen Änderungen
|
|
eventuell mit anderen Maintainern abgesprochen
|
|
werden.</para>
|
|
</formalpara>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<formalpara>
|
|
<title>Zusammenwirken von anderen Benutzern,
|
|
Maintainern und Entwicklern</title>
|
|
|
|
<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
|
|
Fragen zu Ihren Ports zu kümmern.</para>
|
|
</formalpara>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<formalpara>
|
|
<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>
|
|
</formalpara>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<formalpara>
|
|
<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
|
|
sind und aktualisiert werden müssen.</para>
|
|
</formalpara>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<formalpara>
|
|
<title>Änderungen am Basissystem</title>
|
|
|
|
<para>&os; ist in ständiger Entwicklung.
|
|
Änderungen an Software, Bibliotheken, dem Kernel
|
|
oder sogar Lizenzänderungen können
|
|
Änderungsbedarf an den Ports auslösen.</para>
|
|
</formalpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Aufgaben eines Maintainers</title>
|
|
|
|
<sect3>
|
|
<title>Halten Sie Ihre Ports aktuell</title>
|
|
|
|
<para>Dieser Abschnitt bietet einen kurzen Überblick zu
|
|
diesem Thema. Ausführliche Informationen zur
|
|
Aktualisierung von Ports finden Sie im <ulink
|
|
url="&url.books.porters-handbook;">Porter-Handbuch</ulink>.</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<title>Achten Sie auf Aktualisierungen</title>
|
|
|
|
<para>Überwachen Sie Ihr Programm auf neue Versionen
|
|
der Software, Aktualisierungen und Security-Fixes.
|
|
Ankündigungen in Mailinglisten oder auf
|
|
Nachrichtenseiten im Internet sind dabei sehr
|
|
hilfreich. Manchmal werden Sie von Benutzern gefragt
|
|
werden, wann Ihr Port eine Aktualisierung bekommt.
|
|
Wenn Sie mit anderen Dingen beschäftigt sind oder aus
|
|
sonstigen Gründen keine Aktualisierung
|
|
bereitstellen können, fragen Sie den Benutzer
|
|
doch einfach, ob er Ihnen bei der Aktualisierung
|
|
helfen möchte.</para>
|
|
|
|
<para>Es kann auch vorkommen, dass Sie eine automatisch
|
|
generierte E-Mail vom
|
|
<literal>&os; Ports Version Check</literal>
|
|
bekommen, die Sie darüber informiert, dass eine
|
|
aktuellere Version des Distfiles Ihres Ports
|
|
verfügbar ist. Weitere Informationen über
|
|
dieses System (inklusive einer Erklärung, wie Sie
|
|
derartige E-Mails in Zukunft vermeiden können) finden
|
|
Sie ebenfalls in einer solchen Nachricht.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<title>Aufnehmen von Änderungen</title>
|
|
|
|
<para>Wenn verfügbar, integrieren Sie die
|
|
Veränderungen in den Port. Sie müssen in der
|
|
Lage sein, einen Patch zwischen dem alten und dem neuen
|
|
Port zu generieren.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<title>Nachprüfung und Test</title>
|
|
|
|
<para>Überprüfen und testen Sie
|
|
ihre Änderungen gründlich:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Kompilieren, installieren und testen Sie
|
|
ihren Port auf so vielen Plattformen und
|
|
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>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Stellen Sie sicher, dass die
|
|
Abhängigkeiten ihres Ports vollständig
|
|
sind. Die empfohlene Vorgehensweise dafür
|
|
ist, dass Sie ihre eigenen Ports in einer
|
|
<application>Tinderbox</application> kompilieren.
|
|
Weitere Informationen zu diesem Thema finden Sie im
|
|
Abschnitt <link linkend="resources">Ressourcen</link>
|
|
dieses Artikels.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Stellen Sie sicher, dass die Liste der zu
|
|
installierenden Dateien und Verzeichnisse aktuell
|
|
ist.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Überprüfen Sie ihren Port mit
|
|
&man.portlint.1;. Sehen Sie sich dazu den Abschnitt
|
|
<link linkend="resources">Ressourcen</link> an.
|
|
Dieser enthält wichtige Informationen zum
|
|
Einsatz von <application>portlint</application>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Achten Sie darauf, dass Änderungen an Ihrem
|
|
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>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</step>
|
|
|
|
<step>
|
|
<title>Änderungen einreichen</title>
|
|
|
|
<para>Reichen Sie ihre Aktualisierungen mit einem PR ein,
|
|
welcher die Änderungen erklärt und einen Patch
|
|
enthält, der die Änderungen zwischen dem
|
|
Original und Ihrer aktualisierten Version umfasst.
|
|
Lesen Sie bitte zuerst den Artikel <ulink
|
|
url="&url.articles.problem-reports.en;">Writing FreeBSD
|
|
Problem Reports</ulink>, der das korrekte Einreichen
|
|
von Problemberichten beschreibt.</para>
|
|
|
|
<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,
|
|
welche Änderungen vorgenommen wurden. Das
|
|
Porter-Handbuch enthält viele nützliche
|
|
Informationen zum <ulink
|
|
url="&url.books.porters-handbook;/port-upgrading.html">Upgrading</ulink>
|
|
eines Ports.</para>
|
|
</note>
|
|
</step>
|
|
|
|
<step>
|
|
<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>
|
|
</step>
|
|
|
|
<step>
|
|
<title>Feedback geben</title>
|
|
|
|
<para>Wenn ein Committer Probleme in Ihren Änderungen
|
|
entdeckt, wird er Sie darüber informieren. Eine
|
|
schnelle Reaktion Ihrerseits ist hilfreich, um Ihren PR
|
|
rasch bearbeiten zu können. Außerdem hilft
|
|
es Ihnen, den Faden nicht zu verlieren, wenn Sie
|
|
versuchen, aufgetretene Probleme zu lösen.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<title>Und zuletzt...</title>
|
|
|
|
<para>Ihre Änderungen werden übermittelt und im
|
|
Anschluss daran wird Ihr Port aktualisiert. Der
|
|
betreffende PR wird danach vom Committer geschlossen.
|
|
Herzlichen Glückwunsch, Sie haben es geschafft!</para>
|
|
</step>
|
|
</procedure>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<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
|
|
erfolgreich zu durchlaufen.</para>
|
|
|
|
<para>&os; garantiert nur für die
|
|
<literal>-STABLE</literal>-Zweige, dass die
|
|
Ports-Sammlung korrekt funktioniert. Sie sollten
|
|
<literal>7-STABLE</literal> oder
|
|
<literal>8-STABLE</literal> benutzen, wobei der letztere
|
|
Zweig bevorzugt wird. Theoretisch sollte es ausreichen, das
|
|
aktuelle <quote>Stable Release</quote> des jeweiligen
|
|
<literal>STABLE</literal>-Zweigs einzusetzen (da die ABIs
|
|
in der Regel nicht geändert werden), es empfiehlt sich
|
|
aber, dem jeweiligen STABLE-Zweig zu folgen.</para>
|
|
|
|
<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>
|
|
|
|
<note>
|
|
<para>Häufige Fehler beim Umgang mit
|
|
nicht-<literal>i386</literal> Maschinen entstehen,
|
|
weil Programmierer ür Instanzen und Pointer
|
|
<literal>int</literal>s verwendeten, oder weil der
|
|
relativ simple <application>gcc</application>-Compiler
|
|
genutzt wird. Immer mehr Programmautoren
|
|
überarbeiten ihren Code, um diese Fehler zu
|
|
beseitigen — wenn der Programmautor seinen Code
|
|
allerdings nicht aktiv betreut, müssen Sie dies
|
|
eventuell selbst in die Hand nehmen.</para>
|
|
</note>
|
|
|
|
<para>Sie sollten die folgende Liste durchgehen, um
|
|
sicherzustellen, dass Ihr Port gebaut werden kann:</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<title>Achten Sie auf Build-Fehler</title>
|
|
|
|
<para>Überprüfen Sie regelmäßig den Ports
|
|
Building Cluster <ulink
|
|
url="http://pointyhat.FreeBSD.org">pointyhat</ulink>
|
|
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>
|
|
dieses Artikels für weitere Informationen zu diesen
|
|
Systemen). Fehlerberichte kommen eventuell auch
|
|
von anderen Benutzern oder als automatisierte Meldungen
|
|
per E-Mail.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<title>Sammeln Sie Informationen</title>
|
|
|
|
<para>Wenn Sie ein Problem entdecken, benötigen Sie
|
|
als Erstes Informationen, die Ihnen dabei helfen, dieses
|
|
Problem zu beheben. Build-Fehler, die von
|
|
<literal>pointyhat</literal> gemeinsam mit Logdateien
|
|
verschickt werden, zeigen Ihnen, an welcher Stelle
|
|
der Fehler auftritt. Wenn Ihnen ein Fehler von
|
|
einem anderen Benutzer mitgeteilt wird, fragen
|
|
Sie nach, ob er bereit ist, ihnen Informationen
|
|
zukommen zu lassen, die eventuell bei der Diagnose
|
|
des Problems helfen können, wie z.B.:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Build-Logs.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Die Werkzeuge und Optionen, mit denen ein Port
|
|
gebaut wurde (inklusive der Optionen in
|
|
<filename>/etc/make.conf</filename>).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Eine Liste installierter Pakete auf dem
|
|
System kann mit &man.pkg.info.1; erstellt
|
|
werden.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Die &os;-Version, welche benutzt wird, kann
|
|
mit &man.uname.1;<command> -a</command>
|
|
ermittelt werden.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Wann die Ports-Sammlung das letzte Mal
|
|
aktualisiert wurde.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Wann die <filename>INDEX</filename>-Datei
|
|
zuletzt aktualisiert wurde.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</step>
|
|
|
|
<step>
|
|
<title>Suchen und finden Sie eine Lösung</title>
|
|
|
|
<para>Leider gibt es keinen allgemein gültigen
|
|
Weg, dies zu tun. Denken Sie daran: Wenn Probleme
|
|
auftauchen bitten Sie einfach jemanden um Hilfe!
|
|
Ein guter Anfang ist die Mailingliste &a.ports;.
|
|
Auch die Entwickler der Software selbst sind oft sehr
|
|
hilfreich.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<title>Änderungen übermitteln</title>
|
|
|
|
<para>Genau wie beim Aktualisieren eines Ports
|
|
sollten Änderungen integriert, geprüft
|
|
und getestet werden. Reichen Sie Ihre Arbeit als
|
|
PR ein und geben Sie Feedback, falls dies notwendig
|
|
ist.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<title>Patches an Programmautoren senden</title>
|
|
|
|
<para>Manchmal müssen Sie Patches erstellen, um
|
|
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
|
|
Höflichkeit.</para>
|
|
</step>
|
|
</procedure>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Ermitteln Sie Bug-Reports und PRs, die Ihre Ports
|
|
betreffen</title>
|
|
|
|
<para>&os;-spezifische Bugs werden meistens durch falsche
|
|
Annahmen über Build- und Laufzeitumgebungen, die
|
|
nicht zu &os; passen, verursacht. Derartige Probleme zu
|
|
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>
|
|
|
|
<procedure>
|
|
<step>
|
|
<title>Antworten Sie auf Bug-Reports</title>
|
|
|
|
<para>Bugs können Ihnen als E-Mail durch die <ulink
|
|
url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">
|
|
GNATS Problem Report database</ulink> zugestellt
|
|
werden, Sie können Ihnen aber auch direkt von
|
|
Benutzern gemeldet werden.</para>
|
|
|
|
<para>Sie sollten innerhalb von 14 Tagen auf PRs und andere
|
|
Berichte antworten. Versuchen Sie schnellstmöglich
|
|
zu antworten, selbst wenn Sie nur mitteilen können,
|
|
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>
|
|
</step>
|
|
|
|
<step>
|
|
<title>Sammeln Sie Informationen</title>
|
|
|
|
<para>Wenn mit dem Bug-Report nicht auch gleichzeitig eine
|
|
Lösung übermittelt wird, müssen Sie zuerst
|
|
die zum Beheben des Problems nötigen Informationen
|
|
sammeln.</para>
|
|
|
|
<para>Wenn der Fehler reproduzierbar ist, können Sie
|
|
die meisten Informationen selbst sammeln. Wenn nicht,
|
|
bitten Sie die Person, die den Fehler gefunden hat,
|
|
diese Informationen für Sie zu sammeln:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Eine genaue Beschreibung dessen, was Er/Sie getan
|
|
hat, den erwarteten Programmverlauf und den
|
|
tatsächlichen Ablauf.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Eine Kopie der Eingabedaten, die den Fehler
|
|
auslösen.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Informationen über das System, auf dem der
|
|
Port gebaut und ausgeführt wird, etwa die Liste
|
|
der installierten Pakete sowie die Ausgabe von
|
|
&man.env.1;.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Core dumps.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Stack traces.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</step>
|
|
|
|
<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
|
|
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
|
|
trotzdem tun und den Entwicklern Ihren Patch zukommen
|
|
lassen.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<title>Lösungen finden</title>
|
|
|
|
<para>Bei Build-Fehlern werden Sie eine Lösung finden
|
|
müssen. Denken Sie daran zu fragen, wenn Sie nicht
|
|
weiterkommen!</para>
|
|
</step>
|
|
|
|
<step>
|
|
<title>Änderungen einreichen oder annehmen</title>
|
|
|
|
<para>Genau so wie bei der Aktualisierung eines Ports
|
|
sollten Sie alle Änderungen zuvor analysieren und
|
|
testen, um Sie danach als neuen PR (oder als
|
|
Folgebericht (<foreignphrase>follow-up</foreignphrase>),
|
|
falls ein PR zu diesem Problem bereits existiert)
|
|
einzureichen. Falls ein anderer Anwender Änderungen
|
|
für einen PR eingereicht hat, können Sie einen
|
|
Folgebericht erstellen, mit dem Sie die vorgeschlagenen
|
|
Änderungen akzeptieren oder (mit einer
|
|
Begründung) ablehnen.</para>
|
|
</step>
|
|
</procedure>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Support leisten</title>
|
|
|
|
<para>Teilaufgabe eines Maintainers ist es, Support zu leisten
|
|
— nicht den Hauptsupport für die Software —
|
|
aber für seine Ports und &os;-spezifische Schlampereien
|
|
und Probleme. Benutzer kontaktieren Sie vielleicht wegen
|
|
Fragen, Anregungen, Problemen und Patches. Die meiste Zeit
|
|
werden sich derartige Mitteilungen spezifisch auf &os;
|
|
beziehen.</para>
|
|
|
|
<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>
|
|
|
|
<para>Wenn Sie Glück haben, werden Benutzer und Entwickler
|
|
gelegentlich daran denken, dass Sie eine sehr
|
|
beschäftigte Person sind, deren Zeit nicht
|
|
unerschöpflich, sondern kostbar ist, und werden vielleicht
|
|
ein Teil Ihrer Arbeit für Sie übernehmen.
|
|
Beispielsweise könnten sie:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Einen PR einreichen oder Ihnen Patches schicken.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Einen vorhandenen PR untersuchen und eventuell einen
|
|
Patch dazu erstellen.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Ihnen Änderungen für Ihre Ports zusenden.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>In diesem Fall ist ihre Hauptaufgabe zeitnahes
|
|
Antworten. Der Timeout für nicht ansprechbare Maintainer
|
|
beträgt auch hier wieder 14 Tage. Nach dieser Periode
|
|
können Änderungen ohne ihre Prüfung eingereicht
|
|
werden. Diese Personen haben sich die Arbeit gemacht, etwas
|
|
für Sie zu übernehmen, versuchen Sie daher, möglichst
|
|
rasch zu antworten. Danach überprüfen, akzeptieren,
|
|
verändern oder diskutieren Sie diese Änderungen mit
|
|
den betroffenen Personen so schnell wie möglich.</para>
|
|
|
|
<para>Wenn Sie vermitteln können, dass Sie deren Arbeit
|
|
zu schätzen wissen (und das sollten Sie), dann werden Sie
|
|
eine bessere Chance haben, dass diese Personen ihnen auch in
|
|
Zukunft etwas Arbeit abnehmen. <!-- smiley -->:-)</para>
|
|
</sect3>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="fix-broken">
|
|
<title>Defekte Ports finden und reparieren</title>
|
|
|
|
<para>Es gibt zwei wirklich gute Anlaufstellen, um Ports
|
|
zu finden, die ihre Aufmerksamkeit benötigen.</para>
|
|
|
|
<para>Sie können das <ulink
|
|
url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">Web
|
|
Interface der Problem Reports-Datenbank</ulink> nutzen, um nach
|
|
ungelösten Problemen zu suchen. Die Mehrheit der PRs, die
|
|
zu Ports eingereicht werden, betreffen Aktualisierungsprobleme,
|
|
aber mit ein bißchen Recherche in den Übersichten
|
|
und Zusammenfassungen sollten Sie das eine oder andere
|
|
Interessante finden. (Die Kategorie <literal>sw-bug</literal>
|
|
ist ein guter Platz, um mit der Arbeit zu beginnen).</para>
|
|
|
|
<para>Die zweite Anlaufstelle ist das <ulink
|
|
url="http://portsmon.FreeBSD.org/">&os; Ports Monitoring
|
|
System</ulink>. Hier können Sie nicht betreute Ports mit
|
|
Build-Fehlern und Ports, die als <makevar>BROKEN</makevar>
|
|
gekennzeichnet sind, finden. Natürlich ist es auch in
|
|
Ordnung, Änderungen an betreuten Ports zu machen. Denken
|
|
Sie aber bitte daran, den Maintainer zuvor davon zu
|
|
informieren, da dieser möglicherweise bereits an diesem
|
|
Problem arbeitet.</para>
|
|
|
|
<para>Sobald Sie einen Fehler oder ein Problem gefunden haben,
|
|
sammeln Sie dazu Informationen und versuchen Sie, den Fehler
|
|
zu analysieren und zu beheben! Wenn sich bereits ein PR mit
|
|
diesem Problem befasst, knüpfen Sie dort an. Ansonsten
|
|
reichen Sie einen neuen PR ein. Die von Ihnen vorgeschlagenen
|
|
Änderungen werden danach geprüft. Sind diese in
|
|
Ordnung, werden Sie danach committed.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="mortal-coil">
|
|
<title>Sagen Sie Bescheid, wenn Sie einen Port nicht mehr
|
|
betreuen möchten</title>
|
|
|
|
<para>So wie Ihre Interessen sich ändern, haben Sie
|
|
vielleicht irgendwann auch nicht mehr die Zeit, weiterhin
|
|
einige (oder alle) Ihrer Ports zu betreuen. Das ist
|
|
verständlich. Bitte lassen Sie es uns wissen, wenn Sie
|
|
keine Zeit oder kein Interesse mehr daran haben, Maintainer zu
|
|
sein oder einen Port selbst nicht mehr benutzen und deshalb
|
|
gerne abgeben wollen. Nur auf diese Art und Weise können
|
|
wir vorankommen und anderen anbieten, an diesen Ports zu
|
|
arbeiten, ohne dass diese auf Ihre Antworten warten müssen.
|
|
Denken Sie daran: &os; ist ein Freiwilligen-Projekt. Wenn Ihnen
|
|
eine Aufgabe keinen Spaß mehr macht, ist es wahrscheinlich
|
|
an der Zeit, jemand anderen an Ihre Ports zu lassen.</para>
|
|
|
|
<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>
|
|
</sect1>
|
|
|
|
<sect1 id="resources">
|
|
<title>Ressourcen für Ports-Maintainer und Committer</title>
|
|
|
|
<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>
|
|
|
|
<para>Der Artikel <ulink
|
|
url="&url.articles.problem-reports.en;">Writing FreeBSD Problem
|
|
Reports</ulink> beschreibt, wie PRs formuliert und eingereicht
|
|
werden sollen. Allein im Jahr 2005 wurden mehr als 11.000 PRs
|
|
zu verschiedenen Ports eingereicht! Wenn Sie die Anweisungen
|
|
dieses Artikels befolgen, werden wir weniger Zeit benötigen,
|
|
um Ihre PRs zu bearbeiten.</para>
|
|
|
|
<para>Die <ulink
|
|
url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">
|
|
Problem Report Database</ulink>.</para>
|
|
|
|
<para><ulink url="http://pointyhat.FreeBSD.org/">Pointyhat</ulink>
|
|
ist der Ports Build Cluster. Sie können Pointyhat nutzen,
|
|
um nach Port-Buildlogs über alle Architekturen und
|
|
Haupt-Releases zu suchen.</para>
|
|
|
|
<para>Das <ulink
|
|
url="http://portsmon.FreeBSD.org/">FreeBSD Ports Monitoring
|
|
System </ulink> kann verschiedene Informationen über Ports
|
|
enthalten, beispielsweise Build-Fehler und Problemberichte.
|
|
Als Ports-Maintainer können Sie hier den Buildstatus Ihres
|
|
Ports in Erfahrung bringen. Als Committer können Sie dort
|
|
defekte und unbetreute Ports finden, die gefixt werden
|
|
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
|
|
Ports prüfen oder auch herauszufinden, ob die
|
|
<makevar>MASTER_SITES</makevar>-Einträge bestimmter Ports
|
|
nicht mehr aktuell sind.</para>
|
|
|
|
<para>Der <application>tinderbox</application>-Port ist die
|
|
gründlichste Lösung, um den Port während des ganzen
|
|
Prozesses der Installation, Paketerstellung und Deinstallation
|
|
zu testen. Das Programm bietet sowohl eine Kommandozeilen- als
|
|
auch eine Web-Schnittstelle. Weitere Informationen zu diesem
|
|
Port finden Sie im Verzeichnis
|
|
<filename>ports/ports-mgmt/tinderbox</filename> sowie auf der
|
|
<ulink url="http://tinderbox.marcuscom.com/">Tinderbox
|
|
Homepage</ulink>.</para>
|
|
|
|
<para>Mit &man.portlint.1; können Sie einen Port auf die
|
|
Einhaltung von stilistischen und funktionellen Richtlinien hin
|
|
überprüfen. Da es sich bei
|
|
<application>portlint</application> um eine heuristische
|
|
Anwendung handelt, sollten Sie dessen Ausgaben <emphasis>nur als
|
|
einen Ratgeber verwenden</emphasis>. Wenn
|
|
<application>portlint</application> zu umfangreiche Änderungen
|
|
vorschlägt, lesen Sie nochmal das <ulink
|
|
url="&url.books.porters-handbook;">Porter-Handbuch</ulink>
|
|
oder bitten Sie jemanden um Rat.</para>
|
|
|
|
<para>Die Mailingliste &a.ports; ist für allgemeine Diskussionen
|
|
über Ports vorgesehen. Wenn Sie Hilfe benötigen
|
|
können Sie dort nachfragen. Sie können einzelne
|
|
Mailinglisten <ulink
|
|
url="http://lists.freebsd.org/mailman/listinfo">
|
|
auch abonnieren oder in deren Archiven suchen und lesen</ulink>.
|
|
Die Mailinglisten &a.ports-bugs; und &a.cvs-ports; könnten
|
|
für Sie ebenfalls von Interesse sein.</para>
|
|
</sect1>
|
|
</article>
|