openSUSE:Wartung von Paketen
Inhaltsverzeichnis
Das Paket finden, mit dem Sie arbeiten wollen
Der Build Service enthält viele unterschiedliche Paketversionen. Einige sind offizielle Veröffentlichungen und andere in der Entwicklung von Anwendern in ihrem Home-Projekt. Der einfachste Weg ist die Verwendung des Kommandos osc search. Der Schalter --maintained begrenzt die Ausgabe der Projekte, die spezielle Attribute eingerichtet haben, um gewartete openSUSE Produkte zu kennzeichnen. Wir verwenden das Paket nfs-utils als Beispiel.
$ osc search --maintained nfs-utils matches for 'nfs-utils' in packages: # Paket # Projekt openSUSE:11.3 nfs-utils openSUSE:11.4 nfs-utils openSUSE:12.1 nfs-utils
Einen Zweig erzeugen
Der Buildservice unterstützt einen leichten Weg, um an Paketen zu arbeiten, ohne unnötigerweise das Originalpaket zu kontaminieren. Er erlaubt dem Anwender, eine private Version des Paketes in seinem Home-Projekt zu überprüfen. Jede Änderung wird gespeichert als ein Satz von Änderungen des Originals. Das hat den Vorteil, einen Unterschied zwischen den beiden Projekten offensichtlich zu machen, wenn der Zweig an das Originalprojekt zurück gegeben wird.
Das Verfahren, um einen Zweig von einem einzelnen Paket eines einzelnen Projektes zu erzeugen ist wie folgt:
$ osc branch -M -c openSUSE:12.1 nfs-utils [...]
In diesem Fall wurde kürzlich bereits eine Aktualisierung für nfs-utils herausgegeben. Die Aktualisierungsquellen wurden in einem anderen Projekt gespeichert, openSUSE:12.1:Update. Sie brauchen sich über die Details keine Gedanken machen. osc macht die richtigen Dinge automatisch und Verwendet die Aktualisierungsquellen. Folgen Sie nur den bereitgestellten Anweisungen und überprüfen Sie die abgezweigte Kopie des Paketes.
Wenn Sie bereits einen Zweig für dieses Paket haben, sollten Sie es löschen und neu erstellen. Ein Zweig, der noch vorhanden ist und Sie wundern sich, warum es eine Untersuchung benötigt. Es könnte bedeuten, dass eine Einreichungs-Aufforderung nicht akzeptiert wurde und darum die Bereinigung nicht ausgelöst wurde. Die Löschung eines derartigen Zweiges könnte Ihre bisherige Arbeit zerstören.
Der Verzweigungspunkt existiert von dem Zeitpunkt an, als Sie ihn erzeugten. Wenn andere Änderungen in der Zwischenzeit beigetragen wurden, werden sie verloren gehen, wenn sie Ihren vorhandenen Zweig verwenden. Sie können den Zweig löschen, indem Sie das Paket mit dem Kommando osc rdelete project package löschen. Für unser Beispiel würde es osc rdelete home:jeff_mahoney:branches:openSUSE:12.1:Update:Test nfs-utils sein.
Verzweigung aller Codestreams zur gleichen Zeit
Manchmal müssen Sie ein Paket für alle gewarteten Codestreams aktualisieren, beispielsweise zur Behebung einer Sicherheitslücke. Mit der oben beschriebenen Methode müssen Sie das Paket zwei mal verzweigen und überprüfen, je einmal für 11.4 und 12.1.
Das Kommando osc mbranch wird das vorteilhaft ausführen. Es kann den Build Service abfragen, um eine Liste von Projekten zu finden, wo ein Paket zur Wartung markiert ist.
osc mbranch sammelt alle Kopien aller Projekte, die zur Wartung markiert sind und erzeugt einen Zweig dieser Pakete in ein Projekt:
$ osc mbranch nfs-utils Project home:jeff_mahoney:branches:OBS_Maintained:nfs-utils created.
$ osc co home:jeff_mahoney:branches:OBS_Maintained:nfs-utils A home:jeff_mahoney:branches:OBS_Maintained:nfs-utils A home:jeff_mahoney:branches:OBS_Maintained:nfs-utils/nfs-utils.openSUSE_11.3 [...] A home:jeff_mahoney:branches:OBS_Maintained:nfs-utils/nfs-utils.openSUSE_11.4 [...] A home:jeff_mahoney:branches:OBS_Maintained:nfs-utils/nfs-utils.openSUSE_12.1
Die Liste der gewarteten Kopien manuell herstellen
Wenn Sie immer noch im Zweifel sind, kontaktieren Sie bitte das Wartungsteam, um eine korrekte Liste zu erhalten.
Machen Sie Ihre Änderungen
Nun da Sie eine private Kopie eines Pakete haben, können alle Änderungen durchführen, die Sie brauchen. Der einfachste Weg, um die Aktualisierung der Dateiliste zu handhaben, ist, sicher zu stellen, dass Sie keine temporäre Dateien mehr im Quell-Paket-Verzeichnis haben und verwenden Sie das Kommando osc addremove.
Wenn Sie Ihre Änderungen fertig gestellt haben, tragen Sie einen Eintrag in die Dateien .changes ein und verwenden osc vc.
- Beschreiben Sie kurz das Problem, eine Zeile pro Problem.
- Fügen Sie einen Bezug zur Bug-Nummer hinzu, in der Form (bnc#12345).
- Für Sicherheitsbehebungen beziehen Sie, wenn möglich, die CVE Nummer ein.
Zum Schluss übergeben Sie Ihre Änderungen zu Ihrem Zweig mit dem Kommando osc commit.
Änderungen einreichen
Ihr Zweig ist nun ein separates Paket und wird unabhängig in Ihrem Home-Projekt gebaut. Es ist grundsätzlich eine gute Idee, sicher zu stellen, dass er innerhalb der engen Beschränkungen des Bausystems baut und ausreichend getestet ist, bevor er eingereicht wird. Der Einreichungsprozess ist einfach.
Aus Ihrem überprüften Projekt-Verzeichnis:
$ osc mr created request id 22864
Osc wird Sie umgehend benachrichtigen. Gewöhnlich verwenden Sie die gleiche Nachricht für die .changes-Datei.