Hypothetische Fragen zum einspielen von Patches

Blade

Blowfish :-)
Hi BSD-folks,

ich beschäftige mich z. Z. mit Sicherheitsupdates in OpenBSD 5.5. Ich fahre Release und spiele Sourcecode-Patches ein.

Meine Fragen sind eher theoretischer Natur, Interesse bedingt:

1.) Könnte man erst mal alle Patches einspielen und erst dann die einzelnen Subsysteme kompilieren? Das könnte Kompilieraufwand reduzieren sofern einzelne Subsysteme mehrfach gepatcht werden (bspw. der Kernel). Oder kann das zu Problemen führen?

2.) Kann es Unterschiede im Sourcecode zwischen Stable und Release plus allen Patches geben? Könnte man theoretisch Stable auschecken und dann nur diejenigen Teile neu bauen, die auf der Errata-Seite aufgeführt sind?

Dank für eure Antworten :),
Blade
 
1.) Könnte man erst mal alle Patches einspielen und erst dann die einzelnen Subsysteme kompilieren? Das könnte Kompilieraufwand reduzieren sofern einzelne Subsysteme mehrfach gepatcht werden (bspw. der Kernel). Oder kann das zu Problemen führen?
Ich denke das sollte funktionieren, wenn sich die Patches alle korrekt nacheinander anwenden lassen. Ist allerdings eine Weile her, dass ich die Errata Patches selbst kompiliert habe, von daher verlasse dich nicht auf meine Aussage.

2.) Kann es Unterschiede im Sourcecode zwischen Stable und Release plus allen Patches geben? Könnte man theoretisch Stable auschecken und dann nur diejenigen Teile neu bauen, die auf der Errata-Seite aufgeführt sind?
Nun, Stable ist ja derzeit noch 5.4, das willst du sicher nicht. Ich gehe daher davon aus, dass du das kommende 5.5 Stable meinst (CVS: OPENBSD_5_5). Laut FAQ (http://www.openbsd.org/stable.html) können in Stable noch kleinere Fixes zurückfließen, die keinen Errata wert sind, ansonsten sollte auch hier genügen, nur die unter Errata aufgeführten Teile neu zu bauen.

Ich möchte dir aber stattdessen mal den Service von M:Tier ans Herz legen. Das sind OpenBSD-Entwickler, die binäre Patches (auch für Packages, das ist nochmal ein großer Vorteil) zur Verfügung stellen. Ich lasse diese seit 5.4 laufen und bin gerade hinsichtlich der vielen SSL-Fixes froh, nicht nochmal selbst Hand anlegen zu müssen. Hinzu kommt bei mir aber auch, dass ich mich in letzter Zeit nicht mehr wirklich um den Server kümmern kann/konnte und es mir deshalb eine nochmal umso größere Hilfe ist. Schau mal hier meinen Post, da sind auch die benötigten Links enthalten: http://www.bsdforen.de/threads/openbsd-5-5-erschienen.31017/#post-262206
 
Hallo pwp,

danke für deine Antwort :).

Also einer von uns steht gerade auf dem Schlauch was Versionen und Flavors angeht. Aktuelles Release ist 5.5. So wie ich die FAQ [1] verstehe, gibt es zu jedem Release ein Stable, also auch zum aktuellen. Das wir für die letzten zwei Releases gepflegt.

Deinen Post zu M:Tier kannte ich schon. Da es aber nicht Teil des offiziellen OS ist, wollte ich es zumindest vorerst nicht nutzen. Ich möchte mich erst mal mit den OS eigenen Updatemechanismen vertraut machen. Wobei ich mich bisher nicht mit den Updatemöglichkeiten von Packages und Ports beschäftigt habe. Dann kommt M:Tier vielleicht ins Spiel.

Gruß Blade

[1] http://www.openbsd.org/faq/faq5.html#Flavors
 
Und nun zu deinen Fragen ... ;)

1.) Könnte man erst mal alle Patches einspielen und erst dann die einzelnen Subsysteme kompilieren? Das könnte Kompilieraufwand reduzieren sofern einzelne Subsysteme mehrfach gepatcht werden (bspw. der Kernel). Oder kann das zu Problemen führen?

Die Patches kannst du alle auf einmal einbinden und erst dann kompilieren. Die Reihenfolge der Patches aber einhalten, ggf. könnten sie auf einander aufbauen, wenn mehrfach die gleiche Quelltextdatei gepatcht wird.


2.) Kann es Unterschiede im Sourcecode zwischen Stable und Release plus allen Patches geben? Könnte man theoretisch Stable auschecken und dann nur diejenigen Teile neu bauen, die auf der Errata-Seite aufgeführt sind?

Ja, Unterschiede kann es geben. [1]

Daraus ergibt sich auch die Antwort auf deine erste Frage. Niemand setzt voraus, dass du den Sourcetree von -stable zu bestimmten Zeitpunkten zwischen Patch A und Patch B übersetzt. Du machst einen Checkout und übersetzt das System dann. Das bedeutet, dass alle Errata-Patches auf einmal eingespielt sind.

Teilweise Übersetzung von -stable wird in fast allen Fällen funktionieren, da es selten vorkommt, dass mal Patches eingespielt werden, die nicht auf der Errata-Seite zu finden sind. Aber das weicht vom vorgegebenen Weg ab. ;)

[1] http://www.openbsd.org/stable.html
 
Hallo Paldium,

danke für die Erläuterung. Ja ich folge schon lieber dem wahren Weg :)
Aber gut zu wissen, dass es Patches gibt die nur in Stable und nicht als einzel Patch verfügbar sind. Und besser zu wissen, dass das eher selten der Fall ist ;)

Gruß Blade
 
Zurück
Oben