Subject: bug#32170: closed (Re: bug#32170: python-cairocffi error "dlopen() failed to load a library: cairo / cairo-2")

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 16 Jul 2018 21:55:04 +0000

Your bug report

#32170: python-cairocffi error "dlopen() failed to load a library: cairo / cairo-2"

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
32170: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=32170
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#32170: python-cairocffi error "dlopen() failed to load a library: cairo / cairo-2"
From: Danny Milosavljevic <[email-masked]>
To: Ben Sturmfels <[email-masked]>
Cc: [email-masked]
Date: Mon, 16 Jul 2018 23:54:27 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Ben,

thanks for the report.

I've fixed it in a545090ce5e6b9da1f473f558dabda69f317e461 on guix master
by allowing absolute paths as python-cairocffi's dlopen's parameter
and also substituting the sonames by the absolute paths in the callers.

python-cairocffi's dlopen is re-exported.  That means that users that
use it also have to use the absolute paths.

Subject: python-cairocffi error "dlopen() failed to load a library: cairo / cairo-2"
From: Ben Sturmfels <[email-masked]>
To: [email-masked]
Date: Mon, 16 Jul 2018 17:35:18 +1000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Folks,

I'm having problems running Python code that depends on the
"python-cairocffi" package. Running "from cairocffi._ffi import ffi" on
Trisquel 8 works fine, but on GuixSD I get:

$ guix environment --container --ad-hoc python cairo python-cairocffi
$ python3.6 -c "from cairocffi._ffi import ffi"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/ben/.guix-profile/lib/python3.6/site-packages/cairocffi/__init__.py", line 41, in <module>
    cairo = dlopen(ffi, 'cairo', 'cairo-2')
  File "/home/ben/.guix-profile/lib/python3.6/site-packages/cairocffi/__init__.py", line 38, in dlopen
    raise OSError("dlopen() failed to load a library: %s" % ' / '.join(names))
OSError: dlopen() failed to load a library: cairo / cairo-2

The background on this is that I use the Weasyprint PDF library from
PyPI and Weasyprint issues the above "from cairocffi._ffi import ffi".

I'm running GuixSD up-to-date with the latest master branch.

Regards,
Ben