[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#43204] [PATCH] gnu: taglib: Propagate zlib.
From: |
Ludovic Courtès |
Subject: |
[bug#43204] [PATCH] gnu: taglib: Propagate zlib. |
Date: |
Mon, 07 Sep 2020 14:15:41 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Hi!
Pierre Langlois <pierre.langlois@gmx.com> skribis:
> Actually, thinking about this a little more, I'm not sure I understand
> upstream decision to propagate -lz. The commit fixes [0] which indicates
> it's so that taglib can be linked statically, but then that means if
> we're dynamically linking, the application will also dynamically link
> with zlib when it doesn't need to (at least not directly). And in guix
> we only build shared libs for taglib so we're never statically linking
> it AFAIK.
>
> So, here I'm a bit torn here, should we just follow what upstream is
> indicating? Even it doesn't look right to me, but I might be wrong! Or,
> should we revert the change that propagates -lz?
I had the following patch that I intended to push, to avoid propagation.
WDYT?
Ludo’.
commit d8124a707602980556fd33c7dbf9f7483fe1d0df
Author: Ludovic Courtès <ludo@gnu.org>
Date: Mon Sep 7 09:56:08 2020 +0200
gnu: taglib: 'taglib-config --libs' shows -L flag for zlib.
Fixes compilation of emacs-emms-print-metadata.
* gnu/packages/mp3.scm (taglib)[arguments]: Add #:phases.
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index 7ee009df74..a7574f0cf9 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2017, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
@@ -174,7 +174,18 @@ a highly stable and efficient implementation.")
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; Tests are not ran with BUILD_SHARED_LIBS on.
- #:configure-flags (list "-DBUILD_SHARED_LIBS=ON")))
+ #:configure-flags (list "-DBUILD_SHARED_LIBS=ON")
+ #:phases (modify-phases %standard-phases
+ (add-before 'configure 'adjust-zlib-ldflags
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Make sure users of 'taglib-config --libs' get the -L
+ ;; flag for zlib.
+ (substitute* "CMakeLists.txt"
+ (("set\\(ZLIB_LIBRARIES_FLAGS -lz\\)")
+ (string-append "set(ZLIB_LIBRARIES_FLAGS -L"
+ (assoc-ref inputs "zlib")
+ " -lz)")))
+ #t)))))
(inputs `(("zlib" ,zlib)))
(home-page "https://taglib.org")
(synopsis "Library to access audio file meta-data")