Exemple de "customizepkg" avec Liferea

La plupart de ceux qui utilisent Archlinux connaissent yaourt, un très bon utilitaire produit par Wain , mais il est possible que vous ne sachiez pas qu’il permet par le biais du programme customizepkg du même auteur, de modifier à la volée les paquets (officiels ou issus d’AUR) pendant leur installation.

Des exemples sont disponibles dans:
/etc/customizepkg.d/

Un petit exemple avec Liferea:
Si on a un système relativement simple sans environnement de bureau, pas de NetworkManager, et même pas de Firefox, qu’on utilise un navigateur basé sur Webkit et un environnement Gtk, on peut trouver les options par défaut de Liferea lourdes!

Du coup, on crée un fichier /etc/customizepkg.d/liferea:

replace#depends#xulrunner#libwebkit
remove#depends#libnetworkmanager#
replace#global#--with-gecko=libxul#--disable-nm
replace#global#--disable-webkit#--enable-webkit

Les règles sont assez explicites:

  • on remplace la dépendance à la librairie de Mozilla (xulrunner) par celle de Webkit
  • on supprime la dépendance à NetworkManager
  • on remplace l’option de compilation intégrant Gecko par celle désactivant NetworkManager
  • et enfin, on active Webkit

Ainsi, pour peu que le fichier de description du paquet (PKGBUILD) n’ait pas de modification radicale, une mise à jour ou installation (avec yaourt), vous compilera puis installera Liferea avec les bonnes options.

Yaourt vous informe d’ailleurs sur ce qui a été modifié:

==> liferea 1.4.28-1
=> removes/replaces 'xulrunner' by 'libwebkit' in depends
=> removes/replaces 'libnetworkmanager' by '' in depends
=> removes/replaces '--with-gecko=libxul' by '--disable-nm' in global
=> removes/replaces '--disable-webkit' by '--enable-webkit' in global
--- ./PKGBUILD 2009-06-02 15:32:22.000000000 +0200
+++ ./PKGBUILD.custom 2009-06-02 15:32:23.000000000 +0200
@@ -9,7 +9,7 @@
 arch=('i686' 'x86_64')
 url="http://liferea.sourceforge.net/"
 license=('GPL')
-depends=('gconf>=2.22.0' 'xulrunner>=1.9' 'libnotify>=0.4.4' 'libnetworkmanager' 'libxslt>=1.1.20' \
+depends=('gconf>=2.22.0' 'libwebkit' 'libnotify>=0.4.4' 'libxslt>=1.1.20' \
          'libglade>=2.6.2' 'sqlite3' 'gnutls>=2.4.1')
 makedepends=('perlxml' 'pkgconfig' 'diffutils' 'intltool')
 options=('!libtool' '!emptydirs')
@@ -21,8 +21,8 @@
 build() {
   cd ${srcdir}/liferea-${pkgver}
   ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
-              --with-gecko=libxul --disable-gtkhtml2 \
-       --disable-webkit || return 1
+              --disable-nm --disable-gtkhtml2 \
+       --enable-webkit || return 1
   make || return 1
   make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR=${pkgdir} install || return 1