On 2023-03-20 00:37 -0400, M. Zhou wrote:

> I'm trying to build the cuda version of pytorch. It depends on a non-free 
> library libcudnn.so.8 which
> is downloaded during postinst by bin:nvidia-cudnn. It is provided by a 
> downloader script due to
> some problems in the upstream EULA.
>
> During sbuild, all things compiles and can be normally linked against the 
> downloaded libcudnn.so.8,
> but dh_shlibdeps (dpkg-shlibdeps) fails to find the package that provides 
> libcudnn.so.8:
>
> ```
> dpkg-shlibdeps: error: no dependency information found for 
> /lib/powerpc64le-linux-gnu/libcudnn.so.8 (used by
> debian/libtorch1.13/usr/lib/powerpc64le-linux-gnu/libtorch_global_deps.so.1.13.0)
> Hint: check if the library actually comes from a package.
> ```
>
> I tried to add a `shlibs` file for the bin:nvidia-cudnn package:
>
>     libcudnn 8 nvidia-cudnn (>= 8.0.0.0)
>
> https://salsa.debian.org/nvidia-team/nvidia-cudnn/-/commit/92fc55e605f4f0f3b4b6352d5aa1af1610d113b7
> And the file can be found in /var/lib/dpkg/info/nvidia-cudnn.shlibs after 
> installation.
>
> Nothing changed.
> I have also tried to override the dh_shlibdeps target for src:pytorch as
>
>     dh_shlibdeps -Xcudnn
>
> Nothing changed.

Yes, because dpkg-shlibs does not know that libcudnn.so.8 belongs to the
nvidia-cunn package.

> What should I do to make dpkg-shlibdeps believe that the shared object 
> libcudnn.so.8
> is provided by bin:nvidia-cudnn (a downloader package)?
>
> The .shlibs file is one of the standard ways for a regular library package, 
> but it does not
> work for an empty (downloader-only) package. I think there should be some 
> better way
> than building a stub libcudnn.so.8 in bin:nvidia-cudnn and replace it during 
> postinst.

There should be a better way, but AFAIK currently there is none.  This
is an old feature request for dpkg[1].

Cheers,
       Sven


1. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=213907

Reply via email to