[Python-modules-team] Bug#914655: python-scipy: _flapack undefined symbol: ilaver_

Drew Parsons dparsons at debian.org
Tue May 21 06:13:12 BST 2019

Package: python-scipy
Followup-For: Bug #914655

Digging a bit deeper, I think this bug may be impacted by the presence
of /usr/lib/x86_64-linux-gnu/libopenblas.so provide by libopenblas-base

I think you will find your bug may be present in local builds of
scipy, but the official Debian builds will be fine.

Ultimately ilaver_ is a LAPACK symbol provided by liblapack.so.
The offical Debian scipy builds use a generic BLAS/LAPACK
implementation, so _flapack.x86_64-linux-gnu.so gets
  NEEDED liblapack.so.3
which can be fulfilled by any LAPACK implementation
(provided via python-scipy Depends: liblapack3 | liblapack.so.3)

But since libopenblas.so provides the same symbols as libblas.so and
liblapack.so, if you make a local build with openblas installed then
_flapack.x86_64-linux-gnu.so picks up 
  NEEDED libopenblas.so.0
instead.  But that does not get reflected in the python-scipy package
dependencis, since they have been configured to allow for alternatives
via libblas3 | libblas.so.3 and liblapack3 | liblapack.so.3.

It means if you have a python-scipy built against openblas then it
should run fine if libopenblas-base is installed.

If you then install one of the other LAPACK alternatives instead of
libopenblas-base (which you're supposed to be able to do), your
locally built scipy will complain with the error given in this bug,
becauses it will look for ilaver_ in libopenblas.so.0 which is no
longer present.

The /usr/lib/x86_64-linux-gnu/libopenblas.so seems to be the problem
here, so I've filed Bug#929296 to ask about it.

-- System Information:
Debian Release: 10.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-5-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages python-scipy depends on:
ii  libatlas3-base [liblapack.so.3]    3.10.3-8
ii  libblas3 [libblas.so.3]            3.8.0-2
ii  libc6                              2.28-10
ii  libgcc1                            1:8.3.0-7
ii  libgfortran5                       8.3.0-7
ii  liblapack3 [liblapack.so.3]        3.8.0-2
ii  libopenblas-base [liblapack.so.3]  0.3.5+ds-3
ii  libquadmath0                       8.3.0-7
ii  libstdc++6                         8.3.0-7
ii  python                             2.7.16-1
ii  python-decorator                   4.3.0-1.1
ii  python-numpy [python-numpy-abi9]   1:1.16.2-1

Versions of packages python-scipy recommends:
ii  g++                   4:8.3.0-1
ii  g++-7 [c++-compiler]  7.4.0-9
ii  g++-8 [c++-compiler]  8.3.0-7
ii  python-dev            2.7.16-1
ii  python-pil            5.4.1-2

Versions of packages python-scipy suggests:
ii  python-scipy-doc  1.1.0-7

-- no debconf information

More information about the Python-modules-team mailing list