guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Python: Error loading shared library in Guix


From: Björn Höfling
Subject: Python: Error loading shared library in Guix
Date: Tue, 19 Mar 2019 15:25:19 +0100

I'm trying to package TaskCoach (https://www.taskcoach.org/) and
stumble upon a problem when running it: It cannot load a shared library
with ctypes. Here is the stacktrace:

  File 
"/gnu/store/xnigri1g96wl0n14d9bfjyn7jnkn0f6c-taskcoach-1.4.4/lib/python2.7/site-packages/taskcoachlib/application/application.py",
 line 226, in init
    self.settings, splash=splash)
  File 
"/gnu/store/xnigri1g96wl0n14d9bfjyn7jnkn0f6c-taskcoach-1.4.4/lib/python2.7/site-packages/taskcoachlib/gui/mainwindow.py",
 line 92, in __init__
    self.taskFile.efforts())
  File 
"/gnu/store/xnigri1g96wl0n14d9bfjyn7jnkn0f6c-taskcoach-1.4.4/lib/python2.7/site-packages/taskcoachlib/gui/idlecontroller.py",
 line 84, in __init__
    super(IdleController, self).__init__()
  File 
"/gnu/store/xnigri1g96wl0n14d9bfjyn7jnkn0f6c-taskcoach-1.4.4/lib/python2.7/site-packages/taskcoachlib/patterns/observer.py",
 line 333, in __init__
    super(Observer, self).__init__(*args, **kwargs)
  File 
"/gnu/store/xnigri1g96wl0n14d9bfjyn7jnkn0f6c-taskcoach-1.4.4/lib/python2.7/site-packages/taskcoachlib/powermgt/idle.py",
 line 111, in __init__
    IdleQuery.__init__(self)
  File 
"/gnu/store/xnigri1g96wl0n14d9bfjyn7jnkn0f6c-taskcoach-1.4.4/lib/python2.7/site-packages/taskcoachlib/powermgt/idle.py",
 line 46, in __init__
    _xss = CDLL('libXss.so.1')
  File 
"/gnu/store/aws3fsg614lqr392y5pp9w65dy7gmvlx-python2-2.7.15/lib/python2.7/ctypes/__init__.py",
 line 366, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libXss.so.1: cannot open shared object file: No such file or directory

I had no glue at all what's going on, so I read a bit in the Python
manual and tried to reproduce this in a container:

https://docs.python.org/3/library/ctypes.html

$ guix environment -C --ad-hoc python2 coreutils binutils less which
libxscrnsaver zlib

[env]# ls $GUIX_ENVIRONMENT/lib
libXss.a   libXss.so    libXss.so.1.0.0  libbfd.la     libopcodes.la    
libpython2.7.so.1.0  libz.so.1       pkgconfig
libXss.la  libXss.so.1  libbfd.a         libopcodes.a  libpython2.7.so  libz.so 
             libz.so.1.2.11  python2.7

[env]# python
Python 2.7.15 (default, Jan  1 1970, 00:00:01) 
[GCC 5.5.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes;
>>> from ctypes import *;
>>> libc=CDLL("libc.so.6");
>>> libc
<CDLL 'libc.so.6', handle 7fac69a4b550 at 7fac69733110>
>>> libz=CDLL("libz.so.1");
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File 
"/gnu/store/aws3fsg614lqr392y5pp9w65dy7gmvlx-python2-2.7.15/lib/python2.7/ctypes/__init__.py",
 line 366, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libz.so.1: cannot open shared object file: No such file or directory

So, it can load "libc.so.6", but not "libz.so.1", which I found in my
environments lib folder.

What's wrong here? How can I load the library in Guix? Do I have to set
anything beforehand? I thought the environment would care for me. Do I
need to add anything to my package definition to fix that?

If that helps, I attached the first version of my package definition,
it's not nice, but builds and runs (until the above stacktrace appears).

Thanks,

Björn



        

Attachment: 0001-XXX-TaskCoach-First-stub.patch
Description: Text Data

Attachment: pgpPREVRfwgQw.pgp
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]