diff options
Diffstat (limited to 'nixpkgs/pkgs/tools/filesystems/ceph/default.nix')
-rw-r--r-- | nixpkgs/pkgs/tools/filesystems/ceph/default.nix | 59 |
1 files changed, 37 insertions, 22 deletions
diff --git a/nixpkgs/pkgs/tools/filesystems/ceph/default.nix b/nixpkgs/pkgs/tools/filesystems/ceph/default.nix index c2234404d34..767730c4030 100644 --- a/nixpkgs/pkgs/tools/filesystems/ceph/default.nix +++ b/nixpkgs/pkgs/tools/filesystems/ceph/default.nix @@ -11,6 +11,7 @@ , rocksdb, makeWrapper , leveldb, oathToolkit , libnl, libcap_ng +, rdkafka # Optional Dependencies , yasm ? null, fcgi ? null, expat ? null @@ -74,6 +75,26 @@ let none = [ ]; }; + getMeta = description: { + homepage = "https://ceph.com/"; + inherit description; + license = with licenses; [ lgpl21 gpl2 bsd3 mit publicDomain ]; + maintainers = with maintainers; [ adev ak johanot krav ]; + platforms = [ "x86_64-linux" ]; + }; + + ceph-common = python3Packages.buildPythonPackage rec{ + pname = "ceph-common"; + inherit src version; + + sourceRoot = "ceph-${version}/src/python-common"; + + checkInputs = [ python3Packages.pytest ]; + propagatedBuildInputs = with python3Packages; [ pyyaml six ]; + + meta = getMeta "Ceph common module for code shared by manager modules"; + }; + ceph-python-env = python3Packages.python.withPackages (ps: [ ps.sphinx ps.flask @@ -82,27 +103,33 @@ let ps.virtualenv # Libraries needed by the python tools ps.Mako + ceph-common ps.cherrypy + ps.dateutil + ps.jsonpatch ps.pecan ps.prettytable ps.pyjwt ps.webob ps.bcrypt + # scipy > 1.3 breaks diskprediction_local, leading to mgr hang on startup + # Bump (and get rid of scipy_1_3) once these issues are resolved: + # https://tracker.ceph.com/issues/42764 https://tracker.ceph.com/issues/45147 + ps.scipy_1_3 ps.six ps.pyyaml ]); sitePackages = ceph-python-env.python.sitePackages; - version = "14.2.9"; + version = "15.2.4"; + src = fetchurl { + url = "http://download.ceph.com/tarballs/ceph-${version}.tar.gz"; + sha256 = "0jy5dp4r1bqk1l7nrv8l8zpl984k61p3vkvf73ygcn03bxyjjlax"; + }; in rec { ceph = stdenv.mkDerivation { pname = "ceph"; - inherit version; - - src = fetchurl { - url = "http://download.ceph.com/tarballs/ceph-${version}.tar.gz"; - sha256 = "0zkh1a23v8g1fa5flqa2d53lv08ancab3li57gybpqpnja90k7il"; - }; + inherit src version; patches = [ ./0000-fix-SPDK-build-env.patch @@ -118,7 +145,7 @@ in rec { buildInputs = cryptoLibsMap.${cryptoStr} ++ [ boost ceph-python-env libxml2 optYasm optLibatomic_ops optLibs3 malloc zlib openldap lttng-ust babeltrace gperf gtest cunit - snappy rocksdb lz4 oathToolkit leveldb libnl libcap_ng + snappy rocksdb lz4 oathToolkit leveldb libnl libcap_ng rdkafka ] ++ optionals stdenv.isLinux [ linuxHeaders utillinux libuuid udev keyutils optLibaio optLibxfs optZfs # ceph 14 @@ -172,25 +199,13 @@ in rec { doCheck = false; # uses pip to install things from the internet - meta = { - homepage = "https://ceph.com/"; - description = "Distributed storage system"; - license = with licenses; [ lgpl21 gpl2 bsd3 mit publicDomain ]; - maintainers = with maintainers; [ adev ak krav johanot ]; - platforms = [ "x86_64-linux" ]; - }; + meta = getMeta "Distributed storage system"; passthru.version = version; }; ceph-client = runCommand "ceph-client-${version}" { - meta = { - homepage = "https://ceph.com/"; - description = "Tools needed to mount Ceph's RADOS Block Devices"; - license = with licenses; [ lgpl21 gpl2 bsd3 mit publicDomain ]; - maintainers = with maintainers; [ adev ak johanot krav ]; - platforms = [ "x86_64-linux" ]; - }; + meta = getMeta "Tools needed to mount Ceph's RADOS Block Devices"; } '' mkdir -p $out/{bin,etc,${sitePackages}} cp -r ${ceph}/bin/{ceph,.ceph-wrapped,rados,rbd,rbdmap} $out/bin |