Come copio un pacchetto da Debian al mio PPA?


10

Vorrei aggiungere l'ultimo pacchetto gourmet da Debian Sid al PPA del nostro team in modo che gli utenti Ubuntu che vorrebbero eseguire una versione aggiornata di Gourmet possano aggiungere quel PPA alle loro fonti software. (Dal punto di vista della dipendenza, ciò non dovrebbe costituire un grosso problema in quanto praticamente tutte le nostre dipendenze attuali sono già disponibili in tutte le versioni di Ubuntu attualmente supportate.)

Ho scaricato il *.dscfile e la debian e orig tarball, e anche capito che potevo usare questo per il pacchetto di source.changesfile. Ho anche scaricato la chiave pubblica del manutentore Debian in modo da dputpoter validare il pacchetto. Ho quindi provato a caricare il pacchetto sul nostro PPA usando dput ppa:~gourmet/ppa gourmet_0.17.3-1_source.changes(ho provato anche senza la tilda.) Sembrava avere successo, ma non ho ricevuto un'e-mail di conferma e nessun pacchetto è ora visualizzato sul nostro PPA , il che mi porta a credere che il pacchetto è stato rifiutato perché la chiave del manutentore Debian non è ovviamente tra le chiavi dei membri del nostro team.

Quindi qual è il modo più semplice per "copiare" un pacchetto da Debian (sid) a un Launchpad PPA? Devo davvero ricostruire l'intero pacchetto localmente prima di poterlo caricare?


A proposito, poiché la versione di sviluppo di Ubuntu sincronizza automaticamente i suoi pacchetti da Debian (prima di DebianImportFreeze, cioè), accetterò felicemente una risposta che mi dice come copiare un pacchetto da Utopic.
Bernhard Reiter

Risposte:


12

È necessario ricostruire il pacchetto di origine localmente prima del caricamento per adattare il registro delle modifiche e rigenerare il file delle modifiche. Sebbene il backport di un pacchetto sia un compito abbastanza comune, questo è stato scritto. Scopri il backportpackage Icona Manpagecomando di ubuntu-dev-toolsInstalla ubuntu-dev-tools pacchetto.

Per eseguire il backport di un pacchetto da Debian, è sufficiente fornire la serie di distribuzione di destinazione, PPA e il file dsc per il pacchetto:

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

È ancora più semplice eseguire il backport di un pacchetto da una versione di Ubuntu a un'altra poiché non è necessario trovare il file dsc. Diciamo che vogliamo eseguire il backport dall'utopico al fidato:

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

Eccezionale! L'unica cosa che mi assomiglia un po 'è che il pacchetto è finito nel mio PPA personale (~ ockham-razor / ppa) anche se ho passato ~gourmet/ppal'argomento al -uparametro. (Ma sono stato fortunatamente in grado di copiarlo dal mio PPA al team Gourmet tramite Launchpad.)
Bernhard Reiter

1

Ci sono alcuni modi per farlo.

Quando l'ho fatto per Rhythmbox ho seguito la seguente ricetta:

un. Prendi il file sorgente e i file debian

inserisci qui la descrizione dell'immagine

b. Decomprimi la fonte (.orig.tar.xz)

c. rinominare la cartella di origine in modo similerhythmbox-3.0.3

c. decomprimere il file debian (.debian.tar.xz)

d. sposta la cartella debian nella directory dei sorgenti

e. dch -iper modificare il file del log delle modifiche

f. cambia il nome del pacchetto "instabile" con il nome del target ubuntu - qui ho usato preciso per 12.04. Modifica la versione appropriata per la tua app. Qui rhythmbox era 3.0.3, quindi l'ho appena aggiunto-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. crea un nuovo pacchetto sorgente:dh_build --createorig

h. Costruisci solo la fonte con la tua chiave: debuild -S -k0xABCDEFGdov'è la ABCDEFGtua chiave

io. carica il tuo pacchetto per la costruzione:

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

Bene, questo sta fondamentalmente ricostruendo il pacchetto. Oh bene. Speravo in un modo più semplice, ma credo che non ce ne sia.
Bernhard Reiter il

Dai un'occhiata al dgetcomando dal devscriptspacchetto. Semplificherà un po '.
Andrewsomething

@andrewsomething - trasformalo in una risposta con un esempio :) - Sarei interessato a vedere se questo può semplificare anche il mio packaging.
Fossfreedom

Bene, ho una risposta completamente diversa, ma dovresti ancora conoscere dget=) Il file dsc contiene tutte le informazioni sulle altre parti del pacchetto sorgente. Quindi dgetafferrerà tutto ed estrarrà correttamente se gli dai un link al file dsc. dget -ux http://http.debian.net/debian/pool/main/r/rhythmbox/rhythmbox_3.0.3-1.dsc
Andrewsomething

risposta
chiara
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.