Bug#929296: libopenblas-base: is libopenblas.so needed?

Drew Parsons dparsons at debian.org
Tue May 21 10:13:35 BST 2019


On 2019-05-21 14:41, Mo Zhou wrote:
> Hi Drew,
> 
> I didn't closely investigate into the scipy bug, but I can answer
> some of your questions. BTW, does anything break in a clean chroot?
> I mean, making sure a thing works fine in an unclean environment
> is difficult.

It seems fine in a clean chroot. In that case tt links against 
liblapack.so.3 as it should.

> On 2019-05-21 04:57, Drew Parsons wrote:
>> The problem is that libopenblasp-r0.3.5.so contains exactly the same
>> symbols as libblas.so and liblapack.so.  This seems to be confusing
>> linkers, e.g. see Bug#914655 for python-scipy.
> 
> The Debian dependency template resolving of the BLAS / LAPACK family
> is designed to work like this:
> 
> - linked against libblas.so.3 -> enable alternative,
>   resolve to libblas.so.3 | libblas.so.3
> 
> - linked against libopenblas.so.0 -> tight requirement on openblas,
>   resolve to libopenblas-base
> 
> Even if libopenblas.so.0 contains the same set of symbols as
> (libblas.so.3 + liblapack.so.3 + some extended routines),
> the SONAME matters for our dependency tree.
...
> libopenblasp-r0.3.5.so should never be used as BLAS / LAPACK provider
> as it's SONAME unmatches the depencency template and would incur
> breakage to our dependency tree.

This seems to be the problem. libopenblas.so.0 is used to resolve 
symbols instead of liblapack.so.3.  The symbol in question in Bug#914655 
is ilaver_ which is part of lapack, not specific to libopenblas.

Perhaps our scipy build should explicitly avoid libopenblas.so by 
setting
export BLAS=/path/to/libblas.so
export LAPACK=/path/to/liblapack.so
as suggested at 
http://scipy.github.io/devdocs/building/linux.html#specific-instructions



More information about the debian-science-maintainers mailing list