diff --git a/glicid/packages/storage.scm b/glicid/packages/storage.scm index 253a2d0..69b2413 100644 --- a/glicid/packages/storage.scm +++ b/glicid/packages/storage.scm @@ -367,120 +367,121 @@ storage protocols (S3, NFS, and others) through the RADOS gateway.") "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" +; (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)))))) - ;; 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