Subject: bug#60235: gajim: dlopen()s non-Guix libc

From: Alex Martin <[email-masked]>
Date: Tue, 20 Dec 2022 20:09:17 -0500

I run Guix on an Alpine Linux host system. Alpine uses the musl C
library. This seems to be what exposes an issue in the gajim Guix
package for me.

I believe what is happening is the following: Gajim dlopen()s libc via
Python's ctypes library, and ends up finding the system libc, not the
Guix-provided libc it is supposed to be linked against.

The result is the following crash:

Traceback (most recent call last):
  File "/gnu/store/n2f3pi9cciaxgbvc4nhqzswslv4wycj2-gajim-1.4.6/bin/.gajim-real", line 33, in <module>
    sys.exit(load_entry_point('gajim==1.4.6', 'gui_scripts', 'gajim')())
  File "/gnu/store/n2f3pi9cciaxgbvc4nhqzswslv4wycj2-gajim-1.4.6/lib/python3.9/site-packages/gajim/gajim.py", line 159, in main
    _set_proc_title()
  File "/gnu/store/n2f3pi9cciaxgbvc4nhqzswslv4wycj2-gajim-1.4.6/lib/python3.9/site-packages/gajim/gajim.py", line 138, in _set_proc_title
    libc = CDLL(find_library('c'))
  File "/gnu/store/lvip6h5pamjwmvnkwg60sjb63ph8698k-python-3.9.9/lib/python3.9/ctypes/__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libc.musl-x86_64.so.1: cannot open shared object file: No such file or directory