From 4baafc80b82797a9b7f54abfa9bdc7a2d8d38635 Mon Sep 17 00:00:00 2001 From: Yann Dupont Date: Fri, 22 Oct 2021 17:22:06 +0200 Subject: [PATCH] revert ceph changes --- glicid/packages/glicid.scm | 116 +++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) diff --git a/glicid/packages/glicid.scm b/glicid/packages/glicid.scm index 18f2e5e..661b348 100644 --- a/glicid/packages/glicid.scm +++ b/glicid/packages/glicid.scm @@ -1258,6 +1258,122 @@ in the @code{debug} output), and binutils."))) "src/rocksdb" "src/boost")) #t)))) + + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (let* ((out (assoc-ref %outputs "out")) + (lib (assoc-ref %outputs "lib")) + (libdir (string-append lib "/lib"))) + (list (string-append "-DCMAKE_INSTALL_PREFIX=" out) + (string-append "-DCMAKE_INSTALL_LIBDIR=" libdir) + (string-append "-DCMAKE_INSTALL_INCLUDEDIR=" + lib "/include") + ;; We need both libdir and libdir/ceph in RUNPATH. + (string-append "-DCMAKE_INSTALL_RPATH=" + libdir ";" libdir "/ceph") + (string-append "-DCMAKE_INSTALL_SYSCONFDIR=" out "/etc") + (string-append "-DCMAKE_INSTALL_DATADIR=" lib "/share") + (string-append "-DCMAKE_INSTALL_MANDIR=" out "/share/man") + (string-append "-DCMAKE_INSTALL_DOCDIR=" out "/share/ceph/doc") + (string-append "-DCMAKE_INSTALL_LIBEXECDIR=" out "/libexec") + (string-append "-DKEYUTILS_INCLUDE_DIR=" + (assoc-ref %build-inputs "keyutils") "/include") + (string-append "-DXFS_INCLUDE_DIR=" + (assoc-ref %build-inputs "xfsprogs") "/include") + "-DCMAKE_INSTALL_LOCALSTATEDIR=/var" + "-DBUILD_SHARED_LIBS=ON" + "-DWITH_SYSTEM_ROCKSDB=ON" + "-DWITH_SYSTEM_BOOST=ON" + "-DWITH_PYTHON3=ON" + ;; TODO: Enable these when available in Guix. + "-DWITH_MGR_DASHBOARD_FRONTEND=OFF" ;requires node + nodeenv + "-DWITH_BABELTRACE=OFF" + "-DWITH_LTTNG=OFF" + "-DWITH_SPDK=OFF" + "-DWITH_RADOSGW_AMQP_ENDPOINT=OFF" + + ;; Use jemalloc instead of tcmalloc. + "-DALLOCATOR=jemalloc" + + ;; Do not bother building the tests; we are not currently running + ;; them, and they do not build with system googletest as of 14.2.5. + "-DWITH_TESTS=OFF")) + ;; FIXME: Some of the tests leak Btrfs subvolumes on Btrfs. See + ;; for details. Disable tests until + ;; resolved. + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (lib (assoc-ref outputs "lib"))) + + (substitute* "cmake/modules/Distutils.cmake" + ;; Prevent creation of Python eggs. + (("setup.py install") + "setup.py install --single-version-externally-managed --root=/")) + + (substitute* (find-files "src/pybind" "^setup\\.py$") + ;; Here we inject an extra line to the `setup.py' of the + ;; Python C libraries so RUNPATH gets set up correctly. +; (("^([[:blank:]]+)extra_compile_args=(.*)$" _ indent args) +; (string-append indent "extra_compile_args=" args +; indent "extra_link_args=['-Wl,-rpath=" +; lib "/lib'],\n"))) + + + (("^([[:blank:]]+)extra_link_args=(.*)$" _ indent args) + (string-append indent "extra_link_args=(['-Wl,-rpath=" lib "/lib'] + distutils.sysconfig.get_config_var('LDFLAGS').split() + \n"))) + + + ;; Statically link libcrc32 because it does not get installed, + ;; yet several libraries end up referring to it. + (substitute* "src/common/CMakeLists.txt" + (("add_library\\(crc32") + "add_library(crc32 STATIC")) + + (substitute* "udev/50-rbd.rules" + (("/usr/bin/ceph-rbdnamer") + (string-append out "/bin/ceph-rbdnamer"))) + #t))) + (add-before 'install 'set-install-environment + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (py3sitedir + (string-append out "/lib/python" + ,(version-major+minor + (package-version python)) + "/site-packages"))) + ;; The Python install scripts refuses to function if + ;; the install directory is not on PYTHONPATH. + (setenv "PYTHONPATH" + (string-append py3sitedir ":" + (getenv "PYTHONPATH"))) + #t))) + (add-after 'install 'wrap-python-scripts + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (scripts '("ceph" "ceph-mgr" "ceph-volume")) + (prettytable (assoc-ref inputs "python-prettytable")) + (six (assoc-ref inputs "python-six")) + (sitedir (lambda (package) + (string-append package + "/lib/python" + ,(version-major+minor + (package-version python)) + "/site-packages"))) + (PYTHONPATH (string-append + (sitedir out) ":" + (sitedir six) ":" + (sitedir prettytable)))) + (for-each (lambda (executable) + (wrap-program (string-append out "/bin/" executable) + `("PYTHONPATH" ":" prefix (,PYTHONPATH)))) + scripts) + #t)))))) + (outputs '("out" "lib")) (native-inputs