[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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



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


Reply to: