On Thu, 24 Aug 2000, Alessandro Vernet wrote:

> J'eusse espere qu'il y ait un moyen miracle permettant de packager un
> executable avec tous les so dont il depend en recreant ainsi un nouvel

oui. C'est possible. Il suffit de cr�er un package par so, et
de rendre le nouveau package d�pendant des pr�c�dents (au moins
Debian le fait pour certains anciens programmes il me semble).

> Windows. Pourquoi ceci est-il possible sous Windows et pas Linux (i.e. a
> moins d'utiliser -static)?

Windows a-t-il le concept de versions d'objets partag�s ?  Si oui,
a-t-il le concept de plusieurs versions cohexistantes ?  Je n'utilise
pas trop Windows, mais � ce que j'ai vu de l'installation de Windows
dans le pass�, il n'est pas rare qu'un programme X installe sa version
de la DLL sur une autre, et que cela casse ensuite d'autres programmes,
m�mes modernes.

Mais faisons une �quation simple;

   UNIX == open source == facile de recompiler

   so sous UNIX == versionables == facile � installer plusieurs

   La somme des deux donne:
      - parfois on casse la compatibilit� quand il s'agit
        de corriger des bugs s�rieux, au lieu d'ajouter
        du code dans la so genre:
           if program_is_internet_explorer
              use winsock 2.1;
           else
              use buggy_winsock

Lorsque les programmes que tu utilisent ne sont pas open source,
la fa�on Linux rend les choses vraiment mauvaises (star office: a ses
propres so s'il voit que les tiennent ne sont pas les bonnes).

D'o� l'avantage d'avoir une distribution tr�s �tendue qui teste
� fond ce genre de choses, en incluant parfois les programmes
commerciaux propri�taires dans le test (non-free de la Debian).

Mais il peut aussi arriver qu'une so trop ancienne n'offre pas
le support d'une fonction X ou Y, nouvelle. C'est un choix
du cr�ateur du programme entre compatibilit� ascendante et
simplification d'impl�mentation. Un programme open-source
portable sur multiples OS UNIX et architectures devrait
�tre compilable avec � peu pr�s toutes les libc des 3
derni�res ann�es (vulcan tourne libc5 encore, et
� peu pr�s tout ce que j'utilise dessus, 100% open-source
bien s�r fonctionne, m�me des versions r�centes d'Apache,
sendmail, etc).

PS: pour ta question pr�cise sur le ld-linux, je ne sais
pas. En tous cas quand on avait libc5/libc6 compatibilit�,
la libc5 �tait compil�e sp�cialement pour utiliser un
root de /usr/libc5 ou quelque chose comme �a --- cela peut
te donner une id�e assez affreuse de comment r�soudre le
probl�me dans le cas g�n�ral: tourner ton programme
en chroot).


--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question.

Répondre à