contributing and contributing-ports: combine them
- combine the 'how to contribute' doc and the 'contributing to ports' doc. - modernize the 'contributing to ports' doc - use &os; - prefer poudriere to tinderbox Reviewed by: crees, bapt, mat No objections from: bdrewery, gavin, wblock
This commit is contained in:
parent
a7ecf541de
commit
ce168f063c
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=46482
17 changed files with 767 additions and 4771 deletions
de_DE.ISO8859-1/articles
en_US.ISO8859-1/articles
fr_FR.ISO8859-1/articles
ja_JP.eucJP/articles
nl_NL.ISO8859-1/articles
pt_BR.ISO8859-1/articles
|
@ -6,7 +6,6 @@
|
||||||
# basiert auf: 1.42
|
# basiert auf: 1.42
|
||||||
|
|
||||||
SUBDIR = contributing
|
SUBDIR = contributing
|
||||||
gUBDIR+= contributing-ports
|
|
||||||
SUBDIR+= explaining-bsd
|
SUBDIR+= explaining-bsd
|
||||||
SUBDIR+= freebsd-update-server
|
SUBDIR+= freebsd-update-server
|
||||||
SUBDIR+= nanobsd
|
SUBDIR+= nanobsd
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
#
|
|
||||||
# The FreeBSD Documentation Project
|
|
||||||
# The FreeBSD German Documentation Project
|
|
||||||
#
|
|
||||||
# $FreeBSD$
|
|
||||||
# $FreeBSDde: de-docproj/articles/contributing-ports/Makefile,v 1.1 2007/07/11 08:21:55 jkois Exp $
|
|
||||||
# basiert auf: 1.1
|
|
||||||
#
|
|
||||||
# Article: Zu den Ports beitragen
|
|
||||||
|
|
||||||
DOC?= article
|
|
||||||
|
|
||||||
FORMATS?= html html-split
|
|
||||||
WITH_ARTICLE_TOC?= YES
|
|
||||||
|
|
||||||
INSTALL_COMPRESSED?=gz
|
|
||||||
INSTALL_ONLY_COMPRESSED?=
|
|
||||||
|
|
||||||
SRCS= article.xml
|
|
||||||
|
|
||||||
URL_RELPREFIX?= ../../../..
|
|
||||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
|
||||||
|
|
||||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
|
|
@ -1,907 +0,0 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
||||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
|
||||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
|
||||||
<!-- The FreeBSD Documentation Project
|
|
||||||
The FreeBSD German Documentation Project
|
|
||||||
|
|
||||||
$FreeBSD$
|
|
||||||
$FreeBSDde: de-docproj/articles/contributing-ports/article.xml,v 1.11 2011/12/24 14:32:22 bcr Exp $
|
|
||||||
basiert auf: 1.9
|
|
||||||
-->
|
|
||||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="de">
|
|
||||||
<info><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><personname><firstname>Sam</firstname><surname>Lawrance</surname></personname></author>
|
|
||||||
<author><personname><firstname>Mark</firstname><surname>Linimon</surname></personname></author>
|
|
||||||
</authorgroup>
|
|
||||||
|
|
||||||
<legalnotice xml:id="trademarks" role="trademarks">
|
|
||||||
&tm-attrib.freebsd;
|
|
||||||
&tm-attrib.general;
|
|
||||||
</legalnotice>
|
|
||||||
|
|
||||||
<pubdate>$FreeBSD$</pubdate>
|
|
||||||
|
|
||||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
|
||||||
</info>
|
|
||||||
|
|
||||||
<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 xml: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 xml: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 <link xlink:href="&url.books.porters-handbook;">Porter-Handbuch</link>.
|
|
||||||
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 xml: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 <varname>MAINTAINER</varname>
|
|
||||||
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 <link xlink:href="http://portsmon.FreeBSD.org/portsconcordanceformaintainer.py?maintainer=ports%40FreeBSD.org">
|
|
||||||
&os; Ports Monitoring System</link> 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 <link xlink:href="&url.books.porters-handbook;">Porter-Handbuch</link>.
|
|
||||||
<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 <varname>MAINTAINER</varname>
|
|
||||||
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 xml: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 xml: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 <link xlink:href="&url.books.porters-handbook;">Porter-Handbuch</link>.</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 <varname>PORTREVISION</varname>-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 <link xlink:href="&url.articles.problem-reports.en;">Writing FreeBSD
|
|
||||||
Problem Reports</link>, 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 <link xlink:href="&url.books.porters-handbook;/port-upgrading.html">Upgrading</link>
|
|
||||||
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 <link xlink:href="http://pointyhat.FreeBSD.org">pointyhat</link>
|
|
||||||
und den <link xlink:href="http://www.portscout.org">Distfiles-Scanner</link>,
|
|
||||||
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 <link xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">
|
|
||||||
GNATS Problem Report database</link> 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 xml: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 <link xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">Web
|
|
||||||
Interface der Problem Reports-Datenbank</link> 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 <link xlink:href="http://portsmon.FreeBSD.org/">&os; Ports Monitoring
|
|
||||||
System</link>. Hier können Sie nicht betreute Ports mit
|
|
||||||
Build-Fehlern und Ports, die als <varname>BROKEN</varname>
|
|
||||||
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 xml: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 xml:id="resources">
|
|
||||||
<title>Ressourcen für Ports-Maintainer und Committer</title>
|
|
||||||
|
|
||||||
<para>Das <link xlink:href="&url.books.porters-handbook;">Porter-Handbuch</link>
|
|
||||||
ist Ihr <quote>Ratgeber zum Ports-System</quote> und sollte
|
|
||||||
stets in Ihrer Reichweite sein!</para>
|
|
||||||
|
|
||||||
<para>Der Artikel <link xlink:href="&url.articles.problem-reports.en;">Writing FreeBSD Problem
|
|
||||||
Reports</link> 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 <link xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">
|
|
||||||
Problem Report Database</link>.</para>
|
|
||||||
|
|
||||||
<para><link xlink:href="http://pointyhat.FreeBSD.org/">Pointyhat</link>
|
|
||||||
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 <link xlink:href="http://portsmon.FreeBSD.org/">FreeBSD Ports Monitoring
|
|
||||||
System </link> 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 <link xlink:href="http://www.portscout.org">&os; Ports
|
|
||||||
Distfile-Scanner</link> kann Ihnen die Ports anzeigen, deren
|
|
||||||
Distfiles nicht erreichbar sind. Sie können damit Ihre eigenen
|
|
||||||
Ports prüfen oder auch herauszufinden, ob die
|
|
||||||
<varname>MASTER_SITES</varname>-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
|
|
||||||
<link xlink:href="http://tinderbox.marcuscom.com/">Tinderbox
|
|
||||||
Homepage</link>.</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 <link xlink:href="&url.books.porters-handbook;">Porter-Handbuch</link>
|
|
||||||
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 <link xlink:href="http://lists.freebsd.org/mailman/listinfo">
|
|
||||||
auch abonnieren oder in deren Archiven suchen und lesen</link>.
|
|
||||||
Die Mailinglisten &a.ports-bugs; und &a.cvs-ports; könnten
|
|
||||||
für Sie ebenfalls von Interesse sein.</para>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<index/>
|
|
||||||
</article>
|
|
|
@ -5,7 +5,6 @@ SUBDIR+= bsdl-gpl
|
||||||
SUBDIR+= building-products
|
SUBDIR+= building-products
|
||||||
SUBDIR+= committers-guide
|
SUBDIR+= committers-guide
|
||||||
SUBDIR+= contributing
|
SUBDIR+= contributing
|
||||||
SUBDIR+= contributing-ports
|
|
||||||
SUBDIR+= contributors
|
SUBDIR+= contributors
|
||||||
SUBDIR+= cups
|
SUBDIR+= cups
|
||||||
SUBDIR+= explaining-bsd
|
SUBDIR+= explaining-bsd
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
#
|
|
||||||
# $FreeBSD$
|
|
||||||
#
|
|
||||||
# Article: Contributing to the FreeBSD Ports Collection
|
|
||||||
|
|
||||||
DOC?= article
|
|
||||||
|
|
||||||
FORMATS?= html
|
|
||||||
WITH_ARTICLE_TOC?= YES
|
|
||||||
|
|
||||||
INSTALL_COMPRESSED?=gz
|
|
||||||
INSTALL_ONLY_COMPRESSED?=
|
|
||||||
|
|
||||||
SRCS= article.xml
|
|
||||||
|
|
||||||
URL_RELPREFIX?= ../../../..
|
|
||||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
|
||||||
|
|
||||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
|
|
@ -1,811 +0,0 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
||||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
|
||||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
|
||||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
|
|
||||||
<info><title>Contributing to the FreeBSD Ports Collection</title>
|
|
||||||
|
|
||||||
|
|
||||||
<abstract>
|
|
||||||
<title>Abstract</title>
|
|
||||||
|
|
||||||
<para>This article describes the ways in which an individual
|
|
||||||
can contribute to the FreeBSD Ports Collection.</para>
|
|
||||||
</abstract>
|
|
||||||
|
|
||||||
<authorgroup>
|
|
||||||
<author><personname><firstname>Sam</firstname><surname>Lawrance</surname></personname></author>
|
|
||||||
<author><personname><firstname>Mark</firstname><surname>Linimon</surname></personname></author>
|
|
||||||
</authorgroup>
|
|
||||||
|
|
||||||
<legalnotice xml:id="trademarks" role="trademarks">
|
|
||||||
&tm-attrib.freebsd;
|
|
||||||
&tm-attrib.general;
|
|
||||||
</legalnotice>
|
|
||||||
|
|
||||||
<pubdate>$FreeBSD$</pubdate>
|
|
||||||
|
|
||||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
|
||||||
</info>
|
|
||||||
|
|
||||||
<indexterm><primary>contributing to ports</primary></indexterm>
|
|
||||||
|
|
||||||
<sect1>
|
|
||||||
<title>Introduction</title>
|
|
||||||
|
|
||||||
<para>The Ports Collection is a perpetual work in progress. We
|
|
||||||
want to provide our users with an easy to use, up to date, high
|
|
||||||
quality repository of third party software. We need people to
|
|
||||||
donate some of their time and effort to help us achieve this
|
|
||||||
goal.</para>
|
|
||||||
|
|
||||||
<para>Anyone can get involved, and there are lots of different
|
|
||||||
ways to do so. Contributing to ports is an excellent way to
|
|
||||||
help <quote>give back</quote> something to the project.
|
|
||||||
Whether you are looking for an ongoing role, or a fun challenge
|
|
||||||
for a rainy day, we would love to have your help!</para>
|
|
||||||
|
|
||||||
<para>As a volunteer, what you do is limited only by what you want
|
|
||||||
to do. However, we do ask that you are aware of what other
|
|
||||||
members of the &os; community will expect of you. You may want
|
|
||||||
to take this into account before deciding to volunteer.</para>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1 xml:id="what-contribute">
|
|
||||||
<title>What you can do to help</title>
|
|
||||||
|
|
||||||
<para>There are a number of easy ways you can contribute to
|
|
||||||
keeping the ports tree up to date and in good working
|
|
||||||
order:</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>Find some cool or useful software and
|
|
||||||
<link linkend="create-port"> create a port</link> for
|
|
||||||
it.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>There are a large number of ports that have no
|
|
||||||
maintainer. Become a maintainer and
|
|
||||||
<link linkend="adopt-port">adopt a port</link>.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>If you have created or adopted a port, be
|
|
||||||
aware of <link linkend="maintain-port">what you need to do
|
|
||||||
as a maintainer</link>.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>When you are looking for a quick challenge you
|
|
||||||
could <link linkend="fix-broken">fix a bug or a broken
|
|
||||||
port</link>.</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1 xml:id="create-port">
|
|
||||||
<title>Creating a new port</title>
|
|
||||||
|
|
||||||
<para>There is a separate document available to help guide you
|
|
||||||
through creating (and upgrading) a port called the <link xlink:href="&url.books.porters-handbook;">Porter's Handbook</link>.
|
|
||||||
The Porter's Handbook is the best reference to working with the
|
|
||||||
ports system. It provides details about how the ports system
|
|
||||||
operates and discusses recommended practices.</para>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1 xml:id="adopt-port">
|
|
||||||
<title>Adopting an unmaintained port</title>
|
|
||||||
|
|
||||||
<sect2>
|
|
||||||
<title>Choosing an unmaintained port</title>
|
|
||||||
|
|
||||||
<para>Taking over maintainership of ports that are
|
|
||||||
unmaintained is a great way to get involved. Unmaintained
|
|
||||||
ports are only updated and fixed when somebody volunteers to
|
|
||||||
work on them. There are a large number of unmaintained
|
|
||||||
ports. It is a good idea to start with adopting a port that
|
|
||||||
you use regularly.</para>
|
|
||||||
|
|
||||||
<para>Unmaintained ports have their
|
|
||||||
<varname>MAINTAINER</varname> set to
|
|
||||||
<literal>ports@FreeBSD.org</literal>. A list of unmaintained
|
|
||||||
ports and their current errors and problem reports can be seen
|
|
||||||
at the <link xlink:href="http://portsmon.FreeBSD.org/portsconcordanceformaintainer.py?maintainer=ports%40FreeBSD.org">&os;
|
|
||||||
Ports Monitoring System</link>.</para>
|
|
||||||
|
|
||||||
<para>Some ports affect a large number of others due to
|
|
||||||
dependencies and slave port relationships. Generally, we
|
|
||||||
want people to have some experience before they maintain such
|
|
||||||
ports.</para>
|
|
||||||
|
|
||||||
<para>You can find out whether or not a port has dependencies
|
|
||||||
or slave ports by looking at a master index of ports called
|
|
||||||
<filename>INDEX</filename>. (The name of the file varies
|
|
||||||
by release of &os;; for instance,
|
|
||||||
<filename>INDEX-8</filename>.) Some ports have conditional
|
|
||||||
dependencies that are not included in a default
|
|
||||||
<filename>INDEX</filename> build. We expect you to be able to
|
|
||||||
recognize such ports by looking through other ports'
|
|
||||||
<filename>Makefile</filename>s.</para>
|
|
||||||
</sect2>
|
|
||||||
|
|
||||||
<sect2>
|
|
||||||
<title>How to adopt the port</title>
|
|
||||||
|
|
||||||
<para>First make sure you understand your
|
|
||||||
<link linkend="maintain-port">responsibilities as a
|
|
||||||
maintainer</link>. Also read the
|
|
||||||
<link xlink:href="&url.books.porters-handbook;">Porter's
|
|
||||||
Handbook</link>. <emphasis>Please do not commit yourself
|
|
||||||
to more than you feel you can comfortably
|
|
||||||
handle.</emphasis></para>
|
|
||||||
|
|
||||||
<para>You may request maintainership of any unmaintained port
|
|
||||||
as soon as you wish. Simply set <varname>MAINTAINER</varname>
|
|
||||||
to your own email address and send a PR (Problem Report) with
|
|
||||||
the change. If the port has build errors or needs updating,
|
|
||||||
you may wish to include any other changes in the same PR.
|
|
||||||
This will help because many committers are less willing to
|
|
||||||
assign maintainership to someone who does not have a known
|
|
||||||
track record with &os;. Submitting PRs that fix build errors
|
|
||||||
or update ports are the best ways to establish one.</para>
|
|
||||||
|
|
||||||
<para>File your PR with category <literal>ports</literal> and
|
|
||||||
class <literal>change-request</literal>. A committer will
|
|
||||||
examine your PR, commit the changes, and finally close the
|
|
||||||
PR. Sometimes this process can take a little while
|
|
||||||
(committers are volunteers, too :).</para>
|
|
||||||
</sect2>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1 xml:id="maintain-port">
|
|
||||||
<title>The challenge for port maintainers</title>
|
|
||||||
|
|
||||||
<para>This section will give you an idea of why ports need to be
|
|
||||||
maintained and outline the responsibilities of a port
|
|
||||||
maintainer.</para>
|
|
||||||
|
|
||||||
<sect2 xml:id="why-maintenance">
|
|
||||||
<title>Why ports require maintenance</title>
|
|
||||||
|
|
||||||
<para>Creating a port is a once-off task. Ensuring that a
|
|
||||||
port is up to date and continues to build and run requires
|
|
||||||
an ongoing maintenance effort. Maintainers are the people
|
|
||||||
who dedicate some of their time to meeting these goals.</para>
|
|
||||||
|
|
||||||
<para>The foremost reason ports need maintenance is to bring
|
|
||||||
the latest and greatest in third party software to the &os;
|
|
||||||
community. An additional challenge is to keep individual
|
|
||||||
ports working within the Ports Collection framework as it
|
|
||||||
evolves.</para>
|
|
||||||
|
|
||||||
<para>As a maintainer, you will need to manage the following
|
|
||||||
challenges:</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<formalpara>
|
|
||||||
<title>New software versions and updates.</title>
|
|
||||||
|
|
||||||
<para>New versions and updates of existing ported
|
|
||||||
software become available all the time, and these need
|
|
||||||
to be incorporated into the Ports Collection in order
|
|
||||||
to provide up-to-date software.</para>
|
|
||||||
</formalpara>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<formalpara>
|
|
||||||
<title>Changes to dependencies.</title>
|
|
||||||
|
|
||||||
<para>If significant changes are made to the dependencies
|
|
||||||
of your port, it may need to be updated so that it will
|
|
||||||
continue to work correctly.</para>
|
|
||||||
</formalpara>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<formalpara>
|
|
||||||
<title>Changes affecting dependent ports.</title>
|
|
||||||
|
|
||||||
<para>If other ports depend on a port that you maintain,
|
|
||||||
changes to your port may require coordination with
|
|
||||||
other maintainers.</para>
|
|
||||||
</formalpara>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<formalpara>
|
|
||||||
<title>Interaction with other users, maintainers and
|
|
||||||
developers.</title>
|
|
||||||
|
|
||||||
<para>Part of being a maintainer is taking on a support
|
|
||||||
role. You are not expected to provide general support
|
|
||||||
(but we welcome it if you choose to do so). What you
|
|
||||||
should provide is a point of coordination for
|
|
||||||
&os;-specific issues regarding your ports.</para>
|
|
||||||
</formalpara>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<formalpara>
|
|
||||||
<title>Bug hunting.</title>
|
|
||||||
|
|
||||||
<para>A port may be affected by bugs which are specific
|
|
||||||
to &os;. You will need to investigate, find, and fix
|
|
||||||
these bugs when they are reported. Thoroughly testing
|
|
||||||
a port to identify problems before they make their way
|
|
||||||
into the Ports Collection is even better.</para>
|
|
||||||
</formalpara>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<formalpara>
|
|
||||||
<title>Changes to ports infrastructure and policy.</title>
|
|
||||||
|
|
||||||
<para>Occasionally the systems that are used to build
|
|
||||||
ports and packages are updated or a new recommendation
|
|
||||||
affecting the infrastructure is made. You should be
|
|
||||||
aware of these changes in case your ports are affected
|
|
||||||
and require updating.</para>
|
|
||||||
</formalpara>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<formalpara>
|
|
||||||
<title>Changes to the base system.</title>
|
|
||||||
|
|
||||||
<para>&os; is under constant development. Changes to
|
|
||||||
software, libraries, the kernel or even policy changes
|
|
||||||
can cause flow-on change requirements to ports.</para>
|
|
||||||
</formalpara>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</sect2>
|
|
||||||
|
|
||||||
<sect2>
|
|
||||||
<title>Maintainer responsibilities</title>
|
|
||||||
|
|
||||||
<sect3>
|
|
||||||
<title>Keep your ports up to date</title>
|
|
||||||
|
|
||||||
<para>This section outlines the process to follow to keep your
|
|
||||||
ports up to date.</para>
|
|
||||||
|
|
||||||
<para>This is an overview. More information about upgrading a
|
|
||||||
port is available in the
|
|
||||||
<link xlink:href="&url.books.porters-handbook;">
|
|
||||||
Porter's Handbook</link>.</para>
|
|
||||||
|
|
||||||
<procedure>
|
|
||||||
<step>
|
|
||||||
<title>Watch for updates</title>
|
|
||||||
|
|
||||||
<para>Monitor the upstream vendor for new versions,
|
|
||||||
updates and security fixes for the software.
|
|
||||||
Announcement mailing lists or news web pages are useful
|
|
||||||
for doing this. Sometimes users will contact you and
|
|
||||||
ask when your port will be updated. If you are busy
|
|
||||||
with other things or for any reason just cannot update
|
|
||||||
it at the moment, ask if they will help you by
|
|
||||||
submitting an update.</para>
|
|
||||||
|
|
||||||
<para>You may also receive automated email from the
|
|
||||||
<literal>&os; Ports Version Check</literal> informing
|
|
||||||
you that a newer version of your port's distfile is
|
|
||||||
available. More information about that system
|
|
||||||
(including how to stop future emails) will be provided
|
|
||||||
in the message.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Incorporate changes</title>
|
|
||||||
|
|
||||||
<para>When they become available, incorporate the changes
|
|
||||||
into the port. You need to be able to generate a patch
|
|
||||||
between the original port and your updated port.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Review and test</title>
|
|
||||||
|
|
||||||
<para>Thoroughly review and test your changes:</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>Build, install and test your port on as many
|
|
||||||
platforms and architectures as you can. It is
|
|
||||||
common for a port to work on one branch or platform
|
|
||||||
and fail on another.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Make sure your port's dependencies are complete.
|
|
||||||
The recommended way of doing this is by installing
|
|
||||||
your own ports <application>tinderbox</application>.
|
|
||||||
See <link linkend="resources">resources</link>
|
|
||||||
for more information.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Check that the packing list is up to date. This
|
|
||||||
involves adding in any new files and directories and
|
|
||||||
removing unused entries.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Verify your port using &man.portlint.1; as a
|
|
||||||
guide. See <link linkend="resources">resources</link> for important
|
|
||||||
information about using
|
|
||||||
<application>portlint</application>.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Consider whether changes to your port might
|
|
||||||
cause any other ports to break. If this is the
|
|
||||||
case, coordinate the changes with the maintainers of
|
|
||||||
those ports. This is especially important if your
|
|
||||||
update changes the shared library version; in this
|
|
||||||
case, at the very least, the dependent ports will
|
|
||||||
need to get a <varname>PORTREVISION</varname> bump
|
|
||||||
so that they will automatically be upgraded by
|
|
||||||
automated tools such as
|
|
||||||
<application>portmaster</application> or
|
|
||||||
&man.portupgrade.1;.</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Submit changes</title>
|
|
||||||
|
|
||||||
<para>Send your update by submitting a PR with an
|
|
||||||
explanation of the changes and a patch containing the
|
|
||||||
differences between the original port and the updated
|
|
||||||
one. Please refer to <link xlink:href="&url.articles.problem-reports;">Writing FreeBSD
|
|
||||||
Problem Reports</link> for information on how to
|
|
||||||
write a really good PR.</para>
|
|
||||||
|
|
||||||
<note>
|
|
||||||
<para>Please do not submit a &man.shar.1; archive of the
|
|
||||||
entire port; instead, use &man.diff.1;
|
|
||||||
<literal>-ruN</literal>. In this way, committers can
|
|
||||||
much more easily see exactly what changes are being
|
|
||||||
made. The Porter's Handbook section on <link xlink:href="&url.books.porters-handbook;/port-upgrading.html">Upgrading</link>
|
|
||||||
has more information.</para>
|
|
||||||
</note>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Wait</title>
|
|
||||||
|
|
||||||
<para>At some stage a committer will deal with your PR.
|
|
||||||
It may take minutes, or it may take weeks — so
|
|
||||||
please be patient.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Give feedback</title>
|
|
||||||
|
|
||||||
<para>If a committer finds a problem with your changes,
|
|
||||||
they will most likely refer it back to you. A prompt
|
|
||||||
response will help get your PR committed faster, and
|
|
||||||
is better for maintaining a thread of conversation
|
|
||||||
when trying to resolve any problems.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>And Finally</title>
|
|
||||||
|
|
||||||
<para>Your changes will be committed and your port will
|
|
||||||
have been updated. The PR will then be closed by the
|
|
||||||
committer. That's it!</para>
|
|
||||||
</step>
|
|
||||||
</procedure>
|
|
||||||
</sect3>
|
|
||||||
|
|
||||||
<sect3>
|
|
||||||
<title>Ensure your ports continue to build correctly</title>
|
|
||||||
|
|
||||||
<para>This section is about discovering and fixing problems
|
|
||||||
that stop your ports from building correctly.</para>
|
|
||||||
|
|
||||||
<para>&os; only guarantees that the Ports Collection works on
|
|
||||||
the <literal>-STABLE</literal> branches. You should be
|
|
||||||
running <literal>7-STABLE</literal> or
|
|
||||||
<literal>8-STABLE</literal>, preferably the latter. In
|
|
||||||
theory, you should be able to get by with running the latest
|
|
||||||
release of each stable branch (since the ABIs are not
|
|
||||||
supposed to change) but if you can run the branch, that is
|
|
||||||
even better.</para>
|
|
||||||
|
|
||||||
<para>Since the majority of &os; installations run on
|
|
||||||
PC-compatible machines (what is termed the
|
|
||||||
<literal>i386</literal> architecture), we expect you to keep
|
|
||||||
the port working on that architecture. We prefer that ports
|
|
||||||
also work on the <literal>amd64</literal> architecture
|
|
||||||
running native. It is completely fair to ask for help if
|
|
||||||
you do not have one of these machines.</para>
|
|
||||||
|
|
||||||
<note>
|
|
||||||
<para>The usual failure modes for
|
|
||||||
non-<literal>i386</literal> machines are that the original
|
|
||||||
programmers assumed that, for instance, pointers are
|
|
||||||
<literal>int</literal>s, or that a relatively lax older
|
|
||||||
<application>gcc</application> compiler was being used.
|
|
||||||
More and more, application authors are reworking their
|
|
||||||
code to remove these assumptions — but if the author
|
|
||||||
is not actively maintaining their code, you may need to do
|
|
||||||
this yourself.</para>
|
|
||||||
</note>
|
|
||||||
|
|
||||||
<para>These are the tasks you need to perform to ensure your
|
|
||||||
port is able to be built:</para>
|
|
||||||
|
|
||||||
<procedure>
|
|
||||||
<step>
|
|
||||||
<title>Watch for build failures</title>
|
|
||||||
|
|
||||||
<para>Regularly check the automated ports building
|
|
||||||
cluster, <link xlink:href="http://pointyhat.FreeBSD.org">pointyhat</link>,
|
|
||||||
and the <link xlink:href="http://portscout.FreeBSD.org">distfiles
|
|
||||||
scanner</link> to see if any of the ports you
|
|
||||||
maintain are failing to build or fetch (see <link linkend="resources">resources</link> for more
|
|
||||||
information about these systems). Reports of failures
|
|
||||||
may also come to you from other users or automated
|
|
||||||
systems via email.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Collect information</title>
|
|
||||||
|
|
||||||
<para>Once you are aware of a problem, collect information
|
|
||||||
to help you fix it. Build errors reported by
|
|
||||||
<literal>pointyhat</literal> are accompanied by logs
|
|
||||||
which will show you where the build failed. If the
|
|
||||||
failure was reported to you by a user, ask them to send
|
|
||||||
you information which may help in diagnosing the
|
|
||||||
problem, such as:</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>Build logs</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>The commands and options used to build the
|
|
||||||
port (including options set in
|
|
||||||
<filename>/etc/make.conf</filename>)</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>A list of packages installed on their system
|
|
||||||
as shown by &man.pkg.info.1;</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>The version of &os; they are running as
|
|
||||||
shown by &man.uname.1;<command> -a</command></para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>When their ports collection was last
|
|
||||||
updated</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>When their <filename>INDEX</filename> file
|
|
||||||
was last updated</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Investigate and find a solution</title>
|
|
||||||
|
|
||||||
<para>Unfortunately there is no straightforward process to
|
|
||||||
follow to do this. Remember, though: if you are stuck,
|
|
||||||
ask for help! The &a.ports; is a good place to start,
|
|
||||||
and the upstream developers are often very
|
|
||||||
helpful.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Submit changes</title>
|
|
||||||
|
|
||||||
<para>Just as with updating a port, you should now
|
|
||||||
incorporate changes, review and test, submit your
|
|
||||||
changes in a PR, and provide feedback if
|
|
||||||
required.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Send patches to upstream authors</title>
|
|
||||||
|
|
||||||
<para>In some cases, you will have to make patches to the
|
|
||||||
port to make it run on FreeBSD. Some (but not all)
|
|
||||||
upstream authors will accept such patches back into
|
|
||||||
their code for the next release. If so, this may even
|
|
||||||
help their users on other BSD-based systems as well and
|
|
||||||
perhaps save duplicated effort. Please consider sending
|
|
||||||
any applicable patches to the authors as a
|
|
||||||
courtesy.</para>
|
|
||||||
</step>
|
|
||||||
</procedure>
|
|
||||||
</sect3>
|
|
||||||
|
|
||||||
<sect3>
|
|
||||||
|
|
||||||
<title>Investigate bug reports and PRs related to your
|
|
||||||
port</title>
|
|
||||||
|
|
||||||
<para>This section is about discovering and fixing
|
|
||||||
bugs.</para>
|
|
||||||
|
|
||||||
<para>&os;-specific bugs are generally caused by assumptions
|
|
||||||
about the build and runtime environments that do not apply
|
|
||||||
to &os;. You are less likely to encounter a problem of this
|
|
||||||
type, but it can be more subtle and difficult to
|
|
||||||
diagnose.</para>
|
|
||||||
|
|
||||||
<para>These are the tasks you need to perform to ensure your
|
|
||||||
port continues to work as intended:</para>
|
|
||||||
|
|
||||||
<procedure>
|
|
||||||
<step>
|
|
||||||
<title>Respond to bug reports</title>
|
|
||||||
|
|
||||||
<para>Bugs may be reported to you through email via the
|
|
||||||
<link xlink:href="https://bugs.FreeBSD.org/search/">
|
|
||||||
Problem Report database</link>. Bugs may also be
|
|
||||||
reported directly to you by users.</para>
|
|
||||||
|
|
||||||
<para>You should respond to PRs and other reports within
|
|
||||||
14 days, but please try not to take that long. Try to
|
|
||||||
respond as soon as possible, even if it is just to say
|
|
||||||
you need some more time before you can work on the
|
|
||||||
PR.</para>
|
|
||||||
|
|
||||||
<para>If you have not responded after 14 days, any
|
|
||||||
committer may commit from a PR that you have not
|
|
||||||
responded to via a
|
|
||||||
<literal>maintainer-timeout</literal>.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Collect information</title>
|
|
||||||
|
|
||||||
<para>If the person reporting the bug has not also
|
|
||||||
provided a fix, you need to collect the information that
|
|
||||||
will allow you to generate one.</para>
|
|
||||||
|
|
||||||
<para>If the bug is reproducible, you can collect most of
|
|
||||||
the required information yourself. If not, ask the
|
|
||||||
person who reported the bug to collect the information
|
|
||||||
for you, such as:</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>A detailed description of their actions,
|
|
||||||
expected program behavior and actual behavior</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Copies of input data used to trigger the
|
|
||||||
bug</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Information about their build and execution
|
|
||||||
environment — for example, a list of installed
|
|
||||||
packages and the output of &man.env.1;</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Core dumps</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Stack traces</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Eliminate incorrect reports</title>
|
|
||||||
|
|
||||||
<para>Some bug reports may be incorrect. For example,
|
|
||||||
the user may have simply misused the program; or their
|
|
||||||
installed packages may be out of date and require
|
|
||||||
updating. Sometimes a reported bug is not specific to
|
|
||||||
&os;. In this case report the bug to the upstream
|
|
||||||
developers. If the bug is within your capabilities to
|
|
||||||
fix, you can also patch the port so that the fix is
|
|
||||||
applied before the next upstream release.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Find a solution</title>
|
|
||||||
|
|
||||||
<para>As with build errors, you will need to sort out a
|
|
||||||
fix to the problem. Again, remember to ask if you are
|
|
||||||
stuck!</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Submit or approve changes</title>
|
|
||||||
|
|
||||||
<para>Just as with updating a port, you should now
|
|
||||||
incorporate changes, review and test, and submit your
|
|
||||||
changes in a PR (or send a follow-up if a PR already
|
|
||||||
exists for the problem). If another user has submitted
|
|
||||||
changes in the PR, you can also send a follow-up saying
|
|
||||||
whether or not you approve the changes.</para>
|
|
||||||
</step>
|
|
||||||
</procedure>
|
|
||||||
</sect3>
|
|
||||||
|
|
||||||
<sect3>
|
|
||||||
<title>Providing support</title>
|
|
||||||
|
|
||||||
<para>Part of being a maintainer is providing support —
|
|
||||||
not for the software in general — but for the port and
|
|
||||||
any &os;-specific quirks and problems. Users may contact
|
|
||||||
you with questions, suggestions, problems and patches. Most
|
|
||||||
of the time their correspondence will be specific to
|
|
||||||
&os;.</para>
|
|
||||||
|
|
||||||
<para>Occasionally you may have to invoke your skills in
|
|
||||||
diplomacy, and kindly point users seeking general support to
|
|
||||||
the appropriate resources. Less frequently you will
|
|
||||||
encounter a person asking why the <literal>RPM</literal>s
|
|
||||||
are not up to date or how can they get the software to run
|
|
||||||
under Foo Linux. Take the opportunity to tell them that
|
|
||||||
your port is up to date (if it is, of course!), and suggest
|
|
||||||
that they try &os;.</para>
|
|
||||||
|
|
||||||
<para>Sometimes users and developers will decide that you are
|
|
||||||
a busy person whose time is valuable and do some of the work
|
|
||||||
for you. For example, they might:</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>submit a PR or send you patches to update your
|
|
||||||
port,</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>investigate and perhaps provide a fix to a PR,
|
|
||||||
or</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>otherwise submit changes to your port.</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
|
|
||||||
<para>In these cases your main obligation is to respond in a
|
|
||||||
timely manner. Again, the timeout for non-responsive
|
|
||||||
maintainers is 14 days. After this period changes may be
|
|
||||||
committed unapproved. They have taken the trouble to do
|
|
||||||
this for you; so please try to at least respond promptly.
|
|
||||||
Then review, approve, modify or discuss their changes with
|
|
||||||
them as soon as possible.</para>
|
|
||||||
|
|
||||||
<para>If you can make them feel that their contribution is
|
|
||||||
appreciated (and it should be) you will have a better chance
|
|
||||||
persuading them to do more things for you in the future
|
|
||||||
<!-- smiley -->:-).</para>
|
|
||||||
</sect3>
|
|
||||||
</sect2>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1 xml:id="fix-broken">
|
|
||||||
<title>Finding and fixing a broken port</title>
|
|
||||||
|
|
||||||
<para>There are two really good places to find a port that needs
|
|
||||||
some attention.</para>
|
|
||||||
|
|
||||||
<para>You can use the <link xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">web
|
|
||||||
interface</link> to the Problem Report database to search
|
|
||||||
through and view unresolved PRs. The majority of ports PRs are
|
|
||||||
updates, but with a little searching and skimming over synopses
|
|
||||||
you should be able to find something interesting to work on (the
|
|
||||||
<literal>sw-bug</literal> class is a good place to
|
|
||||||
start).</para>
|
|
||||||
|
|
||||||
<para>The other place is the <link xlink:href="http://portsmon.FreeBSD.org/">&os; Ports Monitoring
|
|
||||||
System</link>. In particular look for unmaintained ports
|
|
||||||
with build errors and ports that are marked
|
|
||||||
<varname>BROKEN</varname>. It is OK to send changes for a
|
|
||||||
maintained port as well, but remember to ask the maintainer in
|
|
||||||
case they are already working on the problem.</para>
|
|
||||||
|
|
||||||
<para>Once you have found a bug or problem, collect information,
|
|
||||||
investigate and fix! If there is an existing PR, follow up to
|
|
||||||
that. Otherwise create a new PR. Your changes will be reviewed
|
|
||||||
and, if everything checks out, committed.</para>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1 xml:id="mortal-coil">
|
|
||||||
<title>When to call it quits</title>
|
|
||||||
|
|
||||||
<para>As your interests and commitments change, you may find that
|
|
||||||
you no longer have time to continue some (or all) of your ports
|
|
||||||
contributions. That is fine! Please let us know if you are no
|
|
||||||
longer using a port or have otherwise lost time or interest in
|
|
||||||
being a maintainer. In this way we can go ahead and allow other
|
|
||||||
people to try to work on existing problems with the port without
|
|
||||||
waiting for your response. Remember, &os; is a volunteer
|
|
||||||
project, so if maintaining a port is no fun anymore, it is
|
|
||||||
probably time to let someone else do it!</para>
|
|
||||||
|
|
||||||
<para>In any case, the Ports Management Team
|
|
||||||
(<literal>portmgr</literal>) reserves the right to reset your
|
|
||||||
maintainership if you have not actively maintained your port in
|
|
||||||
some time. (Currently, this is set to 3 months.) By this, we
|
|
||||||
mean that there are unresolved problems or pending updates that
|
|
||||||
have not been worked on during that time.</para>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1 xml:id="resources">
|
|
||||||
<title>Resources for ports maintainers and contributors</title>
|
|
||||||
|
|
||||||
<para>The <link xlink:href="&url.books.porters-handbook;">Porter's
|
|
||||||
Handbook</link> is your hitchhiker's guide to the ports
|
|
||||||
system. Keep it handy!</para>
|
|
||||||
|
|
||||||
<para><link xlink:href="&url.articles.problem-reports;">Writing FreeBSD
|
|
||||||
Problem Reports</link> describes how to best formulate and
|
|
||||||
submit a PR. In 2005 more than eleven thousand ports PRs were
|
|
||||||
submitted! Following this article will greatly assist us in
|
|
||||||
reducing the time needed to handle your PRs.</para>
|
|
||||||
|
|
||||||
<para>The <link xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">
|
|
||||||
Problem Report database</link>.</para>
|
|
||||||
|
|
||||||
<para><link xlink:href="http://pointyhat.FreeBSD.org/">Pointyhat</link>
|
|
||||||
is the ports build cluster. You can use Pointyhat to check port
|
|
||||||
build logs across all architectures and major releases.</para>
|
|
||||||
|
|
||||||
<para>The <link xlink:href="http://portsmon.FreeBSD.org/">FreeBSD Ports
|
|
||||||
Monitoring System</link> can show you cross-referenced
|
|
||||||
information about ports such as build errors and problem
|
|
||||||
reports. If you are a maintainer you can use it to check on the
|
|
||||||
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 <link xlink:href="http://portscout.FreeBSD.org">FreeBSD Ports
|
|
||||||
distfile scanner</link> 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
|
|
||||||
<varname>MASTER_SITES</varname> updated.</para>
|
|
||||||
|
|
||||||
<para>The ports <application>tinderbox</application> is the most
|
|
||||||
thorough way to test a port through the entire cycle of
|
|
||||||
installation, packaging, and deinstallation. It features a
|
|
||||||
command-line interface but also can be controlled via a web
|
|
||||||
interface. Please see
|
|
||||||
<filename>ports/ports-mgmt/tinderbox</filename>. More
|
|
||||||
documentation is located at the <link xlink:href="http://tinderbox.marcuscom.com/">marcuscom tinderbox home
|
|
||||||
page</link>.</para>
|
|
||||||
|
|
||||||
<para>&man.portlint.1; is an application which can be used to
|
|
||||||
verify that your port conforms to many important stylistic and
|
|
||||||
functional guidelines. <application>portlint</application> is a
|
|
||||||
simple heuristic application, so you should use it
|
|
||||||
<emphasis>only as a guide</emphasis>. If
|
|
||||||
<application>portlint</application> suggests changes which seem
|
|
||||||
unreasonable, consult the <link xlink:href="&url.books.porters-handbook;">Porter's Handbook</link>
|
|
||||||
or ask for advice.</para>
|
|
||||||
|
|
||||||
<para>The &a.ports; is for general ports-related discussion. It
|
|
||||||
is a good place to ask for help. You can <link xlink:href="http://lists.freebsd.org/mailman/listinfo">subscribe, or
|
|
||||||
read and search the list archives</link>. Reading the
|
|
||||||
archives of the &a.ports-bugs; and the &a.cvs-ports; may also be
|
|
||||||
of interest.</para>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<index/>
|
|
||||||
</article>
|
|
|
@ -12,7 +12,9 @@
|
||||||
</abstract>
|
</abstract>
|
||||||
|
|
||||||
<authorgroup>
|
<authorgroup>
|
||||||
<author><personname><firstname>Jordan</firstname><surname>Hubbard</surname></personname><contrib>Contributed by </contrib></author>
|
<author><personname><firstname>Jordan</firstname><surname>Hubbard</surname></personname></author>
|
||||||
|
<author><personname><firstname>Sam</firstname><surname>Lawrance</surname></personname></author>
|
||||||
|
<author><personname><firstname>Mark</firstname><surname>Linimon</surname></personname></author>
|
||||||
</authorgroup>
|
</authorgroup>
|
||||||
|
|
||||||
<legalnotice xml:id="trademarks" role="trademarks">
|
<legalnotice xml:id="trademarks" role="trademarks">
|
||||||
|
@ -28,20 +30,22 @@
|
||||||
|
|
||||||
<indexterm><primary>contributing</primary></indexterm>
|
<indexterm><primary>contributing</primary></indexterm>
|
||||||
|
|
||||||
<para>So you want to contribute to FreeBSD? That is great! FreeBSD
|
<para>So you want to contribute to &os;? That is great! &os;
|
||||||
<emphasis>relies</emphasis> on the contributions of its user base
|
<emphasis>relies</emphasis> on the contributions of its user base
|
||||||
to survive. Your contributions are not only appreciated, they are
|
to survive. Your contributions are not only appreciated, they are
|
||||||
vital to FreeBSD's continued growth.</para>
|
vital to &os;'s continued growth.</para>
|
||||||
|
|
||||||
<para>Contrary to what some people might have you believe, you do
|
<para>A large and growing number of international contributors, of
|
||||||
not need to be a hot-shot programmer or a close personal friend of
|
greatly varying ages and areas of technical expertise, develop
|
||||||
the FreeBSD core team to have your contributions accepted. A
|
&os;. There is always more work to be done than there are people
|
||||||
large and growing number of international contributors, of greatly
|
|
||||||
varying ages and areas of technical expertise, develop FreeBSD.
|
|
||||||
There is always more work to be done than there are people
|
|
||||||
available to do it, and more help is always appreciated.</para>
|
available to do it, and more help is always appreciated.</para>
|
||||||
|
|
||||||
<para>The FreeBSD project is responsible for an entire operating
|
<para>As a volunteer, what you do is limited only by what you want
|
||||||
|
to do. However, we do ask that you are aware of what other
|
||||||
|
members of the &os; community will expect of you. You may want
|
||||||
|
to take this into account before deciding to volunteer.</para>
|
||||||
|
|
||||||
|
<para>The &os; project is responsible for an entire operating
|
||||||
system environment, rather than just a kernel or a few scattered
|
system environment, rather than just a kernel or a few scattered
|
||||||
utilities. As such, our <filename>TODO</filename> lists span a
|
utilities. As such, our <filename>TODO</filename> lists span a
|
||||||
very wide range of tasks: from documentation, beta testing and
|
very wide range of tasks: from documentation, beta testing and
|
||||||
|
@ -218,8 +222,53 @@
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>Pick one of the items from the <quote>Ideas</quote>
|
<title>Ongoing Ports Tasks</title>
|
||||||
page</title>
|
|
||||||
|
<para>The Ports Collection is a perpetual work in progress. We
|
||||||
|
want to provide our users with an easy to use, up to date, high
|
||||||
|
quality repository of third party software. We need people to
|
||||||
|
donate some of their time and effort to help us achieve this
|
||||||
|
goal.</para>
|
||||||
|
|
||||||
|
<para>Anyone can get involved, and there are lots of different
|
||||||
|
ways to do so. Contributing to ports is an excellent way to
|
||||||
|
help <quote>give back</quote> something to the project.
|
||||||
|
Whether you are looking for an ongoing role, or a fun challenge
|
||||||
|
for a rainy day, we would love to have your help!</para>
|
||||||
|
|
||||||
|
<para>There are a number of easy ways you can contribute to
|
||||||
|
keeping the ports tree up to date and in good working
|
||||||
|
order:</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Find some cool or useful software and
|
||||||
|
<link xlink:href="&url.books.porters-handbook;">create a port</link>
|
||||||
|
for it.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>There are a large number of ports that have no
|
||||||
|
maintainer. Become a maintainer and
|
||||||
|
<link linkend="adopt-port">adopt a port</link>.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>If you have created or adopted a port, be
|
||||||
|
aware of <link linkend="maintain-port">what you need to do
|
||||||
|
as a maintainer</link>.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>When you are looking for a quick challenge you
|
||||||
|
could <link linkend="fix-broken">fix a bug or a broken
|
||||||
|
port</link>.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Pick one of the items from the Ideas page</title>
|
||||||
|
|
||||||
<para>The <link xlink:href="http://wiki.freebsd.org/IdeasPage">&os;
|
<para>The <link xlink:href="http://wiki.freebsd.org/IdeasPage">&os;
|
||||||
list of projects and ideas for volunteers</link> is also
|
list of projects and ideas for volunteers</link> is also
|
||||||
|
@ -441,5 +490,711 @@
|
||||||
</sect2>
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 xml:id="ports-contributing">
|
||||||
|
<title>Contributing to ports</title>
|
||||||
|
|
||||||
|
<sect2 xml:id="adopt-port">
|
||||||
|
<title>Adopting an unmaintained port</title>
|
||||||
|
|
||||||
|
<sect3>
|
||||||
|
<title>Choosing an unmaintained port</title>
|
||||||
|
|
||||||
|
<para>Taking over maintainership of ports that are
|
||||||
|
unmaintained is a great way to get involved. Unmaintained
|
||||||
|
ports are only updated and fixed when somebody volunteers to
|
||||||
|
work on them. There are a large number of unmaintained
|
||||||
|
ports. It is a good idea to start with adopting a port that
|
||||||
|
you use regularly.</para>
|
||||||
|
|
||||||
|
<para>Unmaintained ports have their
|
||||||
|
<varname>MAINTAINER</varname> set to
|
||||||
|
<literal>ports@FreeBSD.org</literal>. A list of unmaintained
|
||||||
|
ports and their current errors and problem reports can be seen
|
||||||
|
at the <link xlink:href="http://portsmon.FreeBSD.org/portsconcordanceformaintainer.py?maintainer=ports%40FreeBSD.org">&os;
|
||||||
|
Ports Monitoring System</link>.</para>
|
||||||
|
|
||||||
|
<para>Some ports affect a large number of others due to
|
||||||
|
dependencies and slave port relationships. Generally, we
|
||||||
|
want people to have some experience before they maintain such
|
||||||
|
ports.</para>
|
||||||
|
|
||||||
|
<para>You can find out whether or not a port has dependencies
|
||||||
|
or slave ports by looking at a master index of ports called
|
||||||
|
<filename>INDEX</filename>. (The name of the file varies
|
||||||
|
by release of &os;; for instance,
|
||||||
|
<filename>INDEX-8</filename>.) Some ports have conditional
|
||||||
|
dependencies that are not included in a default
|
||||||
|
<filename>INDEX</filename> build. We expect you to be able to
|
||||||
|
recognize such ports by looking through other ports'
|
||||||
|
<filename>Makefile</filename>s.</para>
|
||||||
|
</sect3>
|
||||||
|
|
||||||
|
<sect3>
|
||||||
|
<title>How to adopt the port</title>
|
||||||
|
|
||||||
|
<para>First make sure you understand your
|
||||||
|
<link linkend="maintain-port">responsibilities as a
|
||||||
|
maintainer</link>. Also read the
|
||||||
|
<link xlink:href="&url.books.porters-handbook;">Porter's
|
||||||
|
Handbook</link>. <emphasis>Please do not commit yourself
|
||||||
|
to more than you feel you can comfortably
|
||||||
|
handle.</emphasis></para>
|
||||||
|
|
||||||
|
<para>You may request maintainership of any unmaintained port
|
||||||
|
as soon as you wish. Simply set <varname>MAINTAINER</varname>
|
||||||
|
to your own email address and send a PR (Problem Report) with
|
||||||
|
the change. If the port has build errors or needs updating,
|
||||||
|
you may wish to include any other changes in the same PR.
|
||||||
|
This will help because many committers are less willing to
|
||||||
|
assign maintainership to someone who does not have a known
|
||||||
|
track record with &os;. Submitting PRs that fix build errors
|
||||||
|
or update ports are the best ways to establish one.</para>
|
||||||
|
|
||||||
|
<para>File your PR with category <literal>ports</literal> and
|
||||||
|
class <literal>change-request</literal>. A committer will
|
||||||
|
examine your PR, commit the changes, and finally close the
|
||||||
|
PR. Sometimes this process can take a little while
|
||||||
|
(committers are volunteers, too :).</para>
|
||||||
|
</sect3>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 xml:id="maintain-port">
|
||||||
|
<title>The challenge for port maintainers</title>
|
||||||
|
|
||||||
|
<para>This section will give you an idea of why ports need to be
|
||||||
|
maintained and outline the responsibilities of a port
|
||||||
|
maintainer.</para>
|
||||||
|
|
||||||
|
<sect3 xml:id="why-maintenance">
|
||||||
|
<title>Why ports require maintenance</title>
|
||||||
|
|
||||||
|
<para>Creating a port is a once-off task. Ensuring that a
|
||||||
|
port is up to date and continues to build and run requires
|
||||||
|
an ongoing maintenance effort. Maintainers are the people
|
||||||
|
who dedicate some of their time to meeting these goals.</para>
|
||||||
|
|
||||||
|
<para>The foremost reason ports need maintenance is to bring
|
||||||
|
the latest and greatest in third party software to the &os;
|
||||||
|
community. An additional challenge is to keep individual
|
||||||
|
ports working within the Ports Collection framework as it
|
||||||
|
evolves.</para>
|
||||||
|
|
||||||
|
<para>As a maintainer, you will need to manage the following
|
||||||
|
challenges:</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<formalpara>
|
||||||
|
<title>New software versions and updates.</title>
|
||||||
|
|
||||||
|
<para>New versions and updates of existing ported
|
||||||
|
software become available all the time, and these need
|
||||||
|
to be incorporated into the Ports Collection in order
|
||||||
|
to provide up-to-date software.</para>
|
||||||
|
</formalpara>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<formalpara>
|
||||||
|
<title>Changes to dependencies.</title>
|
||||||
|
|
||||||
|
<para>If significant changes are made to the dependencies
|
||||||
|
of your port, it may need to be updated so that it will
|
||||||
|
continue to work correctly.</para>
|
||||||
|
</formalpara>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<formalpara>
|
||||||
|
<title>Changes affecting dependent ports.</title>
|
||||||
|
|
||||||
|
<para>If other ports depend on a port that you maintain,
|
||||||
|
changes to your port may require coordination with
|
||||||
|
other maintainers.</para>
|
||||||
|
</formalpara>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<formalpara>
|
||||||
|
<title>Interaction with other users, maintainers and
|
||||||
|
developers.</title>
|
||||||
|
|
||||||
|
<para>Part of being a maintainer is taking on a support
|
||||||
|
role. You are not expected to provide general support
|
||||||
|
(but we welcome it if you choose to do so). What you
|
||||||
|
should provide is a point of coordination for
|
||||||
|
&os;-specific issues regarding your ports.</para>
|
||||||
|
</formalpara>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<formalpara>
|
||||||
|
<title>Bug hunting.</title>
|
||||||
|
|
||||||
|
<para>A port may be affected by bugs which are specific
|
||||||
|
to &os;. You will need to investigate, find, and fix
|
||||||
|
these bugs when they are reported. Thoroughly testing
|
||||||
|
a port to identify problems before they make their way
|
||||||
|
into the Ports Collection is even better.</para>
|
||||||
|
</formalpara>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<formalpara>
|
||||||
|
<title>Changes to ports infrastructure and policy.</title>
|
||||||
|
|
||||||
|
<para>Occasionally the systems that are used to build
|
||||||
|
ports and packages are updated or a new recommendation
|
||||||
|
affecting the infrastructure is made. You should be
|
||||||
|
aware of these changes in case your ports are affected
|
||||||
|
and require updating.</para>
|
||||||
|
</formalpara>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<formalpara>
|
||||||
|
<title>Changes to the base system.</title>
|
||||||
|
|
||||||
|
<para>&os; is under constant development. Changes to
|
||||||
|
software, libraries, the kernel or even policy changes
|
||||||
|
can cause flow-on change requirements to ports.</para>
|
||||||
|
</formalpara>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</sect3>
|
||||||
|
|
||||||
|
<sect3>
|
||||||
|
<title>Maintainer responsibilities</title>
|
||||||
|
|
||||||
|
<sect4>
|
||||||
|
<title>Keep your ports up to date</title>
|
||||||
|
|
||||||
|
<para>This section outlines the process to follow to keep your
|
||||||
|
ports up to date.</para>
|
||||||
|
|
||||||
|
<para>This is an overview. More information about upgrading a
|
||||||
|
port is available in the
|
||||||
|
<link xlink:href="&url.books.porters-handbook;">
|
||||||
|
Porter's Handbook</link>.</para>
|
||||||
|
|
||||||
|
<procedure>
|
||||||
|
<step>
|
||||||
|
<title>Watch for updates</title>
|
||||||
|
|
||||||
|
<para>Monitor the upstream vendor for new versions,
|
||||||
|
updates and security fixes for the software.
|
||||||
|
Announcement mailing lists or news web pages are useful
|
||||||
|
for doing this. Sometimes users will contact you and
|
||||||
|
ask when your port will be updated. If you are busy
|
||||||
|
with other things or for any reason just cannot update
|
||||||
|
it at the moment, ask if they will help you by
|
||||||
|
submitting an update.</para>
|
||||||
|
|
||||||
|
<para>You may also receive automated email from the
|
||||||
|
<literal>&os; Ports Version Check</literal> informing
|
||||||
|
you that a newer version of your port's distfile is
|
||||||
|
available. More information about that system
|
||||||
|
(including how to stop future emails) will be provided
|
||||||
|
in the message.</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<title>Incorporate changes</title>
|
||||||
|
|
||||||
|
<para>When they become available, incorporate the changes
|
||||||
|
into the port. You need to be able to generate a patch
|
||||||
|
between the original port and your updated port.</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<title>Review and test</title>
|
||||||
|
|
||||||
|
<para>Thoroughly review and test your changes:</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Build, install and test your port on as many
|
||||||
|
platforms and architectures as you can. It is
|
||||||
|
common for a port to work on one branch or platform
|
||||||
|
and fail on another.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Make sure your port's dependencies are complete.
|
||||||
|
The recommended way of doing this is by installing
|
||||||
|
your own ports <application>tinderbox</application>.
|
||||||
|
See <link linkend="resources">resources</link>
|
||||||
|
for more information.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Check that the packing list is up to date. This
|
||||||
|
involves adding in any new files and directories and
|
||||||
|
removing unused entries.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Verify your port using &man.portlint.1; as a
|
||||||
|
guide. See <link linkend="resources">resources</link> for important
|
||||||
|
information about using
|
||||||
|
<application>portlint</application>.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Consider whether changes to your port might
|
||||||
|
cause any other ports to break. If this is the
|
||||||
|
case, coordinate the changes with the maintainers of
|
||||||
|
those ports. This is especially important if your
|
||||||
|
update changes the shared library version; in this
|
||||||
|
case, at the very least, the dependent ports will
|
||||||
|
need to get a <varname>PORTREVISION</varname> bump
|
||||||
|
so that they will automatically be upgraded by
|
||||||
|
automated tools such as
|
||||||
|
<application>portmaster</application> or
|
||||||
|
&man.portupgrade.1;.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<title>Submit changes</title>
|
||||||
|
|
||||||
|
<para>Send your update by submitting a PR with an
|
||||||
|
explanation of the changes and a patch containing the
|
||||||
|
differences between the original port and the updated
|
||||||
|
one. Please refer to <link xlink:href="&url.articles.problem-reports;">Writing FreeBSD
|
||||||
|
Problem Reports</link> for information on how to
|
||||||
|
write a really good PR.</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>Please do not submit a &man.shar.1; archive of the
|
||||||
|
entire port; instead, use &man.diff.1;
|
||||||
|
<literal>-ruN</literal>. In this way, committers can
|
||||||
|
much more easily see exactly what changes are being
|
||||||
|
made. The Porter's Handbook section on <link xlink:href="&url.books.porters-handbook;/port-upgrading.html">Upgrading</link>
|
||||||
|
has more information.</para>
|
||||||
|
</note>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<title>Wait</title>
|
||||||
|
|
||||||
|
<para>At some stage a committer will deal with your PR.
|
||||||
|
It may take minutes, or it may take weeks — so
|
||||||
|
please be patient.</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<title>Give feedback</title>
|
||||||
|
|
||||||
|
<para>If a committer finds a problem with your changes,
|
||||||
|
they will most likely refer it back to you. A prompt
|
||||||
|
response will help get your PR committed faster, and
|
||||||
|
is better for maintaining a thread of conversation
|
||||||
|
when trying to resolve any problems.</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<title>And Finally</title>
|
||||||
|
|
||||||
|
<para>Your changes will be committed and your port will
|
||||||
|
have been updated. The PR will then be closed by the
|
||||||
|
committer. That's it!</para>
|
||||||
|
</step>
|
||||||
|
</procedure>
|
||||||
|
</sect4>
|
||||||
|
|
||||||
|
<sect4>
|
||||||
|
<title>Ensure your ports continue to build correctly</title>
|
||||||
|
|
||||||
|
<para>This section is about discovering and fixing problems
|
||||||
|
that stop your ports from building correctly.</para>
|
||||||
|
|
||||||
|
<para>&os; only guarantees that the Ports Collection works on
|
||||||
|
the <literal>-STABLE</literal> branches.
|
||||||
|
In
|
||||||
|
theory, you should be able to get by with running the latest
|
||||||
|
release of each stable branch (since the ABIs are not
|
||||||
|
supposed to change) but if you can run the branch, that is
|
||||||
|
even better.</para>
|
||||||
|
|
||||||
|
<para>Since the majority of &os; installations run on
|
||||||
|
PC-compatible machines (what is termed the
|
||||||
|
<literal>i386</literal> architecture), we expect you to keep
|
||||||
|
the port working on that architecture. We prefer that ports
|
||||||
|
also work on the <literal>amd64</literal> architecture
|
||||||
|
running native. It is completely fair to ask for help if
|
||||||
|
you do not have one of these machines.</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>The usual failure modes for
|
||||||
|
non-<literal>x86</literal> machines are that the original
|
||||||
|
programmers assumed that, for instance, pointers are
|
||||||
|
<literal>int</literal>s, or that a relatively lax older
|
||||||
|
<application>gcc</application> compiler was being used.
|
||||||
|
More and more, application authors are reworking their
|
||||||
|
code to remove these assumptions — but if the author
|
||||||
|
is not actively maintaining their code, you may need to do
|
||||||
|
this yourself.</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>These are the tasks you need to perform to ensure your
|
||||||
|
port is able to be built:</para>
|
||||||
|
|
||||||
|
<procedure>
|
||||||
|
<step>
|
||||||
|
<title>Watch for build failures</title>
|
||||||
|
|
||||||
|
<para>Check your mail for mail from
|
||||||
|
<literal>pkg-fallout@FreeBSD.org</literal>
|
||||||
|
and the <link xlink:href="http://portscout.FreeBSD.org">distfiles scanner</link>
|
||||||
|
to see if any of the port which are failing to build
|
||||||
|
are out of date.</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<title>Collect information</title>
|
||||||
|
|
||||||
|
<para>Once you are aware of a problem, collect information
|
||||||
|
to help you fix it. Build errors reported by
|
||||||
|
<literal>pkg-fallout</literal> are accompanied by logs
|
||||||
|
which will show you where the build failed. If the
|
||||||
|
failure was reported to you by a user, ask them to send
|
||||||
|
you information which may help in diagnosing the
|
||||||
|
problem, such as:</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Build logs</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>The commands and options used to build the
|
||||||
|
port (including options set in
|
||||||
|
<filename>/etc/make.conf</filename>)</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>A list of packages installed on their system
|
||||||
|
as shown by &man.pkg.info.1;</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>The version of &os; they are running as
|
||||||
|
shown by &man.uname.1;<command> -a</command></para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>When their ports collection was last
|
||||||
|
updated</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>When their ports tree amd
|
||||||
|
<filename>INDEX</filename> was last updated</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<title>Investigate and find a solution</title>
|
||||||
|
|
||||||
|
<para>Unfortunately there is no straightforward process to
|
||||||
|
follow to do this. Remember, though: if you are stuck,
|
||||||
|
ask for help! The &a.ports; is a good place to start,
|
||||||
|
and the upstream developers are often very
|
||||||
|
helpful.</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<title>Submit changes</title>
|
||||||
|
|
||||||
|
<para>Just as with updating a port, you should now
|
||||||
|
incorporate changes, review and test, submit your
|
||||||
|
changes in a PR, and provide feedback if
|
||||||
|
required.</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<title>Send patches to upstream authors</title>
|
||||||
|
|
||||||
|
<para>In some cases, you will have to make patches to the
|
||||||
|
port to make it run on FreeBSD. Some (but not all)
|
||||||
|
upstream authors will accept such patches back into
|
||||||
|
their code for the next release. If so, this may even
|
||||||
|
help their users on other BSD-based systems as well and
|
||||||
|
perhaps save duplicated effort. Please consider sending
|
||||||
|
any applicable patches to the authors as a
|
||||||
|
courtesy.</para>
|
||||||
|
</step>
|
||||||
|
</procedure>
|
||||||
|
</sect4>
|
||||||
|
|
||||||
|
<sect4>
|
||||||
|
|
||||||
|
<title>Investigate bug reports and PRs related to your
|
||||||
|
port</title>
|
||||||
|
|
||||||
|
<para>This section is about discovering and fixing
|
||||||
|
bugs.</para>
|
||||||
|
|
||||||
|
<para>&os;-specific bugs are generally caused by assumptions
|
||||||
|
about the build and runtime environments that do not apply
|
||||||
|
to &os;. You are less likely to encounter a problem of this
|
||||||
|
type, but it can be more subtle and difficult to
|
||||||
|
diagnose.</para>
|
||||||
|
|
||||||
|
<para>These are the tasks you need to perform to ensure your
|
||||||
|
port continues to work as intended:</para>
|
||||||
|
|
||||||
|
<procedure>
|
||||||
|
<step>
|
||||||
|
<title>Respond to bug reports</title>
|
||||||
|
|
||||||
|
<para>Bugs may be reported to you through email via the
|
||||||
|
<link xlink:href="https://bugs.FreeBSD.org/search/">
|
||||||
|
Problem Report database</link>. Bugs may also be
|
||||||
|
reported directly to you by users.</para>
|
||||||
|
|
||||||
|
<para>You should respond to PRs and other reports within
|
||||||
|
14 days, but please try not to take that long. Try to
|
||||||
|
respond as soon as possible, even if it is just to say
|
||||||
|
you need some more time before you can work on the
|
||||||
|
PR.</para>
|
||||||
|
|
||||||
|
<para>If you have not responded after 14 days, any
|
||||||
|
committer may commit from a PR that you have not
|
||||||
|
responded to via a
|
||||||
|
<literal>maintainer-timeout</literal>.</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<title>Collect information</title>
|
||||||
|
|
||||||
|
<para>If the person reporting the bug has not also
|
||||||
|
provided a fix, you need to collect the information that
|
||||||
|
will allow you to generate one.</para>
|
||||||
|
|
||||||
|
<para>If the bug is reproducible, you can collect most of
|
||||||
|
the required information yourself. If not, ask the
|
||||||
|
person who reported the bug to collect the information
|
||||||
|
for you, such as:</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>A detailed description of their actions,
|
||||||
|
expected program behavior and actual behavior</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Copies of input data used to trigger the
|
||||||
|
bug</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Information about their build and execution
|
||||||
|
environment — for example, a list of installed
|
||||||
|
packages and the output of &man.env.1;</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Core dumps</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Stack traces</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<title>Eliminate incorrect reports</title>
|
||||||
|
|
||||||
|
<para>Some bug reports may be incorrect. For example,
|
||||||
|
the user may have simply misused the program; or their
|
||||||
|
installed packages may be out of date and require
|
||||||
|
updating. Sometimes a reported bug is not specific to
|
||||||
|
&os;. In this case report the bug to the upstream
|
||||||
|
developers. If the bug is within your capabilities to
|
||||||
|
fix, you can also patch the port so that the fix is
|
||||||
|
applied before the next upstream release.</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<title>Find a solution</title>
|
||||||
|
|
||||||
|
<para>As with build errors, you will need to sort out a
|
||||||
|
fix to the problem. Again, remember to ask if you are
|
||||||
|
stuck!</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<title>Submit or approve changes</title>
|
||||||
|
|
||||||
|
<para>Just as with updating a port, you should now
|
||||||
|
incorporate changes, review and test, and submit your
|
||||||
|
changes in a PR (or send a follow-up if a PR already
|
||||||
|
exists for the problem). If another user has submitted
|
||||||
|
changes in the PR, you can also send a follow-up saying
|
||||||
|
whether or not you approve the changes.</para>
|
||||||
|
</step>
|
||||||
|
</procedure>
|
||||||
|
</sect4>
|
||||||
|
|
||||||
|
<sect4>
|
||||||
|
<title>Providing support</title>
|
||||||
|
|
||||||
|
<para>Part of being a maintainer is providing support —
|
||||||
|
not for the software in general — but for the port and
|
||||||
|
any &os;-specific quirks and problems. Users may contact
|
||||||
|
you with questions, suggestions, problems and patches. Most
|
||||||
|
of the time their correspondence will be specific to
|
||||||
|
&os;.</para>
|
||||||
|
|
||||||
|
<para>Occasionally you may have to invoke your skills in
|
||||||
|
diplomacy, and kindly point users seeking general support to
|
||||||
|
the appropriate resources. Less frequently you will
|
||||||
|
encounter a person asking why the <literal>RPM</literal>s
|
||||||
|
are not up to date or how can they get the software to run
|
||||||
|
under Foo Linux. Take the opportunity to tell them that
|
||||||
|
your port is up to date (if it is, of course!), and suggest
|
||||||
|
that they try &os;.</para>
|
||||||
|
|
||||||
|
<para>Sometimes users and developers will decide that you are
|
||||||
|
a busy person whose time is valuable and do some of the work
|
||||||
|
for you. For example, they might:</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>submit a PR or send you patches to update your
|
||||||
|
port,</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>investigate and perhaps provide a fix to a PR,
|
||||||
|
or</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>otherwise submit changes to your port.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
<para>In these cases your main obligation is to respond in a
|
||||||
|
timely manner. Again, the timeout for non-responsive
|
||||||
|
maintainers is 14 days. After this period changes may be
|
||||||
|
committed unapproved. They have taken the trouble to do
|
||||||
|
this for you; so please try to at least respond promptly.
|
||||||
|
Then review, approve, modify or discuss their changes with
|
||||||
|
them as soon as possible.</para>
|
||||||
|
|
||||||
|
<para>If you can make them feel that their contribution is
|
||||||
|
appreciated (and it should be) you will have a better chance
|
||||||
|
persuading them to do more things for you in the future
|
||||||
|
<!-- smiley -->:-).</para>
|
||||||
|
</sect4>
|
||||||
|
</sect3>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 xml:id="fix-broken">
|
||||||
|
<title>Finding and fixing a broken port</title>
|
||||||
|
|
||||||
|
<para>There are two really good places to find a port that needs
|
||||||
|
some attention.</para>
|
||||||
|
|
||||||
|
<para>You can use the <link xlink:href="http://bugs.freebsd.org/search">web
|
||||||
|
interface</link> to the Problem Report database to search
|
||||||
|
through and view unresolved PRs. The majority of ports PRs are
|
||||||
|
updates, but with a little searching and skimming over synopses
|
||||||
|
you should be able to find something interesting to work on (the
|
||||||
|
<literal>sw-bug</literal> class is a good place to
|
||||||
|
start).</para>
|
||||||
|
|
||||||
|
<para>The other place is the <link xlink:href="http://portsmon.FreeBSD.org/">&os; Ports Monitoring
|
||||||
|
System</link>. In particular look for unmaintained ports
|
||||||
|
with build errors and ports that are marked
|
||||||
|
<varname>BROKEN</varname>. It is OK to send changes for a
|
||||||
|
maintained port as well, but remember to ask the maintainer in
|
||||||
|
case they are already working on the problem.</para>
|
||||||
|
|
||||||
|
<para>Once you have found a bug or problem, collect information,
|
||||||
|
investigate and fix! If there is an existing PR, follow up to
|
||||||
|
that. Otherwise create a new PR. Your changes will be reviewed
|
||||||
|
and, if everything checks out, committed.</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 xml:id="mortal-coil">
|
||||||
|
<title>When to call it quits</title>
|
||||||
|
|
||||||
|
<para>As your interests and commitments change, you may find that
|
||||||
|
you no longer have time to continue some (or all) of your ports
|
||||||
|
contributions. That is fine! Please let us know if you are no
|
||||||
|
longer using a port or have otherwise lost time or interest in
|
||||||
|
being a maintainer. In this way we can go ahead and allow other
|
||||||
|
people to try to work on existing problems with the port without
|
||||||
|
waiting for your response. Remember, &os; is a volunteer
|
||||||
|
project, so if maintaining a port is no fun anymore, it is
|
||||||
|
probably time to let someone else do it!</para>
|
||||||
|
|
||||||
|
<para>In any case, the Ports Management Team
|
||||||
|
(<literal>portmgr</literal>) reserves the right to reset your
|
||||||
|
maintainership if you have not actively maintained your port in
|
||||||
|
some time. (Currently, this is set to 3 months.) By this, we
|
||||||
|
mean that there are unresolved problems or pending updates that
|
||||||
|
have not been worked on during that time.</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 xml:id="resources">
|
||||||
|
<title>Resources for ports maintainers and contributors</title>
|
||||||
|
|
||||||
|
<para>The <link xlink:href="&url.books.porters-handbook;">Porter's
|
||||||
|
Handbook</link> is your hitchhiker's guide to the ports
|
||||||
|
system. Keep it handy!</para>
|
||||||
|
|
||||||
|
<para><link xlink:href="&url.articles.problem-reports;">Writing FreeBSD
|
||||||
|
Problem Reports</link> describes how to best formulate and
|
||||||
|
submit a PR. In 2005 more than eleven thousand ports PRs were
|
||||||
|
submitted! Following this article will greatly assist us in
|
||||||
|
reducing the time needed to handle your PRs.</para>
|
||||||
|
|
||||||
|
<para>The <link xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">
|
||||||
|
Problem Report database</link>.</para>
|
||||||
|
|
||||||
|
<para>The <link xlink:href="http://portsmon.FreeBSD.org/">FreeBSD Ports
|
||||||
|
Monitoring System</link> can show you cross-referenced
|
||||||
|
information about ports such as build errors and problem
|
||||||
|
reports. If you are a maintainer you can use it to check on the
|
||||||
|
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 <link xlink:href="http://portscout.FreeBSD.org">FreeBSD Ports
|
||||||
|
distfile scanner</link> 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
|
||||||
|
<varname>MASTER_SITES</varname> updated.</para>
|
||||||
|
|
||||||
|
<para><package>ports-mgmt/poudriere</package> is the most
|
||||||
|
thorough way to test a port through the entire cycle of
|
||||||
|
installation, packaging, and deinstallation.
|
||||||
|
documentation is located at the
|
||||||
|
<link xlink:href="https://fossil.etoilebsd.net/poudriere/">poudriere home page</link></para>
|
||||||
|
|
||||||
|
<para>&man.portlint.1; is an application which can be used to
|
||||||
|
verify that your port conforms to many important stylistic and
|
||||||
|
functional guidelines. <application>portlint</application> is a
|
||||||
|
simple heuristic application, so you should use it
|
||||||
|
<emphasis>only as a guide</emphasis>. If
|
||||||
|
<application>portlint</application> suggests changes which seem
|
||||||
|
unreasonable, consult the <link xlink:href="&url.books.porters-handbook;">Porter's Handbook</link>
|
||||||
|
or ask for advice.</para>
|
||||||
|
|
||||||
|
<para>The &a.ports; is for general ports-related discussion. It
|
||||||
|
is a good place to ask for help. You can <link xlink:href="http://lists.freebsd.org/mailman/listinfo">subscribe, or
|
||||||
|
read and search the list archives</link>. Reading the
|
||||||
|
archives of the &a.ports-bugs; and the &a.cvs-ports; may also be
|
||||||
|
of interest.</para>
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<index/>
|
<index/>
|
||||||
</article>
|
</article>
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
SUBDIR = building-products
|
SUBDIR = building-products
|
||||||
SUBDIR+= committers-guide
|
SUBDIR+= committers-guide
|
||||||
SUBDIR+= contributing
|
SUBDIR+= contributing
|
||||||
SUBDIR+= contributing-ports
|
|
||||||
SUBDIR+= contributors
|
SUBDIR+= contributors
|
||||||
SUBDIR+= explaining-bsd
|
SUBDIR+= explaining-bsd
|
||||||
SUBDIR+= filtering-bridges
|
SUBDIR+= filtering-bridges
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
#
|
|
||||||
# $FreeBSD$
|
|
||||||
#
|
|
||||||
# Article: Contributing to the FreeBSD Ports Collection
|
|
||||||
|
|
||||||
DOC?= article
|
|
||||||
|
|
||||||
FORMATS?= html
|
|
||||||
WITH_ARTICLE_TOC?= YES
|
|
||||||
|
|
||||||
INSTALL_COMPRESSED?=gz
|
|
||||||
INSTALL_ONLY_COMPRESSED?=
|
|
||||||
|
|
||||||
SRCS= article.xml
|
|
||||||
|
|
||||||
URL_RELPREFIX?= ../../../..
|
|
||||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
|
||||||
|
|
||||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
|
File diff suppressed because it is too large
Load diff
|
@ -7,7 +7,6 @@ SUBDIR =
|
||||||
#SUBDIR+= committers-guide
|
#SUBDIR+= committers-guide
|
||||||
#SUBDIR+= console-server
|
#SUBDIR+= console-server
|
||||||
SUBDIR+= contributing
|
SUBDIR+= contributing
|
||||||
#SUBDIR+= contributing-ports
|
|
||||||
SUBDIR+= contributors
|
SUBDIR+= contributors
|
||||||
#SUBDIR+= cups
|
#SUBDIR+= cups
|
||||||
#SUBDIR+= explaining-bsd
|
#SUBDIR+= explaining-bsd
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
|
|
||||||
SUBDIR =
|
SUBDIR =
|
||||||
SUBDIR+= contributing
|
SUBDIR+= contributing
|
||||||
SUBDIR+= contributing-ports
|
|
||||||
SUBDIR+= explaining-bsd
|
SUBDIR+= explaining-bsd
|
||||||
SUBDIR+= problem-reports
|
SUBDIR+= problem-reports
|
||||||
SUBDIR+= solid-state
|
SUBDIR+= solid-state
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
#
|
|
||||||
# $FreeBSD$
|
|
||||||
#
|
|
||||||
# %SOURCE% en_US.ISO8859-1/articles/contributing-ports/Makefile
|
|
||||||
# %SRCID% 39631
|
|
||||||
#
|
|
||||||
# Article: Contributing to the FreeBSD Ports Collection
|
|
||||||
|
|
||||||
DOC?= article
|
|
||||||
|
|
||||||
FORMATS?= html
|
|
||||||
WITH_ARTICLE_TOC?= YES
|
|
||||||
|
|
||||||
INSTALL_COMPRESSED?=gz
|
|
||||||
INSTALL_ONLY_COMPRESSED?=
|
|
||||||
|
|
||||||
SRCS= article.xml
|
|
||||||
|
|
||||||
URL_RELPREFIX?= ../../../..
|
|
||||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
|
||||||
|
|
||||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
|
|
@ -1,847 +0,0 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
||||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
|
||||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
|
||||||
<!--
|
|
||||||
$FreeBSD$
|
|
||||||
|
|
||||||
%SOURCE% en_US.ISO8859-1/articles/contributing-ports/article.xml
|
|
||||||
%SRCID% 41645
|
|
||||||
-->
|
|
||||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="nl">
|
|
||||||
<info><title>Bijdragen aan de &os; Portscollectie</title>
|
|
||||||
|
|
||||||
|
|
||||||
<abstract>
|
|
||||||
<title>Abstract</title>
|
|
||||||
|
|
||||||
<para>Dit artikel beschrijft de manieren waarop een individu kan
|
|
||||||
bijdragen aan de &os; Portscollectie.</para>
|
|
||||||
|
|
||||||
<para><emphasis>Vertaald door René Ladan</emphasis>.</para>
|
|
||||||
</abstract>
|
|
||||||
|
|
||||||
<authorgroup>
|
|
||||||
<author><personname><firstname>Sam</firstname><surname>Lawrance</surname></personname></author>
|
|
||||||
|
|
||||||
<author><personname><firstname>Mark</firstname><surname>Linimon</surname></personname></author>
|
|
||||||
</authorgroup>
|
|
||||||
|
|
||||||
<legalnotice xml:id="trademarks" role="trademarks">
|
|
||||||
&tm-attrib.freebsd;
|
|
||||||
|
|
||||||
&tm-attrib.general;
|
|
||||||
</legalnotice>
|
|
||||||
|
|
||||||
<pubdate>$FreeBSD$</pubdate>
|
|
||||||
|
|
||||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
|
||||||
</info>
|
|
||||||
|
|
||||||
<indexterm><primary>bijdragen aan ports</primary></indexterm>
|
|
||||||
|
|
||||||
<sect1>
|
|
||||||
<title>Introductie</title>
|
|
||||||
|
|
||||||
<para>De Portscollectie is een eeuwig werk-in-uitvoering. We willen
|
|
||||||
onze gebruikers een reservoir van software van derde partijen
|
|
||||||
bieden dat gemakkelijk te gebruiken, bijgewerkt, en van hoge
|
|
||||||
kwaliteit is. We hebben mensen nodig die wat tijd en moeite
|
|
||||||
investeren om ons dit doel te helpen bereiken.</para>
|
|
||||||
|
|
||||||
<para>Iedereen kan erin betrokken raken, en er zijn vele manieren om
|
|
||||||
dat te doen. Bijdragen aan ports is een uitstekende manier om te
|
|
||||||
helpen om iets aan het project <quote>terug te geven</quote>. Of u nu op
|
|
||||||
zoek bent naar een blijvende rol, of naar een uitdaging voor een
|
|
||||||
regenachtige dag, wij stellen uw hulp zeer op prijs!</para>
|
|
||||||
|
|
||||||
<para>Als een vrijwilliger kunt u doen en laten wat u wilt. We
|
|
||||||
vragen echter wel dat u op de hoogte bent van wat andere leden van
|
|
||||||
de &os;-gemeenschap van u verwachten. U doet er goed aan om dit
|
|
||||||
te overwegen voordat u besluit om vrijwilliger te worden.</para>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1 xml:id="what-contribute">
|
|
||||||
<title>Wat u kunt doen om te helpen</title>
|
|
||||||
|
|
||||||
<para>Er zijn een aantal gemakkelijke manieren waarop u bij kunt
|
|
||||||
dragen om de portsboom actueel en in een goede toestand te
|
|
||||||
houden:</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>Zoek wat leuke of nuttige software en <link linkend="create-port">creëer er een port</link>
|
|
||||||
voor.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Er is een groot aantal niet-onderhouden ports. Wordt een
|
|
||||||
onderhouder en <link linkend="adopt-port">adopteer een
|
|
||||||
port</link>.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Als u een port gecreëerd of geadopteerd heeft, dient
|
|
||||||
u op de hoogte te zijn van <link linkend="maintain-port">wat
|
|
||||||
u als onderhouder moet doen</link>.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Als u op zoek bent naar een snelle uitdaging zou u <link linkend="fix-broken">een bug of een kapotte port kunnen
|
|
||||||
repareren</link>.</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1 xml:id="create-port">
|
|
||||||
<title>Een nieuwe port creëeren</title>
|
|
||||||
|
|
||||||
<para>Er is een apart document beschikbaar om u door het
|
|
||||||
creëeren (en bijwerken) van een port te loodsen genaamd het
|
|
||||||
<link xlink:href="&url.books.porters-handbook.en;">Porter's
|
|
||||||
Handbook</link>. Het Porter's Handbook is het beste naslagwerk
|
|
||||||
wat betreft het werken met het portssysteem. Het noemt details
|
|
||||||
over hoe het portssysteem werkt en bespreekt aangeraden
|
|
||||||
praktijken.</para>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1 xml:id="adopt-port">
|
|
||||||
<title>Een niet-onderhouden port adopteren</title>
|
|
||||||
|
|
||||||
<sect2>
|
|
||||||
<title>Een niet-onderhouden port kiezen</title>
|
|
||||||
|
|
||||||
<para>Het beheer overnemen van ports die niet onderhouden worden
|
|
||||||
is een uitstekende manier om betrokken te raken.
|
|
||||||
Niet-onderhouden ports worden alleen bijgewerkt en gerepareerd
|
|
||||||
wanneer iemand zich aanbiedt om eraan te werken. Er is een
|
|
||||||
groot aantal ports dat niet onderhouden wordt. Het is een goed
|
|
||||||
idee om met het adopteren van een port te beginnen die u
|
|
||||||
regelmatig gebruikt.</para>
|
|
||||||
|
|
||||||
<para>Voor niet-onderhouden ports staat de
|
|
||||||
<varname>MAINTAINER</varname> op
|
|
||||||
<literal>ports@FreeBSD.org</literal>. Een lijst van ports die
|
|
||||||
niet onderhouden wordt en hun huidige fouten en
|
|
||||||
probleemrapporten kan worden bekeken op het <link xlink:href="http://portsmon.FreeBSD.org/portsconcordanceformaintainer.py?maintainer=ports%40FreeBSD.org">
|
|
||||||
&os; Ports Monitoring System</link>.</para>
|
|
||||||
|
|
||||||
<para>Sommige ports beïnvloeden een groot aantal anderen
|
|
||||||
vanwege afhankelijkheden en relaties als slaafport. Over het
|
|
||||||
algemeen wensen we dat mensen wat ervaring hebben voordat ze
|
|
||||||
zulke ports onderhouden.</para>
|
|
||||||
|
|
||||||
<para>U kunt uitzoeken of een port wel of geen afhankelijkheden
|
|
||||||
of slaafpoorten heeft door in een hoofdindex van ports genaamd
|
|
||||||
<filename>INDEX</filename> te kijken. (De naam van het bestand
|
|
||||||
varieert naar gelang de uitgave van &os;; bijvoorbeeld
|
|
||||||
<filename>INDEX-8</filename>.) Sommige ports hebben
|
|
||||||
conditionele afhankelijkheden die niet standaard in een bouw van
|
|
||||||
<filename>INDEX</filename> worden opgenomen. We verwachten dat
|
|
||||||
u zulke ports kunt herkennen door naar de
|
|
||||||
<filename>Makefile</filename> van andere ports te kijken.</para>
|
|
||||||
</sect2>
|
|
||||||
|
|
||||||
<sect2>
|
|
||||||
<title>Hoe een port te adopteren</title>
|
|
||||||
|
|
||||||
<para>Zorg eerst dat u uw <link linkend="maintain-port">
|
|
||||||
verantwoordelijkheden als onderhouder</link> begrijpt. Lees
|
|
||||||
ook het <link xlink:href="&url.books.porters-handbook.en;">Porter's
|
|
||||||
Handbook</link>. <emphasis>Neem alstublieft niet meer werk
|
|
||||||
op u dan dat u op een comfortabele manier
|
|
||||||
aankunt.</emphasis></para>
|
|
||||||
|
|
||||||
<para>U kunt zo snel als u wilt het beheer van een
|
|
||||||
niet-onderhouden port aanvragen. Stel
|
|
||||||
<varname>MAINTAINER</varname> in op uw emailadres en stuur een
|
|
||||||
PR (probleemrapport) in met de verandering. Als de port
|
|
||||||
bouwfouten bevat of moet worden bijgewerkt, dan kunt u deze
|
|
||||||
veranderingen in hetzelfde PR opnemen. Dit helpt omdat veel
|
|
||||||
committers minder bereid zijn om beheer aan iemand toe te kennen
|
|
||||||
die geen bekende geschiedenis met &os; heeft. Het insturen van
|
|
||||||
PR's die bouwfouten repareren of ports bijwerken zijn de beste
|
|
||||||
manier om er een op te bouwen.</para>
|
|
||||||
|
|
||||||
<para>Stuur uw PR in met categorie <literal>ports</literal> en
|
|
||||||
klasse <literal>change-request</literal>. Een committer zal uw
|
|
||||||
PR nakijken, de veranderingen committen, en uiteindelijk het PR
|
|
||||||
sluiten. Soms kan dit proces even duren (committers zijn ook
|
|
||||||
vrijwilligers).</para>
|
|
||||||
</sect2>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1 xml:id="maintain-port">
|
|
||||||
<title>De uitdaging voor port-onderhouders</title>
|
|
||||||
|
|
||||||
<para>Deze sectie geeft u een idee waarom ports onderhouden moeten
|
|
||||||
worden en schetst de verantwoordelijkheden van een onderhouder van
|
|
||||||
een port.</para>
|
|
||||||
|
|
||||||
<sect2 xml:id="why-maintenance">
|
|
||||||
<title>Waarom ports onderhoud nodig hebben</title>
|
|
||||||
|
|
||||||
<para>Een port creëeren is een eenmalige taak. Er zeker van
|
|
||||||
zijn dat een port actueel is en blijft bouwen en draaien is
|
|
||||||
een voortdurende inspanning. Onderhouders zijn mensen die
|
|
||||||
wat van hun tijd wijden aan het vervullen van deze
|
|
||||||
doelen.</para>
|
|
||||||
|
|
||||||
<para>De voornaamste reden waarom ports onderhoud nodig hebben is
|
|
||||||
om het nieuwste en beste van software van derde partijen aan de
|
|
||||||
&os;-gemeenschap te geven. Een aanvullende uitdaging is om
|
|
||||||
individuele ports werkend te houden binnen het evoluerende
|
|
||||||
raamwerk van de Portscollectie.</para>
|
|
||||||
|
|
||||||
<para>Als onderhouder zult u de volgende uitdagingen moeten
|
|
||||||
aangaan:</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<formalpara>
|
|
||||||
<title>Nieuwe versies en updates van software.</title>
|
|
||||||
|
|
||||||
<para>Nieuwe versies en updates van bestaande geporteerde
|
|
||||||
software komen continu beschikbaar, en moeten in de
|
|
||||||
Portscollectie worden verwerkt om actuele software aan te
|
|
||||||
bieden.</para>
|
|
||||||
</formalpara>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<formalpara>
|
|
||||||
<title>Veranderingen aan afhankelijkheden.</title>
|
|
||||||
|
|
||||||
<para>Als er significante wijzigingen zijn gemaakt aan de
|
|
||||||
afhankelijkheden van uw port, kan het zijn dat de port
|
|
||||||
moet worden bijgewerkt zodat het correct blijft
|
|
||||||
werken.</para>
|
|
||||||
</formalpara>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<formalpara>
|
|
||||||
<title>Veranderingen die afhankelijke ports
|
|
||||||
beïnvloeden.</title>
|
|
||||||
|
|
||||||
<para>Als andere ports afhankelijk zijn van een port die u
|
|
||||||
onderhoudt, kan het zijn om veranderingen aan uw port met
|
|
||||||
andere onderhouders te coördineren.</para>
|
|
||||||
</formalpara>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<formalpara>
|
|
||||||
<title>Interactie met andere gebruikers, onderhouders, en
|
|
||||||
ontwikkelaars.</title>
|
|
||||||
|
|
||||||
<para>Een gedeelte van een onderhouder zijn is het vervullen
|
|
||||||
van een ondersteunende rol. Er wordt niet van u verwacht
|
|
||||||
dat u algemene ondersteuning biedt (maar we juichen het
|
|
||||||
toe als u dat doet). U dient een centraal punt voor
|
|
||||||
&os;-specifieke zaken met betrekking tot uw ports te
|
|
||||||
bieden.</para>
|
|
||||||
</formalpara>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<formalpara>
|
|
||||||
<title>Bugs oplossen.</title>
|
|
||||||
|
|
||||||
<para>Een port kan vatbaar zijn voor bugs die specifiek zijn
|
|
||||||
voor &os;. U dient deze bugs te onderzoeken en te
|
|
||||||
repareren wanneer ze worden gerapporteerd. Het grondig
|
|
||||||
testen van een port om problemen te identificeren voordat
|
|
||||||
ze in de Portscollectie terechtkomen is nog beter.</para>
|
|
||||||
</formalpara>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<formalpara>
|
|
||||||
<title>Veranderingen aan portsinfrastructuur en
|
|
||||||
beleid.</title>
|
|
||||||
|
|
||||||
<para>Af en toe worden die systemen die gebruikt worden om
|
|
||||||
ports en pakketten te bouwen bijgewerkt of wordt er een
|
|
||||||
nieuwe aanbeveling met betrekking tot de infrastructuur
|
|
||||||
gemaakt. U dient van deze veranderingen op de hoogte te
|
|
||||||
zijn indien ze betrekking hebben op uw ports en ze
|
|
||||||
bijgewerkt moeten worden.</para>
|
|
||||||
</formalpara>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<formalpara>
|
|
||||||
<title>Veranderingen aan het basissysteem.</title>
|
|
||||||
|
|
||||||
<para>&os; is constant in ontwikkeling. Veranderingen aan
|
|
||||||
software, bibliotheken, de kernel, of zelfs
|
|
||||||
beleidsveranderingen kunnen noodzakelijke veranderingen
|
|
||||||
aan ports veroorzaken.</para>
|
|
||||||
</formalpara>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</sect2>
|
|
||||||
|
|
||||||
<sect2>
|
|
||||||
<title>Verantwoordelijkheden als onderhouder</title>
|
|
||||||
|
|
||||||
<sect3>
|
|
||||||
<title>Houd uw ports actueel</title>
|
|
||||||
|
|
||||||
<para>Deze sectie schetst het proces dat gevolgd wordt om uw
|
|
||||||
ports actueel te houden.</para>
|
|
||||||
|
|
||||||
<para>Dit is een overzicht. Meer informatie over het bijwerken
|
|
||||||
van een port is beschikbaar in het <link xlink:href="&url.books.porters-handbook.en;">Porter's
|
|
||||||
Handbook</link>.</para>
|
|
||||||
|
|
||||||
<procedure>
|
|
||||||
<step>
|
|
||||||
<title>Kijk uit naar updates</title>
|
|
||||||
|
|
||||||
<para>Houd de stroomopwaartse leverancier in de gaten wat
|
|
||||||
betreft nieuwe versies, updates, en beveiligingsreparaties
|
|
||||||
voor de software. Mailinglijsten met aankondigingen of
|
|
||||||
webpagina's met nieuws zijn hiervoor handig. Soms zullen
|
|
||||||
gebruikers contact met u opnemen en vragen wanneer uw port
|
|
||||||
wordt bijgewerkt. Als u het druk hebt met andere dingen
|
|
||||||
of u het om enige andere reden niet nu kunt bijwerken,
|
|
||||||
vraag ze dan om u te helpen door een update te
|
|
||||||
sturen.</para>
|
|
||||||
|
|
||||||
<para>U kunt ook geautomatiseerde email van de <literal>&os;
|
|
||||||
Ports Version Check</literal> ontvangen die u informeert
|
|
||||||
of er een nieuwe versie van het distributiebestand van uw
|
|
||||||
port beschikbaar is. Meer informatie over dat systeem
|
|
||||||
(inclusief hoe toekomstige emails te stoppen) staat in het
|
|
||||||
bericht.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Verwerk veranderingen</title>
|
|
||||||
|
|
||||||
<para>Verwerk veranderingen in de port wanneer ze
|
|
||||||
beschikbaar komen. U dient een patch aan te kunnen maken
|
|
||||||
tussen de originele port en uw bijgewerkte port.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Herzie en test</title>
|
|
||||||
|
|
||||||
<para>Herzie en test uw veranderingen grondig:</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>Bouw, installeer, en test uw port op zoveel
|
|
||||||
mogelijk platforms en architecturen. Het is
|
|
||||||
gebruikelijk dat een port op één tak of
|
|
||||||
platform werkt maar faalt op een ander.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Zorg dat de afhankelijkheden van uw port compleet
|
|
||||||
zijn. De aangeraden manier om dit te doen is door uw
|
|
||||||
eigen <application>tinderbox</application> voor ports
|
|
||||||
te installeren. Bekijk <link linkend="resources">bronnen</link> voor meer
|
|
||||||
informatie.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Controleer of de pakketlijst actueel is. Dit
|
|
||||||
omvat het toevoegen van nieuwe bestanden en mappen en
|
|
||||||
het verwijderen van ongebruikte regels.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Verifieer uw port met &man.portlint.1; als gids.
|
|
||||||
Bekijk <link linkend="resources">bronnen</link> voor
|
|
||||||
belangrijke informatie over het gebruik van
|
|
||||||
<application>portlint</application>.</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Overweeg of veranderingen aan uw port andere ports
|
|
||||||
zouden kunnen kapotmaken. Bespreek de veranderingen
|
|
||||||
met de onderhouders van die ports als dit het geval
|
|
||||||
is. Dit is speciaal van belang als uw update de
|
|
||||||
versie van de gedeelde bibliotheek verandert; in dit
|
|
||||||
geval dienen de afhankelijke ports minstens een
|
|
||||||
verhoging van de <varname>PORTREVISION</varname> te
|
|
||||||
krijgen zodat ze automatisch worden bijgewerkt door
|
|
||||||
geautomatiseerde gereedschappen als
|
|
||||||
<application>portmaster</application> of
|
|
||||||
&man.portupgrade.1;.</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Stuur veranderingen in</title>
|
|
||||||
|
|
||||||
<para>Verzend uw update door een PR met een uitleg van de
|
|
||||||
veranderingen en een patch die de verschillen tussen de
|
|
||||||
originele port en de bijgewerkte port bevat in te sturen.
|
|
||||||
Bekijk alstublieft <link xlink:href="&url.articles.problem-reports;">Probleemrapporten
|
|
||||||
voor &os; schrijven</link> voor informatie over hoe
|
|
||||||
een echt goed PR te schrijven.</para>
|
|
||||||
|
|
||||||
<note>
|
|
||||||
<para>Stuur alstublieft geen &man.shar.1;-archief van de
|
|
||||||
gehele port; gebruik in plaats daarvan &man.diff.1;
|
|
||||||
<literal>-ruN</literal>. Op deze manier kunnen committers
|
|
||||||
veel gemakkelijker zien welke veranderingen er precies
|
|
||||||
gemaakt worden. De sectie in het Porter's Handbook over
|
|
||||||
<link xlink:href="&url.books.porters-handbook.en;/port-upgrading.html">
|
|
||||||
Upgrading</link> bevat meer informatie
|
|
||||||
hierover.</para>
|
|
||||||
</note>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Wacht</title>
|
|
||||||
|
|
||||||
<para>Op een gegeven moment zal een committer uw PR
|
|
||||||
behandelen. Dit kan minuten, maar ook weken duren — ben
|
|
||||||
dus alstublieft geduldig.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Geef feedback</title>
|
|
||||||
|
|
||||||
<para>Als een committer een probleem vindt in uw
|
|
||||||
veranderingen zullen ze het waarschijnlijk aan u
|
|
||||||
terugkoppelen. Een snel antwoord helpt om uw PR sneller
|
|
||||||
gecommit te krijgen, en is beter voor het behouden van een
|
|
||||||
discussie wanneer er geprobeerd wordt om problemen op te
|
|
||||||
lossen.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>En ten slotte</title>
|
|
||||||
|
|
||||||
<para>Uw veranderingen zullen gecommit worden en uw port zal
|
|
||||||
bijgewerkt zijn. Het PR wordt vervolgens door de
|
|
||||||
committer gesloten. Dat is alles!</para>
|
|
||||||
</step>
|
|
||||||
</procedure>
|
|
||||||
</sect3>
|
|
||||||
|
|
||||||
<sect3>
|
|
||||||
<title>Zorg ervoor dat uw ports correct blijven bouwen</title>
|
|
||||||
|
|
||||||
<para>Deze sectie gaat over het ontdekken en oplossen van
|
|
||||||
problemen die verhinderen dat uw ports correct bouwen.</para>
|
|
||||||
|
|
||||||
<para>&os; garandeert alleen dat de Portscollectie op de
|
|
||||||
<literal>-STABLE</literal>-takken werkt. U dient
|
|
||||||
<literal>7-STABLE</literal> of <literal>8-STABLE</literal> te
|
|
||||||
draaien, bij voorkeur de laatste. In theorie zou het
|
|
||||||
voldoende moeten zijn om de nieuwste uitgave van elke
|
|
||||||
STABLE-tak te draaien (aangezien de ABI's niet horen te
|
|
||||||
veranderen), maar als u die tak kunt draaien is dat
|
|
||||||
beter.</para>
|
|
||||||
|
|
||||||
<para>Aangezien de meerderheid van &os;-installaties op
|
|
||||||
PC-compatibele machines draait (wat wordt aangeduid als de
|
|
||||||
<literal>i386</literal>-architectuur), verwachten wij van u
|
|
||||||
dat u de port op die architectuur werkend houdt. We prefereren dat
|
|
||||||
de ports ook op de <literal>amd64</literal>-architectuur draaien.
|
|
||||||
Het is prima om hulp te vragen als u een van deze machines niet
|
|
||||||
heeft.</para>
|
|
||||||
|
|
||||||
<note>
|
|
||||||
<para>De gebruikelijke manieren om te falen voor
|
|
||||||
niet-<literal>i386</literal> machines zijn dat de originele
|
|
||||||
programmeurs aannamen dat, bijvoorbeeld, pointers
|
|
||||||
<literal>int</literal>s zijn of dat een relatief lakse
|
|
||||||
oudere <application>gcc</application> compiler werd
|
|
||||||
gebruikt. Steeds meer reorganiseren applicatie-auteurs hun
|
|
||||||
code om deze aannames te verwijderen — maar als de
|
|
||||||
auteur de code niet actief onderhoudt, zult u dit zelf
|
|
||||||
moeten doen.</para>
|
|
||||||
</note>
|
|
||||||
|
|
||||||
<para>Deze taken moet u uitvoeren om ervoor te zorgen dat uw
|
|
||||||
port gebouwd kan worden:</para>
|
|
||||||
|
|
||||||
<procedure>
|
|
||||||
<step>
|
|
||||||
<title>Kijk uit naar bouwfouten</title>
|
|
||||||
|
|
||||||
<para>Controleer regelmatig het geautomatiseerde
|
|
||||||
portbouwcluster, <link xlink:href="http://pointyhat.FreeBSD.org">pointyhat</link>,
|
|
||||||
en de <link xlink:href="http://portscout.FreeBSD.org">scanner voor
|
|
||||||
distributiebestanden</link> om te zien
|
|
||||||
of er ports zijn die u onderhoudt die er niet in slagen om
|
|
||||||
gebouwd of opgehaald te worden (bekijk <link linkend="resources">bronnen</link> voor meer informatie
|
|
||||||
over deze systemen). Rapportages over mislukkingen kunnen
|
|
||||||
ook via email van andere gebruikers of geautomatiseerde
|
|
||||||
systemen tot u komen.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Verzamel informatie</title>
|
|
||||||
|
|
||||||
<para>Als u eenmaal op de hoogte bent van een probleem,
|
|
||||||
verzamel dan informatie die u helpt het op te lossen.
|
|
||||||
Bouwfouten die door <literal>pointyhat</literal> worden
|
|
||||||
gerapporteerd worden vergezeld door logs die aangeven waar
|
|
||||||
het bouwen mislukte. Als de mislukking door een gebruiker
|
|
||||||
aan u werd gerapporteerd, vraag ze dan om informatie te
|
|
||||||
verzenden die u helpt om het probleem te vast te stellen,
|
|
||||||
zoals:</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>Bouwlogs</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>De commando's en opties die gebruikt werden om de
|
|
||||||
port te bouwen (inclusief opties die in
|
|
||||||
<filename>/etc/make.conf</filename> zijn
|
|
||||||
ingesteld)</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Een lijst met op hun systeem geïnstalleerde
|
|
||||||
pakketten als aangegeven door &man.pkg.info.1;</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>De versie van &os; die ze draaien als aangegeven
|
|
||||||
door &man.uname.1;<command> -a</command></para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Wanneer hun Portscollectie voor het laatst was
|
|
||||||
bijgewerkt</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Wanneer hun bestand <filename>INDEX</filename>
|
|
||||||
voor het laatst was bijgewerkt</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Onderzoek en zoek een oplossing</title>
|
|
||||||
|
|
||||||
<para>Helaas is er geen rechttoe-rechtaan proces dat gevolgd
|
|
||||||
kan worden om dit te doen. Herinner: vraag om hulp als u
|
|
||||||
vast zit! De &a.ports; is een goede plaats om te starten,
|
|
||||||
en de stroomopwaartse ontwikkelaars zijn vaak zeer
|
|
||||||
behulpzaam.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Stuur veranderingen in</title>
|
|
||||||
|
|
||||||
<para>Net zoals bij het bijwerken van een port, dient u nu
|
|
||||||
de veranderingen te integreren, te herzien en te testen,
|
|
||||||
uw veranderingen als een PR in te sturen, en feedback te
|
|
||||||
geven als dat nodig is.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Stuur patches naar de stroomopwaartse auteurs</title>
|
|
||||||
|
|
||||||
<para>In sommige gevallen moet u patches maken om de port op
|
|
||||||
&os; te laten draaien. Sommige (maar niet alle)
|
|
||||||
stroomopwaartse auteurs zullen zulke patches in hun code
|
|
||||||
accepteren voor de volgende uitgave. Als dit zo is, kan
|
|
||||||
dit zelfs hun gebruikers op andere op BSD-gebaseerde
|
|
||||||
systemen helpen en misschien dubbel werk besparen.
|
|
||||||
Overweeg alstublieft om geschikte patches naar de auteurs
|
|
||||||
te zenden als teken van goede wil.</para>
|
|
||||||
</step>
|
|
||||||
</procedure>
|
|
||||||
</sect3>
|
|
||||||
|
|
||||||
<sect3>
|
|
||||||
<title>Onderzoek foutrapporten en PR's die aan uw port
|
|
||||||
gerelateerd zijn</title>
|
|
||||||
|
|
||||||
<para>Deze sectie gaat over het ontdekken en repareren van
|
|
||||||
bugs.</para>
|
|
||||||
|
|
||||||
<para>&os;-specifieke bugs worden in het algemeen veroorzaakt
|
|
||||||
door aannames over de bouw- en draaiomgevingen die niet voor
|
|
||||||
&os; gelden. U zult zo'n soort fout minder snel aantreffen,
|
|
||||||
maar het kan subtieler en moeilijker zijn om het vast te
|
|
||||||
stellen.</para>
|
|
||||||
|
|
||||||
<para>De onderstaande taken moet u uitvoeren om ervoor te zorgen
|
|
||||||
dat uw port als bedoeld blijft werken:</para>
|
|
||||||
|
|
||||||
<procedure>
|
|
||||||
<step>
|
|
||||||
<title>Reageer op bugrapporten</title>
|
|
||||||
|
|
||||||
<para>Bugs kunnen per email via de <link xlink:href="&url.base;/cgi/query-pr-summary.cgi?query">
|
|
||||||
GNATS Probleemrapportendatabase</link> aan u worden
|
|
||||||
gerapporteerd. Bugs kunnen ook direct door gebruikers aan
|
|
||||||
u gerapporteerd worden.</para>
|
|
||||||
|
|
||||||
<para>U dient binnen 14 dagen op PR's en andere rapporten te
|
|
||||||
reageren, probeer hier alstublieft niet zo lang over te
|
|
||||||
doen. Probeer zo snel mogelijk te reageren, zelfs als het
|
|
||||||
alleen maar is om te zeggen dat u wat meer tijd nodig
|
|
||||||
heeft voordat u aan het PR kan werken.</para>
|
|
||||||
|
|
||||||
<para>Als u niet na 14 dagen heeft gereageerd, mag elke committer
|
|
||||||
via een <literal>maintainer-timeout</literal> uit een PR
|
|
||||||
committen waarop u niet heeft gereageerd.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Verzamel informatie</title>
|
|
||||||
|
|
||||||
<para>Als degene die de bug heeft gerapporteerd niet ook een
|
|
||||||
reparatie heeft aangeleverd, zult u informatie moeten
|
|
||||||
verzamelen die u in staat stelt om er een te
|
|
||||||
genereren.</para>
|
|
||||||
|
|
||||||
<para>Als de bug reproduceerbaar is, kunt u zelf de meeste
|
|
||||||
vereiste informatie verzamelen. Zo niet, vraag dan degene
|
|
||||||
die de bug rapporteerde om de informatie voor u te
|
|
||||||
verzamelen, zoals:</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>Een gedetailleerde beschrijving van hun acties,
|
|
||||||
verwacht gedrag en eigenlijk gedrag van het
|
|
||||||
programma</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Kopiën van invoergegevens die de bug
|
|
||||||
aanzwengelden</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Informatie over hun bouw- en uitvoeromgeving —
|
|
||||||
bijvoorbeeld een lijst van geïnstalleerde
|
|
||||||
pakketten en de uitvoer van &man.env.1;</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Coredumps</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Stacktraces</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Elimineer onjuiste rapporten</title>
|
|
||||||
|
|
||||||
<para>Sommige bugrapporten kunnen onjuist zijn. De
|
|
||||||
gebruiker kan het programma simpelweg verkeerd gebruikt
|
|
||||||
hebben; of hun geïnstalleerde pakketten kunnen
|
|
||||||
verouderd zijn en bijgewerkt moeten worden. Soms is een
|
|
||||||
gerapporteerde fout niet specifiek voor &os;. Rapporteer
|
|
||||||
in dit geval de bug naar de stroomopwaartse ontwikkelaars.
|
|
||||||
Als u de bug kunt repareren, kunt u de port ook patchen
|
|
||||||
zodat de reparatie is toegepast voor de volgende
|
|
||||||
stroomopwaartse uitgave.</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Vind een oplossing</title>
|
|
||||||
|
|
||||||
<para>Net als met bouwfouten dient u een oplossing voor het
|
|
||||||
probleem te vinden. Nogmaals, vraag om hulp als u
|
|
||||||
vastzit!</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<title>Stuur veranderingen in of keur ze goed</title>
|
|
||||||
|
|
||||||
<para>Net als bij het bijwerken van een port, dient u nu de
|
|
||||||
veranderingen te integreren, ze te herzien en te testen,
|
|
||||||
en ze in een PR op te sturen (of een vervolg te verzenden
|
|
||||||
als er al een PR voor het probleem bestaat). Als een
|
|
||||||
andere gebruiker veranderingen in het PR heeft ingezonden,
|
|
||||||
kunt u ook een vervolg sturen waarin u zegt of u de
|
|
||||||
veranderingen wel of niet goedkeurt.</para>
|
|
||||||
</step>
|
|
||||||
</procedure>
|
|
||||||
</sect3>
|
|
||||||
|
|
||||||
<sect3>
|
|
||||||
<title>Ondersteuning bieden</title>
|
|
||||||
|
|
||||||
<para>Deel van een onderhouder zijn is ondersteuning bieden
|
|
||||||
— niet noodzakelijk voor de software in het algemeen
|
|
||||||
— maar voor de port en alle &os;-specifieke rariteiten
|
|
||||||
en problemen. Gebruikers kunnen contact met u opnemen voor
|
|
||||||
vragen, suggesties, problemen, en patches. Meestal zal hun
|
|
||||||
correspondentie specifiek voor &os; zijn.</para>
|
|
||||||
|
|
||||||
<para>Af en toe zult u uw diplomatieke vaardigheden moeten
|
|
||||||
gebruiken, en gebruikers die algemene ondersteuning zoeken
|
|
||||||
vriendelijk naar de geschikte bronnen verwijzen. Minder vaak
|
|
||||||
zult u iemand tegenkomen die vraagt waarom de
|
|
||||||
<literal>RPM</literal>s niet actueel zijn of hoe ze de
|
|
||||||
software onder Foo Linux kunnen draaien. Grijp deze kans om
|
|
||||||
ze te vertellen dat uw port actueel is (als het dat is,
|
|
||||||
uiteraard!) en stel voor dat ze &os; uitproberen.</para>
|
|
||||||
|
|
||||||
<para>Soms zullen gebruikers en ontwikkelaars besluiten dat u
|
|
||||||
een druk persoon bent wiens tijd waardevol is en wat werk van
|
|
||||||
u overnemen. Ze kunnen bijvoorbeeld:</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>een PR insturen of u patches toesturen om uw port bij
|
|
||||||
te werken,</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>een PR onderzoeken en er misschien een reparatie voor
|
|
||||||
aanleveren, of</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>op andere wijze veranderen aan uw port
|
|
||||||
insturen.</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
|
|
||||||
<para>In deze gevallen is uw hoofdplicht om op tijd te reageren.
|
|
||||||
Nogmaals, de timeout voor niet-reagerende onderhouders is 14 dagen.
|
|
||||||
Na deze periode mogen niet-goedgekeurde veranderingen gecommit
|
|
||||||
worden. Ze hebben de moeite genomen om dit voor u te doen;
|
|
||||||
dus probeer tenminste op tijd te reageren. Daarna dient u zo
|
|
||||||
snel mogelijk hun veranderingen te herzien, goed te keuren, te
|
|
||||||
wijzigen, of met hen te bediscussiëren.</para>
|
|
||||||
|
|
||||||
<para>Als u ervoor kunt zorgen dat ze het gevoel hebben dat hun
|
|
||||||
bijdrage gewaardeerd wordt (wat zo hoort te zijn), dan heeft u
|
|
||||||
een grotere kans om ze te overtuigen om in de toekomst meer
|
|
||||||
voor u te doen <!-- smiley -->:-).</para>
|
|
||||||
</sect3>
|
|
||||||
</sect2>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1 xml:id="fix-broken">
|
|
||||||
<title>Een kapotte port vinden en repareren</title>
|
|
||||||
|
|
||||||
<para>Er zijn twee zeer goede plaatsen om een port te vinden die wat
|
|
||||||
aandacht nodig heeft.</para>
|
|
||||||
|
|
||||||
<para>U kunt de <link xlink:href="&url.base;/cgi/query-pr-summary.cgi?query">webinterface
|
|
||||||
</link> voor de probleemrapportdatabase gebruiken om
|
|
||||||
onopgeloste PR's te doorzoeken en ze te bekijken. De meerderheid
|
|
||||||
van port-PR's zijn updates, maar met een beetje zoeken door en
|
|
||||||
uitkammen van de samenvattingen zou u iets moeten kunnen vinden
|
|
||||||
wat interessant is om aan te werken (de klasse
|
|
||||||
<literal>sw-bug</literal> is een goede plaats om te
|
|
||||||
beginnen).</para>
|
|
||||||
|
|
||||||
<para>De andere plaats is het <link xlink:href="http://portsmon.FreeBSD.org/">&os; Ports Monitoring
|
|
||||||
System</link>. Zoek in het bijzonder naar niet-onderhouden
|
|
||||||
ports met bouwfouten en ports die als <varname>BROKEN</varname>
|
|
||||||
zijn gemerkt. Het is ook goed om veranderingen voor een
|
|
||||||
onderhouden port te versturen, maar denk eraan om de onderhouder
|
|
||||||
te vragen in het geval dat ze al aan het probleem werken.</para>
|
|
||||||
|
|
||||||
<para>Als u eenmaal een bug of probleem heeft gevonden, verzamel dan
|
|
||||||
informatie, onderzoek, en repareer het! Als er een bestaand PR
|
|
||||||
is, ga daar dan mee verder. Maak anders een nieuw PR aan. Uw
|
|
||||||
veranderingen zullen worden herzien en, als alles goed is,
|
|
||||||
gecommit.</para>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1 xml:id="mortal-coil">
|
|
||||||
<title>Wanneer het tijd wordt om te stoppen</title>
|
|
||||||
|
|
||||||
<para>Wanneer uw interesses en toewijdingen veranderen, zult u
|
|
||||||
erachter komen dat u niet langer tijd heeft om sommige van (of al)
|
|
||||||
uw ports-bijdragen voort te zetten. Dat is prima! Laat ons weten
|
|
||||||
als u een port niet langer gebruikt of om andere redenen de tijd
|
|
||||||
of interesse heeft verloren om ports te onderhouden. Op deze
|
|
||||||
manier kunnen we verder gaan en andere mensen toestaan om te
|
|
||||||
proberen om aan bestaande problemen met de port te werken zonder
|
|
||||||
op uw antwoord te wachten. Herinner dat &os; een
|
|
||||||
vrijwilligersproject is, dus als het onderhouden van een port
|
|
||||||
niet langer leuk is, is het waarschijnlijk tijd om iemand anders
|
|
||||||
het te laten doen!</para>
|
|
||||||
|
|
||||||
<para>In elk geval houdt het Ports Management Team
|
|
||||||
(<literal>portmgr</literal>) zich het recht voor om u als
|
|
||||||
onderhouder te wissen als u uw port voor enige tijd niet actief
|
|
||||||
heeft onderhouden. (Momenteel is dit 3 maanden.) Hiermee
|
|
||||||
bedoelen we dat er onopgeloste problemen of wachtende updates zijn
|
|
||||||
waaraan binnen die tijd niet gewerkt is.</para>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1 xml:id="resources">
|
|
||||||
<title>Bronnen voor onderhouders en vrijwilligers voor ports</title>
|
|
||||||
|
|
||||||
<para>Het <link xlink:href="&url.books.porters-handbook.en;">Porter's Handbook</link> is
|
|
||||||
uw overlevingsgids voor het portssysteem. Houd het in de
|
|
||||||
buurt!</para>
|
|
||||||
|
|
||||||
<para><link xlink:href="&url.articles.problem-reports;">Probleemrapporten
|
|
||||||
voor &os; schrijven</link> beschrijft hoe het beste een PR
|
|
||||||
geformuleerd en ingezonden kan worden. In 2005 werden er meer dan
|
|
||||||
elfduizend port-PR's ingestuurd! Het volgen van dit artikel helpt
|
|
||||||
ons enorm om de tijd te verkorten die nodig is om uw PR's te
|
|
||||||
behandelen.</para>
|
|
||||||
|
|
||||||
<para>De <link xlink:href="&url.base;/cgi/query-pr-summary.cgi?query">
|
|
||||||
Probleemrapportendatabase</link>.</para>
|
|
||||||
|
|
||||||
<para><link xlink:href="http://pointyhat.FreeBSD.org/">Pointyhat</link>
|
|
||||||
is het bouwcluster voor ports. U kunt Pointyhat gebruiken om
|
|
||||||
bouwlogs van ports over alle architecturen en grote uitgaven te
|
|
||||||
controleren.</para>
|
|
||||||
|
|
||||||
<para>Het <link xlink:href="http://portsmon.FreeBSD.org/">&os; Ports Monitoring
|
|
||||||
System </link> kan u kruislingse informatie over ports zoals
|
|
||||||
bouwfouten en probleemrapporten laten zien. Als u een onderhouder
|
|
||||||
bent kunt u het gebruiken om de bouwstatus van uw ports te
|
|
||||||
controleren. Als een vrijwilliger kunt u het gebruiken om kapotte
|
|
||||||
en niet-onderhouden ports te vinden die gerepareerd moeten
|
|
||||||
worden.</para>
|
|
||||||
|
|
||||||
<para>De <link xlink:href="http://portscout.FreeBSD.org">scanner voor distributiebestanden
|
|
||||||
voor &os; ports</link> kan u ports laten zien waarvoor
|
|
||||||
de distributiebestanden niet kunnen worden opgehaald. U kunt uw
|
|
||||||
eigen ports controleren of u kunt het gebruiken om ports te vinden
|
|
||||||
waarvan de <varname>MASTER_SITES</varname> moet worden
|
|
||||||
bijwerkt.</para>
|
|
||||||
|
|
||||||
<para>De <application>tinderbox</application> voor ports is de meest
|
|
||||||
grondige manier om een port door de gehele cyclus van installatie,
|
|
||||||
inpakken, en deïnstallatie te halen. Het biedt een
|
|
||||||
opdrachtregelinterface maar kan ook via een webinterface worden
|
|
||||||
beheerd. Meer informatie staat op de <link xlink:href="http://tinderbox.marcuscom.com/">marcuscom tinderbox
|
|
||||||
homepage</link>.</para>
|
|
||||||
|
|
||||||
<para>&man.portlint.1; is een applicatie die gebruikt kan worden om
|
|
||||||
te verifiëren dat uw port zich aan vele belangrijke
|
|
||||||
stilistische en functionele richtlijnen houdt.
|
|
||||||
<application>portlint</application> is een eenvoudige heuristieke
|
|
||||||
applicatie, dus dient u het <emphasis>alleen als gids</emphasis>
|
|
||||||
te gebruiken. Als <application>portlint</application>
|
|
||||||
veranderingen voorstelt die onredelijk lijken, raadpleeg dan het
|
|
||||||
<link xlink:href="&url.books.porters-handbook.en;">Porter's Handbook</link>
|
|
||||||
of vraag om advies.</para>
|
|
||||||
|
|
||||||
|
|
||||||
<para>De &a.ports; dient voor algemene ports-gerelateerde
|
|
||||||
discussies. Het is een goede plaats om hulp te vragen. U kunt
|
|
||||||
<link xlink:href="http://lists.freebsd.org/mailman/listinfo">zich
|
|
||||||
aanmelden, of de lijstarchieven lezen en doorzoeken</link>.
|
|
||||||
Het lezen van de archieven van de &a.ports-bugs; en de
|
|
||||||
&a.cvs-ports; kan ook interessant zijn.</para>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<index/>
|
|
||||||
</article>
|
|
|
@ -11,7 +11,6 @@
|
||||||
SUBDIR =
|
SUBDIR =
|
||||||
SUBDIR+= building-products
|
SUBDIR+= building-products
|
||||||
SUBDIR+= contributing
|
SUBDIR+= contributing
|
||||||
SUBDIR+= contributing-ports
|
|
||||||
SUBDIR+= explaining-bsd
|
SUBDIR+= explaining-bsd
|
||||||
SUBDIR+= freebsd-questions
|
SUBDIR+= freebsd-questions
|
||||||
SUBDIR+= freebsd-update-server
|
SUBDIR+= freebsd-update-server
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
#
|
|
||||||
# The FreeBSD Documentation Project
|
|
||||||
# The FreeBSD Brazilian Portuguese Documentation Project
|
|
||||||
#
|
|
||||||
# $FreeBSD$
|
|
||||||
#
|
|
||||||
# Original revision: r38826
|
|
||||||
#
|
|
||||||
# Article: Contributing to the FreeBSD Ports Collection
|
|
||||||
|
|
||||||
DOC?= article
|
|
||||||
|
|
||||||
FORMATS?= html html-split
|
|
||||||
WITH_ARTICLE_TOC?= YES
|
|
||||||
|
|
||||||
INSTALL_COMPRESSED?=gz
|
|
||||||
INSTALL_ONLY_COMPRESSED?=
|
|
||||||
|
|
||||||
SRCS= article.xml
|
|
||||||
|
|
||||||
URL_RELPREFIX?= ../../../..
|
|
||||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
|
||||||
|
|
||||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue