diff options
Diffstat (limited to '')
-rw-r--r-- | man/fr/dpkg-buildflags.pod | 807 |
1 files changed, 807 insertions, 0 deletions
diff --git a/man/fr/dpkg-buildflags.pod b/man/fr/dpkg-buildflags.pod new file mode 100644 index 0000000..09eb8a6 --- /dev/null +++ b/man/fr/dpkg-buildflags.pod @@ -0,0 +1,807 @@ + + ***************************************************** + * GENERATED FILE, DO NOT EDIT * + * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION * + ***************************************************** + +This file was generated by po4a(7). Do not store it (in VCS, for example), +but store the PO file used as source file by po4a-translate. + +In fact, consider this as a binary, and the PO file as a regular .c file: +If the PO get lost, keeping this translation up-to-date will be harder. + +=encoding UTF-8 + +=head1 NOM + +dpkg-buildflags - Renvoie les options de compilation à utiliser pour la +construction du paquet + +=head1 SYNOPSIS + +B<dpkg-buildflags> [I<option>...] [I<commande>] + +=head1 DESCRIPTION + +B<dpkg-buildflags> est un script qui permet de récupérer les options de +compilation à utiliser pour la construction d'un paquet. + +Les drapeaux par défaut sont définis par le distributeur mais peuvent être +étendus ou remplacés de plusieurs S<façons :> + +=over + +=item 1. + +pour tout le système avec S<B<%PKGCONFDIR%/buildflags.conf> ;> + +=item 2. + +pour l'utilisateur courant avec B<$XDG_CONFIG_HOME/dpkg/buildflags.conf> où +la valeur par défaut de B<$XDG_CONFIG_HOME> est S<B<$HOME/.config> ;> + +=item 3. + +temporairement par l'utilisateur avec des variables d'environnement (voir +B<VARIABLES S<D'ENVIRONNEMENT>) ;> + +=item 4. + +dynamiquement par le responsable du paquet avec des variables +d'environnement à l'aide de B<debian/rules> (voir B<VARIABLES +D'ENVIRONNEMENT>). + +=back + +Les fichiers de configuration peuvent contenir quatre types de S<directives :> + +=over + +=item B<SET> I<drapeau valeur> + +Remplace le drapeau I<drapeau> par la valeur I<valeur>. + +=item B<STRIP> I<drapeau valeur> + +Retire du drapeau I<drapeau> tous les drapeaux de construction listés dans +I<valeur>. + +=item B<APPEND> I<drapeau valeur> + +Étend le drapeau I<drapeau> avec les options indiquées dans I<valeur>. Une +espace est ajoutée au début de ce qui est ajouté si la valeur actuelle du +drapeau n'est pas vide. + +=item B<PREPEND> I<drapeau valeur> + +Préfixe le drapeau I<drapeau> avec les options indiquées dans I<valeur>. Une +espace est ajoutée au début de ce qui est ajouté si la valeur actuelle du +drapeau n'est pas vide. + +=back + +Les fichiers de configuration peuvent contenir des commentaires sur les +lignes commençant par un dièse (#). Les lignes vides sont également +ignorées. + +=head1 COMMANDES + +=over + +=item B<--dump> + +Affiche sur la sortie standard tous les drapeaux de compilation et leurs +valeurs. Un drapeau par ligne est affiché, suivi de sa valeur, séparée par +le caractère S<« égal »> S<(« I<drapeau>=I<valeur> »).> Il s'agit de l'action par +défaut. + +=item B<--list> + +Affiche la liste des drapeaux gérés par le distributeur actuel (un par +ligne). Voir la section B<DRAPEAUX GÉRÉS> pour plus d'informations sur +chacun d'eux. + +=item B<--status> + +Affiche toute information utile pour expliquer le comportement de +B<dpkg-buildflags> (depuis S<dpkg 1.16.5) :> variables d'environnement, +distributeur actuel, état de tous les drapeaux de fonctionnalités. Affiche +également les drapeaux de compilation résultants ainsi que leur origine. + +Cette option est destinée à être utilisée depuis B<debian/rules>, afin de +garder dans le journal de construction une trace claire des drapeaux de +compilation utilisés. Cela peut être utile pour diagnostiquer des problèmes +qui y seraient liés. + +=item B<--export=>I<format> + +Affiche sur la sortie standard les commandes qui permettent d'exporter tous +les drapeaux de compilation pour un outil particulier. Si I<format> n'est +pas spécifié, sa valeur est B<sh>. Seuls les drapeaux de compilation +commençant par une majuscule sont inclus, les autres étant supposés +inadaptés à l'environnement. Formats pris en S<charge :> + +=over + +=item B<sh> + +Commandes shell pour définir et exporter tous les drapeaux de compilation +dans l'environnement. Les valeurs drapeau sont protégées et ainsi la sortie +est prête à être évaluée par un shell. + +=item B<cmdline> + +Arguments à passer à la ligne de commande d'un programme de construction +pour utiliser tous les drapeaux de compilation (depuis S<dpkg 1.17.0).> Les +valeurs drapeau sont protégées dans la syntaxe du shell. + +=item B<configure> + +C'est un ancien alias pour B<cmdline>. + +=item B<make> + +Directives de make pour définir et exporter tous les drapeaux de compilation +dans l'environnement. La sortie peut être écrite dans un fragment de +Makefile et évaluée en utilisant une directive B<include>. + +=back + +=item B<--get> I<drapeau> + +Affiche la valeur de ce drapeau sur la sortie standard. Retourne un code de +sortie B<0> si le drapeau est connu et B<1> s'il est inconnu. + +=item B<--origin> I<drapeau> + +Affiche l'origine de la valeur renvoyée par B<--get>. Retourne un code de +sortie B<0> si le drapeau est connu et B<1> s'il est inconnu. L'origine est +une des valeurs S<suivantes :> + +=over + +=item B<vendor> + +le drapeau défini à l'origine par le distributeur est S<renvoyé ;> + +=item B<system> + +le drapeau est placé ou modifié par un réglage S<système ;> + +=item B<user> + +le drapeau est placé ou modifié par une configuration spécifique à +S<l'utilisateur ;> + +=item B<env> + +le drapeau est placé ou modifié par une configuration spécifique dans +l'environnement. + +=back + +=item B<--query> + +Affiche toute information utile pour expliquer le comportement du +S<programme :> distributeur actuel, variables d'environnement, domaines des +fonctionnalités, état de tous les drapeaux de fonctionnalités. Affiche +également les drapeaux de compilation résultants ainsi que leur origine +(depuis S<dpkg 1.19.0).> + +Par S<exemple :> + + Vendor: Debian + Environment: + DEB_CFLAGS_SET=-O0 -Wall + + Area: qa + Features: + bug=no + canary=no + + Area: reproducible + Features: + timeless=no + + Flag: CFLAGS + Value: -O0 -Wall + Origin: env + + Flag: CPPFLAGS + Value: -D_FORTIFY_SOURCE=2 + Origin: vendor + +=item B<--query-features> I<domaine> + +Affiche les fonctionnalités activées pour un domaine donné (depuis +S<dpkg 1.16.2).> Les seuls domaines reconnus actuellement sur Debian et ses +dérivés sont B<future>, B<qa>, B<reproducible>, B<sanitize> et B<hardening>, +voir la section B<ZONES D'OPTION> pour plus de détails. Retourne un code de +sortie B<0> si le domaine est connu et B<1> s'il est inconnu. + +L'affichage est dans le format RFC822, avec une section par +fonctionnalité. Par S<exemple :> + + Feature: pie + Enabled: yes + + Feature: stackprotector + Enabled: yes + +=item B<--help> + +Affiche un message d'aide puis quitte. + +=item B<--version> + +Affiche le numéro de version puis quitte. + +=back + +=head1 DRAPEAUX GÉRÉS + +=over + +=item B<CFLAGS> + +Options du S<compilateur C.> La valeur par défaut définie par le distributeur +comporte B<-g> et le niveau d'optimisation par défaut (B<-O2> en général, ou +B<-O0> si la variable d'environnement B<DEB_BUILD_OPTIONS> contient +I<noopt>). + +=item B<CPPFLAGS> + +Options du S<préprocesseur C.> Valeur par S<défaut : aucune.> + +=item B<CXXFLAGS> + +Options du S<compilateur C++.> Analogue à B<CFLAGS>. + +=item B<OBJCFLAGS> + +Options du compilateur S<Objective C.> Analogue à B<CFLAGS>. + +=item B<OBJCXXFLAGS> + +Options du compilateur S<Objective C++.> Analogue à B<CXXFLAGS>. + +=item B<GCJFLAGS> + +Options du compilateur Java GNU (gcj). Un sous-ensemble de B<CFLAGS>. + +=item B<DFLAGS> + +Options for the D compiler (ldc or gdc). Since dpkg 1.20.6. + +=item B<FFLAGS> + +Options du compilateur S<Fortran 77.> Un sous-ensemble de B<CFLAGS>. + +=item B<FCFLAGS> + +Options du compilateur S<Fortran 9x.> Analogue à B<FFLAGS>. + +=item B<LDFLAGS> + +Options passées au compilateur lors du processus de liaison des exécutables +ou des objets partagés (si le linker est appelé directement, alors B<-Wl> et +B<,> doivent être retirés de ces options). Valeur par S<défaut : aucune.> + +=back + +De nouveaux drapeaux pourront être ajoutés si besoin est (par exemple pour +la prise en charge de nouveaux langages). + +=head1 ZONES D'OPTION + +Chaque option de zone peut être activée ou désactivée avec les valeurs +B<DEB_BUILD_OPTIONS> et B<DEB_BUIL_MAINT_OPTIONS> de l'espace de variables +d'environnement grâce aux modificateurs S<« B<+> »> et S<« B<-> ».> Par exemple, +pour activer l'option B<hardening> S<« pie »> et désactiver l'option +S<« fortify »,> il est possible d'indiquer cela dans S<B<debian/rules> :> + + export DEB_BUILD_MAINT_OPTIONS=hardening=+pie,-fortify + +L'option spéciale B<all> (valable dans toutes les zones) peut être utilisée +pour activer ou désactiver toutes les options de la zone à la fois. Ainsi, +tout désactiver dans la zone B<hardening> en n'activant que S<« format »> et +S<« fortify »> peut être réalisé S<avec :> + + export DEB_BUILD_MAINT_OPTIONS=hardening=-all,+format,+fortify + +=head2 future + +Plusieurs options de compilation (détaillées ci-dessous) peuvent être +utilisées pour activer des fonctionnalités qui devraient être activées par +défaut, mais ne peuvent pas l'être pour des raisons de compatibilité avec +les versions précédentes. + +=over + +=item B<lfs> + +Ce paramètre (désactivé par défaut) active la prise en charge des gros +fichiers (LFS) sur les architectures S<32 bits> où l'ABI n'inclut pas LFS par +défaut, en ajoutant B<-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64> à +B<CPPFLAGS>. + +=back + +=head2 qa + +Plusieurs options de compilation (détaillées ci-dessous) peuvent être +utilisées pour détecter des problèmes dans le code source ou dans le système +de construction. + +=over + +=item B<bug> + +Ce paramètre (désactivé par défaut) ajoute toutes les options +d'avertissement détectant de façon fiable du code source problématique. Les +avertissements sont fatals. Les seuls drapeaux actuellement gérés sont +B<CFLAGS> et B<CXXFLAGS> avec des drapeaux définis à +B<-Werror=array-bounds>, B<-Werror=clobbered>, +B<-Werror=implicit-function-declaration> et +B<-Werror=volatile-register-var>. + +=item B<canary> + +Ce paramètre (désactivé par défaut) ajoute des options détectrices +S<« canary »> factices aux drapeaux de construction de telle sorte que les +rapports de compilation permettront de vérifier la façon dont ces drapeaux +se propagent et de repérer toute omission des paramètres de drapeaux +habituels. Les drapeaux actuellement pris en charge sont B<CPPFLAGS>, +B<CFLAGS>, B<OBJCFLAGS>, B<CXXFLAGS> ainsi que B<OBJCXXFLAGS>, avec les +drapeaux définis à B<-D__DEB_CANARY_>I<flag>_I<random-id>B<__>, et +B<LDFLAGS> paramétré à B<-Wl,-z,deb-canary->I<random-id>. + +=back + +=head2 sanitize + +Plusieurs options de compilation (détaillées ci-dessous) peuvent être +utilisées pour aider à nettoyer le binaire compilé face aux corruptions de +la mémoire, aux fuites de mémoire, à l'utilisation de mémoire après +libération et à des bogues au comportement indéfini. S<B<Note> :> ces options +ne devraient pas être utilisées pour des constructions en production car +elles peuvent réduire la fiabilité du code, réduire la sécurité ou même les +fonctionnalités. + +=over + +=item B<address> + +Ce paramètre (désactivé par défaut) ajoute B<-fsanitize=address> à +B<LDFLAGS> et B<-fsanitize=address -fno-omit-frame-pointer> à B<CFLAGS> et +B<CXXFLAGS>. + +=item B<thread> + +Ce paramètre (désactivé par défaut) ajoute B<-fsanitize=thread> à B<CFLAGS>, +B<CXXFLAGS> et B<LDFLAGS>. + +=item B<leak> + +Ce paramètre (désactivé par défaut) ajoute B<-fsanitize=leak> à +B<LDFLAGS>. Il est automatiquement désactivé si les fonctions B<address> ou +B<thread> sont activées, parce qu'elles l'impliquent. + +=item B<undefined> + +Ce paramètre (désactivé par défaut) ajoute B<-fsanitize=undefined> à +B<CFLAGS>, B<CXXFLAGS> et B<LDFLAGS>. + +=back + +=head2 compilation renforcée + +Plusieurs options de compilation (détaillées ci-dessous) peuvent être +utilisées pour accroître la résistance du binaire compilé face aux attaques +par corruption de la mémoire ou fournir des messages d'avertissement +supplémentaires lors de la compilation. Sauf mention contraire (voir +ci-dessous), ces options sont activées par défaut pour les architectures qui +les gèrent. + +=over + +=item B<format> + +Ce réglage, activé par défaut, ajoute B<-Wformat -Werror=format-security> à +B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS> et B<OBJCXXFLAGS>. Cela provoquera +l'avertissement en cas d'utilisation de chaînes de formatage incorrectes et +échouera si les fonctions de formatage sont utilisées d'une façon qui +présente des risques pour la sécurité. Actuellement, ce réglage crée des +avertissements pour les appels des fonctions B<printf> et B<scanf> lorsque +la chaîne de formatage n'est pas une chaîne littérale et qu'aucun paramètre +de formatage n'est utilisé (par exemple dans B<printf(foo);> au lieu de +B<printf("%s", foo);>. Ce type de syntaxe peut créer un problème de sécurité +si la chaîne de formatage vient d'une source non sûre et contient S<« %n ».> + +=item B<fortify> + +Ce réglage, activé par défaut, ajoute B<-D_FORTIFY_SOURCE=2> à +B<CPPFLAGS>. Lors de la création du code, le compilateur connaît un nombre +important d'informations relatives aux tailles de tampons (quand c'est +possible) et tente alors de remplacer des appels de fonctions avec une +taille illimitée de tampons, peu sûrs, par des appels avec des tampons de +taille limitée. Cette fonctionnalité est particulièrement utile pour du code +ancien et mal écrit. De plus, les chaînes de formatage dans la mémoire +accessible en écriture qui contiennent S<« %n »> sont bloquées. Si une +application dépend de telles chaînes de formatage, un contournement devra +être mis en place. + +Veuillez noter que pour que cette option fasse effet, le source devra aussi +être compilée avec B<-O1> ou plus. Si la variable d'environnement +B<DEB_BUILD_OPTIONS> contient I<noopt>, la prise en charge de B<fortify> +sera désactivée du fait des nouveaux avertissements émis par la glibc +S<version 2.16> et ultérieure. + +=item B<stackprotector> + +Ce réglage (activé par défaut si stackprotectorstrong n'est pas employé), +ajoute B<-fstack-protector --param=ssp-buffer-size=4> à B<CFLAGS>, +B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> et +B<FCFLAGS>. Il ajoute des contrôles liés aux réécritures de piles. Cela +conduit des tentatives d'attaques par injection de code à terminer en +échec. Dans le meilleur des cas, cette protection transforme une +vulnérabilité d'injection de code en déni de service ou en non-problème +(selon les applications). + +Cette fonctionnalité impose de lier le code à la glibc (ou toute autre +bibliothèque fournissant B<__stack_chk_fail>) et doit donc être désactivée +lorsque le code est construit avec B<-nostdlib>, B<-ffreestanding> ou +équivalents. + +=item B<stackprotectorstrong> + +Ce réglage, activé par défaut, ajoute B<-fstack-protector-strong> à +B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> +et B<FCFLAGS>. Il s'agit d'une version renforcée de B<stackprotector> qui +n'affecte pas les performances de manière importante. + +Désactiver B<stackprotector> désactive également ce paramètre. + +Cette fonctionnalité a les même exigences que B<stackprotector>, en plus de +nécessiter S<gcc 4.9> ou plus récent. + +=item B<relro> + +Ce réglage, activé par défaut, ajoute B<-Wl,-z,relro> à B<LDFLAGS>. Lors du +chargement du programme, plusieurs parties de la mémoire ELF doivent être +écrites par l'éditeur de liens. Ce réglage indique au chargeur de mettre ces +sections en lecture seule avant de rendre le contrôle au +programme. L'utilisation habituelle de ce réglage est la protection contre +les attaques par réécriture GOT. Si cette option est désactivée, l'option +B<bindnow> sera également désactivée. + +=item B<bindnow> + +Ce réglage, désactivé par défaut, ajoute B<-Wl,-z,now> à B<LDFLAGS>. Lors du +chargement du programme, tous les symboles dynamiques sont résolus, ce qui +permet au PLT (Procedure Linkage Table) entier d'être en lecture seule (du +fait du réglage B<relro> ci-dessus). Cette option ne peut être activée si +B<relro> ne l'est pas. + +=item B<pie> + +Ce réglage (sans option globale par défaut depuis S<dpkg 1.18.23,> parce qu'il +est maintenant activé par défaut par gcc dans les architectures Debian +amd64, arm64, armel, armhf, hurd-i386, i386, kfreebsd-amd64, kfreebsd-i386, +mips, mipsel, mips64el, powerpc, ppc64, ppc64el, riscv64, s390x, sparc et +sparc64) ajoute les options requises pour activer ou désactiver PIE +(exécutable indépendant de l'emplacement) au moyen des fichiers de +spécifications de gcc, si nécessaire, selon que gcc injecte sur cette +architecture les drapeaux par lui-même ou non. Si le réglage est activé et +que gcc injecte les drapeaux, il n'ajoute rien. Si le réglage est activé et +que gcc n'injecte pas les drapeaux, il ajoute B<-fPIE> (au moyen de +I<%PKGDATADIR%/pie-compiler.specs>) à B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, +B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> et B<FCFLAGS>, et B<-fPIE -pie> (au +moyen de I<%PKGDATADIR%/pie-link.specs>) à B<LDFLAGS>. Si le réglage est +désactivé et que gcc injecte les drapeaux, il ajoute B<-fno-PIE> (au moyen +de I<%PKGDATADIR%/no-pie-compile.specs>) à B<CFLAGS>, B<CXXFLAGS>, +B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> et B<FCFLAGS>, et +B<-fno-PIE -no-pie> (au moyen de I<%PKGDATADIR%/no-pie-link.specs>) à +B<LDFLAGS>. + +Les exécutables à position indépendante S<(« Position> Independent +S<Executable »)> permettent d'utiliser la randomisation de l'organisation de +l'espace d'adressage S<(ASLR : « Address> Space Layout S<Randomization »),> qui +est gérée par certaines versions du noyau. Bien que ASLR puisse déjà être +mise en œuvre pour les zones de données dans la pile et le tampon (brk et +mmap), les zones de codes doivent être compilées comme indépendantes de la +position. Les bibliothèques partagées font déjà cela (B<-fPIC>) ce qui +permet automatiquement d'utiliser ASLR. Par contre les régions .text +binaires doivent être construites en mode PIE pour mettre en œuvre ASLR. Une +fois cela réalisé, les attaques ROP S<(« Return> Oriented S<Programming »)> +deviennent plus difficiles car il n'existe pas d'emplacement statique d'où +rebondir pendant une attaque par corruption de la mémoire. + +PIE n'est pas compatible avec B<fPIC>, aussi, en général, des précautions +doivent être prises lors de la construction d'objets partagés. Mais comme +les drapeaux PIE émis sont injectés par des fichiers de spécifications de +gcc, il devrait toujours être sûr de les définir sans condition +indépendamment du type d'objet en train d'être compilé ou lié. + +Les bibliothèques statiques peuvent être utilisées par des programmes ou +d'autres bibliothèques partagées. Selon les drapeaux utilisés pour compiler +tous les objets d'une bibliothèque statique, ces bibliothèques seront +utilisables par divers ensembles S<d'objets :> + +=over + +=item B<none> + +Ne peut être lié ni à un programme PIE, ni à une bibliothèque partagée. + +=item B<-fPIE> + +Peut être lié à tout programme, mais pas à une bibliothèque partagée +(recommandé). + +=item B<-fPIC> + +Peut être lié à tout programme et toute bibliothèque partagée. + +=back + +S'il est nécessaire de régler ces drapeaux manuellement, en contournant +l'injonction des spécifications de gcc, il y a plusieurs choses à prendre en +compte. Le passage sans condition et de façon explicite de B<-fPIE>, +B<-fpie> ou B<-pie> à un système de construction en utilisant libtool est +sûr dans la mesure où ces drapeaux seront retirés lors de la construction de +bibliothèques partagées. Sinon, sur les projets qui construisent à la fois +des programmes et des bibliothèques partagées, il faudrait s'assurer que, +lors de la construction des bibliothèques partagées, B<-fPIC> soit toujours +passé en dernier aux drapeaux de compilation tels que B<CFLAGS> (de sorte +qu'il remplace tout B<-PIE> antérieur), et que B<-shared> soit passé en +dernier aux drapeaux de création de lien tels que B<LDFLAGS> (de sorte qu'il +remplace tout B<-pie> antérieur). S<B<Note> :> Cela ne devrait pas être +nécessaire avec les mécanismes de spécification de gcc par défaut. + +De plus, comme la protection PIE est mise en œuvre à l'aide d'un registre +global, certaines architectures privées de registre (mais plus i386 depuis +les optimisations mises en œuvre dans S<gcc E<gt>= 5)> peuvent souffrir de +pertes de performances allant jusqu'à S<15 %> sur des charges d'applications +utilisant largement les segments de S<texte ;> le plus souvent, cette perte de +performances n’excédera S<pas 1 %.> Pour des architectures offrant plus de +registres globaux (par exemple amd64), cette pénalisation n'existe +pratiquement pas. + +=back + +=head2 reproductible + +Les options de compilation (détaillées ci-dessous) peuvent aider à améliorer +la reproductibilité de la construction ou fournir des messages +d'avertissement supplémentaires lors de la compilation. Sauf mention +contraire (voir ci-dessous), ces options sont activées par défaut pour les +architectures qui les gèrent. + +=over + +=item B<timeless> + +Ce paramètre, activé par défaut, ajoute B<-Wdate-time> à B<CPPFLAGS>. Cela +provoquera des avertissements quand les macros B<__TIME__>, B<__DATE__> et +B<__TIMESTAMP__> sont utilisées. + +=item B<fixfilepath> + +This setting (enabled by default) adds +B<-ffile-prefix-map=>I<BUILDPATH>B<=.> to B<CFLAGS>, B<CXXFLAGS>, +B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> and B<FCFLAGS> where +B<BUILDPATH> is set to the top-level directory of the package being built. +This has the effect of removing the build path from any generated file. + +Si à la fois B<fixdebugpath> et B<fixfilepath> sont définis, cette option a +la priorité parce c'est un sur-ensemble du premier. + +=item B<fixdebugpath> + +Ce réglage, activé par défaut, ajoute +B<-fdebug-prefix-map=>I<BUILDPATH>B<=.> à B<CFLAGS>, B<CXXFLAGS>, +B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> et B<FCFLAGS> où +B<BUILDPATH> est fixé sur le répertoire de plus haut niveau du paquet en +construction. Cela a pour effet de retirer le chemin de construction de tous +les symboles de débogage générés. + +=back + +=head1 ENVIRONNEMENT + +Deux jeux de variables d'environnement effectuent les mêmes opérations. Le +premier (DEB_I<drapeau>_I<opération>) ne devrait jamais être utilisé depuis +B<debian/rules>. Il est destiné aux utilisateurs souhaitant recompiler le +paquet source avec des drapeaux de compilation modifiés. Le second +(DEB_I<drapeau>_MAINT_I<opération>) ne doit être utilisé que dans +B<debian/rules> par les responsables de paquets pour modifier les drapeaux +de compilation concernés. + +=over + +=item B<DEB_>I<drapeau>B<_SET> + +=item B<DEB_>I<drapeau>B<_MAINT_SET> + +Cette variable permet de forcer la valeur renvoyée pour le I<drapeau> +indiqué. + +=item B<DEB_>I<drapeau>B<_STRIP> + +=item B<DEB_>I<drapeau>B<_MAINT_STRIP> + +Cette variable peut être utilisée pour fournir une liste d'options (séparées +par des espaces) qui seront retirées du jeu de drapeaux renvoyé pour le +I<drapeau> indiqué. + +=item B<DEB_>I<drapeau>B<_APPEND> + +=item B<DEB_>I<drapeau>B<_MAINT_APPEND> + +Cette variable permet d'ajouter des options à la valeur renvoyée pour le +I<drapeau> indiqué. + +=item B<DEB_>I<drapeau>B<_PREPEND> + +=item B<DEB_>I<drapeau>B<_MAINT_PREPEND> + +Cette variable permet de préfixer la valeur renvoyée pour le I<drapeau> +indiqué par des options supplémentaires. + +=item B<DEB_BUILD_OPTIONS> + +=item B<DEB_BUILD_MAINT_OPTIONS> + +Ces variables peuvent être utilisées par un utilisateur ou un responsable de +paquet pour activer ou désactiver différentes options de zone qui affectent +les drapeaux de construction. La variable B<DEB_BUILD_MAINT_OPTIONS> +outrepasse tous les paramètres de la zone d'options +B<DEB_BUILD_OPTIONS>. Voir la section B<ZONES D'OPTION> pour plus de +détails. + +=item B<DEB_VENDOR> + +Ce réglage définit l'éditeur S<(« vendor »)> actuel. Si cette valeur est vide, +le contenu du fichier B<%PKGCONFDIR%/origins/default> est utilisé. + +=item B<DEB_BUILD_PATH> + +Cette variable configure le chemin de construction (depuis S<dpkg 1.18.8)> à +utiliser avec des fonctions telles que B<fixdebugpath> de telle sorte +qu'elles soient contrôlées par l'appelant. Cette variable est actuellement +spécifique à Debian et à ses dérivés. + +=item B<DPKG_COLORS> + +Définit le mode de couleur (depuis S<dpkg 1.18.5).> Les valeurs actuellement +acceptées sont B<auto> (par défaut), B<always> et B<never>. + +=item B<DPKG_NLS> + +Si cette variable est définie, elle sera utilisée pour décider l'activation +de la prise en charge des langues (NLS S<– Native> Language Support), connu +aussi comme la gestion de l'internationalisation (ou i18n) (depuis +S<dpkg 1.19.0).> Les valeurs permises S<sont :> B<0> et B<1> (par défaut). + +=back + +=head1 FICHIERS + +=head2 Fichiers de configuration. + +=over + +=item B<%PKGCONFDIR%/buildflags.conf> + +Fichier de configuration pour l'ensemble du système. + +=item B<$XDG_CONFIG_HOME/dpkg/buildflags.conf> or + +=item B<$HOME/.config/dpkg/buildflags.conf> + +Fichier de configuration propre à l'utilisateur + +=back + +=head2 Gestion de l'empaquetage + +=over + +=item B<%PKGDATADIR%/buildflags.mk> + +Fragment de fichier Makefile qui chargera (et facultativement exportera) +dans les variables (depuis S<dpkg 1.16.1)> tous les drapeaux pris en charge par +B<dpkg-buildflags>. + +=back + +=head1 EXEMPLES + +Pour passer des drapeaux de compilation à une commande de compilation dans +un S<Makefile :> + +=over + + $(MAKE) $(shell dpkg-buildflags --export=cmdline) + + ./configure $(shell dpkg-buildflags --export=cmdline) + +=back + +Pour définir les drapeaux de compilation dans un script shell ou un fragment +de shell, on peut utiliser B<eval> pour interpréter la sortie et exporter +les drapeaux dans S<l'environnement :> + +=over + + eval "$(dpkg-buildflags --export=sh)" && make + +=back + +ou définir les paramètres de position à passer à la S<commande :> + +=over + + eval "set -- $(dpkg-buildflags --export=cmdline)" + for dir in a b c; do (cd $dir && ./configure "$@" && make); done + +=back + +=head2 Utilisation dans debian/rules + +Il faut appeler B<dpkg-buildflags> ou inclure B<buildflags.mk> à partir du +fichier B<debian/rules> pour obtenir les drapeaux de compilation nécessaires +à passer au système de construction. Veuillez noter que les anciennes +versions de B<dpkg-buildpackage> (antérieures à S<dpkg 1.16.1)> exportaient ces +drapeaux automatiquement. Néanmoins, il est déconseillé de dépendre de ce +comportement parce qu'il casse l'appel manuel de B<debian/rules>. + +Pour les paquets avec des systèmes de construction du style autoconf, il est +possible de passer les options appropriées à configure ou B<make>(1) +directement, comme vu ci-dessus. + +Pour d'autres systèmes de construction ou si on souhaite un contrôle +extrêmement précis sur le choix et la position où sont passés les drapeaux, +B<--get> peut être utilisé. Autrement, il est possible d'inclure +B<buildflags.mk> qui s'occupe de l'appel de B<dpkg-buildflags> et du +placement des drapeaux de compilation dans les variables de make. + +Si vous voulez exporter tous les drapeaux de compilation dans +l'environnement (où le système de construction peut les S<récupérer) :> + +=over + + DPKG_EXPORT_BUILDFLAGS = 1 + include %PKGDATADIR%/buildflags.mk + +=back + +Pour un contrôle supplémentaire sur ce qui est exporté, vous pouvez exporter +manuellement les variables (puisque aucune n'est exportée par S<défaut) :> + +=over + + include %PKGDATADIR%/buildflags.mk + export CPPFLAGS CFLAGS LDFLAGS + +=back + +Et enfin, vous pouvez bien sûr passer manuellement les drapeaux aux +S<commandes :> + +=over + + include %PKGDATADIR%/buildflags.mk + build-arch: + $(CC) -o hello hello.c $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) + +=back + + +=head1 TRADUCTION + +Ariel VARDI <ariel.vardi@freesbee.fr>, 2002. +Philippe Batailler, 2006. +Nicolas François, 2006. +Veuillez signaler toute erreur à <debian-l10n-french@lists.debian.org>. |