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.
This commit is contained in:
Marius Bakke 2019-07-16 23:17:21 +02:00
parent 3549e23b25
commit 7f080fb97c
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA

View file

@ -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 @@ (define-public ceph
(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 @@ (define-public ceph
(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"))