Wie kopiere ich ein Paket von Debian auf meine PPA?


10

Ich möchte das neueste Gourmet- Paket von Debian Sid zur PPA unseres Teams hinzufügen, damit Ubuntu-Benutzer, die eine aktuelle Version von Gourmet ausführen möchten, diese PPA zu ihren Softwarequellen hinzufügen können. (In Bezug auf Abhängigkeiten sollte dies kein großes Problem sein, da so gut wie alle unsere aktuellen Abhängigkeiten bereits in allen derzeit unterstützten Ubuntu-Versionen verfügbar sind.)

Ich habe die *.dscDatei sowie die Debian- und Orig-Tarballs heruntergeladen und sogar herausgefunden, dass ich diese für die source.changesDatei des Pakets verwenden kann. Ich habe auch den öffentlichen Schlüssel des Debian-Betreuers heruntergeladen, damit ich dputdas Paket validieren kann. Ich habe dann versucht, das Paket mit dput ppa:~gourmet/ppa gourmet_0.17.3-1_source.changes(ich habe es auch ohne Tilda versucht) auf unsere PPA hochzuladen. Dies schien erfolgreich zu sein, aber ich habe keine Bestätigungs-E-Mail erhalten, und auf unserer PPA werden jetzt keine Pakete angezeigt , was mich glauben lässt dass das Paket abgelehnt wurde, weil der Schlüssel des Debian-Betreuers offensichtlich nicht zu den Schlüsseln unserer Teammitglieder gehört.

Was ist der einfachste Weg, ein Paket von Debian (sid) auf ein Launchpad-PPA zu "kopieren"? Muss ich das gesamte Paket wirklich lokal neu erstellen, bevor ich es hochladen kann?


Übrigens, da die Ubuntu-Entwicklungsversion ihre Pakete automatisch von Debian synchronisiert (also vor DebianImportFreeze), akzeptiere ich gerne eine Antwort, die mir sagt, wie man ein Paket von Utopic kopiert.
Bernhard Reiter

Antworten:


12

Sie müssen die neu zu erstellen Quelle Paket lokal vor dem Hochladen , um das Änderungsprotokoll anzupassen und die Änderungen Datei zu regenerieren. Da das Backportieren eines Pakets eine ziemlich häufige Aufgabe ist, wurde dies per Skript ausgeführt. Schauen Sie sich das backportpackage Manpage-SymbolBefehlspaket ubuntu-dev-toolsInstallieren Sie Ubuntu-Dev-Tools an.

Um ein Paket von Debian zurück zu portieren, geben Sie einfach die Zieldistributionsserie, PPA und die dsc-Datei für das Paket an:

backportpackage -d trusty -u ppa:gourmet/ppa http://ftp.de.debian.org/debian/pool/main/g/gourmet/gourmet_0.17.3-1.dsc

Es ist noch einfacher, ein Paket von einer Ubuntu-Version in eine andere zurück zu portieren, da Sie die dsc-Datei nicht finden müssen. Nehmen wir an, wir möchten von utopisch zu vertrauenswürdig zurückportieren:

backportpackage -s utopic -d trusty -u ppa:gourmet/ppa gourmet

Genial! Das einzige, was für mich ein bisschen wie ein Fehler aussieht, ist, dass das Paket in meiner persönlichen PPA (~ ockham-razor / ppa) gelandet ist, obwohl ich es ~gourmet/ppaals Argument an den -uParameter übergeben habe. (Aber ich konnte es glücklicherweise über Launchpad von meinem PPA auf das Gourmet-Team kopieren.)
Bernhard Reiter

1

Es gibt einige Möglichkeiten, dies zu tun.

Als ich dies für Rhythmbox tat, folgte ich dem folgenden Rezept:

ein. Nehmen Sie die Quelldatei und die Debian-Dateien

Geben Sie hier die Bildbeschreibung ein

b. Dekomprimieren Sie die Quelle (.orig.tar.xz)

c. Benennen Sie den Quellordner so umrhythmbox-3.0.3

c. dekomprimieren Sie die Debian-Datei (.debian.tar.xz)

d. Verschieben Sie den Debian-Ordner unter das Quellverzeichnis

e. dch -ium die Changelog-Datei zu ändern

f. Ändern Sie den "instabilen" Paketnamen in den Namen des Ubuntu-Ziels - hier habe ich genau für 12.04 verwendet. Ändern Sie die für Ihre App geeignete Version. Hier war Rhythmbox 3.0.3 - also habe ich gerade hinzugefügt-1~ppafossfreedom

rhythmbox (3.0.3-1~ppafossfreedom) precise; urgency=low

  * rebuild

 -- fossfreedom <fossfreedom@somewheremail.com>  Thur, 07 Jun 2012 13:19:18 +0100

G. Erstellen Sie ein neues Quellpaket:dh_build --createorig

h. Erstellen Sie nur die Quelle mit Ihrem Schlüssel: debuild -S -k0xABCDEFGWo ABCDEFGist Ihr Schlüssel?

ich. Laden Sie Ihr Paket zum Erstellen hoch:

cd ..
dput ppa:fossfreedom/rhythmbox rhythmbox_3.0.3-1_sources.changes    

Nun, das ist im Grunde genommen das Paket neu aufzubauen. Naja. Ich hatte auf einen einfacheren Weg gehofft, aber ich denke, es gibt keinen.
Bernhard Reiter

Schauen Sie sich den dgetBefehl aus dem devscriptsPaket an. Das wird das ziemlich vereinfachen.
Andrewsomething

@andrewsomething - verwandle das in eine Antwort mit einem Beispiel :) - Ich würde mich interessieren, ob das auch meine Verpackung vereinfachen kann.
Fossfreiheit

Nun, ich habe eine ganz andere Antwort, aber Sie sollten trotzdem etwas über dget=) lernen. Die dsc-Datei enthält alle Informationen zu den anderen Teilen des Quellpakets. Also dgetschnapp dir alles und extrahiere es richtig, wenn du ihm einen Link zur dsc-Datei gibst. dget -ux http://http.debian.net/debian/pool/main/r/rhythmbox/rhythmbox_3.0.3-1.dsc
Andrewsomething

ordentliche Antwort - gut gemacht +1
Fossfreiheit
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.