J'ai un programme qui doit être recompilé pour chaque version d'ubuntu.
Actuellement, je le conditionne en utilisant le PPA d'Ubuntu uniquement pour la distribution actuelle.
Finalement, je dois fournir des packages pour la version précédente d'ubuntu.
Je ne sais pas comment y parvenir.
Comment fonctionne le serveur de construction Ubuntu PPA - regarde-t-il simplement le champ de distribution dans l'entrée de journal des modifications la plus récente (dans le fichier debian / changelog) pour déterminer pour quelle distribution le paquet doit être construit?
La spécification debian permet d'ajouter plusieurs distributions dans le champ de distribution. Mais cela ne me semble pas utile.
Certains documents ubuntu parlent de l'encodage du nom de distribution dans le numéro de version (dans le fichier du journal des modifications debian).
Mais comment cela fonctionne-t-il dans la pratique? Une nouvelle version du programme est disponible, alors quoi? Dois-je ajouter pour chaque distribution une nouvelle entrée de journal des modifications et le buildserver PPA crée automatiquement pour chaque distribution de nouveaux packages après l'avoir publié? Ou le serveur de build PPA regarde-t-il simplement la première entrée du journal des modifications?
Réponses:
La voie à suivre consiste à télécharger une fois pour chaque version d' Ubuntu .
Launchpad ne construit pas de packages pour les versions d'Ubuntu qui ne sont plus prises en charge, et ne crée un package que pour une version spécifique d'Ubuntu. La version ciblée est (comme vous le savez déjà) spécifiée dans le
changelog
fichier, par la nouvelle entrée!N'oubliez pas que les packages dont votre programme dépend peuvent ne pas être disponibles dans la même version sur toutes les versions d'Ubuntu.
Vous parlez également de "multi-architecture" (architecture = type CUP, par exemple x86, LPIA, AMD64) cela ne fait aucune différence puisque chaque package téléchargé est construit pour toutes les architectures disponibles tant que vous l'avez
Architecture: any
dans ledebian/control
fichier de définition de package ( ), cela vous permet également de faire dépendre le package de différents packages pour différentes architectures (définir le package plusieurs fois)la source
Launchpad a une nouvelle fonctionnalité actuellement en version bêta qui vous permet de créer votre package pour plusieurs versions d'ubuntu à la fois sans aucun travail supplémentaire. Vous pouvez même créer automatiquement vos packages chaque jour. https://help.launchpad.net/Packaging/SourceBuilds/GettingStarted
la source
Concernant les conventions de nommage, la norme est de faire quelque chose comme ceci:
La raison en est qu'un ~ dans le champ de version représente "moins que rien" pour un numéro de version. Donc, si quelqu'un ajoute votre PPA à Karmic, il recevra le package ~ karmicppa1. Lorsqu'ils passeront ensuite à Lucid (et liront votre PPA), il sera remplacé par le package Lucid PPA. Si votre colis entre ensuite dans les archives officielles, la transition de votre PPA se fera en douceur.
L'autre avantage est que le fait de mettre la version dans le champ version indique clairement à quelle version les fichiers s'appliquent (et vous rappelle subtilement d'en télécharger une par version). Vous pouvez également avoir besoin de différentes branches pour chaque version d'Ubuntu lorsque vous avez différentes dépendances, par exemple.
la source