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

From: Marius Bakke <[email-masked]>
Date: Fri, 23 Mar 2018 13:02:07 +0100

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

> 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.

WDYT of this patch?

From 1eec25f2aad3d20289ced4fbca9a614f6d614fa6 Mon Sep 17 00:00:00 2001
From: Marius Bakke <[email-masked]>
Date: Fri, 23 Mar 2018 12:56:45 +0100
Subject: [PATCH] gnu: bzip2: Provide libbz2.so.

Fixes <https://bugs.gnu.org/30006>.

* gnu/packages/compression.scm (bzip2)[arguments]: In
INSTALL-SHARED-LIBS-PHASE, add a symlink.
---
 gnu/packages/compression.scm | 3 +++
 1 file changed, 3 insertions(+)

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")
                (for-each (lambda (file)
                            (let ((base (basename file)))
                              (format #t "installing `~a' to `~a'~%"
-- 
2.16.2