Kapitel 12. Was man machen respektive vermeiden sollte

This translation may be out of date. To help with the translations please access the FreeBSD translations instance.

12.1. Einführung

Hier ist eine Liste von gebräuchlichen Dos and Don’ts (Dinge, die man machen oder vermeiden sollte), welchen Sie während des Portierungsprozesses begegnen werden. Sie sollten Ihren Port anhand dieser Liste überprüfen. Sie können auch Ports in der PR Datenbank, welche andere Menschen eingereicht haben, kontrollieren. Senden Sie bitte Kommentare zu Ports, die Sie verifizieren wie unter Bug Reports and General Commentary beschrieben. Der Abgleich von Ports aus der PR-Datenbank hilft uns diese schneller zu committen, und zeigt auch, dass Sie wissen, worum es geht.

12.2. WRKDIR

Schreiben Sie in keine Dateien außerhalb von WRKDIR. WRKDIR ist der einzige Ort, welcher während des Erstellen des Ports garantiert beschreibbar ist (siehe Ports Installieren von CDROM für ein Beispiel, um Ports in einem schreibgeschützen Zweig zu erstellen). Wenn Sie eine der pkg-* Dateien modifizieren müssen, sollten Sie eine Variable erneut definieren, anstatt die Datei zu überschreiben.

12.3. WRKDIRPREFIX

Vergewissern Sie sich, dass Ihr Port WRKDIRPREFIX beachtet. Die meisten Ports sollten sich darüber keine Sorgen machen. Beachten Sie bitte, falls auf WRKDIR eines anderen Ports verwiesen wird, dass die korrekte Position WRKDIRPREFIXPORTSDIR/subdir/name/work, und nicht etwa PORTSDIR/subdir/name/work, .CURDIR/../../subdir/name/work oder ähnliches ist.

Falls Sie WRKDIR selbst definieren, sollten Sie sicherstellen, dass Sie ${WRKDIRPREFIX}${.CURDIR} am Anfang anfügen.

12.4. Unterschiedliche Betriebssysteme und Betriebssystemversionen

Sie können auf Quelltext treffen, welcher Modifizierungen oder bedingtes Kompilieren, abhängig davon, unter welcher Unix-Version er läuft, benötigt. Falls Sie Änderungen an solch einem Quelltext vornehmen müssen, stellen Sie bitte sicher, dass Sie Ihre Änderungen so allgemein wie möglich halten, damit wir den Quelltext auf ältere FreeBSD-Systeme portieren und zur Quer-Portierung auf andere BSD-Systeme, wie etwa 4.4BSD von CSRG, BSD/386, 386BSD, NetBSD und OpenBSD verwenden können.

Der bevorzugte Weg, um 4.3BSD/Reno (1990) und neuere Versionen des BSD-Quelltextes zu unterscheiden, ist das BSD-Makro zu nutzen, welches in sys/param.h definiert ist. Hoffentlich ist diese Datei schon enthalten - falls nicht, so fügen Sie folgenden Quelltext:

#if (defined(__unix__) || defined(unix)) && !defined(USG)
#include <sys/param.h>
#endif

an der richtigen Stelle in der .c Datei hinzu. Wir glauben, dass jedes System, welches diese beiden Symbole definiert, die Datei sys/param.h besitzt. Wenn Sie auf Systeme stoßen, wo dies nicht so ist, würden wir gerne davon erfahren. Bitte senden Sie eine E-Mail an FreeBSD ports.

Eine andere Möglichkeit zur Unterscheidung ist der GNU Autoconf-Stil:

#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif

Vergessen Sie nicht -DHAVE_SYS_PARAM_H zu den CFLAGS im Makefile hinzuzufügen, falls Sie diese Methode benutzen sollten.

Sobald Sie sys/param.h hinzugefügt haben, können Sie mit Hilfe von

#if (defined(BSD) && (BSD >= 199103))

unterscheiden, ob der Quelltext auf einer 4.3 Net2 Code-Basis oder neuer (z.B. FreeBSD 1.x, 4.3/Reno, NetBSD 0.9, 386BSD, BSD/386 1.1 und niedriger) kompiliert werden wird.

Benutzen Sie:

#if (defined(BSD) && (BSD >= 199306))

um zu differenzieren, ob der Quelltext auf der Basis von 4.4 Code oder neuer (z.B. FreeBSD 2.x, 4.4, NetBSD 1.0, BSD/386 2.0 oder höher) kompiliert werden wird.

Der Wert des BSD-Makros ist 199506 für die 4.4BSD-Lite2 Codebasis. Beachten Sie bitte, dass dies hier nur der Information wegen angegeben ist. Das Makro sollte nicht dazu benutzt werden, um zwischen Versionen von FreeBSD, welche auf 4.4-Lite basieren, und Versionen, welche Änderungen von 4.4-Lite2 übernommen haben, zu unterscheiden. Das {freebsd} Makro sollte stattdessen verwandt werden.

Sparsam sollte eingesetzt werden:

  • {freebsd} ist in allen Versionen von FreeBSD definiert. Benutzen Sie dieses Makro, falls die Änderung(en), die Sie machen, nur FreeBSD betrifft. Portierungsfallen, wie der Gebrauch von sys_errlist[] gegenüber strerror() sind Berkeley-Eigenheiten, keine FreeBSD Änderungen.

  • In FreeBSD 2.x, ist {freebsd} auf 2 definiert. In älteren Versionen, ist es 1. Alle späteren Versionen erhöhen es, damit es mit der Haupt-Versionsnummer übereinstimmt.

  • Falls Sie zwischen einem FreeBSD 1.x und einem FreeBSD 2.x (oder höher) System unterscheiden müssen, ist es normalerweise richtig, die BSD-Makros (wie oben beschrieben) zu benutzen. Gibt es tatsächlich eine FreeBSD-spezifische Änderung (wie z.B. spezielle Optionen von Shared-Libraries für ld), ist es nicht zu beanstanden {freebsd} und #if {freebsd} > 1 zu nutzen, um FreeBSD 2.x und spätere Systeme zu erkennen. Falls Sie eine höhere Genauigkeit benötigen, um FreeBSD Systeme seit 2.0-RELEASE zu erkennen, können Sie folgendes nutzen:

    #if __FreeBSD__ >= 2
    #include <osreldate.h>
    #    if __FreeBSD_version >= 199504
    	 /* 2.0.5+ release specific code here */
    #    endif
    #endif

In den Tausenden von Ports, die bis jetzt erstellt wurden, gab es nur ein oder zwei Fälle, in denen {freebsd} hätte benutzt werden sollen. Nur weil ein früherer Port es an der falschen Stelle benutzt hatte, bedeutet das nicht, dass Sie dies auch machen sollten.

12.5. __FreeBSD_version Werte

Hier ist eine praktische Liste von __FreeBSD_version-Werten wie in sys/param.h definiert:

Tabelle 1. __FreeBSD_version-Werte
WertDatumRelease

119411

2.0-RELEASE

199501, 199503

19. März 1995

2.1-CURRENT

199504

9. April 1995

2.0.5-RELEASE

199508

26. August 1995

2.2-CURRENT vor 2.1

199511

10. November 1995

2.1.0-RELEASE

199512

10. November 1995

2.2-CURRENT vor 2.1.5

199607

10. Juli 1996

2.1.5-RELEASE

199608

12. Juli 1996

2.2-CURRENT vor 2.1.6

199612

15. November 1996

2.1.6-RELEASE

199612

2.1.7-RELEASE

220000

19. Februar 1997

2.2-RELEASE

(nicht geändert)

2.2.1-RELEASE

(nicht geändert)

2.2-STABLE nach 2.2.1-RELEASE

221001

15. April 1997

2.2-STABLE nach texinfo-3.9

221002

30. April 1997

2.2-STABLE nach top

222000

16. Mai 1997

2.2.2-RELEASE

222001

19. Mai 1997

2.2-STABLE nach 2.2.2-RELEASE

225000

2. Oktober 1997

2.2.5-RELEASE

225001

20. November 1997

2.2-STABLE nach 2.2.5-RELEASE

225002

27. Dezember 1997

2.2-STABLE nach der Aufnahme von ldconfig -R

226000

24. März 1998

2.2.6-RELEASE

227000

21. Juli 1998

2.2.7-RELEASE

227001

21. Juli 1998

2.2-STABLE nach 2.2.7-RELEASE

227002

19. September 1998

2.2-STABLE nach semctl(2) Änderung

228000

29. November 1998

2.2.8-RELEASE

228001

29. November 1998

2.2-STABLE nach 2.2.8-RELEASE

300000

19. Februar 1996

3.0-CURRENT vor mount(2) Änderung

300001

24. September 1997

3.0-CURRENT nach mount(2) Änderung

300002

2. Juni 1998

3.0-CURRENT nach semctl(2) Änderung

300003

7. Juni 1998

3.0-CURRENT nach ioctl arg Änderungen

300004

3. September 1998

3.0-CURRENT nach ELF-Konvertierung

300005

16. Oktober 1998

3.0-RELEASE

300006

16. Oktober 1998

3.0-CURRENT nach 3.0-RELEASE

300007

22. Januar 1999

3.0-STABLE nach 3/4 Zweig

310000

9. Februar 1999

3.1-RELEASE

310001

27. März 1999

3.1-STABLE nach 3.1-RELEASE

310002

14. April 1999

3.1-STABLE nach Änderung der C++ Konstruktor/Destruktor-Reihenfolge

320000

3.2-RELEASE

320001

8. Mai 1999

3.2-STABLE

320002

29. August 1999

3.2-STABLE nach binär-inkompatibler IPFW und Socket-Änderungen

330000

2. September 1999

3.3-RELEASE

330001

16. September 1999

3.3-STABLE

330002

24. November 1999

3.3-STABLE nach Hinzufügen von mkstemp(3) zur libc

340000

5. Dezember 1999

3.4-RELEASE

340001

17. Dezember 1999

3.4-STABLE

350000

20. Juni 2000

3.5-RELEASE

350001

12. Juli 2000

3.5-STABLE

400000

22. Januar 1999

4.0-CURRENT nach 3.4 Zweig

400001

20. Februar 1999

4.0-CURRENT nach der Änderung im Verhalten des dynamischen Linkers.

400002

13. März 1999

4.0-CURRENT nach Änderung der C++ Konstruktor/Destruktor Reihenfolge.

400003

27. März 1999

4.0-CURRENT nach funktionierendem dladdr(3).

400004

5. April 1999

4.0-CURRENT nach der __deregister_frame_info Fehlerbehebung für den dynamischen Linker (auch 4.0-CURRENT nach EGCS 1.1.2 Integration).

400005

27. April 1999

4.0-CURRENT nach suser(9) API Änderung (auch 4.0-CURRENT nach newbus).

400006

31. Mai 1999

4.0-CURRENT nach Änderung der cdevsw-Registrierung.

400007

17. Juni 1999

4.0-CURRENT nach Hinzufügen von so_cred für Zugangsberechtigungen auf Socket-Ebene.

400008

20. Juni 1999

4.0-CURRENT nach Hinzufügen eines poll Syscall-Wrappers zur libc_r.

400009

20. Juli 1999

4.0-CURRENT nach der Änderung des Kernel dev_t-Typs zum struct specinfo-Zeiger.

400010

25. September 1999

4.0-CURRENT nach dem Beseitigen eines Fehlers in jail(2).

400011

29. September 1999

4.0-CURRENT nach der sigset_t Datentyp Änderung.

400012

15. November 1999

4.0-CURRENT nach dem Wechsel zum GCC 2.95.2-Compiler.

400013

4. Dezember 1999

4.0-CURRENT nach Hinzufügen der erweiterbaren Linux Mode ioctl-Routinen.

400014

18. Januar 2000

4.0-CURRENT nach dem OpenSSL-Import.

400015

27. Januar 2000

4.0-CURRENT nach der C++ ABI Änderung in GCC 2.95.2 von -fvtable-thunks zu -fno-vtable-thunks als Standard.

400016

27. Februar 2000

4.0-CURRENT nach OpenSSH-Import.

400017

13. März 2000

4.0-RELEASE

400018

17. März 2000

4.0-STABLE nach 4.0-RELEASE

400019

5. Mai 2000

4.0-STABLE nach der Einführung von verzögerten Prüfsummen.

400020

4. Juni 2000

4.0-STABLE nach dem Einpflegen des libxpg4-Quelltextes in die libc.

400021

8. Juli 2000

4.0-STABLE nach der Aktualisierung von Binutils auf 2.10.0, Änderungen der binären ELF-Markierungen, Aufnahme von tcsh ins Basissystem.

410000

14. Juli 2000

4.1-RELEASE

410001

29. Juli 2000

4.1-STABLE nach 4.1-RELEASE

410002

16. September 2000

4.1-STABLE nachdem setproctitle(3) von der libutil in die libc verschoben wurde.

411000

25. September 2000

4.1.1-RELEASE

411001

4.1.1-STABLE nach 4.1.1-RELEASE

420000

31. Oktober 2000

4.2-RELEASE

420001

10. Januar 2001

4.2-STABLE nach Kombinaion von libgcc.a und libgcc_r.a und zugehörigen Änderungen der GCC-Bindungen.

430000

6. März 2001

4.3-RELEASE

430001

18. Mai 2001

4.3-STABLE nach der Einführung von wint_t.

430002

22. Juli 2001

4.3-STABLE nach dem Einpflegen der PCI Stromstatus-API.

440000

1. August 2001

4.4-RELEASE

440001

23. Oktober 2001

4.4-STABLE nach der Einführung von d_thread_t.

440002

4. November 2001

4.4-STABLE nach den Änderungen der mount-Struktur (betrifft Dateisystem-Kernelmodule).

440003

18. Dezember 2001

4.4-STABLE nachdem die Userland-Komponenten von smbfs importiert worden sind.

450000

20. Dezember 2001

4.5-RELEASE

450001

24. Februar 2002

4.5-STABLE nach der Umbenennung von Elementen der USB-Struktur.

450004

16. April 2002

4.5-STABLE nachdem die sendmail_enable rc.conf(5) Variable geändert worden ist, um den Wert NONE zu akzeptieren.

450005

27. April 2002

4.5-STABLE nachdem XFree86 4 als Standard zum Bauen der Pakete benutzt wird.

450006

1. Mai 2002

4.5-STABLE nach dem Reparieren des Empfangsfilters, welcher anfällig für einfache DoS-Attacken war.

460000

21. Juni 2002

4.6-RELEASE

460001

21. Juni 2002

4.6-STABLE sendfile(2) repariert, um mit der Dokumentation übereinzustimmen, und nicht mehr die Anzahl der gesendeten Header mit der Anzahl der Daten, welche aus der Datei geschickt werden, gegenzurechnen.

460002

19. Juli 2002

4.6.2-RELEASE

460100

26. Juni 2002

4.6-STABLE

460101

26. Juni 2002

4.6-STABLE nach dem Einfließen von sed -i aus CURRENT.

460102

1. September 2002

4.6-STABLE nach dem Einfließen von vielen neuen pkg_install-Funktionen aus HEAD (HEAD = die aktuellste und letzte Version des Quellverzeichnisbaumes).

470000

8. Oktober 2002

4.7-RELEASE

470100

9. Oktober 2002

4.7-STABLE

470101

10. November 2002

Beginn von generierten std{in,out,err}p Referenzen statt sF. Dies ändert std{in,out,err} von einem Ausdruck während des Kompilierens zu einem Laufzeitausdruck.

470102

23. Januar 2003

4.7-STABLE nach dem Einfliessen von mbuf-Änderungen, um m_aux mbufs mit denen von m_tag zu ersetzen

470103

14. Februar 2003

4.7-STABLE erhält OpenSSL 0.9.7

480000

30. März 2003

4.8-RELEASE

480100

5. April 2003

4.8-STABLE

480101

22. Mai 2003

4.8-STABLE nachdem realpath(3) Thread-sicher gemacht wurde.

480102

10. August 2003

4.8-STABLE Änderung der 3ware-API in twe.

490000

27. Oktober 2003

4.9-RELEASE

490100

27. Oktober 2003

4.9-STABLE

490101

8. Januar 2004

4.9-STABLE nachdem e_sid zu der Struktur kinfo_eproc hinzugefügt wurde.

490102

4. Februar 2004

4.9-STABLE nach dem Einfliessen der libmap-Funktionalität für rtld.

491000

25. Mai 2004

4.10-RELEASE

491100

1. Juni 2004

4.10-STABLE

491101

11. August 2004

4.10-STABLE nach dem Einfliessen von Revision 20040629 der Paket-Werkzeuge aus CURRENT.

491102

16. November 2004

4.10-STABLE nach der Fehlerbehebung in der VM, um das Freigeben von fiktiven Speicherseiten korrekt zu handhaben.

492000

17. Dezember 2004

4.11-RELEASE

492100

17. Dezember 2004

4.11-STABLE

492101

18. April 2006

4.11-STABLE nach dem Hinzufügen von libdata/ldconfig Verzeichnissen zu den mtree-Dateien.

500000

13. März 2000

5.0-CURRENT

500001

18. April 2000

5.0-CURRENT nach Hinzufügen von zusätzlichen Feldern in den ELF-Headern und Ändern der Methode zur ELF-Markierung von Binärdateien.

500002

2. Mai 2000

5.0-CURRENT nach kld-Metadaten Änderungen.

500003

18. Mai 2000

5.0-CURRENT nach buf/bio Änderungen.

500004

26. Mai 2000

5.0-CURRENT nach binutils Aktualisierung.

500005

3. Juni 2000

5.0-CURRENT nach dem Einfliessen des libxpg4 Quelltextes in die libc und der Einführung der TASKQ-Schnittstelle.

500006

10. Juni 2000

5.0-CURRENT nach dem Hinzufügen der AGP-Schnittstellen.

500007

29. Juni 2000

5.0-CURRENT nach der Aktualisierung von Perl auf Version 5.6.0.

500008

7. Juli 2000

5.0-CURRENT nach der Aktualisierung des KAME-Quelltextes zu den 2000/07-Quellen.

500009

14. Juli 2000

5.0-CURRENT nach ether_ifattach() und ether_ifdetach() Änderungen.

500010

16. Juli 2000

5.0-CURRENT nachdem die mtree-Standards zurück zur ursprünglichen Variante geändert wurden; -L hinzugefügt, um Symlinks zu folgen.

500011

18. Juli 2000

5.0-CURRENT nachdem die kqueue-API geändert worden ist.

500012

2. September 2000

5.0-CURRENT nachdem setproctitle(3) von libutil nach libc verschoben worden ist.

500013

10. September 2000

5.0-CURRENT nach dem ersten SMPng-Commit.

500014

4. Januar 2001

5.0-CURRENT nachdem <sys/select.h> nach <sys/selinfo.h> verschoben worden ist.

500015

10. Januar 2001

5.0-CURRENT nach dem Kombinieren von libgcc.a und libgcc_r.a und damit verbundene Änderungen an GCC-Bindungen.

500016

24. Januar 2001

5.0-CURRENT nach der Änderung das Zusammenbinden von libc und libc_r zu erlauben, womit die -pthread Option veraltet ist.

500017

18. Februar 2001

5.0-CURRENT nach dem Umschalten von struct ucred zu struct xucred, um die vom Kernel exportierte API für mount u.a.zu stabilisieren.

500018

24. Februar 2001

5.0-CURRENT nach dem Hinzufügen der CPUTYPE make Variable zum Kontrollieren von CPU-spezifischen Optimierungen.

500019

9. Juni 2001

5.0-CURRENT nach dem Verschieben von machine/ioctl_fd.h nach sys/fdcio.h

500020

15. Juni 2001

5.0-CURRENT nach der Umbenennung der locale-Namen.

500021

22. Juni 2001

5.0-CURRENT nach dem Bzip2-Import. Kennzeichnet auch, dass S/Key entfernt wurde.

500022

12. Juli 2001

5.0-CURRENT nach SSE Unterstützung.

500023

14. September 2001

5.0-CURRENT nach KSE-Meilenstein 2.

500024

1. Oktober 2001

5.0-CURRENT nach d_thread_t, und nachdem UUCP in die Ports verschoben worden ist.

500025

4. Oktober 2001

5.0-CURRENT nach Änderungen in der ABI bei der Weitergabe von Deskriptoren und Berechtigungen auf 64 Bit Plattformen.

500026

9. Oktober 2001

5.0-CURRENT nachdem XFree86 4 als Standard zum Erstellen der Pakete benutzt wird und die neue libc strnstr()-Funktion hinzugefügt wurde.

500027

10. Oktober 2001

5.0-CURRENT nachdem die neue libc strcasestr()-Funktion hinzugefügt wurde.

500028

14. Dezember 2001

5.0-CURRENT nachdem die Userland-Komponenten von smbfs importiert wurden.

(nicht geändert)

5.0-CURRENT nachdem die neuen C99-Ganzzahlen mit spezifischer Breite hinzugefügt wurden.

500029

29. Januar 2002

5.0-CURRENT nachdem eine Änderung im Rückgabewert von sendfile(2) gemacht wurde.

500030

15. Februar 2002

5.0-CURRENT nach der Einführung des Types fflags_t, welches die passende Größe für Dateiflags hat.

500031

24. Februar 2002

5.0-CURRENT nach der Umbenennung der USB elements-Struktur.

500032

16. März 2002

5.0-CURRENT nach der Einführung von Perl 5.6.1.

500033

3. April 2002

5.0-CURRENT nachdem die sendmail_enable rc.conf(5) Variable geändert worden ist, um den Wert NONE zu akzeptieren.

500034

30. April 2002

5.0-CURRENT nachdem mtx_init() einen dritten Parameter entgegen nimmt.

500035

13. Mai 2002

5.0-CURRENT mit GCC 3.1.

500036

17. Mai 2002

5.0-CURRENT ohne Perl in /usr/src

500037

29. Mai 2002

5.0-CURRENT nach dem Hinzufügen von dlfunc(3)

500038

24. Juli 2002

5.0-CURRENT nachdem die Typen von einigen Elementen der sockbuf-Struktur geändert wurden und nachdem die Struktur neu geordnet wurde.

500039

1. September 2002

5.0-CURRENT nach dem GCC 3.2.1 Import. Und auch nachdem die Header nicht mehr BSD_FOO_T sondern _FOO_T_DECLARED benutzen. Dieser Wert kann auch als konservative Schätzung für den Beginn der Unterstützung des bzip2(1) Pakets verwendet werden.

500040

20. September 2002

5.0-CURRENT nachdem verschiedene Änderungen an Plattenfunktionen gemacht wurden, um die Anhängigkeit von Interna der disklabel-Struktur zu entfernen.

500041

1. Oktober 2002

5.0-CURRENT nach dem Hinzufügen von getopt_long(3) zur libc.

500042

15. Oktober 2002

5.0-CURRENT nach der Aktualisierung von Binutils auf 2.13, bei denen die FreeBSD-Emulation, vec und das Ausgabeformat geändert wurden.

500043

1. November 2002

5.0-CURRENT nach dem Hinzufügen schwacher pthread_XXX Stubs zur libc, womit libXThrStub.so veraltet ist. 5.0-RELEASE.

500100

17. Januar 2003

5.0-CURRENT nach dem Erstellen des RELENG_5_0-Zweiges

500101

19. Februar 2003

<sys/dkstat.h> ist leer und sollte nicht inkludiert werden.

500102

25. Februar 2003

5.0-CURRENT nach der Änderung in der d_mmap_t-Schnittstelle.

500103

26. Februar 2003

5.0-CURRENT nachdem taskqueue_swi geädert wurde, um ohne Giant zu arbeiten, und taskqueue_swi_giant hinzugefügt wurde, um Giant zu verwenden.

500104

27. Februar 2003

cdevsw_add() und cdevsw_remove() gibt es nicht länger. Auftauchen der MAJOR_AUTO-Allokationsmöglichkeit.

500105

4. März 2003

5.0-CURRENT nach der neuen cdevsw-Initialisierungsmethode.

500106

8. März 2003

devstat_add_entry() wurde durch devstat_new_entry() ersetzt.

500107

15. März 2003

Devstat Schnittstellenänderung; siehe sys/sys/param.h 1.149.

500108

15. März 2003

Token-Ring Schnittstellenänderungen.

500109

25. März 2003

Hinzufügen von vm_paddr_t.

500110

28. März 2003

5.0-CURRENT nachdem realpath(3) Thread-sicher gemacht wurde.

500111

9. April 2003

5.0-CURRENT nachdem usbhid(3) mit NetBSD synchronisiert wurde.

500112

17. April 2003

5.0-CURRENT nach der neuen NSS Implementierung und Hinzufügen der POSIX.1 getpw*_r, getgr*_r Funktionen.

500113

2. Mai 2003

5.0-CURRENT nach Entfernen des alten rc-Systems.

501000

4. Juni 2003

5.1-RELEASE.

501100

2. Juni 2003

5.1-CURRENT nach dem Erstellen des RELENG_5_1 Zweiges.

501101

29. Juni 2003

5.1-CURRENT nachdem die Semantik von sigtimedwait(2) and sigwaitinfo(2) korrigiert wurden.

501102

3. Juli 2003

5.1-CURRENT nach dem Hinzufügen der lockfunc und lockfuncarg-Felder zu bus_dma_tag_create(9).

501103

31. Juli 2003

5.1-CURRENT nach der Integration des GCC 3.3.1-pre 20030711 Snapshots.

501104

5. August 2003

5.1-CURRENT 3ware-API Änderungen in twe.

501105

17. August 2003

5.1-CURRENT Unterstützung von dynamisch gebundenen /bin und /sbin und Verschieben von Bibliotheken nach /lib.

501106

8. September 2003

5.1-CURRENT nachdem im Kernel Unterstützung für Coda 6.x hinzugefügt wurden.

501107

17. September 2003

5.1-CURRENT nachdem die 16550 UART-Konstanten von <dev/sio/sioreg.h> nach <dev/ic/ns16550.h> verschoben wurden. Und nachdem die libmap Funktionalität vorbehaltlos vom rtld unterstützt wurde.

501108

23. September 2003

5.1-CURRENT nach Aktualisierung der PFIL_HOOKS API.

501109

27. September 2003

5.1-CURRENT nachdem kiconv(3) hinzugefügt wurde.

501110

28. September 2003

5.1-CURRENT nachdem der standardmäßige Ablauf von open und close in cdevsw geändert wurde.

501111

16. Oktober 2003

5.1-CURRENT nachdem das Layout von cdevsw geändert wurde.

501112

16. Oktober 2003

5.1-CURRENT nach dem Hinzufügen von Mehrfachvererbung in kobj.

501113

31. Oktober 2003

5.1-CURRENT nach der if_xname Änderung in der Struktur ifnet

501114

16. November 2003

5.1-CURRENT nachdem /bin und /sbin geändert wurden, um sie dynamisch zu binden.

502000

7. Dezember 2003

5.2-RELEASE

502010

23. Februar 2004

5.2.1-RELEASE

502100

7. Dezember 2003

5.2-CURRENT nach dem Erstellen des RELENG_5_2-Zweiges.

502101

19. Dezember 2003

5.2-CURRENT nachdem die cxa_atexit/cxa_finalize Funktionen zur libc hinzugefügt wurden.

502102

30. Januar 2004

5.2-CURRENT nachdem die Standard-Thread Bibliothek von libc_r zu libpthread geändert wurde.

502103

21. Februar 2004

5.2-CURRENT nach dem Gerätetreiber API Megapatch.

502104

25. Februar 2004

5.2-CURRENT nachdem getopt_long_only() hinzugefügt wurde.

502105

5. März 2004

5.2-CURRENT nachdem NULL für C in ((void *)0) geändert wurde, was mehr Warnungen erzeugt.

502106

8. März 2004

5.2-CURRENT nachdem pf beim Bauen und Installieren mit eingebunden wird.

502107

10. März 2004

5.2-CURRENT nachdem time_t auf der sparc64-Plattform in einen 64-bit Wert geändert wurde.

502108

12. März 2004

5.2-CURRENT nachdem sich die Unterstützung für den Intel C/C++-Compiler in einigen Headern und execve(2) geändert hat, um sich strikter an POSIX zu halten.

502109

22. März 2004

5.2-CURRENT nach der Einführung der bus_alloc_resource_any API

502110

27. März 2004

5.2-CURRENT nach dem Hinzufügen von UTF-8 locales

502111

11. April 2004

5.2-CURRENT nach dem Entfernen der getvfsent(3) API

502112

13. April 2004

5.2-CURRENT nach dem Hinzufügen der .warning Directive für make.

502113

4. Juni 2004

5.2-CURRENT nachdem ttyioctl() zwingend erforderlich für serielle Treiber gemacht wurde.

502114

13. Juni 2004

5.2-CURRENT nach dem Import des ALTQ-Frameworks.

502115

14. Juni 2004

5.2-CURRENT nachdem sema_timedwait(9) geändert wurde, 0 bei Erfolg und einen von 0 verschiedenen Fehlercode im Falle eines Fehlers zurückzuliefern.

502116

16. Juni 2004

5.2-CURRENT nach dem Ändern der Kernel Struktur dev_t, in ein Zeiger auf die Struktur cdev *

502117

17. Juni 2004

5.2-CURRENT nach dem Ändern der Kernelstruktur udev_t in dev_t.

502118

17. Juni 2004

5.2-CURRENT nachdem Unterstützung für CLOCK_VIRTUAL und CLOCK_PROF zu clock_gettime(2) und clock_getres(2) hinzugefügt wurde.

502119

22. Juni 2004

5.2-CURRENT nachdem die Überprüfung des Klonens von Netzwerk-Schnittstellen geändert wurde.

502120

2. Juli 2004

5.2-CURRENT nach dem Einfliessen von Revision 20040629 der Paket-Werkzeuge.

502121

9. Juli 2004

5.2-CURRENT nachdem Bluetooth-Quelltext als nicht i386-spezifisch markiert wurde.

502122

11. Juli 2004

5.2-CURRENT nach der Einführung des KDB Debugger Frameworks, der Umwandlung des DDB in ein Backend und der Einführung des GDB-Backends.

502123

12. Juli 2004

5.2-CURRENT nachdem VFS_ROOT geändert wurde, eine Struktur thread als Argument zu aktzeptieren, wie vflush. Die Struktur kinfo_proc enthält nun einen Zeiger auf Benutzer Daten. Der Umstieg auf xorg als standardmäßige X Implementierung wurde auch zu dieser Zeit durchgeführt.

502124

24. Juli 2004

5.2-CURRENT nachdem die Art und Weise, wie rc.d-Skripte von Ports und Altlasten gestartet werden, getrennt wurde.

502125

28. Juli 2004

5.2-CURRENT nachdem die vorherige Änderung rückgängig gemacht wurde.

502126

31. Juli 2004

5.2-CURRENT nach dem Entfernen von kmem_alloc_pageable() und dem Import von GCC 3.4.2.

502127

2. August 2004

5.2-CURRENT nachdem die UMA Kernel API geändert wurde, um Konstruktoren und Initialisierungsmethoden zu erlauben fehlzuschlagen.

502128

8. August 2004

5.2-CURRENT nach der Änderung in der vfs_mount Signatur sowie allgemeines Ersetzen von PRISON_ROOT durch SUSER_ALLOWJAIL in der suser(9) API.

503000

23. August 2004

5.3-BETA/RC vor der Änderung der pfil-API.

503001

22. September 2004

5.3-RELEASE

503100

16. Oktober 2004

5.3-STABLE nach dem Erstellen des RELENG_5_3-Zweiges.

503101

3. Dezember 2004

5.3-STABLE nach dem Hinzufügen von Fülloptionen im Stile der libc zu strftime(3).

503102

13. Februar 2005

5.3-STABLE nachdem OpenBSD’s nc(1) von CURRENT importiert wurde.

503103

27. Februar 2005

5.4-PRERELEASE nach dem Einfliessen der Reparaturen aus CURRENT, in <src/include/stdbool.h> und <src/sys/i386/include/_types.h>, um die GCC-Kompatibilität des Intel C/C++-Compilers zu benutzen.

503104

28. Februar 2005

5.4-PRERELEASE nach dem Einfliessen der Änderung aus CURRENT in ifi_epoch statt der lokalen Zeit die Betriebszeit des Systems zu benutzen.

503105

2. März 2005

5.4-PRERELEASE nach dem Einfliessen der Reparaturen von EOVERFLOW in vswprintf(3) aus CURRENT.

504000

3. April 2005

5.4-RELEASE.

504100

3. April 2005

5.4-STABLE nach dem Erstellen des RELENG_5_4-Zweiges.

504101

11. Mai 2005

5.4-STABLE nach dem Vergrößern der standardmäßigen Stackgröße für Threads.

504102

24. Juni 2005

5.4-STABLE nach dem Hinzufügen von sha256.

504103

3. Oktober 2005

5.4-STABLE nach dem Einfliessen von if_bridge aus CURRENT.

504104

13. November 2005

5.4-STABLE nach dem Einfliessen von bsdiff und portsnap aus CURRENT.

504105

17. Januar 2006

5.4-STABLE nach dem Einfliessen der Änderung von ldconfig_local_dirs aus CURRENT.

505000

12. Mai 2006

5.5-RELEASE.

505100

12. Mai 2006

5.5-STABLE nach dem Erstellen des RELENG_5_5-Zweiges.

600000

18. August 2004

6.0-CURRENT

600001

27. August 2004

6.0-CURRENT nach der festen Aktivierung von PFIL_HOOKS im Kernel.

600002

30. August 2004

6.0-CURRENT nach der anfänglichen Einführung von ifi_epoch zur Struktur if_data. Wurde nach ein paar Tagen wieder rückgängig gemacht. Benutzen Sie diesen Wert bitte nicht.

600003

8. September 2004

6.0-CURRENT nach dem erneuten Hinzufügen des Elements ifi_epoch zur Struktur if_data.

600004

29. September 2004

6.0-CURRENT nach dem Hinzufügen der Struktur inpcb als Argument in der pfil API.

600005

5. Oktober 2004

6.0-CURRENT nach dem Hinzufügen des "-d DESTDIR" Schalters zu newsyslog.

600006

4. November 2004

6.0-CURRENT nach dem Hinzufügen von Fülloptionen im Style der libc zu strftime(3).

600007

12. Dezember 2004

6.0-CURRENT nach dem Hinzufügen von 802.11 Framework Neuerungen.

600008

25. Januar 2005

6.0-CURRENT Änderung an den VOP_*VOBJECT() Funktionen und Einführung des MNTK_MPSAFE Schalters für Dateisysteme, welche ohne Giant arbeiten.

600009

4. Februar 2005

6.0-CURRENT nach dem Hinzufügen von cpufreq Framework und Treibern.

600010

6. Februar 2005

6.0-CURRENT nachdem OpenBSD’s nc(1) importiert wurde.

600011

12. Februar 2005

6.0-CURRENT nachdem der Anschein von matherr() Unterstützung in SVID2 entfernt wurde.

600012

15. Februar 2005

6.0-CURRENT nach dem Vergrößern der standardmäßigen Stackgröße für Threads.

600013

19. Februar 2005

6.0-CURRENT nach dem Einfliessen der Reparaturen in <src/include/stdbool.h> und <src/sys/i386/include/_types.h>, um die GCC-Kompatibilität des Intel C/C++-Compilers zu benutzen.

600014

21. Februar 2005

6.0-CURRENT nachdem die Überprüfungen auf EOVERFLOW in vswprintf(3) korrigiert wurden.

600015

25. Februar 2005

6.0-CURRENT nach dem Einfliessen der Änderung, in ifi_epoch, statt der lokalen Zeit, die Betriebzeit des Systems zu benutzen.

600016

26. Februar 2005

6.0-CURRENT nachdem das Format von LC_CTYPE auf der Festplatte verändert wurde.

600017

27. Februar 2005

6.0-CURRENT nachdem das Format der NLS-Kataloge auf der Festplatte verändert wurde.

600018

27. Februar 2005

6.0-CURRENT nachdem das Format von LC_COLLATE auf der Festplatte verändert wurde.

600019

28. Februar 2005

Installation der acpica Include-Dateien in /usr/include.

600020

9. März 2005

Hinzufügen des MSG_NOSIGNAL Schalters zur send(2) API.

600021

17. März 2005

Hinzufügen von Feldern zu cdevsw

600022

21. März 2005

gtar wurde aus dem Basissystem entfernt.

600023

13. April 2005

Die Optionen LOCAL_CREDS, LOCAL_CONNWAIT für Sockets wurde zu unix(4) hinzugefügt.

600024

19. April 2005

hwpmc(4) und zugehörige Werkzeuge wurden zu 6.0-CURRENT hinzugefügt.

600025

26. April 2005

Die Struktur icmphdr wurden zu 6.0-CURRENT hinzugefügt.

600026

3. Mai 2005

pf Aktualisierung auf 3.7.

600027

6. Mai 2005

Kernel libalias und ng_nat wurden eingeführt.

600028

13. Mai 2005

POSIX ttyname_r(3) wurde über unistd.h und libc zur Verfügung gestellt.

600029

29. Mai 2005

6.0-CURRENT nachdem libpcap zu Version v0.9.1 alpha 096 aktualisiert wurde.

600030

5. Juni 2005

6.0-CURRENT nach dem Import von NetBSDs if_bridge(4).

600031

10. Juni 2005

6.0-CURRENT nachdem die Struktur ifnet aus dem Treiber softcs herausgelöst wurde.

600032

11. Juli 2005

6.0-CURRENT nach dem Import von libpcap v0.9.1.

600033

25. Juli 2005

6.0-STABLE nachdem die Versionen aller gemeinsam genutzten Bibliotheken, welche seit RELENG_5 nicht geändert wurden, erhöht wurden.

600034

13. August 2005

6.0-STABLE nachdem das Argument credential zu der dev_clone-Ereignisbehandlung hinzugefügt wurde. 6.0-RELEASE.

600100

1. November 2005

6.0-STABLE nach dem Erstellen des 6.0-RELEASE-Zweiges.

600101

21. Dezember 2005

6.0-STABLE nach dem Aufnehmen von Skripten aus den local_startup-Verzeichnissen in rcorder(8) des Basissystems.

600102

30. Dezember 2005

6.0-STABLE nach dem Aktualisieren der ELF-Typen und Konstanten.

600103

15. Januar 2006

6.0-STABLE nach dem Einfliessen der pidfile(3)-API aus CURRENT.

600104

17. Januar 2006

6.0-STABLE nach dem Einfliessen der Änderung von ldconfig_local_dirs aus CURRENT.

600105

26. Februar 2006

6.0-STABLE nach der NLS-Katalogunterstützung von csh(1).

601000

6. Mai 2006

6.1-RELEASE

601100

6. Mai 2006

6.1-STABLE nach 6.1-RELEASE.

601101

22. Juni 2006

6.1-STABLE nach dem Import von csup.

601102

11. Juli 2006

6.1-STABLE nach der iwi(4)-Aktualisierung.

601103

17. Juli 2006

6.1-STABLE nach der Aktualisierung der Namensauflösung zu BIND9 und Aufnahme der ablaufinvarianten Versionen der netdb-Funktionen.

601104

8. August 2006

6.1-STABLE nachdem Unterstützung für DSO (dynamic shared objects - gemeinsam genutzte, dynamische Objekte) in OpenSSL aktiviert wurde.

601105

2. September 2006

6.1-STABLE nachdem 802.11 Reparaturen die API der IEEE80211_IOC_STA_INFO ioctl geändert haben.

602000

15. November 2006

6.2-RELEASE

602100

15. September 2006

6.2-STABLE nach 6.2-RELEASE.

602101

12. Dezember 2006

6.2-STABLE nach dem Hinzufügen der Wi-Spy Eigenart.

602102

28. Dezember 2006

6.2-STABLE nachdem pci_find_extcap() hinzugefügt wurde.

602103

16. Januar 2007

6.2-STABLE nach dem Einpflegen der dlsym Änderung aus CURRENT, ein angefordertes Symbol sowohl in der spezifizierten dso, als auch in den impliziten Abhängigkeiten nachzuschlagen.

602104

28. Januar 2007

6.2-STABLE nach dem Einpflegen von ng_deflate(4) und ng_pred1(4) netgraph Knoten und neuen Kompressions- und -Verschlüsselungmodi für den ng_ppp(4) Knoten aus CURRENT.

602105

20. Februar 2007

6.2-STABLE nach dem Einpflegen der BSD lizensierten Version von gzip(1), welche von NetBSD portiert wurde aus CURRENT.

602106

31. März 2007

6.2-STABLE nach dem Einpflegen der PCI MSI und MSI-X Unterstützung aus CURRENT.

602107

6. April 2007

6.2-STABLE nach dem Einpflegen von ncurses 5.6 und Unterstützung für Multibyte-Zeichen aus CURRENT.

602108

11. April 2007

6.2-STABLE nach dem Einpflegen des 'SG' Peripheriegerätes aus CURRENT in CAM, welches einen Teil der SCSI SG passthrough Geräte API von Linux enthält.

602109

17. April 2007

6.2-STABLE nach dem Einpflegen von readline 5.2 Patchset 002 aus CURRENT.

602110

2. Mai 2007

6.2-STABLE nach dem Einpflegen von pmap_invalidate_cache(), pmap_change_attr(), pmap_mapbios(), pmap_mapdev_attr(), und pmap_unmapbios() für amd64 und i386 aus CURRENT.

602111

11. Juni 2007

6.2-STABLE nach dem Einpflegen von BOP_BDFLUSH aus CURRENT und dem daraus resultierendem Bruch mit dem Dateisystemmodul KBI.

602112

21. September 2007

6.2-STABLE nach dem Einpflegen von libutil(3) aus CURRENT.

602113

25. Oktober 2007

6.2-STABLE, nach der Trennung in "wide und single byte ctype". Neu kompilierte Binärdateien, die ctype.h referenzieren, erfordern möglicherweise ein neues Symbol, __mb_sb_limit, das auf älteren Systemen nicht verfügbar ist.

602114

30. Oktober 2007

6.2-STABLE, nachdem die ctype ABI-Aufwärtskompatibilität wiederhergestellt wurde.

602115

21. November 2007

FreeBSD 6.2-STABLE nach der Entfernung/Eliminierung der wide und single Byte ctype-Trennung

603000

25. November 2007

6.3-RELEASE

603100

25. November 2007

6.3-STABLE nach 6.3-RELEASE.

603101

7. Dezember 2007

6.3-STABLE, nachdem der Support für den Multibyte-Datentyp im Bit-Makro gefixt wurde.

603102

24. April 2008

6.3-STABLE nach Hinzufügen von l_sysid zu struct flock.

603103

27. Mai 2008

6.3-STABLE nach Einfließen der memrchr-Funktion.

603104

15. Juni 2008

6.3-STABLE nach Übernahme der Unterstützung von :u als Variablenwandler in make(1).

604000

4. Oktober 2008

6.4-RELEASE

604100

4. Oktober 2008

6.4-STABLE nach 6.4-RELEASE.

700000

11. Juli 2005

7.0-CURRENT.

700001

23. Juli 2005

7.0-CURRENT nachdem die Versionen aller gemeinsam genutzten Bibliotheken, welche seit RELENG_5 nicht geändert wurden, erhöht wurden.

700002

13. August 2005

7.0-CURRENT nachdem ein Berechtigungs-Argument zur dev_clone-Ereignisroutine hinzugefügt wurde.

700003

25. August 2005

7.0-CURRENT nachdem memmem(3) zur libc hinzugefügt wurde.

700004

30. Oktober 2005

7.0-CURRENT nachdem die Argumente der Kernelfunktion solisten(9) modifiziert wurden, um einen Backlog-Parameter (Anzahl der maximalen wartenden Verbindungen) zu akzeptieren.

700005

11. November 2005

7.0-CURRENT nachdem IFP2ENADDR() geändert wurde, einen Zeiger auf IF_LLADDR() zurückzugeben.

700006

11. November 2005

7.0-CURRENT nach dem Hinzufügen des if_addr-Elements zur Struktur ifnet und dem Entfernen von IFP2ENADDR().

700007

2. Dezember 2005

7.0-CURRENT nach dem Aufnehmen von Skripten aus den local_startup Verzeichnissen in rcorder(8) des Basissystems.

700008

5. Dezember 2005

7.0-CURRENT nach dem Entfernen der MNT_NODEV mount-Option.

700009

19. Dezember 2005

7.0-CURRENT nach ELF-64 Typen Änderungen und Symbol Versionierung.

700010

20. Dezember 2005

7.0-CURRENT nach Hinzufügen der hostb und vgapci Treiber, Hinzufügen von pci_find_extcap() und Änderung der AGP Treiber die Apertur nicht länger abzubilden.

700011

31. Dezember 2005

7.0-CURRENT nachdem auf allen Plattformen außer Alpha tv_sec in time_t umgewandelt wurde.

700012

8. Januar 2006

7.0-CURRENT nach Änderung von ldconfig_local_dirs.

700013

12. Januar 2006

7.0-CURRENT nach Änderung in /etc/rc.d/abi um /compat/linux/etc/ld.so.cache als Symlink in ein schreibgeschütztes Dateisystem zu unterstützen.

700014

26. Januar 2006

7.0-CURRENT nach pts Import.

700015

26. März 2006

7.0-CURRENT nach Einführung von Version 2 der hwpmc(4)'s ABI.

700016

22. April 2006

7.0-CURRENT nach dem Hinzufügen von fcloseall(3) zur libc.

700017

13. Mai 2006

7.0-CURRENT nach dem Entfernen von ip6fw.

700018

15. Juli 2006

7.0-CURRENT nach dem Import von snd_emu10kx.

700019

29. Juli 2006

7.0-CURRENT nach dem Import von OpenSSL 0.9.8b.

700020

3. September 2006

7.0-CURRENT nach dem Hinzufügen der bus_dma_get_tag-Funktion

700021

4. September 2006

7.0-CURRENT nach dem Import von libpcap 0.9.4 und tcpdump 3.9.4.

700022

9. September 2006

7.0-CURRENT nach der dlsym Änderung, ein angefordertes Symbol sowohl in der spezifizierten dso, als auch in den impliziten Abhängigkeiten nachzuschlagen.

700023

23. September 2006

7.0-CURRENT nach dem Hinzufügen neuer Sound-IOCTLs für die OSSv4-Mixer-API.

700024

28. September 2006

7.0-CURRENT nach dem Import von OpenSSL 0.9.8d.

700025

11. November 2006

7.0-CURRENT nach dem Hinzufügen der libelf.

700026

26. November 2006

7.0-CURRENT nach größeren Änderungen an den Sound sysctls.

700027

30. November 2006

7.0-CURRENT nach dem Hinzufügen der Wi-Spy-Eigenart.

700028

15. Dezember 2006

7.0-CURRENT nach dem Hinzufügen von sctp-Aufrufen zur libc.

700029

26. Januar 2007

7.0-CURRENT nach dem Ersetzen von GNU gzip(1) durch eine von NetBSD portierte Version, die unter BSD-Lizenz steht.

700030

7. Februar 2007

7.0-CURRENT nach dem Entfernen der IPIP Tunnelkapselung (VIFF_TUNNEL) aus dem IPv4 Multicast-Forwarding-Quelltext.

700031

23. Februar 2007

7.0-CURRENT nach den Modifizierungen an bus_setup_intr() (newbus).

700032

2. März 2007

7.0-CURRENT nach der Aufnahme der Firmware für ipw(4) und iwi(4).

700033

9. März 2007

7.0-CURRENT nach Unterstützung für Multibyte-Zeichen.

700034

19. März 2007

7.0-CURRENT nach Änderungen, wie insmntque(), getnewvnode() und vfs_hash_insert() arbeiten.

700035

26. März 2007

7.0-CURRENT nach Hinzufügen eines Benachrichtigungsmechanismus für CPU Frequenzänderungen.

700036

6. April 2007

7.0-CURRENT nach dem Import des ZFS Dateisystemes.

700037

8. April 2007

7.0-CURRENT nach dem Einpflegen des 'SG' Peripheriegerätes in CAM, welches einen Teil der SCSI SG passthrough Geräte API von Linux enthält.

700038

30. April 2007

7.0-CURRENT nachdem getenv(3), putenv(3), setenv(3) und unsetenv(3) geändert wurden, um POSIX konform zu sein.

700039

1. Mai 2007

7.0-CURRENT nachdem die Änderungen von 700038 rückgängig gemacht wurden.

700040

10. Mai 2007

7.0-CURRENT nach dem Hinzufügen von flopen(3) zur libutil.

700041

13. Mai 2007

7.0-CURRENT nachdem Symbol Versionierung aktiviert und die standardmäßige Thread-Bibliothek zu libthr geändert wurde.

700042

19. Mai 2007

7.0-CURRENT nach dem Import von GCC 4.2.0.

700043

21. Mai 2007

7.0-CURRENT nachdem die Versionen aller Shared-Libraries, welche seit RELENG_6 nicht geändert wurden, erhöht worden sind.

700044

7. Juni 2007

7.0-CURRENT nachdem das Argument für vn_open()/VOP_OPEN() vom Dateideskriptorindex zur Struktur file * geädert wurde.

700045

10. Juni 2007

7.0-CURRENT nachdem pam_nologin(8) geädert wurde, eine Kontoverwaltungs-Funktion statt einer Authentifizierungsfunktion für das PAM-Framework zur Verfügung zu stellen.

700046

11. Juni 2007

7.0-CURRENT nach aktualisierter 802.11 wireless Unterstützung.

700047

11. Juni 2007

7.0-CURRENT, nachdem TCP-LRO-Schnittstellen-Ressourcen hinzugefügt wurden.

700048

12. Juni 2007

7.0-CURRENT, nachdem die RFC 3678 API-Unterstützung zum IPv4-Stack hinzugefügt wurde. Veraltetes RFC 1724-Verhalten des IP_MULTICAST_IF ioctl wurde entfernt; 0.0.0.0/8 darf nicht länger als Schnittstellen-Index benutzt werden. Stattdessen sollte die Struktur ipmreqn verwendet werden.

700049

3. Juli 2007

7.0-CURRENT, nachdem pf von OpenBSD 4.1 importiert wurde

(nicht geändert)

7.0-CURRENT, nachdem die IPv6-Unterstützung um FAST_IPSEC erweitert, KAME IPSEC entfernt und FAST_IPSEC in IPSEC umbenannt wurde.

700050

4. Juli 2007

7.0-CURRENT, nachdem Aufrufe von setenv/putenv/usw. von der traditionellen BSD-Art und Weise nach POSIX konvertiert wurden.

700051

4. Juli 2007

7.0-CURRENT, nachdem neue Systemaufrufe (mmap/lseek/usw.) implementiert wurden.

700052

6. Juli 2007

7.0-CURRENT, nachdem die I4B-Header nach include/i4b verschoben wurden.

700053

30. September 2007

7.0-CURRENT, nachdem die Unterstützung für PCI Domänen hinzugefügt wurde.

700054

25. Oktober 2007

7.0-CURRENT, nach der Trennung in "wide und single byte ctype".

700055

28. Oktober 2007

7.0-RELEASE sowie 7.0-CURRENT, nachdem die ABI-Abwärtskompatibilität für die FreeBSD 4/5/6-Versionen der PCIOCGETCONF-, PCIOCREAD- sowie PCIOCWRITE IOCTLs hinzugefügt wurde. Damit verbunden war, dass die ABI der PCIOCGETCONF IOCTL erneut deaktiviert werden musste.

700100

22. Dezember 2007

7.0-STABLE nach 7.0-RELEASE.

700101

8. Februar 2008

7.0-STABLE nach Einführung von m_collapse().

700102

30. März 2008

7.0-STABLE nach Einfließen von kdb_enter_why().

700103

10. April 2008

7.0-STABLE nach Hinzufügen von l_sysid zu struct flock.

700104

11. April 2008

7.0-STABLE nach Übernahme von procstat(1).

700105

11. April 2008

7.0-STABLE nach Einführung von umtx-Features.

700106

15. April 2008

7.0-STABLE nach Hinzufügen der Unterstützung von write(2) zu psm(4).

700107

20. April 2008

7.0-STABLE nach Hinzufügen des Befehls F_DUP2FD zu fcntl(2).

700108

5. Mai 2008

7.0-STABLE nach einigen Änderungen an lockmgr(9), welche die Einbindung von sys/lock.h zur Verwendung von lockmgr(9) voraussetzen.

700109

27. Mai 2008

7.0-STABLE nach Einfließen der memrchr-Funktion.

700110

5. August 2008

7.0-STABLE nach Einführung eines Clients für den Kernel NFS lockd.

700111

20. August 2008

7.0-STABLE nach Hinzufügen einer Unterstützung von physisch fortlaufender Jumbo Frames.

700112

27. August 2008

7.0-STABLE nach Einfließen einer Kernelunterstützung für DTrace.

701000

25. November 2008

7.1-RELEASE

701100

25. November 2008

7.1-STABLE nach 7.1-RELEASE.

701101

10. Januar 2009

7.1-STABLE nach Übernahme von strndup.

701102

17. Januar 2009

7.1-STABLE nach Hinzufügen einer Unterstützung von cpuctl(4).

701103

7. Februar 2009

7.1-STABLE nach Einfließen der Unterstützung von Jails mit keinen oder mehreren IPv4-/IPv6-Adressen.

701104

14. Februar 2009

7.1-STABLE, nachdem der Besitzer des Suspend in struct mount gespeichert wird und die Funktion vfs_susp_clean in struct vfsops aufgenommen ist.

701105

12. März 2009

7.1-STABLE nach der inkompatiblen Änderung am sysctl kern.ipc.shmsegs, um die Anforderung größerer Segmente von gemeinsam genutzten SysV-Speicher auf 64bit-Architekturen zu erlauben.

701106

14. März 2009

7.1-STABLE nach der Übernahme einer Fehlerbehebung für Warteoperationen, die POSIX-Semaphore verwenden.

702000

15. April 2009

7.2-RELEASE

702100

15. April 2009

7.2-STABLE nach 7.2-RELEASE.

702101

15. Mai 2009

7.2-STABLE, nachdem ichsmb(4) dahingehend geändert wurde, dass es links-ausgerichtete Adressierung von Slaves verwendet, um anderen SMBus-Kontrollertreibern zu entsprechen.

702102

28. Mai 2009

7.2-STABLE nach dem Einfließen der Funktion fdopendir.

702103

06. Juni 2009

7.2-STABLE nach dem Einfließen von PmcTools.

702104

14. Juli 2009

7.2-STABLE nach dem Einfließen des Systemaufrufs closefrom.

702105

31. Juli 2009

7.2-STABLE nach dem Einfließen der Änderung an der SYSVIPC-ABI.

702106

14. September 2009

7.2-STABLE nach dem Einfließen der PAT-Verbesserungen für x86-Prozessoren sowie dem Hinzufügen von d_mmap_single() und des VM-Objekttyps für scatter/gather-Listen.

703000

9. Februar 2010

7.3-RELEASE

703100

9. Februar 2010

7.3-STABLE nach 7.3-RELEASE.

704000

22. Dezember 2010

7.4-RELEASE

704100

22. Dezember 2010

7.4-STABLE, nachdem 7.4-RELEASE erzeugt wurde.

800000

11. Oktober 2007

8.0-CURRENT. Nach der Trennung in "wide und single byte ctype".

800001

16. Oktober 2007

8.0-CURRENT, nachdem libpcap 0.9.8 und tcpdump 3.9.8 importiert wurden.

800002

21. Oktober 2007

8.0-CURRENT, nachdem kthread_create() und Konsorten in kproc_create() usw. umbenannt wurden.

800003

24. Oktober 2007

8.0-CURRENT, nachdem die ABI-Abwärtskompatibilität für die FreeBSD 4/5/6-Versionen der PCIOCGETCONF-, PCIOCREAD- sowie PCIOCWRITE IOCTLs hinzugefügt wurde. Damit verbunden war, dass die ABI der PCIOCGETCONF IOCTL erneut deaktiviert werden musste.

800004

12. November 2007

8.0-CURRENT, nachdem der agp(4) Treiber verschoben wurde von src/sys/pci nach src/sys/dev/agp.

800005

4. Dezember 2007

8.0-CURRENT nach Änderungen am Jumbo Frame Allocator.

800006

7. Dezember 2007

8.0-CURRENT, nach dem Hinzufügen der callgraph capture Funktionalität zu hwpmc(4).

800007

25. Dezember 2007

8.0-CURRENT nach dem Hinzufügen von "why" als Argument in kdb_enter().

800008

28. Dezember 2007

8.0-CURRENT nach Entfernen der Option LK_EXCLUPGRADE.

800009

9. Januar 2008

8.0-CURRENT nach Einführung von lockmgr_disown(9)

800010

10. Januar 2008

8.0-CURRENT nach Änderungen am vn_lock(9)-Prototyp.

800011

13. Januar 2008

8.0-CURRENT nach Änderungen an den Prototypen von VOP_LOCK(9) und VOP_UNLOCK(9).

800012

19. Januar 2008

8.0-CURRENT nach Einführung von lockmgr_recursed(9), BUF_RECURSED(9) und BUF_ISLOCKED(9) sowie Entfernung von BUF_REFCNT().

800013

23. Januar 2008

8.0-CURRENT nach Einführung der "ASCII"-Kodierung.

800014

24. Januar 2008

8.0-CURRENT nach Änderungen am lockmgr(9)-Prototyp und Entfernung von lockcount() sowie LOCKMGR_ASSERT().

800015

26. Januar 2008

8.0-CURRENT nach Erweiterung der Datentypen der fts(3)-Strukturen.

800016

1. Februar 2008

8.0-CURRENT nach Hinzufügen eines neuen Parameters zu MEXTADD(9).

800017

6. Februar 2008

8.0-CURRENT nach Einführung der Optionen LK_NODUP und LK_NOWITNESS in die lockmgr(9)-Umgebung.

800018

8. Februar 2008

8.0-CURRENT nach Hinzufügen von m_collapse.

800019

9. Februar 2008

8.0-CURRENT nach Hinzufügen einer Arbeits-, Wurzel- und Jailverzeichnisunterstützung zur sysctl-Variable kern.proc.filedesc.

800020

13. Februar 2008

8.0-CURRENT nach Einführung der Funktionen lockmgr_assert(9) und BUF_ASSERT.

800021

15. Februar 2008

8.0-CURRENT nach Einführung von lockmgr_args(9) und Entfernung der Option LK_INTERNAL.

800022

(zurückgezogen)

8.0-CURRENT nach Setzen von BSD ar(1) als Systemstandard.

800023

25. Februar 2008

8.0-CURRENT nach Prototypenänderungen an lockstatus(9) und VOP_ISLOCKED(9);, eigens zur Abschaffung des Parameters struct thread.

800024

1. März 2008

8.0-CURRENT nach Beseitigung der Funktionen lockwaiters und BUF_LOCKWAITERS, Änderung des Rückgabewerts der Funktion brelvp von void nach int sowie Einführung neuer Optionen für lockinit(9).

800025

8. März 2008

8.0-CURRENT nach Hinzufügen des Kommandos F_DUP2FD zu fcntl(2).

800026

12. März 2008

8.0-CURRENT nach Änderung des Parameters für die Priorität an cv_broadcastpri, sodass 0 für keine Priorität steht.

800027

24. März 2008

8.0-CURRENT nach Änderung der Monitoring ABI von BPF, als Zero-Copy Puffer hinzugefügt wurden.

800028

26. März 2008

8.0-CURRENT nach Hinzufügen von l_sysid zu struct flock.

800029

28. März 2008

8.0-CURRENT nach Wiedereingliederung der Funktion BUF_LOCKWAITERS und Hinzufügen von lockmgr_waiters(9).

800030

1. April 2008

8.0-CURRENT nach Einführung der Funktionen rw_try_rlock(9) und rw_try_wlock(9).

800031

6. April 2008

8.0-CURRENT nach Einführung der Funktionen lockmgr_rw und lockmgr_args_rw.

800032

8. April 2008

8.0-CURRENT nach Implementierung des Systemaufrufs openat und seiner Verwandten, Einführung der Option O_EXEC in open(2) und Bereitstellung der entsprechenden Systemaufrufe innerhalb der Linux®-Kompatibilitätsumgebung.

800033

8. April 2008

8.0-CURRENT nach Hinzufügen der Unterstützung von write(2) in der nativen Operationsebene von psm(4). Es können nun beliebig Kommandos nach /dev/psm%d geschrieben und der Status dann von dort gelesen werden.

800034

10. April 2008

8.0-CURRENT nach Einführung der Funktion memrchr.

800035

16. April 2008

8.0-CURRENT nach Einführung der Funktion fdopendir.

800036

20. April 2008

8.0-CURRENT nach Umstellung des Standards 802.11 auf Unterstützung von Multi-BSS (auch vaps).

800037

9. Mai 2008

8.0-CURRENT nach Hinzufügen einer Unterstützung für Multi Routing-Tabellen (siehe setfib(1), setfib(2)).

800038

26. Mai 2008

8.0-CURRENT nach Entfernen von netatm und ISDN4BSD sowie dem Hinzufügen der Compact C Type (CTF)-Tools.

800039

14. Juni 2008

8.0-CURRENT nach Entfernen von sgtty.

800040

26. Juni 2008

8.0-CURRENT nach Einführung eines Clients für den Kernel NFS lockd.

800041

22. Juli 2008

8.0-CURRENT nach Hinzufügen von arc4random_buf(3) und arc4random_uniform(3).

800042

8. August 2008

8.0-CURRENT nach Hinzufügen von cpuctl(4).

800043

13. August 2008

8.0-CURRENT nach Änderung von bpf(4) zur Verwendung einer einzelnen Gerätedatei anstatt von Klonierung.

800044

17. August 2008

8.0-CURRENT nach Übernahme des ersten Teils aus dem vimage-Projekt durch Erweitern globaler Variablen um den Präfix V_. Zukünftig werden die virtualisierten Variablen dann mit Hilfe von Makros in ihre globalen Namen aufgelöst.

800045

20. August 2008

8.0-CURRENT nach Eingliederung des MPSAFE TTY-Layers, einschließlich Änderungen an diversen Treibern und Werkzeugen, die mit ihm kommunizieren.

800046

8. September 2008

8.0-CURRENT nach Abschottung der GDT pro CPU auf der AMD64-Architektur.

800047

10. September 2008

8.0-CURRENT nach Entfernen von VSVTX, VSGID und VSUID.

800048

16. September 2008

8.0-CURRENT nach Anpassung des Codes für Kernel NFS mount, sodass einzelne Mountoptionen im Parameter struct iovec an nmount() akzeptiert werden und nicht nur ein großes struct nfs_args.

800049

17. September 2008

8.0-CURRENT nach Entfernen von suser(9) und suser_cred(9).

800050

20. Oktober 2008

8.0-CURRENT nach API-Änderungen im Umgang mit dem Buffer Cache.

800051

23. Oktober 2008

8.0-CURRENT nach Entfernen der Makros MALLOC(9) und FREE(9).

800052

28. Oktober 2008

8.0-CURRENT nach Einführung von accmode_t und Umbennung des Parameters a_mode an VOP_ACCESS nach a_accmode.

800053

2. November 2008

8.0-CURRENT nach Änderung des Prototyps von vfs_busy(9) und Einführung der Optionen MBF_NOWAIT sowie MBF_MNTLSTLOCK.

800054

22. November 2008

8.0-CURRENT nach Hinzufügen von Funktionen im Bereich buf_ring, Memory Barriers und ifnet, um mehrere Sendeschlangen auf Hardwareebene für Karten zu ermöglichen, die dies unterstützen, sowie einer Ring Buffer-Implementierung ohne Lock, um Treibern zu ermöglichen, Paketschlangen effizienter zu verwalten.

800055

27. November 2008

8.0-CURRENT nach Hinzufügen einer Unterstützung für Intel® Core, Core2 und Atom zu hwpmc(4).

800056

29. November 2008

8.0-CURRENT nach Einführung von Jails mit mehreren oder gar keinen IPv4-/IPv6-Adressen.

800057

1. Dezember 2008

8.0-CURRENT nach Wechsel zum ath_hal Quellcode.

800058

12. Dezember 2008

8.0-CURRENT nach Einführung der Funktion VOP_VPTOCNP.

800059

15. Dezember 2008

8.0-CURRENT gliedert das neue ARPv2 ein.

800060

19. Dezember 2008

8.0-CURRENT nach Hinzufügen von makefs.

800061

15. Januar 2009

8.0-CURRENT nach Umsetzung von TCP Appropriate Byte Counting.

800062

28. Januar 2009

8.0-CURRENT nach Entfernen von minor(), minor2unit(), unit2minor() usw.

800063

18. Februar 2009

8.0-CURRENT nach Änderung der GENERIC-Konfiguration zur Verwendung des USB2-Stack und Hinzufügen von fdevname(3).

800064

23. Februar 2009

8.0-CURRENT, nachdem der USB2-Stack nach dev/usb verschoben wurde, um es zu ersetzen.

800065

26. Februar 2009

8.0-CURRENT nach Umbenennen aller Funktionen in libmp(3).

800066

27. Februar 2009

8.0-CURRENT nach Anpassung des devfs-Verhaltens im Zusammenhang mit USB.

800067

28. Februar 2009

8.0-CURRENT nach Hinzufügen von getdelim(), getline(), stpncpy(), strnlen(), wcsnlen(), wcscasecmp() und wcsncasecmp().

800068

2. März 2009

8.0-CURRENT nach Umbenennen der Geräteklasse ushub in uhub.

800069

9. März 2009

8.0-CURRENT nach Umbenennen von libusb20.so.1 in libusb.so.1.

800070

9. März 2009

8.0-CURRENT nach der Einführung von IGMPv3 und Source-Specific-Multicast (SSM) in den IPv4-Stack.

800071

14. März 2009

8.0-CURRENT nach der Anpassung von gcc zur Verwendung der C99-Inline-Semantik in den Modi c99 und gnu99.

800072

15. März 2009

8.0-CURRENT, nachdem die Option IFF_NEEDSGIANT entfernt wurde; Netzwerktreiber, die nicht MPSAFE sind, werden nicht mehr unterstützt.

800073

18. März 2009

8.0-CURRENT, nachdem die dynamische Ersetzung von Zeichenkettenkürzeln für rpath und benötigte Pfade implementiert wurde.

800074

24. März 2009

8.0-CURRENT nach dem Einfließen von tcpdump 4.0.0 und libpcap 1.0.0.

800075

6. April 2009

8.0-CURRENT, nachdem die Deklarationen von struct vnet_net, struct vnet_inet und struct vnet_ipfw geändert wurden.

800076

9. April 2009

8.0-CURRENT nach dem Hinzufügen von Laufzeitprofilen in dummynet.

800077

14. April 2009

8.0-CURRENT nach dem Entfernen von VOP_LEASE() und vop_vector.vop_lease.

800078

15. April 2009

8.0-CURRENT, nachdem die Felder aus struct rt_weight zu struct rt_metrics und struct rt_metrics_lite hinzugefügt wurden, wobei die Deklaration von struct rt_metrics_lite geändert wurde. RTM_VERSION wurde hochgezählt (zurückgezogen).

800079

15. April 2009

8.0-CURRENT, nachdem Pointer auf struct llentry zu struct route und struct route_in6 hinzugefügt wurden.

800080

15. April 2009

8.0-CURRENT nach Änderung der Deklaration von struct inpcb.

800081

19. April 2009

8.0-CURRENT nach Änderung der Deklaration von struct malloc_type.

800082

21. April 2009

8.0-CURRENT nach Änderung der Deklaration von struct ifnet und Hinzufügen von if_ref() und if_rele() zur Verwaltung von Referenzen auf ifnet.

800083

22. April 2009

8.0-CURRENT nach der Implementierung einer systemnahen Bluetooth-HCI-API.

800084

29. April 2009

8.0-CURRENT nach Änderungen an IPv6-SSM und MLDv2.

800085

30. April 2009

8.0-CURRENT, nachdem der Bau von VIMAGE-Kernel mit einem aktiven Image unterstützt wird.

800086

8. Mai 2009

8.0-CURRENT nach Hinzufügen der Unterstützung für Eingabezeilen mit beliebiger Länge durch patch(1).

800087

11. Mai 2009

8.0-CURRENT nach einigen Änderungen im Zusammenhang mit dem VFS-KPI. Der Thread-Parameter wurde von den FSD-Teilen des VFS entfernt. VFS_*-Funktionen benötigen den Kontext nicht mehr, da er sich immer auf curthread bezieht. In wenigen Sonderfällen ist das bisherige Verhalten nicht geändert worden.

800088

20. Mai 2009

8.0-CURRENT nach Änderungen am net80211-Monitormodus.

800089

23. Mai 2009

8.0-CURRENT nach dem Hinzufügen der Unterstützung von UDP-Kontrollblocks.

800090

23. Mai 2009

8.0-CURRENT nach der Virtualisierung der Schnittstellenklonierung.

800091

27. Mai 2009

8.0-CURRENT nach dem Hinzufügen von hierarchischen Jails und dem Entfernen des globalen securelevel.

800092

29. Mai 2009

8.0-CURRENT nach der Änderung des sx_init_flags()-KPI. SX_ADAPTIVESPIN wurde zurückgezogen und eine neue Option SX_NOADAPTIVE wurde eingeführt, um die umgekehrte Logik zu behandeln.

800093

29. Mai 2009

8.0-CURRENT nach dem Hinzufügen von mnt_xflag zu struct mount.

800094

30. Mai 2009

8.0-CURRENT nach dem Hinzufügen von VOP_ACCESSX(9).

800095

30. Mai 2009

8.0-CURRENT nach der Änderung des Polling-KPI. Die Polling-Handler liefern nun die Zahl der verarbeiteten Pakete zurück. Die neue Option IFCAP_POLLING_NOCOUNT wurde weiter eingeführt, um anzugeben, dass der Rückgabewert nicht von Bedeutung ist und das Zählen der Pakete ausgelassen werden soll.

800096

1. Juni 2009

8.0-CURRENT nach der Aktualisierung der netisr-Implementierung und nachdem die Weise, wie FIBs gespeichert werden und wie auf sie zugegriffen wird, geändert wurde.

800097

8. Juni 2009

8.0-CURRENT nach Einführung der Destruktor-Infrastruktur für vnet einschließlich Hooks.

800097

11. Juni 2009

8.0-CURRENT nach Einführung eines Erkennungssystems für ausgehende Pakete, die direkt wieder in netgraph gelangen und deswegen eingereiht werden. Dabei wurde auch die Definition von struct thread geändert.

800098

14. Juni 2009

8.0-CURRENT nach dem Einfließen von OpenSSL 0.9.8k.

800099

22. Juni 2009

8.0-CURRENT nach der Aktualisierung von NGROUPS und dem Verschieben der Routing-Virtualisierung in ein eigenes VImage-Modul.

800100

24. Juni 2009

8.0-CURRENT nach Änderung der SYSVIPC-ABI.

800101

29. Juni 2009

8.0-CURRENT nach dem Entfernen der zeichenorientierten Geräte aus /dev/net, von denen für jede Schnittstelle eines existiert.

800102

12. Juli 2009

8.0-CURRENT, nachdem struct sackhint, struct tcpcb und struct tcpstat mit Padding-Bytes aufgefüllt wurden.

800103

13. Juli 2009

8.0-CURRENT, nachdem struct tcpopt durch struct toeopt in der Schnittstelle zwischen dem TOE-Treiber und dem TCP-SYN-Cache ersetzt wurde.

800104

19. Juli 2009

8.0-CURRENT nach dem Hinzufügen einer vnet-spezifischen Speicherzuweisung, die auf dem Linker-Set-Verfahren basiert.

800105

19. Juli 2009

8.0-CURRENT nach der Inkrementierung der Versionsnummer aller Shared-Libraries, die Symbol-Versioning nicht aktiviert haben.

800106

24. Juli 2009

8.0-CURRENT nach Einführung des VM-Objekttyps OBJT_SG.

800107

2. August 2009

8.0-CURRENT nach Befreiung des Newbus-Subsystems von Giant durch Hinzufügen von sxlock und 8.0-RELEASE.

800108

21. November 2009

8.0-CURRENT nach Implementierung des kevent-Filters EVFILT_USER.

800500

7. Januar 2010

8.0-STABLE nach Erhöhung von __FreeBSD_version, damit pkg_add -r packages-8-stable verwendet.

800501

24. Januar 2010

8.0-STABLE, nachdem die Prototypen von scandir(3) und alphasort(3) geändert wurden, um der SUSv4 zu entsprechen.

800502

31. Januar 2010

8.0-STABLE nach Hinzufügen von sigpause(3).

800503

25. Februar 2010

8.0-STABLE nach dem Hinzufügen der ioctls SIOCGIFDESCR und SIOCSIFDESCR für Netzwerk-Schnittstellen. Diese ioctls können, nach dem Vorbild von OpenBSD, dazu verwendet werden, Schnittstellenbeschreibungen zu bearbeiten und auszulesen.

800504

1. März 2010

8.0-STABLE, nachdem x86emu, ein Software-Emulator von OpenBSD für x86-Prozessoren im Real-Mode, von CURRENT übernommen wurde.

800505

18. Mai 2010

8.0-STABLE nach dem Einfließen von liblzma, xz, xzdec und lzmainfo.

801000

14. Juni 2010

8.1-RELEASE

801500

14. Juni 2010

8.1-STABLE nach 8.1-RELEASE.

801501

November 3, 2010

8.1-STABLE nach der KBI-Änderung in struct sysentve und der Implementierung von PL_FLAG_SCE/SCX/EXEC/SI und pl_siginfo für ptrace(PT_LWPINFO) .

802000

22. Dezember 2010

8.2-RELEASE

802500

22. Dezember 2010

8.2-STABLE, nachdem 8.2-RELEASE erzeugt wurde.

802501

28. Februar 2011

8.2-STABLE, nachdem DTrace aktualisiert wurde (so wird nun auch Userland-Tracing unterstützt).

802502

6. März 2011

8.2-STABLE, nachdem log2 und log2f in libm aufgenommen wurden.

802503

1. Mai 2011

8.2-STABLE, nachdem gcc auf die letzte unter der GPLv2 stehenden Version (aus dem FSF gcc-4_2-Zweig) aktualisiert wurde.

802504

28. Mai 2011

8.2-STABLE, nachdem KPI sowie die Infrastruktur zur Unterstützung von "modular congestion control" implementiert wurden.

802505

28. Mai 2011

8.2-STABLE, nachdem die KPIs Hhook und Khelp implementiert wurden.

802506

M28. Mai 2011

8.2-STABLE, nachdem OSD in die Struktur tcpcb eingebaut wurde.

802507

6. Juni 2011

8.2-STABLE nach dem Import von ZFS v28.

802508

8. Juni 2011

8.2-STABLE, nach dem Entfernen der Methode sv_schedtail struct sysvec.

802509

14. Juli 2011

8.2-STABLE, nachdem die binutils um die SSSE3-Unterstützung erweitert wurden.

802510

19. Juli 2011

8.2-STABLE, nach dem Hinzufügen des Flags RFTSIGZMB zu rfork(2).

900000

22. August 2009

9.0-CURRENT.

900001

8. September 2009

9.0-CURRENT nach dem Import von x86emu, einem Software-Emulator von OpenBSD für x86-Prozessoren im Real-Mode.

900002

23. September 2009

9.0-CURRENT nach Implementierung des kevent-Filters EVFILT_USER.

900003

2. Dezember 2009

9.0-CURRENT nach Hinzufügen von sigpause(3) und der PIE-Unterstützung zu csu.

900004

6. Dezember 2009

9.0-CURRENT nach Hinzufügen von libulog und dessen libutempter-Kompatibilitätsschnittstelle.

900005

12. Dezember 2009

9.0-CURRENT nach Hinzufügen von sleepq_sleepcnt(), das dazu verwendet werden kann, die Anzahl der in einer bestimmten Warteschlange eingereihten Threads abzufragen.

900006

4. Januar 2010

9.0-CURRENT, nachdem die Prototypen von scandir(3) und alphasort(3) geändert wurden, um der SUSv4 zu entsprechen.

900007

13. Januar 2010

9.0-CURRENT nach dem Entfernen von utmp(5) und dem Hinzufügen von utmpx (siehe getutxent(3)) zur besseren Erfassung von Benutzeranmeldungen und Systemereignissen.

900008

20. Januar 2010

9.0-CURRENT nach der Einführung von BSDL bc/dc zur Ersetzung von GNU bc/dc.

900009

26. Januar 2010

9.0-CURRENT nach dem Hinzufügen der ioctls SIOCGIFDESCR und SIOCSIFDESCR für Netzwerk-Schnittstellen. Diese ioctls können, nach dem Vorbild von OpenBSD, dazu verwendet werden, Schnittstellenbeschreibungen zu bearbeiten und auszulesen.

900010

22. März 2010

9.0-CURRENT nach dem Import von zlib 1.2.4.

900011

24. April 2010

9.0-CURRENT nach Hinzufügen von Soft Updates Journaling.

900012

10. Mai 2010

9.0-CURRENT nach Hinzufügen von liblzma, xz, xzdec und lzmainfo.

900013

24. Mai 2010

9.0-CURRENT nach Einbringen von USB-Fehlerbehebungen in linux(4).

900014

10. Juni 2010

9.0-CURRENT nach Hinzufügen von Clang.

900015

22. Juli 2010

9.0-CURRENT nach dem Import von BSD grep.

900016

28. Juli 2010

9.0-CURRENT, nachdem mti_zone zu struct malloc_type_internal hinzugefügt wurde.

900017

23. August 2010

9.0-CURRENT nach dem Zurückkehren zu GNU grep als Standard und Hinzufügen der Option WITH_BSD_GREP.

900018

24. August 2010

9.0-CURRENT, nachdem das von pthread_kill(3) generierte Signal in si_code als SI_LWP bezeichnet wird. Zuvor war si_code SI_USER.

900019

28. August 2010

9.0-CURRENT nach Hinzufügen des Schalters MAP_PREFAULT_READ zu mmap(2).

900020

9. September 2010

9.0-CURRENT, nachdem "drain"-Funktionalität in sbufs integriert wurde (wodurch sich auch das Layout von struct sbuf geändert hat).

900021

13. September 2010

9.0-CURRENT, nachdem "Userland tracing" in DTrace eingeführt wurde.

900022

2. Oktober 2010

9.0-CURRENT nach Hinzufügen der BSDL man-Utilities (und gleichzeitigem Entfernen der GNU/GPL man-Utilities).

900023

11. Oktober 2010

9.0-CURRENT nach der Aktualisierung von xz auf den git-Snapshot 20101010.

900024

11. November 2010

9.0-CURRENT, nachdem libgcc.a durch libcompiler_rt.a.

900025

12. November 2010

9.0-CURRENT nach der Einführung von "modularised congestion control".

900026

30. November 2010

9.0-CURRENT nach der Einführung von "Serial Management Protocol (SMP) passthrough" sowie den XPT_SMP_IO und XPT_GDEV_ADVINFO CAM CCBs.

900027

5. Dezember 2010

9.0-CURRENT, nachdem log2 zu libm hinzugefügt wurde.

900028

21. Dezember 2010

9.0-CURRENT, nach dem HInzufügen von Hhook (Helper Hook), Khelp (Kernel Helpers) und Object Specific Data (OSD) KPIs.

900029

28. Dezember 2010

9.0-CURRENT, nach der TCP-Stack modifiziert wurde, um es den Khelp-Modulen zu erlauben, mit ihm über Helper Hook Points zu kommunizieren und Verbindungsdaten im TCP-Kontrollblock zu speichern.

900030

12. Januar 2011

9.0-CURRENT, nachdem libdialog auf die Version 20100428 aktualisiert wurde.

900031

7. Februar 2011

9.0-CURRENT, nach dem Hinzufügen von pthread_getthreadid_np(3).

900032

8. Februar 2011

9.0-CURRENT, nachdem Prototyp und Symbol für uio_yield entfernt wurden.

900033

18. Februar 2011

9.0-CURRENT, nachdem die binutils auf Version 2.17.50 aktualisiert wurden.

900034

8. März 2011

9.0-CURRENT, nachdem die Struktur sysvec (sv_schedtail) modifiziert wurde.

900035

29. März 20111

9.0-CURRENT, nach dem Update des im Basissystem enthaltenen gcc sowie von libstdc++ auf die letzten unter GPLv2 lizenzierten Versionen.

900036

18. April 2011

9.0-CURRENT, nachdem libobjc und die Unterstützung für Objective-C aus dem Basissystem entfernt wurden.

900037

13. Mai 2011

9.0-CURRENT, nach dem Import der libprocstat(3)-Bibliothek sowie von fuser(1) in das Basissystem.

900038

22. Mai 2011

9.0-CURRENT, nachdem ein Lock-Flag zu VFS_FHTOVP(9) hinzugefügt wurde.

900039

28. Juni 2011

9.0-CURRENT, nachdem pf von OpenBSD 4.5 importiert wurde.

900040

19. Juli 2011

Standardmäßige Erhöhung von MAXCPU für FreeBSD auf 64 für amd64 und ia64 und auf 128 für XLP (mips).

900041

13. August 2011

9.0-CURRENT, nachdem Capsicum-Funktionalitäten implementiert wurden. Zusätzlich wurde fget(9) um ein Rechte-Argument erweitert.

900042

28. August 2011

Versionssprünge für Shared-Libraries deren ABI sich geändert hat, in Vorbereitung für 9.0.

900043

2. September 2011

Automatische Erkennung von USB-Massenspeicher Geräten, die das no synchronize cache SCSI Kommando nicht unterstützen.

900044

10. September 2011

Re-factor auto-quirk.

900045

13. Oktober 2011

Allen nicht-kompatiblen Systemaufruf-Einstiegspunkten wurde ein sys_ vorangestellt.

Beachten Sie, dass 2.2-STABLE sich nach dem 2.2.5-RELEASE manchmal als "2.2.5-STABLE" identifiziert. Das Muster war früher das Jahr gefolgt von dem Monat, aber wir haben uns entschieden, ab 2.2. einen geradlinigeren Ansatz mit major/minor-Nummern zu benutzen. Dies liegt daran, dass gleichzeitiges Entwickeln an mehreren Zweigen es unmöglich macht, die Versionen nur mit Hilfe des Datums des Releases zu unterteilen. Wenn Sie jetzt einen Port erstellen brauchen Sie sich nicht um alte -CURRENTs zu kümmern; diese sind hier nur als Referenz augeführt.

12.6. Etwas hinter die bsd.port.mk-Anweisung schreiben

Schreiben Sie bitte nichts hinter die .include <bsd.port.mk>-Zeile. Normalerweise kann dies vermieden werden, indem Sie die Datei bsd.port.pre.mk irgendwo in der Mitte Ihres Makefiles und bsd.port.post.mk am Ende einfügen.

Sie dürfen entweder nur das bsd.port.pre.mk/bsd.port.post.mk-Paar oder bsd.port.mk alleine hinzufügen; vermischen Sie diese Verwendungen nicht!

bsd.port.pre.mk definiert nur einige Variablen, welche in Tests im Makefile benutzt werden können, bsd.port.post.mk definiert den Rest.

Hier sind einige wichtige Variablen, welche in bsd.port.pre.mk definiert sind (dies ist keine vollständige Liste, lesen Sie bitte bsd.port.mk für eine vollständige Auflistung).

VariableBeschreibung

ARCH

Die Architektur, wie von uname -m zurückgegeben (z.B. i386)

OPSYS

Der Typ des Betriebsystems, wie von uname -s zurückgegeben (z.B. FreeBSD)

OSREL

Die Release Version des Betriebssystems (z.B., 2.1.5 oder 2.2.7)

OSVERSION

Die numerische Version des Betriebssystems; gleichbedeutend mit __FreeBSD_version.

PORTOBJFORMAT

Das Objektformat des Systems (elf oder aout; beachten Sie, dass für "moderne" Versionen von FreeBSD aout veraltet ist).

LOCALBASE

Die Basis des "local" Verzeichnisbaumes (z.B. /usr/local/)

PREFIX

Wo der Port sich selbst installiert (siehe Mehr Informationen über PREFIX).

Falls Sie die Variablen USE_IMAKE, USE_X_PREFIX, oder MASTERDIR definieren müssen, sollten Sie dies vor dem Einfügen von bsd.port.pre.mk machen.

Hier sind ein paar Beispiele von Dingen, die Sie hinter die Anweisung bsd.port.pre.mk schreiben können:

# lang/perl5 muss nicht kompliliert werden, falls perl5 schon auf dem System ist
.if ${OSVERSION} > 300003
BROKEN= perl ist im System
.endif

# nur eine Versionsnummer für die ELF Version der shlib
.if ${PORTOBJFORMAT} == "elf"
TCL_LIB_FILE=  ${TCL_LIB}.${SHLIB_MAJOR}
.else
TCL_LIB_FILE=  ${TCL_LIB}.${SHLIB_MAJOR}.${SHLIB_MINOR}
.endif

# die Software erstellt schon eine Verknüpfung fü ELF, aber nicht fü a.out
post-install:
.if ${PORTOBJFORMAT} == "aout"
       ${LN} -sf liblinpack.so.1.0 ${PREFIX}/lib/liblinpack.so
.endif

Sie haben sich daran erinnert Tabulator statt Leerzeichen nach BROKEN= und TCL_LIB_FILE= zu benutzen, oder? :-).

12.7. Benutzen Sie die exec-Anweisung in Wrapper-Skripten

Falls der Port ein Shellskript installiert, dessen Zweck es ist ein anderes Programm zu starten, und falls das Starten des Programmes die letzte Aktion des Skripts ist, sollten Sie sicherstellen, dass Sie die Funktion exec dafür benutzen; zum Beispiel:

#!/bin/sh
exec %%LOCALBASE%%/bin/java -jar %%DATADIR%%/foo.jar "$@"

Die Funktion exec ersetzt den Shell-Prozess mit dem angegebenen Programm. Falls exec ausgelassen wird, verbleibt der Shell-Prozess im Speicher während das Programm ausgefährt wird und verbraucht unnötig Systemressourcen.

12.8. Aufgaben vernünftig lösen

Das Makefile sollte die nötigen Schritte einfach und vernünftig durchführen. Wenn Sie ein einige Zeilen einsparen oder die Lesbarkeit verbessern können, dann machen Sie dies bitte. Beispiele sind: Ein make-Konstrukt .if anstatt eines Shellkonstrukt if zu verwenden, anstatt do-extract neu zu definieren, dies mit EXTRACT* machen, oder GNU_CONFIGURE anstelle von CONFIGURE_ARGS += --prefix=${PREFIX} zu verwenden.

Falls Sie sich in einer Situation wiederfinden, in der Sie viel Code neu schreiben müssen, um etwas zu testen, sollten Sie zuerst bsd.port.mk erneut konsultieren und nachprüfen ob es nicht bereits eine Lösung für Ihr Problem enthält. Es ist zwar schwer zu lesen, beinhaltet jedoch eine Menge kurzer Lösungen für viele scheinbar schwierige Probleme.

12.9. Berücksichtigen Sie sowohl CC als auch CXX

Der Port sollte sowohl die CC- wie auch die CXX-Variable berücksichtigen. Damit ist gemeint, dass der Port diese Variablen nicht ohne Rücksicht auf eventuell schon gesetzte Werte einfach überschreiben sollte; stattdessen sollten neue Werte an schon existierende angehängt werden. Dadurch können Build-Optionen, die alle Ports betreffen, global definiert werden.

Falls der Port diese Variablen nicht berücksichtigt, sollte NO_PACKAGE=ignores either cc or cxx ins Makefile eingefügt werden.

Im Folgenden wird ein Beispiel eines Makefiles gezeigt, welches die beiden Variablen CC und CXX berücksichtigt. Beachten Sie das ?=:

CC?= gcc
CXX?= g++

Nachfolgend ein Beispiel, welches weder CC noch CXX berücksichtigt:

CC= gcc
CXX= g++

Die Variablen CC und CXX können auf FreeBSD-Systemen in /etc/make.conf definiert werden. Im ersten Beispiel wird ein Wert nur dann gesetzt, falls dieser vorher noch nicht gesetzt war, um so systemweite Definitionen zu berücksichtigen. Im zweiten Beispiel werden die Variablen ohne Rücksicht überschrieben.

12.10. Berücksichtigen Sie CFLAGS

Der Port sollte die Variable CFLAGS berücksichtigen. Damit ist gemeint, dass der Port den Wert dieser Variablen nicht absolut setzen und damit existierende Werte überschreiben sollte; stattdessen sollte er weitere Werte der Variablen durch Anhängen hinzufügen. Dadurch können Build-Optionen, die alle Ports betreffen, global definiert werden.

Falls der Port diese Variablen nicht berücksichtigt, sollte NO_PACKAGE=ignores cflags ins Makefile eingefügt werden.

Im Folgenden wird ein Beispiel eines Makefiles gezeigt, welches die Variable CFLAGS berücksichtigt. Beachten Sie das +=:

CFLAGS+= -Wall -Werror

Nachfolgend finden Sie ein Beispiel, welches die CFLAGS-Variable nicht berücksichtigt:

CFLAGS= -Wall -Werror

Die Variable CFLAGS wird auf FreeBSD-Systemen in /etc/make.conf definiert. Im ersten Beispiel werden weitere Flags an die Variable CFLAGS angehängt und somit der bestehende Wert nicht gelöscht. Im zweiten Beispiel wird die Variable ohne Rücksicht überschrieben.

Sie sollten Optimierungsflags aus Makefiles Dritter entfernen. Die CFLAGS des Systems beinhalten systemweite Optimierungsflags. Ein Beispiel eines unveränderten Makefiles:

CFLAGS= -O3 -funroll-loops -DHAVE_SOUND

Werden nun systemweite Optimierungsflags verwendet so würde das Makefile in etwa folgendermaßen aussehen:

CFLAGS+= -DHAVE_SOUND

12.11. Threading-Bibliotheken

Die Threading-Bibliothek muss mit Hilfe eines speziellen Linker-Flags -pthread in die Binärdateien unter FreeBSD gebunden werden. Falls ein Port auf ein direktes Verlinken gegen -lpthread oder -lc_r besteht, passen Sie den Port bitte so an, dass er die durch das Port-Framework bereitgestellte Variable PTHREAD_LIBS verwendet. Diese Variable hat üblicherweise den Wert -pthread, kann aber auf einigen Architekturen und FreeBSD-Versionen abweichende Werte haben und daher sollte nie -pthread direkt in Patches geschrieben werden, sondern immer PTHREAD_LIBS.

Falls durch das Setzen von PTHREAD_LIBS der Bau des Ports mit der Fehlermeldung unrecognized option '-pthread' abbricht, kann die Verwendung des gcc als Linker durch setzen von CONFIGURE_ENV auf LD=$Cheng Cui <cc@FreeBSD.org> helfen. Die Option -pthread wird nicht direkt von ld unterstützt.

12.12. Rückmeldungen

Brauchbare Änderungen/Patches sollten an den ursprünglichen Autor/Maintainer der Software geschickt werden, damit diese in der nächsten Version der Software mit aufgenommen werden können. Dadurch wird Ihre Aufgabe für die nächste Version der Software deutlich einfacher.

12.13. README.html

Nehmen Sie bitte keine README.html in den Port auf. Diese Datei ist kein Bestandteil der CVS-Sammlung sondern wird durch make readme erzeugt.

12.14. Einen Port durch BROKEN, FORBIDDEN oder IGNORE als nicht installierbar markieren

In manchen Fällen sollten Benutzer davon abgehalten werden einen Port zu installieren. Um einem Benutzer mitzuteilen, dass ein Port nicht installiert werden sollte, gibt es mehrere Variablen für make, die im Makefile des Ports genutzt werden können. Der Wert der folgenden make-Variablen wird dem Benutzer als Grund für die Ablehnung der Installation des Ports zurückgegeben. Bitte benutzen Sie die richtige make-Variable, denn jede enthält eine völlig andere Bedeutung für den Benutzer und das automatische System, das von dem Makefile abhängt, wie der Ports-Build-Custer, FreshPorts und portsmon.

12.14.1. Variablen

  • BROKEN ist reserviert für Ports, welche momentan nicht korrekt kompiliert, installiert oder deinstalliert werden. Es sollte für Ports benutzt werden, von denen man annimmt, dass dies ein temporäres Problem ist.

    Falls angegeben, wird der Build-Cluster dennoch versuchen den Port zu bauen, um zu sehen, ob das zugrunde liegende Problem behoben wurde (das ist jedoch im Allgemeinen nicht der Fall).

    Benutzen Sie BROKEN zum Beispiel, wenn ein Port:

    • nicht kompiliert

    • beim Konfiguration- oder Installation-Prozess scheitert

    • Dateien außerhalb von ${LOCALBASE} installiert

    • beim Deinstallieren nicht alle seine Dateien sauber entfernt (jedoch kann es akzeptable und wünschenswert sein, Dateien, die vom Nutzer verändert wurden, nicht zu entfernen)

  • FORBIDDEN wird für Ports verwendet, die Sicherheitslücken enthalten oder die ernste Sicherheitsbedenken für das FreeBSD-System aufwerfen, wenn sie installiert sind (z.B. ein als unsicher bekanntes Programm, oder ein Programm, das einen Dienst zur Verfügung stellt, der leicht kompromittiert werden kann). Ports sollten als FORBIDDEN gekennzeichnet werden, sobald ein Programm eine Schwachstelle hat und kein Update veröffentlicht wurde. Idealerweise sollten Ports so bald wie möglich aktualisiert werden wenn eine Sicherheitslücke entdeckt wurde, um die Zahl verwundbarer FreeBSD-Hosts zu verringern (wir schätzen es für unsere Sicherheit bekannt zu sein), obwohl es manchmal einen beachtlichen Zeitabstand zwischen der Bekanntmachung einer Schwachstelle und dem entsprechenden Update gibt. Bitte kennzeichnen Sie einen Port nicht aus irgendeinem Grund außer Sicherheit als FORBIDDEN.

  • IGNORE ist für Ports reserviert, die aus anderen Gründen nicht gebaut werden sollten. Es sollte für Ports verwendet werden, in denen ein strukturelles Problem vermutet wird. Der Build-Cluster wird unter keinen Umständen Ports, die mit IGNORE markiert sind, erstellen. Verwenden Sie IGNORE zum Beispiel, wenn ein Port:

    • kompiliert, aber nicht richtig läuft

    • nicht auf der installierten Version von FreeBSD läuft

    • FreeBSD Kernelquelltext zum Bauen benötigt, aber der Benutzer diese nicht installiert hat

    • ein Distfile benötigt, welches aufgrund von Lizenzbeschränkungen nicht automatisch abgerufen werden kann

    • nicht korrekt mit einem momentan installiertem Port arbeitet (der Port hängt zum Beispiel von www/apache21 ab, aber www/apache13 ist installiert)

      Wenn ein Port mit einem momentan installiertem Port kollidiert (zum Beispiel, wenn beide eine Datei an die selbe Stelle installieren, diese aber eine andere Funktion hat), benutzen Sie stattdessen CONFLICTS. CONFLICTS setzt IGNORE dann selbstständig.

  • Um einen Port nur auf bestimmte Systemarchitekturen mit IGNORE zu markieren, gibt es zwei Variablen, die automatisch IGNORE für Sie setzen: ONLY_FOR_ARCHS und NOT_FOR_ARCHS. Beispiele:

    ONLY_FOR_ARCHS= i386 amd64
    NOT_FOR_ARCHS= alpha ia64 sparc64

    Eine eigene IGNORE-Ausgabe kann mit ONLY_FOR_ARCHS_REASON und NOT_FOR_ARCHS_REASON festgelegt werden. Für eine bestimmte Architektur sind Angaben durch ONLY_FOR_ARCHS_REASONARCH_ und NOT_FOR_ARCHS_REASONARCH_ möglich.

  • Wenn ein Port i386-Binärdateien herunterlädt und installiert, sollte IA32_BINARY_PORT gesetzt werden. Wenn die Variable gesetzt ist, wird überprüft, ob das Verzeichnis /usr/lib32 für IA32-Versionen der Bibliotheken vorhanden ist, und ob der Kernel mit IA32-Kompatibilität gebaut wurde. Wenn eine dieser zwei Voraussetzungen nicht erfüllt ist, wird IGNORE automatisch gesetzt.

12.14.2. Anmerkungen zur Implementierung

Zeichenketten sollten nicht in Anführungszeichen gesetzt werden. Auch die Wortwahl der Zeichenketten sollte die Art und Weise beachten, wie die Informationen dem Nutzer angezeigt werden. Beispiele:

BROKEN= this port is unsupported on FreeBSD 5.x
IGNORE= is unsupported on FreeBSD 5.x

resultieren in den folgenden Ausgaben von make describe:

===>  foobar-0.1 is marked as broken: this port is unsupported on FreeBSD 5.x.
===>  foobar-0.1 is unsupported on FreeBSD 5.x.

12.15. Kennzeichnen eines Ports zur Entfernung durch DEPRECATED oder EXPIRATION_DATE

Denken Sie bitte daran, dass BROKEN und FORBIDDEN nur als temporärer Ausweg verwendet werden sollten, wenn ein Port nicht funktioniert. Dauerhaft defekte Ports sollten komplett aus der Ports-Sammlung entfernt werden.

Wenn es sinnvoll ist, können Benutzer vor der anstehenden Entfernung eines Ports mit DEPRECATED und EXPIRATION_DATE gewarnt werden. Ersteres ist einfach eine Zeichenkette, die angibt, warum der Port entfernt werden soll. Letzteres ist eine Zeichenkette im ISO 8601-Format (JJJJ-MM-TT). Beides wird dem Benutzer gezeigt.

Es ist möglich DEPRECATED ohne EXPIRATION_DATE zu setzen (zum Beispiel, um eine neuere Version des Ports zu empfehlen), aber das Gegenteil ist sinnlos.

Es gibt keine Vorschrift wie lange die Vorwarnzeit sein muss. Gegenwärtig ist es üblich einen Monat für sicherheitsrelevante Probleme und zwei Monate für Build-Probleme anzusetzen. Dies gibt allen interessierten Committern ein wenig Zeit die Probleme zu beheben.

12.16. Vermeiden Sie den Gebrauch des .error-Konstruktes

Der korrekte Weg eines Makefile anzuzeigen, dass der Port aufgrund eines externen Grundes nicht installiert werden kann (zum Beispiel, weil der Benutzer eine ungültige Kombination von Build-Optionen angegeben hat), ist IGNORE auf einen nicht leeren Wert zu setzen. Dieser wird dann formatiert und dem Benutzer von make install ausgegeben.

Es ist ein verbreiteter Fehler .error für diesem Zweck zu verwenden. Das Problem dabei ist, dass viele automatisierte Werkzeuge, die mit dem Ports-Baum arbeiten, in dieser Situation fehlschlagen. Am Häufigsten tritt das Problem beim Versuch /usr/ports/INDEX zu bauen auf (siehe make describe ausführen). Jedoch schlagen auch trivialere Befehle wie make maintainer in diesem Fall fehl. Dies ist nicht akzeptabel!

Beispiel 1. Wie vermeidet man die Verwendung von .error

Nehmen Sie an, dass die Zeile

USE_POINTYHAT=yes

in make.conf enthalten ist. Der erste der folgenden zwei Makefile-Schnipsel lässt make index fehlschlagen, während der zweite dies nicht tut.

.if USE_POINTYHAT
.error "POINTYHAT is not supported"
.endif
.if USE_POINTYHAT
IGNORE=POINTYHAT is not supported
.endif

12.17. Verwendung von sysctl

Vom Gebrauch von sysctl wird, außer in Targets, abgeraten. Das liegt daran, dass die Auswertung aller makevars, wie sie während make index verwendet werden, dann den Befehl ausführen muss, welches den Prozess weiter verlangsamt.

Die Verwendung von sysctl(8) sollte immer durch die Variable SYSCTL erfolgen, da diese den vollständigen Pfad enthält und überschrieben werden kann, so dies als notwendig erachtet wird.

12.18. Erneutes Ausliefern von Distfiles

Manchmal ändern die Autoren der Software den Inhalt veröffentlichter Distfiles, ohne den Dateinamen zu ändern. Sie müssen überprüfen, ob die Änderungen offizell sind und vom Autor durchgeführt wurden. Es ist in der Vergangenheit vorgekommen, dass Distfiles still und heimlich auf dem Download-Server geändert wurden, um Schaden zu verursachen oder die Sicherheit der Nutzer zu kompromittieren.

Verschieben Sie das alte Distfile und laden Sie das neue herunter. Entpacken Sie es und vergleichen Sie den Inhalt mittels diff(1). Wenn Sie nichts Verdächtiges sehen können Sie distinfo aktualisieren. Stellen Sie sicher, dass die Änderungen in Ihrem PR oder Commit-Protokoll zusammengefasst sind, um zu Gewährleisten, dass nichts Negatives passiert ist.

Sie können auch mit den Autoren der Software in Verbindung treten und sich die Änderungen bestätigen lassen.

12.19. Verschiedenes

Die Dateien pkg-descr und pkg-plist sollten beide doppelt kontrolliert werden. Wenn Sie einen Port nachprüfen und glauben, dass man es besser machen kann, dann verbessern Sie ihn bitte.

Bitte kopieren Sie nicht noch mehr Exemplare der GNU General Public License in unser System.

Bitte überprüfen Sie alle gesetzlichen Punkte gründlich! Lassen Sie uns bitte keine illegale Software verbreiten!


Last modified on: 11. Dezember 2021 by Sergio Carlavilla Delgado