Workflow de travail avec git-buildpackage🔗
Posted by Médéric Ribreux 🗓 In kb/
Introduction
git-buildpackage
(alias gbp
) est un outil d'assistance à empaquetage Debian qui permet de concentrer l'ensemble des éléments nécéssaires à la création de paquets Debian dans un seul dépôt Git par paquet source.
Son utilisation n'est pas complexe mais elle implique de savoir ce qu'on fait !
Concepts
- On concentre tout dans un dépôt Git.
- Ce dépôt comporte au minimum deux branches:
- master (qui correspond aux sources + le répertoire debian).
- upstream qui correspond aux sources originelles
- En gros, dans master, on traite tout ce qui concerne le répertoire debian et que ça (sauf des patchs)
- Les modifs de code se font dans la branche upstream.
- Quand les changements de la branche upstream sont opérationnels, on fait un merge vers la branche master.
- Il est quasi-indispensable d'utiliser des tags dans la branche upstream pour savoir à partir de quoi réaliser le paquet et son archive tar originelle.
- git-buildpackage utilise le numéro de version du fichier
debian/changelog
pour savoir quel tag upstream utiliser pour fabriquer l'archive.
Opérations de maintenance de paquets
- Importer le paquet avec
gbp import-orig fichier.tar.gz
- Faire les modifs et les commits du répertoire debian uniquement dans la branche master.
- Faire les modifs et les commits du code source dans la branche upstream.
- Une fois que la branche upstream donne satisfaction, on la taggue (après le commit):
git tag -a upstream/1.2.6
. - On effectue ensuite un merge vers la branche debian:
git checkout master && git merge upstream
. - Pour prendre en compte les modifications dans le changelog Debian, on peut utiliser
gbp dch --release
. Vérifier que le numéro de version corresponde.
Conclusion
On peut utiliser gbp
pour maintenir des paquets Debian sur lesquels on travaille directement. Dans un seul dépôt, j'ai la partie scpéficique à l'empaquetage Debian ainsi que la partie classique dédiée au code et à son évolution. Le seul surcoût est une branche particulière.
Pour mes projets dédiés à créer des programmes qui seront forcément utilisés dans une distribution Debian, j'utilise directement gbp
. Il faut juste faire attention de bien travailler dans la branche upstream
par défaut.