(address . guix-patches@gnu.org)
I mentioned elsewhere noticing the large size of boost in closures.
I've now realized what the problem was with making a lib output, and
done one, as below. However, presumably it should have a dependency of
out on lib for compatibility, and I don't know the right way to do that.
The lib package is 17MiB, and the headers are 108MiB.
From 1bb845d1d45ee7e8b9447bab902f3de41f0acfac Mon Sep 17 00:00:00 2001
From: Dave Love <fx@gnu.org>
Date: Tue, 3 Oct 2017 16:18:59 +0100
Subject: [PATCH] gnu: boost: Make a "lib" output.
This save about half the contribution to the Closure of things linked against
it,
* gnu/packages/boost.scm(outputs): Add lib.
(arguments)[mv-lib]: Add move the lib output into place after install.
---
gnu/packages/boost.scm | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
Toggle diff (38 lines)
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index 4c7308e9d..c1e622fcd 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -53,6 +53,7 @@
`(("perl" ,perl)
("python" ,python-2)
("tcsh" ,tcsh)))
+ (outputs '("out" "lib"))
(arguments
`(#:tests? #f
#:make-flags
@@ -60,7 +61,7 @@
;; Set the RUNPATH to $libdir so that the libs find each other.
(string-append "linkflags=-Wl,-rpath="
- (assoc-ref %outputs "out") "/lib")
+ (assoc-ref %outputs "lib") "/lib")
;; Boost's 'context' library is not yet supported on mips64, so
;; we disable it. The 'coroutine' library depends on 'context',
@@ -99,7 +100,13 @@
(replace
'install
(lambda* (#:key outputs make-flags #:allow-other-keys)
- (zero? (apply system* "./b2" "install" make-flags)))))))
+ (zero? (apply system* "./b2" "install" make-flags))))
+ (add-after 'install 'mv-lib
+ (lambda _
+ (mkdir-p (assoc-ref %outputs "lib"))
+ (rename-file (string-append %output "/lib")
+ (string-append (assoc-ref %outputs "lib")
+ "/lib")))))))
(home-page "http://boost.org")
(synopsis "Peer-reviewed portable C++ source libraries")
--
2.11.0