Comment copier un paquet de Debian sur mon PPA?


10

Je voudrais ajouter le dernier paquet gourmet de Debian Sid au PPA de notre équipe afin que les utilisateurs d'Ubuntu qui souhaitent exécuter une version à jour de Gourmet puissent ajouter ce PPA à leurs sources logicielles. (Du point de vue de la dépendance, cela ne devrait pas être un gros problème car presque toutes nos dépendances actuelles sont déjà disponibles dans toutes les versions d'Ubuntu actuellement prises en charge.)

J'ai téléchargé le *.dscfichier et debian et orig tarballs, et même pensé que je pouvais utiliser ce pour l'ensemble source.changesdu dossier. J'ai également téléchargé la clé publique du responsable Debian afin de dputpouvoir valider le paquet. J'ai ensuite essayé de télécharger le package sur notre PPA en utilisant dput ppa:~gourmet/ppa gourmet_0.17.3-1_source.changes(j'ai également essayé sans le tilda.) Cela semblait réussir, mais je n'ai pas reçu d'e-mail de confirmation, et aucun package n'est désormais affiché sur notre PPA , ce qui m'amène à croire que le paquet a été rejeté car la clé du responsable Debian ne fait évidemment pas partie des clés des membres de notre équipe.

Alors, quelle est la façon la plus simple de «copier» un paquet de Debian (Sid) vers un Launchpad PPA? Dois-je vraiment reconstruire le package entier localement avant de pouvoir le télécharger?


BTW, comme la version de développement d'Ubuntu synchronise automatiquement ses paquets depuis Debian (avant DebianImportFreeze, c'est-à-dire), j'accepterai volontiers une réponse me disant comment copier un paquet depuis Utopic.
Bernhard Reiter

Réponses:


12

Vous devez reconstruire le package source localement avant le téléchargement afin d'ajuster le journal des modifications et de régénérer le fichier des modifications. Bien que le rétroportage d'un package soit une tâche assez courante, cela a été scripté. Découvrez le package de backportpackage Icône de page de manuelcommande ubuntu-dev-toolsInstallez ubuntu-dev-tools .

Pour rétroporter un paquet depuis Debian, il suffit de fournir la série de distribution cible, PPA et le fichier dsc pour le paquet:

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

Il est encore plus simple de rétroporter un package d'une version d'Ubuntu à une autre car vous n'avez pas besoin de trouver le fichier dsc. Disons que nous voulons revenir de l'utopique au fidèle:

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

Impressionnant! La seule chose qui ressemble un peu à un bug pour moi, c'est que le package s'est retrouvé dans mon PPA personnel (~ ockham-razor / ppa) même si j'ai passé ~gourmet/ppacomme argument au -uparamètre. (Mais j'ai heureusement pu le copier de mon PPA vers l'équipe Gourmet via Launchpad.)
Bernhard Reiter

1

Il y a quelques façons de le faire.

Quand j'ai fait cela pour Rhythmbox, j'ai suivi la recette suivante:

une. Prenez le fichier source et les fichiers debian

entrez la description de l'image ici

b. Décompressez la source (.orig.tar.xz)

c. renommer le dossier source quelque chose commerhythmbox-3.0.3

c. décompressez le fichier debian (.debian.tar.xz)

ré. déplacer le dossier debian sous le répertoire source

e. dch -ichanger le fichier du journal des modifications

F. changez le nom du paquet "instable" par le nom de la cible ubuntu - ici j'ai utilisé précis pour 12.04. Modifiez la version en fonction de votre application. Ici, rhythmbox était 3.0.3 - donc je viens d'ajouter-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. créer un nouveau paquet source:dh_build --createorig

h. Créez juste la source avec votre clé: debuild -S -k0xABCDEFGABCDEFGest votre clé

je. téléchargez votre package pour la construction:

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

Eh bien, c'est essentiellement la reconstruction du package. Tant pis. J'espérais un moyen plus simple, mais je suppose qu'il n'y en a pas.
Bernhard Reiter

Jetez un œil à la dgetcommande du devscriptspackage. Cela simplifiera un peu cela.
andrewsomething

@andrewsomething - transformez cela en une réponse avec un exemple :) - Je serais intéressé de voir si cela peut également simplifier mon emballage.
fossfreedom

Eh bien, j'ai une réponse complètement différente, mais vous devriez toujours en savoir plus sur dget=) Le fichier dsc contient toutes les informations sur les autres parties du package source. Donc dget, tout sera récupéré et extrait correctement si vous lui donnez un lien vers le fichier dsc. dget -ux http://http.debian.net/debian/pool/main/r/rhythmbox/rhythmbox_3.0.3-1.dsc
andrewsomething

réponse soignée - bravo +1
fossfreedom
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.