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