mirror of
https://git.freebsd.org/ports.git
synced 2025-05-25 07:26:29 -04:00
databases/mongodb80: new port 8.0.0-rc14
Still release candidate, use with care. Notes: https://www.mongodb.com/docs/v8.0/release-notes/8.0/
This commit is contained in:
parent
391622b280
commit
f2c9ba7c53
18 changed files with 504 additions and 0 deletions
|
@ -193,6 +193,7 @@
|
|||
SUBDIR += mongodb50
|
||||
SUBDIR += mongodb60
|
||||
SUBDIR += mongodb70
|
||||
SUBDIR += mongodb80
|
||||
SUBDIR += movine
|
||||
SUBDIR += mroonga
|
||||
SUBDIR += mtop
|
||||
|
|
162
databases/mongodb80/Makefile
Normal file
162
databases/mongodb80/Makefile
Normal file
|
@ -0,0 +1,162 @@
|
|||
PORTNAME= mongodb
|
||||
DISTVERSIONPREFIX= r
|
||||
DISTVERSION= 8.0.0-rc14
|
||||
CATEGORIES= databases net
|
||||
PKGNAMESUFFIX= ${DISTVERSION:R:S/.//}
|
||||
|
||||
MAINTAINER= ronald@FreeBSD.org
|
||||
COMMENT= MongoDB Community Edition (8.0.x Branch)
|
||||
WWW= https://www.mongodb.com/docs/v8.0/
|
||||
|
||||
LICENSE= APACHE20 SSPLv1 # mongodb is SSPLv1, C++ driver is APACHE20
|
||||
LICENSE_COMB= multi
|
||||
LICENSE_NAME_SSPLv1= Server Side Public License Version 1
|
||||
LICENSE_FILE_SSPLv1= ${WRKSRC}/LICENSE-Community.txt
|
||||
LICENSE_PERMS_SSPLv1= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
|
||||
|
||||
ONLY_FOR_ARCHS= aarch64 amd64 powerpc64le
|
||||
ONLY_FOR_ARCHS_REASON= only ported to amd64, aarch64, and powerpc64le on FreeBSD; upstream supports arm64, ppc64le, s390x, and x86-64
|
||||
|
||||
BUILD_DEPENDS= ${PY_SETUPTOOLS} \
|
||||
${PYTHON_PKGNAMEPREFIX}cheetah3>0:devel/py-cheetah3@${PY_FLAVOR} \
|
||||
${PYTHON_PKGNAMEPREFIX}gitpython>0:devel/py-gitpython@${PY_FLAVOR} \
|
||||
${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR} \
|
||||
${PYTHON_PKGNAMEPREFIX}psutil>0:sysutils/py-psutil@${PY_FLAVOR} \
|
||||
${PYTHON_PKGNAMEPREFIX}pymongo>0:databases/py-pymongo@${PY_FLAVOR} \
|
||||
${PYTHON_PKGNAMEPREFIX}pyyaml>=3.11:devel/py-pyyaml@${PY_FLAVOR} \
|
||||
${PYTHON_PKGNAMEPREFIX}retry2>0:devel/py-retry2@${PY_FLAVOR}
|
||||
# build depends used while running ${WRKSRC}/src/third_party/mozjs/gen-config.sh
|
||||
BUILD_DEPENDS+= gm4:devel/m4 \
|
||||
gsed:textproc/gsed
|
||||
LIB_DEPENDS= libcurl.so:ftp/curl \
|
||||
libpcre2-8.so:devel/pcre2 \
|
||||
libsnappy.so:archivers/snappy \
|
||||
libstemmer.so:textproc/snowballstemmer \
|
||||
libunwind.so:devel/libunwind \
|
||||
libyaml-cpp.so:devel/yaml-cpp \
|
||||
libzstd.so:archivers/zstd
|
||||
|
||||
USES= compiler:c++20-lang cpe python:build scons shebangfix
|
||||
# gmake is used while running ${WRKSRC}/src/third_party/mozjs/gen-config.sh
|
||||
USES+= gmake pkgconfig
|
||||
|
||||
# mozjs tag comes from ${WRKSRC}/src/third_party/mozjs/get-sources.sh
|
||||
MOZJS_TAG= bb6edb4fcd43607c87de81df8c58db11a663634a
|
||||
|
||||
USE_GITHUB= yes
|
||||
GH_ACCOUNT= mongodb mongodb-forks:mozjs
|
||||
GH_PROJECT= mongo spidermonkey:mozjs
|
||||
GH_TAGNAME= ${MOZJS_TAG}:mozjs
|
||||
USE_RC_SUBR= mongod
|
||||
|
||||
SHEBANG_FILES= buildscripts/scons.py
|
||||
python_OLD_CMD= @python_interpreter@
|
||||
|
||||
CONFIGURE_ENV+= M4=${LOCALBASE}/bin/gm4
|
||||
MAKE_ARGS= --allocator=system \
|
||||
--cxx-std=20 \
|
||||
--disable-warnings-as-errors \
|
||||
--libc++ \
|
||||
--runtime-hardening=on \
|
||||
--use-system-libunwind \
|
||||
--use-system-pcre2 \
|
||||
--use-system-snappy \
|
||||
--use-system-stemmer \
|
||||
--use-system-yaml \
|
||||
--use-system-zlib \
|
||||
--use-system-zstd \
|
||||
-j${MAKE_JOBS_NUMBER} \
|
||||
AR=llvm-ar \
|
||||
MONGO_VERSION=${DISTVERSION} \
|
||||
VERBOSE=on
|
||||
|
||||
CFLAGS+= -DBOOST_NO_CXX98_FUNCTION_BASE
|
||||
|
||||
CONFLICTS_INSTALL= mongodb[0-9][0-9]
|
||||
|
||||
EXTRACT_AFTER_ARGS= --exclude src/third_party/pcre2 \
|
||||
--exclude src/third_party/snappy-* \
|
||||
--exclude src/third_party/libstemmer_c \
|
||||
--exclude src/third_party/unwind \
|
||||
--exclude src/third_party/yaml-cpp \
|
||||
--exclude src/third_party/zlib-* \
|
||||
--exclude src/third_party/zstandard \
|
||||
--no-same-owner --no-same-permissions
|
||||
|
||||
USERS= mongodb
|
||||
GROUPS= mongodb
|
||||
|
||||
OPTIONS_DEFINE= LTO NOAVX SASL SSL
|
||||
OPTIONS_DEFINE_aarch64= ARMV80A
|
||||
OPTIONS_DEFAULT= NOAVX SASL SSL
|
||||
|
||||
# MongoDB on non-LSE ARM cpu like Raspberry Pi can work but is unsupported upstream.
|
||||
# Can give corruption on high concurrency.
|
||||
# Please read https://jira.mongodb.org/browse/SERVER-71772.
|
||||
ARMV80A_DESC= Enable non-LSE ARM64 CPUs like RPI4.
|
||||
NOAVX_DESC= "Disable AVX instructions on amd64 (Sandybridge+)"
|
||||
|
||||
ARMV80A_EXTRA_PATCHES= ${FILESDIR}/extrapatch-SConstruct
|
||||
|
||||
LTO_MAKE_ARGS= --lto=on
|
||||
|
||||
NOAVX_MAKE_ARGS= --experimental-optimization="-sandybridge"
|
||||
|
||||
SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2
|
||||
SASL_MAKE_ARGS= --use-sasl-client
|
||||
|
||||
SSL_USES= ssl
|
||||
SSL_MAKE_ARGS= --ssl
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
ALL_TARGET= install-servers
|
||||
|
||||
# This ports is only following the Major Release.
|
||||
# https://docs.mongodb.com/manual/reference/versioning/
|
||||
PORTSCOUT= limit:^7\.0\.
|
||||
|
||||
CPE_PRODUCT= mongodb
|
||||
|
||||
.if ${ARCH} == amd64
|
||||
MOZJS_ARCH= x86_64
|
||||
.elif ${ARCH} == powerpc64le
|
||||
MOZJS_ARCH= ppc64le
|
||||
.elif ${ARCH} == aarch64
|
||||
MOZJS_ARCH= ${ARCH}
|
||||
.endif
|
||||
|
||||
post-patch:
|
||||
# fix build with python-3.11
|
||||
${REINPLACE_CMD} -e 's#rU#r#g' ${WRKDIR}/spidermonkey-${MOZJS_TAG}/python/mozbuild/mozbuild/util.py
|
||||
${REINPLACE_CMD} -e 's#rU#r#g' ${WRKDIR}/spidermonkey-${MOZJS_TAG}/python/mozbuild/mozbuild/preprocessor.py
|
||||
${REINPLACE_CMD} -e 's#rU#r#g' ${WRKDIR}/spidermonkey-${MOZJS_TAG}/python/mozbuild/mozbuild/backend/base.py
|
||||
${REINPLACE_CMD} -e 's#rU#r#g' ${WRKDIR}/spidermonkey-${MOZJS_TAG}/python/mozbuild/mozbuild/action/process_define_files.py
|
||||
|
||||
pre-configure:
|
||||
# Verify we downloaded the proper mozjs git tag.
|
||||
sh -c "test \"X`grep -E '^LIB_GIT_REVISION=' ${WRKSRC}/src/third_party/mozjs/get-sources.sh`\" = \"XLIB_GIT_REVISION=${MOZJS_TAG}\""
|
||||
|
||||
do-configure:
|
||||
# Replacement of ${WRKSRC}/src/third_party/mozjs/get-sources.sh
|
||||
${LN} -sF ${WRKDIR}/spidermonkey-${MOZJS_TAG} ${WRKSRC}/src/third_party/mozjs/mozilla-release
|
||||
cd ${WRKSRC}/src/third_party/mozjs && PYTHON3="${PYTHON_CMD}" ${SH} ./gen-config.sh ${MOZJS_ARCH} freebsd
|
||||
|
||||
do-build:
|
||||
${WRKSRC}/buildscripts/scons.py -C ${WRKSRC} ${MAKE_ARGS}
|
||||
|
||||
do-install:
|
||||
.for f in mongod mongos
|
||||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${f}
|
||||
.endfor
|
||||
${INSTALL_DATA} ${WRKSRC}/rpm/mongod.conf ${STAGEDIR}${PREFIX}/etc/mongodb.conf.sample
|
||||
${MKDIR} ${STAGEDIR}${DOCSDIR}
|
||||
.for doc in LICENSE-Community.txt MPL-2 README THIRD-PARTY-NOTICES
|
||||
${MV} ${STAGEDIR}${PREFIX}/${doc} ${STAGEDIR}${DOCSDIR}/
|
||||
.endfor
|
||||
${RM} ${STAGEDIR}${PREFIX}/bin/resmoke.py
|
||||
|
||||
do-test:
|
||||
${SH} ${FILESDIR}/make.test.sh "${STAGEDIR}${PREFIX}/bin"
|
||||
|
||||
.include <bsd.port.post.mk>
|
5
databases/mongodb80/distinfo
Normal file
5
databases/mongodb80/distinfo
Normal file
|
@ -0,0 +1,5 @@
|
|||
TIMESTAMP = 1721728990
|
||||
SHA256 (mongodb-mongo-r8.0.0-rc14_GH0.tar.gz) = 73560b1f0d84367029368081c5a29b7469c31cece893fbf7e480bb40f1118301
|
||||
SIZE (mongodb-mongo-r8.0.0-rc14_GH0.tar.gz) = 94721112
|
||||
SHA256 (mongodb-forks-spidermonkey-bb6edb4fcd43607c87de81df8c58db11a663634a_GH0.tar.gz) = 8b237164cb3f492aa1658080b91bafb3c98fe72da11ffb65513e4bffe01553f9
|
||||
SIZE (mongodb-forks-spidermonkey-bb6edb4fcd43607c87de81df8c58db11a663634a_GH0.tar.gz) = 164675678
|
16
databases/mongodb80/files/extrapatch-SConstruct
Normal file
16
databases/mongodb80/files/extrapatch-SConstruct
Normal file
|
@ -0,0 +1,16 @@
|
|||
--- SConstruct.orig 2023-06-07 17:07:38 UTC
|
||||
+++ SConstruct
|
||||
@@ -3217,8 +3205,12 @@ if not env.TargetOSIs('windows', 'macOS') and (env.Too
|
||||
# setting it for both C and C++ by setting both of CFLAGS and
|
||||
# CXXFLAGS.
|
||||
|
||||
+ arm_march_flag = "armv8-a"
|
||||
+ if get_option('use-hardware-crc32') == "on":
|
||||
+ arm_march_flag += "+crc"
|
||||
+
|
||||
default_targeting_flags_for_architecture = {
|
||||
- "aarch64": {"-march=": "armv8.2-a", "-mtune=": "generic"},
|
||||
+ "aarch64": {"-march=": arm_march_flag, "-mtune=": "generic"},
|
||||
"i386": {"-march=": "nocona", "-mtune=": "generic"},
|
||||
"ppc64le": {"-mcpu=": "power8", "-mtune=": "power8", "-mcmodel=": "medium"},
|
||||
"s390x": {"-march=": "z196", "-mtune=": "zEC12"},
|
31
databases/mongodb80/files/make.test.sh
Executable file
31
databases/mongodb80/files/make.test.sh
Executable file
|
@ -0,0 +1,31 @@
|
|||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
usage() {
|
||||
echo "Usage: $0 <path>"
|
||||
echo "<path> path to the executables"
|
||||
}
|
||||
|
||||
test "$#" -eq 1 || ( usage && exit 1 )
|
||||
|
||||
set -x
|
||||
|
||||
PATH="$1:$PATH"
|
||||
|
||||
DBDIR=$( mktemp -d -t tmp.mongodb )
|
||||
|
||||
trap 'rm -rf "$DBDIR"' EXIT
|
||||
|
||||
# Trivial check if the binaries execute at all.
|
||||
mongod --version
|
||||
mongos --version
|
||||
|
||||
# Check if an empty database can be created.
|
||||
mkdir "$DBDIR/db"
|
||||
tail -F "$DBDIR/log" | ( grep -qFe "Waiting for connections" && kill $(cat "$DBDIR/pid") ) &
|
||||
script -eF "$DBDIR/log" \
|
||||
timeout -s TERM -k 30s 60s \
|
||||
mongod --dbpath "$DBDIR/db" --pidfilepath "$DBDIR/pid"
|
||||
|
||||
echo "Test successful"
|
53
databases/mongodb80/files/mongod.in
Normal file
53
databases/mongodb80/files/mongod.in
Normal file
|
@ -0,0 +1,53 @@
|
|||
#!/bin/sh
|
||||
|
||||
# PROVIDE: mongod
|
||||
# REQUIRE: NETWORK ldconfig
|
||||
# KEYWORD: shutdown
|
||||
#
|
||||
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
|
||||
# to enable this service:
|
||||
#
|
||||
# mongod_enable (bool): Set to "NO" by default.
|
||||
# Set it to "YES" to enable mongod.
|
||||
# mongod_dbpath (str): Default to "/var/db/mongodb"
|
||||
# Base database directory.
|
||||
# mongod_flags (str): Custom additional arguments to be passed to mongod.
|
||||
# Default to "--logpath ${mongod_dbpath}/mongod.log --logappend".
|
||||
# mongod_config (str): Default to "%%PREFIX%%/etc/mongodb.conf"
|
||||
# Path to config file
|
||||
#
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name="mongod"
|
||||
rcvar=mongod_enable
|
||||
|
||||
load_rc_config $name
|
||||
|
||||
: ${mongod_enable="NO"}
|
||||
: ${mongod_dbpath="/var/db/mongodb"}
|
||||
: ${mongod_flags="--logpath ${mongod_dbpath}/mongod.log --logappend --setParameter=disabledSecureAllocatorDomains=\*"}
|
||||
: ${mongod_user="mongodb"}
|
||||
: ${mongod_group="mongodb"}
|
||||
: ${mongod_config="%%PREFIX%%/etc/mongodb.conf"}
|
||||
|
||||
pidfile="${mongod_dbpath}/mongod.lock"
|
||||
command=%%PREFIX%%/bin/${name}
|
||||
command_args="--config $mongod_config --dbpath $mongod_dbpath --fork >/dev/null 2>/dev/null"
|
||||
start_precmd="${name}_prestart"
|
||||
|
||||
mongod_create_dbpath()
|
||||
{
|
||||
mkdir ${mongod_dbpath} >/dev/null 2>/dev/null
|
||||
[ $? -eq 0 ] && chown -R ${mongod_user}:${mongod_group} ${mongod_dbpath}
|
||||
}
|
||||
|
||||
mongod_prestart()
|
||||
{
|
||||
if [ ! -d ${mongod_dbpath} ]; then
|
||||
mongod_create_dbpath || return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
run_rc_command "$1"
|
36
databases/mongodb80/files/patch-SConstruct
Normal file
36
databases/mongodb80/files/patch-SConstruct
Normal file
|
@ -0,0 +1,36 @@
|
|||
--- SConstruct.orig 2024-07-22 19:17:33 UTC
|
||||
+++ SConstruct
|
||||
@@ -25,7 +25,6 @@ import SCons.Script
|
||||
|
||||
import SCons
|
||||
import SCons.Script
|
||||
-from mongo_tooling_metrics.lib.top_level_metrics import SConsToolingMetrics
|
||||
from site_scons.mongo import build_profiles
|
||||
|
||||
# This must be first, even before EnsureSConsVersion, if
|
||||
@@ -1722,16 +1721,6 @@ env.AddMethod(lambda env, name, **kwargs: add_option(n
|
||||
del envDict
|
||||
env.AddMethod(lambda env, name, **kwargs: add_option(name, **kwargs), 'AddOption')
|
||||
|
||||
-# The placement of this is intentional. Here we setup an atexit method to store tooling metrics.
|
||||
-# We should only register this function after env, env_vars and the parser have been properly initialized.
|
||||
-SConsToolingMetrics.register_metrics(
|
||||
- utc_starttime=datetime.utcnow(),
|
||||
- artifact_dir=env.Dir('$BUILD_DIR').get_abspath(),
|
||||
- env_vars=env_vars,
|
||||
- env=env,
|
||||
- parser=_parser,
|
||||
-)
|
||||
-
|
||||
if get_option('build-metrics'):
|
||||
env['BUILD_METRICS_ARTIFACTS_DIR'] = '$BUILD_ROOT/$VARIANT_DIR'
|
||||
env.Tool('build_metrics')
|
||||
@@ -1835,7 +1824,7 @@ if unknown_vars:
|
||||
|
||||
unknown_vars = env_vars.UnknownVariables()
|
||||
if unknown_vars:
|
||||
- env.FatalError("Unknown variables specified: {0}", ", ".join(list(unknown_vars.keys())))
|
||||
+ print("Unknown variables specified: {0}", ", ".join(list(unknown_vars.keys())))
|
||||
|
||||
install_actions.setup(env, get_option('install-action'))
|
||||
|
18
databases/mongodb80/files/patch-buildscripts_scons.py
Normal file
18
databases/mongodb80/files/patch-buildscripts_scons.py
Normal file
|
@ -0,0 +1,18 @@
|
|||
--- buildscripts/scons.py.orig 2024-07-23 11:11:41 UTC
|
||||
+++ buildscripts/scons.py
|
||||
@@ -18,15 +18,6 @@ sys.path = [SCONS_DIR, SITE_TOOLS_DIR] + sys.path
|
||||
|
||||
sys.path = [SCONS_DIR, SITE_TOOLS_DIR] + sys.path
|
||||
|
||||
-# pylint: disable=C0413
|
||||
-from mongo.pip_requirements import verify_requirements, MissingRequirements
|
||||
-
|
||||
-try:
|
||||
- verify_requirements()
|
||||
-except MissingRequirements as ex:
|
||||
- print(ex)
|
||||
- sys.exit(1)
|
||||
-
|
||||
try:
|
||||
import SCons.Script
|
||||
except ImportError as import_err:
|
|
@ -0,0 +1,65 @@
|
|||
--- src/mongo/platform/waitable_atomic.cpp.orig 2024-07-23 11:53:14 UTC
|
||||
+++ src/mongo/platform/waitable_atomic.cpp
|
||||
@@ -34,6 +34,9 @@
|
||||
#ifdef __linux__
|
||||
#include <linux/futex.h>
|
||||
#include <sys/syscall.h>
|
||||
+#elif defined(__FreeBSD__)
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/umtx.h>
|
||||
#elif defined(_WIN32)
|
||||
#include <synchapi.h>
|
||||
#endif
|
||||
@@ -228,6 +231,52 @@ bool waitUntil(const void* uaddr,
|
||||
}
|
||||
|
||||
if (__ulock_wait(UL_COMPARE_AND_WAIT, const_cast<void*>(uaddr), old, timeoutMicros) != -1)
|
||||
+ return true;
|
||||
+
|
||||
+ // There isn't a good list of possible errors, so assuming that anything other than a timeout
|
||||
+ // error is a possible spurious wakeup.
|
||||
+ return timeoutOverflow || errno != ETIMEDOUT;
|
||||
+}
|
||||
+
|
||||
+#elif defined(__FreeBSD__)
|
||||
+
|
||||
+void notifyOne(const void* uaddr) {
|
||||
+ _umtx_op(const_cast<void*>(uaddr), UMTX_OP_WAKE, 1, NULL, NULL);
|
||||
+}
|
||||
+
|
||||
+void notifyMany(const void* uaddr, int nToWake) {
|
||||
+ _umtx_op(const_cast<void*>(uaddr), UMTX_OP_WAKE, nToWake, NULL, NULL);
|
||||
+}
|
||||
+
|
||||
+void notifyAll(const void* uaddr) {
|
||||
+ _umtx_op(const_cast<void*>(uaddr), UMTX_OP_WAKE, INT_MAX, NULL, NULL);
|
||||
+}
|
||||
+
|
||||
+bool waitUntil(const void* uaddr,
|
||||
+ uint32_t old,
|
||||
+ boost::optional<system_clock::time_point> deadline) {
|
||||
+ struct timespec timeout;
|
||||
+ bool timeoutOverflow = false;
|
||||
+ if (deadline) {
|
||||
+ int64_t micros = durationCount<Microseconds>(*deadline - system_clock::now());
|
||||
+ if (micros <= 0) {
|
||||
+ return false; // Synthesize a timeout.
|
||||
+ }
|
||||
+
|
||||
+ if (micros > int64_t(std::numeric_limits<uint32_t>::max())) {
|
||||
+ // 2**32 micros is a little over an hour. If this happens, we wait as long as we can,
|
||||
+ // then return as-if a spurious wakeup happened, rather than a timeout. This will cause
|
||||
+ // the caller to loop and we will compute a smaller time each pass, eventually reaching
|
||||
+ // a representable timeout.
|
||||
+ micros = std::numeric_limits<uint32_t>::max();
|
||||
+ timeoutOverflow = true;
|
||||
+ }
|
||||
+
|
||||
+ timeout.tv_sec = micros / 1000;
|
||||
+ timeout.tv_nsec = (micros % 1000) * 1000;
|
||||
+ }
|
||||
+
|
||||
+ if (_umtx_op(const_cast<void*>(uaddr), UMTX_OP_WAIT, old, (void*)sizeof(struct timespec), &timeout) != -1)
|
||||
return true;
|
||||
|
||||
// There isn't a good list of possible errors, so assuming that anything other than a timeout
|
|
@ -0,0 +1,13 @@
|
|||
# https://github.com/abseil/abseil-cpp/commit/ded2ec077d911de647d47ab48ef3a8e24a1fb64a
|
||||
# https://github.com/abseil/abseil-cpp/issues/1587
|
||||
--- src/third_party/abseil-cpp/dist/absl/time/internal/cctz/src/time_zone_format.cc.orig 2024-07-23 13:17:01 UTC
|
||||
+++ src/third_party/abseil-cpp/dist/absl/time/internal/cctz/src/time_zone_format.cc
|
||||
@@ -19,7 +19,7 @@
|
||||
#endif
|
||||
|
||||
#if defined(HAS_STRPTIME) && HAS_STRPTIME
|
||||
-#if !defined(_XOPEN_SOURCE) && !defined(__OpenBSD__)
|
||||
+#if !defined(_XOPEN_SOURCE) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
|
||||
#define _XOPEN_SOURCE 500 // Exposes definitions for SUSv2 (UNIX 98).
|
||||
#endif
|
||||
#endif
|
|
@ -0,0 +1,10 @@
|
|||
--- src/third_party/asio-master/asio/include/asio/detail/config.hpp.orig 2023-04-29 10:17:24 UTC
|
||||
+++ src/third_party/asio-master/asio/include/asio/detail/config.hpp
|
||||
@@ -19,6 +19,7 @@
|
||||
// individual scons objects.
|
||||
# define ASIO_STANDALONE // MongoDB
|
||||
# define ASIO_SEPARATE_COMPILATION // MongoDB
|
||||
+# define ASIO_HAS_STD_INVOKE_RESULT // FreeBSD
|
||||
|
||||
#if defined(ASIO_STANDALONE)
|
||||
# define ASIO_DISABLE_BOOST_ARRAY 1
|
|
@ -0,0 +1,11 @@
|
|||
--- src/third_party/boost/boost/mpl/aux_/integral_wrapper.hpp.orig 2023-06-15 22:07:57 UTC
|
||||
+++ src/third_party/boost/boost/mpl/aux_/integral_wrapper.hpp
|
||||
@@ -56,7 +56,7 @@ struct AUX_WRAPPER_NAME
|
||||
// have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC),
|
||||
// while some other don't like 'value + 1' (Borland), and some don't like
|
||||
// either
|
||||
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
|
||||
+#if 1 //BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
|
||||
private:
|
||||
BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)));
|
||||
BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)));
|
|
@ -0,0 +1,11 @@
|
|||
--- src/third_party/libbson/dist/src/libbson/src/bson/bson-error.c.orig 2024-07-04 10:59:36 UTC
|
||||
+++ src/third_party/libbson/dist/src/libbson/src/bson/bson-error.c
|
||||
@@ -130,7 +130,7 @@ bson_strerror_r (int err_code, /* I
|
||||
// required) by the POSIX spec (see:
|
||||
// https://pubs.opengroup.org/onlinepubs/9699919799/functions/strerror.html#tag_16_574_08).
|
||||
(void) strerror_r (err_code, buf, buflen);
|
||||
-#elif defined(_XOPEN_SOURCE) && _XOPEN_SOURCE >= 700
|
||||
+#elif defined(__FreeBSD__) || ( defined(_XOPEN_SOURCE) && _XOPEN_SOURCE >= 700 )
|
||||
// The behavior (of `strerror_l`) is undefined if the locale argument to
|
||||
// `strerror_l()` is the special locale object LC_GLOBAL_LOCALE or is not a
|
||||
// valid locale object handle.
|
|
@ -0,0 +1,30 @@
|
|||
--- src/third_party/mozjs/gen-config.sh.orig 2024-07-22 19:17:33 UTC
|
||||
+++ src/third_party/mozjs/gen-config.sh
|
||||
@@ -29,6 +29,9 @@ case "$_Path" in
|
||||
}
|
||||
|
||||
case "$_Path" in
|
||||
+ "platform/aarch64/freebsd")
|
||||
+ _CONFIG_OPTS="--host=aarch64-freebsd"
|
||||
+ ;;
|
||||
"platform/aarch64/linux")
|
||||
_CONFIG_OPTS="--host=aarch64-linux"
|
||||
;;
|
||||
@@ -109,7 +112,7 @@ CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS" \
|
||||
--disable-js-shell \
|
||||
--disable-tests "$_CONFIG_OPTS"
|
||||
|
||||
-make recurse_export
|
||||
+gmake recurse_export
|
||||
|
||||
cd ../../../..
|
||||
|
||||
@@ -164,7 +167,7 @@ find "$_Path/build" -name '*.cpp' |
|
||||
find "$_Path/build" -name '*.cpp' |
|
||||
while read unified_file ; do
|
||||
echo "Processing $unified_file"
|
||||
- sed $SEDOPTION \
|
||||
+ gsed $SEDOPTION \
|
||||
-e 's|#include ".*/js/src/|#include "|' \
|
||||
-e 's|#error ".*/js/src/|#error "|' \
|
||||
"$unified_file"
|
|
@ -0,0 +1,14 @@
|
|||
--- src/third_party/mozjs/get-sources.sh.orig 2024-07-22 19:17:33 UTC
|
||||
+++ src/third_party/mozjs/get-sources.sh
|
||||
@@ -12,9 +12,9 @@ LIB_GIT_REPO=git@github.com:mongodb-forks/spidermonkey
|
||||
LIB_GIT_REVISION=bb6edb4fcd43607c87de81df8c58db11a663634a
|
||||
LIB_GIT_REPO=git@github.com:mongodb-forks/spidermonkey.git
|
||||
|
||||
-DEST_DIR=$(git rev-parse --show-toplevel)/src/third_party/mozjs
|
||||
+DEST_DIR=$(realpath .)
|
||||
|
||||
-LIB_GIT_DIR=$(mktemp -d /tmp/import-spidermonkey.XXXXXX)
|
||||
+LIB_GIT_DIR=$(mktemp -d /var/tmp/import-spidermonkey.XXXXXX)
|
||||
trap "rm -rf $LIB_GIT_DIR" EXIT
|
||||
|
||||
git clone $LIB_GIT_REPO $LIB_GIT_DIR
|
5
databases/mongodb80/pkg-descr
Normal file
5
databases/mongodb80/pkg-descr
Normal file
|
@ -0,0 +1,5 @@
|
|||
Distributed document-oriented "NoSQL" database.
|
||||
|
||||
Mongo (from "humongous") is a high-performance, open source,
|
||||
schema-free, document-oriented database. A common name in the
|
||||
"NOSQL" community.
|
16
databases/mongodb80/pkg-message
Normal file
16
databases/mongodb80/pkg-message
Normal file
|
@ -0,0 +1,16 @@
|
|||
[
|
||||
{ type: install
|
||||
message: <<EOM
|
||||
MongoDB on Raspberry Pi can work but is unsupported upstream.
|
||||
Please read https://jira.mongodb.org/browse/SERVER-71772 and enable option
|
||||
ARMV80A if you run this on a non-LSE ARM cpu like Raspberry Pi 4.
|
||||
|
||||
MongoDB 6.0 and up do not include the 'mongo' CLI shell anymore. You can
|
||||
use the MongoDB Shell (https://github.com/mongodb-js/mongosh).
|
||||
# pkg install npm
|
||||
$ npm install mongosh
|
||||
$ npx mongosh mongodb://127.0.0.1:27017/
|
||||
|
||||
EOM
|
||||
}
|
||||
]
|
7
databases/mongodb80/pkg-plist
Normal file
7
databases/mongodb80/pkg-plist
Normal file
|
@ -0,0 +1,7 @@
|
|||
bin/mongod
|
||||
bin/mongos
|
||||
@sample etc/mongodb.conf.sample
|
||||
%%DOCSDIR%%/LICENSE-Community.txt
|
||||
%%DOCSDIR%%/MPL-2
|
||||
%%DOCSDIR%%/README
|
||||
%%DOCSDIR%%/THIRD-PARTY-NOTICES
|
Loading…
Add table
Reference in a new issue