PPA & Packaging: Avoir des versions de packages pour plusieurs distributions

36

(citation de chat)

J'ai un PPA sur le tableau de bord pour les paquets sources d'un projet de bot IRC auquel je suis associé (étant donné que c'est tout l'empaquetage intermédiaire pour les trucs entre les versions, il est classé comme un PPA "expérimental"). Question: J'ai déjà emballé le matériel pour une construction claire. Avez-vous une idée de la façon dont je pourrais créer le même emballage, à l'exception de le conditionner pour non-conformiste, et de le placer dans le même PPA que celui pour lequel j'ai mis l'emballage lucide?

Thomas Ward
la source

Réponses:

42

Le moyen le plus simple est probablement de copier simplement les fichiers binaires sur Launchpad:

  1. Allez dans votre PPA et cliquez sur 'Voir les détails du paquet':

    entrez la description de l'image ici

  2. Cliquez sur 'Copier les paquets':

    entrez la description de l'image ici

  3. Sélectionnez les packages Lucid:

    entrez la description de l'image ici

  4. Sélectionnez "Maverick" pour la série et choisissez "Copier les fichiers binaires existants":

    entrez la description de l'image ici

  5. Cliquez sur 'copier les paquets' et c'est tout!

Nathan Osman
la source
Merci beaucoup. Vos instructions étaient sur place . Merci beaucoup pour la réponse rapide, aussi.
Thomas Ward
@ Evil: Pas de problème. Heureux d'avoir pu aider!
Nathan Osman
4
NOTE POUR D'AUTRES QUESTIONS QUI LIENT À ICI !!! La copie des fichiers binaires existants NE FONCTIONNE PAS TOUJOURS pour les programmes destinés à d'autres versions d'ubuntu! Voir mon PPA rkhunter et les changelogs de la version Lucid pour comprendre ce que je veux dire: launchpad.net/~trekcaptainusa-tw/+archive/rkhunter/+packages
Thomas Ward
@ThomasWard: Bon point - ça ne marche pas toujours.
Nathan Osman
2
@KhurshidAlam Désolé pour la réponse super super tardive. Cela échouera avec un "Changelog non valide", et en tant que tel, vous devez spécifiquement les marquer séparément lorsque vous utilisez un PPA avec une version différente. [ launchpad.net/~nginx/+archive/stable ] ( launchpad.net/~nginx/+archive/stable ) est un bon exemple de cela, car pour le construire, je dois ajouter la distribution à la version pour qu'elle soit construite. correctement avec toutes les différentes bibliothèques. (Je maintiens les ppas de l'équipe nginx pour le moment, c'est pourquoi je prends cela comme exemple.)
Thomas Ward
11

Si la copie des fichiers binaires du paquet que vous construisez ne fonctionne pas, vous devez télécharger un paquet source pour chaque version de la distribution en modifiant le debian/changelogfichier.

Comment reconditionner pour une autre version de Distro

  1. Editez le debian/changelogfichier dans le répertoire de votre paquet source
  2. Modifiez à la fois la version et la distribution cible afin de refléter la distribution pour laquelle vous créez

    Par exemple:nginx (1:1.4.1-0ubuntu1~preciseppa1) precise; urgency=low
  3. Reconstruire le paquet source: debuild -S
  4. Télécharger le .changesfichier sur votre PPA:dput ppa:teward/nginx-stable-testing ../nginx_1.4.1-0ubuntu1~preciseppa1_source.changes

Si la compilation réussit, alors félicitations, vous venez de construire un paquet pour cette distribution! Sinon, vous devrez vérifier le journal de construction sur le tableau de bord et résoudre tous les problèmes que vous rencontrez.

Les références:

TrinitronX
la source
C'est ce que je fais! : D Les MOTU (référentiels des dieux de l'univers) ont expliqué cela lorsque j'avais besoin de créer différentes versions pour un nginxprogramme PPA et d'autres programmes dans un PPA, et ils m'ont aidé à résoudre bon nombre de mes problèmes. Merci d'avoir posté ceci! :)
Thomas Ward
Oui, j'ai pensé que ce serait une information utile à documenter et à mettre à la disposition des nouveaux emballeurs, car il peut être très difficile d'apprendre à utiliser tous les outils d'empaquetage Debian, les téléchargements PPA, les conventions et les versions de débogage échouées.
TrinitronX
Effectivement. Cependant, je ne change pas la réponse acceptée, car au moment de cette question, il n'était pas nécessaire de s'inquiéter de la diversité des bibliothèques disponibles dans les différentes versions d'Ubuntu. Avec nginxou rkhunterou d'autres paquets que je rétorque souvent, il y a un énorme problème de dépendances à traiter (différent depends:dans le fichier de contrôle, etc.), aussi j'utilise toujours programversion-1~RELEASE0où ~ RELEASE0 est toujours un nombre avec la version donnée dans laquelle il se trouve .. Habituellement, lorsque je rétrogre Debian à Ubuntu c'est le cas :)
Thomas Ward
Ouais, les dépendances sont définitivement un problème pour le backporting ;-) Je suis d'accord, la réponse acceptée devrait suffire dans la plupart des cas, et pour les utilisateurs de comptes de contrôle de source bazaar, utiliser la recette de Launchpad bzr-builder est également séduisant. Cependant, quand il s'agit de packages avec de nombreuses dépendances, vous devez parfois créer un package personnalisé pour votre distribution cible.
TrinitronX
Et j’ai rétroporté nginxde Debian Unstable à Precise, Quantal, Raring et Saucy (et Trusty dans un PPA, mais je m’assure également que Trusty, jusqu’à ce que Freian gèle, voit la dernière version de Debian fusionnée dans: P), pour l’équipe NGINX, mais hélas il y a parfois des bogues que je ne peux pas corriger et que Debian doit traiter ... c'est pourquoi j'ai de bonnes relations avec les responsables de Debian :)
Thomas Ward