!!!Le contexte

Étant un inconditionnel du projet [Xfce|http://www.xfce.org/], j’aime bien compiler mes propres paquets (pour être sûr d’avoir les dernières versions). Sous Arch Linux, la construction d’un paquet pré-compilé se fait à l’aide d’un script @@PKGBUILD@@. Cela permet de renseigner les différentes dépendances, d’automatiser la  »post-installation », etc.

En regardant les dépendances nécessaires au bon fonctionnement d’une extension ([Thunar Volume Manager, ou thunar-volman|http://goodies.xfce.org/projects/thunar-plugins/thunar-volman]) au gestionnaire de fichiers, [Thunar|http://thunar.xfce.org/], je me suis rendu compte qu’il me manquait la bibliothèque, __udisks__.

Cette dernière permet la gestion des périphériques de stockage (CD Rom, DVD, clé USB, disque dur, etc.), et de définir des « droits » aux utilisateurs du système, grâce à [polkit|http://www.freedesktop.org/wiki/Software/PolicyKit|en].

En réalité __udisks__ n’est pas mentionné dans le script shell @@configure@@, il s’agit plutôt d’une dépendance « implicite ». Bien souvent cette bibliothèque est présente sur la plupart des distribution Linux $$Sous Slackware, il faut utiliser le SlackBuild, disponible sur [SlackBuilds.org|http://slackbuilds.org/]$$.

J’ai tout d’abord procédé à une recherche :

///olivier@piraat:~ $ pacman -Ss udisks
extra/udisks 1.0.3-1
Disk Management Service
olivier@piraat:~ $
///

Puis à son installation :

///root@piraat:~ # pacman -S udisks
Résolution des dépendances…
Recherche des conflits possible entres paquets…
:: lvm2 et mkinitcpio sont en conflits (mkinitcpio<0.7). Supprimer mkinitcpio ? [o/N] /// Comme, je ne souhaite pas désinstaller __mkinitcpio__, je me retrouve donc dans l'incapacité d'installer __udisks__, par ailleurs, je n'ai aucunement envie de repartitionner le disque avec [lvm|http://fr.wikipedia.org/wiki/Gestion_par_volumes_logiques|fr]. Je suis donc allé regarder plus en détail les dépendances de __udisks__. !!!Apprendre à rechercher la bonne information Le code source est accessible à cette [adresse|http://cgit.freedesktop.org/udisks]. En parcourant le fichier @@configure.ac@@ (j'ai choisi la branche 1.0.3), on tombe sur ces lignes : ///[...] have_lvm2=no AC_ARG_ENABLE(lvm2, AS_HELP_STRING([--disable-lvm2], [disable LVM2 support])) if test "x$enable_lvm2" != "xno"; then PKG_CHECK_MODULES(LVM2, lvm2app >= 2.2,
[AC_DEFINE(HAVE_LVM2, 1, [Define if LVM2 is available]) have_lvm2=yes],
have_lvm2=no)
AC_SUBST(LVM2_CFLAGS)
AC_SUBST(LVM2_LIBS)
if test « x$have_lvm2 » = xno -a « x$enable_lvm2 » = xyes; then
AC_MSG_ERROR([lvm2 support requested but libraries not found])
fi
fi
AM_CONDITIONAL(HAVE_LVM2, [test « $have_lvm2 » = « yes »])

[…]
///

C’est ce qui nous intéresse, on peut désactiver le support pour lvm.

J’ai donc légèrement modifié le @@PKGBUILD@@ :

///[…]
depends=(‘udev’ ‘sg3_utils’ ‘glib2’ ‘dbus-glib’ ‘polkit’ ‘parted’ ‘device-mapper’ ‘libatasmart’ ‘lsof’ ‘eject’)
makedepends=(‘intltool’ ‘pkgconfig’ ‘gettext’)
[…]
build() {
cd « ${srcdir}/${pkgname}-${pkgver} »
patch -Np0 -i « ${srcdir}/01-mkfs-tempdir.patch »
./configure –prefix=/usr –sysconfdir=/etc –localstatedir=/var
–libexecdir=/usr/lib/udisks –mandir=/usr/man –disable-static
–disable-gtk-doc-html –disable-lvm2
–enable-nls –without-html-dir
#fix location for bash_completion helper
sed -i -e ‘s|profile.d|bash_completion.d|’ tools/Makefile

make
}

[…]
///

Désormais __thunar-volman__ est pleinement fonctionnel.