• =?utf-8?Q?Probl=C3=A8me_pour_servir_=C3=A0_un_ex=C3=A9cutable_?= =?utf-

    From [email protected]@21:1/5 to All on Sun Apr 30 14:00:01 2023
    Bonjour,

    J'ai un problème pour faire fonctionner un programme (truc) qui a une dépendance à libc (à libc.so.6).

    Il fonctionne sans problème sur 6 hôtes debian11 sur lesquels je l'ai testé. Sans besoin d'utiliser LD_LIBRARY_PATH.

    Il ne fonctionne pas sur l'hôte debian11 configuré de zéro par un utilisateur peu coopératif qui attend que "ça marche tout seul" sans se poser de telles questions.

    Voici les dépendances de l'exécutable
    $ ldd truc
    linux-vdso.so.1 (0x00007ffef8f73000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4f87607000) /lib64/ld-linux-x86-64.so.2 (0x00007f4f87813000)

    L'hôte (Architecture : x86_64) et l'exécutable (En-tête ELF: Classe: ELF64) sont en 64 bits...

    Sur l'hôte qui pose problème :
    - libc.so.6 est bien présent. Et est donc inaccessible à l'exécutable.
    - la commande ldconfig est introuvable. J'attends de savoir si /usr/sbin/ldconfig existe.

    Sur un hôte qui sert correctement libc.so.6 au même exécutable, il y a les liens symboliques suivants vers ld-2.31.so

    lrwxrwxrwx 1 root root 32 Apr 19 23:17 /lib64/ld-linux-x86-64.so.2 -> /lib/x86_64-linux-gnu/ld-2.31.so

    -rwxr-xr-x 1 root root 177928 Apr 19 23:17 /lib/x86_64-linux-gnu/ld-2.31.so lrwxrwxrwx 1 root root 10 Apr 19 23:17 /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -> ld-2.31.so

    Cela manque sur l'hôte qui pose problème.

    Je n'ai JAMAIS eu besoin de gérer cette dépendance occasionnelle du point de vue de l'utilisateur.

    Peut-être qu'installer gcc réglerait le problème ou utiliser un 'dpkg reconfigure' ou créer à la main un lien symbolique.
    Je crains de m'égarer en ne respectant pas la manière de faire ça sur un hôte debian (cad configurer et utiliser le dynamic loader, si j'ai bien compris).

    Comment traiter _propremement_ ce problème ?

    Merci.

    <html><body><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><div>Bonjour,<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>J'ai un problème pour faire fonctionner un programme (truc) qui a une dé
    pendance à libc (à libc.so.6).<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>Il fonctionne sans problème sur 6 hôtes debian11 sur lesquels je l'ai testé. Sans besoin d'utiliser LD_LIBRARY_PATH.<br data-mce-bogus="1"></div><div><
    br data-mce-bogus="1"></div><div>Il ne fonctionne pas sur l'hôte debian11 configuré de zéro par un utilisateur peu coopératif qui attend que "ça marche tout seul" sans se poser de telles questions.<br data-mce-bogus="1"></div><div><br data-mce-bogus=
    "1"></div><div>Voici les dépendances de l'exécutable<br data-mce-bogus="1"></div><div>$ ldd truc<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; linux-vdso.so.1 (0x00007ffef8f73000)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; libc.so.6 =&gt; /lib/x86_
    64-linux-gnu/libc.so.6 (0x00007f4f87607000)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /lib64/ld-linux-x86-64.so.2 (0x00007f4f87813000)<br><br data-mce-bogus="1"></div><div>L'hôte (Architecture&nbsp;: x86_64) et l'exécutable (En-tête ELF: Classe:&
    nbsp; ELF64) sont en 64 bits...<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>Sur l'hôte qui pose problème :</div><div>- libc.so.6 est bien présent. Et est donc inaccessible à l'exécutable.<br></div><div>- la commande <strong>
    ldconfig</strong> est introuvable. J'attends de savoir si /usr/sbin/ldconfig existe.<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>Sur un hôte qui sert correctement libc.so.6 au même exécutable, il y a les liens symboliques
    suivants vers <span style="font-family: courier new, courier, monaco, monospace, sans-serif;" data-mce-style="font-family: courier new, courier, monaco, monospace, sans-serif;">ld-2.31.so</span><br></div><div><br data-mce-bogus="1"></div><div><span style=
    "font-family: courier new, courier, monaco, monospace, sans-serif;" data-mce-style="font-family: courier new, courier, monaco, monospace, sans-serif;">lrwxrwxrwx 1 root root 32 Apr 19 23:17 /lib64/ld-linux-x86-64.so.2 -&gt; /lib/x86_64-linux-gnu/ld-2.31.
    so</span><br><br data-mce-bogus="1"></div><div><span style="font-family: courier new, courier, monaco, monospace, sans-serif;" data-mce-style="font-family: courier new, courier, monaco, monospace, sans-serif;">-rwxr-xr-x 1 root root 177928 Apr 19 23:17 /
    lib/x86_64-linux-gnu/ld-2.31.so</span><br><span style="font-family: courier new, courier, monaco, monospace, sans-serif;" data-mce-style="font-family: courier new, courier, monaco, monospace, sans-serif;">lrwxrwxrwx 1 root root&nbsp;&nbsp;&nbsp;&nbsp; 10
    Apr 19 23:17 /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -&gt; ld-2.31.so</span><br><br data-mce-bogus="1"></div><div>Cela manque sur l'hôte qui pose problème.<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>Je n'ai JAMAIS eu besoin
    de gérer cette dépendance occasionnelle du point de vue&nbsp; de l'utilisateur.<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>Peut-être qu'installer gcc réglerait le problème ou utiliser un 'dpkg reconfigure' ou créer à la
    main un lien symbolique.<br data-mce-bogus="1"></div><div>Je crains de m'égarer en ne respectant pas la manière de faire ça sur un hôte debian (cad configurer et utiliser le dynamic loader, si j'ai bien compris).<br data-mce-bogus="1"></div><div><br
    data-mce-bogus="1"></div><div>Comment traiter _propremement_ ce problème ?<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>Merci.<br data-mce-bogus="1"></div></div></body></html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From [email protected]@21:1/5 to All on Sun Apr 30 14:20:02 2023
    Je corrige : il s'agit plutôt du dynamic _linker_ (et non dynamic loader).

    Pour régler le problème décrit, il s'agirait peut-être de rendre disponible /lib64/ld-linux-x86-64.so.
    Qu'en pensez-vous ?



    Quant à linux-vdso.so (virtual symbolic link to the bitness-compatible ; vDSO = virtual dynamic shared object), je ne sais pas en dire grand chose (diagnostiquer/corriger)


    https://man7.org/linux/man-pages/man7/vdso.7.html


    De: "roger tarani" <[email protected]>
    À: "Liste Debian" <[email protected]>
    Envoyé: Dimanche 30 Avril 2023 13:53:36
    Objet: Problème pour servir à un exécutable sa dépendance à libc.so.6 (debian 11)

    Bonjour,

    J'ai un problème pour faire fonctionner un programme (truc) qui a une dépendance à libc (à libc.so.6).

    Il fonctionne sans problème sur 6 hôtes debian11 sur lesquels je l'ai testé. Sans besoin d'utiliser LD_LIBRARY_PATH.

    Il ne fonctionne pas sur l'hôte debian11 configuré de zéro par un utilisateur peu coopératif qui attend que "ça marche tout seul" sans se poser de telles questions.

    Voici les dépendances de l'exécutable
    $ ldd truc
    linux-vdso.so.1 (0x00007ffef8f73000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4f87607000) /lib64/ld-linux-x86-64.so.2 (0x00007f4f87813000)

    L'hôte (Architecture : x86_64) et l'exécutable (En-tête ELF: Classe: ELF64) sont en 64 bits...

    Sur l'hôte qui pose problème :
    - libc.so.6 est bien présent. Et est donc inaccessible à l'exécutable.
    - la commande ldconfig est introuvable. J'attends de savoir si /usr/sbin/ldconfig existe.

    Sur un hôte qui sert correctement libc.so.6 au même exécutable, il y a les liens symboliques suivants vers ld-2.31.so

    lrwxrwxrwx 1 root root 32 Apr 19 23:17 /lib64/ld-linux-x86-64.so.2 -> /lib/x86_64-linux-gnu/ld-2.31.so

    -rwxr-xr-x 1 root root 177928 Apr 19 23:17 /lib/x86_64-linux-gnu/ld-2.31.so lrwxrwxrwx 1 root root 10 Apr 19 23:17 /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -> ld-2.31.so

    Cela manque sur l'hôte qui pose problème.

    Je n'ai JAMAIS eu besoin de gérer cette dépendance occasionnelle du point de vue de l'utilisateur.

    Peut-être qu'installer gcc réglerait le problème ou utiliser un 'dpkg reconfigure' ou créer à la main un lien symbolique.
    Je crains de m'égarer en ne respectant pas la manière de faire ça sur un hôte debian (cad configurer et utiliser le dynamic loader, si j'ai bien compris).

    Comment traiter _propremement_ ce problème ?

    Merci.


    <html><body><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><div>Je corrige : il s'agit plutôt du dynamic _linker_ (et non dynamic loader).<br></div><div><br data-mce-bogus="1"></div><div>Pour régler le problème
    décrit, il s'agirait peut-être de rendre disponible /lib64/ld-linux-x86-64.so.</div><div>Qu'en pensez-vous ?<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div><p style="margin: 0px;" data-mce-style="margin: 0px;">Quant à linux-vdso.so
    (virtual symbolic link to the bitness-compatible ; vDSO = virtual dynamic shared object), je ne sais pas en dire grand chose (diagnostiquer/corriger)<br></p><p style="margin: 0px;" data-mce-style="margin: 0px;">https://man7.org/linux/man-pages/man7/vdso.
    7.html<br data-mce-bogus="1"></p></div><div><br></div><hr id="zwchr" data-marker="__DIVIDER__"><div data-marker="__HEADERS__"><b>De: </b>"roger tarani" &lt;[email protected]&gt;<br><b>À: </b>"Liste Debian" &lt;[email protected]&gt;<
    <b>Envoyé: </b>Dimanche 30 Avril 2023 13:53:36<br><b>Objet: </b>Problème pour servir à un exécutable sa dépendance à libc.so.6 &nbsp;(debian 11)<br></div><div><br></div><div data-marker="__QUOTED_TEXT__"><div style="font-family:'arial' , '
    helvetica' , sans-serif;font-size:12pt;color:#000000"><div>Bonjour,<br></div><br><div>J'ai un problème pour faire fonctionner un programme (truc) qui a une dépendance à libc (à libc.so.6).<br></div><br><div>Il fonctionne sans problème sur 6 hôtes
    debian11 sur lesquels je l'ai testé. Sans besoin d'utiliser LD_LIBRARY_PATH.<br></div><br><div>Il ne fonctionne pas sur l'hôte debian11 configuré de zéro par un utilisateur peu coopératif qui attend que "ça marche tout seul" sans se poser de telles
    questions.<br></div><br><div>Voici les dépendances de l'exécutable<br></div><div>$ ldd truc<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; linux-vdso.so.1 (0x00007ffef8f73000)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; libc.so.6 =&gt; /lib/x86_64-
    linux-gnu/libc.so.6 (0x00007f4f87607000)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /lib64/ld-linux-x86-64.so.2 (0x00007f4f87813000)<br><br></div><div>L'hôte (Architecture&nbsp;: x86_64) et l'exécutable (En-tête ELF: Classe:&nbsp; ELF64) sont en 64
    bits...<br></div><br><div>Sur l'hôte qui pose problème :</div><div>- libc.so.6 est bien présent. Et est donc inaccessible à l'exécutable.<br></div><div>- la commande <strong>ldconfig</strong> est introuvable. J'attends de savoir si /usr/sbin/
    ldconfig existe.<br></div><br><div>Sur un hôte qui sert correctement libc.so.6 au même exécutable, il y a les liens symboliques suivants vers <span style="font-family:'courier new' , 'courier' , 'monaco' , monospace , sans-serif">ld-2.31.so</span><br><
    /div><br><div><span style="font-family:'courier new' , 'courier' , 'monaco' , monospace , sans-serif">lrwxrwxrwx 1 root root 32 Apr 19 23:17 /lib64/ld-linux-x86-64.so.2 -&gt; /lib/x86_64-linux-gnu/ld-2.31.so</span><br><br></div><div><span style="font-
    family:'courier new' , 'courier' , 'monaco' , monospace , sans-serif">-rwxr-xr-x 1 root root 177928 Apr 19 23:17 /lib/x86_64-linux-gnu/ld-2.31.so</span><br><span style="font-family:'courier new' , 'courier' , 'monaco' , monospace , sans-serif">lrwxrwxrwx
    1 root root&nbsp;&nbsp;&nbsp;&nbsp; 10 Apr 19 23:17 /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -&gt; ld-2.31.so</span><br><br></div><div>Cela manque sur l'hôte qui pose problème.<br></div><br><div>Je n'ai JAMAIS eu besoin de gérer cette dépendance
    occasionnelle du point de vue&nbsp; de l'utilisateur.<br></div><br><div>Peut-être qu'installer gcc réglerait le problème ou utiliser un 'dpkg reconfigure' ou créer à la main un lien symbolique.<br></div><div>Je crains de m'égarer en ne respectant
    pas la manière de faire ça sur un hôte debian (cad configurer et utiliser le dynamic loader, si j'ai bien compris).<br></div><br><div>Comment traiter _propremement_ ce problème ?<br></div><br><div>Merci.</div></div><br></div></div></body></html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From didier gaumet@21:1/5 to All on Mon May 1 10:40:01 2023
    Bonjour,

    je réponds juste pour que tu ne te sentes pas tout seul mais mes
    compétences sur le sujet ne me permettent pas de t'apporter une
    contribution pertinente ;-)

    quelques points hypothétiquement à surveiller:
    - peut-être reconfigurer ou réinstaller libc6 sur le poste qui pose
    problème puique les liens que tu cites semblent créés par ce paquet
    - faire un apt policy libc6 pour vérifier les versions disponibles et installées sur ce poste
    - peut-être vérifier si quelqu'un a joué avec Apparmor ou SElinux sur
    ce poste

    t'es pas beaucoup plus avancé, je t'avais prévenu ;-)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jean-Michel OLTRA@21:1/5 to All on Mon May 1 12:10:01 2023
    Bonjour,


    Le dimanche 30 avril 2023, [email protected] a écrit...


    Sur l'hôte qui pose problème :
    - libc.so.6 est bien présent. Et est donc inaccessible à l'exécutable.

    Bizarre, car un paquet de binaires sont liés à libc6.
    Tu peux faire, par exemple : `ldd /usr/bin/ps`

    Et quand tu dis "inaccessible", finalement, ça se manifeste comment ?

    Tu pourrais utiliser strace pour tenter de voir ce qui est attendu, et pas résolu ?

    --
    jm

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From RogerT@21:1/5 to All on Tue May 2 00:40:01 2023
    Bonsoir,

    Le message d’erreur est :
    1 : ELF not founded
    1 : Syntax error : Unterminated quoted string

    On retrouve beaucoup de discussions sur les forums stackoverflow, etc. à ce propos (défaut d’une bibliothèque ; dissuasion de lier le so à l’exécutable, etc. )

    Mais je n’ai pas trouvé de mode opératoire clair et simple pour régler ça de manière régulière, cad sans effet de bord connu ou caché.

    Je veux éviter de fabriquer des liens symboliques qui pourraient régler temporairement le problème avant de disparaître car la cause du problème aurait été oubliée.

    Merci.


    Le 1 mai 2023 à 12:03, Jean-Michel OLTRA <[email protected]> a écrit :
    
    Bonjour,


    Le dimanche 30 avril 2023, [email protected] a écrit...


    Sur l'hôte qui pose problème :
    - libc.so.6 est bien présent. Et est donc inaccessible à l'exécutable.

    Bizarre, car un paquet de binaires sont liés à libc6.
    Tu peux faire, par exemple : `ldd /usr/bin/ps`

    Et quand tu dis "inaccessible", finalement, ça se manifeste comment ?

    Tu pourrais utiliser strace pour tenter de voir ce qui est attendu, et pas résolu ?

    --
    jm

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From [email protected]@21:1/5 to All on Tue May 2 02:20:01 2023
    Merci !

    Je n'ai JAMAIS eu besoin d'installer spécifiquement ou de réparer la bibliothèque C (libc6) sur un hôte debian.

    L'utilisateur a installé sa debian11 seul à partir d'une image ISO récente. Je n'ai pas accès à sa machine. Je dois lui proposer une manip directe, simple et efficace.

    Je crois comprendre qu'il s'agit d'un problème de dynamic linker.
    Comment répare-t-on l'accès à cette bibliothèque libc qui est installée ?

    Question bonus : que peut faire un utilisateur (juste capable de recopier des lignes de commande fournies) pour diagnostiquer ce qui a pu abîmer ce système ?


    Extrait de mon message initial :

    //
    Sur l'hôte qui pose problème :
    - libc.so.6 est bien présent. Et est donc inaccessible à l'exécutable.
    - la commande ldconfig est introuvable. J'attends de savoir si /usr/sbin/ldconfig existe... Après vérification, ce fichier existe; Peut-être un problème de PATH ?...

    Sur un hôte qui sert correctement libc.so.6 au même exécutable, il y a les liens symboliques suivants vers ld-2.31.so :

    lrwxrwxrwx 1 root root 32 Apr 19 23:17 /lib64/ld-linux-x86-64.so.2 -> /lib/x86_64-linux-gnu/ld-2.31.so

    -rwxr-xr-x 1 root root 177928 Apr 19 23:17 /lib/x86_64-linux-gnu/ld-2.31.so lrwxrwxrwx 1 root root 10 Apr 19 23:17 /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -> ld-2.31.so

    Cela manque sur l'hôte qui pose problème.
    //

    ----- Mail original -----
    De: "didier gaumet" <[email protected]>
    À: "Liste Debian" <[email protected]>
    Envoyé: Lundi 1 Mai 2023 10:31:09
    Objet: Re: Fwd: Problème pour servir à un exécutable sa dépendance à libc.so.6 (debian 11)

    Bonjour,

    je réponds juste pour que tu ne te sentes pas tout seul mais mes
    compétences sur le sujet ne me permettent pas de t'apporter une
    contribution pertinente ;-)

    quelques points hypothétiquement à surveiller:
    - peut-être reconfigurer ou réinstaller libc6 sur le poste qui pose
    problème puique les liens que tu cites semblent créés par ce paquet
    - faire un apt policy libc6 pour vérifier les versions disponibles et installées sur ce poste
    - peut-être vérifier si quelqu'un a joué avec Apparmor ou SElinux sur
    ce poste

    t'es pas beaucoup plus avancé, je t'avais prévenu ;-)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From didier gaumet@21:1/5 to All on Tue May 2 08:30:01 2023
    Le mardi 02 mai 2023 à 02:18 +0200, [email protected] a écrit :
    Merci !

    Je n'ai JAMAIS eu besoin d'installer spécifiquement ou de réparer la bibliothèque C (libc6) sur un hôte debian.

    L'utilisateur a installé sa debian11 seul à partir d'une image ISO récente.
    Je n'ai pas accès à sa machine. Je dois lui proposer une manip
    directe, simple et efficace.

    Je crois comprendre qu'il s'agit d'un problème de dynamic linker.
    Comment répare-t-on l'accès à cette bibliothèque libc qui est
    installée ?

    Question bonus : que peut faire un utilisateur (juste capable de
    recopier des lignes de commande fournies) pour diagnostiquer ce qui a
    pu abîmer ce système ?


    Extrait de mon message initial :

    //
    Sur l'hôte qui pose problème :
    - libc.so.6 est bien présent. Et est donc inaccessible à
    l'exécutable.
    - la commande ldconfig est introuvable. J'attends de savoir si /usr/sbin/ldconfig existe... Après vérification, ce fichier existe; Peut-être un problème de PATH ?...

    Sur un hôte qui sert correctement libc.so.6 au même exécutable, il y
    a les liens symboliques suivants vers ld-2.31.so :

    lrwxrwxrwx 1 root root 32 Apr 19 23:17 /lib64/ld-linux-x86-64.so.2 -> /lib/x86_64-linux-gnu/ld-2.31.so

    -rwxr-xr-x 1 root root 177928 Apr 19 23:17 /lib/x86_64-linux-gnu/ld-
    2.31.so
    lrwxrwxrwx 1 root root     10 Apr 19 23:17 /lib/x86_64-linux-gnu/ld- linux-x86-64.so.2 -> ld-2.31.so

    Cela manque sur l'hôte qui pose problème.
    //

    comme les liens en question semblent (si j'ai compris correctement, ce
    qui reste encore à prouver) créés par l'installation du paquet libc6,  https://packages.debian.org/bullseye/amd64/libc6/filelist

    c'est pour cela que je proposais:

    - de vérifier (commande: apt policy libc6) les versions disponibles
    pour installation et installées de libc6.
    Un exemple de problème qui pourrait survenir: que ton utilisateur se
    serve de multiarch; bien que l'hôte problématique soit en architecture
    amd64, il suffisait par le passé que la double architecture (multiarch) amd64+x86 soit paramétrée pour que parfois apt soit complètement perdu
    et cherche à remplacer/installer des exécutables uniquement en 32 bits
    (même si les deux architectures de ces exécutables existent) sur un
    système 32+64 bits. Et parfois du coup ça ne marchait plus.

    - de réinstallet (sudo apt reinstall libc6) ou reparamétrer (sudo dpkg- reconfigure libc6). En cas de multiarch il faut spécifier le paramètre -a=architecture pour apt et un dpkg-reconfigure ne suffit pas si seule
    la version 32 bits de libc6 est insyallé: il faut réinstaller la
    version 64 bits.

    Mais je t'emmène peut-être sur une fausse piste, et même si cette piste était en partie judicieuse, peut-être mon exposé serait-il faux quant
    aux conséquences que j'évoque, hein, donc je t'encourage quoiqu'il en
    soit à pendre en compte les suggestions de Jean-Michel dans son message
    :-)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From [email protected]@21:1/5 to All on Tue May 2 11:10:01 2023
    Je crois qu'on chauffe.
    L'hôte est une VM Parallels et il me revient qu'elle pourrait être une machine multiarchitecture...
    Je crois avoir vu ça dans le résultat d'une commande.
    Je n'y suis pas habitué. Et j'ai toujours installé des OS debian 64 bits.

    Quelle serait la commande qui permet de savoir exactement s'il y a une multiarchitecture (qui aurait trompé apt) ?
    (je ne crois pas que ce soit lscpu ni hostnamectl)

    apt policy libc6 ?

    Rappel : je ne peux pas tâtonner auprès de l'utilisateur en lui demandant de saisir de nombreuses commandes. Il doit entrer une commande pour diagnostiquer et une commande pour traiter le pb.

    Merci.

    ----- Mail original -----
    De: "didier gaumet" <[email protected]>
    À: "Liste Debian" <[email protected]>
    Envoyé: Mardi 2 Mai 2023 08:21:25
    Objet: Re: Problème pour servir à un exécutable sa dépendance à libc.so.6 (debian 11)

    Le mardi 02 mai 2023 à 02:18 +0200, [email protected] a écrit :
    Merci !

    Je n'ai JAMAIS eu besoin d'installer spécifiquement ou de réparer la bibliothèque C (libc6) sur un hôte debian.

    L'utilisateur a installé sa debian11 seul à partir d'une image ISO récente.
    Je n'ai pas accès à sa machine. Je dois lui proposer une manip
    directe, simple et efficace.

    Je crois comprendre qu'il s'agit d'un problème de dynamic linker.
    Comment répare-t-on l'accès à cette bibliothèque libc qui est
    installée ?

    Question bonus : que peut faire un utilisateur (juste capable de
    recopier des lignes de commande fournies) pour diagnostiquer ce qui a
    pu abîmer ce système ?


    Extrait de mon message initial :

    //
    Sur l'hôte qui pose problème :
    - libc.so.6 est bien présent. Et est donc inaccessible à
    l'exécutable.
    - la commande ldconfig est introuvable. J'attends de savoir si /usr/sbin/ldconfig existe... Après vérification, ce fichier existe; Peut-être un problème de PATH ?...

    Sur un hôte qui sert correctement libc.so.6 au même exécutable, il y
    a les liens symboliques suivants vers ld-2.31.so :

    lrwxrwxrwx 1 root root 32 Apr 19 23:17 /lib64/ld-linux-x86-64.so.2 -> /lib/x86_64-linux-gnu/ld-2.31.so

    -rwxr-xr-x 1 root root 177928 Apr 19 23:17 /lib/x86_64-linux-gnu/ld-
    2.31.so
    lrwxrwxrwx 1 root root     10 Apr 19 23:17 /lib/x86_64-linux-gnu/ld- linux-x86-64.so.2 -> ld-2.31.so

    Cela manque sur l'hôte qui pose problème.
    //

    comme les liens en question semblent (si j'ai compris correctement, ce
    qui reste encore à prouver) créés par l'installation du paquet libc6,  https://packages.debian.org/bullseye/amd64/libc6/filelist

    c'est pour cela que je proposais:

    - de vérifier (commande: apt policy libc6) les versions disponibles
    pour installation et installées de libc6.
    Un exemple de problème qui pourrait survenir: que ton utilisateur se
    serve de multiarch; bien que l'hôte problématique soit en architecture
    amd64, il suffisait par le passé que la double architecture (multiarch) amd64+x86 soit paramétrée pour que parfois apt soit complètement perdu
    et cherche à remplacer/installer des exécutables uniquement en 32 bits
    (même si les deux architectures de ces exécutables existent) sur un
    système 32+64 bits. Et parfois du coup ça ne marchait plus.

    - de réinstallet (sudo apt reinstall libc6) ou reparamétrer (sudo dpkg- reconfigure libc6). En cas de multiarch il faut spécifier le paramètre -a=architecture pour apt et un dpkg-reconfigure ne suffit pas si seule
    la version 32 bits de libc6 est insyallé: il faut réinstaller la
    version 64 bits.

    Mais je t'emmène peut-être sur une fausse piste, et même si cette piste était en partie judicieuse, peut-être mon exposé serait-il faux quant
    aux conséquences que j'évoque, hein, donc je t'encourage quoiqu'il en
    soit à pendre en compte les suggestions de Jean-Michel dans son message
    :-)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From didier gaumet@21:1/5 to All on Tue May 2 12:20:01 2023
    Le mardi 02 mai 2023 à 11:08 +0200, [email protected] a écrit :
    Je crois qu'on chauffe.
    L'hôte est une VM Parallels et il me revient qu'elle pourrait être
    une machine multiarchitecture...
    Je crois avoir vu ça dans le résultat d'une commande.
    Je n'y suis pas habitué. Et j'ai toujours installé des OS debian 64
    bits.

    Quelle serait la commande qui permet de savoir exactement s'il y a
    une multiarchitecture (qui aurait trompé apt) ?

    (je suis en pur amd64, pas multiarch)
    didier@hp-notebook14:~$ dpkg --print-architecture
    amd64

    (je ne crois pas que ce soit lscpu ni hostnamectl)

    apt policy libc6 ?

    dans mon cas ça ne montre pas l'architecture i386 vu que je suis en pur
    amd64 mais je suppose que les deux (32 et 64 bits) aparaîtraient dans
    les paquets candidats

    didier@hp-notebook14:~$ apt policy libc6
    libc6:
    Installé : 2.31-13+deb11u6
    Candidat : 2.31-13+deb11u6
    Table de version :
    *** 2.31-13+deb11u6 500
    500 http://deb.debian.org/debian bullseye/main amd64 Packages
    100 /var/lib/dpkg/status
    2.31-13+deb11u5 500
    500 http://deb.debian.org/debian bullseye-updates/main amd64
    Packages

    tu peux aussi passer par dpkg:
    didier@hp-notebook14:~$ dpkg -l libc6* Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
    | État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi- installé/W=attend-traitement-déclenchements
    |/ Err?=(aucune)/besoin Réinstallation (État,Err: majuscule=mauvais)
    ||/ Nom Version Architecture Description +++-=====================-===============-============- =====================================================
    ii libc6:amd64 2.31-13+deb11u6 amd64 GNU C Library:
    Shared libraries
    un libc6-amd64 <aucune> <aucune> (aucune
    description n'est disponible)
    ii libc6-dev:amd64 2.31-13+deb11u6 amd64 GNU C Library: Development Libraries and Header Files
    un libc6-dev-amd64-cross <aucune> <aucune> (aucune
    description n'est disponible)
    un libc6.1 <aucune> <aucune> (aucune
    description n'est disponible)
    un libc6.1-dev <aucune> <aucune> (aucune
    description n'est disponible)


    mais l'intérêt avec apt policy ou dpkg c'est aussi de voir si on n'a
    pas une ancienne version d'un programme qui traîne suite à une mise à
    jour incomplète d'une version majeure de Debian. Par exemple dans ton
    cas, on peut aussi se demander éventuellement si on n'a pas un libc6 en version 2.28 (Buster) au lieu de 2.31 (Bullseye). Au cas où tu aurais expréssément cherché sans le trouver un lien vers libc6 2.31, ceci
    pourrait expliquer cela.


    Rappel : je ne peux pas tâtonner auprès de l'utilisateur en lui
    demandant de saisir de nombreuses commandes. Il doit entrer une
    commande pour diagnostiquer et une commande pour traiter le pb.

    Merci.

    Là, sans m'immiscer dans ta relation avec ton utilisateur (d'une part
    ça ne me regarde pas et de l'autre je ne connais ni la nature de votre relation ni le contexte dans lequel vous évoluez), je peux quand même
    te suggérer d'être coopératif dans ton suppport mais aussi de recadrer diplomatiquement: si ton utilisateur choisit d'installer et maintenir
    lui-même sa distribution, il accepte le cas échéant de porter la responsabilité d'une distribution trop bancale pour faire tourner une
    appli fournie par un tiers dans des conditions d'installations
    raisonnables, et accepte donc aussi la responsabilité de devoir
    chercher lui-même comment s'en sortir (exemple si il utilise un SGBD
    Oracle dont il paie le support *applicatif*, Oracle ne va pas
    paramétrer ou réinstaller Debian à sa place si sa distro est bancale
    car c'est du support *système*. Enfin c'est comme ça que je vois les
    choses, peut-être de manière trop simpliste)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Bernard Schoenacker@21:1/5 to All on Tue May 2 13:20:01 2023
    ----- Mail original -----
    De: "roger tarani" <[email protected]>
    À: "Liste Debian" <[email protected]>
    Envoyé: Mardi 2 Mai 2023 11:08:39
    Objet: Re: Problème pour servir à un exécutable sa dépendance à libc.so.6 (debian 11)

    Je crois qu'on chauffe.
    L'hôte est une VM Parallels et il me revient qu'elle pourrait être une machine multiarchitecture...
    Je crois avoir vu ça dans le résultat d'une commande.
    Je n'y suis pas habitué. Et j'ai toujours installé des OS debian 64 bits.

    Quelle serait la commande qui permet de savoir exactement s'il y a une multiarchitecture (qui aurait trompé apt) ?
    (je ne crois pas que ce soit lscpu ni hostnamectl)

    apt policy libc6 ?

    Rappel : je ne peux pas tâtonner auprès de l'utilisateur en lui demandant de saisir de nombreuses commandes. Il doit entrer une commande pour diagnostiquer et une commande pour traiter le pb.

    Merci.

    Bonjour Roger,

    L'instruction la plus adaptée :

    dpkg -l |awk '/libc6/ {print $2,$3}'

    vérification de la disponibilité des paquets libc6 par rapport à la version installée

    apt-cache show $(dpkg -l |awk '/libc6/ {print $2}') |grep Filename

    pour le fichier sources.list :

    deb [trusted=Yes, arch=amd64,i386] https://deb.debian.org/debian-security/ stable-security main contrib non-free non-free-firmware

    il est également possible d'exclure les architectures (exemple) :

    deb [trusted=Yes, arch=amd64,i386 arch-=armel,arm32] https://deb.debian.org/debian-security/ stable-security main contrib non-free non-free-firmware

    Remarque : consulter la doc du manuel concernant le fichier sources.list

    https://manpages.debian.org/jessie/apt/sources.list.5.en.html

    pour télécharger un paquet à la main, prendre le fichier sources.list (URLs) :

    https://deb.debian.org/debian-security

    le dépôt du paquet :

    pool/main/g/glibc/libc6-dev_2.36-9_amd64.deb


    raccrocher les wagons :

    https://deb.debian.org/debian-securitypool/main/g/glibc/libc6-dev_2.36-9_amd64.deb

    et employer wget :

    wget -c -O ~/Téléchargements/libc6-dev_2.36-9_amd64.deb https://deb.debian.org/debian-securitypool/main/g/glibc/libc6-dev_2.36-9_amd64.deb

    cd ~/Téléchargements

    sudo apt install -y ./libc6-dev_2.36-9_amd64.deb

    attention, c'est un exemple

    Merci pour ton aimable attention

    Bien à toi

    Bernard

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Hugues Larrive@21:1/5 to All on Tue May 2 15:30:01 2023
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) -----------------------efe35e1aa876ed48e6204b40bebed0e3 Content-Transfer-Encoding: quoted-printable
    Content-Type: text/plain;charset=utf-8

    ------- Original Message -------
    Le mardi 2 mai 2023 à 13:11, Bernard Schoenacker <[email protected]> a écrit :


    Je crois qu'on chauffe.
    L'hôte est une VM Parallels et il me revient qu'elle pourrait être une machine multiarchitecture...

    Parallels c'est de la virtualisation pour Mac donc sur les systèmes actuels (apple silicon) l'OS invité est en architecture ARM (aarch64).

    Dans ce cas 2 possibilités :
    - utiliser une version du programme compilée pour cette architecture s'il en existe ou que le source est disponible ;
    - multi-arch.

    @+
    Hugues

    -----------------------efe35e1aa876ed48e6204b40bebed0e3
    Content-Type: application/pgp-keys; filename="publickey - [email protected] - 0xE9429B87.asc"; name="publickey - [email protected] - 0xE9429B87.asc"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment; filename="publickey - [email protected] - 0xE9429B87.asc"; name="publickey - [email protected] - 0xE9429B87.asc"

    LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCgp4ak1FWUZFMWNSWUpLd1lCQkFI YVJ3OEJBUWRBWlB0M2dhekNrdHVzaXFla2gzcnNsM0FLV0lUaUR1VGEKWk9tZEhCWjBtb3pOSDJo c1lYSnlhWFpsUUhCdExtMWxJRHhvYkdGeWNtbDJaVUJ3YlM1dFpUN0Nqd1FRCkZnb0FJQVVDWUZF MzRRWUxDUWNJQXdJRUZRZ0tBZ1FXQWdFQUFoa0JBaHNEQWg0QkFDRUpFRnZWSk5jdgo0dmswRmlF RTZVS2JoNHIyQ0RlSDZZRkJXOVVrMXkvaStUUWpDQUQvYTNwQ0hBSStsT2o1NHVOVVNTU0MKTDE4 NjFQYjI4YWs2K2JvRnN6bnVHc0FCQVBVczh3QnJLQXZxZ0RWYXFZdVd6d1BjTXNnZWJ3U0huOER3 Cmp1SDV6VmdPempnRVlGRTFjUklLS3dZQkJBR1hWUUVGQVFFSFFPbDZ3OXNiR1lmZHZOeVVPb3pj cExiZgp0aW56SWMraDVicS9rMU91TXdVRkF3RUlCOEo0QkJnV0NBQUpCUUpnVVRmaEFoc01BQ0VK RUZ2VkpOY3YKNHZrMEZpRUU2VUtiaDRyMkNEZUg2WUZCVzlVazF5L2krVFRoUEFEOUZTNFlrcFR0 RXJWNDFPRTBBaTNYClIxNlcrT3REa1p3bTZRVTY0VnUzSmJvQkFMMURMQngxRExLRE5kclZhTUZ1 NGp4MXBZV0JqTEpVZ0xLegpzbDMzakRNTQo9NXVpVgotLS0tLUVORCBQR1AgUFVCTElDIEtFWSBC TE9DSy0tLS0tCg==
    -----------------------efe35e1aa876ed48e6204b40bebed0e3--

    -----BEGIN PGP SIGNATURE-----
    Version: ProtonMail

    wnUEARYKACcFgmRRDrwJkFvVJNcv4vk0FiEE6UKbh4r2CDeH6YFBW9Uk1y/i +TQAAMi9AP0RhfRvsDpkoKFJzcId8LeTZr9PdtqZ66plNgrw7N4CDgEA8kTN DOXFT/H9RfsOvOElNH//AgJHu2wRXb/vjKlzVwU=
    =iL0e
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From didier gaumet@21:1/5 to All on Tue May 2 20:20:01 2023
    Le 02/05/2023 à 15:23, Hugues Larrive a écrit :
    ------- Original Message -------
    Le mardi 2 mai 2023 à 13:11, Bernard Schoenacker <[email protected]> a écrit :


    Je crois qu'on chauffe.
    L'hôte est une VM Parallels et il me revient qu'elle pourrait être une machine multiarchitecture...

    Parallels c'est de la virtualisation pour Mac donc sur les systèmes actuels (apple silicon) l'OS invité est en architecture ARM (aarch64).

    Dans ce cas 2 possibilités :
    - utiliser une version du programme compilée pour cette architecture s'il en existe ou que le source est disponible ;
    - multi-arch.

    @+
    Hugues

    Ah, là, je crois que ton intervention va permettre de clarifier la
    situation vite et bein :-)
    (moi j'avais même pas tilté que Parallels c'est pour Mac et que les Mac
    ont maintenant des puces arm64)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From [email protected]@21:1/5 to All on Wed May 3 03:20:01 2023
    Oui, en effet.

    Installer un cross-compilateur :
    $ sudo apt install gcc make gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu

    Compiler pour aarch64 un pgm helloworld.c :
    $ aarch64-linux-gnu-gcc helloworld.c -o helloworld-aarch64 -static

    Voir https://jensd.be/1126/linux/cross-compiling-for-arm-or-aarch64-on-debian-or-ubuntu

    J'ai envoyé à l'utilisateur un fichier cross-compilé pour aarch64 (depuis un hôte x86_64) pour savoir si ça s'exécute.
    A suivre.

    Est-ce aussi simple que ça ou y a-t-il des pièges sournois dans la cross-compilation ?


    ----- Mail original -----
    De: "didier gaumet" <[email protected]>
    À: "Liste Debian" <[email protected]>
    Envoyé: Mardi 2 Mai 2023 20:14:55
    Objet: Re: Re : Re: Problème pour servir à un exécutable sa dépendance à libc.so.6 (debian 11)

    Le 02/05/2023 à 15:23, Hugues Larrive a écrit :
    ------- Original Message -------
    Le mardi 2 mai 2023 à 13:11, Bernard Schoenacker <[email protected]> a écrit :


    Je crois qu'on chauffe.
    L'hôte est une VM Parallels et il me revient qu'elle pourrait être une machine multiarchitecture...

    Parallels c'est de la virtualisation pour Mac donc sur les systèmes actuels (apple silicon) l'OS invité est en architecture ARM (aarch64).

    Dans ce cas 2 possibilités :
    - utiliser une version du programme compilée pour cette architecture s'il en existe ou que le source est disponible ;
    - multi-arch.

    @+
    Hugues

    Ah, là, je crois que ton intervention va permettre de clarifier la
    situation vite et bein :-)
    (moi j'avais même pas tilté que Parallels c'est pour Mac et que les Mac
    ont maintenant des puces arm64)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From didier gaumet@21:1/5 to All on Wed May 3 09:50:01 2023
    Le mercredi 03 mai 2023 à 03:18 +0200, [email protected] a écrit :
    [...]
    Est-ce aussi simple que ça ou y a-t-il des pièges sournois dans la cross-compilation ?

    Je n'y connais rien vu que je ne construis pas/plus d'exécutables et
    encore moins par cross-compilation mais le wiki Debian a un article sur
    les différentes possibilités et bonnes pratiques de cross-compilation en environnement Debian:
    https://wiki.debian.org/CrossCompiling

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From RogerT@21:1/5 to All on Wed May 3 20:10:01 2023
    Ça a compilé.
    Ça tourne sur architecture aarch64.

    Mais il y a des problèmes avec certaines dépendances à des fonctions du shell ou à systemd (inexistantes sur x86_64) que je dois régler.


    Le 3 mai 2023 à 09:40, didier gaumet <[email protected]> a écrit :

    Le mercredi 03 mai 2023 à 03:18 +0200, [email protected] a écrit : [...]
    Est-ce aussi simple que ça ou y a-t-il des pièges sournois dans la cross-compilation ?

    Je n'y connais rien vu que je ne construis pas/plus d'exécutables et encore moins par cross-compilation mais le wiki Debian a un article sur les différentes possibilités et bonnes pratiques de cross-compilation en environnement Debian:
    https://wiki.debian.org/CrossCompiling



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From RogerT@21:1/5 to All on Wed May 3 22:40:01 2023
    je reformule : il y a des problèmes sur aarch64 INEXISTANTS sur x86_64

    Le 3 mai 2023 à 20:09, RogerT <[email protected]> a écrit :

    Ça a compilé.
    Ça tourne sur architecture aarch64.

    Mais il y a des problèmes avec certaines dépendances à des fonctions du shell ou à systemd (inexistantes sur x86_64) que je dois régler.


    Le 3 mai 2023 à 09:40, didier gaumet <[email protected]> a écrit : >>
    Le mercredi 03 mai 2023 à 03:18 +0200, [email protected] a écrit : >> [...]
    Est-ce aussi simple que ça ou y a-t-il des pièges sournois dans la
    cross-compilation ?

    Je n'y connais rien vu que je ne construis pas/plus d'exécutables et encore moins par cross-compilation mais le wiki Debian a un article sur les différentes possibilités et bonnes pratiques de cross-compilation en environnement Debian:
    https://wiki.debian.org/CrossCompiling



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Hugues Larrive@21:1/5 to All on Fri May 5 17:40:01 2023
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) -----------------------7ccd79dbf294d3335dab90930f6dc122 Content-Transfer-Encoding: quoted-printable
    Content-Type: text/plain;charset=utf-8

    Bonjour,

    ------- Original Message -------
    Le mercredi 3 mai 2023 à 22:33, RogerT <[email protected]> a écrit :


    je reformule : il y a des problèmes sur aarch64 INEXISTANTS sur x86_64

    Le 3 mai 2023 à 20:09, RogerT [email protected] a écrit :

    Ça a compilé.
    Ça tourne sur architecture aarch64.

    Mais il y a des problèmes avec certaines dépendances à des fonctions du shell ou à systemd (inexistantes sur x86_64) que je dois régler.


    Quels sont les problèmes ? Y a-t-il des messages d'erreur ? Quelles fonctions du shell sont concernées ?

    Les différences les plus flagrantes entre les 2 architectures sont l'absence d'ACPI et de DMI remplacés par devicetree sur arm. Les arm sont souvent des SoC donc les périphériques sont organisés différemment, par exemple des périphériques qu'on
    trouve habituellement sur le bus PCI comme l'ethernet, la video ou le multimédia peuvent ne pas s'y trouver donc les outils habituellement utilisés sur PC pour identifier le matériel comme lspci ou lshw ne donneront pas les résultats attendus... Tout
    ce qui concerne l'ACPI et EFI (les interaction avec le firmware) peut poser problème aussi.

    De quel genre de programme s'agit-il ?

    @+
    Hugues

    Le 3 mai 2023 à 09:40, didier gaumet [email protected] a écrit :

    Le mercredi 03 mai 2023 à 03:18 +0200, [email protected] a écrit : [...]

    Est-ce aussi simple que ça ou y a-t-il des pièges sournois dans la cross-compilation ?

    Je n'y connais rien vu que je ne construis pas/plus d'exécutables et encore moins par cross-compilation mais le wiki Debian a un article sur les différentes possibilités et bonnes pratiques de cross-compilation en environnement Debian:
    https://wiki.debian.org/CrossCompiling
    -----------------------7ccd79dbf294d3335dab90930f6dc122
    Content-Type: application/pgp-keys; filename="publickey - [email protected] - 0xE9429B87.asc"; name="publickey - [email protected] - 0xE9429B87.asc"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment; filename="publickey - [email protected] - 0xE9429B87.asc"; name="publickey - [email protected] - 0xE9429B87.asc"

    LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCgp4ak1FWUZFMWNSWUpLd1lCQkFI YVJ3OEJBUWRBWlB0M2dhekNrdHVzaXFla2gzcnNsM0FLV0lUaUR1VGEKWk9tZEhCWjBtb3pOSDJo c1lYSnlhWFpsUUhCdExtMWxJRHhvYkdGeWNtbDJaVUJ3YlM1dFpUN0Nqd1FRCkZnb0FJQVVDWUZF MzRRWUxDUWNJQXdJRUZRZ0tBZ1FXQWdFQUFoa0JBaHNEQWg0QkFDRUpFRnZWSk5jdgo0dmswRmlF RTZVS2JoNHIyQ0RlSDZZRkJXOVVrMXkvaStUUWpDQUQvYTNwQ0hBSStsT2o1NHVOVVNTU0MKTDE4 NjFQYjI4YWs2K2JvRnN6bnVHc0FCQVBVczh3QnJLQXZxZ0RWYXFZdVd6d1BjTXNnZWJ3U0huOER3 Cmp1SDV6VmdPempnRVlGRTFjUklLS3dZQkJBR1hWUUVGQVFFSFFPbDZ3OXNiR1lmZHZOeVVPb3pj cExiZgp0aW56SWMraDVicS9rMU91TXdVRkF3RUlCOEo0QkJnV0NBQUpCUUpnVVRmaEFoc01BQ0VK RUZ2VkpOY3YKNHZrMEZpRUU2VUtiaDRyMkNEZUg2WUZCVzlVazF5L2krVFRoUEFEOUZTNFlrcFR0 RXJWNDFPRTBBaTNYClIxNlcrT3REa1p3bTZRVTY0VnUzSmJvQkFMMURMQngxRExLRE5kclZhTUZ1 NGp4MXBZV0JqTEpVZ0xLegpzbDMzakRNTQo9NXVpVgotLS0tLUVORCBQR1AgUFVCTElDIEtFWSBC TE9DSy0tLS0tCg==
    -----------------------7ccd79dbf294d3335dab90930f6dc122--

    -----BEGIN PGP SIGNATURE-----
    Version: ProtonMail

    wnUEARYKACcFgmRVIOIJkFvVJNcv4vk0FiEE6UKbh4r2CDeH6YFBW9Uk1y/i +TQAAC4CAQCluZBYCDJU2qMC7bdFXWwyMkZgBAUPqDRBXkJcqm3E7wEA0mC5 sayPtMwK/Vg9WOv5YG9vcerAS9PVVBIOlmurXwg=
    =UVpO
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)