Marius, Mark,
On 2018-03-23 21:50, Mark H Weaver wrote:
Hi,
Tobias Geerinckx-Rice <[email protected]> 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.
Do note that I'm not suggesting doing so in general; just in the case of
bzip2 where that rule does historically hold. If that ever changes, so
will the ‘1.0’ assumption.
(I did substitute ‘version’ for the ‘version-major+minor’ I actually
used for... simplicity, I guess, which was probably ill advised.)
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.
I wasn't aware of such an elegant possibility. A perfect fit IMO :-)
Thanks,
T G-R
Sent from a Web browser. Excuse or enjoy my brevity.