Les derniers points manquants dans la version d'Acam Winter pour Linux ont tous été pris en compte et terminés, après moultes recherches. La programmation Linux tient plus de l'alchimie que du processus industriel. Par exemple, la gestion de la molette de la souris sur X passe par un pseudo-appui sur les boutons 4 et 5 de la souris. Ce n'est expliqué nulle part, commenté nulle part, il faut juste le savoir. C'est pourquoi Linux est une telle "usine à gourous" : le savoir y est empirique, transmis de bouche à oreille, et noyé dans la montagne de sites recopiant le résultat de la commande "man". Nous avons donc maintenant une version quasi fonctionnelle d'Harmony Assistant sur Acam-Winter Linux. Les dépendances ont été réduites, il faut voir maintenant si on peut aller plus loin. Pour mémoire, il y a trois manières d'utiliser un module externe ou système dans une application : - La plus courante est appelée liaison dynamique ou dépendance. Lors du lancement de l'application, les modules nécessaires sont recherchés dans le système. Ils seront utilisés par l'application. S'ils ne sont pas tous présents, l'application ne se lancera pas. - La plus sûre est appelée liaison statique. Le module est directement intégré dans l'application, augmentant de ce fait sa taille. C'est la solution à privilégier pour limiter les ennuis, mais ce n'est pas toujours possible. - Entre les deux, lorsqu'un module n'est pas absolument nécessaire, et lorsque l'application peut se débrouiller sans, il y a le "weak link". La liaison dynamique est effectuée par le programme lui-même après son démarrage. Si le module n'est pas trouvé, l'application continue quand même. Voici la liste des dépendances d'Harmony Assistant à ce jour. linux-gate.so.1 libasound.so.2 => /usr/lib/i386-linux-gnu/libasound.so.2 libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 librt.so.1 => /lib/i386-linux-gnu/librt.so.1 libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 libfontconfig.so.1 => /usr/lib/i386-linux-gnu/libfontconfig.so.1 libfreetype.so.6 => /usr/lib/i386-linux-gnu/libfreetype.so.6 libm.so.6 => /lib/i386-linux-gnu/libm.so.6 libc.so.6 => /lib/i386-linux-gnu/libc.so.6 /lib/ld-linux.so.2 libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 libz.so.1 => /lib/i386-linux-gnu/libz.so.1 libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 Et en voici le détail, avec les questions et problèmes que nous nous posons : linux-gate (Accès à Linux) Trop lié au système pour envisager un passage en statique libasound (Alsa, gestionnaire sonore) Trop volumineux, complexe et lié au système pour passer en statique libdl (laison dynamique) D'après certains forums, trop lié au système pour passer en statique librt (Extensions Temps Réel) Gestions des entrées-sorties, flux, fichiers, etc. D'après certains forums, trop lié au système pour passer en statique libpthread (Gestion des processus) D'après certains forums, trop lié au système pour passer en statique libX11 (Système d'interface homme-machine X11) Trop volumineux, complexe et lié au système pour passer en statique Necessite libfontconfig, libxdcmp libfontconfig (Fontconfig, gestion des polices) Trop complexe et volumineux pour passer en statique libfreetype (Freetype, affichage de polices) Trop complexe et volumineux pour passer en statique libm (bibliothèque mathématique du C) Tentative de passage en statique inopérante, raison indéterminée à ce jour libc (bibliothèque C standard) Le passage en librairie statique semble déconseillé. À vérifier. Tentative de passage en static inopérante, raison indéterminée à ce jour ld-linux (chargement dynamique de librairies). Permet les weak links. Vérifier le rapport avec libdl. libxcb (interface sur le protocole X-Window). Semble être une alternative à Xlib. Pas certain de comprendre qui en a besoin. necessite libXau libexpat (XML) lecture de fichier XML. Tentative de passage en statique inopérante, probablement utilisée par une autre lib (fontes, etc) libz (Zlib) compression ZIP. Tentative de passage en statique inopérante, probablement utilisée par une autre lib (fontes, etc) libXau (X11 Authorization Protocol) Quelle utilité ? libXdcmp (X Display Manager Control Protocol) : interactions avec le gestionnaire d'affichage de X Window La bibliothèque optionnelle libXrender, permettant les pointeurs souris en couleur, est chargée en weak-link, et ne fait fonc pas partie des dépendances. Voila, il nous reste à trouver des réponses à toutes nos questions sur ces modules. Mais je crois que ça pourra attendre 2015 Joyeux réveillon à tous ! |
|
|
by Olivier Guillion | | | |
| Comments
Eh bien, bravo pour tous ces progrès. Il faudra penser à écrire un petit bouquin sur vos nombreuses trouvailles à propos de Linux ! Meilleurs voeux pour l'année qui arrive. |
|
|
|
|
|