Quilt : Pour tripoter les patches d’un paquet buildroot.

Buildroot télécharge les sources officielles des logiciels pour ensuite les modifier avec des patches inclus dans le paquet.

Si on prend l’exemple du paquet uboot. Pour le compiler on fait simplement un :

$ make uboot

À la racine de buildroot.

Cette règle générale cache en fait tout un tas d’étapes de constructions visibles par les timbres (.stamp) dans le répertoire build :

$ cd output/build/uboot-VERSION/
$ ls -l
.stamp_downloaded
.stamp_extracted
.stamp_patched
.stamp_dotconfig
.stamp_kconfig_fixup_done
.stamp_configured
.stamp_built
.stamp_target_installed
.stamp_images_installed
.stamp_installed

Les fichiers .stamp ont été ici mis dans l’ordre d’exécution.

Extraction du paquet

L’étape qui nous intéresse présentement est .stamp_patched.

Pour pouvoir éditer les patches à la main il va nous falloir faire cette étape à la main.

Tout d’abord on télécharge et extrait le paquet avec buildroot :

make uboot-extract

Notez que si votre paquet est déjà compilé il faudra faire table rase avec un :

make uboot-dirclean

Ce qui aura pour effet de supprimer le répertoire output/build/uboot-VERSION

Buildroot va passer toute les étapes précédentes (téléchargement, décompression) et s’arrêter juste avant les patches.

Patchons avec quilt

Pour patcher à la main il faut d’abord se rendre dans le répertoire de build du paquet fraichement créé puis importer les patch avec quilt.

$ quilt import ../../../../br-external-oposa5e-sp/boot/uboot/patches/*.patchLangage du code : JavaScript (javascript)

Ici les patches proviennent d’un br-external, mais c’est une autre histoire.

La commande import a pour effet de copier les patches dans un répertoire patches/ et ajoute un fichier texte nommé series qui les liste.

À cette étape, les patches ne sont pas encore appliqués. Il faut pour cela les pousser avec la commande quilt push.

Si l’on souhaite appliquer d’un coup tous les patches de la série on utilisera l’option -a:

$ quilt push -a
Applying patch patches/0001-oposa5esp-065b-devicetree.patch
patching file arch/arm/dts/oposa5e_sp_065b.dts
patching file configs/oposa5e_sp_065b_defconfig
patching file arch/arm/dts/oposa5e_sp_065b-u-boot.dtsi

Now at patch patches/0001-oposa5esp-065b-devicetree.patch

Pour le coup ici il n’y a qu’un patch.

Si vous souhaitez ajouter des patches utilisez new et pour ajouter des fichiers à modifier utiliser add avant de modifier le fichier. Tout ceci est très bien expliqué dans la page man et n’est pas le sujet de ce billet.

Continuer le build du paquet

Maintenant que nous avons patché à la main il faut le dire à buildroot en ajoutant le timbre :

$ touch .stamp_patched

Puis on retourne dans le répertoire principal de buildroot pour finir la construction du paquet.

$ cd ../../../
$ make uboot

Modification d’un patch une fois le paquet construit

Pour revenir à l’étape de modification des patches on supprime tous les timbres correspondant aux étapes d’après .stamp_patched .

$ rm .stamp_*
$ touch .stamp_downloaded .stamp_extracted .stamp_patched

Puis on remet son quilt pour tripoter les patches.

Ressources

Ce contenu a été publié dans embarqué, informatique, Non classé, programmation, avec comme mot(s)-clé(s) , , , , , , , . Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *