Création d’un patch pour la mise à jour d’un paquet OpenWrt

Nous allons voir comment mettre à jour le paquet pcre de la version 8.11 vers la version 8.20, et comment créer un patch pour l’envoyer aux développeurs d’OpenWrt.

Pour info, voici l’arborescence dans laquelle je travaille :

$ ls /data/workspace/openwrt/
patches  trunk

Tout d’abord, nous allons faire en sorte d’être à jour :

$ cd /data/workspace/openwrt/trunk/
$ svn up
$ ./scripts/feeds update -a

Nous sommes maintenant prêts à commencer.

On commence par télécharger la dernière version de pcre dans le répertoire dl/ :

$ wget -P dl/ ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.20.tar.bz2

Puis on calcule sa somme de contrôle MD5 :

$ md5sum dl/pcre-8.20.tar.bz2 
a1931c70e1273e3450d5036fe273d25c  dl/pcre-8.20.tar.bz2

On va alors dans le répertoire du paquet pour commencer à travailler :

$ cd feeds/packages/libs/pcre/

On indique à quilt de créer un nouveau patch :

$ quilt new pcre.patch
Patch pcre.patch is now on top

On lui indique qu’on veut modifier le fichier Makefile, ce qui aura pour effet de l’ajouter automatiquement au patch qui est au sommet de la pile :

$ quilt edit Makefile 
File Makefile added to patch pcre.patch

On va donc mettre à jour les divers paramètres du paquet qui ont changé.

Dans tous les cas il y aura PKG_VERSION à changer pour mettre le nouveau numéro de version, PKG_RELEASE à mettre à 1 (car c’est la première release du paquet à la nouvelle version), et PKG_MD5SUM à mettre à la valeur calculée un peu plus tôt.

Dans cet exemple, PKG_SOURCE_URL change également.

Avant :

PKG_NAME:=pcre
PKG_VERSION:=8.11
PKG_RELEASE:=2
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@SF/pcre
PKG_MD5SUM:=ef907b8792ec7f90f0dcd773848f0b3b

Après :

PKG_NAME:=pcre
PKG_VERSION:=8.20
PKG_RELEASE:=1
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
PKG_MD5SUM:=a1931c70e1273e3450d5036fe273d25c

Une fois les modifications effectuées, on indique à quilt de rafraîchir le patch :

$ quilt refresh
Refreshed patch pcre.patch

Comme nous l’avons défini dans Installation et configuration de quilt pour créer des patchs OpenWrt, le patch se trouve dans /data/workspace/openwrt/patches/.

On retourne à la racine d’OpenWrt pour vérifier que tout compile correctement :

$ cd -
/data/workspace/openwrt/trunk
 
$ make package/pcre/compile V=99 DEVELOPER=1

Et voilà !

Vus : 1405
Publié par cksum : 5