24oct. 2011
Compiler Linuxsampler à la sauce Debian
21:42 - Par bpier - Debian MAO - un commentaire
Ca vaut le coup de compiler soi-même linuxsampler (LS) pour au moins une bonne raison : ce sampler sera optimisé pour votre machine Debian/Ubuntu. Détails.
s pré-requis
Il faut avant toute chose installer les paquets nécéssaires à la compilation de Linuxsampler, s'ils ne sont pas déjà présents sur votre système, dont libjack-dev, très important pour que LS puisse fonctionner avec jack, le serveur audio qui nous est si cher en MAO sous Linux. Il faut également installer g++, fakeroot, debhelper, pkg-config, glibmm-2.4, bison et sqlite3, libsqlite3-dev, intltool, libgtkmm-2.4-dev, docbook-xsl, libtool, doxygen, subversion, autoconf, autotools-dev...
La procédure
Tout d'abord, créez un dossier dans lequel seront opérées les compilations. Installez-le où vous voulez. Direction le net. Télécharger les paquets qui nous sont utiles sur le sites de LS : ici Suivez l'ordre proposé sur le site de LS : d'abord libgig, puis liblscp, puis linuxsampler. Respectez l'ordre de compilation et d'installation s'est important :
svn co https://svn.linuxsampler.org/svn/libgig/trunk libgig svn co https://svn.linuxsampler.org/svn/liblscp/trunk liblscp svn co https://svn.linuxsampler.org/svn/linuxsampler/trunk linuxsampler svn co https://svn.linuxsampler.org/svn/gigedit/trunk gigedit
Lancez donc en console le premier téléchargement : svn co https://svn.linuxsampler.org/svn/libgig/trunk libgig. Un fois fait, rendez-vous dans le dossier du paquet téléchargé, tapez svn update. Notez ne numéro svn de révision, il vous servira plus tard. Puis, tapez cette fois : make -f Makefiles.cvs (ça peut être un Makefiles.svn, auquel cas : make -f Makefile.svn). Direction le dossier Debian (les developpeurs de LS ont pensez à vous!). Une fois dedans, ouvrez avec gedit ou un autre éditeur de texte le fichier rules. Dans ce fichier, localisez les lignes qui commencent par ./configure.... Il y en a deux. Placez devant ./configure vos FLAGS de compilation, ceux qui sont adaptés à votre machine. Pour ma part, comment j'utilise un Core 2 duo, voilà ce que ça donne :
CXXFCLAGS="-march=core2 -O2 -pipe -ffast-math -fomit-frame-pointer -funroll-loops"
Ce qui donnera :
CXXFCLAGS="-march=core2 -O2 -pipe -ffast-math -fomit-frame-pointer -funroll-loops" ./configure --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info
A NOTER : les flags que j'utilise ne sont pas les plus violents. Une chose, ne pas choisir l'option -O3, souvent déconseillée. Gardez donc -O2. De plus, vous constatez également que je ne propose pas de créer de A à Z son propre empaquetage Debian (pour cela, il aurait fallu passer par la commande dh_make). Bref, nous nous contentons ici d'utiliser le dossier Debian existant).
Fin de la parenthèse. Revenez dans le dossier libgig-xxx en tapant la commande cd .. Editez le fichier changelog, en donnant le numéro de version svn sous forme +svnnuméro, suivi si ça vous chante de votre pseudo. Pour moi, ça donne : paquet-versionXXX=svnXXXX-bpier-build1 (image ci-dessous). Ca permet de s'y retrouvez dans les différentes versions compilées par soi-même. Enregistrez, revenez dans le dossier libgig. Si vous possédez un dual ou un quad core, écritapez CONCURRENCY_LEVEL=n (n étant le nombre de core de votre proc), juste avant la commande dpkg-buildpackage -rfakeroot -b. Cet ajout accélère la construction. Une fois les paquets .deb créés, installez les. Passez au paquet suivant, c'est-à-dire liblscp, recommencez la procédure. Et ainsi de suite. A l'arrivée, vous aurez créé un tas de paquets deb, optimisés pour votre PC, que vous aurez installés au fur et à mesure.
Apprendre à packager
Sur votre lancée, pourquoi ne pas chercher à apprendre à packager d'autres paquets. Comme jack-audio-connection-kit par exemple. Mais, c'est un peu plus compliqué. Il faut, pour ce faire, récupérer, les fichiers Debian des paquets en question, le debian.tar.gz, comme le fichier orig.tar.gz et, pendant qu'on y est, le fichier xxx.dsc. Vous ne le ferez que pour vous et à titre expérimental. Exemple d'un paquet très expérimental, puisqu'il n'est pas encore dans Sid dans cette version toute récente à l'heure où j'écris ces lignes, paquet récupéré via git : jack1-0.123.3 que je n'ai toutefois pas encore testé sur ma bécane (il peut ne pas fonctionner correctement) :
un commentaire
Super Tuto !
Il manque juste la dépendance uuid-dev à rajouter.