Myriad Blog 1.3.0 Tuesday, Aug 14th, 2018 at 11:07am 

Wednesday, Dec 31st, 2014 at 05:06pm
Acam Winter étape 26

 
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

    Comment from bubu42 Wednesday, Dec 31st, 2014 at 07:00pm
    (No subject)
    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.


    Most recent first
    Oldest first

    Top of page
    Legal information Last update:  (c) Myriad