SYNOPSIS
cowpoke [options] paquet.dsc
DESCRIPTION
Envoyer un paquet source Debian à un hôte cowbuilder et construire le paquet. Le paquet résultant peut également être signé et envoyé dans une file d'attente.
OPTIONS
Les options suivantes sont disponibles :
- --arch=architecture
-
Indiquer la ou les architectures Debian pour lesquelles le paquet doit être
construit. Une liste d'architectures séparées par des espaces peut être
utilisée pour construire le paquet pour toutes ces architectures en une
seule passe. Les noms d'architecture supportés sont ceux renvoyés par
dpkg-architecture(1) pour DEB_BUILD_ARCH.
- --dist=distribution
-
Indiquer la ou les distributions Debian pour lesquelles le paquet doit être
construit. Une liste de distributions séparées par des espaces peut être
utilisée pour construire le paquet pour toutes ces distributions en une
seule passe. Des noms de code (comme sid ou squeeze) ou des noms de
distribution (comme unstable ou experimental) peuvent être utilisés,
mais vous devriez toujours utiliser un type de noms ou l'autre parce que
c'est ce nom qui est utilisé pour les chemins de fichier et pour trouver les
anciens paquets utilisés pour les rapports de comparaison.
Utiliser des noms définis localement est maintenant aussi possible avec cette option, quand elle est utilisée conjointement à l’option BASE_DIST dans un fichier de configuration. Cela permet la maintenance et l’utilisation de chroots de construction configurés spécialement, afin par exemple de fournir les dépendances de paquet des archives de rétroportages ou d’un dépôt local, ou de définir des options de configuration non habituelles, sans polluer les chroots propres utilisés pour les constructions de paquet à destination des dépôts principaux. Consultez la description de BASE_DIST ci-dessous.
- --buildd=hôte
-
Indiquer l'hôte distant sur lequel se fera la construction.
- --buildd-user=nom
-
Indiquer l'utilisateur distant à utiliser pour la construction.
- --create
-
Créer la racine cowbuilder distante si elle n'existe pas encore. Si cette
option n'est pas fournie, une distribution ou architecture (indiquées par
--dist ou --arch) qui n'aurait pas de racine cowbuilder sera
considérée comme une erreur.
L’utilisateur indiqué par --buildd-user doit avoir le droit de créer RESULT_DIR sur l’hôte de construction, sinon un administrateur avec les droits nécessaires doit d’abord le créer et donner à cet utilisateur (ou à un groupe dont il fait partie) accès en écriture à ce répertoire, afin que cette option réussisse.
- --return=[chemin]
-
Copier les fichiers résultant de la construction vers chemin. Si aucun
chemin n'est indiqué, ils sont alors renvoyés vers le répertoire
actuel. Le chemin donné doit exister, il ne sera pas créé.
- --no-return
-
Ne pas copier le résultat de la construction vers RETURN_DIR (écrase le
chemin configuré dans les fichiers de configuration).
- --dpkg-opts='opt1 opt2 ...'
-
Indiquer des options supplémentaires à fournir à
dpkg-buildpackage(1). les différentes options sont séparées par des
espaces. Cela remplacera toute option fournie par la variable
DEBBUILDOPTS du fichier pbuilderrc de la machine de construction.
- --create-opts='option de cowbuilder'
-
Indiquer des arguments supplémentaires à passer directement à cowbuilder
quand un chroot est créé (en utilisant l’option --create précédente). Si
plusieurs arguments doivent être passés, cette option devrait être indiquée
séparément pour chacun.
Par exemple, --create-opts "--othermirror" --create-opts "deb http:// ..."
Cette option remplacera toutes les CREATE_OPTS indiquées pour un chroot dans les fichiers de configuration de cowpoke.
- --update-opts='option de cowbuilder'
-
Indiquer des arguments supplémentaires à passer directement à cowbuilder
si la base du chroot est mise à jour. Si plusieurs arguments doivent être
passés, cette option devrait être indiquée séparément pour chacun.
Cette option remplacera toutes les UPDATE_OPTS indiquées pour un chroot dans les fichiers de configuration de cowpoke.
- --build-opts='option de cowbuilder'
-
Indiquer des arguments supplémentaires à passer directement à cowbuilder
quand un paquet est construit. Si plusieurs arguments doivent être passés,
cette option devrait être indiquée séparément pour chacun.
Cette option remplacera toutes les BUILD_OPTS indiquées pour un chroot dans les fichiers de configuration de cowpoke.
- --sign=identifiant_clef
-
Indiquer la clef à utiliser pour signer les paquets. Cela remplacera toutes
les SIGN_KEYID indiquées pour un chroot dans les fichiers de
configuration de cowpoke.
- --upload=file
-
Indiquer la file dput à utiliser pour envoyer les paquets signés. Cela
remplacera toutes les UPLOAD_QUEUE indiquées pour un chroot dans les
fichiers de configuration de cowpoke.
- --help
-
Afficher un bref résumé des options disponibles et de la configuration en
cours.
- --version
-
Afficher les informations sur la version.
OPTIONS DE CONFIGURATION
Quand cowpoke est exécuté, les options de configuration suivantes sont lues dans le fichier de configuration global, celui de l'utilisateur et du projet, s'ils sont présents. Les chemins peuvent être indiqués de façon absolue ou relative (les chemins étant alors relatifs au répertoire personnel de l'utilisateur BUILDD_USER). Les chemins étant généralement fournis entre guillemets, l'expansion des tildes ne sera pas réalisée.
Valeurs globales par défaut
Elles s'appliquent à chaque architecture et distribution lors d'un appel à cowpoke.
- BUILDD_HOST
- L'adresse réseau ou le nom complètement qualifié (FQDN) de la machine de construction où cowbuilder est configuré. Elle peut être modifiée avec l'option en ligne de commande --buildd.
- BUILDD_USER
- Le nom de l'utilisateur, non privilégié, sur la machine de construction. Le nom par défaut est le nom de l'utilisateur local qui exécute cowpoke (ou le nom d'utilisateur précisé dans la configuration SSH pour BUILDD_HOST), et le nom fournit par la variable d'environnement peut être remplacé avec l'option --buildd-user en ligne de commande.
- BUILDD_ARCH
- La ou les architectures Debian pour lesquelles il faut construire les paquets. Cela doit correspondre à la valeur de DEB_BUILD_ARCH du chroot de construction utilisé. La valeur par défaut est l'architecture de la machine sur laquelle cowpoke est exécutée, et l'architecture peut être remplacée avec l'option --arch en ligne de commande. Une liste d'architectures séparées par des espaces (il peut être nécessaire de fournir le tout entre guillemets) peut être utilisée pour construire les paquets pour toutes ces architectures en une seule passe.
- BUILDD_DIST
-
La ou les distributions Debian pour lesquelles il faut construire les
paquets. Une liste de distributions séparées par des espaces (il peut être
nécessaire de fournir le tout entre guillemets) peut être utilisée pour
construire les paquets pour toutes ces architectures en une seule passe. La
ou les distributions peuvent être remplacées avec l'option --dist en
ligne de commande.
- INCOMING_DIR
- Le chemin du répertoire sur la machine de construction où sont placés initialement les paquets source. Il doit être accessible en écriture par l'utilisateur BUILDD_USER.
- PBUILDER_BASE
-
La racine du système de fichiers pour tous les fichiers CoW et les fichiers
résultats. Des sous-répertoires spécifiques aux architectures et aux
distributions seront normalement créés sous cette racine. Le cache d'apt
et les répertoires temporaires de construction se trouveront également sous
ce chemin.
- SIGN_KEYID
-
Si cette option est activée, elle doit contenir l'identifiant de la clef GPG
à fournir à debsign(1) si les paquets doivent être signés sur la machine
distante. Il vous sera demandé si vous souhaitez signer les paquets après
que toutes les constructions sont finies. Si cette option n'est pas activée
ou si elle contient une chaîne vide, aucune tentative de signature ne sera
effectuée. Elle peut être remplacée de façon spécifique à une
architecture et une distribution avec l’option
arch_dist_SIGN_KEYID décrite ci-dessous, ou par invocation avec
l’option --sign en ligne de commande.
- UPLOAD_QUEUE
-
Si cette option est activée, elle doit contenir une indication d'hôte pour
dput(1) qui sera utilisée pour envoyer les paquets après qu'ils ont été
signés. Il vous sera demandé de confirmer si vous souhaitez envoyer les
paquets après qu'ils ont été signés. Si cette option n'est pas activée ou si
elle contient une chaîne vide, aucune tentative d'envoi ne sera
effectuée. Si SIGN_KEYID n'est pas activée, cette option sera
complètement ignorée. Elle peut être remplacée de façon spécifique à une
architecture et une distribution avec l’option
arch_dist_UPLOAD_QUEUE décrite ci-dessous, ou par invocation
avec l’option --upload en ligne de commande.
- BUILDD_ROOTCMD
- La commande à utiliser pour obtenir les droits du superutilisateur sur la machine distante de construction. Si elle n'est pas définie, la commande par défaut est sudo(8). Elle n'est nécessaire que pour appeler cowbuilder et lui permettre d'entrer dans son chroot. Vous pouvez donc n'autoriser cet utilisateur à acquérir des droits supplémentaires que pour l'exécution de cette commande. La ligne suivante dans sudoers permettra d'appeler cowbuilder sans avoir à fournir de mot de passe :
-
- utilisateur ALL = NOPASSWD: /usr/sbin/cowbuilder
-
Autrement, vous pouvez utiliser SSH avec une clef ou tout autre mécanisme
correspondant à votre politique locale. su -c n'est pas vraiment
utilisable ici parce qu'il nécessite de placer des guillemets autour,
contrairement aux autres.
- DEBOOTSTRAP
-
L'utilitaire à utiliser pour créer une nouvelle racine de construction. Les
possibilités sont debootstrap ou cdebootstrap.
- RETURN_DESTDIR
-
Si elle est définie, les fichiers de paquet issus de la construction seront
copiés à l'endroit (local ou distant) configuré, une fois la construction
terminée. Le chemin doit exister, il ne sera pas créé. Cette option n'est
pas définie par défaut et peut être écrasée par --return ou
--no-return.
Options spécifiques à des architectures ou distributions
Ce sont des variables de la forme $arch_$dist_VAR qui ne s'appliquent qu'à une cible de construction spécifique à une architecture et à une distribution.
- arch_dist_RESULT_DIR
-
Le chemin du répertoire de la machine de construction où les paquets
résultants (source et binaires) seront trouvés, et où les versions
ultérieures des paquets ayant été précédemment construits pourront être
trouvées. Si des anciens paquets sont trouvés, debdiff sera utilisé pour
comparer le nouveau paquet avec la version précédente une fois la
construction finie, et le résultat se trouvera dans le journal de
construction. Les fichiers du répertoire doivent être lisibles par
BUILDD_USER pour les vérifications par lintian(1) et debdiff(1)
ainsi que pour les envois par dput(1). Si cette option n'est pas définie
pour certaines combinaisons d'architectures et de distributions, alors le
chemin par défaut sera $PBUILDER_BASE/$arch/$dist/result
- arch_dist_BASE_PATH
-
Le répertoire ou les fichiers CoW maîtres se trouvent (ou là où ils sont
créés si l'option en ligne de commande --create est utilisée). Si cette
option n'est pas définie pour une combinaison d'architecture et de
distribution, alors le chemin par défaut est
$PBUILDER_BASE/$arch/$dist/base.cow
- arch_dist_BASE_DIST
-
Le nom de code à passer à l’option --distribution de cowbuilder à la
place de dist. C’est nécessaire quand dist est un nom localement
significatif utilisé pour un chroot de construction configuré spécialement,
comme par exemple « wheezy_backports », et non le nom de suite formel d’une
distribution connue de debootstrap. Cette option ne peut pas être
remplacée en ligne de commande, puisqu’il n’y pas vraiment de raison de la
modifier pour les appels individuels de cowpoke. Si cette option n’est
pas indiquée pour une combinaison d’architecture et de distribution,
alors la distribution est utilisée par défaut.
- arch_dist_CREATE_OPTS
-
Un tableau bash contenant des options supplémentaires à passer directement à
cowbuilder quand un chroot est créé (en utilisant l’option
--create). C’est pratique quand des options comme --othermirror sont
voulues pour créer des configurations spéciales de chroot, comme par exemple
« wheezy_backports ». Par défaut il n’est pas défini. Toutes les valeurs
définie dans ce tableaux seront ignorées si l’option --create-opts est
passée en ligne de commande.
Chaque élément de ce tableau correspond à un seul argument (dans le sens de ARGV) qui sera passé à cowbuilder. Cela permet à ces arguments, qui pourraient contenir des espaces, avoir des besoins de protection bizarre ou d’autres caractères spéciaux, de pas ne pas être déformés avant d’atteindre cowbuilder.
Les tableaux bash sont initialisés un utilisant le format suivant :
OPTS=( "arg1" "arg 2" "--option" "valeur" "--opt=val" "etc." ) - arch_dist_UPDATE_OPTS
-
Un tableau bash contenant des options supplémentaires à passer directement à
cowbuilder à chaque fois que la base de ce chroot est mise à jour. Le
comportement est similaire à l’option CREATE_OPTS précédente, à part
qu’il est déclenché quand le chroot est mis à jour.
- arch_dist_BUILD_OPTS
-
Un tableau bash contenant des options supplémentaires à passer directement à
cowbuilder quand un paquet est construit. C’est pratique pour utiliser
une option comme --twice que cowpoke n’a pas besoin de gérer
directement. Le comportement est sinon similaire à l’option UPDATE_OPTS
précédente, à part qu’il est déclenché pendant la phase de construction par
cowbuilder.
- arch_dist_SIGN_KEYID
-
Un remplacement facultatif de l’option SIGN_KEYID globale, spécifique à
une architecture et une distribution.
- arch_dist_UPLOAD_QUEUE
-
Un remplacement facultatif de l’option UPLOAD_QUEUE globale, spécifique à
une architecture et une distribution.
FICHIERS DE CONFIGURATION
- /etc/cowpoke.conf
- Options de configuration globales. Elles remplaceront les valeurs par défaut codées en dur.
- ~/.cowpoke
- Options de configuration de l'utilisateur. Elles remplaceront les valeurs des options de configuration globales.
- .cowpoke
-
Options de configuration du projet. Elles remplaceront les valeurs des
options de configuration globale ou de l'utilisateur si cowpoke est
appelé depuis le répertoire où se trouve le fichier.
Si la variable d'environnement COWPOKE_CONF est définie, elle indique un fichier de configuration supplémentaire qui remplacera tous les autres. Les options utilisées explicitement sur la ligne de commande remplacent les options provenant des fichiers de configuration.
CONFIGURATION DE COWBUILDER
Il n'y a rien de particulier à faire pour configurer une instance de cowbuilder pour qu'elle puisse être utilisée avec cowpoke. Créez-la simplement telle que vous en avez besoin avec « cowbuilder --create » en suivant la documentation de cowbuilder, puis configurez cowpoke avec les informations sur l'utilisateur, l'architecture et le chemin nécessaire pour y accéder sur les machines où vous souhaitez l'appeler (ou configurez cowpoke avec les informations sur le chemin, l'architecture et la distribution et fournissez lui l'option --create lors du premier appel). L'hôte de construction sur lequel cowbuilder tourne n'a pas besoin que cowpoke soit installé localement.La machine de construction doit avoir les paquets lintian et devscripts installés pour les vérifications en fin de construction. Une fois la construction finie, un journal et les résultats des tests automatiques seront enregistrés dans INCOMING_DIR. Si vous souhaitez envoyer des paquets signés, dput(1) devra également être installé sur la machine de construction et devra être configuré pour utiliser l'alias hôte indiqué par UPLOAD_QUEUE. Si rsync(1) est disponible à la fois sur la machine locale et la machine de construction, alors il peut être utilisé pour transférer le paquet source (cela permet d'économiser quelques échanges de orig.tar.* lors de la construction des révisions Debian suivantes).
L'utilisateur qui exécute cowpoke doit avoir un accès SSH à la machine de construction en tant que BUILDD_USER. Cet utilisateur doit pouvoir exécuter cowbuilder en tant que superutilisateur en utilisant BUILDD_ROOTCMD. Les clefs pour les signatures n'ont pas nécessairement à être installées sur la machine de construction (et elles seront ignorées si elles le sont). Si un paquet est signé, les clefs seront nécessaires sur la machine qui exécute cowpoke.
Quand cowpoke est appelé, il cherche d'abord à mettre à jour l'image cowbuilder si cela n'a pas déjà été fait le même jour. Cette vérification se base sur la présence d'un fichier cowbuilder-$arch-$dist-update-log-$date dans le répertoire INCOMING_DIR. Vous pouvez déplacer, renommer ou toucher ce fichier si vous souhaitez que l'image soit mise à jour plus ou moins souvent. Son contenu liste les sorties de cowbuilder pendant la mise à jour (ou la création) de la racine de construction.
NOTES
Puisque cowbuilder crée un chroot, et qu'il faut pour cela être superutilisateur, cowpoke nécessite également certains des droits du superutilisateur. Et toutes les horreurs qui peuvent arriver à cause de ça pourront vous arriver un jour. cowbuilder est connu pour avoir accidentellement écrasé des systèmes de fichiers montés avec l'option « bind » en dehors de son chroot, et pire encore peut arriver. Soyez prudents, conservez des sauvegardes de ce que vous ne souhaitez pas perdre sur vos machines de construction et utilisez cowpoke pour isoler tous ces problèmes sur une machine qui n'est pas votre machine de développement avec vos quelques heures de travail non committé.
TRADUCTION
Ce document est une traduction, maintenue à l'aide de l'outil po4a <https://po4a.alioth.debian.org/> par l'équipe de traduction francophone du projet Debian.Nicolas François, Guillaume Delacour, Cyril Brulebois, Thomas Huriaux et David Prévot ont réalisé cette traduction.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. Veuillez signaler toute erreur de traduction en écrivant à <[email protected]> ou par un rapport de bogue sur le paquet devscripts.
La version anglaise la plus à jour de ce document est toujours consultable en ajoutant l'option « -L C » à la commande man.