aboutsummaryrefslogblamecommitdiff
path: root/de_DE.ISO8859-1/articles/contributing-ports/article.sgml
blob: 924518983a807ebcc3ec8c15af08ea2f88129ccc (plain) (tree)
1
2
3
4
5
6
7
8







                                                                                                                 



                                             

                                                                                                         

        



                                                       





















                                                                        



                                        













                                                                  
                                           









































                                                                       
                                                    





                                 
                                                 


                                                                
                                                                 
                                                        



































                                                                                                          
                                                               











                                                                        
                                                                          
                                                                  
                                                      









                                                                         
                                                                      
























                                                                        
                                                             




















































































                                                                         
                                                                                




























                                                                        
                                                                            












































































                                                                         
                         










                                                                        
                                                                            

                                                                     










                                                                      
                                                                







                                                                     
                                                                        

                                                                    
                                                                 
                                        
                                                                                        






                                   
                                                                    

                                                                        

































                                                                         
                                                     
                                                           

                                                                  








                                                                      




                                                                              





                                                              
                                                                  















                                                                          
                                                                  
                            
                                                                       




























                                                                       
                                                                    































                                                                 

                                                                





































                                                                       
                                                                 



















                                                                          



                                                                              















































                                                                        
                                                                    



























































                                                                        
                                                                         


















                                                                            
                                                                        



                                                                              






                                                                        
                                                                   

















                                                                     
                                                                 







































                                                                       
                                                                          







                                                                         
                                                                




                                                                       
                                                                    






















                                                                       

                                                                             






















                                                                         
                                                                


                                                                         
                                                                
















                                                                      
<?xml version="1.0" encoding="ISO8859-1" standalone="no"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN"
	"../../../share/sgml/freebsd42.dtd" [
<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//DE" "../../share/sgml/entities.ent">
%entities;
<!ENTITY % not.published "IGNORE">
]>

<!-- The FreeBSD Documentation Project
     The FreeBSD German Documentation Project

     $FreeBSD$
     $FreeBSDde: de-docproj/articles/contributing-ports/article.sgml,v 1.11 2011/12/24 14:32:22 bcr Exp $
     basiert auf: 1.9
     -->

<article lang="de">
  <articleinfo>
    <title>Zur FreeBSD Ports-Sammlung beitragen</title>

    <abstract>
     <para>Dieser Artikel beschreibt, wie man zur FreeBSD Ports-Sammlung
       beitragen kann.</para>

     <para><emphasis>&Uuml;bersetzt von Martin Wilke</emphasis>.</para>
    </abstract>

    <authorgroup>
      <author>
	<firstname>Sam</firstname>
	<surname>Lawrance</surname>
      </author>
      <author>
	<firstname>Mark</firstname>
	<surname>Linimon</surname>
      </author>
    </authorgroup>

    <legalnotice id="trademarks" role="trademarks">
      &tm-attrib.freebsd;
      &tm-attrib.general;
    </legalnotice>

    <pubdate>$FreeBSD$</pubdate>

    <releaseinfo>$FreeBSD$</releaseinfo>
   </articleinfo>

  <indexterm><primary>Ports, beitragen</primary></indexterm>

  <sect1>
    <title>Einleitung</title>

    <para>Die Ports-Sammlung ist st&auml;ndig in Bearbeitung.  Wir
      wollen unseren Benutzern eine einfach zu verwendende,
      aktuelle und qualitativ hochwertige Quelle f&uuml;r Software
      von Drittanbietern bereitstellen.  Deshalb suchen wir immer
      Personen, die etwas von ihrer Zeit aufwenden k&ouml;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&uuml;ck zu geben.  Egal, ob Sie eine dauerhafte
      Funktion oder eine kleine Aufgabe f&uuml;r einen
      regnerischen Tag suchen - wir w&uuml;rden uns &uuml;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&ouml;glicherweise auch
      etwas von Ihnen erwarten.  Sie sollten dies auf jeden
      Fall in Ihre Entscheidung mit einbeziehen.</para>
  </sect1>

  <sect1 id="what-contribute">
    <title>Was Sie tun k&ouml;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&uuml;tzliche
	  Software und <link
	  linkend="create-port">erstellen Sie einen Port</link>.</para>
      </listitem>

      <listitem>
	<para>Es gibt eine gro&szlig;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&ouml;nnten Sie beispielsweise <link
	linkend="fix-broken">einen Bug oder defekten
	Port fixen</link>.</para>
      </listitem>
    </itemizedlist>
  </sect1>

  <sect1 id="create-port">
    <title>Erstellen Sie einen neuen Port</title>

    <para>Es gibt ein eigenes Handbuch, das beim Erstellen
      (und Aktualisieren) von Ports hilft. Es hei&szlig;t <ulink
      url="&url.books.porters-handbook;">Porter-Handbuch</ulink>.
      Das Porter-Handbuch ist die beste Referenz, um mit
      dem Ports-System zu arbeiten.  Es enth&auml;lt Details
      dar&uuml;ber, wie das Ports-System funktioniert und wie
      man mit/an den Ports arbeitet.</para>
  </sect1>

  <sect1 id="adopt-port">
    <title>&Uuml;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&uuml;r sorgt. Es gibt eine grosse Anzahl
	nicht betreuter Ports, daher ist es eine gute Idee f&uuml;r
	den Einstieg, einen verwaisten Port zu &uuml;bernehmen, den
	Sie auch regelm&auml;ssig selbst verwenden.</para>

      <para>Nicht betreute Ports haben als <makevar>MAINTAINER</makevar>
	den Wert <literal>ports@FreeBSD.org</literal>.  Eine Liste
	der derzeit nicht betreuten Ports sowie Informationen zu deren
	aktuellen Fehlern und Problemen k&ouml;nnen Sie unter <ulink
	url="http://portsmon.FreeBSD.org/portsconcordanceformaintainer.py?maintainer=ports%40FreeBSD.org">
	&os; Ports Monitoring System</ulink> einsehen.</para>

      <para>Einige Ports beeinflussen durch Abh&auml;ngigkeiten
	und <quote>Slave-Port-Beziehungen</quote> eine grosse
	Anzahl anderer Ports.  Generell ist es ratsam, dass
	Maintainer &uuml;ber ein Mindestma&szlig; an Erfahrung
	verf&uuml;gen, bevor Sie derartige Ports betreuen.</para>

      <para>Um herauszufinden, ob ein Port Abh&auml;ngigkeiten
	oder Slave-Ports hat, k&ouml;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&auml;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 &uuml;bernimmt</title>

      <para>Bitte vergewissern Sie sich, dass Sie die
	<link linkend="maintain-port">Aufgaben eines Maintainers</link>
	verstanden haben.  Lesen Sie bitte auch das
	<ulink url="&url.books.porters-handbook;">Porter-Handbuch</ulink>.
	<emphasis>&Uuml;bernehmen Sie nicht mehr Aufgaben, als Sie
	bew&auml;ltigen k&ouml;nnen</emphasis>.</para>

      <para>Sie k&ouml;nnen einen nicht reservierten Port jederzeit
	&uuml;bernehmen, die Entscheidung liegt bei Ihnen.  Wenn
	Sie dazu bereit sind, setzen Sie <makevar>MAINTAINER</makevar>
	auf Ihre E-Mail-Adresse und reichen einen Problembericht (PR)
	mit den von Ihnen vorgenommenen &Auml;nderungen ein.  Wenn beim
	Kompilieren des Ports Fehler auftreten oder eine Aktualisierung
	notwendig ist, k&ouml;nnen Sie derartige &Auml;nderungen dem
	selben PR beif&uuml;gen.  Das ist sehr hilfreich, weil sich viele
	Committer weigern, die Wartung eines Ports zu &uuml;bergeben,
	wenn jemand nicht die n&ouml;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 &Auml;nderungen committen und danach
	den PR abschlie&szlig;en.  Manchmal kann dieser Prozess eine
	Weile dauern (auch Committer sind "nur" freiwillige
	Helfer!).</para>
    </sect2>
  </sect1>

  <sect1 id="maintain-port">
    <title>Die Herausforderung als Ports-Maintainer</title>

    <para> Dieser Abschnitt erkl&auml;rt, warum Ports betreut werden
      m&uuml;ssen, und beschreibt die Pflichten eines
      Ports-Maintainers.</para>

    <sect2 id="why-maintenance">
      <title>Warum m&uuml;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&auml;tzenden Arbeitsaufwand.
	Maintainer sind Personen, die einen Teil ihrer Zeit dazu
	verwenden, einen Port f&uuml;r andere FreeBSD-Anwender aktuell
	und einfach installierbar zu halten.</para>

      <para>Der wichtigste Grund f&uuml;r die Betreuung von Ports
 	ist der Wunsch, der &os;-Community die neueste und beste
	Drittanbieter-Software zur Verf&uuml;gung zu stellen.  Eine
	zus&auml;tzliche Herausforderung ist die Aufrechterhaltung
	der Funktionalit&auml;t einzelner Ports innerhalb der
	sich ver&auml;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&ouml;ffentlicht und m&uuml;ssen in die Ports-Sammlung
	      integriert werden, um aktuelle Software ausliefern zu
	      k&ouml;nnen.</para>
	  </formalpara>
	</listitem>

	<listitem>
	  <formalpara>
	    <title>&Auml;nderungen an Abh&auml;ngigkeiten ihres
	      Ports</title>

	    <para>Wenn bedeutende &Auml;nderungen an den
	      Abh&auml;ngigkeiten Ihres Ports gemacht wurden,
	      kann es vonn&ouml;ten sein, diesen zu aktualisieren,
	      damit er weiterhin korrekt funktioniert.</para>
	  </formalpara>
	</listitem>

	<listitem>
	  <formalpara>
	    <title>&Auml;nderungen an abh&auml;ngigen Ports</title>

	    <para>Wenn andere Ports von einem Ihrer betreuten
	      Ports abh&auml;ngig sind, m&uuml;ssen &Auml;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&uuml;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&uuml;mmern.</para>
	  </formalpara>
	</listitem>

	<listitem>
	  <formalpara>
	    <title>Bugs finden</title>

	    <para>Eine Portierung k&ouml;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>&Auml;nderungen an Ports, Infrastruktur und
	      Lizenzen</title>

	    <para>Gelegentlich werden die Werkzeuge f&uuml;r das Bauen von Ports
	      erneuert oder es wird ein neuer Vorschlag zur
	      Infrastruktur der Ports-Sammlung gemacht.  Sie sollten von
	      diesen &Auml;nderungen wissen, falls Ihre Ports betroffen
	      sind und aktualisiert werden m&uuml;ssen.</para>
	  </formalpara>
	</listitem>

	<listitem>
	  <formalpara>
	    <title>&Auml;nderungen am Basissystem</title>

	    <para>&os; ist in st&auml;ndiger Entwicklung.
	      &Auml;nderungen an Software, Bibliotheken, dem Kernel
	      oder sogar Lizenz&auml;nderungen k&ouml;nnen
	      &Auml;nderungsbedarf an den Ports ausl&ouml;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 &Uuml;berblick zu
	  diesem Thema.  Ausf&uuml;hrliche Informationen zur
	  Aktualisierung von Ports finden Sie im <ulink
	  url="&url.books.porters-handbook;">Porter-Handbuch</ulink>.</para>

	<procedure>
	  <step>
	    <title>Achten Sie auf Aktualisierungen</title>

	    <para>&Uuml;berwachen Sie Ihr Programm auf neue Versionen
	      der Software, Aktualisierungen und Security-Fixes.
	      Ank&uuml;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&auml;ftigt sind oder aus
	      sonstigen Gr&uuml;nden keine Aktualisierung
	      bereitstellen k&ouml;nnen, fragen Sie den Benutzer
	      doch einfach, ob er Ihnen bei der Aktualisierung
	      helfen m&ouml;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&uuml;ber informiert, dass eine
	      aktuellere Version des Distfiles Ihres Ports
	      verf&uuml;gbar ist.  Weitere Informationen &uuml;ber
	      dieses System (inklusive einer Erkl&auml;rung, wie Sie
	      derartige E-Mails in Zukunft vermeiden k&ouml;nnen) finden
	      Sie ebenfalls in einer solchen Nachricht.</para>
	  </step>

	  <step>
	    <title>Aufnehmen von &Auml;nderungen</title>

	    <para>Wenn verf&uuml;gbar, integrieren Sie die
	      Ver&auml;nderungen in den Port.  Sie m&uuml;ssen in der
	      Lage sein, einen Patch zwischen dem alten und dem neuen
	      Port zu generieren.</para>
	  </step>

	  <step>
	    <title>Nachpr&uuml;fung und Test</title>

	    <para>&Uuml;berpr&uuml;fen und testen Sie
	      ihre &Auml;nderungen gr&uuml;ndlich:</para>

	    <itemizedlist>
	      <listitem>
		<para>Kompilieren, installieren und testen Sie
		  ihren Port auf so vielen Plattformen und
		  Architekturen, wie Sie k&ouml;nnen. Es kommt sehr
		  h&auml;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&auml;ngigkeiten ihres Ports vollst&auml;ndig
		  sind.  Die empfohlene Vorgehensweise daf&uuml;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>&Uuml;berpr&uuml;fen Sie ihren Port mit
		  &man.portlint.1;.  Sehen Sie sich dazu den Abschnitt
		  <link linkend="resources">Ressourcen</link> an.
		  Dieser enth&auml;lt wichtige Informationen zum
		  Einsatz von <application>portlint</application>.</para>
	      </listitem>

	      <listitem>
		<para>Achten Sie darauf, dass &Auml;nderungen an Ihrem
		  Port nicht den Bau eines anderen Ports verhindern.
		  Ist dies der Fall, besprechen Sie die von Ihnen
		  durchgef&uuml;hrten &Auml;nderungen mit den
		  Maintainern der betroffenen Ports. Dies ist besonders
		  dann wichtig, wenn Ihre Aktualisierung die
		  <quote>Shared Library</quote>-Version &auml;ndert;
		  in diesem Fall werden Sie f&uuml;r die abh&auml;ngigen
		  Ports einen <makevar>PORTREVISION</makevar>-Bump
		  ben&ouml;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>&Auml;nderungen einreichen</title>

	    <para>Reichen Sie ihre Aktualisierungen mit einem PR ein,
	      welcher die &Auml;nderungen erkl&auml;rt und einen Patch
	      enth&auml;lt, der die &Auml;nderungen zwischen dem
	      Original und Ihrer aktualisierten Version umfasst.
	      Lesen Sie bitte zuerst den Artikel <ulink
	      url="&url.articles.problem-reports.en;">Writing FreeBSD
	      Problem Reports</ulink>, der das korrekte Einreichen
	      von Problemberichten beschreibt.</para>

	    <note>
	      <para>Bitte schicken Sie kein &man.shar.1;-Archiv
	        des gesamten Ports.  Benutzen Sie stattdessen
		&man.diff.1; <literal>-ruN</literal>.  Auf diese Art und
		Weise k&ouml;nnen Committer viel einfacher erkennen,
		welche &Auml;nderungen vorgenommen wurden.  Das
		Porter-Handbuch enth&auml;lt viele n&uuml;tzliche
		Informationen zum <ulink
		url="&url.books.porters-handbook;/port-upgrading.html">Upgrading</ulink>
		eines Ports.</para>
	    </note>
	  </step>

	  <step>
	    <title>Warten</title>

	    <para>Es kann nur sehr wenig Zeit vergehen, bis sich ein
	      Committer mit Ihrem PR befasst.  Es kann aber auch mehrere
	      Wochen dauern, bis eine Reaktion erfolgt - haben Sie bitte
	      Geduld.</para>
	  </step>

	  <step>
	    <title>Feedback geben</title>

	    <para>Wenn ein Committer Probleme in Ihren &Auml;nderungen
	      entdeckt, wird er Sie dar&uuml;ber informieren.  Eine
	      schnelle Reaktion Ihrerseits ist hilfreich, um Ihren PR
	      rasch bearbeiten zu k&ouml;nnen.  Au&szlig;erdem hilft
	      es Ihnen, den Faden nicht zu verlieren, wenn Sie
	      versuchen, aufgetretene Probleme zu l&ouml;sen.</para>
	  </step>

	  <step>
	    <title>Und zuletzt...</title>

	    <para>Ihre &Auml;nderungen werden &uuml;bermittelt und im
	      Anschluss daran wird Ihr Port aktualisiert.  Der
	      betreffende PR wird danach vom Committer geschlossen.
	      Herzlichen Gl&uuml;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&uuml;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&auml;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&auml;ufige Fehler beim Umgang mit
	    nicht-<literal>i386</literal> Maschinen entstehen,
            weil Programmierer &uuml;r Instanzen und Pointer
	    <literal>int</literal>s verwendeten, oder weil der
	    relativ simple <application>gcc</application>-Compiler
	    genutzt wird.  Immer mehr Programmautoren
	    &uuml;berarbeiten ihren Code, um diese Fehler zu
	    beseitigen &mdash; wenn der Programmautor seinen Code
	    allerdings nicht aktiv betreut, m&uuml;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>&Uuml;berpr&uuml;fen Sie regelm&auml;&szlig;ig den Ports
	      Building Cluster <ulink
	      url="http://pointyhat.FreeBSD.org">pointyhat</ulink>
	      und den <ulink
	      url="http://www.portscout.org">Distfiles-Scanner</ulink>,
	      um festzustellen, ob einer Ihrer Ports nicht gebaut oder
	      die Distfiles nicht geladen werden k&ouml;nnen (lesen Sie
	      den Abschnitt <link linkend="resources">Ressourcen</link>
	      dieses Artikels f&uuml;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&ouml;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&ouml;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&ouml;sung</title>

	    <para>Leider gibt es keinen allgemein g&uuml;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>&Auml;nderungen &uuml;bermitteln</title>

	    <para>Genau wie beim Aktualisieren eines Ports
	      sollten &Auml;nderungen integriert, gepr&uuml;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&uuml;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&uuml;r das n&auml;chste
	      Release auf.  Dies kann den Benutzern anderer BSD-Systeme
	      helfen und einiges an unn&ouml;tiger Mehrarbeit ersparen.
	      Bitte betrachten Sie das Versenden von verwertbaren
	      Patches an die Autoren als ein Gebot der
	      H&ouml;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 &uuml;ber Build- und Laufzeitumgebungen, die
	  nicht zu &os; passen, verursacht.  Derartige Probleme zu
	  entdecken ist oft sehr schwierig, gl&uuml;cklicherweise
	  sind derartige Probleme aber nicht sehr h&auml;ufig.</para>

	<para>Folgende Schritte sind notwendig, um sicherzustellen, dass
	  ihr Port weiterhin wie gew&uuml;nscht funktioniert:</para>

	<procedure>
	  <step>
	    <title>Antworten Sie auf Bug-Reports</title>

	    <para>Bugs k&ouml;nnen Ihnen als E-Mail durch die <ulink
	      url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">
	      GNATS Problem Report database</ulink> zugestellt
	      werden, Sie k&ouml;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&ouml;glich
	      zu antworten, selbst wenn Sie nur mitteilen k&ouml;nnen,
	      dass Sie noch etwas Zeit brauchen, bevor Sie den PR
	      bearbeiten k&ouml;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&ouml;sung &uuml;bermittelt wird, m&uuml;ssen Sie zuerst
	      die zum Beheben des Problems n&ouml;tigen Informationen
	      sammeln.</para>

	    <para>Wenn der Fehler reproduzierbar ist, k&ouml;nnen Sie
	      die meisten Informationen selbst sammeln.  Wenn nicht,
	      bitten Sie die Person, die den Fehler gefunden hat,
	      diese Informationen f&uuml;r Sie zu sammeln:</para>

	    <itemizedlist>
	      <listitem>
		<para>Eine genaue Beschreibung dessen, was Er/Sie getan
		  hat, den erwarteten Programmverlauf und den
		  tats&auml;chlichen Ablauf.</para>
	      </listitem>

	      <listitem>
		<para>Eine Kopie der Eingabedaten, die den Fehler
		  ausl&ouml;sen.</para>
	      </listitem>

	      <listitem>
		<para>Informationen &uuml;ber das System, auf dem der
		  Port gebaut und ausgef&uuml;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&szlig;en Sie falsche Reports aus</title>

	    <para>Einige Fehlerberichte sind eventuell falsch.  Es kommt
	      vor, dass ein Programm falsch benutzt wird.  Weiterhin
	      k&ouml;nnen installierten Pakete veraltet sein und
	      m&uuml;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&ouml;nnen Sie dies nat&uuml;rlich
	      trotzdem tun und den Entwicklern Ihren Patch zukommen
	      lassen.</para>
	  </step>

	  <step>
	    <title>L&ouml;sungen finden</title>

	    <para>Bei Build-Fehlern werden Sie eine L&ouml;sung finden
	      m&uuml;ssen.  Denken Sie daran zu fragen, wenn Sie nicht
	      weiterkommen!</para>
	  </step>

	  <step>
	    <title>&Auml;nderungen einreichen oder annehmen</title>

	    <para>Genau so wie bei der Aktualisierung eines Ports
	      sollten Sie alle &Auml;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 &Auml;nderungen
	      f&uuml;r einen PR eingereicht hat, k&ouml;nnen Sie einen
	      Folgebericht erstellen, mit dem Sie die vorgeschlagenen
	      &Auml;nderungen akzeptieren oder (mit einer
	      Begr&uuml;ndung) ablehnen.</para>
	  </step>
	</procedure>
      </sect3>

      <sect3>
	<title>Support leisten</title>

	<para>Teilaufgabe eines Maintainers ist es, Support zu leisten
	  &mdash; nicht den Hauptsupport f&uuml;r die Software &mdash;
	  aber f&uuml;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&uuml;ssen Sie eventuell ihre diplomatischen
	  F&auml;higkeiten auffrischen und Benutzer freundlich an die
	  korrekten Anlaufstellen f&uuml;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&uuml;rlich nur, wenn er es auch
	  tats&auml;chlich ist) und schlagen Sie vor, einmal &os;
	  auszuprobieren.</para>

	<para>Wenn Sie Gl&uuml;ck haben, werden Benutzer und Entwickler
	  gelegentlich daran denken, dass Sie eine sehr
	  besch&auml;ftigte Person sind, deren Zeit nicht
	  unersch&ouml;pflich, sondern kostbar ist, und werden vielleicht
	  ein Teil Ihrer Arbeit f&uuml;r Sie &uuml;bernehmen.
	  Beispielsweise k&ouml;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 &Auml;nderungen f&uuml;r Ihre Ports zusenden.</para>
	  </listitem>
	</itemizedlist>

	<para>In diesem Fall ist ihre Hauptaufgabe zeitnahes
	  Antworten.  Der Timeout f&uuml;r nicht ansprechbare Maintainer
	  betr&auml;gt auch hier wieder 14 Tage.  Nach dieser Periode
	  k&ouml;nnen &Auml;nderungen ohne ihre Pr&uuml;fung eingereicht
	  werden.  Diese Personen haben sich die Arbeit gemacht, etwas
	  f&uuml;r Sie zu &uuml;bernehmen, versuchen Sie daher, m&ouml;glichst
	  rasch zu antworten.  Danach &uuml;berpr&uuml;fen, akzeptieren,
	  ver&auml;ndern oder diskutieren Sie diese &Auml;nderungen mit
	  den betroffenen Personen so schnell wie m&ouml;glich.</para>

	<para>Wenn Sie vermitteln k&ouml;nnen, dass Sie deren Arbeit
	  zu sch&auml;tzen wissen (und das sollten Sie), dann werden Sie
	  eine bessere Chance haben, dass diese Personen ihnen auch in
	  Zukunft etwas Arbeit abnehmen.  <!-- smiley -->:-)</para>
      </sect3>
    </sect2>
  </sect1>

  <sect1 id="fix-broken">
    <title>Defekte Ports finden und reparieren</title>

    <para>Es gibt zwei wirklich gute Anlaufstellen, um Ports
      zu finden, die ihre Aufmerksamkeit ben&ouml;tigen.</para>

    <para>Sie k&ouml;nnen das <ulink
      url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">Web
      Interface der Problem Reports-Datenbank</ulink> nutzen, um nach
      ungel&ouml;sten Problemen zu suchen.  Die Mehrheit der PRs, die
      zu Ports eingereicht werden, betreffen Aktualisierungsprobleme,
      aber mit ein bi&szlig;chen Recherche in den &Uuml;bersichten
      und Zusammenfassungen sollten Sie das eine oder andere
      Interessante finden. (Die Kategorie <literal>sw-bug</literal>
      ist ein guter Platz, um mit der Arbeit zu beginnen).</para>

    <para>Die zweite Anlaufstelle ist das <ulink
      url="http://portsmon.FreeBSD.org/">&os; Ports Monitoring
      System</ulink>.  Hier k&ouml;nnen Sie nicht betreute Ports mit
      Build-Fehlern und Ports, die als <makevar>BROKEN</makevar>
      gekennzeichnet sind, finden.  Nat&uuml;rlich ist es auch in
      Ordnung, &Auml;nderungen an betreuten Ports zu machen.  Denken
      Sie aber bitte daran, den Maintainer zuvor davon zu
      informieren, da dieser m&ouml;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&uuml;pfen Sie dort an.  Ansonsten
      reichen Sie einen neuen PR ein.  Die von Ihnen vorgeschlagenen
      &Auml;nderungen werden danach gepr&uuml;ft.  Sind diese in
      Ordnung, werden Sie danach committed.</para>
  </sect1>

  <sect1 id="mortal-coil">
    <title>Sagen Sie Bescheid, wenn Sie einen Port nicht mehr
      betreuen m&ouml;chten</title>

    <para>So wie Ihre Interessen sich &auml;ndern, haben Sie
      vielleicht irgendwann auch nicht mehr die Zeit, weiterhin
      einige (oder alle) Ihrer Ports zu betreuen.  Das ist
      verst&auml;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&ouml;nnen
      wir vorankommen und anderen anbieten, an diesen Ports zu
      arbeiten, ohne dass diese auf Ihre Antworten warten m&uuml;ssen.
      Denken Sie daran:  &os; ist ein Freiwilligen-Projekt.  Wenn Ihnen
      eine Aufgabe keinen Spa&szlig; mehr macht, ist es wahrscheinlich
      an der Zeit, jemand anderen an Ihre Ports zu lassen.</para>

    <para>In jedem Fall beh&auml;lt sich das Ports Management
      Team (<literal>portmgr</literal>) das Recht vor, Ihnen den
      Maintainer-Status abzuerkennen, wenn Sie f&uuml;r l&auml;ngere
      Zeit nicht aktiv sind (derzeit liegt diese Grenze bei drei Monaten).
      Damit ist gemeint, dass ungel&ouml;ste Probleme oder ausstehende
      Aktualisierungen in diesem Zeitraum nicht bearbeitet wurden.</para>
  </sect1>

  <sect1 id="resources">
    <title>Ressourcen f&uuml;r Ports-Maintainer und Committer</title>

    <para>Das <ulink
      url="&url.books.porters-handbook;">Porter-Handbuch</ulink>
      ist Ihr <quote>Ratgeber zum Ports-System</quote> und sollte stets
      in Ihrer Reichweite sein!</para>

    <para>Der Artikel <ulink
      url="&url.articles.problem-reports.en;">Writing FreeBSD Problem
      Reports</ulink> beschreibt, wie PRs formuliert und eingereicht
      werden sollen.  Allein im Jahr 2005 wurden mehr als 11.000 PRs
      zu verschiedenen Ports eingereicht!  Wenn Sie die Anweisungen
      dieses Artikels befolgen, werden wir weniger Zeit ben&ouml;tigen,
      um Ihre PRs zu bearbeiten.</para>

    <para>Die <ulink
      url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">
      Problem Report Database</ulink>.</para>

    <para><ulink url="http://pointyhat.FreeBSD.org/">Pointyhat</ulink>
      ist der Ports Build Cluster.  Sie k&ouml;nnen Pointyhat nutzen,
      um nach Port-Buildlogs &uuml;ber alle Architekturen und
      Haupt-Releases zu suchen.</para>

    <para>Das <ulink
      url="http://portsmon.FreeBSD.org/">FreeBSD Ports Monitoring
      System </ulink> kann verschiedene Informationen &uuml;ber Ports
      enthalten, beispielsweise Build-Fehler und Problemberichte.
      Als Ports-Maintainer k&ouml;nnen Sie hier den Buildstatus Ihres
      Ports in Erfahrung bringen.  Als Committer k&ouml;nnen Sie dort
      defekte und unbetreute Ports finden, die gefixt werden
      m&uuml;ssten.</para>

    <para>Der <ulink url="http://www.portscout.org">&os; Ports
      Distfile-Scanner</ulink> kann Ihnen die Ports anzeigen, deren Distfiles
      nicht erreichbar sind.  Sie k&ouml;nnen damit Ihre eigenen
      Ports pr&uuml;fen oder auch herauszufinden, ob die
      <makevar>MASTER_SITES</makevar>-Eintr&auml;ge bestimmter Ports
      nicht mehr aktuell sind.</para>

    <para>Der <application>tinderbox</application>-Port ist die
      gr&uuml;ndlichste L&ouml;sung, um den Port w&auml;hrend des ganzen
      Prozesses der Installation, Paketerstellung und Deinstallation
      zu testen.  Das Programm bietet sowohl eine Kommandozeilen- als
      auch eine Web-Schnittstelle.  Weitere Informationen zu diesem
      Port finden Sie im Verzeichnis
      <filename>ports/ports-mgmt/tinderbox</filename> sowie auf der
      <ulink url="http://tinderbox.marcuscom.com/">Tinderbox
      Homepage</ulink>.</para>

    <para>Mit &man.portlint.1; k&ouml;nnen Sie einen Port auf die
      Einhaltung von stilistischen und funktionellen Richtlinien hin
      &uuml;berpr&uuml;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 &Auml;nderungen
      vorschl&auml;gt, lesen Sie nochmal das <ulink
      url="&url.books.porters-handbook;">Porter-Handbuch</ulink>
      oder bitten Sie jemanden um Rat.</para>

    <para>Die Mailingliste &a.ports; ist f&uuml;r allgemeine Diskussionen
      &uuml;ber Ports vorgesehen.  Wenn Sie Hilfe ben&ouml;tigen
      k&ouml;nnen Sie dort nachfragen.  Sie k&ouml;nnen einzelne
      Mailinglisten <ulink
      url="http://lists.freebsd.org/mailman/listinfo">
      auch abonnieren oder in deren Archiven suchen und lesen</ulink>.
      Die Mailinglisten &a.ports-bugs; und &a.cvs-ports; k&ouml;nnten
      f&uuml;r Sie ebenfalls von Interesse sein.</para>
  </sect1>
</article>

<!--
     Local Variables:
     mode: sgml
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     End:
-->