aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2019-07-16 23:17:21 +0200
committerMarius Bakke <mbakke@fastmail.com>2019-07-17 15:13:57 +0200
commit7f080fb97c28fd94da1efaaa8fec8b5b830c328d (patch)
tree1078fe5dec4bc4f777cf3da62ac9533a094528a0
parent3549e23b25303d46f4725628a50c2a302d5e59f3 (diff)
downloadpatches-7f080fb97c28fd94da1efaaa8fec8b5b830c328d.tar
patches-7f080fb97c28fd94da1efaaa8fec8b5b830c328d.tar.gz
gnu: ceph: Fix build with recent CMake.
* gnu/packages/storage.scm (ceph)[arguments]: Drop "-DENABLE_SHARED" from <#:configure-flags> in favor of "-DBUILD_SHARED_LIBS". Add phase to remove installed test executables.
-rw-r--r--gnu/packages/storage.scm15
1 files changed, 13 insertions, 2 deletions
diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm
index 4f3fa05aa7..5c702e3362 100644
--- a/gnu/packages/storage.scm
+++ b/gnu/packages/storage.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;;
;;; This file is part of GNU Guix.
@@ -108,7 +108,7 @@
(string-append "-DXFS_INCLUDE_DIR="
(assoc-ref %build-inputs "xfsprogs") "/include")
"-DCMAKE_INSTALL_LOCALSTATEDIR=/var"
- "-DENABLE_SHARED=ON"
+ "-DBUILD_SHARED_LIBS=ON"
"-DWITH_SYSTEM_ROCKSDB=ON"
"-DWITH_SYSTEM_BOOST=ON"
"-DWITH_PYTHON3=ON"
@@ -279,6 +279,17 @@
(wrap-program (string-append out "/bin/" executable)
`("PYTHONPATH" ":" prefix (,PYTHONPATH))))
scripts)
+ #t)))
+ (add-before 'validate-runpath 'remove-test-executables
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ ;; FIXME: The BUILD_SHARED_LIBS CMake flag causes the test executables
+ ;; to link the bundled googletest dynamically, which in turn causes
+ ;; RUNPATH validation failures because 'libgtest.so' and friends do
+ ;; not get absolute RUNPATH entries. The next version of Ceph can use
+ ;; an external googletest; for now just remove the test executables.
+ (for-each delete-file (find-files (string-append out "/bin")
+ "ceph_(test|perf)"))
#t))))))
(outputs
'("out" "lib"))