fbsd patchen

crash-x

Unregistered User
hallöle! :)
guten morgen!
ich wach, guck bei heise und stelle mit entsetzen fest: ein bug in fbsd!
also gleich patch geladen und ab zum patchen. nur funzts irgendwie nich :/
#patch < /home/crash-x/realpath.patch
Hmm... Looks like a new-style context diff to me...
The text leading up to this was:
--------------------------
|Index: lib/libc/stdlib/realpath.c
|===================================================================
|RCS file: /home/ncvs/src/lib/libc/stdlib/realpath.c,v
|retrieving revision 1.9
|diff -c -c -r1.9 realpath.c
|*** lib/libc/stdlib/realpath.c 27 Jan 2000 23:06:50 -0000 1.9
|--- lib/libc/stdlib/realpath.c 3 Aug 2003 17:21:20 -0000
--------------------------
File to patch:

so nun les ich und sehe
Betroffene Versionen:
bis einschließlich 4.8-RELEASE
5.0-RELEASE
4-STABLE bis 22. Mai 2003.

nur was hab ich nun, eigentlich is ja 4.8 wenn ich mich nich irre stable und ich hab mir die cd erst vor einigen tagen runtergeladen. aber wenn ich
#uname -a
FreeBSD crashnet.homeunix.org 4.8-RELEASE FreeBSD 4.8-RELEASE #3: Thu Jul 31 17:30:26 CEST 2003 crash-x@crashnet.homeunix.org:/usr/src/sys/compile/CRASHNET i386
mache steht da ja release.

könnt mir bitte einer sagen ob ich noch patchen muss und wenn ja was ich falsch mache.

mfg und danke
 
Warst du denn auch in /usr/src?

Original geschrieben von crash-x
so nun les ich und sehe
Betroffene Versionen:
bis einschließlich 4.8-RELEASE
5.0-RELEASE
4-STABLE bis 22. Mai 2003.

nur was hab ich nun, eigentlich is ja 4.8 wenn ich mich nich irre stable und ich hab mir die cd erst vor einigen tagen runtergeladen. aber wenn ich

AFAIK, gibt es nur RELEASE-ISOs, offiziell zumindest, natuerlich hindert dich niemand, ein make release zu machen.

könnt mir bitte einer sagen ob ich noch patchen muss und wenn ja was ich falsch mache.

Ja und vielleicht, wie gesagt, du musst patch aus /usr/src aufrufen, so wie es auch im Advisory steht, und danach ein make world machen.

Code:
# cd /usr/src                                                                   
# patch < /path/to/patch

Und natuerlich musst du in /usr/src auch alle Quellen installiert haben.
 
Original geschrieben von crash-x
so nun les ich und sehe
Betroffene Versionen:
bis einschließlich 4.8-RELEASE
5.0-RELEASE
4-STABLE bis 22. Mai 2003.

nur was hab ich nun, eigentlich is ja 4.8 wenn ich mich nich irre stable und ich hab mir die cd erst vor einigen tagen runtergeladen. aber wenn ich
#uname -a
FreeBSD crashnet.homeunix.org 4.8-RELEASE FreeBSD 4.8-RELEASE #3: Thu Jul 31 17:30:26 CEST 2003 crash-x@crashnet.homeunix.org:/usr/src/sys/compile/CRASHNET i386
mache steht da ja release.

Was Du hast, ist das RELEASE. Ein RELEASE kommt immer dann wenn die Entwickler meinen der Code aus der STABLE Branch ist nun weit genug (mehr neue features, stabil), das man daraus ein RELEASE machen kann, sprich ISOs und CDs pressen.
Die STABLE Branch ist 4, Oder auch, wenn Du via cvsup updatest, RELENG_4.
Dabei bekommst Du dann auch mal ein PRE-RELEASE, oder einen RELEASE CANDIDATE (RC).
Daneben gibt es noch CURRENT, aber das sollte Dich jetzt noch nicht interessieren.
 
ok ich habs nun gepatcht und gerade festgestellt man muss alles neukompilieren. wäre es da nicht sinnvoller gleich auf 5.1 upzudaten? das is ja current. was ist bei 5.1 alles anders? ists es schwer auf 5.1 upzudaten? gibts irgendwo ein howto oder so, mit der anleitung im handbook komm ich irgendwie nich klar %) was wird alles anders sein wenn ich 5.x hab
vor/nachteile?

mfg und danke
 
Original geschrieben von crash-x
ok ich habs nun gepatcht und gerade festgestellt man muss alles neukompilieren. wäre es da nicht sinnvoller gleich auf 5.1 upzudaten? das is ja current. was ist bei 5.1 alles anders? ists es schwer auf 5.1 upzudaten? gibts irgendwo ein howto oder so, mit der anleitung im handbook komm ich irgendwie nich klar %) was wird alles anders sein wenn ich 5.x hab
vor/nachteile?

Eine Anleitung gibt es in /usr/src/UPDATING wenn Du auf 5.x einen cvsup machst:


To upgrade in-place from 4.x-stable to current
----------------------------------------------
[...]
<make sure you have good level 0 dumps>
<maybe fix /etc/fstab> [7]
make buildworld [9]
make buildkernel KERNCONF=YOUR_KERNEL_HERE [8]
cp src/sys/${MACHINE}/conf/GENERIC.hints /boot/device.hints [2]
make installkernel KERNCONF=YOUR_KERNEL_HERE
cd src/sys/boot ; make install [6]
[...]

Das steht so ziemlich am Ende der Datei und umfasst mehr als den Ausschnitt den ich hier gepastet habe.
Es ist aber sehr mit Vorsicht zu geniessen, ein kleiner Fehler, und schwupps, das wars. Neuinstallation. Wenn man aber genauso vorgeht wie beschrieben (die Kiste auch wirklich in single user mode booten und nicht wie ich damals einen auf locker und fluffig machen, dann klappt das auch, denn macht man es nicht, so endet es wahrscheinlich mit einer Neuinstallation so wie es bei mir der Fall war).

Aber, keine Angst, ist ein Kinderspiel, steht ja alles da, man muss sich nur daran halten ;-).

Der Nachteil der sich auf 5.x noch ergibt ist, dass die Kiste danach wohl etwas langsamer sein wird, da noch viele debugfunktionen im Hintergrund mit laufen auf die man keinen Einfluss hat. Einige kann man aber auch im Kernel entfernen (was man auch tun sollte).

Änderungen gibt es viele, auch wenn die meisten unter der Haube stattgefunden haben, bzw. immer noch stattfinden.
So gibt es ein neues rc.d system, rc.ng, welches von NetBSD übernommen wurde (dort findet man dann ebenso Informationen wie in der manpage dazu). Du musst dort aber erstmal nicht Hand anlegen, also keine Sorge. /usr/local/etc/rc.d/ für third party software ist immer noch das was es war.
Dann gibt es eben auchg bgfsck, was einen fsck Lauf überflüssig macht (wenn Du softupdates verwendest). Der fsck Lauf findet dann im laufenden Betrieb im Hintergrund statt und das auf einem sog. snapshot des Dateisystems welche einen fsck braucht. Aber wie gesagt, ein wirklicher fsck ist das nicht mehr im klassischen Sinne.
Ansonsten gibt es einige Veränderungen die Du im Betrieb dann mit bekommst, die aber nicht so gross sind, das sie den normalen Betrieb den Du jetzt schon hast beeinflussen. Sie unterscheiden sich eben etwas von 4.x.

Probleme könnte man mit dem einen oder anderen Port bekommen der nicht recht mag, oder evtl. mit der Stabilität, wobei mir dies noch nicht aufgefallen ist, und ich habe CURRENT schon Monate am rennen.

Also frisch ans Werk.
 
hmm, da ich mein system erst seit paar tagen hab und noch nix wirklich eingestellt und konfiguriert hab werd ich wohl einfach neuinstallieren. danke für eure hilfe!
 
Nein, dann nicht.
Wobei das Einspielen des patches gleich eine Übung gewesen wäre wie Du mit cvsup und make world umgehst. Irgendwann musste das nämlich so oder so machen.
 
ich hatte das gleiche problem als ich versucht habe den cvs tree den ich ganz neu co'ed habe zu patchen (daher bin ich davon ausgegangen, dass da der patch schon drin ist). bei dem src tree der bei den isos dabei war ging der patch problemlos.
lieg ich falsch, oder kann das sein?
 
ok danke euch, hab jetz fbsd 5.1 installier und alles läuft gut. will jetz kerne neukompilieren. kann mir einer nen link geben wo steht mit welchen parametern ich die debug funktionen aus mach oder wie ich den kernel optimier.

mfg und danke
 
Die folgenden Optionen kannst Du auskommentieren (obwohl der DDB manchmal praktisch sein kann):
Code:
makeoptions    DEBUG=-g

options         DDB                     #Enable the kernel debugger
options         INVARIANTS              #Enable calls of extra sanity checking
options         INVARIANT_SUPPORT       #Extra sanity checks of internal structur
es, required by INVARIANTS
options         WITNESS                 #Enable checks to detect deadlocks and cy
cles
options         WITNESS_SKIPSPIN        #Don't run witness on spinlocks for speed

Zum Optimieren kannst Du nicht benötigte Prozessor-Archs rausschmeissen, z.B. für einen P4 kannst Du
Code:
cpu             I486_CPU
cpu             I586_CPU
auskommentieren (I686_CPU aber drinlassen!). Weiterhin kannst Du das page coloring auf die Grösse der First/Second-Level caches anpassen, z.B. (wieder P4):
Code:
options         PQ_CACHESIZE=512
aber andere P4's haben glaube ich kleinere caches.

Weiterhin kannst Du in /etc/make.conf mit CPUTYPE=... die Optimierung für Deine CPU anschalten. Das wird nicht nur für den Kernel, sondern auch für die Welt und die ports benutzt.

Schliesslich kannst Du noch in der Kernelconfig nicht benutzte Devices auskommentieren, und die Module, die compiliert werden auf die einschränken, die du wirklich brauchst:

Code:
makeoptions     MODULES_OVERRIDE="acpi sound/pcm sound/driver/ich"

Reicht das vorerst?
 
was ist den des genau für ein bug und ist der patch zwingend notwendig??? hab auch vorher noch nie ein unix system gepacht, aber will es heut abend mal versuchen.
lädt sich dass system eigentlich den patch wie ein package runter und speichert ihn ????
 
Zurück
Oben