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

Re: Bug in Gnuastro's multiple shared libraries



I think you just need to add a line to debian/libgnuastro-dev.install to move the .so link to that package. Or change the third line to read usr/lib/*/*.so .

Then the libgnuastro-dev package needs a Breaks: on older versions of libgnuastro1* where libgnuastro_make.so is in the library package.

As always, consult the policy manual when in doubt.
________________________________________
From: Mohammad Akhlaghi <mohammad@akhlaghi.org>
Sent: Tuesday, 3 October 2023 11:33
To: debian-astro@lists.debian.org
Subject: Re: Bug in Gnuastro's multiple shared libraries

Hi Thorsten,

Thanks a lot for the great explanation, I understand the problem much
better now now :-)!

Within Gnuastro's installed library, the 'libgnuastro_make.so' file is
just a symbolic link to 'libgnuastro_make.so.18.0.0'. The same way that
'libgnuastro.so' is a symbolic link to 'libgnuastro.so.18.0.0'.

In the P.S. you can see the installed Gnuastro library files (it is also
attached in case the email viewer makes it hard to read).

Probably the reason that the Debian packaging is treating 'libgnuastro'
differently from 'libgnuastro_make' is that the latter is not an
independent package. Does this sound reasonable?

As I think more about it, the GNU Make extensions of Gnuastro are indeed
used in other contexts from the low-level library (it has a different
purpose). So I think it is good to separate it in any case ;-).

Thanks again :-),
Cheers,
Mohammad

P.S.

$ ls -l /usr/local/lib/libgnuastro*
-rw-r--r-- 1 root root 6772824 Sep 22 19:48 /usr/local/lib/libgnuastro.a
-rwxr-xr-x 1 root root    1160 Sep 22 19:48 /usr/local/lib/libgnuastro.la
-rw-r--r-- 1 root root    5992 Sep 22 19:48
/usr/local/lib/libgnuastro_make.a
-rwxr-xr-x 1 root root    1225 Sep 22 19:48
/usr/local/lib/libgnuastro_make.la
lrwxrwxrwx 1 root root      26 Jun  9 19:53
/usr/local/lib/libgnuastro_make.so.18 -> libgnuastro_make.so.18.0.0
lrwxrwxrwx 1 root root      26 Sep 22 19:48
/usr/local/lib/libgnuastro_make.so -> libgnuastro_make.so.18.0.0
-rwxr-xr-x 1 root root   16152 Jun  9 19:53
/usr/local/lib/libgnuastro_make.so.18.0.0
lrwxrwxrwx 1 root root      21 Jun  9 19:53
/usr/local/lib/libgnuastro.so.18 -> libgnuastro.so.18.0.0
-rwxr-xr-x 1 root root 5236384 Jun  9 19:53
/usr/local/lib/libgnuastro.so.18.0.0
lrwxrwxrwx 1 root root      21 Sep 22 19:48
/usr/local/lib/libgnuastro.so -> libgnuastro.so.18.0.0





On 10/3/23 10:34, Thorsten Alteholz wrote:
> Hi Mohammad,
>
> there is package libgnuastro18 which contains
> /usr/lib/x86_64-linux-gnu/libgnuastro_make.so and libgnuastro17 which
> contains the same file.
> As these are shared libraries, they need to be installable at the same
> time (broadly speaking), which is not possible due to this file
> conflict. I assume that libgnuastro_make.so is different in both versions.
>
> So adding libgnuastro_make.so to a separate package  would not help
> (libgnuastro17 would not work with the libgnuastro_make.so from
> libgnuastro18). You need to introduce a versioned libgnuastro_make (and
> put the libgnuastro_make.so as a link into the corresponding -dev package).
> As there is no versioned libgnuastro_make.so in libgnuastro17 and you
> can not change this, you need to change the name of libgnuastro_make.so
> in libgnuastro18 to avoid to introduce Conflicts: between the -dev
> package and libgnuastro17.
>
> I hope this makes sense to you
>
> Good luck with your data release
>
>    Thorsten
>


Reply to: