• # Le même en git et en plus puissant

    Posté par . En réponse au journal Modification d'un paquet Debian. Évalué à 5.

    Intéressant, mais récemment, on [1] est quand même passé à « mieux » avec git et d'autres outils associés. Je me base entre autre sur git-buildpackage [2] et ce guide https://honk.sigxcpu.org/piki/development/debian_packages_in_git/

    On installe l'essentiel (de tête) :

    # apt-get install build-essential devscripts git git-buildpackage cowbuilder
    
    

    On récupère les sources du package (pas besoin d'installer les dépendances, on va compiler à travers pbuilder) :

    $ git-import-dsc --download redhat-cluster
    
    

    On se retrouve avec une branche upstream qui contient le code original, et master contient les modifications pour Debian.

    On va créer un branche qui contiendra les patchs Debian appliqués, car ils sont normalement stockés dans debian/patches avec quilt, mais ici on utilisera git :

    $ gbp-pq import
    
    

    On a donc la branche patch-queue/master sur laquelle travailler. On modifie, on add, on commit, et on en profite pour avoir le changelog qu'on commitera dans la branche master :

    $ git-dch -i -a
    
    

    (on peut les mettre dans l'index en attendant). Et on exporte le(s) changement(s) ainsi obtenus en patchs Debian dans la branche principale :

    $ gbp-pq export
    
    

    On peut ajouter les patchs ainsi générés et le changelog, commiter, et ça roule.

    On peut ensuite le compiler soi sur son système directement :

    $ git-buildpackage -us -uc
    
    

    Voire le faire dans un pbuilder-like, comme ça on n'a pas à polluer son système, et ça permet de vérifier qu'on n'a pas oublié de dépendances, et que ça compile depuis un système propore :

    $ git-pbuilder create
    $ git-buildpackage -us -us --git-pbuilder
    
    

    Après, ce qui est intéressant, ce sont aussi les bonus :
    - Générer aussi les tar originaux “pristine”, en ajoutant --pristine-tar à git-import-dsc
    - Builder pour différentes suites, en créant une nouvelles branche avec les modifications spécifiques (ou pas), et en passant --git-dist=squeeze à git-buildpackage par exemple (et en précisant --git-debian-branch=ma_branche si on a fait une branche séparée).
    - Pouvoir facilement mettre à jour le patch qu'on a fait quand une nouvelle version du package arrive :

    $ git-import-dsc --download redhat-cluster
    $ gbp-pq rebase
    
    
    • Les tags automatiques d'après les versions indiquées dans le changelog
    • Etc

    Voilà, j'espère que ça pourra aider.

    [1] Je ne suis ni DM ni DD, juste un packageur du dimanche
    [2] https://sigxcpu.org/piki/projects/git-buildpackage/