====== Modifier les sources d'un paquet debian afin de le personnaliser ======
* Objet : Modifier les sources d'un paquet debian afin de le personnaliser
* Niveau requis : {{tag>débutant avisé}}
* Commentaires : Adapter, personnaliser un logiciel
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
* Suivi : {{tag>à-placer}}
* Création par [[user>cyrille]] 28/02/2022
* Testé par [[user>cyrille]] 28/02/2022
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=376710#p376710 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
**Nota :**
Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !
===== Modifier les sources d'un paquet debian afin de le personnaliser =====
Juste un how-to to pour montrer comment modifier les sources d'un paquet format deb dans le cas où vous souhaitez modifier un logiciel.
Suite à une discussion avec une connaissance, j'ai pris l'exemple d'easytag. Une demande visant à limiter la liste des genres proposés se prétant bien à cet exercice.
===== Pré requis =====
==== Installer micro pour une édition facile des fichiers ====
apt install micro
==== Installer les paquets nécessaires à la compilation de paquet debian ainsi que dpkg-dev (pour apt source) ====
apt install devscripts dpkg-dev
==== Modifier les sources.list afin d'inclure les sources ====
Supposons un sources.list de ce type (cas d'une **bulleyes**)
cat /etc/apt/sources.list
deb http://deb.debian.org/debian/ bullseye main contrib non-free
deb http://deb.debian.org/debian bullseye-backports main contrib non-free
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
# bullseye-updates, to get updates before a point release is made;
# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free
Il suffit alors de rajouter les deb-src (préfixe)
Donc ajouter à ce fichier
deb-src http://deb.debian.org/debian/ bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye-backports main contrib non-free
==== Mettre à jour la base de données d'apt ====
apt update
Si on veut modifier un paquet déjà installer, commencer par le desinstaller et le purger
apt purge easytag
===== Récupérer les sources =====
==== Créer un dossier de travail temporaire et s'y rendre ====
cd mkdir easytag && cd easytag
====Récupérer les sources du paquet à modifier ====
apt source easytag
Ce qui donne après téléchargement
ls
easytag-2.4.3 easytag_2.4.3-4build1.debian.tar.xz easytag_2.4.3-4build1.dsc easytag_2.4.3.orig.tar.xz
==== Se rendre dans le dossier des sources et apporter les modifications souhaitées ====
cd easytag-2.4.3
micro src/genres.h
Ne garder que les 10 premières entrées du genre. Sauvegarder.
A partir de ce moment il faut régénérer un nouveau paquet format deb.
===== Générer un nouveau paquet debian =====
On commence par installer les dépendances de construction du paquet
apt build-dep easytag
On apporte un NMU au changelog
dch -n "Modification de la liste des genres. 25/02/2022. Par Cyrille"
On vérifie que les modifications soient bien prises en compte
cat debian/changelog
easytag (2.4.3-4build1.1) UNRELEASED; urgency=medium
* Non-maintainer upload.
* Modification de la liste des genres. 25/02/2022. Par
Cyrille
-- ragnarok Fri, 25 Feb 2022 19:01:54 +0100
===== Construction du nouveau paquet =====
On peut ensuite construire le nouveau paquet avec les modifications apportées
debuild -b -uc -us
Le paquet debian est alors généré, il se trouve à un niveau d'arborescence supérieur
cd ..
ls
easytag-2.4.3 easytag_2.4.3-4build1.1_amd64.buildinfo easytag_2.4.3-4build1.1_amd64.deb easytag_2.4.3-4build1.dsc easytag-dbgsym_2.4.3-4build1.1_amd64.ddeb easytag-nautilus-dbgsym_2.4.3-4build1.1_amd64.ddeb
easytag_2.4.3-4build1.1_amd64.build easytag_2.4.3-4build1.1_amd64.changes easytag_2.4.3-4build1.debian.tar.xz easytag_2.4.3.orig.tar.xz easytag-nautilus_2.4.3-4build1.1_amd64.deb
===== Installer le nouveau paquet =====
dpkg -i easytag_2.4.3-4build1.1_amd64.deb
Et hop c'est tout... Si on vérifie
{{/file-R9c1c4d345f6af21524bf0a7ccd01e029.png}}
===== Prologue =====
Afin d'éviter une mise à jour du paquet qui ferait perdre les modifications, geler le paquet :
apt hold easytag
easytag passé en figé (« hold »).
Lister les paquets geler
dpkg --list | grep ^hi
hi easytag
2.4.3-4build1.1 amd64 GTK+ editor for audio file tags
Pour desinstaller le paquet
dpkg -r easytag