pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/databases/mongodb3 databases/mongodb3: Add, to amelior...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/e6bdd27ac6ec
branches:  trunk
changeset: 397516:e6bdd27ac6ec
user:      gdt <gdt%pkgsrc.org@localhost>
date:      Fri Jun 28 16:30:56 2019 +0000

description:
databases/mongodb3: Add, to ameliorate problems with mongodb 4

This is a copy of mongodb before the update to 4, with annotations to
explain why it exists.  Reasons include:

  - mongodb 4 is licensed under the Server Side Public License, to
    which some have objected

  - mongodb 4 requires c++17 (and hence gcc 8)

(ok to add during freeze by wiz@)

diffstat:

 databases/mongodb3/DESCR                                                                                  |    9 +
 databases/mongodb3/Makefile                                                                               |  147 ++++++
 databases/mongodb3/PLIST                                                                                  |   21 +
 databases/mongodb3/distinfo                                                                               |   34 +
 databases/mongodb3/options.mk                                                                             |   28 +
 databases/mongodb3/patches/patch-SConstruct                                                               |  200 +++++++++
 databases/mongodb3/patches/patch-debian_mongod.conf                                                       |   23 +
 databases/mongodb3/patches/patch-src_mongo_base_initializer.h                                             |   13 +
 databases/mongodb3/patches/patch-src_mongo_db_dbwebserver.cpp                                             |   20 +
 databases/mongodb3/patches/patch-src_mongo_db_fts_unicode_string.cpp                                      |   15 +
 databases/mongodb3/patches/patch-src_mongo_db_matcher_expression__leaf.cpp                                |   20 +
 databases/mongodb3/patches/patch-src_mongo_db_repl_isself.c                                               |   24 +
 databases/mongodb3/patches/patch-src_mongo_db_repl_master__slave.cpp                                      |   20 +
 databases/mongodb3/patches/patch-src_mongo_db_repl_oplog__fetcher.cpp                                     |   15 +
 databases/mongodb3/patches/patch-src_mongo_installer_msi_SConscript                                       |   15 +
 databases/mongodb3/patches/patch-src_mongo_platform_random.cpp                                            |   14 +
 databases/mongodb3/patches/patch-src_mongo_platform_stack__locator__dragonfly.cpp                         |   63 ++
 databases/mongodb3/patches/patch-src_mongo_platform_stack__locator__netbsd.cpp                            |   63 ++
 databases/mongodb3/patches/patch-src_mongo_shell_bench.cpp                                                |   20 +
 databases/mongodb3/patches/patch-src_mongo_shell_linenoise__utf8.h                                        |   26 +
 databases/mongodb3/patches/patch-src_mongo_util_intrusive__counter.h                                      |   12 +
 databases/mongodb3/patches/patch-src_mongo_util_net_miniwebserver.cpp                                     |   20 +
 databases/mongodb3/patches/patch-src_mongo_util_processinfo__dragonfly.cpp                                |  195 ++++++++
 databases/mongodb3/patches/patch-src_mongo_util_processinfo__netbsd.cpp                                   |  217 ++++++++++
 databases/mongodb3/patches/patch-src_third__party_IntelRDFPMathLib20U1_LIBRARY_float128_dpml__exception.c |   12 +
 databases/mongodb3/patches/patch-src_third__party_IntelRDFPMathLib20U1_LIBRARY_float128_op__system.h      |  120 +++++
 databases/mongodb3/patches/patch-src_third__party_IntelRDFPMathLib20U1_LIBRARY_src_bid__functions.h       |   13 +
 databases/mongodb3/patches/patch-src_third__party_mozjs-38_platform_x86__64_netbsd_build_js-confdefs.h    |   20 +
 databases/mongodb3/patches/patch-src_third__party_mozjs-38_platform_x86__64_netbsd_include_js-config.h    |   13 +
 databases/mongodb3/patches/patch-src_third__party_s2_base_port.h                                          |   27 +
 databases/mongodb3/patches/patch-src_third__party_wiredtiger_SConscript                                   |   28 +
 databases/mongodb3/patches/patch-src_third__party_wiredtiger_build__dragonfly_wiredtiger__config.h        |  159 +++++++
 databases/mongodb3/patches/patch-src_third__party_wiredtiger_build__netbsd_wiredtiger__config.h           |  161 +++++++
 33 files changed, 1787 insertions(+), 0 deletions(-)

diffs (truncated from 1920 to 300 lines):

diff -r b7011f9ed7c6 -r e6bdd27ac6ec databases/mongodb3/DESCR
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/databases/mongodb3/DESCR  Fri Jun 28 16:30:56 2019 +0000
@@ -0,0 +1,9 @@
+Mongo (from "humongous") is a high-performance, open source, schema-free,
+document-oriented database. It features: document data model with dynamic
+schemas; full, flexible index support and rich queries; auto-Sharding for
+horizontal scalability; built-in replication for high availability; text
+search; advanced security; aggregation Framework and MapReduce; large media
+storage with GridFS.
+
+This is an older version of mongodb, chosen to avoid the Server Side
+Public License and a need for a c++17 compiler.
\ No newline at end of file
diff -r b7011f9ed7c6 -r e6bdd27ac6ec databases/mongodb3/Makefile
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/databases/mongodb3/Makefile       Fri Jun 28 16:30:56 2019 +0000
@@ -0,0 +1,147 @@
+# $NetBSD: Makefile,v 1.1 2019/06/28 16:30:56 gdt Exp $
+
+# This package is intentionally old to avoid:
+#   Server Side Public License
+#   c++17 (and c++14 if 3.4.4 does not already need it)
+DISTNAME=      mongodb-src-r3.4.4
+PKGNAME=       ${DISTNAME:S/src-r//:S/-rc/rc/}
+PKGREVISION=   6
+CATEGORIES=    databases
+MASTER_SITES=  http://fastdl.mongodb.org/src/
+
+MAINTAINER=    gdt%NetBSD.org@localhost
+HOMEPAGE=      http://mongodb.org/
+COMMENT=       NoSQL distributed document-oriented database
+LICENSE=       gnu-agpl-v3 # Client and tools licensed under apache-2.0
+
+# MongoDB 3.4 onwards explicitly does not support 32-bit x86 platforms
+NOT_FOR_PLATFORM+=     *-*-i386
+
+EXTRACT_USING= bsdtar
+
+NO_CONFIGURE=  yes
+USE_LANGUAGES= c c++
+
+SCONS_ARGS=    ${_MAKE_JOBS}
+SCONS_ARGS+=   --use-system-boost
+SCONS_ARGS+=   --use-system-pcre
+SCONS_ARGS+=   --use-system-snappy
+SCONS_ARGS+=   --use-system-tcmalloc
+SCONS_ARGS+=   --use-system-yaml
+SCONS_ARGS+=   --use-system-zlib
+SCONS_ARGS+=   --js-engine=mozjs
+SCONS_ARGS+=   --release
+
+PYTHON_VERSIONS_INCOMPATIBLE=  34 35 36 37 # not yet supported as of 3.0.4
+
+.include "../../mk/bsd.prefs.mk"
+
+# XXX this doesn't work for some reason
+#.if !empty(INSTALL_UNSTRIPPED:Uno:M[Yy][Ee][Ss])
+#SCONS_ARGS+=  --nostrip
+#.endif
+
+GCC_REQD+=     5.3.0
+
+CPPFLAGS+=     -fno-jump-tables
+
+.include "options.mk"
+
+SMF_METHODS+=          mongodb
+
+BUILD_DEFS+=           VARBASE
+BUILD_DEFS+=           MONGODB_USER MONGODB_GROUP MONGODB_DBPATH
+BUILD_DEFS+=           MONGODB_LOGPATH
+
+MONGODB_USER?=         mongodb
+MONGODB_GROUP?=                mongodb
+MONGODB_DBPATH?=       ${VARBASE}/mongodb
+MONGODB_LOGPATH?=      ${VARBASE}/log/mongodb
+
+PKG_USERS_VARS+=       MONGODB_USER
+PKG_GROUPS_VARS+=      MONGODB_GROUP
+
+PKG_GROUPS=            ${MONGODB_GROUP}
+PKG_USERS=             ${MONGODB_USER}:${MONGODB_GROUP}
+
+PKG_GECOS.${MONGODB_USER}=     MongoDB database administrator
+PKG_HOME.${MONGODB_USER}=      ${MONGODB_DBPATH}
+PKG_SHELL.${MONGODB_USER}=     ${SH}
+
+OWN_DIRS_PERMS+=       ${MONGODB_DBPATH} ${MONGODB_USER} ${MONGODB_GROUP} 0755
+OWN_DIRS_PERMS+=       ${MONGODB_DBPATH}/journal ${MONGODB_USER} ${MONGODB_GROUP} 0755
+OWN_DIRS_PERMS+=       ${MONGODB_LOGPATH} ${MONGODB_USER} ${MONGODB_GROUP} 0755
+
+FILES_SUBST+=          MONGODB_USER=${MONGODB_USER}
+FILES_SUBST+=          MONGODB_GROUP=${MONGODB_GROUP}
+FILES_SUBST+=          MONGODB_DBPATH=${MONGODB_DBPATH}
+FILES_SUBST+=          MONGODB_LOGPATH=${MONGODB_LOGPATH}
+
+# XXX No better idea how to pass CXXFLAGS and LDFLAGS to scons
+SUBST_CLASSES+=                scons
+SUBST_STAGE.scons=     pre-build
+SUBST_FILES.scons=     SConstruct
+SUBST_VARS.scons=      PREFIX CXXFLAGS LDFLAGS
+
+SUBST_CLASSES+=                path
+SUBST_STAGE.path=      pre-build
+SUBST_FILES.path=      src/mongo/db/flushtest.cpp debian/mongod.conf
+SUBST_FILES.path+=     debian/mongod.1 debian/mongo.1 src/mongo/shell/dbshell.cpp
+SUBST_SED.path=                -e 's|/data/db|${MONGODB_DBPATH}|g'
+SUBST_SED.path+=       -e 's|/etc|${PKG_SYSCONFDIR}|'
+SUBST_VARS.path=       MONGODB_DBPATH MONGODB_LOGPATH
+
+LDFLAGS+=              ${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.boost-libs}/lib
+
+MONGODB_MAN_FILES=     bsondump.1 mongo.1 mongod.1 mongodump.1 mongoexport.1   \
+                       mongofiles.1 mongoimport.1 mongooplog.1 mongoperf.1     \
+                       mongorestore.1 mongos.1 mongosniff.1 mongostat.1 mongotop.1
+
+NOT_PAX_MPROTECT_SAFE+=        bin/mongo bin/mongod
+
+RCD_SCRIPTS=           mongodb
+
+INSTALLATION_DIRS+=    share/doc/mongodb share/examples/mongodb ${PKGMANDIR}/man1
+
+CONF_FILES+=           share/examples/mongodb/mongod.conf \
+                       ${PKG_SYSCONFDIR}/mongod.conf
+
+post-extract:
+       chmod -R g-w ${WRKSRC}
+       cp -r ${WRKSRC}/src/third_party/mozjs-45/platform/x86_64/freebsd \
+               ${WRKSRC}/src/third_party/mozjs-45/platform/x86_64/dragonfly
+       cp -r ${WRKSRC}/src/third_party/mozjs-45/platform/x86_64/openbsd \
+               ${WRKSRC}/src/third_party/mozjs-45/platform/x86_64/netbsd
+       cp ${WRKSRC}/src/mongo/db/ftdc/ftdc_system_stats_openbsd.cpp \
+               ${WRKSRC}/src/mongo/db/ftdc/ftdc_system_stats_netbsd.cpp
+
+do-build:
+       cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${SCONSBIN} ${SCONS_ARGS} core
+
+do-install:
+       cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${SCONSBIN} ${SCONS_ARGS} \
+               --prefix=${DESTDIR}${PREFIX} install
+
+do-test:
+       cd ${WRKSRC} && ./test
+
+post-install:
+       ${INSTALL_DATA} ${WRKSRC}/README ${DESTDIR}${PREFIX}/share/doc/mongodb
+.for file in ${MONGODB_MAN_FILES}
+       ${INSTALL_MAN} ${WRKSRC}/debian/${file} \
+               ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
+.endfor
+       ${INSTALL_DATA} ${WRKSRC}/debian/mongod.conf \
+               ${DESTDIR}${PREFIX}/share/examples/mongodb
+
+.include "../../devel/boost-headers/buildlink3.mk"
+.include "../../devel/boost-libs/buildlink3.mk"
+.include "../../devel/py-boost/buildlink3.mk"
+.include "../../devel/libexecinfo/buildlink3.mk"
+.include "../../devel/pcre/buildlink3.mk"
+.include "../../devel/scons/buildlink3.mk"
+.include "../../devel/snappy/buildlink3.mk"
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../net/libpcap/buildlink3.mk"
+.include "../../textproc/yaml-cpp/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff -r b7011f9ed7c6 -r e6bdd27ac6ec databases/mongodb3/PLIST
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/databases/mongodb3/PLIST  Fri Jun 28 16:30:56 2019 +0000
@@ -0,0 +1,21 @@
+@comment $NetBSD: PLIST,v 1.1 2019/06/28 16:30:56 gdt Exp $
+bin/mongo
+bin/mongod
+bin/mongoperf
+bin/mongos
+man/man1/bsondump.1
+man/man1/mongo.1
+man/man1/mongod.1
+man/man1/mongodump.1
+man/man1/mongoexport.1
+man/man1/mongofiles.1
+man/man1/mongoimport.1
+man/man1/mongooplog.1
+man/man1/mongoperf.1
+man/man1/mongorestore.1
+man/man1/mongos.1
+man/man1/mongosniff.1
+man/man1/mongostat.1
+man/man1/mongotop.1
+share/doc/mongodb/README
+share/examples/mongodb/mongod.conf
diff -r b7011f9ed7c6 -r e6bdd27ac6ec databases/mongodb3/distinfo
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/databases/mongodb3/distinfo       Fri Jun 28 16:30:56 2019 +0000
@@ -0,0 +1,34 @@
+$NetBSD: distinfo,v 1.1 2019/06/28 16:30:56 gdt Exp $
+
+SHA1 (mongodb-src-r3.4.4.tar.gz) = 6f9f2d8a3c1c2f4089fd03f8be0b86ff0431d955
+RMD160 (mongodb-src-r3.4.4.tar.gz) = 2a65f380204a92762ceea2be35dbe2c671e106f6
+SHA512 (mongodb-src-r3.4.4.tar.gz) = dbae89b49c363e7258021cd31385e4449bfdfdfd5adfcb1683e4431372731e58ec33bf8f7576d2d52659a52461bd6a32fbc67d5c6e36d52184ec1aabb345d940
+Size (mongodb-src-r3.4.4.tar.gz) = 39867133 bytes
+SHA1 (patch-SConstruct) = 6ec188274fb25614494ec192be7809a6a01962de
+SHA1 (patch-debian_mongod.conf) = e5074b5f7ad50560b99d652feab58da764ba542c
+SHA1 (patch-src_mongo_base_initializer.h) = add32c5940c922a98122d0e6883eb3ad52dc25c5
+SHA1 (patch-src_mongo_db_dbwebserver.cpp) = 1e7bb9588930742839d2bc9e26b33751a64f98c7
+SHA1 (patch-src_mongo_db_fts_unicode_string.cpp) = 98c5b1b39c07190f08ec9f22ec3002b0a803f72f
+SHA1 (patch-src_mongo_db_matcher_expression__leaf.cpp) = 52064034fabb5de63eccf87ddd140303c54f0312
+SHA1 (patch-src_mongo_db_repl_isself.c) = 82321c918b91ce1a68ce79c14589126aca6baf96
+SHA1 (patch-src_mongo_db_repl_master__slave.cpp) = 2f37f0819a2b2743df01f6b6ab0b3013b3b7d726
+SHA1 (patch-src_mongo_db_repl_oplog__fetcher.cpp) = e12dbfbd4e70ee210cdd4eb0582661666e8eb06a
+SHA1 (patch-src_mongo_installer_msi_SConscript) = 78424fa10f90470dd941b900ef8fd131d28f6e65
+SHA1 (patch-src_mongo_platform_random.cpp) = 59c31e55fc2dc5a2b82b8f16dacf8736d8354cdb
+SHA1 (patch-src_mongo_platform_stack__locator__dragonfly.cpp) = fb885c491e4de1cfbc2875620d854af726e5b45f
+SHA1 (patch-src_mongo_platform_stack__locator__netbsd.cpp) = 3b09e86b2401555b6ab4c31d14c0693d766119c2
+SHA1 (patch-src_mongo_shell_bench.cpp) = c0fd15347d35e37daf87b642148215dee3ab7220
+SHA1 (patch-src_mongo_shell_linenoise__utf8.h) = f975925f56125d48b5124894fa1adf1382a634d2
+SHA1 (patch-src_mongo_util_intrusive__counter.h) = 9f1af59e1bc86e33bf183a6dda1737007afc7a18
+SHA1 (patch-src_mongo_util_net_miniwebserver.cpp) = 3715e826b8d03793066a84b2c1680c32c6ee6368
+SHA1 (patch-src_mongo_util_processinfo__dragonfly.cpp) = 62c236ce820dfe81f45625b15e022cca0f2c10ee
+SHA1 (patch-src_mongo_util_processinfo__netbsd.cpp) = 6eabe5ffec4168bb9ba8a58b7d742772d38b4714
+SHA1 (patch-src_third__party_IntelRDFPMathLib20U1_LIBRARY_float128_dpml__exception.c) = ef3b260e8a49227cbbabf427500b7c70bce15083
+SHA1 (patch-src_third__party_IntelRDFPMathLib20U1_LIBRARY_float128_op__system.h) = 39f6fba82e2870ee4a5d99785033621225a72a16
+SHA1 (patch-src_third__party_IntelRDFPMathLib20U1_LIBRARY_src_bid__functions.h) = d3a85d3a3b33691466c65cdf51c56f221429aea9
+SHA1 (patch-src_third__party_mozjs-38_platform_x86__64_netbsd_build_js-confdefs.h) = c2ad1041b5c1ff9fac9085d2a8963781f51873a8
+SHA1 (patch-src_third__party_mozjs-38_platform_x86__64_netbsd_include_js-config.h) = 7ddbb4e3bf4126a1be2195acc82ff859e8130a01
+SHA1 (patch-src_third__party_s2_base_port.h) = 892ce91b5aaa432f34e1e7c169b7fd6eea2a3e94
+SHA1 (patch-src_third__party_wiredtiger_SConscript) = 71fd2326a4e95fec674326225bce5ccf5793aa5a
+SHA1 (patch-src_third__party_wiredtiger_build__dragonfly_wiredtiger__config.h) = 0b00da401f832d985107dfa5dcc6447db4beec6d
+SHA1 (patch-src_third__party_wiredtiger_build__netbsd_wiredtiger__config.h) = edd3c4e5784e52ad0078bcb7ef1e0902bc354285
diff -r b7011f9ed7c6 -r e6bdd27ac6ec databases/mongodb3/options.mk
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/databases/mongodb3/options.mk     Fri Jun 28 16:30:56 2019 +0000
@@ -0,0 +1,28 @@
+# $NetBSD: options.mk,v 1.1 2019/06/28 16:30:56 gdt Exp $
+
+PKG_OPTIONS_VAR=       PKG_OPTIONS.mongodb
+PKG_SUPPORTED_OPTIONS= ssl wiredtiger
+PKG_SUGGESTED_OPTIONS= #
+
+.if !empty(MACHINE_ARCH:Mx86_64)
+PKG_SUGGESTED_OPTIONS+=        wiredtiger
+.endif
+
+.include "../../mk/bsd.options.mk"
+
+.if !empty(PKG_OPTIONS:Mssl)
+.include "../../security/openssl/buildlink3.mk"
+SCONS_ARGS+=           --ssl
+.endif
+
+# The prospect of using databases/wiredtiger is unclear yet;
+# MongoDB doesn't provide guarantees for non-bundled WiredTiger:
+# https://groups.google.com/forum/#!msg/mongodb-dev/31FQSo4KVCI/Fx-WtJ9fzU4J
+.if !empty(PKG_OPTIONS:Mwiredtiger)
+.  if empty(MACHINE_ARCH:Mx86_64)
+PKG_FAIL_REASON+=      "WiredTiger is not supported on 32-bit platforms"
+.  endif
+SCONS_ARGS+=           --wiredtiger=on
+.else
+SCONS_ARGS+=           --wiredtiger=off
+.endif
diff -r b7011f9ed7c6 -r e6bdd27ac6ec databases/mongodb3/patches/patch-SConstruct
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/databases/mongodb3/patches/patch-SConstruct       Fri Jun 28 16:30:56 2019 +0000
@@ -0,0 +1,200 @@
+$NetBSD: patch-SConstruct,v 1.1 2019/06/28 16:30:56 gdt Exp $
+
+Add support for NetBSD/Dragonfly, fix locations.
+Respect LDFLAGS and CXXFLAGS
+
+--- SConstruct.orig    2017-04-20 21:43:42.000000000 +0000
++++ SConstruct
+@@ -30,7 +30,7 @@ EnsureSConsVersion( 2, 3, 0 )
+ def print_build_failures():
+     from SCons.Script import GetBuildFailures
+     for bf in GetBuildFailures():
+-        print "%s failed: %s" % (bf.node, bf.errstr)
++        print("%s failed: %s" % (bf.node, bf.errstr))
+ atexit.register(print_build_failures)
+ 
+ def versiontuple(v):
+@@ -49,8 +49,12 @@ def get_running_os_name():
+     running_os = os.sys.platform
+     if running_os.startswith('linux'):
+         running_os = 'linux'
++    elif running_os.startswith('dragonfly'):
++        running_os = 'dragonfly'
+     elif running_os.startswith('freebsd'):
+         running_os = 'freebsd'
++    elif running_os.startswith('netbsd'):
++        running_os = 'netbsd'
+     elif running_os.startswith('openbsd'):
+         running_os = 'openbsd'
+     elif running_os == 'sunos5':
+@@ -68,7 +72,7 @@ def env_get_os_name_wrapper(self):
+ 
+ def is_os_raw(target_os, os_list_to_check):
+     okay = False
+-    posix_os_list = [ 'linux', 'openbsd', 'freebsd', 'osx', 'solaris' ]
++    posix_os_list = [ 'linux', 'openbsd', 'freebsd', 'osx', 'solaris', 'dragonfly', 'netbsd' ]
+ 



Home | Main Index | Thread Index | Old Index