From patchwork Tue Feb 4 12:52:50 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Koen Kooi X-Patchwork-Id: 24098 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-vc0-f198.google.com (mail-vc0-f198.google.com [209.85.220.198]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 5866E20445 for ; Tue, 4 Feb 2014 12:53:08 +0000 (UTC) Received: by mail-vc0-f198.google.com with SMTP id lf12sf21721294vcb.5 for ; Tue, 04 Feb 2014 04:53:07 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:delivered-to:delivered-to:from:to:date :message-id:cc:subject:precedence:reply-to:list-id:list-unsubscribe :list-archive:list-post:list-help:list-subscribe:mime-version:sender :errors-to:x-original-sender:x-original-authentication-results :mailing-list:content-type:content-transfer-encoding; bh=p+pIzDsJRQtwYGb5ZyzR1SA4HvrhoT9MseTIFS4ISGI=; b=OujeOZQUef6A8UnIwQ0dmZyxfgUDgi4jb59NySN5g8AvE7DdRyAsrnjYJl3YzN22LR PvHtS/y+mleQVwUDjt1rfwxk/Oo7n43492M6dO7R+9kogKDEVrHnya8THkCoBnkavdMJ bSiQ0cOctvaKtkP45wp9rahTwx/cs/NnkmHYlgzp3nhCqCeHHz5kSt8EA+IHpgk8R+ZM MinDSD6V/oL0bml9QdELYu3bjkru9Ojo1vh6TV6dNf3hFvXJQdISGy6Iu5KS1aa7WW+O rfM7PvRLxMNaiHyJJdvFvWoTCe+peSNervehUUuKchT8keBVW+dtbN4CccBZH7ZgePdz woQA== X-Gm-Message-State: ALoCoQktt5tf66JmZpyFIAD/MlJ9dZt+PRq7ulZTMY6TDK84qoUnYmfjY55+IMwVTkc07osgCFcq X-Received: by 10.236.94.113 with SMTP id m77mr15574760yhf.33.1391518387463; Tue, 04 Feb 2014 04:53:07 -0800 (PST) X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.84.165 with SMTP id l34ls2174946qgd.5.gmail; Tue, 04 Feb 2014 04:53:07 -0800 (PST) X-Received: by 10.52.116.71 with SMTP id ju7mr843504vdb.31.1391518387365; Tue, 04 Feb 2014 04:53:07 -0800 (PST) Received: from mail-vc0-f170.google.com (mail-vc0-f170.google.com [209.85.220.170]) by mx.google.com with ESMTPS id od9si8115893vcb.65.2014.02.04.04.53.07 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 04 Feb 2014 04:53:07 -0800 (PST) Received-SPF: neutral (google.com: 209.85.220.170 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) client-ip=209.85.220.170; Received: by mail-vc0-f170.google.com with SMTP id hu8so5773223vcb.15 for ; Tue, 04 Feb 2014 04:53:07 -0800 (PST) X-Received: by 10.58.170.69 with SMTP id ak5mr1012547vec.28.1391518387239; Tue, 04 Feb 2014 04:53:07 -0800 (PST) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.220.174.196 with SMTP id u4csp231943vcz; Tue, 4 Feb 2014 04:53:06 -0800 (PST) X-Received: by 10.66.146.199 with SMTP id te7mr43812812pab.106.1391518385957; Tue, 04 Feb 2014 04:53:05 -0800 (PST) Received: from mail.openembedded.org (mail.openembedded.org. [140.211.169.62]) by mx.google.com with ESMTP id i4si24566606pad.25.2014.02.04.04.53.05 for ; Tue, 04 Feb 2014 04:53:05 -0800 (PST) Received-SPF: pass (google.com: domain of openembedded-devel-bounces@lists.openembedded.org designates 140.211.169.62 as permitted sender) client-ip=140.211.169.62; Received: from mail.openembedded.org (localhost [127.0.0.1]) by mail.openembedded.org (Postfix) with ESMTP id 35A6E6EC8C; Tue, 4 Feb 2014 12:53:03 +0000 (UTC) X-Original-To: openembedded-devel@lists.openembedded.org Delivered-To: openembedded-devel@lists.openembedded.org Received: from mail-wg0-f49.google.com (mail-wg0-f49.google.com [74.125.82.49]) by mail.openembedded.org (Postfix) with ESMTP id D11CA6E944 for ; Tue, 4 Feb 2014 12:53:00 +0000 (UTC) Received: by mail-wg0-f49.google.com with SMTP id a1so13041656wgh.16 for ; Tue, 04 Feb 2014 04:53:01 -0800 (PST) X-Received: by 10.194.75.198 with SMTP id e6mr27660776wjw.3.1391518381298; Tue, 04 Feb 2014 04:53:01 -0800 (PST) Received: from localhost ([2001:610:612:0:5e51:4fff:fec8:7c15]) by mx.google.com with ESMTPSA id q5sm35578712wia.2.2014.02.04.04.53.00 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 04 Feb 2014 04:53:00 -0800 (PST) From: Koen Kooi To: openembedded-devel@lists.openembedded.org Date: Tue, 4 Feb 2014 13:52:50 +0100 Message-Id: <1391518370-19990-1-git-send-email-koen.kooi@linaro.org> X-Mailer: git-send-email 1.8.4.2 Cc: Koen Kooi Subject: [oe] [meta-oe][PATCH] mongodb: add git version X-BeenThere: openembedded-devel@lists.openembedded.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: openembedded-devel@lists.openembedded.org List-Id: List-Unsubscribe: , List-Archive: List-Post: , List-Help: , List-Subscribe: , MIME-Version: 1.0 Sender: openembedded-devel-bounces@lists.openembedded.org Errors-To: openembedded-devel-bounces@lists.openembedded.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: koen.kooi@linaro.org X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 209.85.220.170 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 This builds the server and the sharding helper, but not the CLI. The CLI will need a libv8 recipe since fixing the built-in copy to cross build is too much work. Signed-off-by: Koen Kooi --- ...Make-it-possible-to-disable-the-use-of-v8.patch | 49 +++++++++++++++++ ...place-os.uname-with-os.getenv-TARGET_ARCH.patch | 50 +++++++++++++++++ ...02-Fix-linking-when-scripting-is-disabled.patch | 25 +++++++++ ...d-mongo-binary-when-scripting-is-disabled.patch | 64 ++++++++++++++++++++++ meta-oe/recipes-support/mongodb/mongodb_git.bb | 38 +++++++++++++ 5 files changed, 226 insertions(+) create mode 100644 meta-oe/recipes-support/mongodb/mongodb/0001-Make-it-possible-to-disable-the-use-of-v8.patch create mode 100644 meta-oe/recipes-support/mongodb/mongodb/0001-replace-os.uname-with-os.getenv-TARGET_ARCH.patch create mode 100644 meta-oe/recipes-support/mongodb/mongodb/0002-Fix-linking-when-scripting-is-disabled.patch create mode 100644 meta-oe/recipes-support/mongodb/mongodb/0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch create mode 100644 meta-oe/recipes-support/mongodb/mongodb_git.bb diff --git a/meta-oe/recipes-support/mongodb/mongodb/0001-Make-it-possible-to-disable-the-use-of-v8.patch b/meta-oe/recipes-support/mongodb/mongodb/0001-Make-it-possible-to-disable-the-use-of-v8.patch new file mode 100644 index 0000000..311ac6c --- /dev/null +++ b/meta-oe/recipes-support/mongodb/mongodb/0001-Make-it-possible-to-disable-the-use-of-v8.patch @@ -0,0 +1,49 @@ +From bffde38f3b3d6285019e38a30c4573326e1dd2ea Mon Sep 17 00:00:00 2001 +From: Michael Hudson-Doyle +Date: Fri, 20 Dec 2013 11:10:43 +1300 +Subject: [PATCH 1/3] Make it possible to disable the use of v8. + +Currently v8 is always built in, no matter what you pass to scons. + +This removes the (useless) --usev8 flag for scons and replaces it with a +--disable-scripting option instead. +--- + SConstruct | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/SConstruct b/SConstruct +index fd92fe4..1f14083 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -222,7 +222,7 @@ add_option( "asio" , "Use Asynchronous IO (NOT READY YET)" , 0 , True ) + add_option( "ssl" , "Enable SSL" , 0 , True ) + + # library choices +-add_option( "usev8" , "use v8 for javascript" , 0 , True ) ++add_option( "disable-scripting" , "do not build support for javascript" , 0 , True ) + add_option( "libc++", "use libc++ (experimental, requires clang)", 0, True ) + + # mongo feature options +@@ -439,7 +439,7 @@ static = has_option( "static" ) + + noshell = has_option( "noshell" ) + +-usev8 = has_option( "usev8" ) ++disable_scripting = has_option( "disable-scripting" ) + + asio = has_option( "asio" ) + +@@ -599,7 +599,9 @@ if has_option( "durableDefaultOn" ): + if has_option( "durableDefaultOff" ): + env.Append( CPPDEFINES=[ "_DURABLEDEFAULTOFF" ] ) + +-if ( not ( usev8 or justClientLib) ): ++if disable_scripting or justClientLib: ++ usev8 = False ++else: + usev8 = True + + extraLibPlaces = [] +-- +1.8.4.2 + diff --git a/meta-oe/recipes-support/mongodb/mongodb/0001-replace-os.uname-with-os.getenv-TARGET_ARCH.patch b/meta-oe/recipes-support/mongodb/mongodb/0001-replace-os.uname-with-os.getenv-TARGET_ARCH.patch new file mode 100644 index 0000000..547c3bd --- /dev/null +++ b/meta-oe/recipes-support/mongodb/mongodb/0001-replace-os.uname-with-os.getenv-TARGET_ARCH.patch @@ -0,0 +1,50 @@ +From ef482650fb6d990e4953104d7141d9a0fa4c872f Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Tue, 4 Feb 2014 10:56:35 +0100 +Subject: [PATCH] replace os.uname with os.getenv(OE_TARGET_ARCH) + +This fixes crosscompilation + +Signed-off-by: Koen Kooi +Upstream-Status: Inappropiate [OE specific] +--- + SConstruct | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/SConstruct b/SConstruct +index 4f26be7..a353323 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -265,9 +265,9 @@ add_option( "pch" , "use precompiled headers to speed up the build (experimental + add_option( "distcc" , "use distcc for distributing builds" , 0 , False ) + + # debugging/profiling help +-if os.sys.platform.startswith("linux") and (os.uname()[-1] == 'x86_64'): ++if os.sys.platform.startswith("linux") and (os.getenv("OE_TARGET_ARCH") == 'x86_64'): + defaultAllocator = 'tcmalloc' +-elif (os.sys.platform == "darwin") and (os.uname()[-1] == 'x86_64'): ++elif (os.sys.platform == "darwin") and (os.getenv("OE_TARGET_ARCH") == 'x86_64'): + defaultAllocator = 'tcmalloc' + else: + defaultAllocator = 'system' +@@ -673,7 +673,7 @@ if has_option( "full" ): + # ---- other build setup ----- + + if "uname" in dir(os): +- processor = os.uname()[4] ++ processor = os.getenv("OE_TARGET_ARCH") + else: + processor = "i386" + +@@ -702,7 +702,7 @@ elif linux: + + env.Append( LIBS=['m'] ) + +- if os.uname()[4] == "x86_64" and not force32: ++ if os.getenv("OE_TARGET_ARCH") == "x86_64" and not force32: + linux64 = True + nixLibPrefix = "lib64" + env.Append( EXTRALIBPATH=["/usr/lib64" , "/lib64" ] ) +-- +1.8.4.2 + diff --git a/meta-oe/recipes-support/mongodb/mongodb/0002-Fix-linking-when-scripting-is-disabled.patch b/meta-oe/recipes-support/mongodb/mongodb/0002-Fix-linking-when-scripting-is-disabled.patch new file mode 100644 index 0000000..d8d5a3b --- /dev/null +++ b/meta-oe/recipes-support/mongodb/mongodb/0002-Fix-linking-when-scripting-is-disabled.patch @@ -0,0 +1,25 @@ +From 52d68642205626cad3bac3a53e269c765ccff676 Mon Sep 17 00:00:00 2001 +From: Michael Hudson-Doyle +Date: Fri, 20 Dec 2013 12:28:27 +1300 +Subject: [PATCH 2/3] Fix linking when scripting is disabled. + +--- + src/mongo/scripting/engine_none.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/mongo/scripting/engine_none.cpp b/src/mongo/scripting/engine_none.cpp +index f5c7109..9ae9d57 100644 +--- a/src/mongo/scripting/engine_none.cpp ++++ b/src/mongo/scripting/engine_none.cpp +@@ -33,4 +33,8 @@ namespace mongo { + void ScriptEngine::setup() { + // noop + } ++ ++ std::string ScriptEngine::getInterpreterVersionString() { ++ return "none"; ++ } + } +-- +1.8.4.2 + diff --git a/meta-oe/recipes-support/mongodb/mongodb/0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch b/meta-oe/recipes-support/mongodb/mongodb/0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch new file mode 100644 index 0000000..5c314b1 --- /dev/null +++ b/meta-oe/recipes-support/mongodb/mongodb/0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch @@ -0,0 +1,64 @@ +From 1f8e10747af3988e8ddee609bea990f622dd746a Mon Sep 17 00:00:00 2001 +From: Michael Hudson-Doyle +Date: Wed, 22 Jan 2014 13:53:10 +1300 +Subject: [PATCH 3/3] * Do not build 'mongo' binary when scripting is disabled + * Do not build the jstests when scripting is disabled + +--- + SConstruct | 8 ++++++-- + src/mongo/SConscript | 4 +++- + 2 files changed, 9 insertions(+), 3 deletions(-) + +diff --git a/SConstruct b/SConstruct +index 1f14083..a69cf0a 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -437,10 +437,13 @@ else: + + static = has_option( "static" ) + +-noshell = has_option( "noshell" ) +- + disable_scripting = has_option( "disable-scripting" ) + ++if not disable_scripting: ++ noshell = has_option( "noshell" ) ++else: ++ noshell = True ++ + asio = has_option( "asio" ) + + usePCH = has_option( "usePCH" ) +@@ -1671,6 +1674,7 @@ Export("get_option") + Export("has_option use_system_version_of_library") + Export("installSetup mongoCodeVersion") + Export("usev8") ++Export("disable_scripting") + Export("darwin windows solaris linux freebsd nix") + Export('module_sconscripts') + Export("debugBuild optBuild") +diff --git a/src/mongo/SConscript b/src/mongo/SConscript +index d84267e..dc0ca3a 100644 +--- a/src/mongo/SConscript ++++ b/src/mongo/SConscript +@@ -6,6 +6,7 @@ import os + import itertools + from buildscripts import utils + ++Import("disable_scripting") + Import("env") + Import("shellEnv") + Import("testEnv") +@@ -1022,7 +1023,8 @@ test = testEnv.Install( + [ f for f in Glob("dbtests/*.cpp") + if not str(f).endswith('framework.cpp') and + not str(f).endswith('framework_options.cpp') and +- not str(f).endswith('framework_options_init.cpp') ], ++ not str(f).endswith('framework_options_init.cpp') and ++ not (str(f).endswith('jstests.cpp') and disable_scripting)], + LIBDEPS = [ + "mutable_bson_test_utils", + "mongocommon", +-- +1.8.4.2 + diff --git a/meta-oe/recipes-support/mongodb/mongodb_git.bb b/meta-oe/recipes-support/mongodb/mongodb_git.bb new file mode 100644 index 0000000..f0fe240 --- /dev/null +++ b/meta-oe/recipes-support/mongodb/mongodb_git.bb @@ -0,0 +1,38 @@ +SUMMARY = "mongodb" +LICENSE = "AGPLv3 & Apache-2.0" +LIC_FILES_CHKSUM = "file://GNU-AGPL-3.0.txt;md5=73f1eb20517c55bf9493b7dd6e480788 \ + file://APACHE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57" + +DEPENDS = "openssl libpcre boost" +# Mongo uses tcmalloc on x86_64, which is provided by gperftools +DEPENDS_append_x86-64 = " gperftools" + +inherit scons + +PV = "2.5.5+git${SRCPV}" +SRCREV = "588dc81b0822ebb46f80e152b94527a882e6ea5e" +SRC_URI = "git://github.com/mongodb/mongo.git \ + file://0001-Make-it-possible-to-disable-the-use-of-v8.patch \ + file://0002-Fix-linking-when-scripting-is-disabled.patch \ + file://0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch \ + file://0001-replace-os.uname-with-os.getenv-TARGET_ARCH.patch \ + " + +S = "${WORKDIR}/git" + +export OE_TARGET_ARCH="${TARGET_ARCH}" + +EXTRA_OESCONS = "--prefix=${D}${prefix} \ + --propagate-shell-environment \ + --cc-use-shell-environment \ + --cxx-use-shell-environment \ + --ld='${TARGET_PREFIX}g++' \ + --ssl \ + --use-system-pcre \ + --use-system-boost \ + --use-system-tcmalloc \ + --disable-scripting \ + --nostrip \ + mongod mongos" + +