Wie aktualisiere ich Ubuntu-Pakete von der Quelle?

8

Ich möchte eine aktualisierte Version des Network-Manager-Openconnect-Pakets in Ubuntu erstellen. Anscheinend brauche ich die neueste Paketquelle:

bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head

Dann was? Das Paket scheint eine Möglichkeit zu haben, sich mit git vom neuesten Upstream-Code zu aktualisieren. Aber wie bekomme ich das dazu?

James Ward
quelle
Ich dachte, bzr meinte Basar - bazaar.canonical.com/de
Paul

Antworten:

6

Das Erstellen eines aktualisierten Pakets aus einer bzr-Filiale unterscheidet sich in der Regel erheblich, je nachdem, wer die Filialen verwaltet oder wie das Paket im Allgemeinen funktioniert. Hier sind jedoch einige Richtlinien für ein schnelles und schmutziges Update nahezu aller Pakete, die auf eine PPA übertragen werden sollen:

Holen Sie sich die Niederlassung:

bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head

Wechseln Sie dann dorthin und aktualisieren Sie das Änderungsprotokoll:

dch -i

dch -i öffnet einfach einen neuen Eintrag in debian / changelog und erhöht die Versionsrevision um eins. Wenn Sie einen Patch hinzufügen möchten, ist dies perfekt. Wenn Sie jedoch auf eine neuere Version der Upstream-Software aktualisieren möchten, müssen Sie die Versionsnummer vor dem Bindestrich (-) aktualisieren. Angenommen , eine Version in 1.2-0ubuntu1 ändert sich beim Starten von dch -i in 1.2-0ubuntu2 , was sich gut zum Patchen eignet . Wenn Sie jedoch eine neue Version benötigen, möchten Sie diese wahrscheinlich in 1.3-0ubuntu1 ändern .

Wenn Sie patchen müssen, ist es jetzt an der Zeit, Ihre Änderungen hinzuzufügen. In Zweigen, die nur ein Debian / -Verzeichnis haben , können Sie mit bzr bd-do (erfordert das Paket bzr-builddeb) zu einem Arbeitsbaum wechseln, in dem Sie Änderungen vornehmen, Quilt oder ein beliebiges Patch-System verwenden und dann "exit 0" to Lassen Sie Ihre Änderungen zurückkopieren.

Wenn Sie eine neue Upstream-Version wünschen, führen Sie nach dem Ändern des Änderungsprotokolls wahrscheinlich einen ähnlichen Befehl aus:

debian/rules get-orig-source

Dadurch wird normalerweise der richtige Tarball vom Upstream-Publisher heruntergeladen, um Ihnen den Einstieg zu erleichtern. Wenn weitere Änderungen erforderlich sind, gehen Sie wie oben beschrieben vor, um andere Dateien im Verzeichnis debian / zu "patchen" oder zu ändern. Andernfalls sind Sie fast fertig:

bzr bd -S

bzr bd kümmert sich um den Bau. Wenn Sie es ohne Argumente aufrufen, wird es auf Ihrem System aufgebaut, während Sie es mit -S aufrufen , um ein Quellpaket vorzubereiten, das eine ..._ source.changes- Datei enthält, die Sie auf Ihre PPA hochladen möchten (verwenden Sie dput ppa: <Ihr Name> / <Name Ihres ppa> <Ändert die Datei>, um dies zu tun).


Bei NetworkManager-Paketen ist dies etwas anders. Schauen wir uns openconnect genauer an:

bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head network-manager-openconnect

Stellen Sie sicher, dass Sie auch alle Build-Abhängigkeiten haben: sudo get-build-deps

Wenn der Zweig abgerufen wurde, liest er die Debian- / Steuerdatei und versucht, alles herunterzuladen, was Sie zum Erstellen von Network-Manager-Openconnect benötigen. Vielleicht brauchst du auch Git. Führen Sie anschließend get-orig-source aus , um nur den Tarball des neuesten Snapshots von git abzurufen:

debian/rules get-orig-source

Sie werden sehen, wie Text vorbeifliegt und ein Tarball mit einer langen Versionsnummer erscheint. Das ist der neueste Code, den Sie für nm-openconnect erhalten können.

Sie müssen dann das Änderungsprotokoll mit der Versionsnummer des Tarballs aktualisieren und dabei das Suffix -0ubuntu1 beibehalten .

Oder ändern Sie debian / changelog mit der gewünschten Versionsnummer und führen Sie dann Folgendes aus: debian / rules get-current-source

Da sich an den Plugins nicht viel ändert, sollten Sie in der Lage sein, das Paket von dort aus mit bzr bd wie oben zu erstellen . Wenn nicht, übernehmen Sie alle erforderlichen Änderungen wie oben.

Vergessen Sie nicht, bzr festzuschreiben, nachdem Sie Änderungen vorgenommen haben.

Ich habe zuerst vergessen hinzuzufügen, zögern Sie nicht, das Zusammenführungsvorschlags-System ( Vorschlag zum Zusammenführen, Link der Seite Ihrer Zweigstelle auf LP) zu verwenden, wenn die von Ihnen vorgenommenen Änderungen anderen zugute kommen könnten. Normalerweise können Sie nur vorschlagen, sich mit dem Zweig zusammenzuschließen, auf dem Ihr Zweig basiert (z. B. lp: ~ Netzwerkmanager / Netzwerkmanager / openconnect-ubuntu.head in diesem Fall).

Mathieu Trudel-Lapierre
quelle
Ich dachte, ich musste etwas vergessen: Haben Sie keine Angst, Ihre Änderungen für die Zusammenführung in den Hauptverpackungszweig aufzurufen, wenn es sich um einen Verpackungsfix handelt (dies schließt auch Patches ein), damit jeder von Änderungen profitieren kann! :)
Mathieu Trudel-Lapierre
2

Ok aktualisiert, wie man den Code von der Startrampe zieht

bzr branch lp: ~ Netzwerkmanager / Netzwerkmanager / openconnect-ubuntu.head

Was diese Dosis ist, ziehen Sie den Code aus dem LP (Launchpad Hosting Service). Wir müssen herausfinden, wo der Code sitzt.

man bzr
343 #type 343 als die Manpage erscheint.

bzr branch FROM_LOCATION [TO_LOCATION]        
       If  the TO_LOCATION is omitted, the last component of the FROM_LOCATION
       will be used.  In other words, "branch ../foo/bar" will attempt to cre‐
       ate  ./bar.   If the FROM_LOCATION has no / or path separator embedded,
       the TO_LOCATION is derived from the FROM_LOCATION by stripping a  lead‐
       ing   scheme   or  drive  identifier,  if  any.  For  example,  "branch
       lp:foo-bar" will attempt to create ./foo-bar.

Wechseln Sie in das Verzeichnis, in dem Sie arbeiten möchten, oder fügen Sie das Verzeichnis hinzu, in das Sie und der Code wechseln möchten.

cd / home / [Ihr Benutzername] / [Pfad zum Entwicklungsverzeichnis]
oder bzr branch lp: ~ Netzwerkmanager / Netzwerkmanager / openconnect-ubuntu.head / home / [Ihr Benutzername] / [Pfad zum Entwicklungsverzeichnis]
zB bzr branch lp: ~ netzwerkmanager / netzwerkmanager / openconnect-ubuntu.head / home / joe / projekte / netzwerkmanager / dev

Wenn Sie dies bereits getan haben, haben Sie wahrscheinlich ein Verzeichnis in Ihrem Home-Verzeichnis

ls ~
./openconnect-ubuntu.head

In diesem Verzeichnis sollte sich ein README-Feld befinden, um zu sehen, was sich dort befinden sollte. Schauen Sie sich den Projektcode an . Hier ist ein Link zu README.source

README sollte Anweisungen zum Erstellen dieses einzelnen Projekts enthalten.

Andere nützliche bzr-Tools zu installieren

sudo apt-get install bzr-builddeb bzr-builder bzr-explorer quilt

Mit dem bzr-explorere können Sie Ihre bzr-Repositorys, die Sie auf Ihrem Computer erstellt haben, in einer GUI durchsuchen.

Noch ein Hinweis. Möglicherweise müssen Sie die gesamte Network-Manager-Quelle abrufen, um die Openconnect für eine Komponente zu erstellen. Möglicherweise gibt es viele Abhängigkeiten und zwischen verschiedenen Komponenten.

Sie müssen einen Fix für das aktuelle opneconnect-Paket erstellen und dann einen Patch mit allen von Ihnen verwendeten Diff-Tools erstellen. Und senden Sie es an den Paketbetreuer.

Oder wenn Sie Ihr neues Fixpaket lokal verwenden möchten, möchten Sie eine .deb-Paketdatei erstellen.

Wenn Sie ein Paket erstellen möchten, lesen Sie die folgenden Links

Nelaaro
quelle
Vielen Dank. Aber ich bin mir immer noch nicht sicher, wie ich den neuesten Netzwerkmanager-Openconnect-Code von Git abrufen soll. Die Dateien, die ich mit bzr heruntergezogen habe, haben ein Skript in debian / rules, das anscheinend das Git-Pull ausführen kann, aber ich weiß nicht, wie ich das Skript richtig ausführen soll.
James Ward
@james launchpad bezieht die Upstream-Quelle aus der Git-Reposity des Nework-Manager-Projekts , das von der Gnome-Community gehostet wird. Sie müssen also kein Git verwenden, um das Repository abzurufen. Lesen Sie die bzr-Dokumentation und führen Sie einige der Tutorials durch, um eine Vorstellung davon zu bekommen, wie bzr funktioniert. Andere weise auschecken git vorbei bei stackoverflow
nelaaro
@ James einfacher könnte sein, einfach die .tar.gz-Datei am Ende dieser Seite herunterzuladen oder direkt über diesen Link
Nelaaro
Es scheint, dass bzr eine einfache Möglichkeit hat, zu verzweigen und dann auf die neueste Originalquelle zu aktualisieren.
James Ward