Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Obtenir automatiquement la liste des build-deps via un fichier control

4 réponses
Avatar
Francois Lafont
Bonjour à tous,

Étant donné un fichier debian/control d'un paquet (pas encore
buildé), y a-t-il une commande ad-hoc pour obtenir la liste des
build-dépendances et leur installation, le tout de manière 100%
*automatique* ?

Attention, le debian/control est issu d'un dépôt, le paquet
n'a pas encore été buildé, j'ai juste récupéré les sources
de base via git.

J'ai pu voir que par exemple :

dpkg-checkbuilddeps

me fournit assez clairement les builds dépendances à installer
mais c'est un peu pénible à parser et je me dis qu'il existe
sans doute un moyen simple, une commande made in Debian fait
pour ça etc., non ?

Je demande cela car je souhaite automatiser l'installation
d'un paquet perso depuis un git clone des sources dans
un environnement chrooté (j'utilise pbuilder pour ça).
Pour l'instant, j'écris les builds-deps en dur dans une
variable :

# À l'intérieur de l'environnement chrooté.
BUILD_DEPENDS='build-essential ...'
apt-get install --no-install-recommends --yes $BUILD_DEPENDS
git clone ... etc.

mais du coup les builds-deps sont écrites à deux endroits
(dans le fichier control du paquet et dans le script ci-dessus)
ce qui n'a pas manqué de me jouer un ou deux tours déjà.

Merci d'avance pour votre aide.

--
François Lafont

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/lbu07e$kte$1@ger.gmane.org

4 réponses

Avatar
S
Le vendredi 24 janvier 2014 à 16:18, Francois Lafont a écrit :
Étant donné un fichier debian/control d'un paquet (pas encore
buildé), y a-t-il une commande ad-hoc pour obtenir la liste des
build-dépendances et leur installation, le tout de manière 100%
*automatique* ?



apt-get build-dep <le_paquet> ?

Ça nécessite qu'une version binaire du paquet soit disponible dans les dépôts je
crois…

Seb

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Francois Lafont
Bonsoir,

Le 24/01/2014 19:43, Sébastien NOBILI a écrit :

apt-get build-dep <le_paquet> ?



Ça le fait pas malheureusement.

Ça nécessite qu'une version binaire du paquet soit disponible dans les dépôts je
crois…



C'est tout le problème et c'est pour ça que j'ai posé la question
sur cette liste. Ce que j'ai comme base de départ, ce sont les sources
d'un paquet perso récupéré via git. Et ce que je récupère, ce n'est
pas un paquet source au sens de Debian (pas de fichier dsc etc).
Ce que je récupère, ce sont les sources d'un paquet comme s'il
n'avait jamais été buildé encore. Comme si on venait de faire un
dh_make, d'éditer son fichier debian/control, de récupérer un tar.gz
du source amont, de faire des patches et qu'on s'apprêtait à faire un
dpkg-bluidpackage pour la toute première fois.

--
François Lafont

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/lbuekr$b63$
Avatar
Charles Plessy
Le Fri, Jan 24, 2014 at 04:18:18PM +0100, Francois Lafont a écrit :

Étant donné un fichier debian/control d'un paquet (pas encore
buildé), y a-t-il une commande ad-hoc pour obtenir la liste des
build-dépendances et leur installation, le tout de manière 100%
*automatique* ?



Bonjour,

pour l'installation automatique, la commande mk-build-deps du paquet devscripts
devrait faire l'affaire.

Amicalement,

--
Charles Plessy
Tsurumi, Kanagawa, Japon

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Francois Lafont
Bonjour,

Le 24/01/2014 23:50, Charles Plessy a écrit :

pour l'installation automatique, la commande mk-build-deps du paquet devscripts
devrait faire l'affaire.



Paf, en plein dans le mille ! C'est exactement ce que je cherchais.
J'ajoute juste des précisions des fois que ça serve à d'autres.

Effectivement, mk-build-deps est issu du paquet devscripts, mais
pour pouvoir utiliser cette commande, la première fois j'ai eu
un message d'erreur me disant qu'il fallait que j'installe aussi
le paquet equivs. Bref, pour avoir cette commande opérationnelle,
il a fallu que j'installe devscripts + equivs (je parle pour Wheezy).
Bon, en fait c'est parce que equivs est dans les Recommends de
devscripts et perso mon apt n'installe pas les Recommends par
défaut. ;-)

Ensuite, j'ai exactement ce que je veux avec un simple :

mk-build-deps --install --tool 'apt-get --yes --no-install-recommends' --remove ./debian/control

Ça me crée un paquet type « coquille vide » qui a pour dépendances
les builds-dependances indiquées dans mon fichier "control", ce
paquet .deb est directement crée dans le répertoire courant, ça
me l'installe avec la commande indiquée via l'option --tool et
ensuite le .deb est supprimé du répertoire courant grâce à l'option
--remove. Et voilà, je me retrouve avec un environnement prêt
pour le build. :-)

Une dernière remarque. Il faut éviter (en tout cas sur Wheezy)
de mettre des lignes vides à la fin du fichier "control". Par
exemple avec 2 lignes vides à la fin du fichier, la commande
plante en me disant qu'elle n'arrive pas à trouver le nom du
paquet etc. J'ai pu voir ici ou là que c'était un bug de la
commande qui a été résolu depuis mais sans doute que ça concernera
les futures version de Debian uniquement, je ne sais pas. En
tout cas, rien de bien méchant, il suffit de ne pas mettre de
ligne vide à la fin du fichier control et c'est bon (je m'en
suis aperçu justement parce que j'ai en général le réflexe de
mettre toujours 2 lignes vides à la fin de mes fichiers).

Merci beaucoup Charles, grâce à toi, j'ai un script générique
pour builder mes paquets perso sans m'embêter à réadapter les
build dépendances à chaque changement. C'est parfait. :-)

À+

--
François Lafont

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/lc0lk6$qku$