diff options
author | Nathan Smyth <nathan.smyth@mongodb.com> | 2019-05-31 22:14:14 +1000 |
---|---|---|
committer | Maximilian Bosch <maximilian@mbosch.me> | 2020-03-26 14:02:48 +0100 |
commit | 97c4dff1583b871605964c165056074f0a502d0b (patch) | |
tree | 70dd6d50afeb675d5c88763510c83340cbaeb8ec | |
parent | e9bec1adf6d4147d7b15d6b636ec5bf4294c457b (diff) |
mongodb: split packages to expose 3.4, 3.6 and 4.0
-rw-r--r-- | pkgs/servers/nosql/mongodb/forget-build-dependencies-3-4.patch | 17 | ||||
-rw-r--r-- | pkgs/servers/nosql/mongodb/mongodb.nix (renamed from pkgs/servers/nosql/mongodb/default.nix) | 81 | ||||
-rw-r--r-- | pkgs/servers/nosql/mongodb/v3_4.nix | 12 | ||||
-rw-r--r-- | pkgs/servers/nosql/mongodb/v3_6.nix | 12 | ||||
-rw-r--r-- | pkgs/servers/nosql/mongodb/v4_0.nix | 12 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 16 |
6 files changed, 114 insertions, 36 deletions
diff --git a/pkgs/servers/nosql/mongodb/forget-build-dependencies-3-4.patch b/pkgs/servers/nosql/mongodb/forget-build-dependencies-3-4.patch new file mode 100644 index 0000000000000..ca2c043deb2d3 --- /dev/null +++ b/pkgs/servers/nosql/mongodb/forget-build-dependencies-3-4.patch @@ -0,0 +1,17 @@ +--- a/site_scons/mongo_scons_utils.py ++++ b/site_scons/mongo_scons_utils.py +@@ -84,14 +84,11 @@ + def default_buildinfo_environment_data(): + return ( + ('distmod', '$MONGO_DISTMOD', True, True,), + ('distarch', '$MONGO_DISTARCH', True, True,), + ('cc', '$CC_VERSION', True, False,), +- ('ccflags', '$CCFLAGS', True, False,), + ('cxx', '$CXX_VERSION', True, False,), +- ('cxxflags', '$CXXFLAGS', True, False,), +- ('linkflags', '$LINKFLAGS', True, False,), + ('target_arch', '$TARGET_ARCH', True, True,), + ('target_os', '$TARGET_OS', True, False,), + ) + + # If you want buildInfo and --version to be relatively empty, set diff --git a/pkgs/servers/nosql/mongodb/default.nix b/pkgs/servers/nosql/mongodb/mongodb.nix index 966cebc799e48..fd4869f92aa2e 100644 --- a/pkgs/servers/nosql/mongodb/default.nix +++ b/pkgs/servers/nosql/mongodb/mongodb.nix @@ -1,49 +1,59 @@ -{ stdenv, fetchurl, fetchpatch, scons, boost, gperftools, pcre-cpp, snappy, zlib, - libyamlcpp, sasl, openssl, libpcap, wiredtiger, Security, python27, libtool, curl -}: +{ stdenv, fetchurl, fetchpatch, scons, boost, gperftools, pcre-cpp, snappy, zlib +, libyamlcpp, sasl, openssl, libpcap, wiredtiger, Security, python27, libtool +, curl }: # Note: # The command line tools are written in Go as part of a different package (mongodb-tools) with stdenv.lib; -let version = "4.0.4"; - python = python27.withPackages (ps: with ps; [ pyyaml typing cheetah ]); - system-libraries = [ - "pcre" - #"asio" -- XXX use package? - #"wiredtiger" - "boost" - "snappy" - "zlib" - #"valgrind" -- mongodb only requires valgrind.h, which is vendored in the source. - #"stemmer" -- not nice to package yet (no versioning, no makefile, no shared libs). - "yaml" - ] ++ optionals stdenv.isLinux [ "tcmalloc" ]; - inherit (stdenv.lib) systems subtractLists; - -in stdenv.mkDerivation { - pname = "mongodb"; +{ version, sha256, patches ? [ ] }@args: + +let + python = python27.withPackages (ps: with ps; [ pyyaml typing cheetah ]); + system-libraries = [ + "pcre" + #"asio" -- XXX use package? + #"wiredtiger" + "boost" + "snappy" + "zlib" + #"valgrind" -- mongodb only requires valgrind.h, which is vendored in the source. + #"stemmer" -- not nice to package yet (no versioning, no makefile, no shared libs). + "yaml" + ] ++ optionals stdenv.isLinux [ "tcmalloc" ]; + inherit (stdenv.lib) systems subtractLists; + +in stdenv.mkDerivation rec { inherit version; + name = "mongodb-${version}"; src = fetchurl { url = "https://fastdl.mongodb.org/src/mongodb-src-r${version}.tar.gz"; - sha256 = "1qycwr9f99b5cy4nf54yv2y724xis3lwd2h6iv2pfp36qnhsvfh2"; + inherit sha256; }; nativeBuildInputs = [ scons ]; buildInputs = [ - sasl boost gperftools pcre-cpp snappy - zlib libyamlcpp sasl openssl.dev openssl.out libpcap python curl + sasl + boost + gperftools + pcre-cpp + snappy + zlib + libyamlcpp + sasl + openssl.dev + openssl.out + libpcap + python + curl ] ++ stdenv.lib.optionals stdenv.isDarwin [ Security libtool ]; - patches = - [ - # MongoDB keeps track of its build parameters, which tricks nix into - # keeping dependencies to build inputs in the final output. - # We remove the build flags from buildInfo data. - ./forget-build-dependencies.patch - ]; + # MongoDB keeps track of its build parameters, which tricks nix into + # keeping dependencies to build inputs in the final output. + # We remove the build flags from buildInfo data. + inherit patches; postPatch = '' # fix environment variable reading @@ -63,7 +73,8 @@ in stdenv.mkDerivation { --replace 'engine("wiredTiger")' 'engine("mmapv1")' ''; - NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang "-Wno-unused-command-line-argument"; + NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang + "-Wno-unused-command-line-argument"; sconsFlags = [ "--release" @@ -84,11 +95,11 @@ in stdenv.mkDerivation { ''; preInstall = '' - mkdir -p $out/lib + mkdir -p "$out/lib" ''; postInstall = '' - rm $out/bin/install_compass + rm -f "$out/bin/install_compass" || true ''; prefixKey = "--prefix="; @@ -99,9 +110,9 @@ in stdenv.mkDerivation { meta = { description = "A scalable, high-performance, open source NoSQL database"; - homepage = http://www.mongodb.org; + homepage = "http://www.mongodb.org"; license = licenses.sspl; - broken = stdenv.hostPlatform.isAarch64; #g++ has internal compiler errors + broken = stdenv.hostPlatform.isAarch64; # g++ has internal compiler errors maintainers = with maintainers; [ bluescreen303 offline cstrahan ]; platforms = subtractLists systems.doubles.i686 systems.doubles.unix; diff --git a/pkgs/servers/nosql/mongodb/v3_4.nix b/pkgs/servers/nosql/mongodb/v3_4.nix new file mode 100644 index 0000000000000..07d27545a5835 --- /dev/null +++ b/pkgs/servers/nosql/mongodb/v3_4.nix @@ -0,0 +1,12 @@ +{ stdenv, callPackage, lib, sasl, boost, Security }: + +let + buildMongoDB = callPackage ./mongodb.nix { inherit sasl; inherit boost; inherit Security; }; +in + buildMongoDB { + version = "3.4.20"; + sha256 = "15avrhakbspz0q1w5n7dqzjjfkxi7md64a9axl97gfxi4ln7mhz0"; + patches = [ + ./forget-build-dependencies-3-4.patch + ]; + } diff --git a/pkgs/servers/nosql/mongodb/v3_6.nix b/pkgs/servers/nosql/mongodb/v3_6.nix new file mode 100644 index 0000000000000..9000a2b5ed5f5 --- /dev/null +++ b/pkgs/servers/nosql/mongodb/v3_6.nix @@ -0,0 +1,12 @@ +{ stdenv, callPackage, lib, sasl, boost, Security }: + +let + buildMongoDB = callPackage ./mongodb.nix { inherit sasl; inherit boost; inherit Security; }; +in + buildMongoDB { + version = "3.6.12"; + sha256 = "1fi1ccid4rnfjg6yn3183qrhjqc8hz7jfgdpwp1dy6piw6z85n3l"; + patches = [ + ./forget-build-dependencies.patch + ]; + } diff --git a/pkgs/servers/nosql/mongodb/v4_0.nix b/pkgs/servers/nosql/mongodb/v4_0.nix new file mode 100644 index 0000000000000..75e0cecc573e1 --- /dev/null +++ b/pkgs/servers/nosql/mongodb/v4_0.nix @@ -0,0 +1,12 @@ +{ stdenv, callPackage, lib, sasl, boost, Security }: + +let + buildMongoDB = callPackage ./mongodb.nix { inherit sasl; inherit boost; inherit Security; }; +in + buildMongoDB { + version = "4.0.9"; + sha256 = "0klm6dl1pr9wq4ghm2jjn3wzs1zpj1aabqjqjfddanxq2an7scph"; + patches = [ + ./forget-build-dependencies.patch + ]; + } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bed301ede54a3..43d85339cf8da 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15894,7 +15894,21 @@ in }; mysql = mariadb; # TODO: move to aliases.nix - mongodb = callPackage ../servers/nosql/mongodb { + mongodb = hiPrio mongodb-3_4; + + mongodb-3_4 = callPackage ../servers/nosql/mongodb/v3_4.nix { + sasl = cyrus_sasl; + boost = boost160; + inherit (darwin.apple_sdk.frameworks) Security; + }; + + mongodb-3_6 = callPackage ../servers/nosql/mongodb/v3_6.nix { + sasl = cyrus_sasl; + boost = boost160; + inherit (darwin.apple_sdk.frameworks) Security; + }; + + mongodb-4_0 = callPackage ../servers/nosql/mongodb/v4_0.nix { sasl = cyrus_sasl; boost = boost160; openssl = openssl_1_0_2; |