From 987cad84cef6d083be3b26a145a2969704b47f6a Mon Sep 17 00:00:00 2001 From: Daniel Kuehn Date: Sat, 24 Feb 2018 18:56:25 +0100 Subject: [PATCH] ceph: Modify ceph package so that it compiles and runs fine on nixos With adding a patch that makes 2 absolute paths into 2 relative paths, ensuring the third-party libraries are available in the python environment used and wrapping the python tools with wrapPrograms does so that the fixed ceph pkg can compile and run as intended on NixOS. --- .../ceph/0002-fix-absolute-include-path.patch | 19 ++++++++++++++ pkgs/tools/filesystems/ceph/generic.nix | 26 ++++++++++++++----- 2 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 pkgs/tools/filesystems/ceph/0002-fix-absolute-include-path.patch diff --git a/pkgs/tools/filesystems/ceph/0002-fix-absolute-include-path.patch b/pkgs/tools/filesystems/ceph/0002-fix-absolute-include-path.patch new file mode 100644 index 00000000000..01aa194dddf --- /dev/null +++ b/pkgs/tools/filesystems/ceph/0002-fix-absolute-include-path.patch @@ -0,0 +1,19 @@ +diff -ru ceph/src/key_value_store/kv_flat_btree_async.cc ceph-copy/src/key_value_store/kv_flat_btree_async.cc +--- ceph/src/key_value_store/kv_flat_btree_async.cc 1980-01-02 00:00:00.000000000 +0100 ++++ ceph-copy/src/key_value_store/kv_flat_btree_async.cc 2018-02-13 21:49:59.232860487 +0100 +@@ -15,13 +15,13 @@ + #include "key_value_store/kv_flat_btree_async.h" + #include "key_value_store/kvs_arg_types.h" + #include "include/rados/librados.hpp" +-#include "/usr/include/asm-generic/errno.h" +-#include "/usr/include/asm-generic/errno-base.h" + #include "common/ceph_context.h" + #include "common/Clock.h" + #include "include/types.h" + + ++#include ++#include + #include + #include + #include diff --git a/pkgs/tools/filesystems/ceph/generic.nix b/pkgs/tools/filesystems/ceph/generic.nix index a18051f9c12..32b85eaa681 100644 --- a/pkgs/tools/filesystems/ceph/generic.nix +++ b/pkgs/tools/filesystems/ceph/generic.nix @@ -86,12 +86,17 @@ let }; ceph-python-env = python2Packages.python.withPackages (ps: [ - ps.sphinx - ps.flask - ps.argparse - ps.cython - ps.setuptools - ps.pip + ps.sphinx + ps.flask + ps.argparse + ps.cython + ps.setuptools + ps.pip + # Libraries needed by the python tools + ps.Mako + ps.pecan + ps.prettytable + ps.webob ]); in @@ -103,11 +108,13 @@ stdenv.mkDerivation { patches = [ # ./ceph-patch-cmake-path.patch ./0001-kv-RocksDBStore-API-break-additional.patch + ] ++ optionals stdenv.isLinux [ + ./0002-fix-absolute-include-path.patch ]; nativeBuildInputs = [ cmake - pkgconfig which git + pkgconfig which git python2Packages.wrapPython (ensureNewerSourcesHook { year = "1980"; }) ]; @@ -122,6 +129,7 @@ stdenv.mkDerivation { ] ++ optionals hasKinetic [ optKinetic-cpp-client ]; + preConfigure ='' # rip off submodule that interfer with system libs @@ -149,6 +157,10 @@ stdenv.mkDerivation { "-DWITH_LIBCEPHFS=OFF" ]; + postFixup = '' + wrapPythonPrograms + ''; + enableParallelBuilding = true; outputs = [ "dev" "lib" "out" "doc" ];