summary refs log tree commit diff
diff options
context:
space:
mode:
authorPascal Bach <pascal.bach@nextrem.ch>2022-04-14 09:25:20 +0200
committerGitHub <noreply@github.com>2022-04-14 09:25:20 +0200
commit1a70fa8acbb88bb2832134f5eabb6cc36ab4cef4 (patch)
treeaf8cb8bf1f4acc1013723cf3f184330ed6a121f6
parent6b85f5e479a33bf69f9815d079a6f6533219dcf1 (diff)
parent92402c908ff53ee426f112a5fc13928105668f9d (diff)
Merge pull request #137939 from kfiz/update-mongodb-44/50
Update mongodb to 4.4/5.0
-rw-r--r--nixos/tests/mongodb.nix4
-rw-r--r--pkgs/servers/nosql/mongodb/4.4.nix14
-rw-r--r--pkgs/servers/nosql/mongodb/5.0.nix25
-rw-r--r--pkgs/servers/nosql/mongodb/asio-no-experimental-string-view-4-4.patch23
-rw-r--r--pkgs/servers/nosql/mongodb/forget-build-dependencies-4-4.patch33
-rw-r--r--pkgs/servers/nosql/mongodb/mongodb.nix18
-rw-r--r--pkgs/servers/nosql/mongodb/v4_2.nix4
-rw-r--r--pkgs/top-level/all-packages.nix14
8 files changed, 126 insertions, 9 deletions
diff --git a/nixos/tests/mongodb.nix b/nixos/tests/mongodb.nix
index 9c6fdfb1ca76e..edd074f5163c2 100644
--- a/nixos/tests/mongodb.nix
+++ b/nixos/tests/mongodb.nix
@@ -37,6 +37,8 @@ import ./make-test-python.nix ({ pkgs, ... }:
           mongodb-3_6
           mongodb-4_0
           mongodb-4_2
+          mongodb-4_4
+          mongodb-5_0
         ];
       };
     };
@@ -48,6 +50,8 @@ import ./make-test-python.nix ({ pkgs, ... }:
       + runMongoDBTest pkgs.mongodb-3_6
       + runMongoDBTest pkgs.mongodb-4_0
       + runMongoDBTest pkgs.mongodb-4_2
+      + runMongoDBTest pkgs.mongodb-4_4
+      + runMongoDBTest pkgs.mongodb-5_0
       + ''
         node.shutdown()
       '';
diff --git a/pkgs/servers/nosql/mongodb/4.4.nix b/pkgs/servers/nosql/mongodb/4.4.nix
new file mode 100644
index 0000000000000..7dd74e24fc489
--- /dev/null
+++ b/pkgs/servers/nosql/mongodb/4.4.nix
@@ -0,0 +1,14 @@
+{ stdenv, callPackage, lib, sasl, boost, Security, CoreFoundation, cctools }:
+
+let
+  buildMongoDB = callPackage ./mongodb.nix {
+    inherit sasl boost Security CoreFoundation cctools;
+  };
+in
+buildMongoDB {
+  version = "4.4.13";
+  sha256 = "sha256-ebg3R6P+tjRvizDzsl7mZzhTfqIaRJPfHBu0IfRvtS8=";
+  patches = [
+    ./forget-build-dependencies-4-4.patch
+  ] ++ lib.optionals stdenv.isDarwin [ ./asio-no-experimental-string-view-4-4.patch ];
+}
diff --git a/pkgs/servers/nosql/mongodb/5.0.nix b/pkgs/servers/nosql/mongodb/5.0.nix
new file mode 100644
index 0000000000000..6bb2294cfffa7
--- /dev/null
+++ b/pkgs/servers/nosql/mongodb/5.0.nix
@@ -0,0 +1,25 @@
+{ stdenv, callPackage, lib, sasl, boost, Security, CoreFoundation, cctools }:
+
+let
+  buildMongoDB = callPackage ./mongodb.nix {
+    inherit sasl boost Security CoreFoundation cctools;
+  };
+  variants = if stdenv.isLinux then
+    {
+      version = "5.0.7";
+      sha256 = "sha256-1PeDBZJNqJXHH/cSh2e+WR0PfS/b7XuJEzkkbrRT/gc=";
+    }
+  else
+    {
+      version = "5.0.3"; # at least darwin has to stay on 5.0.3 until the SDK used by nixpkgs is bumped to 10.13
+      sha256 = "1p9pq0dfd6lynvnz5p1c8dqp4filzrz86j840xwxwx82dm1zl6p0";
+    };
+in
+buildMongoDB {
+  version = variants.version;
+  sha256 = variants.sha256;
+  patches = [
+    ./forget-build-dependencies-4-4.patch
+    ./asio-no-experimental-string-view-4-4.patch
+  ];
+}
diff --git a/pkgs/servers/nosql/mongodb/asio-no-experimental-string-view-4-4.patch b/pkgs/servers/nosql/mongodb/asio-no-experimental-string-view-4-4.patch
new file mode 100644
index 0000000000000..b27145d57ecf9
--- /dev/null
+++ b/pkgs/servers/nosql/mongodb/asio-no-experimental-string-view-4-4.patch
@@ -0,0 +1,23 @@
+--- a/src/third_party/asio-master/asio/include/asio/detail/config.hpp
+--- b/src/third_party/asio-master/asio/include/asio/detail/config.hpp
+@@ -831,20 +831,8 @@
+ #     endif // (__cplusplus >= 201402)
+ #    endif // (_LIBCPP_VERSION < 7000)
+ #   else // defined(ASIO_HAS_CLANG_LIBCXX)
+-#    if (__cplusplus >= 201402)
+-#     if __has_include(<experimental/string_view>)
+-#      define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1
+-#     endif // __has_include(<experimental/string_view>)
+-#    endif // (__cplusplus >= 201402)
+ #   endif // // defined(ASIO_HAS_CLANG_LIBCXX)
+ #  endif // defined(__clang__)
+-#  if defined(__GNUC__)
+-#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) || (__GNUC__ > 4)
+-#    if (__cplusplus >= 201402)
+-#     define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1
+-#    endif // (__cplusplus >= 201402)
+-#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) || (__GNUC__ > 4)
+-#  endif // defined(__GNUC__)
+ # endif // !defined(ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW)
+ #endif // !defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
+ 
diff --git a/pkgs/servers/nosql/mongodb/forget-build-dependencies-4-4.patch b/pkgs/servers/nosql/mongodb/forget-build-dependencies-4-4.patch
new file mode 100644
index 0000000000000..1c3e0982a8c1a
--- /dev/null
+++ b/pkgs/servers/nosql/mongodb/forget-build-dependencies-4-4.patch
@@ -0,0 +1,33 @@
+--- a/site_scons/mongo/generators.py
++++ b/site_scons/mongo/generators.py
+@@ -34,30 +34,12 @@ def default_buildinfo_environment_data():
+             False,
+         ),
+         (
+-            'ccflags',
+-            '$CCFLAGS',
+-            True,
+-            False,
+-        ),
+-        (
+             'cxx',
+             '$CXX_VERSION',
+             True,
+             False,
+         ),
+         (
+-            'cxxflags',
+-            '$CXXFLAGS',
+-            True,
+-            False,
+-        ),
+-        (
+-            'linkflags',
+-            '$LINKFLAGS',
+-            True,
+-            False,
+-        ),
+-        (
+             'target_arch',
+             '$TARGET_ARCH',
+             True,
diff --git a/pkgs/servers/nosql/mongodb/mongodb.nix b/pkgs/servers/nosql/mongodb/mongodb.nix
index 7c66d348ffb01..28795890069d1 100644
--- a/pkgs/servers/nosql/mongodb/mongodb.nix
+++ b/pkgs/servers/nosql/mongodb/mongodb.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, sconsPackages, boost, gperftools, pcre-cpp, snappy, zlib, libyamlcpp
-, sasl, openssl, libpcap, curl, Security, CoreFoundation, cctools }:
+, sasl, openssl, libpcap, python3, curl, Security, CoreFoundation, cctools, xz }:
 
 # Note:
 # The command line tools are written in Go as part of a different package (mongodb-tools)
@@ -8,12 +8,12 @@ with lib;
 
 { version, sha256, patches ? []
 , license ? lib.licenses.sspl
-}@args:
+}:
 
 let
   variants = if versionAtLeast version "4.2"
     then rec { python = scons.python.withPackages (ps: with ps; [ pyyaml cheetah3 psutil setuptools ]);
-            scons = sconsPackages.scons_latest;
+            scons = sconsPackages.scons_3_1_2.override { python = python3; }; # 4.2 < mongodb <= 5.0.x needs scons 3.x built with python3
             mozjsVersion = "60";
             mozjsReplace = "defined(HAVE___SINCOS)";
           }
@@ -44,7 +44,9 @@ in stdenv.mkDerivation rec {
     inherit sha256;
   };
 
-  nativeBuildInputs = [ variants.scons ];
+  nativeBuildInputs = [ variants.scons ]
+    ++ lib.optionals (versionAtLeast version "4.4") [ xz ];
+
   buildInputs = [
     boost
     curl
@@ -70,7 +72,6 @@ in stdenv.mkDerivation rec {
         --replace "env = Environment(" "env = Environment(ENV = os.environ,"
   '' + lib.optionalString stdenv.isDarwin ''
     substituteInPlace src/third_party/mozjs-${variants.mozjsVersion}/extract/js/src/jsmath.cpp --replace '${variants.mozjsReplace}' 0
-
     substituteInPlace src/third_party/s2/s1angle.cc --replace drem remainder
     substituteInPlace src/third_party/s2/s1interval.cc --replace drem remainder
     substituteInPlace src/third_party/s2/s2cap.cc --replace drem remainder
@@ -95,7 +96,8 @@ in stdenv.mkDerivation rec {
     "--use-sasl-client"
     "--disable-warnings-as-errors"
     "VARIANT_DIR=nixos" # Needed so we don't produce argument lists that are too long for gcc / ld
-  ] ++ map (lib: "--use-system-${lib}") system-libraries;
+  ] ++ lib.optionals (versionAtLeast version "4.4") [ "--link-model=static" ]
+    ++ map (lib: "--use-system-${lib}") system-libraries;
 
   preBuild = ''
     sconsFlags+=" CC=$CC"
@@ -119,7 +121,9 @@ in stdenv.mkDerivation rec {
     runHook postInstallCheck
   '';
 
-  prefixKey = "--prefix=";
+  installTargets = if (versionAtLeast version "4.4") then "install-core" else "install";
+
+  prefixKey = if (versionAtLeast version "4.4") then "DESTDIR=" else "--prefix=";
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/servers/nosql/mongodb/v4_2.nix b/pkgs/servers/nosql/mongodb/v4_2.nix
index e638cddd232ad..3759cc1e6d585 100644
--- a/pkgs/servers/nosql/mongodb/v4_2.nix
+++ b/pkgs/servers/nosql/mongodb/v4_2.nix
@@ -9,8 +9,8 @@ let
     inherit cctools;
   };
 in buildMongoDB {
-  version = "4.2.17";
-  sha256 = "sha256-4ynvImVjN674VdD/bJ55Vy/IrOlMN8iZb2PAhxwbv1A=";
+  version = "4.2.19";
+  sha256 = "sha256-fngTHd+fSdHqiqQYOYS7o6P5eHybeZy3iNKkGzFmjTw=";
   patches =
     [ ./forget-build-dependencies-4-2.patch ]
     ++ lib.optionals stdenv.isDarwin [ ./asio-no-experimental-string-view-4-2.patch ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 580dcc72325ee..158a0c60089f1 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -21798,6 +21798,20 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
   };
 
+  mongodb-4_4 = callPackage ../servers/nosql/mongodb/4.4.nix {
+    sasl = cyrus_sasl;
+    boost = boost17x.override { enableShared = false; };
+    inherit (darwin) cctools;
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
+  mongodb-5_0 = callPackage ../servers/nosql/mongodb/5.0.nix {
+    sasl = cyrus_sasl;
+    boost = boost17x.override { enableShared = false; };
+    inherit (darwin) cctools;
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
   nginx-sso = callPackage ../servers/nginx-sso { };
 
   percona-server56 = callPackage ../servers/sql/percona/5.6.x.nix { };