NOM
dpkg-architecture - Fixer et dterminer l'architecture pour la
construction d'un paquet
SYNOPSIS
dpkg-architecture [options] [commandes]
dpkg-architecture aide dterminer et fixer l'architecture de
construction et l'architecture hte pour la cration d'un paquet.
L'architecture de construction est toujours dtermine par un appel
externe
dpkg(1). Elle ne peut pas tre spcifie en ligne de commande.
Vous pouvez spcifier une architecture hte en utilisant une des options
-a et -t (ou les deux). Par dfaut, la valeur est dtermine par un appel
gcc(1), ou en utilisant l'architecture de construction si CC ou gcc ne
sont pas disponibles. Utiliser une seule des options -a et -t est
suffisant, la valeur de l'une est utilise comme valeur par dfaut de
l'autre. Bien sr, il est prfrable de n'en prciser qu'une seule, puisque
dpkg-architecture affichera un avertissement si le choix ne correspond
pas la valeur par dfaut.
COMMANDES
-l Affiche les variables d'environnement, une par ligne, en
utilisant le format VARIABLE=valeur. C'est l'action par dfaut.
-earchitecture-debian
Vrifie l'galit d'architectures. Par dfaut, architecture-debian
est compare l'architecture Debian actuelle, qui est celle de la
machine hte. Cette action ne dveloppe pas les architectures
joker. La commande quitte avec un code de retour de 0 si
l'architecture correspond et de 1 dans le cas contraire.
-iarchitecture-joker
Vrifie l'galit d'architectures en dveloppant architecture-joker
et en comparant l'architecture Debian actuelle. La commande
quitte avec un code de retour de 0 si l'architecture correspond
et de 1 dans le cas contraire.
-qnom-de-variable
Affiche la valeur d'une seule variable.
-s Produit une commande, qui peut tre utilise pour positionner les
variables d'environnement avec eval .
-u Produit une commande similaire celle produite par -s, mais pour
supprimer les variables de l'environnement.
-c commande
Excute une commande dans un environnement o toutes les variables
sont positionnes aux valeurs spcifies.
-L Affiche une liste des architectures valables.
--help Affiche un message d'aide puis quitte.
--version
Affiche le numro de version puis quitte.
OPTIONS
-aarchitecture-debian
Fixe l'architecture Debian.
-ttype-de-systme-gnu
Fixe le type de systme GNU.
-f Les valeurs positionnes par les variables d'environnement ayant
le mme nom que celles utilises par les scripts sont prises en
compte (c'est--dire utilise par dpkg-architecture), sauf si
cette option est prsente. Ceci permet un utilisateur de
surcharger une valeur mme lorsque l'appel dpkg-architecture est
inclus dans un autre script (par exemple dpkg-buildpackage(1)).
TERMINOLOGIE
Machine de construction
Machine sur laquelle le paquet est construit.
Machine hte
Machine pour laquelle le paquet est construit.
Architecture Debian
Chane de caractres de l'architecture Debian, qui spcifie
l'emplacement dans l'archive FTP. Par exemple : i386, sparc,
hurd-i386.
Architecture joker
Une architecture joker est une architecture spciale qui correspond
toutes les architectures relles qui en font partie. Il est en gnral
de la forme <noyau>-<processeur>. Par exemple : linux-any,
any-i386, hurd-any.
Type de systme GNU
Chane de caractres dfinissant l'architecture et constitue de deux
parties spares par un tiret : processeur et systme. Par exemple :
i386-linux-gnu, sparc-linux-gnu, i386-gnu, x86_64-netbsd.
VARIABLES D'ENVIRONNEMENT
Les variables suivantes sont positionnes par dpkg-architecture :
DEB_BUILD_ARCH
Architecture Debian de la machine de construction.
DEB_BUILD_ARCH_OS
Nom du systme Debian de la machine de construction.
DEB_BUILD_ARCH_CPU
Nom de processeur Debian de la machine de construction.
DEB_BUILD_ARCH_BITS
Taille de pointeur de la machine de construction (en bits).
DEB_BUILD_ARCH_ENDIAN
Endianness de la machine de construction (little ou big).
DEB_BUILD_GNU_CPU
The CPU part of DEB_BUILD_GNU_TYPE.
DEB_BUILD_GNU_SYSTEM
Partie systme de DEB_BUILD_GNU_TYPE.
DEB_BUILD_GNU_TYPE
Type de systme GNU de la machine de construction.
DEB_HOST_ARCH
Architecture Debian de la machine hte.
DEB_HOST_ARCH_OS
Nom du systme Debian de la machine hte.
DEB_HOST_ARCH_CPU
Nom du processeur Debian de la machine hte.
DEB_HOST_ARCH_BITS
Taille de pointeur de la machine hte (en bits).
DEB_HOST_ARCH_ENDIAN
Endianess de la machine hte (little ou big).
DEB_HOST_GNU_CPU
Partie processeur de DEB_HOST_GNU_TYPE.
DEB_HOST_GNU_SYSTEM
Partie systme de DEB_HOST_GNU_TYPE.
DEB_HOST_GNU_TYPE
Type de systme GNU de la machine hte.
DEBIAN/RULES
Les variables d'environnement dfinies par dpkg-architecture sont
fournies debian/rules comme variables pour make (consultez la
documentation de make). Cependant, vous ne devez pas compter l-dessus
puisque cela empche les appels manuels ce script. la place, vous
devez toujours les initialiser en utilisant dpkg-architecture avec
l'option -q. Voici quelques exemples, qui indiquent aussi comment
amliorer la gestion des compilations croises de votre paquet :
Au lieu de :
ARCH=`dpkg --print-architecture`
configure $(ARCH)-linux
Veuillez utiliser :
DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
configure --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
Au lieu de :
ARCH=`dpkg --print-architecture`
ifeq ($(ARCH),alpha)
...
endif
Veuillez utiliser :
DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
ifeq ($(DEB_HOST_ARCH),alpha)
...
endif
Ou, si vous n'avez besoin que de vrifier le type du processeur et du
systme, utilisez les variables DEB_HOST_ARCH_CPU ou DEB_HOST_ARCH_OS.
Appeler dpkg dans les fichiers rules pour obtenir les informations
sur l'architecture est dconseill (sauf pour des raisons de compatibilit
arrire, voyez ci-dessous). En particulier, l'option
--print-architecture n'est pas fiable puisque certaines architectures
Debian ne correspondent aucun nom de processeur.
COMPATIBILIT ARRIRE
Les variables DEB_*_ARCH_BITS et DEB_*_ARCH_ENDIAN sont apparues avec
la version 1.15.4 de dpkg-dev. Si elles sont utilises dans
debian/rules, une dpendance de construction sur dpkg-dev (>= 1.15.4)
est ncessaire.
Les variables DEB_HOST_ARCH_CPU et DEB_HOST_ARCH_OS sont apparues avec
la version 1.13.2 de dpkg-dev. Auparavant, les fichiers debian/rules
utilisaient les variables DEB_HOST_GNU_CPU ou DEB_HOST_GNU_TYPE qui ont
eu tendance varier dans le temps.
Si ces variables sont encore utilises dans un fichier debian/rules pour
dcider quoi construire et comment, il faut les remplacer par les
nouvelles variables. Vous pouvez rester compatible avec les versions
prcdentes de dpkg-dev en utilisant le code suivant :
DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU 2>/dev/null)
DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS 2>/dev/null)
# Prise en compte des anciennes versions de dpkg-architecture.
ifeq ($(DEB_HOST_ARCH_CPU),)
DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
ifeq ($(DEB_HOST_ARCH_CPU),x86_64)
DEB_HOST_ARCH_CPU := amd64
endif
endif
ifeq ($(DEB_HOST_ARCH_OS),)
DEB_HOST_ARCH_OS := $(subst -gnu,,$(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM))
ifeq ($(DEB_HOST_ARCH_OS),gnu)
DEB_HOST_ARCH_OS := hurd
endif
endif
Et de la mme faon pour DEB_BUILD_ARCH_CPU et DEB_BUILD_ARCH_OS.
Pour accepter encore les versions de dpkg-dev qui n'incluent pas
dpkg-architecture, vous pouvez utiliser :
DEB_BUILD_ARCH := $(shell dpkg --print-architecture)
DEB_BUILD_GNU_CPU := $(patsubst hurd-%,%,$(DEB_BUILD_ARCH))
ifeq ($(filter-out hurd-%,$(DEB_BUILD_ARCH)),)
DEB_BUILD_GNU_SYSTEM := gnu
else
DEB_BUILD_GNU_SYSTEM := linux-gnu
endif
DEB_BUILD_GNU_TYPE=$(DEB_BUILD_GNU_CPU)-$(DEB_BUILD_GNU_SYSTEM)
DEB_HOST_ARCH := $(DEB_BUILD_ARCH)
DEB_HOST_GNU_CPU := $(DEB_BUILD_GNU_CPU)
DEB_HOST_GNU_SYSTEM := $(DEB_BUILD_GNU_SYSTEM)
DEB_HOST_GNU_TYPE := $(DEB_BUILD_GNU_TYPE)
Vous pouvez placer certaines de ces lignes au dbut de votre
debian/rules. Ces valeurs par dfaut seront crases si dpkg-architecture
est utilis.
Vous n'avez pas besoin de toutes ces lignes. Choisissez uniquement les
variables que vous utilisez dans votre fichier rules . Par exemple, si
vous n'avez besoin que de l'architecture hte Debian,
`DEB_HOST_ARCH=`dpkg --print-architecture`' est suffisant (il s'agit
bien sr de l'architecture Debian de la machine de construction, mais le
but est ici de rester compatible avec les anciennes compilations
natives).
Les options -e et -i n'ont t ajoutes que relativement rcemment
dpkg-architecture (depuis la version 1.13.13 de dpkg).
EXEMPLES
dpkg-buildpackage accepte l'option -a, et la passe dpkg-architecture.
Voici d'autres exemples :
CC=i386-gnu-gcc dpkg-architecture -c debian/rules build
eval `dpkg-architecture -u`
Vrifie si une architecture est identique l'architecture actuelle ou
celle spcifie :
dpkg-architecture -elinux-alpha
dpkg-architecture -amips -elinux-mips
Vrifie si l'architecture actuelle ou celle spcifie avec -a correspond
un systme Linux :
dpkg-architecture -ilinux-any
dpkg-architecture -ai386 -ilinux-any
FICHIERS
Tous ces fichiers sont ncessaires afin que dpkg-architecture puisse
fonctionner. Leurs emplacements peuvent tre modifis lors du traitement
via la variable d'environnement DPKG_DATADIR.
/usr/share/dpkg/cputable
Table des noms de processeurs connus et liaison avec leur nom
GNU.
/usr/share/dpkg/ostable
Table des noms des systmes d'exploitation connus et liaison avec
leurs noms GNU.
/usr/share/dpkg/triplettable
Correspondances entre les triplets de l'architecture Debian et
les noms des architectures Debian.
VOIR AUSSI
dpkg-buildpackage(1), dpkg-cross(1).
AUTEUR
dpkg-architecture et cette page de manuel ont t initialement crits par
Marcus Brinkmann <brinkmd@debian.org>.
TRADUCTION
Ariel VARDI <ariel.vardi@freesbee.fr>, 2002. Philippe Batailler, 2006.
Nicolas Franois, 2006. Veuillez signaler toute erreur
<debian-l10n-french@lists.debian.org>.