Introduction

Ce post aborde les actions à entreprendre pour rebuilder un package debian. Pour ce faire, je propose d'utiliser les outils pbuilder et pdebuild qui utilisent d'un environnement de construction propre (chroot) permettant de vérifier les dépendances de construction. Les commandes ont été lancées sur la distribution Ubuntu 8.10 64 bits

Installation/Configuration des outils de packaging

Installer pbuilder

$ sudo aptitude install pbuilder

Modifier/créer le fichier ~/pbuilderrc et rajouter :

DISTRIBUTION=intrepid # a changer en fonction de la version
PBUILDERSATISFYDEPENDSCMD=/usr/lib/pbuilder/pbuilder-satisfydepends
BUILDRESULT=/var/cache/pbuilder/result/
DEBBUILDOPTS="-sa"
export DEB_DH_SHLIBDEPS_ARGS_ALL="-X SELFCERT.EXE"

Préparer l'environnement

Lancer la commande :

$ sudo pbuilder create
$ sudo pbuilder update --override-config

Installer les packages pour compiler.

$ sudo aptitude install devscripts cdbs automake

Exemple : Rebuilder Amarok pour Intrepid

Voici un exemple dont j'ai du effectué pour corriger une fonctionnalité d'Amarok. Dans Amarok, il est possible de récupérer les informations sur un artiste depuis wikipedia. Or cela ne fonctionne pas car la langue est toujours demandée. En visitant quelques forum, j'arrive à trouver la solution mais le correctif n'est pas encore disponible pour Intrepid 64 bits. Que faire ? Et bien, on recompile l'application et le package.

On récupère les sources de amarok pour Intrepid. J'utilise pour cela le site http://packages.ubuntu.com/ et je récupère le lien pointant vers le fichier .dsc du paquet recherché.

cd /tmp
dget -ux http://archive.ubuntu.com/ubuntu/pool/main/a/amarok/amarok_1.4.10-0ubuntu3.1.dsc
cd amarok-1.4.10

J'applique le patch qui corrige la fonctionnalité voulue, en modifiant le fichier. Relativement simple, j'ai qu'une ligne à modidifier.

vi +4189 amarok/src/contextbrowser.cpp
    // Ok lets remove the top and bottom parts of the page
-    m_wiki = m_wiki.mid( m_wiki.find( "<h1 class=\"firstHeading\">" ) );
+    m_wiki = m_wiki.mid( m_wiki.find( "<h1 id=\"firstHeading\"" ) );
    m_wiki = m_wiki.mid( 0, m_wiki.find( "<div class=\"printfooter\">" ) );
    // Adding back license information
    m_wiki += copyright;

Installation des dépendances de build

sudo aptitude install quilt libtool kdelibs4-dev libxine-dev libdbus-qt-1-dev libtag1-dev libsqlite3-dev libtunepimp-dev libmysqlclient15-dev libpq-dev libvisual-0.4-dev libsdl1.2-dev libifp-dev libusb-dev libgpod-nogtk-dev libnjb-dev libmtp-dev ruby1.8-dev
/tmp/amarok-1.4.10/$ pdebuild

Le paquet générés sont dans : /var/cache/pbuilder/result/

Il ne reste qu'à installer les paquets :

$ cd /var/cache/pbuilder/result/
$ dpkg -i amarok*.deb

la commande dch permet de modifier le fichier debian/control et incrémenter le numéro de version

ubuntu/rebuilder_un_package_.deb.txt · Dernière modification: 2017/07/07 14:42 (modification externe)
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0