conda-forge / sundials-feedstock

A conda-smithy repository for sundials.
BSD 3-Clause "New" or "Revised" License
4 stars 10 forks source link

Package for Sundials 6.0 has unexpressed dependency on 'blis' #74

Closed speth closed 2 years ago

speth commented 2 years ago

Issue:

The package for Sundials 6.0.0 seems to depend on the blis package, but this is not actually specified as a dependency for the conda package:

$ ldd ~/.conda/envs/sundials6/lib/libsundials_sunlinsollapackdense.so
        linux-vdso.so.1 (0x00007ffec71fa000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1d7493d000)
        libsundials_sunmatrixdense.so.4 => /home/speth/.conda/envs/sundials6/lib/./libsundials_sunmatrixdense.so.4 (0x00007f1d74927000)
        liblapack.so.3 => /home/speth/.conda/envs/sundials6/lib/./liblapack.so.3 (0x00007f1d727db000)
        libblis.so.3 => not found
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1d725e9000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f1d74abf000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1d725c6000)
        libgfortran.so.5 => /home/speth/.conda/envs/sundials6/lib/././libgfortran.so.5 (0x00007f1d7241d000)
        libquadmath.so.0 => /home/speth/.conda/envs/sundials6/lib/./././libquadmath.so.0 (0x00007f1d723e3000)
        libgcc_s.so.1 => /home/speth/.conda/envs/sundials6/lib/./././libgcc_s.so.1 (0x00007f1d723cc000)

I can't find any mention of blis in the feedstock here, and this isn't the case for previous Sundials versions.


Conda environment (clean environment created by just installing sundials=6.0):

``` # Name Version Build Channel _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 1_gnu conda-forge blis 0.8.1 h7f98852_1 conda-forge gmp 6.2.1 h58526e2_0 conda-forge libblas 3.9.0 12_linux64_openblas conda-forge libcblas 3.9.0 12_linux64_openblas conda-forge libgcc-ng 11.2.0 h1d223b6_11 conda-forge libgfortran-ng 11.2.0 h69a702a_11 conda-forge libgfortran5 11.2.0 h5c6108e_11 conda-forge libgomp 11.2.0 h1d223b6_11 conda-forge liblapack 3.9.0 12_linux64_openblas conda-forge libopenblas 0.3.18 pthreads_h8fe5266_0 conda-forge libstdcxx-ng 11.2.0 he4da1e4_11 conda-forge metis 5.1.0 he1b5a44_1006 conda-forge mpfr 4.1.0 h9202a9a_1 conda-forge suitesparse 5.10.1 h9e50725_1 conda-forge sundials 6.0.0 h558c624_0 conda-forge tbb 2021.4.0 h4bd325d_1 conda-forge ```


Details about conda and system ( conda info ):

``` active environment : sundials6 active env location : /home/speth/.conda/envs/sundials6 shell level : 1 user config file : /home/speth/.condarc populated config files : conda version : 4.10.1 conda-build version : not installed python version : 3.7.4.final.0 virtual packages : __linux=5.4.0=0 __glibc=2.31=0 __unix=0=0 __archspec=1=x86_64 base environment : /opt/conda (read only) conda av data dir : /opt/conda/etc/conda conda av metadata url : https://repo.anaconda.com/pkgs/main channel URLs : https://repo.anaconda.com/pkgs/main/linux-64 https://repo.anaconda.com/pkgs/main/noarch https://repo.anaconda.com/pkgs/r/linux-64 https://repo.anaconda.com/pkgs/r/noarch package cache : /opt/conda/pkgs /home/speth/.conda/pkgs envs directories : /home/speth/.conda/envs /opt/conda/envs platform : linux-64 user-agent : conda/4.10.1 requests/2.25.1 CPython/3.7.4 Linux/5.4.0-81-generic ubuntu/20.04.3 glibc/2.31 UID:GID : 14674:100 netrc file : None offline mode : False ```
bjodah commented 2 years ago

Weird, we typically compile, link and run a few test files from the sundials distribution to avoid these things, but I see we no longer do. What are your thoughts here @jschueller ?

jschueller commented 2 years ago

weird, I don't see any reference to blis anywhere in sundials sources

well I removed the custom test because the api changes too often, we better run the sundials test-suite

speth commented 2 years ago

Thanks for the quick update, but I'm still seeing the same behavior after upgrading to the h558c624_1 build which I think incorporates the changes made in #75.

jschueller commented 2 years ago

you must have the conda-forge channel as top priority to correctly resolve its packages, it should look like this:

channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch

see also miniforge

speth commented 2 years ago

Every package in my environment is coming from the conda-forge channel, but just to verify this from a completely clean environment, I ran the following commands:

$ conda create -n sundials6test
$ conda activate sundials6test
$ conda config --env --prepend channels conda-forge
$ conda install sundials=6.0

Which gives me the following installed packages:

$ conda list
# packages in environment at /home/speth/.conda/envs/sundials6test:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       1_gnu    conda-forge
gmp                       6.2.1                h58526e2_0    conda-forge
libblas                   3.9.0           12_linux64_openblas    conda-forge
libcblas                  3.9.0           12_linux64_openblas    conda-forge
libgcc-ng                 11.2.0              h1d223b6_11    conda-forge
libgfortran-ng            11.2.0              h69a702a_11    conda-forge
libgfortran5              11.2.0              h5c6108e_11    conda-forge
libgomp                   11.2.0              h1d223b6_11    conda-forge
liblapack                 3.9.0           12_linux64_openblas    conda-forge
libopenblas               0.3.18          pthreads_h8fe5266_0    conda-forge
libstdcxx-ng              11.2.0              he4da1e4_11    conda-forge
metis                     5.1.0             h58526e2_1006    conda-forge
mpfr                      4.1.0                h9202a9a_1    conda-forge
suitesparse               5.10.1               h9e50725_1    conda-forge
sundials                  6.0.0                h558c624_1    conda-forge
tbb                       2021.5.0             h4bd325d_0    conda-forge

And the unresolved library dependency still exists:

$ ldd ~/.conda/envs/sundials6test/lib/libsundials_sunlinsollapackdense.so
        linux-vdso.so.1 (0x00007ffc60ce3000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f814744e000)
        libsundials_sunmatrixdense.so.4 => /home/speth/.conda/envs/sundials6test/lib/./libsundials_sunmatrixdense.so.4 (0x00007f8147438000)
        liblapack.so.3 => /home/speth/.conda/envs/sundials6test/lib/./liblapack.so.3 (0x00007f81452ee000)
        libblis.so.3 => not found
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f81450fc000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f81475d0000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f81450d7000)
        libgfortran.so.5 => /home/speth/.conda/envs/sundials6test/lib/././libgfortran.so.5 (0x00007f8144f2e000)
        libquadmath.so.0 => /home/speth/.conda/envs/sundials6test/lib/./././libquadmath.so.0 (0x00007f8144ef4000)
        libgcc_s.so.1 => /home/speth/.conda/envs/sundials6test/lib/./././libgcc_s.so.1 (0x00007f8144edf000)
jschueller commented 2 years ago

indeed, the latest rerender should fix it