mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-14 05:49:57 +00:00
491dd81581
Though tzdata is present in almost all images, some of them are lacking it: most notably minimal ptest images. mongodb relies on tzdata, otherwise it doesn't even start up. To ensure that mongodb can be started up successfully, explicitly add tzdata to its dependencies. Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
139 lines
5.2 KiB
BlitzBasic
139 lines
5.2 KiB
BlitzBasic
SUMMARY = "mongodb"
|
|
LICENSE = "SSPL-1 & Apache-2.0 & Zlib"
|
|
LIC_FILES_CHKSUM = "file://LICENSE-Community.txt;md5=3a865f27f11f43ecbe542d9ea387dcf1 \
|
|
file://APACHE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
|
|
|
|
DEPENDS = "openssl libpcap zlib boost curl python3 \
|
|
python3-setuptools-native \
|
|
python3-pyyaml-native python3-cheetah-native \
|
|
python3-psutil-native python3-regex-native \
|
|
"
|
|
RDEPENDS:${PN} += "tzdata"
|
|
|
|
inherit scons dos2unix siteinfo python3native systemd useradd
|
|
|
|
PV = "4.4.13"
|
|
#v4.4.13
|
|
SRCREV = "df25c71b8674a78e17468f48bcda5285decb9246"
|
|
SRC_URI = "git://github.com/mongodb/mongo.git;branch=v4.4;protocol=https \
|
|
file://0001-Tell-scons-to-use-build-settings-from-environment-va.patch \
|
|
file://0001-Use-long-long-instead-of-int64_t.patch \
|
|
file://0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch \
|
|
file://0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch \
|
|
file://arm64-support.patch \
|
|
file://0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch \
|
|
file://0001-Support-deprecated-resolver-functions.patch \
|
|
file://0003-Fix-unknown-prefix-env.patch \
|
|
file://1296.patch \
|
|
file://0001-Fix-compilation-with-fno-common.patch \
|
|
file://0001-stacktrace-Define-ARCH_BITS-for-x86.patch \
|
|
file://0001-include-needed-c-header.patch \
|
|
file://disable_runtime_check.patch \
|
|
file://ppc64_ARCH_BITS.patch \
|
|
file://PTHREAD_STACK_MIN.patch \
|
|
file://0001-add-explict-static_cast-size_t-to-maxMemoryUsageByte.patch \
|
|
file://0001-server-Adjust-the-cache-alignment-assumptions.patch \
|
|
"
|
|
SRC_URI:append:libc-musl ="\
|
|
file://0001-Mark-one-of-strerror_r-implementation-glibc-specific.patch \
|
|
file://0002-Fix-default-stack-size-to-256K.patch \
|
|
file://0004-wiredtiger-Disable-strtouq-on-musl.patch \
|
|
"
|
|
|
|
SRC_URI:append:toolchain-clang = "\
|
|
file://0001-asio-Dont-use-experimental-with-clang.patch \
|
|
"
|
|
|
|
S = "${WORKDIR}/git"
|
|
|
|
CVE_CHECK_IGNORE += "\
|
|
CVE-2014-8180 \
|
|
CVE-2017-18381 \
|
|
CVE-2017-2665 \
|
|
"
|
|
|
|
COMPATIBLE_HOST ?= '(x86_64|i.86|powerpc64|arm|aarch64).*-linux'
|
|
|
|
PACKAGECONFIG ??= "tcmalloc system-pcre"
|
|
# gperftools compilation fails for arm below v7 because of missing support of
|
|
# dmb operation. So we use system-allocator instead of tcmalloc
|
|
PACKAGECONFIG:remove:armv6 = "tcmalloc"
|
|
PACKAGECONFIG:remove:libc-musl = "tcmalloc"
|
|
PACKAGECONFIG:remove:riscv64 = "tcmalloc"
|
|
PACKAGECONFIG:remove:riscv32 = "tcmalloc"
|
|
|
|
PACKAGECONFIG[tcmalloc] = "--use-system-tcmalloc,--allocator=system,gperftools,"
|
|
PACKAGECONFIG[shell] = ",--js-engine=none,,"
|
|
PACKAGECONFIG[system-pcre] = "--use-system-pcre,,libpcre,"
|
|
|
|
MONGO_ARCH ?= "${HOST_ARCH}"
|
|
MONGO_ARCH:powerpc64le = "ppc64le"
|
|
WIREDTIGER ?= "off"
|
|
WIREDTIGER:x86-64 = "on"
|
|
WIREDTIGER:aarch64 = "on"
|
|
|
|
EXTRA_OESCONS = "PREFIX=${prefix} \
|
|
DESTDIR=${D} \
|
|
LIBPATH=${STAGING_LIBDIR} \
|
|
LINKFLAGS='${LDFLAGS}' \
|
|
CXXFLAGS='${CXXFLAGS}' \
|
|
TARGET_ARCH=${MONGO_ARCH} \
|
|
MONGO_VERSION=${PV} \
|
|
OBJCOPY=${OBJCOPY} \
|
|
--ssl \
|
|
--disable-warnings-as-errors \
|
|
--use-system-zlib \
|
|
--nostrip \
|
|
--endian=${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
|
|
--wiredtiger='${WIREDTIGER}' \
|
|
--separate-debug \
|
|
${PACKAGECONFIG_CONFARGS}"
|
|
|
|
USERADD_PACKAGES = "${PN}"
|
|
USERADD_PARAM:${PN} = "--system --no-create-home --home-dir /var/run/${BPN} --shell /bin/false --user-group ${BPN}"
|
|
|
|
scons_do_compile() {
|
|
${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} ${EXTRA_OESCONS} install-core ||
|
|
die "scons build execution failed."
|
|
}
|
|
|
|
scons_do_install() {
|
|
# install binaries
|
|
install -d ${D}${bindir}
|
|
for i in mongod mongos mongo; do
|
|
if [ -f ${B}/build/opt/mongo/$i ]; then
|
|
install -m 0755 ${B}/build/opt/mongo/$i ${D}${bindir}
|
|
else
|
|
bbnote "$i does not exist"
|
|
fi
|
|
done
|
|
|
|
# install config
|
|
install -d ${D}${sysconfdir}
|
|
install -m 0644 ${S}/debian/mongod.conf ${D}${sysconfdir}
|
|
|
|
# install systemd service
|
|
install -d ${D}${systemd_system_unitdir}
|
|
install -m 0644 ${S}/debian/mongod.service ${D}${systemd_system_unitdir}
|
|
|
|
# install mongo data folder
|
|
install -m 755 -d ${D}${localstatedir}/lib/${BPN}
|
|
chown ${BPN}:${BPN} ${D}${localstatedir}/lib/${BPN}
|
|
|
|
# Create /var/log/mongodb in runtime.
|
|
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
|
|
install -d ${D}${nonarch_libdir}/tmpfiles.d
|
|
echo "d ${localstatedir}/log/${BPN} 0755 ${BPN} ${BPN} -" > ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf
|
|
fi
|
|
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ]; then
|
|
install -d ${D}${sysconfdir}/default/volatiles
|
|
echo "d ${BPN} ${BPN} 0755 ${localstatedir}/log/${BPN} none" > ${D}${sysconfdir}/default/volatiles/99_${BPN}
|
|
fi
|
|
}
|
|
|
|
CONFFILES:${PN} = "${sysconfdir}/mongod.conf"
|
|
|
|
SYSTEMD_SERVICE:${PN} = "mongod.service"
|
|
|
|
FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
|