All of lore.kernel.org
 help / color / mirror / Atom feed
From: Titouan Christophe <titouan.christophe@railnova.eu>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2 4/4] package/mongodb: bump to version 4.1.10
Date: Sat, 26 Oct 2019 17:29:43 +0200	[thread overview]
Message-ID: <20191026152943.122511-5-titouan.christophe@railnova.eu> (raw)
In-Reply-To: <20191026152943.122511-1-titouan.christophe@railnova.eu>

From: Fabrice Fontaine <fontaine.fabrice@gmail.com>

- Drop !BR2_PACKAGE_PYTHON3 dependency as SConstruct requires
  host-python3 since version 4.1.10 and:
  https://github.com/mongodb/mongo/commit/8dd6d4755734ed37c1b98dfdefce3ca6bc65f1f6
- host-python-psutil is needed since 4.1.8 and
  https://github.com/mongodb/mongo/commit/ff03811e31851984617d73739de8acc7640b19a2
- Drop unneeded host-python-typing dependency
- C++17 and so gcc 7 is required since 4.1.8 and
  https://github.com/mongodb/mongo/commit/01d84b2565fc9ea9626a55dcf1f3f817968088f2
- Set --disable-minimum-compiler-version-enforcement as mongodb enforces
  gcc >= 8.2 since verson 4.1.8 and
  https://github.com/mongodb/mongo/commit/9ac90b128ebeb1bb431ebe3fe9176cb6142818cb
- Explictly disable ssl if needed as ssl is enabled by default
- Add host-python-cheetah3 dependency if needed
- Manage new http-client option added in version 4.1.2 and
  https://github.com/mongodb/mongo/commit/4d7dcca91bc2bbde65843fe88c41fa040e0d1877
- Add a patch to fix build with system libraries

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Titouan: Fix patch conflicts with master]
Signed-off-by: Titouan Christophe <titouan.christophe@railnova.eu>
---
 ...0002-fix-build-with-system-libraries.patch | 64 +++++++++++++++++++
 package/mongodb/Config.in                     |  8 +--
 package/mongodb/mongodb.hash                  |  2 +-
 package/mongodb/mongodb.mk                    | 23 ++++---
 4 files changed, 83 insertions(+), 14 deletions(-)
 create mode 100644 package/mongodb/0002-fix-build-with-system-libraries.patch

diff --git a/package/mongodb/0002-fix-build-with-system-libraries.patch b/package/mongodb/0002-fix-build-with-system-libraries.patch
new file mode 100644
index 0000000000..cf8b69d221
--- /dev/null
+++ b/package/mongodb/0002-fix-build-with-system-libraries.patch
@@ -0,0 +1,64 @@
+From 40c7112d346721a57a134bd7b3d87d797d9c1a55 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Sat, 27 Apr 2019 10:55:05 +0200
+Subject: [PATCH] fix build with system libraries
+
+Since commit 66430d75e33827da60195deb317058c71f75e03f which replaced all
+InjectThirdPartyIncludePaths calls by InjectThirdParty calls, building
+with system libraries such as --use-system-boost will fail on:
+
+KeyError: 'boost':
+  File "/home/fabrice/buildroot/output/build/mongodb-r4.1.10/SConstruct", line 3876:
+    variant_dir='$BUILD_DIR',
+  File "/home/fabrice/buildroot/output/host/lib/scons-3.0.5/SCons/Script/SConscript.py", line 605:
+    return _SConscript(self.fs, *files, **subst_kw)
+  File "/home/fabrice/buildroot/output/host/lib/scons-3.0.5/SCons/Script/SConscript.py", line 286:
+    exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
+  File "/home/fabrice/buildroot/output/build/mongodb-r4.1.10/src/SConscript", line 12:
+    env.SConscript('third_party/SConscript', exports=['env'])
+  File "/home/fabrice/buildroot/output/host/lib/scons-3.0.5/SCons/Script/SConscript.py", line 605:
+    return _SConscript(self.fs, *files, **subst_kw)
+  File "/home/fabrice/buildroot/output/host/lib/scons-3.0.5/SCons/Script/SConscript.py", line 286:
+    exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
+  File "/home/fabrice/buildroot/output/build/mongodb-r4.1.10/src/third_party/SConscript", line 161:
+    murmurEnv.SConscript('murmurhash3/SConscript', exports={ 'env' : murmurEnv })
+  File "/home/fabrice/buildroot/output/host/lib/scons-3.0.5/SCons/Script/SConscript.py", line 605:
+    return _SConscript(self.fs, *files, **subst_kw)
+  File "/home/fabrice/buildroot/output/host/lib/scons-3.0.5/SCons/Script/SConscript.py", line 286:
+    exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
+  File "/home/fabrice/buildroot/output/build/mongodb-r4.1.10/src/third_party/murmurhash3/SConscript", line 5:
+    env.InjectThirdParty(libraries=['boost'])
+  File "/home/fabrice/buildroot/output/host/lib/scons-3.0.5/SCons/Environment.py", line 224:
+    return self.method(*nargs, **kwargs)
+  File "/home/fabrice/buildroot/output/build/mongodb-r4.1.10/src/third_party/SConscript", line 148:
+    mods = thirdPartyEnvironmentModifications[lib]
+
+This is due to the fact that boost is not added as an element of
+thirdPartyEnvironmentModification if --use-system-boost is set
+
+To fix this error, catch the KeyError
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ src/third_party/SConscript | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/third_party/SConscript b/src/third_party/SConscript
+index c129f6765e..089dad7579 100644
+--- a/src/third_party/SConscript
++++ b/src/third_party/SConscript
+@@ -183,7 +183,10 @@ def injectThirdParty(thisEnv, libraries=[], parts=[]):
+     libraries = thisEnv.Flatten([libraries])
+     parts = thisEnv.Flatten([parts])
+     for lib in libraries:
+-        mods = thirdPartyEnvironmentModifications[lib]
++        try:
++            mods = thirdPartyEnvironmentModifications[lib]
++        except KeyError:
++            continue
+         if not parts:
+             thisEnv.PrependUnique(**mods)
+         else:
+-- 
+2.20.1
+
diff --git a/package/mongodb/Config.in b/package/mongodb/Config.in
index 9c5dba8347..493c592413 100644
--- a/package/mongodb/Config.in
+++ b/package/mongodb/Config.in
@@ -8,12 +8,11 @@ config BR2_PACKAGE_MONGODB_ARCH_SUPPORTS
 config BR2_PACKAGE_MONGODB
 	bool "mongodb"
 	depends on BR2_PACKAGE_MONGODB_ARCH_SUPPORTS
-	depends on !BR2_PACKAGE_PYTHON3
 	depends on BR2_TOOLCHAIN_USES_GLIBC # needs glibc malloc_usable_size
 	depends on BR2_USE_WCHAR
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_6
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17
 	select BR2_PACKAGE_BOOST
 	select BR2_PACKAGE_BOOST_FILESYSTEM
 	select BR2_PACKAGE_BOOST_IOSTREAMS
@@ -35,9 +34,8 @@ config BR2_PACKAGE_MONGODB
 
 	  https://www.mongodb.org/
 
-comment "mongodb needs a glibc toolchain w/ wchar, threads, C++, gcc >= 6"
+comment "mongodb needs a glibc toolchain w/ wchar, threads, C++, gcc >= 7"
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
 		!BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_USES_GLIBC || \
-		!BR2_TOOLCHAIN_GCC_AT_LEAST_6
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_7
 	depends on BR2_PACKAGE_MONGODB_ARCH_SUPPORTS
-	depends on !BR2_PACKAGE_PYTHON3
diff --git a/package/mongodb/mongodb.hash b/package/mongodb/mongodb.hash
index f08ffffe3b..c22091151e 100644
--- a/package/mongodb/mongodb.hash
+++ b/package/mongodb/mongodb.hash
@@ -1,4 +1,4 @@
 # Locally computed:
-sha256 b39c5b7bb77a547804ab6f43f9b5f09add47574356b31512fd1cc641a08b4ea5  mongodb-r4.0.12.tar.gz
+sha256 b6e0cd151f95728276a02a9b0d86a1582b1b30d5763fd6b5c0e1a0c488e7bc67  mongodb-r4.1.10.tar.gz
 sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30  APACHE-2.0.txt
 sha256 09d99ca61eb07873d5334077acba22c33e7f7d0a9fa08c92734e0ac8430d6e27  LICENSE-Community.txt
diff --git a/package/mongodb/mongodb.mk b/package/mongodb/mongodb.mk
index 22ca920e12..03c7267358 100644
--- a/package/mongodb/mongodb.mk
+++ b/package/mongodb/mongodb.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-MONGODB_VERSION_BASE = 4.0.12
+MONGODB_VERSION_BASE = 4.1.10
 MONGODB_VERSION = r$(MONGODB_VERSION_BASE)
 MONGODB_SITE = $(call github,mongodb,mongo,$(MONGODB_VERSION))
 
@@ -13,9 +13,9 @@ MONGODB_LICENSE_FILES = APACHE-2.0.txt LICENSE-Community.txt
 
 MONGODB_DEPENDENCIES = \
 	boost \
-	host-python-cheetah \
+	host-python-cheetah3 \
+	host-python-psutil \
 	host-python-pyyaml \
-	host-python-typing \
 	host-scons \
 	pcre \
 	snappy \
@@ -29,6 +29,7 @@ MONGODB_SCONS_ENV = CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" \
 	-j"$(PARALLEL_JOBS)"
 
 MONGODB_SCONS_OPTS = \
+	--disable-minimum-compiler-version-enforcement \
 	--disable-warnings-as-errors \
 	--use-system-boost \
 	--use-system-pcre \
@@ -60,21 +61,27 @@ endif
 
 ifeq ($(BR2_PACKAGE_LIBCURL),y)
 MONGODB_DEPENDENCIES += libcurl
-MONGODB_SCONS_OPTS += --enable-free-mon=on
+MONGODB_SCONS_OPTS += \
+	--enable-free-mon=on \
+	--enable-http-client=on
 else
-MONGODB_SCONS_OPTS += --enable-free-mon=off
+MONGODB_SCONS_OPTS += \
+	--enable-free-mon=off \
+	--enable-http-client=off
 endif
 
 ifeq ($(BR2_PACKAGE_OPENSSL),y)
 MONGODB_DEPENDENCIES += openssl
 MONGODB_SCONS_OPTS += \
-	--ssl \
+	--ssl=on \
 	--ssl-provider=openssl
+else
+MONGODB_SCONS_OPTS += --ssl=off
 endif
 
 define MONGODB_BUILD_CMDS
 	(cd $(@D); \
-		$(HOST_DIR)/bin/python $(SCONS) \
+		$(HOST_DIR)/bin/python3 $(SCONS) \
 		$(MONGODB_SCONS_ENV) \
 		$(MONGODB_SCONS_OPTS) \
 		$(MONGODB_SCONS_TARGETS))
@@ -82,7 +89,7 @@ endef
 
 define MONGODB_INSTALL_TARGET_CMDS
 	(cd $(@D); \
-		$(HOST_DIR)/bin/python $(SCONS) \
+		$(HOST_DIR)/bin/python3 $(SCONS) \
 		$(MONGODB_SCONS_ENV) \
 		$(MONGODB_SCONS_OPTS) \
 		--prefix=$(TARGET_DIR)/usr \
-- 
2.21.0

      parent reply	other threads:[~2019-10-26 15:29 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-26 15:29 [Buildroot] [PATCH v2 0/4] package/mongodb: Bump to v4.1.10 Titouan Christophe
2019-10-26 15:29 ` [Buildroot] [PATCH v2 1/4] package/python-psutil: add host variant Titouan Christophe
2019-10-26 15:29 ` [Buildroot] [PATCH v2 2/4] package/python-cheetah3: new package Titouan Christophe
2020-03-11  9:52   ` Yegor Yefremov
2020-03-12  7:30     ` Yegor Yefremov
2019-10-26 15:29 ` [Buildroot] [PATCH v2 3/4] package/python-pyyaml: add a host-python3 dependency for host variant Titouan Christophe
2019-10-26 17:16   ` Thomas Petazzoni
2020-03-11 10:07     ` Yegor Yefremov
2019-10-26 15:29 ` Titouan Christophe [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191026152943.122511-5-titouan.christophe@railnova.eu \
    --to=titouan.christophe@railnova.eu \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.