Je cherche un outil pour faire ce qui suit:
dpkg-source --commit [something-or-other]
?)Launchpad peut-il faire tout cela pour moi?
Sinon, existe-t-il un outil qui fera automatiquement tout cela à partir d'une tâche cron?
À défaut de ce qui précède, je vais associer quelque chose moi-même, mais de quelles commandes ai-je besoin pour:
J'ai trouvé une question ( Quelle est la bonne façon de patcher Wine pour un PPA personnalisé? ), qui est similaire mais les étapes de la réponse sont toujours essentiellement manuelles et interactives. Une version complètement simplifiée de cela, plus la détection automatique des mises à jour sources, serait très utile.
Eh bien, cela ressemble à recettes d'emballage sont le chemin à parcourir ici. Fondamentalement, les recettes de packaging peuvent créer automatiquement des packages source Ubuntu et les télécharger sur un PPA chaque fois qu'une branche bzr sur Launchpad change. Le documentation en ligne est assez bon, mais je vais donner quelques exemples ...
Tout d'abord, vous spécifiez une branche à suivre (par exemple, lp:gtk3
) puis ajoutez une commande pour imbriquer votre propre branche d'empaquetage Debian dans cette branche. Jetez un oeil à cette recette J'ai créé pour les versions quotidiennes d'Inkscape.
# bzr-builder format 0.4 deb-version 1:0.48+devel+{revno}+{revno:packaging}
lp:inkscape
nest packaging lp:~inkscape.dev/inkscape/debian-packaging debian
Cette recette crée un paquet Ubuntu chaque jour en utilisant la dernière source en amont pour Inkscape, mais copie des instructions d'empaquetage Debian personnalisées à partir du lp:~inkscape.dev/inkscape/debian-packaging
branchez-vous dans un sous-dossier appelé "debian
".
La page de recette d'emballage sur Launchpad vous permet de spécifier vers quel PPA télécharger automatiquement vos colis. Dans notre cas, il est téléchargé ici .
Comme approche alternative, vous pouvez baser votre recette sur un package Ubuntu existant plutôt que directement sur la source en amont. Par exemple, lp:ubuntu/gtk+3.0
. Vous devez ensuite créer une branche de ce code et valider toutes les modifications dont vous avez besoin. Appelons ça lp:~myaccount/ubuntu/saucy/gtk+3.0/my-custom-build
, par exemple. Vous créeriez alors une recette pour automatiquement fusionnez vos modifications plutôt que d'imbriquer les instructions d'emballage. La recette ressemblerait à quelque chose comme:
# bzr-builder format 0.4 deb-version {debversion}+{date}
lp:ubuntu/gtk+3.0
merge my-custom-build lp:~myaccount/ubuntu/saucy/gtk+3.0/my-custom-build
Cette recette crée donc automatiquement un package source Ubuntu personnalisé et le télécharge sur votre PPA chaque fois qu'il y a un changement dans le package Ubuntu officiel.
Si vous adoptez cette approche de "fusion", vous avez deux options pour appliquer vos correctifs. Soit vous éditez simplement le code source en amont directement dans votre branche et laissez bzr se charger de le fusionner, soit vous pouvez créer des fichiers de correctif à l'intérieur du debian/
dossier à l'aide de la courtepointe. Chacun a ses propres avantages/inconvénients. L'ancienne approche est un peu plus intelligente ... si l'un de vos correctifs est adopté par le développeur en amont, la fusion fonctionnera généralement et le package Ubuntu se construira correctement. Cette dernière approche vous permet de gérer vos correctifs en utilisant l'approche standard basée sur Debian de garder le code de conditionnement séparé du code en amont ... cependant, si le développeur en amont adopte l'un de vos correctifs, quilt ne pourra pas appliquer le (duplicata) patch et le package ne parviendra pas à construire.