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 correspond au

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.