Name¶
emvendor - 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.