emvendor(1) anbieterspezifische Paketkonfigurationszeichenketten abrufen

Übersicht

 emvendor -V|--vendor ANBIETER -p|--package PAKET -k|--key SCHLÜSSEL
 emvendor -?|-h|--help|--version

Befehle

 -v|--vendor ANBIETER:  der Anbietername aus dpkg-vendor
 -p|--package PAKET:    der Paketname (normalerweise Quelle)
 -k|--key SCHLÜSSEL:    beliebige Zeichenkette für den Schlüssel der Daten

Alle Befehle müssen jedesmal angegeben werden.

Bei Erfolg wird die Zeichenkette ausgegeben und emvendor mit dem Rückgabewert Null beendet.

Im Fall eines Fehlers wird emvendor mit einer leeren Zeichenkette auf der Standardfehlerausgabe und mit einem Rückgabewert ungleich Null beendet.

Beschreibung

emvendor stellt eine Möglichkeit für debian/rules bereit, eine Zeichenkette für ein bestimmtes Paket abzurufen, die in die Regeln dieses Pakets passt und den Anforderungen des Anbieters entspricht.

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

Es ist ziemlich offensichtlich, dass die Angabe jedes Anbieters in der Datei debian/rules von jedem Paket nicht besonders flexibel sein wird.

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

oder benutzen Sie die Kurzoptionen:

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

Die Werte selbst liegen in einer anbieterspezifischen Konfigurationsdatei in /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=

(Beachten Sie, dass der Wert ganz in einer Zeile stehen muss, was etwas ungeschickt ist – beachten Sie außerdem, dass Werte nicht das Gleichheitszeichen enthalten dürfen, was eher ein Problem sein könnte.)

Pakete, die zwei Zeichenketten benötigen, können das so tun – die Schlüsselzeichenkette ist völlig beliebig, solange sie in den Stil einer typischen Ini-Datei passt.

Daher kann der Schlüssel an die Bedürfnisse des maßgeblichen Pakets angepasst werden.

"emdebian-buildsupport" stellt /etc/emvendor.d/emdebian-crush mit all dem Inhalt allen Paketen bereit, die solche Einzelheiten benötigen.

emvendor und dpkg-vendor

dpkg-vendor unterstützt Anbieterfunktionalität, aber emvendor fügt eine zusätzliche Hierarchie ein, die nach Debian-Quellpaketnamen organisiert wird. Es wäre möglich, alle maßgeblichen Zeichenketten in /etc/dpkg/origins/vendor einzufügen, aber jeder Bezeichner müsste über alle Pakete hinweg für jeden Anbieter einmalig sein, was eine unrealistische Einschränkung ist.