aboutsummaryrefslogtreecommitdiff
path: root/de_DE.ISO8859-1/articles/contributing-ports/article.xml
blob: 488293184906cc2db3aa356e8c156465cfe737ab (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN"
	"../../../share/xml/freebsd45.dtd">

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

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

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

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

     <para><emphasis>Übersetzt von Martin Wilke</emphasis>.</para>
    </abstract>

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

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

    <pubdate>$FreeBSD$</pubdate>

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

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

  <sect1>
    <title>Einleitung</title>

    <para>Die Ports-Sammlung ist ständig in Bearbeitung.  Wir
      wollen unseren Benutzern eine einfach zu verwendende,
      aktuelle und qualitativ hochwertige Quelle für Software
      von Drittanbietern bereitstellen.  Deshalb suchen wir immer
      Personen, die etwas von ihrer Zeit aufwenden können,
      um uns dabei zu helfen.</para>

    <para>An der Ports-Sammlung zu arbeiten
      ist ein hervorragender Weg, um zu helfen und dem Projekt
      etwas zurück zu geben.  Egal, ob Sie eine dauerhafte
      Funktion oder eine kleine Aufgabe für einen
      regnerischen Tag suchen - wir würden uns über
      Ihre Hilfe freuen!</para>

    <para>Als Freiwillige/r setzen Sie sich selbst Grenzen.
      Sie sollten sich aber immer bewusst sein, dass andere
      Mitglieder der &os; Community möglicherweise auch
      etwas von Ihnen erwarten.  Sie sollten dies auf jeden
      Fall in Ihre Entscheidung mit einbeziehen.</para>
  </sect1>

  <sect1 id="what-contribute">
    <title>Was Sie tun können, um uns zu helfen</title>

    <para>Um die Ports-Sammlung aktuell und in einem sauberen Zustand
      zu halten, sind viele Dinge zu erledigen:</para>

    <itemizedlist>
      <listitem>
	<para>Finden Sie eine begehrte oder nützliche
	  Software und <link
	  linkend="create-port">erstellen Sie einen
	  Port</link>.</para>
      </listitem>

      <listitem>
	<para>Es gibt eine große Anzahl von Ports, die keinen
	  Maintainer haben.  Werden Sie Maintainer und <link
	  linkend="adopt-port">betreuen Sie einen Port</link>.</para>
      </listitem>

      <listitem>
	<para>Wenn Sie einen Port erstellt haben oder betreuen,
	  vergessen Sie nicht, <link
	  linkend="maintain-port">welche Aufgaben ein Maintainer
	  hat</link>.</para>
      </listitem>

      <listitem>
	<para>Wenn Sie nur eine kleine Aufgabe suchen,
	könnten Sie beispielsweise <link
	linkend="fix-broken">einen Bug oder defekten
	Port fixen</link>.</para>
      </listitem>
    </itemizedlist>
  </sect1>

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

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

  <sect1 id="adopt-port">
    <title>Übernahme eines nicht betreuten Ports</title>

    <sect2>
      <title>Einen nicht betreuten Port aussuchen</title>

      <para>Die Betreuung eines Ports ist ein guter Weg zu helfen.
	Nicht betreute Ports bleiben nur aktuell und stabil, wenn ein
	Freiwilliger dafür sorgt. Es gibt eine grosse Anzahl
	nicht betreuter Ports, daher ist es eine gute Idee für
	den Einstieg, einen verwaisten Port zu übernehmen, den
	Sie auch regelmässig selbst verwenden.</para>

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

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

      <para>Um herauszufinden, ob ein Port Abhängigkeiten
	oder Slave-Ports hat, können Sie im
	<quote>Master-Port-Index</quote>
	<filename>/usr/ports/INDEX</filename> nachsehen. (Der Name der
	Datei kann bei den einzelnen Releases von FreeBSD variieren,
	z.B. <filename>INDEX-8</filename>).  Einige Ports haben
	bedingte Abhängigkeiten, die nicht im Standard-Index
	<filename>INDEX</filename> zu finden sind.  Wir erwarten, dass
	Sie in der Lage sind, solche Ports zu erkennen, indem Sie sich
	die <filename>Makefile</filename>s anderer Ports
	ansehen.</para> </sect2>

    <sect2>
      <title>Wie man einen Port übernimmt</title>

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

      <para>Sie können einen nicht reservierten Port jederzeit
	übernehmen, die Entscheidung liegt bei Ihnen.  Wenn
	Sie dazu bereit sind, setzen Sie <makevar>MAINTAINER</makevar>
	auf Ihre E-Mail-Adresse und reichen einen Problembericht (PR)
	mit den von Ihnen vorgenommenen Änderungen ein.  Wenn beim
	Kompilieren des Ports Fehler auftreten oder eine
	Aktualisierung notwendig ist, können Sie derartige Änderungen
	dem selben PR beifügen.  Das ist sehr hilfreich, weil sich
	viele Committer weigern, die Wartung eines Ports zu übergeben,
	wenn jemand nicht die nötige Erfahrung mit &os; vorweisen
	kann.  Das Einreichen von PRs, die Kompilierfehler beheben
	oder Ports aktualisieren, ist der beste Weg, um Erfahrung zu
	sammeln.</para>

      <para>Erstellen Sie Ihren PR mit der
	<foreignphrase>category</foreignphrase>
	<literal>ports</literal> und der
	<foreignphrase>class</foreignphrase>
	<literal>change-request</literal>.  Ein Committer wird Ihren
	PR analysieren, die Änderungen committen und danach den PR
	abschließen.  Manchmal kann dieser Prozess eine Weile dauern
	(auch Committer sind "nur" freiwillige Helfer!).</para>
    </sect2>
  </sect1>

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

    <para> Dieser Abschnitt erklärt, warum Ports betreut werden
      müssen, und beschreibt die Pflichten eines
      Ports-Maintainers.</para>

    <sect2 id="why-maintenance">
      <title>Warum müssen Ports betreut werden?</title>

      <para>Einen Port zu erstellen ist eine einmalige Sache.
	Sicherzustellen, dass ein Port aktuell ist und auch in Zukunft
	funktioniert, erfordert hingegen eine laufende Betreuung
	und einen nicht zu unterschätzenden Arbeitsaufwand.
	Maintainer sind Personen, die einen Teil ihrer Zeit dazu
	verwenden, einen Port für andere FreeBSD-Anwender aktuell
	und einfach installierbar zu halten.</para>

      <para>Der wichtigste Grund für die Betreuung von Ports
 	ist der Wunsch, der &os;-Community die neueste und beste
	Drittanbieter-Software zur Verfügung zu stellen.  Eine
	zusätzliche Herausforderung ist die Aufrechterhaltung
	der Funktionalität einzelner Ports innerhalb der
	sich verändernden Ports-Sammlung.</para>

      <para>Als Ports-Maintainer werden Sie folgende
	Herausforderungen meistern:</para>

      <itemizedlist>
	<listitem>
	  <formalpara>
	    <title>Neue Software-Versionen und
	      Aktualisierungen</title>

	    <para>Neue Versionen und Aktualisierung von bereits
	      portierter Software werden kontinuierlich
	      veröffentlicht und müssen in die Ports-Sammlung
	      integriert werden, um aktuelle Software ausliefern zu
	      können.</para>
	  </formalpara>
	</listitem>

	<listitem>
	  <formalpara>
	    <title>Änderungen an Abhängigkeiten ihres
	      Ports</title>

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

	<listitem>
	  <formalpara>
	    <title>Änderungen an abhängigen Ports</title>

	    <para>Wenn andere Ports von einem Ihrer betreuten
	      Ports abhängig sind, müssen Änderungen
	      eventuell mit anderen Maintainern abgesprochen
	      werden.</para>
	  </formalpara>
	</listitem>

	<listitem>
	  <formalpara>
	    <title>Zusammenwirken von anderen Benutzern,
	      Maintainern und Entwicklern</title>

	    <para>Ein Teil der Aufgabe eines Maintainers ist es,
	      Support zu leisten.  Damit ist kein Hauptsupport
	      für die Software gemeint (wir haben allerdings nichts
	      dagegen, wenn Sie sich dennoch entscheiden, dies zu
	      tun).  Ihre Aufgabe ist aber, sich um &os;-spezifische
	      Fragen zu Ihren Ports zu kümmern.</para>
	  </formalpara>
	</listitem>

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

	    <para>Eine Portierung könnte vielleicht von
	      &os;-spezifischen Bugs beeinflusst werden. In einem
	      solchen Fall ist es Ihre Aufgabe, den Fehler zu finden
	      und zu beheben.  Daher sollten Sie Ihren Port umfassend
	      testen, um derartige Probleme zu entdecken, bevor Sie
	      einen Port in die Ports-Sammlung aufnehmen.</para>
	  </formalpara>
	</listitem>

	<listitem>
	  <formalpara>
	    <title>Änderungen an Ports, Infrastruktur und
	      Lizenzen</title>

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

	<listitem>
	  <formalpara>
	    <title>Änderungen am Basissystem</title>

	    <para>&os; ist in ständiger Entwicklung.
	      Änderungen an Software, Bibliotheken, dem Kernel
	      oder sogar Lizenzänderungen können
	      Änderungsbedarf an den Ports auslösen.</para>
	  </formalpara>
	</listitem>
      </itemizedlist>
    </sect2>

    <sect2>
      <title>Aufgaben eines Maintainers</title>

      <sect3>
	<title>Halten Sie Ihre Ports aktuell</title>

	<para>Dieser Abschnitt bietet einen kurzen Überblick zu
	  diesem Thema.  Ausführliche Informationen zur
	  Aktualisierung von Ports finden Sie im <ulink
	  url="&url.books.porters-handbook;">Porter-Handbuch</ulink>.</para>

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

	    <para>Überwachen Sie Ihr Programm auf neue Versionen
	      der Software, Aktualisierungen und Security-Fixes.
	      Ankündigungen in Mailinglisten oder auf
	      Nachrichtenseiten im Internet sind dabei sehr
	      hilfreich.  Manchmal werden Sie von Benutzern gefragt
	      werden, wann Ihr Port eine Aktualisierung bekommt.
	      Wenn Sie mit anderen Dingen beschäftigt sind oder aus
	      sonstigen Gründen keine Aktualisierung
	      bereitstellen können, fragen Sie den Benutzer
	      doch einfach, ob er Ihnen bei der Aktualisierung
	      helfen möchte.</para>

	    <para>Es kann auch vorkommen, dass Sie eine automatisch
	      generierte E-Mail vom
	      <literal>&os; Ports Version Check</literal>
	      bekommen, die Sie darüber informiert, dass eine
	      aktuellere Version des Distfiles Ihres Ports
	      verfügbar ist.  Weitere Informationen über
	      dieses System (inklusive einer Erklärung, wie Sie
	      derartige E-Mails in Zukunft vermeiden können) finden
	      Sie ebenfalls in einer solchen Nachricht.</para>
	  </step>

	  <step>
	    <title>Aufnehmen von Änderungen</title>

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

	  <step>
	    <title>Nachprüfung und Test</title>

	    <para>Überprüfen und testen Sie
	      ihre Änderungen gründlich:</para>

	    <itemizedlist>
	      <listitem>
		<para>Kompilieren, installieren und testen Sie
		  ihren Port auf so vielen Plattformen und
		  Architekturen, wie Sie können. Es kommt sehr
		  häufig vor, dass ein Port auf einem
		  Entwicklungszweig oder einer Plattform
		  funktioniert, auf einer anderen Plattform aber
		  Fehler erzeugt.</para>
	      </listitem>

	      <listitem>
		<para>Stellen Sie sicher, dass die
		  Abhängigkeiten ihres Ports vollständig
		  sind.  Die empfohlene Vorgehensweise dafür
		  ist, dass Sie ihre eigenen Ports in einer
		  <application>Tinderbox</application> kompilieren.
		  Weitere Informationen zu diesem Thema finden Sie im
		  Abschnitt <link linkend="resources">Ressourcen</link>
		  dieses Artikels.</para>
	      </listitem>

	      <listitem>
		<para>Stellen Sie sicher, dass die Liste der zu
		  installierenden Dateien und Verzeichnisse aktuell
		  ist.</para>
	      </listitem>

	      <listitem>
		<para>Überprüfen Sie ihren Port mit
		  &man.portlint.1;.  Sehen Sie sich dazu den Abschnitt
		  <link linkend="resources">Ressourcen</link> an.
		  Dieser enthält wichtige Informationen zum
		  Einsatz von <application>portlint</application>.</para>
	      </listitem>

	      <listitem>
		<para>Achten Sie darauf, dass Änderungen an Ihrem
		  Port nicht den Bau eines anderen Ports verhindern.
		  Ist dies der Fall, besprechen Sie die von Ihnen
		  durchgeführten Änderungen mit den
		  Maintainern der betroffenen Ports. Dies ist
		  besonders dann wichtig, wenn Ihre Aktualisierung die
		  <quote>Shared Library</quote>-Version ändert; in
		  diesem Fall werden Sie für die abhängigen Ports
		  einen <makevar>PORTREVISION</makevar>-Bump
		  benötigen, damit diese von automatisierten
		  Werkzeugen wie <application>portmaster</application>
		  oder &man.portupgrade.1; auf dem neuesten Stand
		  gehalten werden.</para>
	      </listitem>
	    </itemizedlist>
	  </step>

	  <step>
	    <title>Änderungen einreichen</title>

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

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

	  <step>
	    <title>Warten</title>

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

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

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

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

	    <para>Ihre Änderungen werden übermittelt und im
	      Anschluss daran wird Ihr Port aktualisiert.  Der
	      betreffende PR wird danach vom Committer geschlossen.
	      Herzlichen Glückwunsch, Sie haben es geschafft!</para>
	  </step>
	</procedure>
      </sect3>

      <sect3>
	<title>Stellen Sie sicher, dass Ihre Ports den Buildprozess
	  weiterhin erfolgreich durchlaufen</title>

	<para>Dieser Abschnitt beschreibt, wie Sie Probleme entdecken
	  und beheben, die ihre Ports daran hindern, den Buildprozess
	  erfolgreich zu durchlaufen.</para>

	<para>&os; garantiert nur für die
	  <literal>-STABLE</literal>-Zweige, dass die
	  Ports-Sammlung korrekt funktioniert.  Sie sollten
	  <literal>7-STABLE</literal> oder
	  <literal>8-STABLE</literal> benutzen, wobei der letztere
	  Zweig bevorzugt wird. Theoretisch sollte es ausreichen, das
	  aktuelle <quote>Stable Release</quote> des jeweiligen
	  <literal>STABLE</literal>-Zweigs einzusetzen (da die ABIs
	  in der Regel nicht geändert werden), es empfiehlt sich
	  aber, dem jeweiligen STABLE-Zweig zu folgen.</para>

	<para>Seit die Mehrheit von &os;-Installationen auf
	  PC-kompatiblen Maschinen arbeitet
	  (<literal>i386</literal>-Architektur) erwarten wir, dass Ihr
	  Port auf dieser Architektur funktioniert.  Ebenfalls
	  bevorzugen wir es, wenn Ports nativ auf der
	  <literal>amd64</literal>-Architektur funktionieren.  Es ist
	  durchaus in Ordnung, um Hilfe zu fragen, wenn Sie keine
	  solche Maschine besitzen.</para>

	<note>
	  <para>Häufige Fehler beim Umgang mit
	    nicht-<literal>i386</literal> Maschinen entstehen,
            weil Programmierer ür Instanzen und Pointer
	    <literal>int</literal>s verwendeten, oder weil der
	    relativ simple <application>gcc</application>-Compiler
	    genutzt wird.  Immer mehr Programmautoren
	    überarbeiten ihren Code, um diese Fehler zu
	    beseitigen &mdash; wenn der Programmautor seinen Code
	    allerdings nicht aktiv betreut, müssen Sie dies
	    eventuell selbst in die Hand nehmen.</para>
	</note>

	<para>Sie sollten die folgende Liste durchgehen, um
	  sicherzustellen, dass Ihr Port gebaut werden kann:</para>

	<procedure>
	  <step>
	    <title>Achten Sie auf Build-Fehler</title>

	    <para>Überprüfen Sie regelmäßig den Ports
	      Building Cluster <ulink
	      url="http://pointyhat.FreeBSD.org">pointyhat</ulink>
	      und den <ulink
	      url="http://www.portscout.org">Distfiles-Scanner</ulink>,
	      um festzustellen, ob einer Ihrer Ports nicht gebaut oder
	      die Distfiles nicht geladen werden können (lesen Sie den
	      Abschnitt <link linkend="resources">Ressourcen</link>
	      dieses Artikels für weitere Informationen zu diesen
	      Systemen).  Fehlerberichte kommen eventuell auch von
	      anderen Benutzern oder als automatisierte Meldungen per
	      E-Mail.</para>
	  </step>

	  <step>
	    <title>Sammeln Sie Informationen</title>

	    <para>Wenn Sie ein Problem entdecken, benötigen Sie
	      als Erstes Informationen, die Ihnen dabei helfen, dieses
	      Problem zu beheben.  Build-Fehler, die von
	      <literal>pointyhat</literal> gemeinsam mit Logdateien
	      verschickt werden, zeigen Ihnen, an welcher Stelle
	      der Fehler auftritt.  Wenn Ihnen ein Fehler von
	      einem anderen Benutzer mitgeteilt wird, fragen
	      Sie nach, ob er bereit ist, ihnen Informationen
	      zukommen zu lassen, die eventuell bei der Diagnose
	      des Problems helfen können, wie z.B.:</para>

	    <itemizedlist>
	      <listitem>
		<para>Build-Logs.</para>
	      </listitem>

	      <listitem>
		<para>Die Werkzeuge und Optionen, mit denen ein Port
		  gebaut wurde (inklusive der Optionen in
		<filename>/etc/make.conf</filename>).</para>
	      </listitem>

	      <listitem>
		<para>Eine Liste installierter Pakete auf dem
		  System kann mit &man.pkg.info.1; erstellt
		  werden.</para>
	      </listitem>

	      <listitem>
		<para>Die &os;-Version, welche benutzt wird, kann
		  mit &man.uname.1;<command> -a</command>
		  ermittelt werden.</para>
	      </listitem>

	      <listitem>
		<para>Wann die Ports-Sammlung das letzte Mal
		  aktualisiert wurde.</para>
	      </listitem>

	      <listitem>
		<para>Wann die <filename>INDEX</filename>-Datei
		  zuletzt aktualisiert wurde.</para>
		</listitem>
	    </itemizedlist>
	  </step>

	  <step>
	    <title>Suchen und finden Sie eine Lösung</title>

	    <para>Leider gibt es keinen allgemein gültigen
	      Weg, dies zu tun.  Denken Sie daran: Wenn Probleme
	      auftauchen bitten Sie einfach jemanden um Hilfe!
	      Ein guter Anfang ist die Mailingliste &a.ports;.
	      Auch die Entwickler der Software selbst sind oft sehr
	      hilfreich.</para>
	  </step>

	  <step>
	    <title>Änderungen übermitteln</title>

	    <para>Genau wie beim Aktualisieren eines Ports
	      sollten Änderungen integriert, geprüft
	      und getestet werden.  Reichen Sie Ihre Arbeit als
	      PR ein und geben Sie Feedback, falls dies notwendig
	      ist.</para>
	  </step>

	  <step>
	    <title>Patches an Programmautoren senden</title>

	    <para>Manchmal müssen Sie Patches erstellen, um
	      einen Port unter FreeBSD zum Laufen zu bekommen.
	      Einige (aber nicht alle) Programmautoren nehmen
	      diese Patches in Ihren Code für das nächste
	      Release auf.  Dies kann den Benutzern anderer
	      BSD-Systeme helfen und einiges an unnötiger Mehrarbeit
	      ersparen.  Bitte betrachten Sie das Versenden von
	      verwertbaren Patches an die Autoren als ein Gebot der
	      Höflichkeit.</para>
	  </step>
	</procedure>
      </sect3>

      <sect3>
	<title>Ermitteln Sie Bug-Reports und PRs, die Ihre Ports
	  betreffen</title>

	<para>&os;-spezifische Bugs werden meistens durch falsche
	  Annahmen über Build- und Laufzeitumgebungen, die
	  nicht zu &os; passen, verursacht.  Derartige Probleme zu
	  entdecken ist oft sehr schwierig, glücklicherweise
	  sind derartige Probleme aber nicht sehr häufig.</para>

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

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

	    <para>Bugs können Ihnen als E-Mail durch die <ulink
	      url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">
	      GNATS Problem Report database</ulink> zugestellt
	      werden, Sie können Ihnen aber auch direkt von
	      Benutzern gemeldet werden.</para>

	    <para>Sie sollten innerhalb von 14 Tagen auf PRs und andere
	      Berichte antworten.  Versuchen Sie schnellstmöglich
	      zu antworten, selbst wenn Sie nur mitteilen können,
	      dass Sie noch etwas Zeit brauchen, bevor Sie den PR
	      bearbeiten können.</para>

	    <para>Sollten Sie nicht innerhalb von 14 Tagen geantwortet
	      haben, darf jeder Committer via
	      <literal>maintainer-timeout</literal> auf einen PR, den
	      Sie nicht beantwortet haben, reagieren.</para>
	  </step>

	  <step>
	    <title>Sammeln Sie Informationen</title>

	    <para>Wenn mit dem Bug-Report nicht auch gleichzeitig eine
	      Lösung übermittelt wird, müssen Sie zuerst
	      die zum Beheben des Problems nötigen Informationen
	      sammeln.</para>

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

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

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

	      <listitem>
		<para>Informationen über das System, auf dem der
		  Port gebaut und ausgeführt wird, etwa die Liste
		  der installierten Pakete sowie die Ausgabe von
		  &man.env.1;.</para>
	      </listitem>

	      <listitem>
		<para>Core dumps.</para>
	      </listitem>

	      <listitem>
		<para>Stack traces.</para>
	      </listitem>
	    </itemizedlist>
	  </step>

	  <step>
	    <title>Schließen Sie falsche Reports aus</title>

	    <para>Einige Fehlerberichte sind eventuell falsch.  Es
	      kommt vor, dass ein Programm falsch benutzt wird.
	      Weiterhin können installierten Pakete veraltet sein und
	      müssten einfach nur aktualisiert werden.  Manchmal ist
	      ein gemeldeter Fehler auch nicht &os;-spezifisch.  In
	      diesem Fall melden Sie den Fehler den derzeitigen
	      Entwicklern der Software.  Wenn Sie in der Lage sind,
	      den Fehler zu beheben, können Sie dies natürlich
	      trotzdem tun und den Entwicklern Ihren Patch zukommen
	      lassen.</para>
	  </step>

	  <step>
	    <title>Lösungen finden</title>

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

	  <step>
	    <title>Änderungen einreichen oder annehmen</title>

	    <para>Genau so wie bei der Aktualisierung eines Ports
	      sollten Sie alle Änderungen zuvor analysieren und
	      testen, um Sie danach als neuen PR (oder als
	      Folgebericht (<foreignphrase>follow-up</foreignphrase>),
	      falls ein PR zu diesem Problem bereits existiert)
	      einzureichen.  Falls ein anderer Anwender Änderungen
	      für einen PR eingereicht hat, können Sie einen
	      Folgebericht erstellen, mit dem Sie die vorgeschlagenen
	      Änderungen akzeptieren oder (mit einer
	      Begründung) ablehnen.</para>
	  </step>
	</procedure>
      </sect3>

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

	<para>Teilaufgabe eines Maintainers ist es, Support zu leisten
	  &mdash; nicht den Hauptsupport für die Software &mdash;
	  aber für seine Ports und &os;-spezifische Schlampereien
	  und Probleme.  Benutzer kontaktieren Sie vielleicht wegen
	  Fragen, Anregungen, Problemen und Patches.  Die meiste Zeit
	  werden sich derartige Mitteilungen spezifisch auf &os;
	  beziehen.</para>

	<para>Manchmal müssen Sie eventuell ihre diplomatischen
	  Fähigkeiten auffrischen und Benutzer freundlich an die
	  korrekten Anlaufstellen für den Hauptsupport verweisen.
	  Nur selten werden Sie auf eine Person treffen, die Sie
	  fragt, warum die <literal>RPM</literal>s nicht aktuell sind
	  oder wie Sie die Software unter <literal>Foo Linux</literal>
	  zum Laufen bringen.  Ergreifen Sie die Gelegenheit und
	  berichten Sie, dass Ihr Port aktuell ist (natürlich nur,
	  wenn er es auch tatsächlich ist) und schlagen Sie vor,
	  einmal &os; auszuprobieren.</para>

	<para>Wenn Sie Glück haben, werden Benutzer und Entwickler
	  gelegentlich daran denken, dass Sie eine sehr
	  beschäftigte Person sind, deren Zeit nicht
	  unerschöpflich, sondern kostbar ist, und werden vielleicht
	  ein Teil Ihrer Arbeit für Sie übernehmen.
	  Beispielsweise könnten sie:</para>

	<itemizedlist>
	  <listitem>
	    <para>Einen PR einreichen oder Ihnen Patches
	      schicken.</para>
	  </listitem>

	  <listitem>
	    <para>Einen vorhandenen PR untersuchen und eventuell einen
	      Patch dazu erstellen.</para>
	  </listitem>

	  <listitem>
	    <para>Ihnen Änderungen für Ihre Ports zusenden.</para>
	  </listitem>
	</itemizedlist>

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

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

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

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

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

    <para>Die zweite Anlaufstelle ist das <ulink
      url="http://portsmon.FreeBSD.org/">&os; Ports Monitoring
      System</ulink>.  Hier können Sie nicht betreute Ports mit
      Build-Fehlern und Ports, die als <makevar>BROKEN</makevar>
      gekennzeichnet sind, finden.  Natürlich ist es auch in
      Ordnung, Änderungen an betreuten Ports zu machen.  Denken
      Sie aber bitte daran, den Maintainer zuvor davon zu
      informieren, da dieser möglicherweise bereits an diesem
      Problem arbeitet.</para>

    <para>Sobald Sie einen Fehler oder ein Problem gefunden haben,
      sammeln Sie dazu Informationen und versuchen Sie, den Fehler
      zu analysieren und zu beheben!  Wenn sich bereits ein PR mit
      diesem Problem befasst, knüpfen Sie dort an.  Ansonsten
      reichen Sie einen neuen PR ein.  Die von Ihnen vorgeschlagenen
      Änderungen werden danach geprüft.  Sind diese in
      Ordnung, werden Sie danach committed.</para>
  </sect1>

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

    <para>So wie Ihre Interessen sich ändern, haben Sie
      vielleicht irgendwann auch nicht mehr die Zeit, weiterhin
      einige (oder alle) Ihrer Ports zu betreuen.  Das ist
      verständlich. Bitte lassen Sie es uns wissen, wenn Sie
      keine Zeit oder kein Interesse mehr daran haben, Maintainer zu
      sein oder einen Port selbst nicht mehr benutzen und deshalb
      gerne abgeben wollen.  Nur auf diese Art und Weise können
      wir vorankommen und anderen anbieten, an diesen Ports zu
      arbeiten, ohne dass diese auf Ihre Antworten warten müssen.
      Denken Sie daran:  &os; ist ein Freiwilligen-Projekt.  Wenn Ihnen
      eine Aufgabe keinen Spaß mehr macht, ist es wahrscheinlich
      an der Zeit, jemand anderen an Ihre Ports zu lassen.</para>

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

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

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

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

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

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

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

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

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

    <para>Mit &man.portlint.1; können Sie einen Port auf die
      Einhaltung von stilistischen und funktionellen Richtlinien hin
      überprüfen.  Da es sich bei
      <application>portlint</application> um eine heuristische
      Anwendung handelt, sollten Sie dessen Ausgaben <emphasis>nur als
      einen Ratgeber verwenden</emphasis>.  Wenn
      <application>portlint</application> zu umfangreiche Änderungen
      vorschlägt, lesen Sie nochmal das <ulink
      url="&url.books.porters-handbook;">Porter-Handbuch</ulink>
      oder bitten Sie jemanden um Rat.</para>

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

  <index/>
</article>