Subject: Re: bug#30006: bzip2 does not provide libbz2.so

From: Mark H Weaver <[email-masked]>
Date: Fri, 23 Mar 2018 16:50:22 -0400

Hi,

Tobias Geerinckx-Rice <[email-masked]> writes:

> On 2018-03-23 13:02, Marius Bakke wrote:
>> diff --git a/gnu/packages/compression.scm
>> b/gnu/packages/compression.scm
>> index b158feac4..fd111e579 100644
>> --- a/gnu/packages/compression.scm
>> +++ b/gnu/packages/compression.scm
>> @@ -272,6 +272,9 @@ file; as a result, it is often used in
>> conjunction with \"tar\", resulting in
>>             (lambda* (#:key outputs #:allow-other-keys)
>>               (let* ((out    (assoc-ref outputs "out"))
>>                      (libdir (string-append out "/lib")))
>> +               ;; The Make target above does not create "libbz2.so", only
>> +               ;; the versioned libs, so we have to create it ourselves.
>> +               (symlink "libbz2.so.1.0" "libbz2.so")
>
> How about symlinking to (string-append ... version) directly?
> Seems more robust & worked fine when I tried it, I think.™

In general, the version numbers at the end of shared library names like
"libbz2.so.1.0" do not necessarily match the version number of the
corresponding source release.  Therefore, I don't think we should write
code that assumes that those two versions will coincide.

However, I agree that it would be better not to hardcode the "1.0".  I
would suggest using 'find-files' to find the versioned shared library,
and to verify that there is exactly one match.  (ice-9 match) provides
an elegant way to check for a singleton list while matching its element.

What do you think?

Thanks for working on it.

      Mark