Package: newlisp
Version: 10.7.0-3
Severity: serious

I was originally interested in how to get the dependency on
libmysqlclient18 (which will not be part of stretch) updated,
but it turned out dynamic library loading in newlisp is broken.


(set 'files '(
    "/usr/local/lib/libmysqlclient.so.20.0" ; OpenBSD 4.9
    "/usr/lib/libmysqlclient.so" ; Linux, UNIX
    "/usr/lib/mysql/libmysqlclient.so" ; Linux Fedora
    "/usr/lib64/mysql/libmysqlclient.so" ; Linux Fedora CentOS 6.x
    "/usr/lib/x86_64-linux-gnu/libmysqlclient.so" ; Ubuntu 12.04 LTS
    "/usr/local/mysql/lib/libmysqlclient.so" ; Linux, UNIX
    "/usr/local/mysql/lib/libmysqlclient.dylib" ; MacOS X
    "/usr/lib/libmysqlclient.dylib" ; MacOS X
))


This looks like a random collection of files that worked for
random people, not like someone who knows what (s)he is doing
and where the problems are.

There are several things that wrong with this.

One problem is that the libmysqlclient18 package does not ship
the .so symlink.

Another is trying to open libraries from /usr/local,
whenever such libraries exist using them from a Debian
package only causes problems.

But the worst is that this cannot work properly with multiarch.
On my multiarch enabled system I might be using either the
i386 newlisp package or the amd64 newlisp package.
I might have both the i386 and the amd64 version of the library
to load installed.
As long as newlisp searches in the same paths in both cases,
it is guaranteed to not find the correct library in at least
one case.

Other libraries used by newlisp have exactly the same problem.

Reply via email to