ceph: Refactor into a generic expression

This commit is contained in:
William A. Kennington III 2015-04-20 11:42:55 -07:00
parent 65373ed2f6
commit 6ac4bbd007
6 changed files with 84 additions and 103 deletions

View File

@ -0,0 +1,11 @@
{ callPackage, fetchgit, ... } @ args:
callPackage ./generic.nix (args // rec {
version = "0.94.1";
src = fetchgit {
url = "git://github.com/ceph/ceph.git";
rev = "refs/tags/v${version}";
sha256 = "0rrl10vda4xv22al2c5ccd8v8drs26186dvkrxndvqz8p9999cjx";
};
})

View File

@ -1,42 +0,0 @@
From 2507ab33236f0da12899fbcdd36535f7c7b68a06 Mon Sep 17 00:00:00 2001
From: "William A. Kennington III" <william@wkennington.com>
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<OpContext::NotifyAck>::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<pair<uint64_t, entity_name_t>, WatchRef>::iterator i =
ctx->obc->watchers.begin();
i != ctx->obc->watchers.end();
--
2.1.0

View File

@ -1,61 +0,0 @@
{ stdenv, fetchgit, autoconf, automake, makeWrapper, pkgconfig, libtool, which
, boost, btrfsProgs, cryptopp, curl, expat, fcgi, fuse, gperftools, keyutils
, leveldb, libaio, libatomic_ops, libedit, libuuid, linuxHeaders, openssl
, python, snappy, udev, xfsprogs, xz
, zfs ? null
}:
with stdenv.lib;
let
wrapArgs = "--prefix PYTHONPATH : \"$(toPythonPath $out)\""
+ " --prefix PYTHONPATH : \"$(toPythonPath ${python.modules.readline})\""
+ " --prefix PATH : \"$out/bin\""
+ " --prefix LD_LIBRARY_PATH : \"$out/lib\"";
in
stdenv.mkDerivation rec {
name="ceph-${version}";
version="0.94.1";
src = fetchgit {
url = "git://github.com/ceph/ceph.git";
rev = "refs/tags/v${version}";
sha256 = "0rrl10vda4xv22al2c5ccd8v8drs26186dvkrxndvqz8p9999cjx";
};
patches = [
./0001-Makefile-env-Don-t-force-sbin.patch
];
nativeBuildInputs = [ autoconf automake makeWrapper pkgconfig libtool which ];
buildInputs = [
boost btrfsProgs cryptopp curl expat fcgi fuse gperftools keyutils
libatomic_ops leveldb libaio libedit libuuid linuxHeaders openssl python
snappy udev xfsprogs.lib xz zfs
];
preConfigure = ''
./autogen.sh
'';
configureFlags = [
"--exec_prefix=$(out)"
] ++ optional (zfs != null) "--with-zfs=${zfs}";
postInstall = ''
wrapProgram $out/bin/ceph ${wrapArgs}
wrapProgram $out/bin/ceph-brag ${wrapArgs}
wrapProgram $out/bin/ceph-rest-api ${wrapArgs}
wrapProgram $out/sbin/ceph-create-keys ${wrapArgs}
wrapProgram $out/sbin/ceph-disk ${wrapArgs}
'';
enableParallelBuilding = true;
meta = {
homepage = http://ceph.com/;
description = "Distributed storage system";
license = licenses.lgpl21;
maintainers = with maintainers; [ ak wkennington ];
platforms = with platforms; linux;
};
}

View File

@ -0,0 +1 @@
0.94.nix

View File

@ -0,0 +1 @@
0.94.nix

View File

@ -0,0 +1,66 @@
{ stdenv, autoconf, automake, makeWrapper, pkgconfig, libtool, which
, boost, btrfsProgs, cryptopp, curl, expat, fcgi, fuse, gperftools, keyutils
, leveldb, libaio, libatomic_ops, libedit, libuuid, linuxHeaders, openssl
, python, snappy, udev, xfsprogs, xz
, zfs ? null
# Version specific arguments
, version, src
, ...
}:
with stdenv.lib;
let
wrapArgs = "--prefix PYTHONPATH : \"$(toPythonPath $out)\""
+ " --prefix PYTHONPATH : \"$(toPythonPath ${python.modules.readline})\""
+ " --prefix PATH : \"$out/bin\""
+ " --prefix LD_LIBRARY_PATH : \"$out/lib\"";
in
stdenv.mkDerivation rec {
name="ceph-${version}";
inherit src;
patches = [
./0001-Makefile-env-Don-t-force-sbin.patch
];
nativeBuildInputs = [ autoconf automake makeWrapper pkgconfig libtool which ];
buildInputs = [
boost btrfsProgs cryptopp curl expat fcgi fuse gperftools keyutils
libatomic_ops leveldb libaio libedit libuuid linuxHeaders openssl python
snappy udev xfsprogs.lib xz zfs
];
preConfigure = ''
./autogen.sh
'';
configureFlags = [
"--exec_prefix=\${out}"
"--sysconfdir=/etc"
"--localstatedir=/var"
] ++ optional (zfs != null) "--with-zfs=${zfs}";
installFlags = [ "sysconfdir=\${out}/etc" ];
postInstall = ''
wrapProgram $out/bin/ceph ${wrapArgs}
wrapProgram $out/bin/ceph-brag ${wrapArgs}
wrapProgram $out/bin/ceph-rest-api ${wrapArgs}
wrapProgram $out/sbin/ceph-create-keys ${wrapArgs}
wrapProgram $out/sbin/ceph-disk ${wrapArgs}
'';
enableParallelBuilding = true;
meta = {
homepage = http://ceph.com/;
description = "Distributed storage system";
license = licenses.lgpl21;
maintainers = with maintainers; [ ak wkennington ];
platforms = with platforms; linux;
};
passthru.version = version;
}

View File

@ -934,7 +934,12 @@ let
cdrkit = callPackage ../tools/cd-dvd/cdrkit { }; cdrkit = callPackage ../tools/cd-dvd/cdrkit { };
# 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_94 = callPackage ../tools/filesystems/ceph/0.94.nix { };
ceph = callPackage ../tools/filesystems/ceph { }; ceph = callPackage ../tools/filesystems/ceph { };
ceph-dev = callPackage ../tools/filesystems/ceph/dev.nix { };
cfdg = builderDefsPackage ../tools/graphics/cfdg { cfdg = builderDefsPackage ../tools/graphics/cfdg {
inherit libpng bison flex ffmpeg; inherit libpng bison flex ffmpeg;