mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-30 15:23:26 +03:00
parent
660e85a0d9
commit
17b6a597fb
@ -26,61 +26,32 @@
|
||||
# We must have one crypto library
|
||||
assert cryptopp != null || (nss != null && nspr != null);
|
||||
|
||||
with stdenv;
|
||||
with stdenv.lib;
|
||||
let
|
||||
optSnappy = shouldUsePkg snappy;
|
||||
optLeveldb = shouldUsePkg leveldb;
|
||||
optYasm = shouldUsePkg yasm;
|
||||
optFcgi = shouldUsePkg fcgi;
|
||||
optExpat = shouldUsePkg expat;
|
||||
optCurl = shouldUsePkg curl;
|
||||
optFuse = shouldUsePkg fuse;
|
||||
optAccelio = shouldUsePkg accelio;
|
||||
optLibibverbs = shouldUsePkg libibverbs;
|
||||
optLibrdmacm = shouldUsePkg librdmacm;
|
||||
optLibedit = shouldUsePkg libedit;
|
||||
optLibatomic_ops = shouldUsePkg libatomic_ops;
|
||||
optKinetic-cpp-client = shouldUsePkg kinetic-cpp-client;
|
||||
optRocksdb = shouldUsePkg rocksdb;
|
||||
optLibs3 = shouldUsePkg libs3;
|
||||
|
||||
optJemalloc = shouldUsePkg jemalloc;
|
||||
optGperftools = shouldUsePkg gperftools;
|
||||
|
||||
optCryptopp = shouldUsePkg cryptopp;
|
||||
optNss = shouldUsePkg nss;
|
||||
optNspr = shouldUsePkg nspr;
|
||||
|
||||
optLibaio = shouldUsePkg libaio;
|
||||
optLibxfs = shouldUsePkg libxfs;
|
||||
optZfs = shouldUsePkg zfs;
|
||||
|
||||
hasServer = optSnappy != null && optLeveldb != null;
|
||||
hasServer = snappy != null && leveldb != null;
|
||||
hasMon = hasServer;
|
||||
hasMds = hasServer;
|
||||
hasOsd = hasServer;
|
||||
hasRadosgw = optFcgi != null && optExpat != null && optCurl != null && optLibedit != null;
|
||||
hasRadosgw = fcgi != null && expat != null && curl != null && libedit != null;
|
||||
|
||||
hasXio = (stdenv.isLinux || stdenv.isFreeBSD) &&
|
||||
versionAtLeast version "0.95" &&
|
||||
optAccelio != null && optLibibverbs != null && optLibrdmacm != null;
|
||||
accelio != null && libibverbs != null && librdmacm != null;
|
||||
|
||||
hasRocksdb = versionAtLeast version "0.95" && optRocksdb != null;
|
||||
hasRocksdb = versionAtLeast version "0.95" && rocksdb != null;
|
||||
|
||||
# TODO: Reenable when kinetic support is fixed
|
||||
#hasKinetic = versionAtLeast version "0.95" && optKinetic-cpp-client != null;
|
||||
hasKinetic = false;
|
||||
hasKinetic = versionAtLeast version "0.95" && kinetic-cpp-client != null && false;
|
||||
|
||||
# Malloc implementation (can be jemalloc, tcmalloc or null)
|
||||
malloc = if optJemalloc != null then optJemalloc else optGperftools;
|
||||
malloc = if jemalloc != null then jemalloc else gperftools;
|
||||
|
||||
# We prefer nss over cryptopp
|
||||
cryptoStr = if optNss != null && optNspr != null then "nss" else
|
||||
if optCryptopp != null then "cryptopp" else "none";
|
||||
cryptoStr = if nss != null && nspr != null then "nss" else
|
||||
if cryptopp != null then "cryptopp" else "none";
|
||||
cryptoLibsMap = {
|
||||
nss = [ optNss optNspr ];
|
||||
cryptopp = [ optCryptopp ];
|
||||
nss = [ nss nspr ];
|
||||
cryptopp = [ cryptopp ];
|
||||
none = [ ];
|
||||
};
|
||||
|
||||
@ -100,22 +71,22 @@ stdenv.mkDerivation {
|
||||
|
||||
nativeBuildInputs = [ autoconf automake makeWrapper pkgconfig libtool which ];
|
||||
buildInputs = buildInputs ++ cryptoLibsMap.${cryptoStr} ++ [
|
||||
boost python libxml2 optYasm optLibatomic_ops optLibs3 malloc pythonPackages.flask zlib
|
||||
boost python libxml2 yasm libatomic_ops libs3 malloc pythonPackages.flask zlib
|
||||
] ++ optional (versionAtLeast version "9.0.0") [
|
||||
git # Used for the gitversion string
|
||||
pythonPackages.sphinx # Used for docs
|
||||
] ++ optional stdenv.isLinux [
|
||||
linuxHeaders libuuid udev keyutils optLibaio optLibxfs optZfs
|
||||
linuxHeaders libuuid udev keyutils libaio libxfs zfs
|
||||
] ++ optional hasServer [
|
||||
optSnappy optLeveldb
|
||||
snappy leveldb
|
||||
] ++ optional hasRadosgw [
|
||||
optFcgi optExpat optCurl optFuse optLibedit
|
||||
fcgi expat curl fuse libedit
|
||||
] ++ optional hasXio [
|
||||
optAccelio optLibibverbs optLibrdmacm
|
||||
accelio libibverbs librdmacm
|
||||
] ++ optional hasRocksdb [
|
||||
optRocksdb
|
||||
rocksdb
|
||||
] ++ optional hasKinetic [
|
||||
optKinetic-cpp-client
|
||||
kinetic-cpp-client
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
@ -163,23 +134,23 @@ stdenv.mkDerivation {
|
||||
(mkWith false "profiler" null)
|
||||
(mkWith false "debug" null)
|
||||
(mkEnable false "coverage" null)
|
||||
(mkWith (optFuse != null) "fuse" null)
|
||||
(mkWith (malloc == optJemalloc) "jemalloc" null)
|
||||
(mkWith (malloc == optGperftools) "tcmalloc" null)
|
||||
(mkWith (fuse != null) "fuse" null)
|
||||
(mkWith (malloc == jemalloc) "jemalloc" null)
|
||||
(mkWith (malloc == gperftools) "tcmalloc" null)
|
||||
(mkEnable false "pgrefdebugging" null)
|
||||
(mkEnable false "cephfs-java" null)
|
||||
(mkEnable hasXio "xio" null)
|
||||
(mkWith (optLibatomic_ops != null) "libatomic-ops" null)
|
||||
(mkWith (libatomic_ops != null) "libatomic-ops" null)
|
||||
(mkWith true "ocf" null)
|
||||
(mkWith hasKinetic "kinetic" null)
|
||||
(mkWith hasRocksdb "librocksdb" null)
|
||||
(mkWith false "librocksdb-static" null)
|
||||
(mkWith (optLibs3 != null) "system-libs3" null)
|
||||
(mkWith (libs3 != null) "system-libs3" null)
|
||||
(mkWith true "rest-bench" null)
|
||||
] ++ optional stdenv.isLinux [
|
||||
(mkWith (optLibaio != null) "libaio" null)
|
||||
(mkWith (optLibxfs != null) "libxfs" null)
|
||||
(mkWith (optZfs != null) "libzfs" null)
|
||||
(mkWith (libaio != null) "libaio" null)
|
||||
(mkWith (libxfs != null) "libxfs" null)
|
||||
(mkWith (zfs != null) "libzfs" null)
|
||||
] ++ optional (versionAtLeast version "10.0.0") [
|
||||
(mkWith true "man-pages" null)
|
||||
(mkWith false "tcmalloc-minimal" null)
|
||||
|
Loading…
Reference in New Issue
Block a user