SVN-BUILDPACKAGE(1) | Manuels des commandes | SVN-BUILDPACKAGE(1) |
svn-buildpackage - construction de paquets Debian à partir d'un dépôt Subversion
svn-buildpackage [[ OPTIONS... ] [ OPTIONS de dpkg-buildpackage ]]
Construit un paquet Debian à partir d'un dépôt Subversion. Le dépôt du code source doit être au format créé par svn-inject, et ce script doit être exécuté depuis le répertoire de travail (trunk/paquet).
Par défaut, le répertoire de travail est utilisé comme répertoire principal des sources (en supposant que l'intégralité du code source amont soit conservé dans le dépôt). Il est aussi possible de travailler en mode « merge ». Avec cette méthode, seul le répertoire debian (et éventuellement quelques autres fichiers modifiés) sont conservés dans le dépôt. Au moment de la construction, le tronc du dépôt est copié dans le contenu de l'archive source extraite (et peut en écraser certaines parties). Pour choisir ce modèle de travail, il faut configurer la propriété svn mergeWithUpstream sur le répertoire debian.
$ svn propset mergeWithUpstream 1 debian
Pour utiliser mergeWithUpstream, le système de construction doit pouvoir préparer une archive source, typiquement avec make dist et les Autotools. Tous les paquets amont permettent d'une façon où d'une autre la création de l'archive source, et les paquets natifs qui utilisent les Autotools ou qui intègrent une prise en charge interne d'archive source, peuvent utiliser mergeWithUpstream pour manipuler les fichiers créés qui doivent créer le paquet sans qu'il ne soit présent dans le dépôt. Voir le HOWTO pour des exemples d'utilisation. Les paquets natifs qui n'utilisent pas les Autotools et n'intègrent pas une prise en charge interne d'archive source peuvent tout de même ajouter des fichiers à l'archive amont du paquet source avec la cible useNativeDist dans le Makefile principal. Cette cible personnalisée doit être idempotente et uniquement modifier ou ajouter les fichiers voulus à partir des seules sources exportées du dépôt et des dépendances de construction. Pour permettre à svn-buildpackage d'utiliser une cible make native-dist dans le Makefile principal, configurer la propriété useNativeDist sur le répertoire ./debian/ :
$ svn propset useNativeDist 1 debian
Le comportement par défaut de svn-buildpackage est le suivant :
vérifier le répertoire de travail, se plaindre de fichiers non propagés (voir aussi --svn-ignore-new) ;
copier l'archive source amont vers l'emplacement de construction si besoin (voir aussi --svn-no-links) ;
extraire l'archive source (en mode mergeWithUpstream) ou exporter le répertoire de travail du dépôt vers le répertoire de construction (voir aussi plus bas et --svn-no-links) ;
construire avec dpkg-buildpackage (voir aussi --svn-builder, --svn-lintian, etc.) ;
créer une entrée du journal de modifications pour les versions suivantes.
svn-buildpackage accepte les options suivantes en ligne de commande :
--svn-builder=COMMANDE
Attention : les règles de protection de l'interpréteur ne s'appliquent pas toutes ici, il vaut mieux utiliser des surcouches (« wrapper ») pour les constructions compliquées. L'utilisation de cette option peut empêcher --svn-lintian et --svn-move de fonctionner. Certaines fonctionnalités risquent d'être désactivées lorsqu'une commande personnalisée est utilisée car l'emplacement du fichier de sortie n'est pas prévisible.
Par défaut : utilise dpkg-buildpackage.
--svn-ignore-new | --svn-ignore
Par défaut : s'arrête lors de conflits et pour des fichiers nouveaux ou modifiés.
--svn-dont-clean
Par défaut : nettoie d'abord.
--svn-no-links
Par défaut : utilise des liens quand c'est possible.
--svn-dont-purge
Par défaut : supprime après une construction réussie.
--svn-reuse
Par défaut : le répertoire de construction est supprimé.
--svn-rm-prev-dir
Par défaut : renomme l'ancien répertoire avec une extension « obsolete ».
--svn-export
Par défaut : désactivée.
--svn-tag
Par défaut : désactivée.
--svn-tag-only | --svn-only-tag
Par défaut : désactivée.
--svn-retag
Par défaut : désactivée.
--svn-noautodch
Par défaut : une nouvelle entrée UNRELEASED du journal de modifications est ajoutée à l'aide de dch.
--svn-lintian
Par défaut : désactivée.
--svn-move
Par défaut : désactivée.
--svn-move-to=...
Par défaut : désactivée (les fichiers sont laissés là où la commande de construction les a mis).
--svn-pkg=nomdupaquet
Par défaut : désactivée.
--svn-arch=ARCH
Par défaut : désactivée.
--svn-override=variable=valeur,autrevariable=valeur
Par défaut : désactivée.
--svn-prebuild | --svn-postbuild | --svn-pretag | --svn-posttag
Veuillez remarquer que les « hooks » prebuild et postbuild remplacent les actions prebuild et postbuild normales de svn-buildpackage. Pour prebuild, cela signifie que les dépendances de construction ne seront pas vérifiées. Pour postbuild, cela signifie que les fichiers résultant ne seront pas déplacés, et que Lintian ne sera pas exécuté.
Par défaut : désactivées.
--svn-noninteractive
Par défaut : désactivée.
--svn-savecfg
Avec ce paramètre, svn-buildpackage reproduira (partiellement) cet ancien comportement. En contraste avec ce comportement déconseillé, le .svn/deb-layout est considéré comme un écrasement local ; l'ancien comportement ignorait simplement tout les renseignements de structure versionnée si .svn/deb-layout existait.
Cette option est fournie car elle peut être utile lors de la création d'un fichier local d'écrasement.
Par défaut : désactivée.
--svn-download-orig
Par défaut : désactivée.
--svn-verbose
Par défaut : désactivée.
-h | --help
Pour des renseignements plus précis sur la façon d'utiliser svn-buildpackage, reportez-vous au HOWTO[1].
Pour commencer à travailler avec un paquet Debian natif existant à partir d'un fichier *.dsc, importez-le dans le dépôt à l'aide de la commande :
svn-inject paquet_0.1.dsc svn://hôte/debian/devel/packages
Pour commencer à travailler avec un paquet amont existant dans Debian à partir d'un fichier *.dsc, importez-le dans le dépôt à l'aide de la commande :
svn-inject -o paquet_0.1-2.dsc svn://hôte/debian/devel/packages
Avant de construire un paquet amont, vérifiez que l'archive source d'origine est disponible, par exemple si uscan fonctionne :
svn mkdir ../tarballs svn propset svn:ignore "*" ../tarballs uscan --force-download --destdir ../tarballs
Pour essayer la construction de paquet à partir du dépôt Subversion, utilisez la commande suivante. Référez-vous à la page de manuel dpkg-buildpackage(1) pour les options -us, etc. :
svn-buildpackage --svn-lintian -us -uc -rfakeroot
Pour vérifier que le paquet se construit dans un état propre, essayez-le avec pbuilder(1) :
svn mkdir ../build-area # Pour placer les paquets résultant svn propset svn:ignore "*" ../build-area svn-buildpackage --svn-ignore-new --svn-builder=pdebuild
Quand une nouvelle publication amont devient disponible, propagez toutes les modifications et assurez-vous d'avoir l'arborescence de travail dans un état propre. Ensuite utilisez svn-upgrade(1) pour importer cette nouvelle publication :
svn status # Vérifier qu'il n'y a pas de modification non propagée svn-upgrade --verbose ../package-2.0.tar.gz
Le comportement de svn-buildpackage peut être modifié en utilisant le fichier ~/.svn-buildpackage.conf. Des morceaux supplémentaires peuvent être ajoutés à chaque répertoire de travail de paquet en utilisant le fichier .svn/svn-buildpackage.conf. C'est principalement une liste des options longues de la ligne de commande (sans être précédées des deux tirets), un argument par ligne (sans guillemets autour des arguments de plusieurs mots). Les variables sont développées par l'interpréteur du système si des variables de l'interpréteur sont trouvées. Évitez d'utiliser le caractère « ~ » à cause de son développement peu fiable, préférez utiliser « $HOME » à la place. Exemple :
svn-builder=debuild -EPATH svn-no-links svn-override=origDir=$HOME/debian/upstream/$PACKAGE # svn-ignore-new # svn-lintian
Par défaut, svn-buildpackage attend un fichier de configuration avec une déclaration du chemin ou de l'URL : .svn/deb-layout. Les valeurs présentes peuvent être écrasées par l'option --svn-override, voir plus haut. Si un fichier de configuration n'est pas trouvé, les réglages sont détectés automatiquement en suivant les hypothèses habituelles sur les répertoires locaux et la structure du dépôt. De plus, le contenu d'un fichier personnalisé debian/svn-deblayout sera importé pendant la configuration initiale. Les responsables du paquet peuvent conserver ce fichier dans le dépôt pour indiquer les bonnes valeurs par défaut aux nouveaux utilisateurs de svn-buildpackage. Le format est le même que celui du fichier .svn/deb-layout. Plutôt que d'utiliser le fichier debian/svn-deblayout, les responsables peuvent configurer les propriétés de Subversion pour le répertoire debian/ ; toutes les propriétés de debian/ avec un nom de la forme svn-bp:PROP seront utilisées pour une configuration de PROP à la valeur indiquée en première ligne de la valeur de la propriété. Si une URL Subversion complète n'est pas donnée, la racine du dépôt précédera cette valeur.
Les variables d'environnement suivantes sont exportées par svn-buildpackage et peuvent être utilisés dans les commandes « hook » du système de construction du paquet.
PACKAGE, package
SVN_BUILDPACKAGE
TAG_VERSION, debian_version
non_epoch_version
upstream_version
guess_loc
DIFFSRC
Toutes les propriétés de structure sont aussi exportées dans l'environnement. Les suivantes ont une signification pour svn-buildpackage.
buildArea
trunkUrl
tagsUrl
origDir
origUrl
Les variables suivantes sont comprises par svn-buildpackage :
FORCETAG
FORCEEXPORT
DEBIAN_FRONTEND
Utilisez les alias de l'interpréteur. Voici quelques exemples pour Bash :
alias svn-b="svn-buildpackage -us -uc -rfakeroot --svn-ignore" alias svn-br="svn-b --svn-dont-purge --svn-reuse" alias svn-bt="svn-buildpackage --svn-tag -rfakeroot"
Ces commandes ont les significations respectives : construction quelque soit l'état modifié ou nouveau des fichiers ; construction quelque soit l'état modifié ou nouveau des fichiers et réutilisation du répertoire de construction ; construction (pour envoyer) et étiquetage.
SSH est le moyen le plus facile d'accéder à un dépôt distant, bien qu'il oblige généralement à indiquer un mot de passe plus fréquemment avec svn-buildpackage. Parmi les solutions de contournement, il y a la possibilité d'utiliser une clé SSH sans mot de passe (bien que ce soit non sécurisé et encore relativement lent), ou la fonctionnalité de mettre en cache la connexion SSH avec les versions récentes de SSH. Pour plus d'explications, reportez-vous au manuel de svn-buildpackage (HOWTO).
Une autre façon d'obtenir un lien distant est d'utiliser le module DAV de Subversion (avec SSL et authentification d'utilisateur Apache), voir le manuel de svn-buildpackage (HOWTO) pour plus d'explications.
/usr/share/doc/svn-buildpackage/html/fr/
Eduard Bloch
Goneri Le Bouder
Neil Williams
Copyright © 2009 Eduard Bloch
Mai 2009 | Version : 0.8.2 |