diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/nosql/mongodb/mongodb.nix')
-rw-r--r-- | nixpkgs/pkgs/servers/nosql/mongodb/mongodb.nix | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/nixpkgs/pkgs/servers/nosql/mongodb/mongodb.nix b/nixpkgs/pkgs/servers/nosql/mongodb/mongodb.nix index 8ffdbcd63c4..f57ff746198 100644 --- a/nixpkgs/pkgs/servers/nosql/mongodb/mongodb.nix +++ b/nixpkgs/pkgs/servers/nosql/mongodb/mongodb.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchurl, scons, boost, gperftools, pcre-cpp, snappy, zlib, libyamlcpp -, sasl, openssl, libpcap, python27, curl, Security, CoreFoundation, cctools }: +{ stdenv, fetchurl, sconsPackages, boost, gperftools, pcre-cpp, snappy, zlib, libyamlcpp +, sasl, openssl, libpcap, python27, python38, curl, Security, CoreFoundation, cctools }: # Note: # The command line tools are written in Go as part of a different package (mongodb-tools) @@ -11,6 +11,17 @@ with stdenv.lib; }@args: let + variants = if versionAtLeast version "4.2" + then { python = python38.withPackages (ps: with ps; [ pyyaml cheetah3 psutil setuptools ]); + scons = sconsPackages.scons_latest; + mozjsVersion = "60"; + mozjsReplace = "defined(HAVE___SINCOS)"; + } + else { python = python27.withPackages (ps: with ps; [ pyyaml typing cheetah ]); + scons = sconsPackages.scons_3_1_2; + mozjsVersion = "45"; + mozjsReplace = "defined(HAVE_SINCOS)"; + }; python = python27.withPackages (ps: with ps; [ pyyaml typing cheetah ]); system-libraries = [ "boost" @@ -27,14 +38,14 @@ let in stdenv.mkDerivation rec { inherit version; - name = "mongodb-${version}"; + pname = "mongodb"; src = fetchurl { url = "https://fastdl.mongodb.org/src/mongodb-src-r${version}.tar.gz"; inherit sha256; }; - nativeBuildInputs = [ scons.py2 ]; + nativeBuildInputs = [ variants.scons ]; buildInputs = [ boost curl @@ -43,7 +54,7 @@ in stdenv.mkDerivation rec { libyamlcpp openssl pcre-cpp - python + variants.python sasl snappy zlib @@ -59,7 +70,7 @@ in stdenv.mkDerivation rec { substituteInPlace SConstruct \ --replace "env = Environment(" "env = Environment(ENV = os.environ," '' + stdenv.lib.optionalString stdenv.isDarwin '' - substituteInPlace src/third_party/mozjs-45/extract/js/src/jsmath.cpp --replace 'defined(HAVE_SINCOS)' 0 + 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 @@ -102,6 +113,13 @@ in stdenv.mkDerivation rec { rm -f "$out/bin/install_compass" || true ''; + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + "$out/bin/mongo" --version + runHook postInstallCheck + ''; + prefixKey = "--prefix="; enableParallelBuilding = true; |