emvendor(1) récupère les chaînes de configuration de paquet propres à

Synopsis

 emvendor -V|--vendor ÉDITEUR -p|--package PAQUET -k|--key CLÉ
 emvendor -?|-h|--help|--version

Commandes

 -v|--vendor ÉDITEUR:  le nom de l'éditeur obtenu par dpkg-vendor
 -p|--package PAQUET:  le nom du paquet (habituellement source)
 -k|--key CLÉ:         chaîne arbitraire pour la clé des données

Toutes les commandes doivent être indiquées à chaque exécution.

En cas de succès, la chaîne de caractères est affichée et emvendor retourne zéro.

En cas d'erreur, emvendor se termine avec une chaîne vide sur STDERR et renvoie une valeur différente de zéro.

Description

emvendor permet à debian/rules de récupérer, pour un paquet précis, une chaîne de caractères qui s'intègre aux règles pour ce paquet et qui est conforme aux conditions de l'éditeur (« vendor »).

http://wiki.debian.org/EmdebianAuditDetail#Vendor

Il est assez évident qu'indiquer chaque éditeur dans le fichier debian/rules pour chaque paquet ne va pas être particulièrement flexible.

 DEB_VENDOR=$(shell dpkg-vendor --query vendor)
 ifeq (Debian,$(DEB_VENDOR))
  # Debian build
  EXCONFARGS=--disable-mono --disable-monodoc
 else
  # any-vendor build
  EXCONFARGS=$(shell emvendor --vendor $(DEB_VENDOR) --package avahi --key EXCONFARGS)
 endif

ou utiliser les options courtes :

 EXCONFARGS=$(shell foo-bar -V $(DEB_VENDOR) -p avahi -k EXCONFARGS)

Les valeurs elles-mêmes sont dans un fichier de configuration spécifique à l'éditeur dans /etc/emvendor.d/

 $ cat /etc/foo-bar.d/emdebian-crush
 [avahi]
 EXCONFARGS=--disable-mono --disable-monodoc --disable-python
 --disable-doxygen-doc --disable-pygtk --disable-python-dbus
 --disable-core-docs --disable-qt3 --disable-qt4 --disable-gobject
 --with-distro debian 
 [busybox]
 foo=

(À noter : la valeur doit être sur une seule ligne, ce qui est peu commode - à noter également : les valeurs ne peuvent pas contenir le signe égal ce qui peut être plus gênant.)

Les paquets qui nécessitent deux chaînes peuvent faire ainsi - la chaîne « clé » est complètement arbitraire tant qu'elle correspond au style d'un fichier « ini » typique.

Par conséquent, la clé peut être adaptée aux besoins du paquet concerné.

"emdebian-buildsupport" renseigne /etc/emvendor.d/emdebian-crush avec tout le contenu pour tous les paquets qui nécessitent de tels détails.

emvendor et dpkg-vendor

dpkg-vendor gère la fonctionnalité des éditeurs mais emvendor ajoute une hiérarchie supplémentaire, organisée par nom de paquet Debian source. Il serait possible d'inclure les chaînes correspondantes dans /etc/dpkg/origins/éditeur mais chaque chaîne de l'identifiant devrait être unique parmi tous les paquets pour chaque éditeur, ce qui est une contrainte irréaliste.