Subject: bug#39079: SBCL CFFI from Guix unable to find dynamic libraries

From: Evan Straw <[email-masked]>
Date: Sat, 11 Jan 2020 03:38:19 +0000

Hello all,

I have GNU Guix installed on a foreign distro, Ubuntu 19.04. I have the
sbcl and cl-cffi packages installed from this installation of Guix, and
I am attempting to use the CFFI package to load libcurl, as demonstrated
in the CFFI tutorial here:
https://common-lisp.net/project/cffi/manual/html_node/Tutorial_002dLoading.html

However, this fails with a message saying that there is "no such file or
directory," even when I attempt referencing the library by its exact
name, "libcurl.so.4".

There is only one condition in which I can get this to (sort of) work,
and that is when I manually add the path "/usr/lib/x86_64-linux-gnu/" to
the *foreign-library-directories* list, which is initially NIL. Even
then, however, CFFI fails to automatically load any libraries libcurl is
dependent on, unless I manually load them by directly referencing their
full names as well.

This seems like it isn't intended behavior, especially since the CFFI
documentation discourages the use of the *foreign-library-directories*
variable, and claims that the implementation (SBCL in this case) should
be taking care of this. I'm unsure if this is anything to do with Guix
not using a "traditional" FSH or not.

Does anyone have any thoughts on this? This is my first bug report
submitted here, so if I'm missing any needed information, please let me
know and I'll try my best to provide it.

Thanks,
-- Evan