Skip to content

Commit

Permalink
mongodb: 4.0.12 -> 4.2.8
Browse files Browse the repository at this point in the history
Not strictly an upgrade, but adds a new mongodb-4_2 target with the
current mongodb from that branch.

Use matching client and server versions in mongodb tests- tests were
using the mongo 3.4 client to connect, and this finally doesn't work
with server 4.2.

Per reviewer suggestion, adding myself as cheetah3 maintainer.

Additionally, reestore comments describing the purpose of the
build-dependencies patch
  • Loading branch information
pjjw committed Jul 24, 2020
1 parent 1c26e6b commit dbd0f3e
Show file tree
Hide file tree
Showing 10 changed files with 131 additions and 5 deletions.
6 changes: 6 additions & 0 deletions maintainers/maintainer-list.nix
Original file line number Diff line number Diff line change
Expand Up @@ -6316,6 +6316,12 @@
githubId = 119460;
name = "Perry Barnoy";
};
pjjw = {
email = "[email protected]";
github = "pjjw";
githubId = 638;
name = "Peter Woodman";
};
pjones = {
email = "[email protected]";
github = "pjones";
Expand Down
4 changes: 3 additions & 1 deletion nixos/tests/mongodb.nix
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
node.wait_for_open_port(27017)
assert "hello" in node.succeed(
"mongo ${testQuery}"
"${pkg}/bin/mongo ${testQuery}"
)
node.execute(
Expand All @@ -36,6 +36,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
mongodb-3_4
mongodb-3_6
mongodb-4_0
mongodb-4_2
];
};
};
Expand All @@ -46,6 +47,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
+ runMongoDBTest pkgs.mongodb-3_4
+ runMongoDBTest pkgs.mongodb-3_6
+ runMongoDBTest pkgs.mongodb-4_0
+ runMongoDBTest pkgs.mongodb-4_2
+ ''
node.shutdown()
'';
Expand Down
20 changes: 20 additions & 0 deletions pkgs/development/python-modules/cheetah3/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{ lib, buildPythonPackage, fetchPypi, stdenv }:

buildPythonPackage rec {
pname = "Cheetah3";
version = "3.2.5";

src = fetchPypi {
inherit pname version;
sha256 = "ececc9ca7c58b9a86ce71eb95594c4619949e2a058d2a1af74c7ae8222515eb1";
};

doCheck = false; # Circular dependency

meta = {
homepage = "http://www.cheetahtemplate.org/";
description = "A template engine and code generation tool";
license = lib.licenses.mit;
maintainers = with stdenv.lib.maintainers; [ pjjw ];
};
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
--- 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)
36 changes: 36 additions & 0 deletions pkgs/servers/nosql/mongodb/forget-build-dependencies-4-2.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# 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.
--- a/site_scons/mongo/generators.py
+++ b/site_scons/mongo/generators.py
@@ -33,30 +33,12 @@ def default_buildinfo_environment_data():
True,
False,
),
- (
- 'ccflags',
- '$CCFLAGS',
- True,
- False,
- ),
(
'cxx',
'$CXX_VERSION',
True,
False,
),
- (
- 'cxxflags',
- '$CXXFLAGS',
- True,
- False,
- ),
- (
- 'linkflags',
- '$LINKFLAGS',
- True,
- False,
- ),
(
'target_arch',
'$TARGET_ARCH',
3 changes: 3 additions & 0 deletions pkgs/servers/nosql/mongodb/forget-build-dependencies.patch
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# 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.
--- a/site_scons/mongo/generators.py
+++ b/site_scons/mongo/generators.py
@@ -18,10 +18,7 @@ def default_buildinfo_environment_data():
Expand Down
19 changes: 15 additions & 4 deletions pkgs/servers/nosql/mongodb/mongodb.nix
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{ stdenv, fetchurl, scons, boost, gperftools, pcre-cpp, snappy, zlib, libyamlcpp
, sasl, openssl, libpcap, python27, curl, Security, CoreFoundation, cctools }:
, 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)
Expand All @@ -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 = scons;
mozjsVersion = "60";
mozjsReplace = "defined(HAVE___SINCOS)";
}
else { python = python27.withPackages (ps: with ps; [ pyyaml typing cheetah ]);
scons = scons.py2;
mozjsVersion = "45";
mozjsReplace = "defined(HAVE_SINCOS)";
};
python = python27.withPackages (ps: with ps; [ pyyaml typing cheetah ]);
system-libraries = [
"boost"
Expand All @@ -34,7 +45,7 @@ in stdenv.mkDerivation rec {
inherit sha256;
};

nativeBuildInputs = [ scons.py2 ];
nativeBuildInputs = [ variants.scons ];
buildInputs = [
boost
curl
Expand All @@ -43,7 +54,7 @@ in stdenv.mkDerivation rec {
libyamlcpp
openssl
pcre-cpp
python
variants.python
sasl
snappy
zlib
Expand All @@ -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
Expand Down
17 changes: 17 additions & 0 deletions pkgs/servers/nosql/mongodb/v4_2.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{ stdenv, callPackage, lib, sasl, boost, Security, CoreFoundation, cctools }:

let
buildMongoDB = callPackage ./mongodb.nix {
inherit sasl;
inherit boost;
inherit Security;
inherit CoreFoundation;
inherit cctools;
};
in buildMongoDB {
version = "4.2.8";
sha256 = "13yvhi1258skdni00bh6ph609whqsmhiimhyqy1gs2liwdvh5278";
patches =
[ ./forget-build-dependencies-4-2.patch ]
++ stdenv.lib.optionals stdenv.isDarwin [ ./asio-no-experimental-string-view-4-2.patch ];
}
7 changes: 7 additions & 0 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -16257,6 +16257,13 @@ in
inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
};

mongodb-4_2 = callPackage ../servers/nosql/mongodb/v4_2.nix {
sasl = cyrus_sasl;
boost = boost169;
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 { };
Expand Down
2 changes: 2 additions & 0 deletions pkgs/top-level/python-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2301,6 +2301,8 @@ in {

cheetah = callPackage ../development/python-modules/cheetah { };

cheetah3 = callPackage ../development/python-modules/cheetah3 { };

cherrypy = if isPy3k then
callPackage ../development/python-modules/cherrypy { }
else
Expand Down

0 comments on commit dbd0f3e

Please sign in to comment.