Bonjour, On Sat, May 08, 2004 at 04:33:39PM +0200, JusTiCe8 wrote: > Bonjour, > > attention risque d'apparition d'un gros troll m�chant pas beaux, j'aurai > pr�venu ;). >
Pkoi un troll ? Ca me parait un tr�s bonne question, qui n'a pas de raison de faire un troll. > Je me demandais si quelqu'un parmi vous pouvez m'expliquer le pourquoi > du comment de la pr�sence des diff�rentes libpngx-dev (x= ,2,3), leur > utilit� et la raison pour laquelle un paquet A utilise une version y > plut�t que z (avantages/inconv�nients). > > Aussi, et c'est la que c'est le plus emb�tant, c'est que par un esprit > plus que tordu et, �videmment ;), par le plus grand des hasard, les libs > qt3 (kde) d�pendent d'une version (libpng-dev) et les lib gtk (gnome) > d'une autre (libpng2-dev), ces 2 versions �tant conflictuelles. > > Pour ma part, je pense que c'est une ab�rration de voir une chose pareil > et c'est plus que sao�lant de devoir vir� des libs de dev qt pour > compiler une appli gtk et vice-versa. Surtout que la solution du > chroot-ing me parait un peu lourde dans ce genre de cas. > Ben en fait c'est tr�s simple, C'est une question d'API. Les API de libpngX et libpngY ( X != Y ) sont incompatibles ( je ne parles pas des paquets de dev ). La c'est tr�s simple, puisque le fichier qui contient ces API ( � savoir les .so ) portent la marque de la version ( .X ou .Y + dans le fichier ) et son g�r� par ld. Donc pour les librairies y a pas de pb. En revanche, et c'est la que ca se corse, les API des fichiers header sont aussi diff�rents, mais peuvent ne pas l'�tre suffisament pour emp�cher une compil ( ie g�n�ralement le cas quand une fonction initX() faisait A + B et que pour des raisons quelconques elle fait plus que A mais il faut faire B quand m�me � la main, ca se voit pas, mais ca fait un SIGSEGV ). Et la, c'est rare que le fichiers headers porte la marque de leur version, ou plutot c'est compliqu� qu'il porte la marque de leur version : - les fichiers headers sont souvent dans /usr/include/ ( png.h par ex ) - tous les progs qui utilisent un header l'utilisent explicitement ( ou presque ) #include <png.h> Donc si les headers port� la marque de leur version, comme avec ld, ca serait bien, mais il faudrait une certaines forme de gestion de la version ( note ca existe, ca s'appelle pkgconfig, avec lequel tu fais pkgconfig "gtk2.0 > 2.0.0" par exemple" ). La plupart des programmes n'utilisant pas ce type de chose, ben on se trouve dans la n�cessit� d'avoir recour � des libs exclusives ( parcequ'elles ont le meme fichier header qu'elles installent au meme endroit ). Note : ce type de probleme peut se r�soudre avec des bons configure/config.h/Makefile... Mais pour penser � tous et faire des programmes parfait c'est difficile. Voila ma r�ponse -- peut etre fausse Cordialement Sylvain Le Gall

