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

Re: Bug in Gnuastro's multiple shared libraries



According to https://udd.debian.org/lintian/?email1=&email2=&email3=&packages=gnuastro&ignpackages=&format=html&lt_error=on&lt_warning=on&lt_information=on&lintian_tag=#all lintian does emit a "link-to-shared-library-in-wrong-package" for this at severity "warning".

An alternative to Breaks:, if you want the new libgnuastro-dev to be coinstallable with libgnuastro17 without having to push an update to the latter, may be to use dpkg-divert.
________________________________________
From: Mohammad Akhlaghi <mohammad@akhlaghi.org>
Sent: Wednesday, 4 October 2023 01:42
To: Sergio Gelato; debian-astro@lists.debian.org
Subject: Re: Bug in Gnuastro's multiple shared libraries

Hi Sergio,

Thanks a lot!

Until now, I was expecting that Lintian would find such issues. Is there
any other test to do after the trial packaging that can catch such mistakes?

Thanks again,
Mohammad

On 10/3/23 12:27, Sergio Gelato wrote:
> 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: