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

Questions sur le rebuild d'un paquet depuis ses sources debian (après modif)

7 réponses
Avatar
Francois Lafont
Bonjour à tous,

En général, pour rebuilder un paquet Debian, je fais ça :

--------------------------------------------
apt-get update
apt-get devscripts dpkg-dev
apt-get source toto
apt-get build-dep toto
cd le-rep-source-de-toto

# Là, je modifie éventuellement le paquet.
# Ensuite, j'édite le changlog avec dch pour
# incrémenter la version du paquet etc.

# Et enfin:
dpkg-buildpackage -us -uc -b
--------------------------------------------

1. A priori, sur mes divers tentatives, ça marche plutôt
bien. J'ai bon jusque là ?

2. J'obtiens alors un paquet toto-xxx.deb (bon en fait
souvent on se retrouve avec plusieurs paquet mais moi,
c'est le paquet toto qui m'intéresse) qui possède un
numéro de version plus récent que le paquet toto qui
se trouve sur les dépôt officiels. Mais le paquet
que j'obtiens possède le même nom toto, c'est seulement,
le numéro de version qui change.

Y a-t-il un moyen pour que le paquet que je builde
ne s'appelle pas toto au final, mais s'appelle par
exemple toto-foo (où foo est un nom qui évoque ma
modif) ? Évidemment, on peut supposer alors que les
paquets toto et toto-foo sont incompatibles.

3. Imaginons maintenant que le paquet toto, ce ne soit
pas n'importe quel paquet mais que ce soit carrément
"linux-image-3.2.0-4-amd64". La méthode de rebuild
donnée en exemple ci-dessus-elle toujours valable ?
Ou bien pour un rebuild du noyau, c'est un cas
spécifique ?

4. Même question pour le "renommage". Lors du rebuild
de "linux-image-3.2.0-4-amd64" : y a-t-il un moyen de
changer le nom du paquet pour qu'il s'appelle par
exemple "linux-image-3.2.0-4-foo-amd64" et qu'il soit,
contrairement à précédemment, installable *en* *plus*
du paquet "linux-image-3.2.0-4-amd64" déjà installé
sur l'OS ? L'idée étant d'avoir dans Grub la possibilité
de lancer linux-image-3.2.0-4-amd64 ou bien
linux-image-3.2.0-4-foo-amd64.

Merci d'avance pour vos lumières.

--
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/l5habe$ipp$1@ger.gmane.org

7 réponses

Avatar
nb
Le 08-11-2013 01:13, Francois Lafont a écrit :
Bonjour à tous,

En général, pour rebuilder un paquet Debian, je fais ça :

--------------------------------------------
apt-get update
apt-get devscripts dpkg-dev
apt-get source toto
apt-get build-dep toto
cd le-rep-source-de-toto

# Là, je modifie éventuellement le paquet.
# Ensuite, j'édite le changlog avec dch pour
# incrémenter la version du paquet etc.

# Et enfin:
dpkg-buildpackage -us -uc -b
--------------------------------------------



3. Imaginons maintenant que le paquet toto, ce ne soit
pas n'importe quel paquet mais que ce soit carrément
"linux-image-3.2.0-4-amd64". La méthode de rebuild
donnée en exemple ci-dessus-elle toujours valable ?
Ou bien pour un rebuild du noyau, c'est un cas
spécifique ?



Je pense que "fakeroot make deb-pkg" suffit


--
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
Jean Baptiste Favre
Hello,

On 08/11/2013 01:13, Francois Lafont wrote:
Bonjour à tous,

En général, pour rebuilder un paquet Debian, je fais ça :

--------------------------------------------
apt-get update
apt-get devscripts dpkg-dev
apt-get source toto
apt-get build-dep toto
cd le-rep-source-de-toto

# Là, je modifie éventuellement le paquet.
# Ensuite, j'édite le changlog avec dch pour
# incrémenter la version du paquet etc.

# Et enfin:
dpkg-buildpackage -us -uc -b
--------------------------------------------

1. A priori, sur mes divers tentatives, ça marche plutôt
bien. J'ai bon jusque là ?

2. J'obtiens alors un paquet toto-xxx.deb (bon en fait
souvent on se retrouve avec plusieurs paquet mais moi,
c'est le paquet toto qui m'intéresse) qui possède un
numéro de version plus récent que le paquet toto qui
se trouve sur les dépôt officiels. Mais le paquet
que j'obtiens possède le même nom toto, c'est seulement,
le numéro de version qui change.

Y a-t-il un moyen pour que le paquet que je builde
ne s'appelle pas toto au final, mais s'appelle par
exemple toto-foo (où foo est un nom qui évoque ma
modif) ? Évidemment, on peut supposer alors que les
paquets toto et toto-foo sont incompatibles.



Oui, c'est possible, mais je ne le recommanderais pas :)
Il faut alors modifier le fichier debian/control, changer le nom du
paquet binaire: "Package: toto" devient alors "Package: toto-foo".
Il faut aussi renommer les fichiers debian/toto.* où * vaut instal,
init, default, dirs, ...
Il faut aussi mettre à jour les conflits éventuels dans debian/control
"Conflict: toto" ainsi que les remplacement "Replace: toto".

Mais: du point de vue du gestionnaire de paquets, c'est alors un paquet
différent, pas une version particulière d'un paquet existant.
Pour cette raison, qui risque fort de compliquer les opérations de mises
à jour du système, je déconseille cette méthode.

Il vaut mieux, selon moi, intégrer foo dans le numéro de version plutôt
que le nom du paquet binaire.

Enfin, dpkg-buildpackage fonctionne, mais tu devrais toujours construire
tes paquets dans un environnement propre, avec pbuilder par exemple,
pour vérifier les dépendances de build, surtout si tu envisages de le
rendre disponible.

3. Imaginons maintenant que le paquet toto, ce ne soit
pas n'importe quel paquet mais que ce soit carrément
"linux-image-3.2.0-4-amd64". La méthode de rebuild
donnée en exemple ci-dessus-elle toujours valable ?
Ou bien pour un rebuild du noyau, c'est un cas
spécifique ?



Pour le noyau, cette méthode fonctionne (a priori, à confirmer), mais tu
peux également utiliser make deb-pkg comme indiqué par "nb".

4. Même question pour le "renommage". Lors du rebuild
de "linux-image-3.2.0-4-amd64" : y a-t-il un moyen de
changer le nom du paquet pour qu'il s'appelle par
exemple "linux-image-3.2.0-4-foo-amd64" et qu'il soit,
contrairement à précédemment, installable *en* *plus*
du paquet "linux-image-3.2.0-4-amd64" déjà installé
sur l'OS ? L'idée étant d'avoir dans Grub la possibilité
de lancer linux-image-3.2.0-4-amd64 ou bien
linux-image-3.2.0-4-foo-amd64.



Même remarque que pour le point 1, mauvaise idée selon moi.


Cordialement,
JB

--
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
Guy Roussin
Bonjour,

Bosses plutôt en tant que user normal ... sauf lorsqu'il s'agit
d'installerdes paquets (sudo ...).
p.ex. :
$ sudo apt-get build-dep toto
$ dpkg-buildpackage -rfakeroot -us -uc -b


Tu pourrais utiliser le numéro de version pour ton paquet perso.
La commande dch est faite pour ça ...
$ dch -i

Guy

Le 08/11/2013 01:13, Francois Lafont a écrit :
Bonjour à tous,

En général, pour rebuilder un paquet Debian, je fais ça :

--------------------------------------------
apt-get update
apt-get devscripts dpkg-dev
apt-get source toto
apt-get build-dep toto
cd le-rep-source-de-toto

# Là, je modifie éventuellement le paquet.
# Ensuite, j'édite le changlog avec dch pour
# incrémenter la version du paquet etc.

# Et enfin:
dpkg-buildpackage -us -uc -b
--------------------------------------------

1. A priori, sur mes divers tentatives, ça marche plutôt
bien. J'ai bon jusque là ?

2. J'obtiens alors un paquet toto-xxx.deb (bon en fait
souvent on se retrouve avec plusieurs paquet mais moi,
c'est le paquet toto qui m'intéresse) qui possède un
numéro de version plus récent que le paquet toto qui
se trouve sur les dépôt officiels. Mais le paquet
que j'obtiens possède le même nom toto, c'est seulement,
le numéro de version qui change.

Y a-t-il un moyen pour que le paquet que je builde
ne s'appelle pas toto au final, mais s'appelle par
exemple toto-foo (où foo est un nom qui évoque ma
modif) ? Évidemment, on peut supposer alors que les
paquets toto et toto-foo sont incompatibles.

3. Imaginons maintenant que le paquet toto, ce ne soit
pas n'importe quel paquet mais que ce soit carrément
"linux-image-3.2.0-4-amd64". La méthode de rebuild
donnée en exemple ci-dessus-elle toujours valable ?
Ou bien pour un rebuild du noyau, c'est un cas
spécifique ?

4. Même question pour le "renommage". Lors du rebuild
de "linux-image-3.2.0-4-amd64" : y a-t-il un moyen de
changer le nom du paquet pour qu'il s'appelle par
exemple "linux-image-3.2.0-4-foo-amd64" et qu'il soit,
contrairement à précédemment, installable *en* *plus*
du paquet "linux-image-3.2.0-4-amd64" déjà installé
sur l'OS ? L'idée étant d'avoir dans Grub la possibilité
de lancer linux-image-3.2.0-4-amd64 ou bien
linux-image-3.2.0-4-foo-amd64.

Merci d'avance pour vos lumières.




--
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
Charles Plessy
Le Fri, Nov 08, 2013 at 10:20:01AM +0100, Guy Roussin a écrit :

Bosses plutôt en tant que user normal ... sauf lorsqu'il s'agit
d'installerdes paquets (sudo ...).
p.ex. :
$ sudo apt-get build-dep toto
$ dpkg-buildpackage -rfakeroot -us -uc -b



Bonjour tout le monde,

depuis la version 1.14.7 de dpkg, dpkg-buildpackage utilise automatiquement
fakeroot si nécessaire. Donc on peut omettre -rfakeroot.

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
laurent Trinques
Le vendredi 8 novembre 2013, 10:20:01 Guy Roussin a écrit :
Bonjour,

Bosses plutôt en tant que user normal ... sauf lorsqu'il s'agit
d'installerdes paquets (sudo ...).
p.ex. :
$ sudo apt-get build-dep toto
$ dpkg-buildpackage -rfakeroot -us -uc -b


Tu pourrais utiliser le numéro de version pour ton paquet perso.
La commande dch est faite pour ça ...
$ dch -i

Guy







dch -i -D stable "Backport stable " par exemple

--
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
Joseph Herlant
Bonjour,

Le tuto sur le BSP/Beginers est plutôt pas mal selon moi.
Je l'utilise régulièrement:
https://wiki.debian.org/BSP/BeginnersHOWTO

Joseph


2013/11/9 laurent Trinques :
Le vendredi 8 novembre 2013, 10:20:01 Guy Roussin a écrit :
Bonjour,

Bosses plutôt en tant que user normal ... sauf lorsqu'il s'agit
d'installerdes paquets (sudo ...).
p.ex. :
$ sudo apt-get build-dep toto
$ dpkg-buildpackage -rfakeroot -us -uc -b


Tu pourrais utiliser le numéro de version pour ton paquet perso.
La commande dch est faite pour ça ...
$ dch -i

Guy







dch -i -D stable "Backport stable " par exemple

--
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/




--
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
Sébastien NOBILI
Le samedi 09 novembre 2013 à 20:30, Charles Plessy a écrit :
depuis la version 1.14.7 de dpkg, dpkg-buildpackage utilise automatiquement
fakeroot si nécessaire. Donc on peut omettre -rfakeroot.



Ça c'est une bonne nouvelle, ça va augmenter l'espérance de vie de mes
claviers ;-)

Merci pour l'info

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/