[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: dpkg-shlibdeps: error: cannot find library (Was: Bug#977308: shasta: hardcoded dependencies on boost 1.71)



On Fri, Dec 18, 2020 at 04:07:50PM +0100, Andreas Tille wrote:
> On Fri, Dec 18, 2020 at 07:37:12PM +0500, Andrey Rahmatullin wrote:
> > On Fri, Dec 18, 2020 at 03:32:01PM +0100, Andreas Tille wrote:
> > > I tried no override_dh_shlibdeps in shasta debian/rules, which has lead
> > > to:
> > > 
> > > dpkg-shlibdeps: error: cannot find library /usr/lib/python3/dist-packages/shasta.cpython-39-x86_64-linux-gnu.so needed by debian/shasta/usr/bin/shasta (ELF format: 'elf64-x86-64' abi:      '0201003e00000000'; RPATH: '')
> > Why are you linking an executable to a Python binary module?
> 
> That's a good question.  Its actually not me who did this.  I think
> that's done here:
> 
>    https://salsa.debian.org/med-team/shasta/-/blob/master/debian/rules#L27
Eww.
But dynamicLibrary/README.md says:
"""
This directory builds the Shasta dynamic library `shasta.so`.
This library is used in three ways:

* It is linked in by the shasta dynamic executable `shastaDynamic`.
* It can be imported by a python script via `import shasta` to provide Shasta Python bindings.
* It can be statically linked in by other C++ code outside Shasta that uses Shasta as a library.
"""
So this sharing seems to be by design. That's unfortunate (can't say I'm
surprised, though).

> but I admit I have no idea why Shayan did so.
Well, otherwise the binary wouldn't find the library.

> I wonder what might be the proper way to do this to share the library
> between Python modules and the executable.
The proper way is to separate the common code from the Python bindings and
link this correctly separated shared library into both the executable and
the binary module libraries.

-- 
WBR, wRAR

Attachment: signature.asc
Description: PGP signature


Reply to: