summary refs log tree commit diff
path: root/pkgs/servers/nosql
diff options
context:
space:
mode:
authorNathan Smyth <nathan.smyth@mongodb.com>2019-05-31 22:14:14 +1000
committerMaximilian Bosch <maximilian@mbosch.me>2020-03-26 14:02:48 +0100
commit97c4dff1583b871605964c165056074f0a502d0b (patch)
tree70dd6d50afeb675d5c88763510c83340cbaeb8ec /pkgs/servers/nosql
parente9bec1adf6d4147d7b15d6b636ec5bf4294c457b (diff)
downloadnixpkgs-97c4dff1583b871605964c165056074f0a502d0b.tar
nixpkgs-97c4dff1583b871605964c165056074f0a502d0b.tar.gz
nixpkgs-97c4dff1583b871605964c165056074f0a502d0b.tar.bz2
nixpkgs-97c4dff1583b871605964c165056074f0a502d0b.tar.lz
nixpkgs-97c4dff1583b871605964c165056074f0a502d0b.tar.xz
nixpkgs-97c4dff1583b871605964c165056074f0a502d0b.tar.zst
nixpkgs-97c4dff1583b871605964c165056074f0a502d0b.zip
mongodb: split packages to expose 3.4, 3.6 and 4.0
Diffstat (limited to 'pkgs/servers/nosql')
-rw-r--r--pkgs/servers/nosql/mongodb/forget-build-dependencies-3-4.patch17
-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.nix12
-rw-r--r--pkgs/servers/nosql/mongodb/v3_6.nix12
-rw-r--r--pkgs/servers/nosql/mongodb/v4_0.nix12
5 files changed, 99 insertions, 35 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 00000000000..ca2c043deb2
--- /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 966cebc799e..fd4869f92aa 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 00000000000..07d27545a58
--- /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 00000000000..9000a2b5ed5
--- /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 00000000000..75e0cecc573
--- /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
+    ];
+  }