Eh bien, il semble que les recettes d'emballage soient la voie à suivre 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. La documentation en ligne est assez bonne, mais je vais vous 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 œil à cette recette que j'ai créée 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 les instructions de conditionnement Debian personnalisées de la lp:~inkscape.dev/inkscape/debian-packaging
branche 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-le lp:~myaccount/ubuntu/saucy/gtk+3.0/my-custom-build
, par exemple. Vous devez ensuite créer une recette pour fusionner automatiquement 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 paquet source Ubuntu personnalisé et le télécharge sur votre PPA chaque fois qu'il y a un changement dans le paquet 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 patch dans le debian/
dossier à l'aide de quilt. 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, alors 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.
lp:ubuntu/gtk+3.0
suit? Version actuelle stable ou en cours de développement?