-
- Posté le 19/08/2008, 10h20 , édité le 19/08/2008, 16h10
Écrit par :
Ces derniers jours, bien qu'on eusse cru que je ne faisais que flemmarder devant mon ordinateur, à mener ce train-train du nolife qu'à peine je revendiquerais, je faisais des pieds et des mains pour offrir une série de paquets absents des dépôts Zenwalk.
Zenkoi???
Pour ne pas avoir à me répéter, ma présentation de la distribution GNU/Linux Zenwalk se trouve sur cet article.
Les .tgz
Comme je l'ai expliqué, Zenwalk étant basée sur Slackware, elle utilise le système des paquets à l'extension .tgz.
Leur fonctionnement est assez simple : il s'agit d'archives contenant directement l'arborescence et les fichiers requis pour faire fonctionner le logiciel. Par exemple, un .tgz contiendra au moins un fichier /usr/bin/lanceurduprogramme. Il contiendra aussi un fichier .desk décrivant le logiciel : nom, version, description.
Pour l'installer, on utilise la commande « installpkg », qui ira copier les fichiers et les dossiers directement dans l'arborescence du système, rendant ainsi le programme utilisable directement, et sauvegardera la liste des fichiers insérés dans /var/log. La commande « removepkg » permet de consulter cette liste, et d'en supprimer simplement le contenu, désinstallant le logiciel.
Les ZENBUILD
Pour créer des .tgz, on peut utiliser ce que l'on appelle des « SlackBuild ». Il s'agit de scripts qui lanceront la compilation du programme (pour le convertir en langage machine) et ira simuler une copie de l'arborescence vers un dossier, qui sera ensuite archivé sous la forme d'un .tgz.
Il est possible de les utiliser, mais Zenwalk recommande cependant l'utilisation des scripts ZENBUILD. Dans ces scripts, il faut indiquer le nom du logiciel, sa version, sa description, son site web, l'emplacement des sources, l'architecture pour laquelle on désire compiler (i486 est suggéré, mais je reviendrai sur ce point), etc. La commande « buikdpkg », qui est installée indépendemment du système de base, utilisera ce script pour créer un build-*.sh (script BASH), après avoir téléchargé l'archive contenant le code source. Une fois l'archive décompressée, le script exécutera les commandes requises par l'installation et créera le .tgz selon l'organisation demandée par Zenwalk. Et pour faciliter la diffusion, les dépendances sont listées dans un fichier .dep. C'est pour cela qu'il est recommandé d'utiliser les ZenBuild.
C'est rigiolo, et si j'essayais ?
Au départ, si je voulais passer sous Gentoo, c'était pour le plaisir de compiler mes logiciels. Je suis ensuite passé à Zenwalk car la performence et le mode d'utilisation m'ont déjà satisfait.
Le plaisir de la compilation a pu continuer à perdurer, puisqu'après mon installation, j'étais face à un triste constat : la pauvreté du parc de logiciels proposé pour la MAO.
J'ai alors commencé par compiler à partir des sources, sans avoir connaissance des spécifications de Zenwalk quant à l'installation des logiciels (ce qui m'a vallu une réinstallation, car ils étaient mal installés). C'était loin d'être propre, mais ça fonctionnait, et j'ai pu faire un medley pour fêter ça.
C'est alors que je me suis dit que je pouvais mettre à profit mes compétences et ma patience en matière de compilation afin d'élargir le panel en proposant mes logiciels favoris aux Zenwalkers afin qu'ils se retrouvent dans les dépôts officiels.
Je commence à me mettre à l'ouvrage, et me renseigne sur la manière de concevoir des paquets. J'ai alors proposé une série de paquets sur le ZUR. Puis, armé de ma pratique correcte de l'anglais, j'en ai proposé la plupart directement sur le forum anglophone de Zenwalk. La plupart n'a pas de réponse, mais pour d'autres, j'ai reçu des critiques, des conseils, et j'ai appris beaucoup de choses.
Et c'est depuis hier soir que mon premier paquet a été mis en dépôt « snapshot » (dépôt de test pour préparer la future version). Et pas des moindres, puisqu'il s'agit de mon favori : Ardour ! En complément, trois dépendances sont été ajoutées : LibLO, LibLRDF et Aubio.
Ce n'est que le début, puisque d'autres logiciels sont en phase de test : ZynAddSubFX, Rakarrack, JAMin, les LADSPA, etc.
Et c'est difficile ?
Fondamentalement, le principe du ZENBUILD est très simple, car bien expliqué. Tant que l'on reste dans le cadre d'un mode d'installation « standard » (commandes « make » et « make install »), le reste n'est qu'une question de dépendances à assurer pour que le ZenBuild réussisse.
Mais dans 15% des cas, le processus peut s'avérer bien plus compliqué. Par exemple, Ardour ne s'installe qu'avec les commandes « scons » et « scons install », qu'il faut alors adapter aux exigences du ZenBuild. Toujours dans le cas de ce paquet, l'installation via la compilation de crée pas de fichier .desktop, qui sert à lancer l'application via les menus du bureau. Il faut donc ajouter soi-même au ZENBUILD des commandes pour créer ce fichier, et pour déplacer une icône.
Mais il y a pire : LilyPond est assez difficile à compiler car il demande des fonctions issues de TeX, qu'on peut installer via le paquet teTeX, mais dont la version proposée pour Zenwalk ne fonctionne pas en root... On se console en se disant que le paquet ne nécessite plus ces dépendances une fois compilé.
Encore plus chiant : les paquets qui se compilent pour une utilisation « sur place ». Le lanceur est mis dans le dossier des sources, et peut s'exécuter directement là. Il faut donc demander au ZENBUILD de déplacer les fichiers requis pour une utilisation classique. Pire encore : certains LADSPA qui s'installent indépendemment du ZenBuild. Il faut donc user de divers stratagèmes pour envoyer les fichiers vers le .tgz.
Le problème de l'architecture
De manière générale, il est demandé de compiler les paquets pour l'architecture i486. L'ennui, c'est que cette architecture est vielle de 20 ans, et que les performances ne sont pas adaptées aux machines d'aujourd'hui. Dans le cas des logiciels de MAO, il est risible d'espérer faire du travail « professionnel » avec des logiciels pas adaptés à une majorité d'ordinateurs puissants, requis pour travailler dans des conditions optimales.
J'ai donc commencé par des tests sur mon ordinateur, et le constat est sans appel : le tout est deux fois plus rapide. La raison est que l'architecture i686 englobe les processeurs dual core. J'ai pu alors voir ces logiciels utiliser mon processeur à véritable capacité.
Ma décision est donc prise de faire mes ZenBuild de logiciels de MAO pour i686, mais de garder leurs dépendances en i486, pour les utilisateurs « lambda ».
Quand on se dit qu'Ubuntu est en i386, il y a de quoi pleurer...
Mes ZenBuild
La liste des logiciels dont je m'occupe est disponible sur mon profil du ZUR.