diff --git a/pkgs/tools/filesystems/ceph/0.80.nix b/pkgs/tools/filesystems/ceph/0.80.nix new file mode 100644 index 000000000000..d5fcfab46ab9 --- /dev/null +++ b/pkgs/tools/filesystems/ceph/0.80.nix @@ -0,0 +1,13 @@ +{ callPackage, fetchgit, ... } @ args: + +callPackage ./generic.nix (args // rec { + version = "0.80.9"; + + src = fetchgit { + url = "git://github.com/ceph/ceph.git"; + rev = "refs/tags/v${version}"; + sha256 = "0c1hwl2jzghvbrnddwbp748b02jqznvigwriqx447iz2xyrz2w8q"; + }; + + patches = [ ./0001-Cleanup-boost-optionals.patch ]; +}) diff --git a/pkgs/tools/filesystems/ceph/0001-Cleanup-boost-optionals.patch b/pkgs/tools/filesystems/ceph/0001-Cleanup-boost-optionals.patch new file mode 100644 index 000000000000..a99e16ddc266 --- /dev/null +++ b/pkgs/tools/filesystems/ceph/0001-Cleanup-boost-optionals.patch @@ -0,0 +1,42 @@ +From 2507ab33236f0da12899fbcdd36535f7c7b68a06 Mon Sep 17 00:00:00 2001 +From: "William A. Kennington III" +Date: Sat, 20 Sep 2014 22:52:31 -0700 +Subject: [PATCH] Cleanup boost optionals + +--- + src/osd/ECBackend.cc | 2 +- + src/osd/ReplicatedPG.cc | 5 ++++- + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/osd/ECBackend.cc b/src/osd/ECBackend.cc +index a87b5b4..c386900 100644 +--- a/src/osd/ECBackend.cc ++++ b/src/osd/ECBackend.cc +@@ -81,7 +81,7 @@ ostream &operator<<(ostream &lhs, const ECBackend::read_result_t &rhs) + lhs << "read_result_t(r=" << rhs.r + << ", errors=" << rhs.errors; + if (rhs.attrs) { +- lhs << ", attrs=" << rhs.attrs; ++ lhs << ", attrs=" << rhs.attrs.get(); + } else { + lhs << ", noattrs"; + } +diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc +index 5e5510d..79e8616 100644 +--- a/src/osd/ReplicatedPG.cc ++++ b/src/osd/ReplicatedPG.cc +@@ -5259,7 +5259,10 @@ void ReplicatedPG::do_osd_op_effects(OpContext *ctx) + for (list::iterator p = ctx->notify_acks.begin(); + p != ctx->notify_acks.end(); + ++p) { +- dout(10) << "notify_ack " << make_pair(p->watch_cookie, p->notify_id) << dendl; ++ if (p->watch_cookie) ++ dout(10) << "notify_ack " << make_pair(p->watch_cookie.get(), p->notify_id) << dendl; ++ else ++ dout(10) << "notify_ack " << make_pair("NULL", p->notify_id) << dendl; + for (map, WatchRef>::iterator i = + ctx->obc->watchers.begin(); + i != ctx->obc->watchers.end(); +-- +2.1.0 + diff --git a/pkgs/tools/filesystems/ceph/generic.nix b/pkgs/tools/filesystems/ceph/generic.nix index d4f4e9466b85..73097fecb36e 100644 --- a/pkgs/tools/filesystems/ceph/generic.nix +++ b/pkgs/tools/filesystems/ceph/generic.nix @@ -5,7 +5,7 @@ , zfs ? null # Version specific arguments -, version, src +, version, src, patches ? [] , ... }: @@ -16,12 +16,12 @@ let + " --prefix PATH : \"$out/bin\"" + " --prefix LD_LIBRARY_PATH : \"$out/lib\""; in -stdenv.mkDerivation rec { +stdenv.mkDerivation { name="ceph-${version}"; inherit src; - patches = [ + patches = patches ++ [ ./0001-Makefile-env-Don-t-force-sbin.patch ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f0b960735a6e..75494a1a589b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -937,6 +937,7 @@ let # Only ever add ceph LTS releases # The default should always be symlinked to the latest LTS # Dev should always point to the latest versioned release + ceph-0_80 = callPackage ../tools/filesystems/ceph/0.80.nix { }; ceph-0_94 = callPackage ../tools/filesystems/ceph/0.94.nix { }; ceph = callPackage ../tools/filesystems/ceph { }; ceph-dev = callPackage ../tools/filesystems/ceph/dev.nix { };