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

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 27 Mar 2018 20:50:02 +0000

Your bug report

#30006: bzip2 does not provide libbz2.so

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
30006: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=30006
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#30006: bzip2 does not provide libbz2.so
From: Marius Bakke <[email-masked]>
To: Ludovic Courtès <[email-masked]>
Cc: Mark H Weaver <[email-masked]>, [email-masked], Tobias Geerinckx-Rice <[email-masked]>
Date: Tue, 27 Mar 2018 22:49:19 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Ludovic Courtès <[email-masked]> writes:

> Hello Marius,
>
> Marius Bakke <[email-masked]> skribis:
>
>> Ludovic Courtès <[email-masked]> writes:
>>
>>> There’s no such function, which is unfortunate.  But I agree it’s nicer
>>> to preserve symlinks in this case.
>>>
>>> Perhaps we should actually do:
>>>
>>>   (with-directory-excursion libdir
>>>     (symlink … "libbz2.so"))
>>
>> Thanks for the feedback everyone.  I settled on a slightly different
>> solution, that first extracts the (full) soversion from the built
>> library, then creates symlinks for each "sub-version".
>>
>> It assumes that the major version is "1".  That could be circumvented
>> with a regex, but I'm not sure if it's worth the effort.
>>
>> As an added bonus, this also creates "libbz2.so.1" which was missing too.
>>
>> WDYT of this approach?  Can it be made simpler?
>
> Sounds reasonable to me.  I have a suggestion:

[...]

> To avoid ‘set!’, I’d write it along these lines:
>
>   ;; Create symlinks libbz2.so.1.2 -> libbz2.so.1, etc.
>   (let loop ((base "libbz2.so")
>              (numbers (string-split soversion #\.)))
>     (unless (null? numbers)
>       (let ((so-file (string-append base "." (car numbers))))
>         (symlink so-file base)
>         (loop so-file (cdr numbers)))))

This is much nicer, thanks!  I've pushed the patch with this improvement.

Subject: bzip2 does not provide libbz2.so
From: [email-masked] (Ludovic Courtès)
To: [email-masked]
Date: Sat, 06 Jan 2018 14:29:00 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Our current bzip2 package does not provide libbz2.so:

--8<---------------cut here---------------start------------->8---
$ ls $(guix build bzip2)/lib
libbz2.a  libbz2.so.1.0  libbz2.so.1.0.6
--8<---------------cut here---------------end--------------->8---

Consequently, software that uses libbz2 always ends up
statically-linking it.  Thus, security issues in libbz2 cannot be
grafted.

Ludo’.