diff options
author | Andrew Geissler <geissonator@yahoo.com> | 2020-09-18 21:36:00 +0300 |
---|---|---|
committer | Andrew Geissler <geissonator@yahoo.com> | 2020-09-18 21:38:11 +0300 |
commit | d688a01edf38bfee9e20fd4765d304c529dd3db3 (patch) | |
tree | 474bcaeea91f90853d5dfb221abc661eb49787b2 /meta-openembedded/meta-oe/dynamic-layers/meta-python | |
parent | cc58928593c3952679181b6bf8e4113080ffa867 (diff) | |
download | openbmc-d688a01edf38bfee9e20fd4765d304c529dd3db3.tar.xz |
meta-openembedded: subtree update:ae39f2e711..bccd3277e4
Alejandro Enedino Hernandez Samaniego (2):
emacs: Create a new recipe for emacs
weechat: Upgrade to 2.9
Andreas Müller (3):
Initial add source-code-pro-fonts 2.030_1.050
gedit: add source-code-pro-fonts to RRECOMMENDS
geany: add source-code-pro-fonts to RRECOMMENDS
Andrej Valek (1):
squid: upgrade 4.12 -> 4.13
Armin Kuster (3):
log4cplus: pkg moved to core
kea: pkg moved to core
dhcpcd: pkg moved to core
Arthur She (1):
xmlrpc-c: fix Makefile macro error
Arturo Buzarra (1):
byacc: add nativesdk support
Bartosz Golaszewski (1):
libgpiod: update v1.4.3 -> v1.4.4
Bjarne Michelsen (1):
asio: extend recipe to add native support
Diego Rondini (4):
libeigen: update SRC_URI to download from gitlab
gvfs: adjust fuse packageconfig to fuse3
libeigen: update SRC_URI to use gitlab git
hplip: use libexecdir
Fabio Berton (2):
libqmi: Update 1.26.0 -> 1.26.4
modemmanager: Update 1.12.12 -> 1.14.2
Gianfranco Costamagna (3):
dlt-daemon: superseed upstream pr #238 patch with pr #245 due to unexpected behaviour
brotli: update to 1.0.9
brotli: set upstream-status for the patch backported from upstream
Haiqing Bai (1):
rsyslog: fix wrong option of PACKAGECONFIG[valgrind]
Hongxu Jia (1):
python3-texttable: add recipe
Jack Mitchell (1):
meta-networking: dhcpcd: backport ALIGN compile error fix
Jens Rehsack (1):
bearssl: fix missing install
Jose Dapena Paz (1):
xmlsec1: do not use system libraries for non nss
Jugurtha BELKALEM (1):
recipe/ettercap : new ettercap recipe
Khem Raj (67):
valijson: Move it to networking-layer under BBFILES_DYNAMIC
linuxptp: Fix cross build
kernel-selftest: Tests in 5.8 depend on libhugetlbfs.h
wireguard-module: Exlude from world builds
Revert "iwd: Module load dir should be relative to root_dir"
vboxguestdrivers: Fix build with kernel 5.8
kernel-selftest: Disable vm tests for mips/arm
vulkan-cts: Update to 1.2.3.2
nss: Avoid converting enum to void*
nss: Disable Werror across all recipe types
nss: Upgrade to 3.56
mini-iconv: Remove
wvstreams: Update SRC_URI to a fetchable location
wvdial: Update SRC_URI to an accessible location
packagegroup-meta-oe: Overhaul so it can build meta-oe-image
mime-support: Use update-alternatives
canutils: Use update-alternatives
libusbgx: Use update-alternatives
ttf-liberation-sans-narrow: Do not install normal liberation fonts
mutter: Add a comment to remove pipewire-0.2 dependency with 3.36
sblim-sfcb: Fix target postinst
hexedit: Define update alternatives
lmbench: Use update alternatives for stream
uml-utilities: Use update alternatives for tunctl
imagemagick: Create symlinks for magick-script
sharutils: Use update alternatives for uudecode/uuencode
layer.conf: fixes icon-theme signature changes
layer.conf: Fix for signature change for allarch icon themes
properties-cpp: Add recipe
packagegroup-meta-filesystems: Update to add new recipes
packagegroup-meta-webserver: Update to include new recipes
monkey: Remove /var/run
monkey: Correct the install path in init services
packagegroup-meta-oe: Exclude from world builds
networkmanager: Depend on dhcpcd
packagegroup-meta-networking: Add new packages
bearssl: fix GNU_HASH link error
autossh: Depend on ssh instead of hardcoding openssh
quagga,pimd: Use update-alternatives for pimd
netkit-rpc: Use update alternatives for rpcinfo
ssmtp: Use update alternatives for conflicts with esmtp
netkit-rwho: Use update-alternatives for tftp
netkit-ftp: Use update-alternatives for ftp
netkit-rwho: Convert to ontarget postinst
schroedinger: Update SRC_URI
packagegroup-meta-multimedia: Add new recipes
mycroft: rdep on procps
imapfilter: Fix linker flags
toybox: Add packageconfigs for iconv and getconf
tmux: Add -p option to mkdir
packagegroup-meta-networking: Remove dhcpcd and kea
packagegroup-meta-oe: Remove log4cplus
packagegroup-meta-multimedia: Remove projucer on musl
packagegroup-meta-perl: Update to represent latest recipes
po4a: Switch to github for SRC_URI as alioth one seems to be gone
libdata-hexdump-perl: Use update alternatives for hexdump
meta-perl-image: Add packagegroup-meta-perl-extended
meta-perl-ptest-image: Depend on ptest DISTRO_FEATURE
iwd: Upgrade to 1.9
packagegroup-meta-python: Add new packages
meta-python-image,meta-python-ptest-image: Use python3 packagegroups
android-tools: Support libselinux to build with musl which now has gettid
packagegroup-meta-oe.bb: Add cukinia to test packagegroups
packagegroup-meta-oe: Add source-code-pro-fonts
mongodb: Pass OBJCOPY to scons so it does not use it from host
mongodb: Fix libunwind build with -fno-common
mongodb: Fix i386 builds for non-glibc systems
Leon Anavi (134):
python3-pywbem: Upgrade 0.17.4 -> 1.0.2
python3-pydicti: Add recipe
python3-yamlloader: Add recipe
python3-tabulate: Add recipe
python3-asciitree: Add recipe
python3-custom-inherit: Add recipe
python3-nocasedict: Add recipe
python3-nocaselist: Add recipe
python3-click-repl: Add recipe
python3-click-spinner: Add recipe
python3-pywbemtools: Add recipe
python3-diskcache: Upgrade 4.1.0 -> 5.0.1
python3-langtable: Upgrade 0.0.51 -> 0.0.52
python3-pint: Upgrade 0.14 -> 0.15
python3-networkx: Upgrade 2.4 -> 2.5
python3-attrs: Upgrade 19.3.0 -> 20.1.0
python3-pychromecast: Upgrade 7.2.0 -> 7.2.1
python3-dominate: Upgrade 2.5.1 -> 2.5.2
python3-pymisp: Upgrade 2.4.128 -> 2.4.130
python3-inflection: Upgrade 0.5.0 -> 0.5.1
python3-typing-extensions: Upgrade 3.7.4.2 -> 3.7.4.3
python3-pandas: Upgrade 1.1.0 -> 1.1.1
python3-msm: Upgrade 0.8.7 -> 0.8.8
lshw: Upgrade 2.18 -> 2.19
mercurial: Upgrade 5.4 -> 5.5
doxygen: Upgrade 1.8.17 -> 1.8.20
python3-bitarray: Upgrade 1.5.2 -> 1.5.3
python3-cryptography-vectors: Upgrade 2.9.2 -> 3.0
python3-openpyxl: Upgrade 3.0.4 -> 3.0.5
python3-cmd2: Upgrade 1.3.3 -> 1.3.4
python3-sentry-sdk: Upgrade 0.16.5 -> 0.17.0
python3-flask: Consolidate in a single file
python3-flask: Upgrade 1.1.1 -> 1.1.2
python3-diskcache: Upgrade 5.0.1 -> 5.0.2
python3-cmd2: Upgrade 1.3.4 -> 1.3.5
python3-flask-wtf: Consolidate in a single file
python3-flask-wtf: Upgrade 0.14.2 -> 0.14.3
python3-flask-socketio: Consolidate in a single file
python3-flask-socketio: Upgrade 4.2.1 -> 4.3.1
python3-google-api-python-client: Upgrade 1.10.0 -> 1.10.1
python3-cryptography: Upgrade 3.0 -> 3.1
python3-twitter: Upgrade 3.8.0 -> 3.9.0
python3-ntplib: Upgrade 0.3.3 -> 0.3.4
python3-flask-babel: Upgrade 1.0.0 -> 2.0.0
python3-flask-migrate: Consolidate in a single file
python3-flask-migrate: Upgrade 2.5.2 -> 2.5.3
python3-flask-restful: Consolidate in a single file
python3-flask-restful: Upgrade 0.3.7 -> 0.3.8
python3-flask-sqlalchemy: Consolidate in a single file
python3-flask-sqlalchemy: Upgrade 2.4.1 -> 2.4.4
php: Upgrade 7.4.4 -> 7.4.9
python3-ecdsa: Upgrade 0.15 -> 0.16.0
python3-luma-core: Upgrade 1.15.0 -> 1.16.0
python3-cryptography-vectors: Upgrade 3.0 -> 3.1
python3-google-api-python-client: Upgrade 1.10.1 -> 1.11.0
python3-flask-user: Consolidate in a single file
python3-cmd2: Upgrade 1.3.5 -> 1.3.8
python3-sh: Upgrade 1.13.1 -> 1.14.0
python3-paramiko: Upgrade 2.7.1 - 2.7.2
python3-parse: Upgrade 1.16.0 -> 1.17.0
python3-prompt-toolkit: Upgrade 3.0.6 -> 3.0.7
python3-more-itertools: Upgrade 8.4.0 -> 8.5.0
python3-ipython: Upgrade 7.17.0 -> 7.18.1
python3-hpack: Consolidate in a single file
python3-hpack: Upgrade 3.0.0 -> 4.0.0
python3-sentry-sdk: Upgrade 0.17.0 -> 0.17.1
python3-luma-core: Upgrade 1.16.0 -> 1.16.1
python3-traitlets: Upgrade 4.3.3 -> 5.0.0
python3-flask-nav: Consolidate in a single file
python3-flask-mail: Consolidate in a single file
python3-flask-pymongo: Consolidate in a single file
python3-pillow: Upgrade 6.2.1 -> 7.2.0
znc: Upgrade 1.7.5 -> 1.8.1
mosquitto: Upgrade 1.6.11 -> 1.6.12
fping: Upgrade 4.4 -> 5.0
nano: Upgrade 5.1 -> 5.2
hwdata: Upgrade 0.336 -> 0.339
xscreensaver: Add HOMEPAGE
python3-meh: Upgrade 0.48 -> 0.49
python3-stevedore: Upgrade 3.2.0 -> 3.2.1
python3-robotframework: Upgrade 3.2.1 -> 3.2.2
python3-sentry-sdk: Upgrade 0.17.1 -> 0.17.2
python3-pycurl: Upgrade 7.43.0.5 -> 7.43.0.6
python3-pyzmq: Upgrade 17.1.0 -> 19.0.2
python3-mccabe: Upgrade 0.2.1 -> 0.6.1
python3-nmap: Upgrade 1.4.7 -> 1.4.8
python3-absl: Upgrade 0.9.0 -> 0.10.0
python3-systemd: Consolidate in a single file
python3-gevent: Consolidate in a single file
python3-gevent: Upgrade 1.4.0 -> 20.6.2
python3-ruamel-yaml: Upgrade 0.16.10 -> 0.16.11
python3-cmd2: Upgrade 1.3.8 -> 1.3.9
python3-traitlets: 5.0.0 -> 5.0.3
python3-priority: Consolidate in a single file
python3-hyperframe: Consolidate in a single file
python3-mprpc: Consolidate in a single file
python3-gsocketpool: Consolidate in a single file
gyp: Consolidate in a single file
gyp: Upgrade to latest version
python3-fann2: Consolidate in a single file
python3-isort: Upgrade 5.4.2 -> 5.5.0
python3-sentry-sdk: Upgrade 0.17.2 -> 0.17.3
python3-hyperframe: Upgrade 5.2.0 -> 6.0.0
python3-traitlets: Upgrade 5.0.3 -> 5.0.4
python3-texttable: Upgrade 1.6.2 -> 1.6.3
python3-iso8601: Upgrade 0.1.12 -> 0.1.13
python3-dbus-next: Upgrade 0.1.3 -> 0.1.4
python3-ujson: Upgrade 3.1.0 -> 3.2.0
python3-trafaret: Upgrade 2.0.2 -> 2.1.0
python3-tqdm: Upgrade 4.48.2 -> 4.49.0
python3-isort: Upgrade 5.5.0 -> 5.5.2
python3-coverage: Upgrade 5.2.1 -> 5.3
python3-diskcache: Upgrade 5.0.2 -> 5.0.3
python3-haversine: Upgrade 2.2.0 -> 2.3.0
python3-pymysql: Upgrade 0.10.0 -> 0.10.1
python3-alembic: Upgrade 1.4.2 -> 1.4.3
python3-nocasedict: Upgrade 0.5.0 -> 1.0.0
python3-pyroute2: Upgrade 0.5.13 -> 0.5.14
python3-pyusb: Upgrade 1.0.2 -> 1.1.0
python3-pandas: Upgrade 1.1.1 -> 1.1.2
python3-pint: Upgrade 0.15 -> 0.16
python3-parse: Upgrade 1.17.0 -> 1.18.0
python3-cffi: Upgrade 1.14.2 -> 1.14.3
python3-google-api-python-client: Upgrade 1.11.0 -> 1.12.1
python3-sentry-sdk: Upgrade 0.17.3 -> 0.17.5
python3-attrs: Upgrade 20.1.0 -> 20.2.0
python3-nocaselist: Upgrade 1.0.1 -> 1.0.2
python3-pymisp: Upgrade 2.4.130 -> 2.4.131
python3-stevedore: Upgrade 3.2.1 -> 3.2.2
python3-matplotlib: Upgrade 3.3.1 -> 3.3.2
python3-pychromecast: Upgrade 7.2.1 -> 7.3.0
python3-pyrsistent: Upgrade 0.16.0 -> 0.17.3
python3-ruamel-yaml: Upgrade 0.16.11 -> 0.16.12
python3-msk: Upgrade 0.3.15 -> 0.3.16
Madhavan Krishnan (1):
libcamera: Bumped to latest revision and added pkgconfig to enable gstreamer
Marc (1):
openocd: Update to latest git version
Marek Vasut (1):
freerdp: Add missing libxkbcommon WL dependency
Martin Jansa (5):
fbida: require opengl in DISTRO_FEATURES
nss: fix postinst in do_rootfs for target
nss: remove signlibs.sh
st: add x11 to REQUIRED_DISTRO_FEATURES to suck less
st: fix indentation
Michael Fitz-Payne (1):
python3-greenstalk: add recipe for greenstalk python package.
Michael Vetter (2):
jasper: Use new repo URL
README: Use quotation marks for subject prefix
Mikko Rapeli (4):
nss: fix postinst script for nativesdk build
mdns: update to version 1096.40.7
mdns: set CVE_PRODUCT to "apple:mdnsresponder"
mdns: add BSD-3-Clause to LICENSE
Mingli Yu (2):
mariadb: package executables named with mariadb
opencv: improve reproducibility
Ola X Nilsson (1):
syslog-ng: Drop obsolete variable ONLINE_PACKAGE_MANAGEMENT
Oleksandr Kravchuk (1):
tesseract: update to 4.1.1
Ovidiu Panait (1):
net-snmp: upgrade 5.8 -> 5.9
Richard Leitner (1):
liburing: add v0.7
Robert Joslyn (3):
postgresql: Update to 12.4
htop: Update to 3.0.1
consolation: Add recipe
Sakib Sajal (1):
apache2: upgrade v2.4.43 -> v2.4.46
Slater, Joseph (2):
openjpeg: fix CVE-2020-15389
luajit: advance SRCREV to fix two CVE's
Stanislav Angelovic (1):
Bump sdbus-c++ version to v0.8.3
Trevor Gamblin (3):
packagegroup-meta-python: fix PACKAGES and default ptest recipe name
python3-django: upgrade 2.2.13 -> 2.2.16
python3-django: add recipe for 3.1.1
Vincent Prince (1):
mongodb: bump to r4.4.1 version
Wenlin Kang (2):
lua: fix CVE-2020-15945
lua: fix CVE-2020-24371
Yann Dirson (5):
New terminal emulator: st 0.8.4
libcec: workaround wrong choice of PYTHON_PKG_DIR when building on Debian
libcec: build with Linux CEC API
libcec: rename libcec-tools to libcec-examples
libcec: split the python example into a separate package
Zang Ruochen (38):
lftp: upgrade 4.9.1 -> 4.9.2
wireshark: upgrade 3.2.5 -> 3.2.6
leptonica: upgrade 1.79.0 -> 1.80.0
links: upgrade 2.20.2 -> 2.21
nano: upgrade 5.0 -> 5.1
nlohmann-json: upgrade 3.9.0 -> 3.9.1
openldap: upgrade 2.4.50 -> 2.4.51
protobuf: upgrade 3.12.3 -> 3.13.0
sanlock: upgrade 3.8.1 -> 3.8.2
libnet-dns-perl: upgrade 1.25 -> 1.26
libidn: upgrade 1.35 -> 1.36
satyr: upgrade 0.30 -> 0.31
spitools: upgrade 0.8.4 -> 0.8.5
fio: upgrade 3.21 -> 3.22
iperf3: upgrade 3.7 -> 3.9
paho-mqtt-c: upgrade 1.3.4 -> 1.3.5
purple-skypeweb: upgrade 1.6 -> 1.7
libdbd-sqlite-perl: upgrade 1.64 -> 1.66
libencode-perl: upgrade 3.06 -> 3.07
dash: upgrade 0.5.11.1 -> 0.5.11.2
fuse3: upgrade 3.9.2 -> 3.9.3
gperftools: upgrade 2.7.90 -> 2.8
xfsprogs: upgrade 5.7.0 -> 5.8.0
cifs-utils: upgrade 6.10 -> 6.11
libdnet: upgrade 1.12 -> 1.14
asio: upgrade 1.16.1 -> 1.18.0
collectd: upgrade 5.11.0 -> 5.12.0
cryptsetup: upgrade 2.3.3 -> 2.3.4
gsoap: upgrade 2.0.105 -> 2.0.106
jasper: upgrade 2.0.19 -> 2.0.20
lcms: upgrade 2.9 -> 2.11
libhugetlbfs: upgrade 2.22 -> 2.23
ostree: upgrade 2020.5 -> 2020.6
poppler: upgrade 20.08.0 -> 20.09.0
redis: upgrade 6.0.6 -> 6.0.7
spdlog: upgrade 1.7.0 -> 1.8.0
zeromq: upgrade 4.3.2 -> 4.3.3
python3-test-generator: Enable ptest
leckijakub (1):
cukinia: new package
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I8382b605a3c059a037b8f4db53608f505da642ed
Diffstat (limited to 'meta-openembedded/meta-oe/dynamic-layers/meta-python')
11 files changed, 1292 insertions, 53 deletions
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-compilation-with-fno-common.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-compilation-with-fno-common.patch new file mode 100644 index 000000000..f5c2cf217 --- /dev/null +++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-compilation-with-fno-common.patch @@ -0,0 +1,448 @@ +From 3690dc5f567906c45f057509305fbaa021b33adb Mon Sep 17 00:00:00 2001 +From: Yichao Yu <yyc1992@gmail.com> +Date: Tue, 15 Sep 2020 12:35:46 -0700 +Subject: [PATCH] Fix compilation with -fno-common. + +Making all other archs consistent with IA64 which should not have this problem. +Also move the FIXME to the correct place. + +Also add some minimum comments about this... + +Upstream-Status: Backport [https://github.com/libunwind/libunwind/pull/166/commits/29e17d8d2ccbca07c423e3089a6d5ae8a1c9cb6e] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/third_party/unwind/dist/src/aarch64/Ginit.c | 15 +++++++-------- + src/third_party/unwind/dist/src/arm/Ginit.c | 15 +++++++-------- + .../src/coredump/_UPT_get_dyn_info_list_addr.c | 5 +++++ + src/third_party/unwind/dist/src/hppa/Ginit.c | 15 +++++++-------- + src/third_party/unwind/dist/src/ia64/Ginit.c | 1 + + .../unwind/dist/src/mi/Gfind_dynamic_proc_info.c | 1 + + src/third_party/unwind/dist/src/mips/Ginit.c | 15 +++++++-------- + src/third_party/unwind/dist/src/ppc32/Ginit.c | 11 +++++++---- + src/third_party/unwind/dist/src/ppc64/Ginit.c | 11 +++++++---- + .../dist/src/ptrace/_UPT_get_dyn_info_list_addr.c | 5 +++++ + src/third_party/unwind/dist/src/s390x/Ginit.c | 15 +++++++-------- + src/third_party/unwind/dist/src/sh/Ginit.c | 15 +++++++-------- + src/third_party/unwind/dist/src/tilegx/Ginit.c | 15 +++++++-------- + src/third_party/unwind/dist/src/x86/Ginit.c | 15 +++++++-------- + src/third_party/unwind/dist/src/x86_64/Ginit.c | 15 +++++++-------- + 15 files changed, 89 insertions(+), 80 deletions(-) + +diff --git a/src/third_party/unwind/dist/src/aarch64/Ginit.c b/src/third_party/unwind/dist/src/aarch64/Ginit.c +index dec235c829..35389762f2 100644 +--- a/src/third_party/unwind/dist/src/aarch64/Ginit.c ++++ b/src/third_party/unwind/dist/src/aarch64/Ginit.c +@@ -61,13 +61,6 @@ tdep_uc_addr (unw_tdep_context_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -78,7 +71,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/third_party/unwind/dist/src/arm/Ginit.c b/src/third_party/unwind/dist/src/arm/Ginit.c +index 2720d063a2..0bac0d72da 100644 +--- a/src/third_party/unwind/dist/src/arm/Ginit.c ++++ b/src/third_party/unwind/dist/src/arm/Ginit.c +@@ -57,18 +57,17 @@ tdep_uc_addr (unw_tdep_context_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/third_party/unwind/dist/src/coredump/_UPT_get_dyn_info_list_addr.c b/src/third_party/unwind/dist/src/coredump/_UPT_get_dyn_info_list_addr.c +index 0d11905566..739ed0569b 100644 +--- a/src/third_party/unwind/dist/src/coredump/_UPT_get_dyn_info_list_addr.c ++++ b/src/third_party/unwind/dist/src/coredump/_UPT_get_dyn_info_list_addr.c +@@ -74,6 +74,11 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg, + + #else + ++/* XXX fix me: there is currently no way to locate the dyn-info list ++ by a remote unwinder. On ia64, this is done via a special ++ unwind-table entry. Perhaps something similar can be done with ++ DWARF2 unwind info. */ ++ + static inline int + get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg, + int *countp) +diff --git a/src/third_party/unwind/dist/src/hppa/Ginit.c b/src/third_party/unwind/dist/src/hppa/Ginit.c +index 461e4b93da..265455a68c 100644 +--- a/src/third_party/unwind/dist/src/hppa/Ginit.c ++++ b/src/third_party/unwind/dist/src/hppa/Ginit.c +@@ -64,13 +64,6 @@ _Uhppa_uc_addr (ucontext_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -81,7 +74,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/third_party/unwind/dist/src/ia64/Ginit.c b/src/third_party/unwind/dist/src/ia64/Ginit.c +index b09a2ad57c..8601bb3ca8 100644 +--- a/src/third_party/unwind/dist/src/ia64/Ginit.c ++++ b/src/third_party/unwind/dist/src/ia64/Ginit.c +@@ -68,6 +68,7 @@ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + if (!_U_dyn_info_list_addr) + return -UNW_ENOINFO; + #endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. + *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } +diff --git a/src/third_party/unwind/dist/src/mi/Gfind_dynamic_proc_info.c b/src/third_party/unwind/dist/src/mi/Gfind_dynamic_proc_info.c +index 98d3501286..2e7c62e5e8 100644 +--- a/src/third_party/unwind/dist/src/mi/Gfind_dynamic_proc_info.c ++++ b/src/third_party/unwind/dist/src/mi/Gfind_dynamic_proc_info.c +@@ -49,6 +49,7 @@ local_find_proc_info (unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi, + return -UNW_ENOINFO; + #endif + ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. + list = (unw_dyn_info_list_t *) (uintptr_t) _U_dyn_info_list_addr (); + for (di = list->first; di; di = di->next) + if (ip >= di->start_ip && ip < di->end_ip) +diff --git a/src/third_party/unwind/dist/src/mips/Ginit.c b/src/third_party/unwind/dist/src/mips/Ginit.c +index 3df170c754..bf7a8f5a8f 100644 +--- a/src/third_party/unwind/dist/src/mips/Ginit.c ++++ b/src/third_party/unwind/dist/src/mips/Ginit.c +@@ -69,13 +69,6 @@ tdep_uc_addr (ucontext_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -86,7 +79,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) (intptr_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/third_party/unwind/dist/src/ppc32/Ginit.c b/src/third_party/unwind/dist/src/ppc32/Ginit.c +index ba302448a3..7b45455807 100644 +--- a/src/third_party/unwind/dist/src/ppc32/Ginit.c ++++ b/src/third_party/unwind/dist/src/ppc32/Ginit.c +@@ -91,9 +91,6 @@ tdep_uc_addr (ucontext_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -104,7 +101,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/third_party/unwind/dist/src/ppc64/Ginit.c b/src/third_party/unwind/dist/src/ppc64/Ginit.c +index 4c88cd6e77..7bfb395a79 100644 +--- a/src/third_party/unwind/dist/src/ppc64/Ginit.c ++++ b/src/third_party/unwind/dist/src/ppc64/Ginit.c +@@ -95,9 +95,6 @@ tdep_uc_addr (ucontext_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -108,7 +105,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/third_party/unwind/dist/src/ptrace/_UPT_get_dyn_info_list_addr.c b/src/third_party/unwind/dist/src/ptrace/_UPT_get_dyn_info_list_addr.c +index cc5ed04418..16671d453e 100644 +--- a/src/third_party/unwind/dist/src/ptrace/_UPT_get_dyn_info_list_addr.c ++++ b/src/third_party/unwind/dist/src/ptrace/_UPT_get_dyn_info_list_addr.c +@@ -71,6 +71,11 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg, + + #else + ++/* XXX fix me: there is currently no way to locate the dyn-info list ++ by a remote unwinder. On ia64, this is done via a special ++ unwind-table entry. Perhaps something similar can be done with ++ DWARF2 unwind info. */ ++ + static inline int + get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg, + int *countp) +diff --git a/src/third_party/unwind/dist/src/s390x/Ginit.c b/src/third_party/unwind/dist/src/s390x/Ginit.c +index f0886ac933..db01743c06 100644 +--- a/src/third_party/unwind/dist/src/s390x/Ginit.c ++++ b/src/third_party/unwind/dist/src/s390x/Ginit.c +@@ -50,8 +50,6 @@ static struct unw_addr_space local_addr_space; + + unw_addr_space_t unw_local_addr_space = &local_addr_space; + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- + static inline void * + uc_addr (ucontext_t *uc, int reg) + { +@@ -75,11 +73,6 @@ tdep_uc_addr (ucontext_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -90,7 +83,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/third_party/unwind/dist/src/sh/Ginit.c b/src/third_party/unwind/dist/src/sh/Ginit.c +index 52988a721e..9fe96d2bd4 100644 +--- a/src/third_party/unwind/dist/src/sh/Ginit.c ++++ b/src/third_party/unwind/dist/src/sh/Ginit.c +@@ -58,13 +58,6 @@ tdep_uc_addr (ucontext_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -75,7 +68,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/third_party/unwind/dist/src/tilegx/Ginit.c b/src/third_party/unwind/dist/src/tilegx/Ginit.c +index 7564a558be..925e641324 100644 +--- a/src/third_party/unwind/dist/src/tilegx/Ginit.c ++++ b/src/third_party/unwind/dist/src/tilegx/Ginit.c +@@ -64,13 +64,6 @@ tdep_uc_addr (ucontext_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -81,7 +74,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) (intptr_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/third_party/unwind/dist/src/x86/Ginit.c b/src/third_party/unwind/dist/src/x86/Ginit.c +index f6b8dc27d4..3cec74a216 100644 +--- a/src/third_party/unwind/dist/src/x86/Ginit.c ++++ b/src/third_party/unwind/dist/src/x86/Ginit.c +@@ -54,13 +54,6 @@ tdep_uc_addr (ucontext_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -71,7 +64,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/third_party/unwind/dist/src/x86_64/Ginit.c b/src/third_party/unwind/dist/src/x86_64/Ginit.c +index 6161da6401..5c4e4269a6 100644 +--- a/src/third_party/unwind/dist/src/x86_64/Ginit.c ++++ b/src/third_party/unwind/dist/src/x86_64/Ginit.c +@@ -49,13 +49,6 @@ static struct unw_addr_space local_addr_space; + + unw_addr_space_t unw_local_addr_space = &local_addr_space; + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -66,7 +59,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +-- +2.28.0 + diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch index 190884624..b8a325295 100644 --- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch +++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch @@ -1,4 +1,4 @@ -From 1b2e24e14ee72e54e466be2512c78272f62d60b4 Mon Sep 17 00:00:00 2001 +From 8295bb6a60896fed54d6450bca091aea4eea4fb2 Mon Sep 17 00:00:00 2001 From: Vincent Prince <vincent.prince.fr@gmail.com> Date: Mon, 16 Sep 2019 13:21:44 +0200 Subject: [PATCH 01/10] Tell scons to use build settings from environment @@ -7,14 +7,14 @@ Subject: [PATCH 01/10] Tell scons to use build settings from environment Signed-off-by: Sven Ebenfeld <sven.ebenfeld@gmail.com> Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com> --- - SConstruct | 8 ++++++-- - 1 files changed, 8 insertions(+), 2 deletions(-) + SConstruct | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/SConstruct b/SConstruct -index 7ebbcbc..e63cf15 100644 +index 89c044ab78..2044c0ddb8 100644 --- a/SConstruct +++ b/SConstruct -@@ -608,6 +608,7 @@ def variable_arch_converter(val): +@@ -593,6 +593,7 @@ def variable_arch_converter(val): 'amd64': 'x86_64', 'emt64': 'x86_64', 'x86': 'i386', @@ -22,7 +22,7 @@ index 7ebbcbc..e63cf15 100644 } val = val.lower() -@@ -695,7 +696,8 @@ env_vars.Add( +@@ -723,7 +724,8 @@ env_vars.Add( ) env_vars.Add('CC', @@ -32,7 +32,7 @@ index 7ebbcbc..e63cf15 100644 env_vars.Add('CCFLAGS', help='Sets flags for the C and C++ compiler', -@@ -715,7 +717,8 @@ env_vars.Add('CPPPATH', +@@ -743,7 +745,8 @@ env_vars.Add('CPPPATH', converter=variable_shlex_converter) env_vars.Add('CXX', @@ -42,15 +42,14 @@ index 7ebbcbc..e63cf15 100644 env_vars.Add('CXXFLAGS', help='Sets flags for the C++ compiler', -@@ -1018,6 +1021,7 @@ envDict = dict(BUILD_ROOT=buildDir, - ) +@@ -1127,6 +1130,7 @@ if get_option('build-tools') == 'next' or get_option('ninja') == 'next': + SCons.Tool.DefaultToolpath.insert(0, os.path.abspath('site_scons/site_tools/next')) env = Environment(variables=env_vars, **envDict) +env.PrependENVPath('PATH', os.getenv('PATH')) - del envDict - - for var in ['CC', 'CXX']: + # Only print the spinner if stdout is a tty + if sys.stdout.isatty(): -- -2.7.4 +2.24.0 diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch index d98fa56cb..8d82be1b5 100644 --- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch +++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch @@ -1,4 +1,4 @@ -From d701ceeb15662038435b80ba556a80c17f76d2dc Mon Sep 17 00:00:00 2001 +From 6332823f9fdcb571305b716330e67d0b38810868 Mon Sep 17 00:00:00 2001 From: Vincent Prince <vincent.prince.fr@gmail.com> Date: Mon, 16 Sep 2019 13:30:13 +0200 Subject: [PATCH 03/10] Use __GLIBC__ to control use of gnu_get_libc_version @@ -10,7 +10,7 @@ Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com> 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mongo/util/processinfo_linux.cpp b/src/mongo/util/processinfo_linux.cpp -index cccb91c..45c4b7d 100644 +index a968c54727..0d8b8874e2 100644 --- a/src/mongo/util/processinfo_linux.cpp +++ b/src/mongo/util/processinfo_linux.cpp @@ -44,10 +44,10 @@ @@ -27,7 +27,7 @@ index cccb91c..45c4b7d 100644 #endif #include <boost/filesystem.hpp> -@@ -546,7 +546,7 @@ void ProcessInfo::SystemInfo::collectSystemInfo() { +@@ -617,7 +617,7 @@ void ProcessInfo::SystemInfo::collectSystemInfo() { std::stringstream ss; ss << "uClibc-" << __UCLIBC_MAJOR__ << "." << __UCLIBC_MINOR__ << "." << __UCLIBC_SUBLEVEL__; bExtra.append("libcVersion", ss.str()); @@ -37,5 +37,5 @@ index cccb91c..45c4b7d 100644 #endif if (!verSig.empty()) -- -2.7.4 +2.24.0 diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch index b9c670407..958e09c3d 100644 --- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch +++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch @@ -1,4 +1,4 @@ -From 20fcbf2a05ee6542aba942f6006d149db70fb9ce Mon Sep 17 00:00:00 2001 +From 4e7f15346682482bc2071c7209dec97507d3bc4c Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Sat, 2 Sep 2017 10:03:37 -0700 Subject: [PATCH 02/10] Use long long instead of int64_t @@ -8,12 +8,13 @@ error: call to member function 'appendNumber' is ambiguous since this function expects long long as parameter and not int64_t Signed-off-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com> --- src/mongo/util/procparser.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/mongo/util/procparser.cpp b/src/mongo/util/procparser.cpp -index c574a3f..5ea66b7 100644 +index 24b9d1e2c9..0f274cfff6 100644 --- a/src/mongo/util/procparser.cpp +++ b/src/mongo/util/procparser.cpp @@ -261,7 +261,7 @@ Status parseProcStat(const std::vector<StringData>& keys, @@ -23,7 +24,7 @@ index c574a3f..5ea66b7 100644 - uint64_t value; + long long value; - if (!parseNumberFromString(stringValue, &value).isOK()) { + if (!NumberParser{}(stringValue, &value).isOK()) { value = 0; @@ -273,7 +273,7 @@ Status parseProcStat(const std::vector<StringData>& keys, } else { @@ -32,7 +33,7 @@ index c574a3f..5ea66b7 100644 - uint64_t value; + long long value; - if (!parseNumberFromString(stringValue, &value).isOK()) { + if (!NumberParser{}(stringValue, &value).isOK()) { value = 0; @@ -366,7 +366,7 @@ Status parseProcMemInfo(const std::vector<StringData>& keys, @@ -41,7 +42,7 @@ index c574a3f..5ea66b7 100644 - uint64_t value; + long long value; - if (!parseNumberFromString(stringValue, &value).isOK()) { + if (!NumberParser{}(stringValue, &value).isOK()) { value = 0; @@ -522,7 +522,7 @@ Status parseProcDiskStats(const std::vector<StringData>& disks, StringData data, @@ -59,8 +60,8 @@ index c574a3f..5ea66b7 100644 - uint64_t value; + long long value; - if (!parseNumberFromString(stringValue, &value).isOK()) { + if (!NumberParser{}(stringValue, &value).isOK()) { value = 0; -- -2.7.4 +2.24.0 diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-kms-message-bump-libmongocrypto-to-v1.0.4.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-kms-message-bump-libmongocrypto-to-v1.0.4.patch new file mode 100644 index 000000000..df4cee2b4 --- /dev/null +++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-kms-message-bump-libmongocrypto-to-v1.0.4.patch @@ -0,0 +1,714 @@ +From 44272ce47e768e090263df5cb9cb7ce17e544ad3 Mon Sep 17 00:00:00 2001 +From: Vincent Prince <vincent.prince.external@saftbatteries.com> +Date: Tue, 15 Sep 2020 11:40:15 +0200 +Subject: [PATCH] kms-message: bump libmongocrypto to v1.0.4 + +This fixes compilation with alpinelinux +see https://github.com/mongodb/libmongocrypt/pull/89 + +Upstream-Status: Pending + +Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com> +--- + .../kms-message/THIRD_PARTY_NOTICES | 2 +- + src/third_party/kms-message/src/hexlify.c | 21 +---- + src/third_party/kms-message/src/hexlify.h | 2 - + .../kms-message/src/kms_crypto_apple.c | 5 + + .../kms-message/src/kms_crypto_libcrypto.c | 94 +++++++++++++++++++ + .../kms-message/src/kms_crypto_none.c | 4 + + .../kms-message/src/kms_crypto_windows.c | 4 + + .../kms-message/src/kms_decrypt_request.c | 2 +- + .../kms-message/src/kms_encrypt_request.c | 2 +- + src/third_party/kms-message/src/kms_kv_list.c | 11 ++- + .../kms-message/src/kms_message/kms_message.h | 2 + + .../src/kms_message/kms_message_defines.h | 10 ++ + src/third_party/kms-message/src/kms_port.c | 33 +++++++ + src/third_party/kms-message/src/kms_port.h | 27 +++--- + src/third_party/kms-message/src/kms_request.c | 41 +++++--- + .../kms-message/src/kms_request_str.c | 13 ++- + .../kms-message/src/kms_request_str.h | 5 - + .../kms-message/src/kms_response_parser.c | 26 ++++- + .../scripts/kms_message_get_sources.sh | 2 +- + 19 files changed, 244 insertions(+), 62 deletions(-) + create mode 100644 src/third_party/kms-message/src/kms_crypto_libcrypto.c + create mode 100644 src/third_party/kms-message/src/kms_port.c + +diff --git a/src/third_party/kms-message/THIRD_PARTY_NOTICES b/src/third_party/kms-message/THIRD_PARTY_NOTICES +index 3fc095170c..4110c1b91e 100644 +--- a/src/third_party/kms-message/THIRD_PARTY_NOTICES ++++ b/src/third_party/kms-message/THIRD_PARTY_NOTICES +@@ -1,4 +1,4 @@ +-License notice for common-b64.c ++License notice for kms_b64.c + ------------------------------------------------------------------------------- + + ISC License +diff --git a/src/third_party/kms-message/src/hexlify.c b/src/third_party/kms-message/src/hexlify.c +index be9ee030b9..941fc93d1b 100644 +--- a/src/third_party/kms-message/src/hexlify.c ++++ b/src/third_party/kms-message/src/hexlify.c +@@ -24,6 +24,8 @@ char * + hexlify (const uint8_t *buf, size_t len) + { + char *hex_chars = malloc (len * 2 + 1); ++ KMS_ASSERT (hex_chars); ++ + char *p = hex_chars; + size_t i; + +@@ -35,22 +37,3 @@ hexlify (const uint8_t *buf, size_t len) + + return hex_chars; + } +- +-uint8_t * +-unhexlify (const char *hex_chars, size_t *len) +-{ +- uint8_t *buf; +- uint8_t *pos; +- +- *len = strlen (hex_chars) / 2; +- buf = malloc (*len); +- pos = buf; +- +- while (*hex_chars) { +- KMS_ASSERT (1 == sscanf (hex_chars, "%2hhx", pos)); +- pos++; +- hex_chars += 2; +- } +- +- return buf; +-} +diff --git a/src/third_party/kms-message/src/hexlify.h b/src/third_party/kms-message/src/hexlify.h +index e0096eb6ca..a6a504ebe8 100644 +--- a/src/third_party/kms-message/src/hexlify.h ++++ b/src/third_party/kms-message/src/hexlify.h +@@ -19,5 +19,3 @@ + + char * + hexlify (const uint8_t *buf, size_t len); +-uint8_t * +-unhexlify (const char *hex_chars, size_t *len); +diff --git a/src/third_party/kms-message/src/kms_crypto_apple.c b/src/third_party/kms-message/src/kms_crypto_apple.c +index 61da0a6288..a26e0d65e8 100644 +--- a/src/third_party/kms-message/src/kms_crypto_apple.c ++++ b/src/third_party/kms-message/src/kms_crypto_apple.c +@@ -16,9 +16,12 @@ + + #include "kms_crypto.h" + ++#ifdef KMS_MESSAGE_ENABLE_CRYPTO_COMMON_CRYPTO ++ + #include <CommonCrypto/CommonDigest.h> + #include <CommonCrypto/CommonHMAC.h> + ++ + int + kms_crypto_init () + { +@@ -54,3 +57,5 @@ kms_sha256_hmac (void *unused_ctx, + CCHmac (kCCHmacAlgSHA256, key_input, key_len, input, len, hash_out); + return true; + } ++ ++#endif /* KMS_MESSAGE_ENABLE_CRYPTO_COMMON_CRYPTO */ +diff --git a/src/third_party/kms-message/src/kms_crypto_libcrypto.c b/src/third_party/kms-message/src/kms_crypto_libcrypto.c +new file mode 100644 +index 0000000000..6f25657fdd +--- /dev/null ++++ b/src/third_party/kms-message/src/kms_crypto_libcrypto.c +@@ -0,0 +1,94 @@ ++/* ++ * Copyright 2018-present MongoDB, Inc. ++ * ++ * Licensed under the Apache License, Version 2.0 (the "License"); ++ * you may not use this file except in compliance with the License. ++ * You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, software ++ * distributed under the License is distributed on an "AS IS" BASIS, ++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ * See the License for the specific language governing permissions and ++ * limitations under the License. ++ */ ++ ++#include "kms_crypto.h" ++ ++#ifdef KMS_MESSAGE_ENABLE_CRYPTO_LIBCRYPTO ++ ++#include <openssl/sha.h> ++#include <openssl/evp.h> ++#include <openssl/hmac.h> ++ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || \ ++ (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L) ++static EVP_MD_CTX * ++EVP_MD_CTX_new (void) ++{ ++ return calloc (sizeof (EVP_MD_CTX), 1); ++} ++ ++static void ++EVP_MD_CTX_free (EVP_MD_CTX *ctx) ++{ ++ EVP_MD_CTX_cleanup (ctx); ++ free (ctx); ++} ++#endif ++ ++int ++kms_crypto_init () ++{ ++ return 0; ++} ++ ++void ++kms_crypto_cleanup () ++{ ++} ++ ++bool ++kms_sha256 (void *unused_ctx, ++ const char *input, ++ size_t len, ++ unsigned char *hash_out) ++{ ++ EVP_MD_CTX *digest_ctxp = EVP_MD_CTX_new (); ++ bool rval = false; ++ ++ if (1 != EVP_DigestInit_ex (digest_ctxp, EVP_sha256 (), NULL)) { ++ goto cleanup; ++ } ++ ++ if (1 != EVP_DigestUpdate (digest_ctxp, input, len)) { ++ goto cleanup; ++ } ++ ++ rval = (1 == EVP_DigestFinal_ex (digest_ctxp, hash_out, NULL)); ++ ++cleanup: ++ EVP_MD_CTX_free (digest_ctxp); ++ ++ return rval; ++} ++ ++bool ++kms_sha256_hmac (void *unused_ctx, ++ const char *key_input, ++ size_t key_len, ++ const char *input, ++ size_t len, ++ unsigned char *hash_out) ++{ ++ return HMAC (EVP_sha256 (), ++ key_input, ++ key_len, ++ (unsigned char *) input, ++ len, ++ hash_out, ++ NULL) != NULL; ++} ++ ++#endif /* KMS_MESSAGE_ENABLE_CRYPTO_LIBCRYPTO */ +diff --git a/src/third_party/kms-message/src/kms_crypto_none.c b/src/third_party/kms-message/src/kms_crypto_none.c +index 9ef2147687..94da5abd88 100644 +--- a/src/third_party/kms-message/src/kms_crypto_none.c ++++ b/src/third_party/kms-message/src/kms_crypto_none.c +@@ -16,6 +16,8 @@ + + #include "kms_crypto.h" + ++#ifndef KMS_MESSAGE_ENABLE_CRYPTO ++ + int + kms_crypto_init () + { +@@ -48,3 +50,5 @@ kms_sha256_hmac (void *unused_ctx, + /* only gets called if hooks were mistakenly not set */ + return false; + } ++ ++#endif /* KMS_MESSAGE_ENABLE_CRYPTO */ +diff --git a/src/third_party/kms-message/src/kms_crypto_windows.c b/src/third_party/kms-message/src/kms_crypto_windows.c +index ccdc7e095d..8177b0ddc0 100644 +--- a/src/third_party/kms-message/src/kms_crypto_windows.c ++++ b/src/third_party/kms-message/src/kms_crypto_windows.c +@@ -16,6 +16,8 @@ + + #include "kms_crypto.h" + ++#ifdef KMS_MESSAGE_ENABLE_CRYPTO_CNG ++ + // tell windows.h not to include a bunch of headers we don't need: + #define WIN32_LEAN_AND_MEAN + +@@ -130,3 +132,5 @@ cleanup: + + return status == STATUS_SUCCESS ? 1 : 0; + } ++ ++#endif /* KMS_MESSAGE_ENABLE_CRYPTO_CNG */ +diff --git a/src/third_party/kms-message/src/kms_decrypt_request.c b/src/third_party/kms-message/src/kms_decrypt_request.c +index 06faa43119..f1ca282768 100644 +--- a/src/third_party/kms-message/src/kms_decrypt_request.c ++++ b/src/third_party/kms-message/src/kms_decrypt_request.c +@@ -48,7 +48,7 @@ kms_decrypt_request_new (const uint8_t *ciphertext_blob, + if (!(b64 = malloc (b64_len))) { + KMS_ERROR (request, + "Could not allocate %d bytes for base64-encoding payload", +- b64_len); ++ (int) b64_len); + goto done; + } + +diff --git a/src/third_party/kms-message/src/kms_encrypt_request.c b/src/third_party/kms-message/src/kms_encrypt_request.c +index b5f4d6436e..24b064d95f 100644 +--- a/src/third_party/kms-message/src/kms_encrypt_request.c ++++ b/src/third_party/kms-message/src/kms_encrypt_request.c +@@ -47,7 +47,7 @@ kms_encrypt_request_new (const uint8_t *plaintext, + if (!(b64 = malloc (b64_len))) { + KMS_ERROR (request, + "Could not allocate %d bytes for base64-encoding payload", +- b64_len); ++ (int) b64_len); + goto done; + } + +diff --git a/src/third_party/kms-message/src/kms_kv_list.c b/src/third_party/kms-message/src/kms_kv_list.c +index 2d6845a1aa..0cff3dc2c6 100644 +--- a/src/third_party/kms-message/src/kms_kv_list.c ++++ b/src/third_party/kms-message/src/kms_kv_list.c +@@ -17,6 +17,7 @@ + + #include "kms_kv_list.h" + #include "kms_message/kms_message.h" ++#include "kms_message_private.h" + #include "kms_request_str.h" + #include "kms_port.h" + #include "sort.h" +@@ -39,9 +40,12 @@ kms_kv_list_t * + kms_kv_list_new (void) + { + kms_kv_list_t *lst = malloc (sizeof (kms_kv_list_t)); ++ KMS_ASSERT (lst); + + lst->size = 16; + lst->kvs = malloc (lst->size * sizeof (kms_kv_t)); ++ KMS_ASSERT (lst->kvs); ++ + lst->len = 0; + + return lst; +@@ -72,6 +76,7 @@ kms_kv_list_add (kms_kv_list_t *lst, + if (lst->len == lst->size) { + lst->size *= 2; + lst->kvs = realloc (lst->kvs, lst->size * sizeof (kms_kv_t)); ++ KMS_ASSERT (lst->kvs); + } + + kv_init (&lst->kvs[lst->len], key, value); +@@ -84,7 +89,7 @@ kms_kv_list_find (const kms_kv_list_t *lst, const char *key) + size_t i; + + for (i = 0; i < lst->len; i++) { +- if (0 == strcasecmp (lst->kvs[i].key->str, key)) { ++ if (0 == kms_strcasecmp (lst->kvs[i].key->str, key)) { + return &lst->kvs[i]; + } + } +@@ -119,8 +124,12 @@ kms_kv_list_dup (const kms_kv_list_t *lst) + } + + dup = malloc (sizeof (kms_kv_list_t)); ++ KMS_ASSERT (dup); ++ + dup->size = dup->len = lst->len; + dup->kvs = malloc (lst->len * sizeof (kms_kv_t)); ++ KMS_ASSERT (dup->kvs); ++ + + for (i = 0; i < lst->len; i++) { + kv_init (&dup->kvs[i], lst->kvs[i].key, lst->kvs[i].value); +diff --git a/src/third_party/kms-message/src/kms_message/kms_message.h b/src/third_party/kms-message/src/kms_message/kms_message.h +index 6ea95dd04c..8048528f2e 100644 +--- a/src/third_party/kms-message/src/kms_message/kms_message.h ++++ b/src/third_party/kms-message/src/kms_message/kms_message.h +@@ -17,6 +17,8 @@ + #ifndef KMS_MESSAGE_H + #define KMS_MESSAGE_H + ++#include <sys/types.h> ++ + #include "kms_message_defines.h" + #include "kms_request_opt.h" + #include "kms_request.h" +diff --git a/src/third_party/kms-message/src/kms_message/kms_message_defines.h b/src/third_party/kms-message/src/kms_message/kms_message_defines.h +index a4d019bd77..a539d531ef 100644 +--- a/src/third_party/kms-message/src/kms_message/kms_message_defines.h ++++ b/src/third_party/kms-message/src/kms_message/kms_message_defines.h +@@ -53,4 +53,14 @@ kms_message_cleanup (void); + } /* extern "C" */ + #endif + ++#ifdef _MSC_VER ++#include <basetsd.h> ++#pragma warning(disable : 4142) ++#ifndef _SSIZE_T_DEFINED ++#define _SSIZE_T_DEFINED ++typedef SSIZE_T ssize_t; ++#endif ++#pragma warning(default : 4142) ++#endif ++ + #endif /* KMS_MESSAGE_DEFINES_H */ +diff --git a/src/third_party/kms-message/src/kms_port.c b/src/third_party/kms-message/src/kms_port.c +new file mode 100644 +index 0000000000..ee9e6ed9c9 +--- /dev/null ++++ b/src/third_party/kms-message/src/kms_port.c +@@ -0,0 +1,33 @@ ++/* ++ * Copyright 2020-present MongoDB, Inc. ++ * ++ * Licensed under the Apache License, Version 2.0 (the "License"); ++ * you may not use this file except in compliance with the License. ++ * You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, software ++ * distributed under the License is distributed on an "AS IS" BASIS, ++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ * See the License for the specific language governing permissions and ++ * limitations under the License. ++ */ ++ ++#include "kms_port.h" ++#if defined(_WIN32) ++#include <stdlib.h> ++#include <string.h> ++char * kms_strndup (const char *src, size_t len) ++{ ++ char *dst = (char *) malloc (len + 1); ++ if (!dst) { ++ return 0; ++ } ++ ++ memcpy (dst, src, len); ++ dst[len] = '\0'; ++ ++ return dst; ++} ++#endif +\ No newline at end of file +diff --git a/src/third_party/kms-message/src/kms_port.h b/src/third_party/kms-message/src/kms_port.h +index c3cbbac369..2123a99dc9 100644 +--- a/src/third_party/kms-message/src/kms_port.h ++++ b/src/third_party/kms-message/src/kms_port.h +@@ -15,21 +15,18 @@ + * limitations under the License. + */ + +-#if defined(_WIN32) +-#define strcasecmp _stricmp +- +-inline char * +-strndup (const char *src, size_t len) +-{ +- char *dst = (char *) malloc (len + 1); +- if (!dst) { +- return 0; +- } +- +- memcpy (dst, src, len); +- dst[len] = '\0'; ++#ifndef KMS_PORT_H ++#define KMS_PORT_H + +- return dst; +-} ++#include <stddef.h> + ++#if defined(_WIN32) ++#define kms_strcasecmp _stricmp ++char * ++kms_strndup (const char *src, size_t len); ++#else ++#define kms_strndup strndup ++#define kms_strcasecmp strcasecmp + #endif ++ ++#endif /* KMS_PORT_H */ +\ No newline at end of file +diff --git a/src/third_party/kms-message/src/kms_request.c b/src/third_party/kms-message/src/kms_request.c +index fa2d487123..ac2b07ea6b 100644 +--- a/src/third_party/kms-message/src/kms_request.c ++++ b/src/third_party/kms-message/src/kms_request.c +@@ -61,6 +61,7 @@ kms_request_new (const char *method, + kms_request_t *request = calloc (1, sizeof (kms_request_t)); + const char *question_mark; + ++ KMS_ASSERT (request); + /* parsing may set failed to true */ + request->failed = false; + +@@ -92,10 +93,14 @@ kms_request_new (const char *method, + request->header_fields = kms_kv_list_new (); + request->auto_content_length = true; + +- kms_request_set_date (request, NULL); ++ if (!kms_request_set_date (request, NULL)) { ++ return request; ++ } + + if (opt && opt->connection_close) { +- kms_request_add_header_field (request, "Connection", "close"); ++ if (!kms_request_add_header_field (request, "Connection", "close")) { ++ return request; ++ } + } + + if (opt && opt->crypto.sha256) { +@@ -164,7 +169,9 @@ kms_request_set_date (kms_request_t *request, const struct tm *tm) + kms_request_str_set_chars (request->date, buf, sizeof "YYYYmmDD" - 1); + kms_request_str_set_chars (request->datetime, buf, sizeof AMZ_DT_FORMAT - 1); + kms_kv_list_del (request->header_fields, "X-Amz-Date"); +- kms_request_add_header_field (request, "X-Amz-Date", buf); ++ if (!kms_request_add_header_field (request, "X-Amz-Date", buf)) { ++ return false; ++ } + + return true; + } +@@ -309,7 +316,8 @@ append_canonical_headers (kms_kv_list_t *lst, kms_request_str_t *str) + * values in headers that have multiple values." */ + for (i = 0; i < lst->len; i++) { + kv = &lst->kvs[i]; +- if (previous_key && 0 == strcasecmp (previous_key->str, kv->key->str)) { ++ if (previous_key && ++ 0 == kms_strcasecmp (previous_key->str, kv->key->str)) { + /* duplicate header */ + kms_request_str_append_char (str, ','); + kms_request_str_append_stripped (str, kv->value); +@@ -339,12 +347,13 @@ append_signed_headers (kms_kv_list_t *lst, kms_request_str_t *str) + + for (i = 0; i < lst->len; i++) { + kv = &lst->kvs[i]; +- if (previous_key && 0 == strcasecmp (previous_key->str, kv->key->str)) { ++ if (previous_key && ++ 0 == kms_strcasecmp (previous_key->str, kv->key->str)) { + /* duplicate header */ + continue; + } + +- if (0 == strcasecmp (kv->key->str, "connection")) { ++ if (0 == kms_strcasecmp (kv->key->str, "connection")) { + continue; + } + +@@ -412,7 +421,8 @@ finalize (kms_request_t *request) + static int + cmp_header_field_names (const void *a, const void *b) + { +- return strcasecmp (((kms_kv_t *) a)->key->str, ((kms_kv_t *) b)->key->str); ++ return kms_strcasecmp (((kms_kv_t *) a)->key->str, ++ ((kms_kv_t *) b)->key->str); + } + + static kms_kv_list_t * +@@ -447,6 +457,7 @@ kms_request_get_canonical (kms_request_t *request) + kms_request_str_append_newline (canonical); + normalized = kms_request_str_path_normalized (request->path); + kms_request_str_append_escaped (canonical, normalized, false); ++ kms_request_str_destroy (normalized); + kms_request_str_append_newline (canonical); + append_canonical_query (request, canonical); + kms_request_str_append_newline (canonical); +@@ -454,12 +465,14 @@ kms_request_get_canonical (kms_request_t *request) + append_canonical_headers (lst, canonical); + kms_request_str_append_newline (canonical); + append_signed_headers (lst, canonical); +- kms_request_str_append_newline (canonical); +- kms_request_str_append_hashed ( +- &request->crypto, canonical, request->payload); +- +- kms_request_str_destroy (normalized); + kms_kv_list_destroy (lst); ++ kms_request_str_append_newline (canonical); ++ if (!kms_request_str_append_hashed ( ++ &request->crypto, canonical, request->payload)) { ++ KMS_ERROR (request, "could not generate hash"); ++ kms_request_str_destroy (canonical); ++ return NULL; ++ } + + return kms_request_str_detach (canonical); + } +@@ -514,6 +527,10 @@ kms_request_get_string_to_sign (kms_request_t *request) + kms_request_str_append_chars (sts, "/aws4_request\n", -1); + + creq = kms_request_str_wrap (kms_request_get_canonical (request), -1); ++ if (!creq) { ++ goto done; ++ } ++ + if (!kms_request_str_append_hashed (&request->crypto, sts, creq)) { + goto done; + } +diff --git a/src/third_party/kms-message/src/kms_request_str.c b/src/third_party/kms-message/src/kms_request_str.c +index 0f7c19c972..65207d2f4f 100644 +--- a/src/third_party/kms-message/src/kms_request_str.c ++++ b/src/third_party/kms-message/src/kms_request_str.c +@@ -51,10 +51,13 @@ kms_request_str_t * + kms_request_str_new (void) + { + kms_request_str_t *s = malloc (sizeof (kms_request_str_t)); ++ KMS_ASSERT (s); + + s->len = 0; + s->size = 16; + s->str = malloc (s->size); ++ KMS_ASSERT (s->str); ++ + s->str[0] = '\0'; + + return s; +@@ -64,11 +67,15 @@ kms_request_str_t * + kms_request_str_new_from_chars (const char *chars, ssize_t len) + { + kms_request_str_t *s = malloc (sizeof (kms_request_str_t)); ++ KMS_ASSERT (s); ++ + size_t actual_len; + + actual_len = len < 0 ? strlen (chars) : (size_t) len; + s->size = actual_len + 1; + s->str = malloc (s->size); ++ KMS_ASSERT (s->str); ++ + memcpy (s->str, chars, actual_len); + s->str[actual_len] = '\0'; + s->len = actual_len; +@@ -86,6 +93,8 @@ kms_request_str_wrap (char *chars, ssize_t len) + } + + s = malloc (sizeof (kms_request_str_t)); ++ KMS_ASSERT (s); ++ + + s->str = chars; + s->len = len < 0 ? strlen (chars) : (size_t) len; +@@ -148,8 +157,10 @@ kms_request_str_t * + kms_request_str_dup (kms_request_str_t *str) + { + kms_request_str_t *dup = malloc (sizeof (kms_request_str_t)); ++ KMS_ASSERT (dup); ++ + +- dup->str = strndup (str->str, str->len); ++ dup->str = kms_strndup (str->str, str->len); + dup->len = str->len; + dup->size = str->len + 1; + +diff --git a/src/third_party/kms-message/src/kms_request_str.h b/src/third_party/kms-message/src/kms_request_str.h +index f053a595aa..0898f59067 100644 +--- a/src/third_party/kms-message/src/kms_request_str.h ++++ b/src/third_party/kms-message/src/kms_request_str.h +@@ -25,11 +25,6 @@ + #include <stdint.h> + #include <string.h> + +-#if defined(_WIN32) +-#include <basetsd.h> +-typedef SSIZE_T ssize_t; +-#endif // _WIN32 +- + typedef struct { + char *str; + size_t len; +diff --git a/src/third_party/kms-message/src/kms_response_parser.c b/src/third_party/kms-message/src/kms_response_parser.c +index 31e4868a68..6f86fac854 100644 +--- a/src/third_party/kms-message/src/kms_response_parser.c ++++ b/src/third_party/kms-message/src/kms_response_parser.c +@@ -1,7 +1,7 @@ + #include "kms_message/kms_response_parser.h" + #include "kms_message_private.h" + +-#include "kms_message_private.h" ++#include <errno.h> + #include <limits.h> + #include <stdio.h> + #include <stdlib.h> +@@ -24,6 +24,7 @@ _parser_init (kms_response_parser_t *parser) + parser->raw_response = kms_request_str_new (); + parser->content_length = -1; + parser->response = calloc (1, sizeof (kms_response_t)); ++ KMS_ASSERT (parser->response); + parser->response->headers = kms_kv_list_new (); + parser->state = PARSING_STATUS_LINE; + parser->start = 0; +@@ -34,6 +35,8 @@ kms_response_parser_t * + kms_response_parser_new (void) + { + kms_response_parser_t *parser = malloc (sizeof (kms_response_parser_t)); ++ KMS_ASSERT (parser); ++ + _parser_init (parser); + return parser; + } +@@ -59,11 +62,26 @@ static bool + _parse_int (const char *str, int *result) + { + char *endptr = NULL; ++ int64_t long_result; + +- *result = (int) strtol (str, &endptr, 10); +- if (*endptr) { ++ errno = 0; ++ long_result = strtol (str, &endptr, 10); ++ if (endptr == str) { ++ /* No digits were parsed. Consider this an error */ ++ return false; ++ } ++ if (endptr != NULL && *endptr != '\0') { ++ /* endptr points to the first invalid character. */ ++ return false; ++ } ++ if (errno == EINVAL || errno == ERANGE) { ++ return false; ++ } ++ if (long_result > INT32_MAX || long_result < INT32_MIN) { + return false; + } ++ *result = (int) long_result; ++ + return true; + } + +@@ -72,6 +90,8 @@ static bool + _parse_int_from_view (const char *str, int start, int end, int *result) + { + char *num_str = malloc (end - start + 1); ++ KMS_ASSERT (num_str); ++ + bool ret; + + strncpy (num_str, str + start, end - start); +diff --git a/src/third_party/scripts/kms_message_get_sources.sh b/src/third_party/scripts/kms_message_get_sources.sh +index 6ad2fbb0e6..52ce21b9dd 100755 +--- a/src/third_party/scripts/kms_message_get_sources.sh ++++ b/src/third_party/scripts/kms_message_get_sources.sh +@@ -18,7 +18,7 @@ if grep -q Microsoft /proc/version; then + fi + + NAME=libmongocrypt +-REVISION=59c8c17bbdfa1cf0fdec60cfdde73a437a868221 ++REVISION=052f7fc610f0cea83a2adf3dd263a5ff04833371 + + if grep -q Microsoft /proc/version; then + SRC_ROOT=$(wslpath -u $(powershell.exe -Command "Get-ChildItem Env:TEMP | Get-Content | Write-Host")) +-- +2.24.0 + diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-stacktrace-Define-ARCH_BITS-for-x86.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-stacktrace-Define-ARCH_BITS-for-x86.patch new file mode 100644 index 000000000..a92883516 --- /dev/null +++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-stacktrace-Define-ARCH_BITS-for-x86.patch @@ -0,0 +1,29 @@ +From efd79bda1b85a5a4398a71e5ea2bc00ee4b0ea46 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 15 Sep 2020 18:20:27 -0700 +Subject: [PATCH] stacktrace: Define ARCH_BITS for x86 + +stacktrace_somap.cpp:92:33: error: 'ELFCLASSARCH_BITS' was not declared in this scope + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/mongo/util/stacktrace_somap.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/mongo/util/stacktrace_somap.cpp b/src/mongo/util/stacktrace_somap.cpp +index f7ba66a142..2231948ce8 100644 +--- a/src/mongo/util/stacktrace_somap.cpp ++++ b/src/mongo/util/stacktrace_somap.cpp +@@ -83,7 +83,7 @@ void addUnameToSoMap(BSONObjBuilder* soMap) { + #define ARCH_BITS __ELF_NATIVE_CLASS + #elif defined(__x86_64__) || defined(__aarch64__) + #define ARCH_BITS 64 +-#elif defined(__arm__) ++#elif defined(__i386__) || defined(__arm__) + #define ARCH_BITS 32 + #else + #error Unknown target architecture. +-- +2.28.0 + diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch index 869d2849d..57f4168f5 100644 --- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch +++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch @@ -1,4 +1,4 @@ -From 73c6374ceb0c062e91210cc9ef3e0e9fa30ee514 Mon Sep 17 00:00:00 2001 +From 28f34191eef1e70c24d2f81b66e4dd40dbefcd35 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Sat, 2 Sep 2017 12:42:30 -0700 Subject: [PATCH 04/10] Add a definition for the macro __ELF_NATIVE_CLASS @@ -6,17 +6,18 @@ Subject: [PATCH 04/10] Add a definition for the macro __ELF_NATIVE_CLASS It depends on the native arch's word size. Signed-off-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com> --- src/mongo/util/stacktrace_posix.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/mongo/util/stacktrace_posix.cpp b/src/mongo/util/stacktrace_posix.cpp -index 1d7b3d7..f81e329 100644 +index 531e21bdc2..fa611499e4 100644 --- a/src/mongo/util/stacktrace_posix.cpp +++ b/src/mongo/util/stacktrace_posix.cpp -@@ -39,6 +39,15 @@ +@@ -42,6 +42,15 @@ + #include <iostream> #include <string> - #include <sys/utsname.h> +#if !defined(__GLIBC__) +#if defined __x86_64__ && !defined __ILP32__ @@ -28,8 +29,8 @@ index 1d7b3d7..f81e329 100644 +#endif + #include "mongo/base/init.h" + #include "mongo/bson/json.h" #include "mongo/config.h" - #include "mongo/db/jsobj.h" -- -2.7.4 +2.24.0 diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch index 3a27aacfe..910ef0b5f 100644 --- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch +++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch @@ -2,7 +2,7 @@ Index: git/SConstruct =================================================================== --- git.orig/SConstruct +++ git/SConstruct -@@ -884,6 +884,14 @@ env_vars.Add('WINDOWS_OPENSSL_BIN', +@@ -977,6 +977,14 @@ env_vars.Add('WINDOWS_OPENSSL_BIN', help='Sets the path to the openssl binaries for packaging', default='c:/openssl/bin') diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch index ae84bcb56..e4ae30776 100644 --- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch +++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch @@ -15,15 +15,16 @@ src/mongo/util/net/ssl_manager.cpp:575:79: error: invalid conversion from 'size_ if (mongoUnsignedAddOverflow64(tagAndLengthByteCount, derLength, outLength) || Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> +Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com> --- src/mongo/util/net/ssl_manager.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mongo/util/net/ssl_manager.cpp b/src/mongo/util/net/ssl_manager.cpp -index b93ebe84a4a3..3511eb5d998f 100644 +index 455a1662a5..e8497bc0d1 100644 --- a/src/mongo/util/net/ssl_manager.cpp +++ b/src/mongo/util/net/ssl_manager.cpp -@@ -782,7 +782,7 @@ class DERToken { +@@ -810,7 +810,7 @@ public: * * Returns a DERToken which consists of the (tag, length, value) tuple. */ @@ -32,7 +33,7 @@ index b93ebe84a4a3..3511eb5d998f 100644 private: DERType _type{DERType::EndOfContent}; -@@ -799,7 +799,7 @@ struct DataType::Handler<DERToken> { +@@ -827,7 +827,7 @@ struct DataType::Handler<DERToken> { size_t length, size_t* advanced, std::ptrdiff_t debug_offset) { @@ -41,7 +42,7 @@ index b93ebe84a4a3..3511eb5d998f 100644 auto swPair = DERToken::parse(ConstDataRange(ptr, length), &outLength); -@@ -844,7 +844,7 @@ StatusWith<std::string> readDERString(ConstDataRangeCursor& cdc) { +@@ -889,7 +889,7 @@ StatusWith<DERInteger> readDERInt(ConstDataRangeCursor& cdc) { } @@ -50,3 +51,6 @@ index b93ebe84a4a3..3511eb5d998f 100644 const size_t kTagLength = 1; const size_t kTagLengthAndInitialLengthByteLength = kTagLength + 1; +-- +2.24.0 + diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch index 15bd7da70..1a7bf0fc5 100644 --- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch +++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch @@ -1,4 +1,4 @@ -From c9fc9e9a44b0fb764ce86a5e57f17d3c5bbfd8cd Mon Sep 17 00:00:00 2001 +From 298d958148f1fb2bb7725fed15c68c09677c14c9 Mon Sep 17 00:00:00 2001 From: Vincent Prince <vincent.prince.fr@gmail.com> Date: Mon, 16 Sep 2019 13:37:10 +0200 Subject: [PATCH 05/10] Add alises for arm64 which is same as aarch64 @@ -12,10 +12,10 @@ Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com> 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/SConstruct b/SConstruct -index e63cf15..5593c78 100644 +index 448939bdd0..abfd816f3e 100644 --- a/SConstruct +++ b/SConstruct -@@ -1129,6 +1129,7 @@ elif endian == "big": +@@ -1228,6 +1228,7 @@ if endian == "auto": processor_macros = { 'arm' : { 'endian': 'little', 'defines': ('__arm__',) }, 'aarch64' : { 'endian': 'little', 'defines': ('__arm64__', '__aarch64__')}, @@ -24,10 +24,10 @@ index e63cf15..5593c78 100644 'ppc64le' : { 'endian': 'little', 'defines': ('__powerpc64__',)}, 's390x' : { 'endian': 'big', 'defines': ('__s390x__',)}, diff --git a/src/third_party/IntelRDFPMathLib20U1/SConscript b/src/third_party/IntelRDFPMathLib20U1/SConscript -index f23c071..fb82cd6 100644 +index 58e1b7ba65..bffe83b462 100644 --- a/src/third_party/IntelRDFPMathLib20U1/SConscript +++ b/src/third_party/IntelRDFPMathLib20U1/SConscript -@@ -308,7 +308,7 @@ if processor == 'i386' or processor == 'emscripten': +@@ -309,7 +309,7 @@ if processor == 'i386' or processor == 'emscripten': elif processor == 'arm': cpp_defines['IA32'] = '1' cpp_defines['ia32'] = '1' @@ -37,7 +37,7 @@ index f23c071..fb82cd6 100644 cpp_defines['EFI2'] = '1' # Using 64 bit little endian diff --git a/src/third_party/wiredtiger/SConscript b/src/third_party/wiredtiger/SConscript -index cdd090b..97a1b3b 100644 +index d6bd665e23..2f1e656a19 100644 --- a/src/third_party/wiredtiger/SConscript +++ b/src/third_party/wiredtiger/SConscript @@ -152,7 +152,7 @@ condition_map = { @@ -50,5 +50,5 @@ index cdd090b..97a1b3b 100644 'X86_HOST' : env['TARGET_ARCH'] == 'x86_64', 'ZSERIES_HOST' : env['TARGET_ARCH'] == 's390x', -- -2.7.4 +2.24.0 diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb index 58841ef31..a15349848 100644 --- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb +++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb @@ -9,12 +9,13 @@ DEPENDS = "openssl libpcap zlib boost curl python3 \ python3-psutil-native python3-regex-native \ " -inherit scons dos2unix siteinfo python3native +inherit scons dos2unix siteinfo python3native systemd useradd -PV = "4.2.2" -#v4.2.2 -SRCREV = "a0bbbff6ada159e19298d37946ac8dc4b497eadf" -SRC_URI = "git://github.com/mongodb/mongo.git;branch=v4.2 \ +PV = "4.4.1" +#v4.4.1 +SRCREV = "ad91a93a5a31e175f5cbf8c69561e788bbc55ce1" +SRC_URI = "git://github.com/mongodb/mongo.git;branch=v4.4 \ + file://0001-kms-message-bump-libmongocrypto-to-v1.0.4.patch \ 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 \ @@ -24,6 +25,8 @@ SRC_URI = "git://github.com/mongodb/mongo.git;branch=v4.2 \ 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 \ " SRC_URI_append_libc-musl ="\ file://0001-Mark-one-of-strerror_r-implementation-glibc-specific.patch \ @@ -35,6 +38,7 @@ SRC_URI_append_toolchain-clang = "\ file://0001-asio-Dont-use-experimental-with-clang.patch \ " + S = "${WORKDIR}/git" COMPATIBLE_HOST ?= '(x86_64|i.86|powerpc64|arm|aarch64).*-linux' @@ -51,26 +55,65 @@ PACKAGECONFIG[tcmalloc] = "--use-system-tcmalloc,--allocator=system,gperftools," PACKAGECONFIG[shell] = ",--js-engine=none,," PACKAGECONFIG[system-pcre] = "--use-system-pcre,,libpcre," -EXTRA_OESCONS = "--prefix=${D}${prefix} \ +EXTRA_OESCONS = "PREFIX=${prefix} \ + DESTDIR=${D} \ LIBPATH=${STAGING_LIBDIR} \ LINKFLAGS='${LDFLAGS}' \ CXXFLAGS='${CXXFLAGS}' \ TARGET_ARCH=${TARGET_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=${@['off','on'][d.getVar('SITEINFO_BITS') != '32']} \ - ${PACKAGECONFIG_CONFARGS} \ - core" + --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} || \ + ${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} ${EXTRA_OESCONS} install-core || \ die "scons build execution failed." } scons_do_install() { - ${STAGING_BINDIR_NATIVE}/scons install ${EXTRA_OESCONS}|| \ - die "scons install execution failed." + # 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}/${i} + 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 ${PN}:${PN} ${D}${localstatedir}/lib/${BPN} + + # Log files + install -m 755 -d ${D}${localstatedir}/log/${BPN} + chown ${PN}:${PN} ${D}${localstatedir}/log/${BPN} } + +CONFFILES_${PN} = "${sysconfdir}/mongod.conf" + +SYSTEMD_SERVICE_${PN} = "mongod.service" + + |