Skip to content

BUG: libcustatevec depends on libnvidia-ml.so, doesn't ensure it's present #91

@h-vetinari

Description

@h-vetinari

This shows up in the logs here

WARNING (custatevec,lib/libcustatevec.so.1.11.0.11): $RPATH/libnvidia-ml.so.1 not found in packages, sysroot(s) nor the missing_dso_whitelist.
.. is this binary repackaging?

as a warning, but turns into an actual failure in conda-forge/qsimcirq-feedstock#29, where a python package depends on

   INFO (qsimcirq,lib/python3.12/site-packages/qsimcirq/qsim_custatevec.cpython-312-x86_64-linux-gnu.so): Needed DSO lib/libcustatevec.so.1 found in conda-forge/linux-64::custatevec==1.11.0=h58dd1b1_0

but then can't find libnvidia-ml.so.

    qsim_custatevec = importlib.import_module("qsimcirq.qsim_custatevec")
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "$PREFIX/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ImportError: libnvidia-ml.so.1: cannot open shared object file: No such file or directory

That's despite cuda-nvml-dev being in the test environment, but that output has the libraries in other places than $PREFIX/lib.

I'm not sure what the right way to slice this is, but to me the clearest fix seems to be that, if libcustatevec depends on libnvidia-ml.so, it needs to ensure (even just for itself) that this library is present and findable in the environment.

CC @conda-forge/cuquantum

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions