summaryrefslogtreecommitdiffstats
path: root/meta-openembedded
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2019-04-08 15:21:03 -0400
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2019-04-08 15:21:12 -0400
commit34ae60030e520db4235f13b99849052e594fde7b (patch)
treef672a23d5bf8d8cf74737e80a304c55766a7d596 /meta-openembedded
parent4e3797a177a8edd3909ab428353e5186447b8312 (diff)
downloadtalos-openbmc-34ae60030e520db4235f13b99849052e594fde7b.tar.gz
talos-openbmc-34ae60030e520db4235f13b99849052e594fde7b.zip
meta-openembedded: refresh master: 0435c9e193..4a9deabbc8
Update meta-openembedded to master HEAD. Alistair Francis (7): python3-pyaudio: Initial commit python3-pyfann2: Initial commit python3-pocketsphinx: Initial commit python3-xxhash: Initial commit mycroft: Initial commit libfann: Initial commit python-cryptography: Bump from 2.4.1 to 2.6.1 Andreas Müller (10): xfce4-screenshooter: upgrade 1.9.4 -> 1.9.5 networkmanager: Fix upstream regex for 1.16 networkmanager: fix build with musl gvfs: fix configure options and DDEPENDS rrdtool: fix build by disabling docs libpeas: rework gobject-introspection handling gvfs: Fix missing executable permission flags for files in libexec gnome-desktop3: remove gconf from DEPENDS gnome-desktop3: rework gobject-introspection handling gnome-desktop3: Disable libseccomp for all archs Brad Bishop (1): libvncserver: enable split client/server packages Fabio Berton (1): python*-requests: Update 2.20.1 -> 2.21.0 Gianfranco Costamagna (2): cpprest: fix build failure on 32bit systems, with upstream merged patch libmodbus: start to prefer version 3.1.4 as default Hongxu Jia (1): dracut: fix udevdir not found Khem Raj (5): ncmpc: Rename artist_screen to library_screen networkmanager: Fix build with clang alsa-oss: Upgrade to 1.1.8 redis: Fix ocasional parallel build failure lcdproc: Fix parallel build Nikolay Nizov (2): android-tools-conf: fix typo android-tools-conf: Make sure /dev/pts/0 exists Oleksandr Kravchuk (2): fping: update to 4.2 nuttcp: update to 7.3.3 Peter Kjellerstedt (1): doxygen: Make it build with ninja 1.9.0 Qi.Chen@windriver.com (2): openldap: add missing CVE tag to patch ipsec-tools: add missing CVE tags to patches Randy MacLeod (2): imagemagic: upgrade to 7.0.8-35 wolfssl: update to 3.15.8 and use github SRC_URI Slater, Joseph (1): tcpreplay: update to version 4.3.2 Vincent Prince (4): Rsyslog: Add mmjsonparse to PACKAGECONFIG zeromq: bump version 4.2.5 => 4.3.1 cppzmq: bump version 4.2.3 => 4.3.0 czmq: bump version 4.1.1 => 4.2.0 Yi Zhao (3): python-engineio: add recipe python-socketio: add recipe python-flask-socketio Zang Ruochen (4): augeas: upgrade 1.10.1 -> 1.11.0 libedit: upgrade 20181209-3.1 -> 20190324-3.1 mcelog: upgrade 161 -> 162 lockfile-progs: upgrade 0.1.17 -> 0.1.18 leimaohui (1): Fix build error for armeb. Change-Id: Ie79748c484bcf4fd28b3bde84e2194044e1c08a8 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'meta-openembedded')
-rw-r--r--meta-openembedded/meta-demo/recipes-devtools/python/python-engineio.inc13
-rw-r--r--meta-openembedded/meta-demo/recipes-devtools/python/python-engineio_3.5.0.bb2
-rw-r--r--meta-openembedded/meta-demo/recipes-devtools/python/python-flask-socketio.inc18
-rw-r--r--meta-openembedded/meta-demo/recipes-devtools/python/python-flask-socketio_3.3.2.bb2
-rw-r--r--meta-openembedded/meta-demo/recipes-devtools/python/python-socketio.inc17
-rw-r--r--meta-openembedded/meta-demo/recipes-devtools/python/python-socketio_4.0.0.bb2
-rw-r--r--meta-openembedded/meta-demo/recipes-devtools/python/python3-engineio_3.5.0.bb2
-rw-r--r--meta-openembedded/meta-demo/recipes-devtools/python/python3-flask-socketio_3.3.2.bb2
-rw-r--r--meta-openembedded/meta-demo/recipes-devtools/python/python3-socketio_4.0.0.bb2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch40
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.32.0.bb13
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.40.0.bb14
-rw-r--r--meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut/0001-dracut.sh-improve-udevdir.patch39
-rw-r--r--meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb1
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.33.bb4
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch192
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-pip-requirements-Remove-ones-installed-by-OE.patch62
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-Use-python3-and-pip3-instead-of-python-and-pip.patch135
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Remove-the-git-dependency.patch48
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-dev_setup.sh-Remove-the-test-setup-dependency.patch31
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/dev_opts.json1
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service11
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service13
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.2.2.bb73
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-dlopen-failure.patch (renamed from meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-dlopen-configure-ac.patch)9
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch54
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-Fix-build-with-musl.patch351
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch37
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-basic.patch56
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-network-support.patch71
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-musl-process-util.patch60
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0007-musl-avoid-further-conflicts-by-including-net-ethern.patch75
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0008-Add-a-strndupa-replacement-for-musl.patch45
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.0.bb13
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.15.8.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.15.7.bb)6
-rw-r--r--meta-openembedded/meta-networking/recipes-support/fping/fping_4.2.bb (renamed from meta-openembedded/meta-networking/recipes-support/fping/fping_3.5.bb)6
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2015-4047.patch2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/nuttcp/nuttcp_7.3.3.bb (renamed from meta-openembedded/meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb)9
-rw-r--r--meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.3.2.bb (renamed from meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.2.6.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.12.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/zeromq/czmq_4.2.0.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/zeromq/czmq_4.1.1.bb)18
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/0001-Problem-out-of-date-with-zproject.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.2.5.bb32
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.1.bb26
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools-conf/android-gadget-setup5
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.15.bb9
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20190324-3.1.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20181209-3.1.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc/0001-Fix-parallel-build-fix-port-internal-make-dependenci.patch33
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.4.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb (renamed from meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.17.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.12.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.0.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.1903.0.bb5
-rw-r--r--meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.22.0.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_git.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch32
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.8.bb (renamed from meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.6.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.10.1.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.11.0.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/1094.patch307
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/revert-9b670e5b33dfdbd501d618cd7e7498148ffbd559.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/revert-f10d9f8e214516d2c19aa6ef831ee874a58c0479.patch1557
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.12.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.8.bb (renamed from meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb)8
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libfann/libfann_git.bb17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_162.bb (renamed from meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_161.bb)0
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.6.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.4.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.6.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.4.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-fann2.inc9
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pocketsphinx.inc9
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyaudio.inc13
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.21.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.20.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-xxhash.inc7
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.6.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.4.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.6.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.4.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-fann2/0001-setup.py-Don-t-hardcode-swig-and-fann2-binary-locati.patch28
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pocketsphinx_0.1.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyaudio_0.2.11.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.21.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.20.1.bb)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_1.3.0.bb2
-rw-r--r--meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.5.bb (renamed from meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.4.bb)4
89 files changed, 1652 insertions, 2136 deletions
diff --git a/meta-openembedded/meta-demo/recipes-devtools/python/python-engineio.inc b/meta-openembedded/meta-demo/recipes-devtools/python/python-engineio.inc
new file mode 100644
index 000000000..c399d7dda
--- /dev/null
+++ b/meta-openembedded/meta-demo/recipes-devtools/python/python-engineio.inc
@@ -0,0 +1,13 @@
+SUMMARY = "Engine.IO server"
+HOMEPAGE = "https://github.com/miguelgrinberg/python-engineio/"
+SECTION = "devel/python"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=42d0a9e728978f0eeb759c3be91536b8"
+
+inherit pypi
+
+PYPI_PACKAGE = "python-engineio"
+
+SRC_URI[md5sum] = "011a61f1ee84755043cf862c8cc24f21"
+SRC_URI[sha256sum] = "b2756ce53076163eb24f59c1d1a903ac72f071ad4fb7b3ef6dab1b1b9ae9a44f"
diff --git a/meta-openembedded/meta-demo/recipes-devtools/python/python-engineio_3.5.0.bb b/meta-openembedded/meta-demo/recipes-devtools/python/python-engineio_3.5.0.bb
new file mode 100644
index 000000000..7dd6ec0e0
--- /dev/null
+++ b/meta-openembedded/meta-demo/recipes-devtools/python/python-engineio_3.5.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-engineio.inc
diff --git a/meta-openembedded/meta-demo/recipes-devtools/python/python-flask-socketio.inc b/meta-openembedded/meta-demo/recipes-devtools/python/python-flask-socketio.inc
new file mode 100644
index 000000000..251d13ede
--- /dev/null
+++ b/meta-openembedded/meta-demo/recipes-devtools/python/python-flask-socketio.inc
@@ -0,0 +1,18 @@
+SUMMARY = "Socket.IO integration for Flask applications"
+HOMEPAGE = "https://github.com/miguelgrinberg/Flask-SocketIO/"
+SECTION = "devel/python"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=38cc21254909604298ce763a6e4440a0"
+
+inherit pypi
+
+PYPI_PACKAGE = "Flask-SocketIO"
+
+SRC_URI[md5sum] = "298965a43f6534e8a5b24d1ba1fc4186"
+SRC_URI[sha256sum] = "8d8f9f104db5ddff1b06ba322d8e158881d590144199c993fe26cf53218c7edd"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-flask \
+ ${PYTHON_PN}-socketio \
+ "
diff --git a/meta-openembedded/meta-demo/recipes-devtools/python/python-flask-socketio_3.3.2.bb b/meta-openembedded/meta-demo/recipes-devtools/python/python-flask-socketio_3.3.2.bb
new file mode 100644
index 000000000..3b9ad33bb
--- /dev/null
+++ b/meta-openembedded/meta-demo/recipes-devtools/python/python-flask-socketio_3.3.2.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-flask-socketio.inc
diff --git a/meta-openembedded/meta-demo/recipes-devtools/python/python-socketio.inc b/meta-openembedded/meta-demo/recipes-devtools/python/python-socketio.inc
new file mode 100644
index 000000000..a23e78079
--- /dev/null
+++ b/meta-openembedded/meta-demo/recipes-devtools/python/python-socketio.inc
@@ -0,0 +1,17 @@
+SUMMARY = "Socket.IO server"
+HOMEPAGE = "https://github.com/miguelgrinberg/python-socketio/"
+SECTION = "devel/python"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=42d0a9e728978f0eeb759c3be91536b8"
+
+inherit pypi
+
+PYPI_PACKAGE = "python-socketio"
+
+SRC_URI[md5sum] = "0b57da61a9464d2e0dc9a8d0164d86d2"
+SRC_URI[sha256sum] = "64feb0817f1bf7e3e7fc05f6f65e28d76146d8061cb7de25b63502717f80e908"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-engineio \
+ "
diff --git a/meta-openembedded/meta-demo/recipes-devtools/python/python-socketio_4.0.0.bb b/meta-openembedded/meta-demo/recipes-devtools/python/python-socketio_4.0.0.bb
new file mode 100644
index 000000000..e25a6b368
--- /dev/null
+++ b/meta-openembedded/meta-demo/recipes-devtools/python/python-socketio_4.0.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-socketio.inc
diff --git a/meta-openembedded/meta-demo/recipes-devtools/python/python3-engineio_3.5.0.bb b/meta-openembedded/meta-demo/recipes-devtools/python/python3-engineio_3.5.0.bb
new file mode 100644
index 000000000..028d1104a
--- /dev/null
+++ b/meta-openembedded/meta-demo/recipes-devtools/python/python3-engineio_3.5.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-engineio.inc
diff --git a/meta-openembedded/meta-demo/recipes-devtools/python/python3-flask-socketio_3.3.2.bb b/meta-openembedded/meta-demo/recipes-devtools/python/python3-flask-socketio_3.3.2.bb
new file mode 100644
index 000000000..ffc4aa7fd
--- /dev/null
+++ b/meta-openembedded/meta-demo/recipes-devtools/python/python3-flask-socketio_3.3.2.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-flask-socketio.inc
diff --git a/meta-openembedded/meta-demo/recipes-devtools/python/python3-socketio_4.0.0.bb b/meta-openembedded/meta-demo/recipes-devtools/python/python3-socketio_4.0.0.bb
new file mode 100644
index 000000000..ce83d09c0
--- /dev/null
+++ b/meta-openembedded/meta-demo/recipes-devtools/python/python3-socketio_4.0.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-socketio.inc
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch
new file mode 100644
index 000000000..e93d5b674
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch
@@ -0,0 +1,40 @@
+From de0d33b068a5d8e61cc0c82d88d15b9a8aa97977 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sat, 6 Apr 2019 18:07:17 +0200
+Subject: [PATCH] meson.build: Disable libseccomp for all archs
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It does not seem mandatory and can cause unsatisfied dependency [1].
+
+[1] https://errors.yoctoproject.org/Errors/Details/235565/
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ meson.build | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 83407b4..80eab84 100644
+--- a/meson.build
++++ b/meson.build
+@@ -53,12 +53,7 @@ udev_dep = dependency('libudev', required: get_option('udev'))
+ host_os = host_machine.system()
+ host_cpu = host_machine.cpu()
+ supported_os = ['linux']
+-unsupported_cpus = ['alpha', 'ia64', 'm68k', 'sh4', 'sparc', 'sparc64']
+-if supported_os.contains(host_os) and not unsupported_cpus.contains(host_cpu)
+- seccomp_dep = dependency('libseccomp')
+-else
+- seccomp_dep = dependency('', required: false)
+-endif
++seccomp_dep = dependency('', required: false)
+ fontconfig_cache_path = fontconfig_dep.get_pkgconfig_variable('cachedir')
+
+ xkb_base = xkb_config_dep.get_pkgconfig_variable('xkb_base')
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.32.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.32.0.bb
index 185a25359..ffd7dcea4 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.32.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.32.0.bb
@@ -8,14 +8,21 @@ BPN = "gnome-desktop"
GNOMEBASEBUILDCLASS = "meson"
-inherit gnome pkgconfig upstream-version-is-even gobject-introspection
+inherit gnome pkgconfig upstream-version-is-even gobject-introspection distro_features_check
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+UNKNOWN_CONFIGURE_WHITELIST_append = " introspection"
SRC_URI[archive.md5sum] = "e423ed6d648c6c4f9798fa9cd9ea8d99"
SRC_URI[archive.sha256sum] = "a6393dc5fc29fc0652ac84c73b3da205d0b0168128c4cf6d27797a08f3d07b54"
-SRC_URI += "file://gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch"
+SRC_URI += " \
+ file://gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch \
+ file://0001-meson.build-Disable-libseccomp-for-all-archs.patch \
+"
-DEPENDS += "itstool-native gsettings-desktop-schemas gconf virtual/libx11 gtk+3 glib-2.0 startup-notification xkeyboard-config iso-codes udev"
+DEPENDS += "itstool-native gsettings-desktop-schemas virtual/libx11 gtk+3 startup-notification xkeyboard-config iso-codes udev"
inherit distro_features_check gtk-doc
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.40.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.40.0.bb
index 7f239c413..df9fd50ea 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.40.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.40.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=05df38dd77c35ec8431f212410a3329e"
GNOMEBASEBUILDCLASS = "meson"
inherit gnome bash-completion gettext upstream-version-is-even
-DEPENDS += "libsecret glib-2.0 gconf intltool-native libgudev udisks2 polkit shadow-native"
+DEPENDS += "libsecret glib-2.0 gconf libgudev udisks2 polkit shadow-native"
SRC_URI = "https://download.gnome.org/sources/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.xz;name=archive"
@@ -15,12 +15,10 @@ SRC_URI[archive.sha256sum] = "3739d64b79c95a9f0f9faf2c5f9e5298b4b2ebdd6431435ce6
EXTRA_OEMESON = " \
-Dbluray=false \
- -Dgdu=false \
-Dgoa=false \
-Dgoogle=false \
-Dnfs=false \
-Dudisks2=true \
- -Ddocumentation=false \
"
PACKAGES =+ "gvfsd-ftp gvfsd-sftp gvfsd-trash"
@@ -63,8 +61,16 @@ PACKAGECONFIG[fuse] = "-Dfuse=true, -Dfuse=false, fuse"
# libcdio-paranoia recipe doesn't exist yet
PACKAGECONFIG[cdda] = "-Dcdda=true, -Dcdda=false, libcdio-paranoia"
-# Fix up permissions on polkit rules.d to work with rpm4 constraints
do_install_append() {
+ # Fix up permissions on polkit rules.d to work with rpm4 constraints
chmod 700 ${D}/${datadir}/polkit-1/rules.d
chown polkitd:root ${D}/${datadir}/polkit-1/rules.d
+
+ # After rebuilds (not from scracth) it can happen that the executables in
+ # libexec ar missing executable permission flag. Not sure but it came up
+ # during transition to meson. Looked into build files and logs but could
+ # not find suspicious
+ for exe in `find ${D}/${libexec}`; do
+ chmod +x $exe
+ done
}
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut/0001-dracut.sh-improve-udevdir.patch b/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut/0001-dracut.sh-improve-udevdir.patch
new file mode 100644
index 000000000..06e0a094f
--- /dev/null
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut/0001-dracut.sh-improve-udevdir.patch
@@ -0,0 +1,39 @@
+From 974f728410052bc8fa18d93dc0c1a991bcdb96e6 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 3 Apr 2019 15:24:47 +0800
+Subject: [PATCH] dracut.sh: improve udevdir
+
+In commit [9d1b81c dracut.sh: improve udevdir and systemdutildir
+fallback logic], it checked a common binary `collect' to localte
+udevdir.
+
+But upstream systemd drop binary `collect'.
+[https://github.com/systemd/systemd/commit/a168792c2d95695fd30c0371d4b3890a9df1eafb]
+
+So check binary `ata_id' to instead.
+
+Upstream-Status: Submitted [https://github.com/dracutdevs/dracut/pull/558]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ dracut.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/dracut.sh b/dracut.sh
+index 3dc2adc..cc8b01a 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -1311,8 +1311,8 @@ done
+ [[ -d $udevdir ]] \
+ || udevdir="$(pkg-config udev --variable=udevdir 2>/dev/null)"
+ if ! [[ -d "$udevdir" ]]; then
+- [[ -e /lib/udev/collect ]] && udevdir=/lib/udev
+- [[ -e /usr/lib/udev/collect ]] && udevdir=/usr/lib/udev
++ [[ -e /lib/udev/ata_id ]] && udevdir=/lib/udev
++ [[ -e /usr/lib/udev/ata_id ]] && udevdir=/usr/lib/udev
+ fi
+
+ [[ -d $systemdutildir ]] \
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb b/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb
index dd2e8bbb3..344dfecbb 100644
--- a/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb
@@ -12,6 +12,7 @@ PV = "049"
SRCREV = "225e4b94cbdb702cf512490dcd2ad9ca5f5b22c1"
SRC_URI = "git://git.kernel.org/pub/scm/boot/dracut/dracut.git;protocol=http \
file://0001-util.h-include-sys-reg.h-when-libc-glibc.patch \
+ file://0001-dracut.sh-improve-udevdir.patch \
"
DEPENDS += "kmod"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.33.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.33.bb
index 8468d125d..d4ebe1769 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.33.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.33.bb
@@ -11,7 +11,7 @@ DEPENDS += " \
libmpdclient \
"
-PACKAGECONFIG ??= "colors locale mouse nls regex help_screen artist_screen search_screen song_screen key_screen lyrics_screen outputs_screen"
+PACKAGECONFIG ??= "colors locale mouse nls regex help_screen library_screen search_screen song_screen key_screen lyrics_screen outputs_screen"
PACKAGECONFIG[colors] = "-Dcolors=true,-Dcolors=false"
PACKAGECONFIG[lirc] = "-Dlirc=enabled,-Dlirc=disabled,lirc"
@@ -22,7 +22,7 @@ PACKAGECONFIG[nls] = "-Dnls=enabled,-Dnls=disabled,gettext-native"
PACKAGECONFIG[regex] = "-Dregex=enabled,-Dregex=disabled,pcre"
PACKAGECONFIG[help_screen] = "-Dhelp_screen=true,-Dhelp_screen=false"
-PACKAGECONFIG[artist_screen] = "-Dartist_screen=true,-Dartist_screen=false"
+PACKAGECONFIG[library_screen] = "-Dlibrary_screen=true,-Dlibrary_screen=false"
PACKAGECONFIG[search_screen] = "-Dsearch_screen=true,-Dsearch_screen=false"
PACKAGECONFIG[song_screen] = "-Dsong_screen=true,-Dsong_screen=false"
PACKAGECONFIG[key_screen] = "-Dkey_screen=true,-Dkey_screen=false"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch
new file mode 100644
index 000000000..c03bccd3d
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch
@@ -0,0 +1,192 @@
+From 6272f36080bd440a5825b526f4c06223c5bb9fbb Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Mon, 18 Mar 2019 16:30:45 -0700
+Subject: [PATCH 1/5] Remove python venv
+
+Remove the python venv requirements and instead just use the native
+python and pip pacakges.
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [embedded specific]
+---
+ dev_setup.sh | 36 ------------------------------------
+ start-mycroft.sh | 13 -------------
+ venv-activate.sh | 44 +-------------------------------------------
+ 3 files changed, 1 insertion(+), 92 deletions(-)
+
+diff --git a/dev_setup.sh b/dev_setup.sh
+index e0b07bf25cf..aed54b2167a 100755
+--- a/dev_setup.sh
++++ b/dev_setup.sh
+@@ -310,18 +310,6 @@ function install_deps() {
+ fi
+ }
+
+-VIRTUALENV_ROOT=${VIRTUALENV_ROOT:-"${TOP}/.venv"}
+-
+-function install_venv() {
+- ${opt_python} -m venv "${VIRTUALENV_ROOT}/" --without-pip
+- # Force version of pip for reproducability, but there is nothing special
+- # about this version. Update whenever a new version is released and
+- # verified functional.
+- curl https://bootstrap.pypa.io/3.3/get-pip.py | "${VIRTUALENV_ROOT}/bin/python" - 'pip==18.0.0'
+- # Function status depending on if pip exists
+- [ -x "${VIRTUALENV_ROOT}/bin/pip" ]
+-}
+-
+ install_deps
+
+ # Configure to use the standard commit template for
+@@ -355,15 +343,7 @@ else
+ fi
+ fi
+
+-if [ ! -x "${VIRTUALENV_ROOT}/bin/activate" ] ; then
+- if ! install_venv ; then
+- echo "Failed to set up virtualenv for mycroft, exiting setup."
+- exit 1
+- fi
+-fi
+-
+ # Start the virtual environment
+-source "${VIRTUALENV_ROOT}/bin/activate"
+ cd "${TOP}"
+
+ # Install pep8 pre-commit hook
+@@ -380,22 +360,6 @@ fi
+
+ PYTHON=$( python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))" )
+
+-# Add mycroft-core to the virtualenv path
+-# (This is equivalent to typing 'add2virtualenv $TOP', except
+-# you can't invoke that shell function from inside a script)
+-VENV_PATH_FILE="${VIRTUALENV_ROOT}/lib/$PYTHON/site-packages/_virtualenv_path_extensions.pth"
+-if [ ! -f "$VENV_PATH_FILE" ] ; then
+- echo "import sys; sys.__plen = len(sys.path)" > "$VENV_PATH_FILE" || return 1
+- echo "import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)" >> "$VENV_PATH_FILE" || return 1
+-fi
+-
+-if ! grep -q "$TOP" $VENV_PATH_FILE ; then
+- echo "Adding mycroft-core to virtualenv path"
+- sed -i.tmp '1 a\
+-'"$TOP"'
+-' "${VENV_PATH_FILE}"
+-fi
+-
+ # install required python modules
+ if ! pip install -r requirements.txt ; then
+ echo "Warning: Failed to install all requirements. Continue? y/N"
+diff --git a/start-mycroft.sh b/start-mycroft.sh
+index b9514a61ba5..64e0216a62f 100755
+--- a/start-mycroft.sh
++++ b/start-mycroft.sh
+@@ -20,7 +20,6 @@ script=${0}
+ script=${script##*/}
+ cd -P "$( dirname "$SOURCE" )"
+ DIR="$( pwd )"
+-VIRTUALENV_ROOT=${VIRTUALENV_ROOT:-"${DIR}/.venv"}
+
+ function help() {
+ echo "${script}: Mycroft command/service launcher"
+@@ -76,19 +75,11 @@ function name-to-script-path() {
+ esac
+ }
+
+-function source-venv() {
+- # Enter Python virtual environment, unless under Docker
+- if [ ! -f "/.dockerenv" ] ; then
+- source ${VIRTUALENV_ROOT}/bin/activate
+- fi
+-}
+-
+ first_time=true
+ function init-once() {
+ if ($first_time) ; then
+ echo "Initializing..."
+ "${DIR}/scripts/prepare-msm.sh"
+- source-venv
+ first_time=false
+ fi
+ }
+@@ -225,15 +216,12 @@ case ${_opt} in
+ # launch-background ${_opt}
+ # ;;
+ "unittest")
+- source-venv
+ pytest test/unittests/ --cov=mycroft "$@"
+ ;;
+ "singleunittest")
+- source-venv
+ pytest "$@"
+ ;;
+ "skillstest")
+- source-venv
+ pytest test/integrationtests/skills/discover_tests.py "$@"
+ ;;
+ "audiotest")
+@@ -243,7 +231,6 @@ case ${_opt} in
+ launch-process ${_opt}
+ ;;
+ "sdkdoc")
+- source-venv
+ cd doc
+ make ${opt}
+ cd ..
+diff --git a/venv-activate.sh b/venv-activate.sh
+index d1e7bcb44e7..10b46d4de3b 100644
+--- a/venv-activate.sh
++++ b/venv-activate.sh
+@@ -22,49 +22,7 @@
+
+ # wrap in function to allow local variables, since this file will be source'd
+ function main() {
+- local quiet=0
+-
+- for arg in "$@"
+- do
+- case $arg in
+- "-q"|"--quiet" )
+- quiet=1
+- ;;
+-
+- "-h"|"--help" )
+- echo "venv-activate.sh: Enter the Mycroft virtual environment"
+- echo "Usage:"
+- echo " source venv-activate.sh"
+- echo "or"
+- echo " . venv-activate.sh"
+- echo ""
+- echo "Options:"
+- echo " -q | --quiet Don't show instructions."
+- echo " -h | --help Show help."
+- return 0
+- ;;
+-
+- *)
+- echo "ERROR: Unrecognized option: $@"
+- return 1
+- ;;
+- esac
+- done
+-
+- if [ "$0" == "$BASH_SOURCE" ] ; then
+- # Prevent running in script then exiting immediately
+- echo "ERROR: Invoke with 'source venv-activate.sh' or '. venv-activate.sh'"
+- else
+- local SRC_DIR="$( builtin cd "$( dirname "${BASH_SOURCE}" )" ; pwd -P )"
+- source ${SRC_DIR}/.venv/bin/activate
+-
+- # Provide an easier to find "mycroft-" prefixed command.
+- unalias mycroft-venv-activate 2>/dev/null
+- alias mycroft-venv-deactivate="deactivate && unalias mycroft-venv-deactivate 2>/dev/null && alias mycroft-venv-activate=\"source '${SRC_DIR}/venv-activate.sh'\""
+- if [ $quiet -eq 0 ] ; then
+- echo "Entering Mycroft virtual environment. Run 'mycroft-venv-deactivate' to exit"
+- fi
+- fi
++ echo "Not entering Python VENV"
+ }
+
+ main $@
+--
+2.21.0
+
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-pip-requirements-Remove-ones-installed-by-OE.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-pip-requirements-Remove-ones-installed-by-OE.patch
new file mode 100644
index 000000000..ca79d00b4
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-pip-requirements-Remove-ones-installed-by-OE.patch
@@ -0,0 +1,62 @@
+From 142bc3912ea9e1a4ecf4db0e2bec3049aa416464 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Tue, 19 Mar 2019 13:32:54 -0700
+Subject: [PATCH 2/5] pip requirements: Remove ones installed by OE
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [embedded specific]
+---
+ requirements.txt | 14 --------------
+ test-requirements.txt | 1 -
+ 2 files changed, 15 deletions(-)
+
+diff --git a/requirements.txt b/requirements.txt
+index 7e4faf48182..29536e990ac 100644
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -1,20 +1,10 @@
+-six==1.10.0
+-requests==2.20.0
+ gTTS==2.0.3
+ gTTS-token==1.1.3
+-PyAudio==0.2.11
+ pyee==5.0.0
+ SpeechRecognition==3.8.1
+-tornado==4.5.3
+ websocket-client==0.54.0
+ requests-futures==0.9.5
+-pyalsaaudio==0.8.2
+ xmlrunner==1.7.7
+-pyserial==3.0
+-psutil==5.2.1
+-pocketsphinx==0.1.0
+-inflection==0.3.1
+-pillow==4.1.1
+ python-dateutil==2.6.0
+ pychromecast==0.7.7
+ python-vlc==1.1.2
+@@ -26,10 +16,6 @@ msm==0.7.3
+ msk==0.3.12
+ adapt-parser==0.3.2
+ padatious==0.4.6
+-fann2==1.0.7
+ padaos==0.1.9
+ precise-runner==0.2.1
+ petact==0.1.2
+-
+-# dev setup tools
+-pep8==1.7.0
+diff --git a/test-requirements.txt b/test-requirements.txt
+index 8ada8157c95..eb4e364a9b4 100644
+--- a/test-requirements.txt
++++ b/test-requirements.txt
+@@ -1,6 +1,5 @@
+ pep8==1.7.0
+ coveralls==1.5.0
+-pytest==3.5.0
+ pytest-cov==2.5.1
+ cov-core==1.15.0
+ mock==2.0.0
+--
+2.21.0
+
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-Use-python3-and-pip3-instead-of-python-and-pip.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-Use-python3-and-pip3-instead-of-python-and-pip.patch
new file mode 100644
index 000000000..a1f04b4b4
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-Use-python3-and-pip3-instead-of-python-and-pip.patch
@@ -0,0 +1,135 @@
+From 87b94e54fefa1f83b41030444fc87b421c97b2c5 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Tue, 19 Mar 2019 13:38:44 -0700
+Subject: [PATCH 3/5] Use python3 and pip3 instead of python and pip
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [embedded specific]
+---
+ bin/mycroft-cli-client | 2 +-
+ bin/mycroft-pip | 2 +-
+ bin/mycroft-say-to | 2 +-
+ bin/mycroft-skill-testrunner | 4 ++--
+ bin/mycroft-speak | 2 +-
+ dev_setup.sh | 10 +++++-----
+ scripts/install-pocketsphinx.sh | 2 +-
+ 7 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/bin/mycroft-cli-client b/bin/mycroft-cli-client
+index f40a316e3f6..de2040d9e67 100755
+--- a/bin/mycroft-cli-client
++++ b/bin/mycroft-cli-client
+@@ -21,4 +21,4 @@ DIR="$( dirname "$SOURCE" )"
+ source "$DIR/../venv-activate.sh" -q
+
+ # Invoke the Command Line Interface
+-python -m mycroft.client.text $@
++python3 -m mycroft.client.text $@
+diff --git a/bin/mycroft-pip b/bin/mycroft-pip
+index a42b16b847a..81bd5bfb3cf 100755
+--- a/bin/mycroft-pip
++++ b/bin/mycroft-pip
+@@ -21,4 +21,4 @@ DIR="$( dirname "$SOURCE" )"
+ source "$DIR/../venv-activate.sh" -q
+
+ # Install pip packages within the Mycroft venv
+-pip $@
+\ No newline at end of file
++pip3 $@
+\ No newline at end of file
+diff --git a/bin/mycroft-say-to b/bin/mycroft-say-to
+index 964e16eb0c5..5575969715c 100755
+--- a/bin/mycroft-say-to
++++ b/bin/mycroft-say-to
+@@ -22,4 +22,4 @@ DIR="$( pwd )"
+ source "$DIR/../venv-activate.sh" -q
+
+ # Send a message to be spoken
+-output=$(python -m mycroft.messagebus.send "recognizer_loop:utterance" "{\"utterances\": [\"$@\"], \"lang\": \"en-us\"}")
++output=$(python3 -m mycroft.messagebus.send "recognizer_loop:utterance" "{\"utterances\": [\"$@\"], \"lang\": \"en-us\"}")
+diff --git a/bin/mycroft-skill-testrunner b/bin/mycroft-skill-testrunner
+index 9699a4d138f..282f5ca65b0 100755
+--- a/bin/mycroft-skill-testrunner
++++ b/bin/mycroft-skill-testrunner
+@@ -22,7 +22,7 @@ source "$DIR/../venv-activate.sh" -q
+
+ # Invoke the individual skill tester
+ if [ "$#" -eq 0 ] ; then
+- python -m test.integrationtests.skills.runner .
++ python3 -m test.integrationtests.skills.runner .
+ else
+- python -m test.integrationtests.skills.runner $@
++ python3 -m test.integrationtests.skills.runner $@
+ fi
+\ No newline at end of file
+diff --git a/bin/mycroft-speak b/bin/mycroft-speak
+index 51facf29189..c65556f1173 100755
+--- a/bin/mycroft-speak
++++ b/bin/mycroft-speak
+@@ -22,4 +22,4 @@ DIR="$( pwd )"
+ source "$DIR/../venv-activate.sh" -q
+
+ # Send a message to be spoken
+-output=$(python -m mycroft.messagebus.send "speak" "{\"utterance\": \"$@\"}")
+\ No newline at end of file
++output=$(python3 -m mycroft.messagebus.send "speak" "{\"utterance\": \"$@\"}")
+\ No newline at end of file
+diff --git a/dev_setup.sh b/dev_setup.sh
+index aed54b2167a..dd391181f19 100755
+--- a/dev_setup.sh
++++ b/dev_setup.sh
+@@ -48,7 +48,7 @@ param=""
+
+ for var in "$@" ; do
+ # Check if parameter should be read
+- if [[ ${param} == "python" ]] ; then
++ if [[ ${param} == "python3" ]] ; then
+ opt_python=${var}
+ param=""
+ continue
+@@ -351,17 +351,17 @@ if [ -z ${INSTALL_PRECOMMIT_HOOK} ] ; then
+ HOOK_FILE="./.git/hooks/pre-commit"
+ if [ ! -f ${HOOK_FILE} ] || grep -q "MYCROFT DEV SETUP" ${HOOK_FILE} ; then
+ echo "Installing PEP8 check as precommit-hook"
+- echo "#! $( which python )" > ${HOOK_FILE}
++ echo "#! $( which python3 )" > ${HOOK_FILE}
+ echo "# MYCROFT DEV SETUP" >> ${HOOK_FILE}
+ cat ./scripts/pre-commit >> ${HOOK_FILE}
+ chmod +x ${HOOK_FILE}
+ fi
+ fi
+
+-PYTHON=$( python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))" )
++PYTHON=$( python3 -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))" )
+
+ # install required python modules
+-if ! pip install -r requirements.txt ; then
++if ! pip3 install -r requirements.txt ; then
+ echo "Warning: Failed to install all requirements. Continue? y/N"
+ read -n1 continue
+ if [[ "$continue" != "y" ]] ; then
+@@ -369,7 +369,7 @@ if ! pip install -r requirements.txt ; then
+ fi
+ fi
+
+-if ! pip install -r test-requirements.txt ; then
++if ! pip3 install -r test-requirements.txt ; then
+ echo "Warning test requirements wasn't installed, Note: normal operation should still work fine..."
+ fi
+
+diff --git a/scripts/install-pocketsphinx.sh b/scripts/install-pocketsphinx.sh
+index 44d329b7985..d45f5c22747 100755
+--- a/scripts/install-pocketsphinx.sh
++++ b/scripts/install-pocketsphinx.sh
+@@ -47,7 +47,7 @@ function install_pocketsphinx() {
+
+ # build and install pocketsphinx python bindings
+ cd ${TOP}/pocketsphinx-python
+- python setup.py install
++ python3 setup.py install
+ }
+
+ if [ "$1" = "-q" ] ; then
+--
+2.21.0
+
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Remove-the-git-dependency.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Remove-the-git-dependency.patch
new file mode 100644
index 000000000..b7ca16013
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Remove-the-git-dependency.patch
@@ -0,0 +1,48 @@
+From a480dde949f820fda6e46c13261883e851f5a430 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Fri, 29 Mar 2019 16:09:57 -0700
+Subject: [PATCH 4/5] dev_setup.sh: Remove the git dependency
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [embedded specific]
+---
+ dev_setup.sh | 16 ----------------
+ 1 file changed, 16 deletions(-)
+
+diff --git a/dev_setup.sh b/dev_setup.sh
+index dd391181f19..c6aa783e1ef 100755
+--- a/dev_setup.sh
++++ b/dev_setup.sh
+@@ -312,10 +312,6 @@ function install_deps() {
+
+ install_deps
+
+-# Configure to use the standard commit template for
+-# this repo only.
+-git config commit.template .gitmessage
+-
+ # Check whether to build mimic (it takes a really long time!)
+ build_mimic="n"
+ if [[ ${opt_forcemimicbuild} == true ]] ; then
+@@ -346,18 +342,6 @@ fi
+ # Start the virtual environment
+ cd "${TOP}"
+
+-# Install pep8 pre-commit hook
+-if [ -z ${INSTALL_PRECOMMIT_HOOK} ] ; then
+- HOOK_FILE="./.git/hooks/pre-commit"
+- if [ ! -f ${HOOK_FILE} ] || grep -q "MYCROFT DEV SETUP" ${HOOK_FILE} ; then
+- echo "Installing PEP8 check as precommit-hook"
+- echo "#! $( which python3 )" > ${HOOK_FILE}
+- echo "# MYCROFT DEV SETUP" >> ${HOOK_FILE}
+- cat ./scripts/pre-commit >> ${HOOK_FILE}
+- chmod +x ${HOOK_FILE}
+- fi
+-fi
+-
+ PYTHON=$( python3 -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))" )
+
+ # install required python modules
+--
+2.21.0
+
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-dev_setup.sh-Remove-the-test-setup-dependency.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-dev_setup.sh-Remove-the-test-setup-dependency.patch
new file mode 100644
index 000000000..5ae868376
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-dev_setup.sh-Remove-the-test-setup-dependency.patch
@@ -0,0 +1,31 @@
+From 7fc38ae0dec30789fa0d365f1764f4950b700a98 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Tue, 2 Apr 2019 16:52:44 -0700
+Subject: [PATCH 5/5] dev_setup.sh: Remove the test setup dependency
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+---
+ dev_setup.sh | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/dev_setup.sh b/dev_setup.sh
+index c6aa783e1ef..bcfaa0c16c2 100755
+--- a/dev_setup.sh
++++ b/dev_setup.sh
+@@ -353,10 +353,6 @@ if ! pip3 install -r requirements.txt ; then
+ fi
+ fi
+
+-if ! pip3 install -r test-requirements.txt ; then
+- echo "Warning test requirements wasn't installed, Note: normal operation should still work fine..."
+-fi
+-
+ SYSMEM=$( free | awk '/^Mem:/ { print $2 }' )
+ MAXCORES=$(($SYSMEM / 512000))
+ MINCORES=1
+--
+2.21.0
+
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/dev_opts.json b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/dev_opts.json
new file mode 100644
index 000000000..5ed85faf4
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/dev_opts.json
@@ -0,0 +1 @@
+{"use_branch": "dev", "auto_update": false} \ No newline at end of file
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service
new file mode 100644
index 000000000..07598235e
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Mycroft Setup
+DefaultDependencies=no
+After=systemd-user-sessions.service
+
+[Service]
+Type=oneshot
+ExecStart=@LIBDIR@/mycroft/dev_setup.sh --allow-root
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service
new file mode 100644
index 000000000..04cf43620
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Mycroft
+DefaultDependencies=no
+After=mycroft-setup
+
+[Service]
+Type=forking
+ExecStartPre=mkdir -p /var/log/mycroft
+ExecStart=@LIBDIR@/mycroft/start-mycroft.sh all
+ExecStop=@LIBDIR@/mycroft/stop-mycroft.sh all
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.2.2.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.2.2.bb
new file mode 100644
index 000000000..c8ae53468
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.2.2.bb
@@ -0,0 +1,73 @@
+SUMMARY = "Mycroft is a hackable open source voice assistant."
+DESCRIPTION = "Mycroft is the world’s first open source assistant. "
+HOMEPAGE = "https://mycroft.ai/"
+SECTION = "multimedia"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=79aa497b11564d1d419ee889e7b498f6"
+
+SRCREV = "6706c377820912f83c1838d9eb32950ca9e39ec7"
+SRC_URI = "git://github.com/MycroftAI/mycroft-core.git;branch=master \
+ file://0001-Remove-python-venv.patch \
+ file://0002-pip-requirements-Remove-ones-installed-by-OE.patch \
+ file://0003-Use-python3-and-pip3-instead-of-python-and-pip.patch \
+ file://0004-dev_setup.sh-Remove-the-git-dependency.patch \
+ file://0005-dev_setup.sh-Remove-the-test-setup-dependency.patch \
+ file://dev_opts.json \
+ file://mycroft-setup.service \
+ file://mycroft.service \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit systemd
+
+# Mycroft installs itself on the host
+# Just copy the setup files to the rootfs
+do_install() {
+ install -d ${D}${libdir}/
+ cp -r ${B} ${D}${libdir}/mycroft
+ rm -r ${D}${libdir}/mycroft/.git
+
+ # Install the dev opts so it doesn't ask us on initial setup.
+ install -m 644 ${WORKDIR}/dev_opts.json ${D}${libdir}/mycroft/.dev_opts.json
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/mycroft-setup.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@LIBDIR@,${libdir},g' ${D}${systemd_unitdir}/system/mycroft-setup.service
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/mycroft.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@LIBDIR@,${libdir},g' ${D}${systemd_unitdir}/system/mycroft.service
+ fi
+}
+
+FILES_${PN} += "${libdir}/mycroft"
+
+RDEPENDS_${PN} = "python3"
+
+# Install as many Python packages as we can.
+# We don't yet have all the packages in meta-python.
+# Install as many as we can and we will install the rest on the target with pip.
+# TODO: Add all the remaining packages and remove pip
+RDEPENDS_${PN} += "python3-pip \
+ python3-requests python3-pillow \
+ python3-tornado python3-pyyaml \
+ python3-pyalsaaudio python3-inflection \
+ python3-pyserial python3-psutil \
+ python3-pyaudio python3-fann2 \
+ python3-pocketsphinx \
+ python3-xxhash \
+ "
+
+# Mycroft uses Alsa and PulseAudio
+RDEPENDS_${PN} += "alsa-oss alsa-utils alsa-plugins alsa-tools"
+RDEPENDS_${PN} += "pulseaudio pulseaudio-misc pulseaudio-server"
+
+# Mycroft can do this itself on the target, but it's quicker to do it here
+RDEPENDS_${PN} += "mimic"
+
+SYSTEMD_SERVICE_${PN} = "mycroft-setup.service mycroft.service"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-dlopen-configure-ac.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-dlopen-failure.patch
index 419e1be24..e99c22710 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-dlopen-configure-ac.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-dlopen-failure.patch
@@ -1,4 +1,4 @@
-From 7743ea63fbe572b1f82db7d399fe9c5c99521432 Mon Sep 17 00:00:00 2001
+From 57239fda56b68a8f3e413f7b6af5290ba0d86636 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Thu, 22 Mar 2018 18:18:06 +0100
Subject: [PATCH] musl: dlopen is included so LD_LIBS="" instead of
@@ -14,16 +14,15 @@ Stolen from [1] and prettyfied slightly
[1] https://github.com/voidlinux/void-packages/tree/master/srcpkgs/NetworkManager/patches
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
-
---
configure.ac | 1 +
1 file changed, 1 insertion(+)
diff --git a/configure.ac b/configure.ac
-index b914219..1b2b0ff 100644
+index 487a266..96ae4f7 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -241,6 +241,7 @@ dnl
+@@ -235,6 +235,7 @@ dnl
dnl Checks for libdl - on certain platforms its part of libc
dnl
AC_SEARCH_LIBS([dlopen], [dl dld], [], [ac_cv_search_dlopen=])
@@ -31,3 +30,5 @@ index b914219..1b2b0ff 100644
AC_SUBST([DL_LIBS], "$ac_cv_search_dlopen")
PKG_CHECK_MODULES(GLIB, [gio-unix-2.0 >= 2.37.6 gmodule-2.0],
+--
+2.14.3
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch
deleted file mode 100644
index 555e5ffcb..000000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From b2cdab746ef64bc25ba0b9cff596ebdddd6e8dc6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 7 Nov 2018 11:30:44 -0800
-Subject: [PATCH] Do not include net/ethernet.h and linux/if_ether.h
-
-They conflict when used together especially with musl
-removing them still keeps it working so it seems they are redundant
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- shared/n-acd/src/n-acd.c | 1 -
- src/platform/wpan/nm-wpan-utils.h | 2 --
- src/settings/nm-settings-connection.h | 2 --
- 3 files changed, 5 deletions(-)
-
-diff --git a/shared/n-acd/src/n-acd.c b/shared/n-acd/src/n-acd.c
-index def56a2..dd4eb78 100644
---- a/shared/n-acd/src/n-acd.c
-+++ b/shared/n-acd/src/n-acd.c
-@@ -11,7 +11,6 @@
- #include <inttypes.h>
- #include <limits.h>
- #include <linux/if_packet.h>
--#include <netinet/if_ether.h>
- #include <netinet/in.h>
- #include <stdlib.h>
- #include <string.h>
-diff --git a/src/platform/wpan/nm-wpan-utils.h b/src/platform/wpan/nm-wpan-utils.h
-index 1b54ec4..ed39938 100644
---- a/src/platform/wpan/nm-wpan-utils.h
-+++ b/src/platform/wpan/nm-wpan-utils.h
-@@ -20,8 +20,6 @@
- #ifndef __WPAN_UTILS_H__
- #define __WPAN_UTILS_H__
-
--#include <net/ethernet.h>
--
- #include "nm-dbus-interface.h"
- #include "platform/nm-netlink.h"
-
-diff --git a/src/settings/nm-settings-connection.h b/src/settings/nm-settings-connection.h
-index e796b71..c01fef6 100644
---- a/src/settings/nm-settings-connection.h
-+++ b/src/settings/nm-settings-connection.h
-@@ -22,8 +22,6 @@
- #ifndef __NETWORKMANAGER_SETTINGS_CONNECTION_H__
- #define __NETWORKMANAGER_SETTINGS_CONNECTION_H__
-
--#include <net/ethernet.h>
--
- #include "nm-dbus-object.h"
- #include "nm-connection.h"
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-Fix-build-with-musl.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-Fix-build-with-musl.patch
new file mode 100644
index 000000000..b3f93ff92
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-Fix-build-with-musl.patch
@@ -0,0 +1,351 @@
+From f43c9a5b07832a91383e59d655bc3c8a9f48c451 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Tue, 2 Apr 2019 01:34:35 +0200
+Subject: [PATCH] Fix build with musl
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ clients/cli/connections.c | 1 -
+ libnm-core/nm-utils.c | 2 +-
+ shared/n-acd/src/n-acd.c | 1 -
+ shared/systemd/src/basic/in-addr-util.c | 1 +
+ shared/systemd/src/basic/process-util.c | 9 ++++++
+ shared/systemd/src/basic/socket-util.h | 6 ++++
+ shared/systemd/src/basic/stdio-util.h | 2 ++
+ shared/systemd/src/basic/string-util.h | 5 ++++
+ shared/systemd/src/basic/util.h | 29 ++++----------------
+ src/platform/wifi/nm-wifi-utils.h | 4 +++
+ src/platform/wpan/nm-wpan-utils.h | 2 --
+ src/settings/nm-settings-connection.h | 2 --
+ src/systemd/src/libsystemd-network/sd-lldp.c | 1 +
+ src/systemd/src/systemd/sd-dhcp-client.h | 2 ++
+ src/systemd/src/systemd/sd-dhcp-lease.h | 2 ++
+ src/systemd/src/systemd/sd-dhcp6-client.h | 2 ++
+ src/systemd/src/systemd/sd-ipv4ll.h | 2 ++
+ src/systemd/src/systemd/sd-lldp.h | 2 +-
+ 19 files changed, 44 insertions(+), 32 deletions(-)
+
+diff --git a/clients/cli/connections.c b/clients/cli/connections.c
+index 6db44f8..36e51cc 100644
+--- a/clients/cli/connections.c
++++ b/clients/cli/connections.c
+@@ -25,7 +25,6 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <signal.h>
+-#include <netinet/ether.h>
+ #include <readline/readline.h>
+ #include <readline/history.h>
+ #include <fcntl.h>
+diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c
+index d276cfe..2aec785 100644
+--- a/libnm-core/nm-utils.c
++++ b/libnm-core/nm-utils.c
+@@ -21,10 +21,10 @@
+
+ #include "nm-default.h"
+
++#include <netinet/ether.h>
+ #include "nm-utils.h"
+
+ #include <stdlib.h>
+-#include <netinet/ether.h>
+ #include <arpa/inet.h>
+ #include <uuid/uuid.h>
+ #include <libintl.h>
+diff --git a/shared/n-acd/src/n-acd.c b/shared/n-acd/src/n-acd.c
+index def56a2..dd4eb78 100644
+--- a/shared/n-acd/src/n-acd.c
++++ b/shared/n-acd/src/n-acd.c
+@@ -11,7 +11,6 @@
+ #include <inttypes.h>
+ #include <limits.h>
+ #include <linux/if_packet.h>
+-#include <netinet/if_ether.h>
+ #include <netinet/in.h>
+ #include <stdlib.h>
+ #include <string.h>
+diff --git a/shared/systemd/src/basic/in-addr-util.c b/shared/systemd/src/basic/in-addr-util.c
+index 5ced350..c6b52b8 100644
+--- a/shared/systemd/src/basic/in-addr-util.c
++++ b/shared/systemd/src/basic/in-addr-util.c
+@@ -13,6 +13,7 @@
+ #include "in-addr-util.h"
+ #include "macro.h"
+ #include "parse-util.h"
++#include "string-util.h"
+ #include "util.h"
+
+ bool in4_addr_is_null(const struct in_addr *a) {
+diff --git a/shared/systemd/src/basic/process-util.c b/shared/systemd/src/basic/process-util.c
+index b0afb5c..7adc8bd 100644
+--- a/shared/systemd/src/basic/process-util.c
++++ b/shared/systemd/src/basic/process-util.c
+@@ -21,6 +21,9 @@
+ #include <sys/wait.h>
+ #include <syslog.h>
+ #include <unistd.h>
++#ifndef __GLIBC__
++#include <pthread.h>
++#endif
+ #if 0 /* NM_IGNORED */
+ #if HAVE_VALGRIND_VALGRIND_H
+ #include <valgrind/valgrind.h>
+@@ -1168,11 +1171,13 @@ void reset_cached_pid(void) {
+ cached_pid = CACHED_PID_UNSET;
+ }
+
++#ifdef __GLIBC__
+ /* We use glibc __register_atfork() + __dso_handle directly here, as they are not included in the glibc
+ * headers. __register_atfork() is mostly equivalent to pthread_atfork(), but doesn't require us to link against
+ * libpthread, as it is part of glibc anyway. */
+ extern int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void *dso_handle);
+ extern void* __dso_handle _weak_;
++#endif
+
+ pid_t getpid_cached(void) {
+ static bool installed = false;
+@@ -1201,7 +1206,11 @@ pid_t getpid_cached(void) {
+ * only half-documented (glibc doesn't document it but LSB does — though only superficially)
+ * we'll check for errors only in the most generic fashion possible. */
+
++#ifdef __GLIBC__
+ if (__register_atfork(NULL, NULL, reset_cached_pid, __dso_handle) != 0) {
++#else
++ if (pthread_atfork(NULL, NULL, reset_cached_pid) != 0) {
++#endif
+ /* OOM? Let's try again later */
+ cached_pid = CACHED_PID_UNSET;
+ return new_pid;
+diff --git a/shared/systemd/src/basic/socket-util.h b/shared/systemd/src/basic/socket-util.h
+index d2246a8..76f257f 100644
+--- a/shared/systemd/src/basic/socket-util.h
++++ b/shared/systemd/src/basic/socket-util.h
+@@ -13,6 +13,12 @@
+ #include <sys/types.h>
+ #include <sys/un.h>
+
++#if !defined(__GLIBC__)
++/* SIOCGSTAMPNS from linux/asm-generic.h
++ * for src/systemd/src/libsystemd-network/sd-lldp.c */
++#include <linux/sockios.h>
++#endif
++
+ #include "macro.h"
+ #include "missing_socket.h"
+ #include "sparse-endian.h"
+diff --git a/shared/systemd/src/basic/stdio-util.h b/shared/systemd/src/basic/stdio-util.h
+index dc67b6e..6336243 100644
+--- a/shared/systemd/src/basic/stdio-util.h
++++ b/shared/systemd/src/basic/stdio-util.h
+@@ -1,7 +1,9 @@
+ /* SPDX-License-Identifier: LGPL-2.1+ */
+ #pragma once
+
++#if defined(__GLIBC__)
+ #include <printf.h>
++#endif
+ #include <stdarg.h>
+ #include <stdio.h>
+ #include <sys/types.h>
+diff --git a/shared/systemd/src/basic/string-util.h b/shared/systemd/src/basic/string-util.h
+index 38070ab..6b918e0 100644
+--- a/shared/systemd/src/basic/string-util.h
++++ b/shared/systemd/src/basic/string-util.h
+@@ -27,6 +27,11 @@
+ #define strcaseeq(a,b) (strcasecmp((a),(b)) == 0)
+ #define strncaseeq(a, b, n) (strncasecmp((a), (b), (n)) == 0)
+
++/* musl does not know strndupa */
++#if !defined(__GLIBC__)
++#define strndupa(x,s) strncpy(alloca(strlen(x)+1),x,s)
++#endif
++
+ int strcmp_ptr(const char *a, const char *b) _pure_;
+
+ static inline bool streq_ptr(const char *a, const char *b) {
+diff --git a/shared/systemd/src/basic/util.h b/shared/systemd/src/basic/util.h
+index dc33d66..cc768e9 100644
+--- a/shared/systemd/src/basic/util.h
++++ b/shared/systemd/src/basic/util.h
+@@ -27,6 +27,11 @@
+ #include "macro.h"
+ #include "time-util.h"
+
++#if !defined(__GLIBC__)
++typedef int (*__compar_fn_t) (const void*, const void*);
++typedef __compar_fn_t comparison_fn_t;
++#endif
++
+ size_t page_size(void) _pure_;
+ #define PAGE_ALIGN(l) ALIGN_TO((l), page_size())
+
+@@ -66,16 +71,6 @@ int prot_from_flags(int flags) _const_;
+ bool in_initrd(void);
+ void in_initrd_force(bool value);
+
+-void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size,
+- __compar_d_fn_t compar, void *arg);
+-
+-#define typesafe_bsearch_r(k, b, n, func, userdata) \
+- ({ \
+- const typeof(b[0]) *_k = k; \
+- int (*_func_)(const typeof(b[0])*, const typeof(b[0])*, typeof(userdata)) = func; \
+- xbsearch_r((const void*) _k, (b), (n), sizeof((b)[0]), (__compar_d_fn_t) _func_, userdata); \
+- })
+-
+ /**
+ * Normal bsearch requires base to be nonnull. Here were require
+ * that only if nmemb > 0.
+@@ -116,20 +111,6 @@ static inline void qsort_safe(void *base, size_t nmemb, size_t size, __compar_fn
+ qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \
+ })
+
+-static inline void qsort_r_safe(void *base, size_t nmemb, size_t size, __compar_d_fn_t compar, void *userdata) {
+- if (nmemb <= 1)
+- return;
+-
+- assert(base);
+- qsort_r(base, nmemb, size, compar, userdata);
+-}
+-
+-#define typesafe_qsort_r(p, n, func, userdata) \
+- ({ \
+- int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \
+- qsort_r_safe((p), (n), sizeof((p)[0]), (__compar_d_fn_t) _func_, userdata); \
+- })
+-
+ /* Normal memcpy requires src to be nonnull. We do nothing if n is 0. */
+ static inline void memcpy_safe(void *dst, const void *src, size_t n) {
+ if (n == 0)
+diff --git a/src/platform/wifi/nm-wifi-utils.h b/src/platform/wifi/nm-wifi-utils.h
+index 36148b5..d282eb2 100644
+--- a/src/platform/wifi/nm-wifi-utils.h
++++ b/src/platform/wifi/nm-wifi-utils.h
+@@ -22,7 +22,11 @@
+ #ifndef __WIFI_UTILS_H__
+ #define __WIFI_UTILS_H__
+
++#if defined(__GLIBC__)
+ #include <net/ethernet.h>
++#else /* musl libc */
++#define ETH_ALEN 6 /* Octets in one ethernet addr */
++#endif
+
+ #include "nm-dbus-interface.h"
+ #include "nm-setting-wireless.h"
+diff --git a/src/platform/wpan/nm-wpan-utils.h b/src/platform/wpan/nm-wpan-utils.h
+index 1b54ec4..ed39938 100644
+--- a/src/platform/wpan/nm-wpan-utils.h
++++ b/src/platform/wpan/nm-wpan-utils.h
+@@ -20,8 +20,6 @@
+ #ifndef __WPAN_UTILS_H__
+ #define __WPAN_UTILS_H__
+
+-#include <net/ethernet.h>
+-
+ #include "nm-dbus-interface.h"
+ #include "platform/nm-netlink.h"
+
+diff --git a/src/settings/nm-settings-connection.h b/src/settings/nm-settings-connection.h
+index e796b71..c01fef6 100644
+--- a/src/settings/nm-settings-connection.h
++++ b/src/settings/nm-settings-connection.h
+@@ -22,8 +22,6 @@
+ #ifndef __NETWORKMANAGER_SETTINGS_CONNECTION_H__
+ #define __NETWORKMANAGER_SETTINGS_CONNECTION_H__
+
+-#include <net/ethernet.h>
+-
+ #include "nm-dbus-object.h"
+ #include "nm-connection.h"
+
+diff --git a/src/systemd/src/libsystemd-network/sd-lldp.c b/src/systemd/src/libsystemd-network/sd-lldp.c
+index 741128e..62914ae 100644
+--- a/src/systemd/src/libsystemd-network/sd-lldp.c
++++ b/src/systemd/src/libsystemd-network/sd-lldp.c
+@@ -3,6 +3,7 @@
+ #include "nm-sd-adapt-core.h"
+
+ #include <arpa/inet.h>
++#include <net/ethernet.h>
+ #include <linux/sockios.h>
+ #include <sys/ioctl.h>
+
+diff --git a/src/systemd/src/systemd/sd-dhcp-client.h b/src/systemd/src/systemd/sd-dhcp-client.h
+index bd0d429..c935fe1 100644
+--- a/src/systemd/src/systemd/sd-dhcp-client.h
++++ b/src/systemd/src/systemd/sd-dhcp-client.h
+@@ -20,7 +20,9 @@
+ ***/
+
+ #include <inttypes.h>
++#if defined(__GLIBC__)
+ #include <net/ethernet.h>
++#endif
+ #include <netinet/in.h>
+ #include <sys/types.h>
+ #include <stdbool.h>
+diff --git a/src/systemd/src/systemd/sd-dhcp-lease.h b/src/systemd/src/systemd/sd-dhcp-lease.h
+index d299c79..991e67e 100644
+--- a/src/systemd/src/systemd/sd-dhcp-lease.h
++++ b/src/systemd/src/systemd/sd-dhcp-lease.h
+@@ -19,7 +19,9 @@
+ ***/
+
+ #include <inttypes.h>
++#if defined(__GLIBC__)
+ #include <net/ethernet.h>
++#endif
+ #include <netinet/in.h>
+ #include <sys/types.h>
+
+diff --git a/src/systemd/src/systemd/sd-dhcp6-client.h b/src/systemd/src/systemd/sd-dhcp6-client.h
+index 43d38f5..57ab487 100644
+--- a/src/systemd/src/systemd/sd-dhcp6-client.h
++++ b/src/systemd/src/systemd/sd-dhcp6-client.h
+@@ -20,7 +20,9 @@
+ ***/
+
+ #include <inttypes.h>
++#if defined(__GLIBC__)
+ #include <net/ethernet.h>
++#endif
+ #include <sys/types.h>
+
+ #include "sd-dhcp6-lease.h"
+diff --git a/src/systemd/src/systemd/sd-ipv4ll.h b/src/systemd/src/systemd/sd-ipv4ll.h
+index 71bd4cf..1c667ba 100644
+--- a/src/systemd/src/systemd/sd-ipv4ll.h
++++ b/src/systemd/src/systemd/sd-ipv4ll.h
+@@ -19,7 +19,9 @@
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+ ***/
+
++#if defined(__GLIBC__)
+ #include <net/ethernet.h>
++#endif
+ #include <netinet/in.h>
+
+ #include "sd-event.h"
+diff --git a/src/systemd/src/systemd/sd-lldp.h b/src/systemd/src/systemd/sd-lldp.h
+index bf3afad..4cace87 100644
+--- a/src/systemd/src/systemd/sd-lldp.h
++++ b/src/systemd/src/systemd/sd-lldp.h
+@@ -18,7 +18,7 @@
+ ***/
+
+ #include <inttypes.h>
+-#include <net/ethernet.h>
++//#include <net/ethernet.h>
+ #include <sys/types.h>
+
+ #include "sd-event.h"
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch
deleted file mode 100644
index 5c59208b4..000000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 32dc6cab58912add5bc6495558538953d9344c36 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 31 Mar 2017 16:48:00 -0700
-Subject: [PATCH] sd-lldp.h: Remove net/ethernet.h seems to be over specified
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/systemd/src/libsystemd-network/sd-lldp.c | 1 +
- src/systemd/src/systemd/sd-lldp.h | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/systemd/src/libsystemd-network/sd-lldp.c b/src/systemd/src/libsystemd-network/sd-lldp.c
-index 741128e..62914ae 100644
---- a/src/systemd/src/libsystemd-network/sd-lldp.c
-+++ b/src/systemd/src/libsystemd-network/sd-lldp.c
-@@ -3,6 +3,7 @@
- #include "nm-sd-adapt-core.h"
-
- #include <arpa/inet.h>
-+#include <net/ethernet.h>
- #include <linux/sockios.h>
- #include <sys/ioctl.h>
-
-diff --git a/src/systemd/src/systemd/sd-lldp.h b/src/systemd/src/systemd/sd-lldp.h
-index bf3afad..4cace87 100644
---- a/src/systemd/src/systemd/sd-lldp.h
-+++ b/src/systemd/src/systemd/sd-lldp.h
-@@ -18,7 +18,7 @@
- ***/
-
- #include <inttypes.h>
--#include <net/ethernet.h>
-+//#include <net/ethernet.h>
- #include <sys/types.h>
-
- #include "sd-event.h"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-basic.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-basic.patch
deleted file mode 100644
index 8d905489f..000000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-basic.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From ff1a5b849755db67b1778940fff92d6eb8b8b050 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Thu, 22 Mar 2018 17:54:10 +0100
-Subject: [PATCH] Usual fix for musl libc
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Stolen from [1] and prettyfied slightly
-
-[1] https://github.com/voidlinux/void-packages/tree/master/srcpkgs/NetworkManager/patches
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
-
----
- shared/systemd/src/basic/stdio-util.h | 2 ++
- shared/systemd/src/basic/util.h | 5 +++++
- 2 files changed, 7 insertions(+)
-
-diff --git a/shared/systemd/src/basic/stdio-util.h b/shared/systemd/src/basic/stdio-util.h
-index dc67b6e..6336243 100644
---- a/shared/systemd/src/basic/stdio-util.h
-+++ b/shared/systemd/src/basic/stdio-util.h
-@@ -1,7 +1,9 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
- #pragma once
-
-+#if defined(__GLIBC__)
- #include <printf.h>
-+#endif
- #include <stdarg.h>
- #include <stdio.h>
- #include <sys/types.h>
-diff --git a/shared/systemd/src/basic/util.h b/shared/systemd/src/basic/util.h
-index dc33d66..8ee2d64 100644
---- a/shared/systemd/src/basic/util.h
-+++ b/shared/systemd/src/basic/util.h
-@@ -27,6 +27,11 @@
- #include "macro.h"
- #include "time-util.h"
-
-+#if !defined(__GLIBC__)
-+typedef int (*__compar_fn_t) (const void*, const void*);
-+typedef __compar_fn_t comparison_fn_t;
-+#endif
-+
- size_t page_size(void) _pure_;
- #define PAGE_ALIGN(l) ALIGN_TO((l), page_size())
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-network-support.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-network-support.patch
deleted file mode 100644
index 45f607f2c..000000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-network-support.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 70ecbc01874bf2f8603ccbdfda634cac0bb83d93 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Thu, 22 Mar 2018 18:24:07 +0100
-Subject: [PATCH] musl: network support
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Stolen from [1] and prettyfied slightly
-
-[1] https://github.com/voidlinux/void-packages/tree/master/srcpkgs/NetworkManager/patches
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
-
----
- libnm-core/nm-utils.h | 4 ++++
- shared/systemd/src/basic/socket-util.h | 6 ++++++
- src/platform/wifi/nm-wifi-utils.h | 4 ++++
- 3 files changed, 14 insertions(+)
-
-diff --git a/libnm-core/nm-utils.h b/libnm-core/nm-utils.h
-index 2b5baba..976850c 100644
---- a/libnm-core/nm-utils.h
-+++ b/libnm-core/nm-utils.h
-@@ -30,7 +30,11 @@
- #include <netinet/in.h>
-
- /* For ETH_ALEN and INFINIBAND_ALEN */
-+#if defined(__GLIBC__)
- #include <linux/if_ether.h>
-+#else
-+#define ETH_ALEN 6 /* Octets in one ethernet addr */
-+#endif
- #include <linux/if_infiniband.h>
-
- #include "nm-core-enum-types.h"
-diff --git a/shared/systemd/src/basic/socket-util.h b/shared/systemd/src/basic/socket-util.h
-index d2246a8..76f257f 100644
---- a/shared/systemd/src/basic/socket-util.h
-+++ b/shared/systemd/src/basic/socket-util.h
-@@ -13,6 +13,12 @@
- #include <sys/types.h>
- #include <sys/un.h>
-
-+#if !defined(__GLIBC__)
-+/* SIOCGSTAMPNS from linux/asm-generic.h
-+ * for src/systemd/src/libsystemd-network/sd-lldp.c */
-+#include <linux/sockios.h>
-+#endif
-+
- #include "macro.h"
- #include "missing_socket.h"
- #include "sparse-endian.h"
-diff --git a/src/platform/wifi/nm-wifi-utils.h b/src/platform/wifi/nm-wifi-utils.h
-index 36148b5..d282eb2 100644
---- a/src/platform/wifi/nm-wifi-utils.h
-+++ b/src/platform/wifi/nm-wifi-utils.h
-@@ -22,7 +22,11 @@
- #ifndef __WIFI_UTILS_H__
- #define __WIFI_UTILS_H__
-
-+#if defined(__GLIBC__)
- #include <net/ethernet.h>
-+#else /* musl libc */
-+#define ETH_ALEN 6 /* Octets in one ethernet addr */
-+#endif
-
- #include "nm-dbus-interface.h"
- #include "nm-setting-wireless.h"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-musl-process-util.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-musl-process-util.patch
deleted file mode 100644
index 525e35932..000000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-musl-process-util.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 4f2fb1e1f785bad22df8f3d96cb4792acf21f315 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Thu, 25 Oct 2018 09:57:07 +0200
-Subject: [PATCH] musl: process-util
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Stolen from [1] and prettyfied slightly
-
-[1] https://github.com/voidlinux/void-packages/tree/master/srcpkgs/NetworkManager/patches
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
-
----
- shared/systemd/src/basic/process-util.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/shared/systemd/src/basic/process-util.c b/shared/systemd/src/basic/process-util.c
-index b0afb5c..7adc8bd 100644
---- a/shared/systemd/src/basic/process-util.c
-+++ b/shared/systemd/src/basic/process-util.c
-@@ -21,6 +21,9 @@
- #include <sys/wait.h>
- #include <syslog.h>
- #include <unistd.h>
-+#ifndef __GLIBC__
-+#include <pthread.h>
-+#endif
- #if 0 /* NM_IGNORED */
- #if HAVE_VALGRIND_VALGRIND_H
- #include <valgrind/valgrind.h>
-@@ -1168,11 +1171,13 @@ void reset_cached_pid(void) {
- cached_pid = CACHED_PID_UNSET;
- }
-
-+#ifdef __GLIBC__
- /* We use glibc __register_atfork() + __dso_handle directly here, as they are not included in the glibc
- * headers. __register_atfork() is mostly equivalent to pthread_atfork(), but doesn't require us to link against
- * libpthread, as it is part of glibc anyway. */
- extern int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void *dso_handle);
- extern void* __dso_handle _weak_;
-+#endif
-
- pid_t getpid_cached(void) {
- static bool installed = false;
-@@ -1201,7 +1206,11 @@ pid_t getpid_cached(void) {
- * only half-documented (glibc doesn't document it but LSB does — though only superficially)
- * we'll check for errors only in the most generic fashion possible. */
-
-+#ifdef __GLIBC__
- if (__register_atfork(NULL, NULL, reset_cached_pid, __dso_handle) != 0) {
-+#else
-+ if (pthread_atfork(NULL, NULL, reset_cached_pid) != 0) {
-+#endif
- /* OOM? Let's try again later */
- cached_pid = CACHED_PID_UNSET;
- return new_pid;
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0007-musl-avoid-further-conflicts-by-including-net-ethern.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0007-musl-avoid-further-conflicts-by-including-net-ethern.patch
deleted file mode 100644
index 211a2da94..000000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0007-musl-avoid-further-conflicts-by-including-net-ethern.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 4232a34064e33b52f07cca51b902b93699800f72 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Mon, 16 Apr 2018 14:45:44 +0200
-Subject: [PATCH] musl: avoid further conflicts by including net/ethernet.h
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
-
----
- src/systemd/src/systemd/sd-dhcp-client.h | 2 ++
- src/systemd/src/systemd/sd-dhcp-lease.h | 2 ++
- src/systemd/src/systemd/sd-dhcp6-client.h | 2 ++
- src/systemd/src/systemd/sd-ipv4ll.h | 2 ++
- 4 files changed, 8 insertions(+)
-
-diff --git a/src/systemd/src/systemd/sd-dhcp-client.h b/src/systemd/src/systemd/sd-dhcp-client.h
-index bd0d429..c935fe1 100644
---- a/src/systemd/src/systemd/sd-dhcp-client.h
-+++ b/src/systemd/src/systemd/sd-dhcp-client.h
-@@ -20,7 +20,9 @@
- ***/
-
- #include <inttypes.h>
-+#if defined(__GLIBC__)
- #include <net/ethernet.h>
-+#endif
- #include <netinet/in.h>
- #include <sys/types.h>
- #include <stdbool.h>
-diff --git a/src/systemd/src/systemd/sd-dhcp-lease.h b/src/systemd/src/systemd/sd-dhcp-lease.h
-index d299c79..991e67e 100644
---- a/src/systemd/src/systemd/sd-dhcp-lease.h
-+++ b/src/systemd/src/systemd/sd-dhcp-lease.h
-@@ -19,7 +19,9 @@
- ***/
-
- #include <inttypes.h>
-+#if defined(__GLIBC__)
- #include <net/ethernet.h>
-+#endif
- #include <netinet/in.h>
- #include <sys/types.h>
-
-diff --git a/src/systemd/src/systemd/sd-dhcp6-client.h b/src/systemd/src/systemd/sd-dhcp6-client.h
-index 43d38f5..57ab487 100644
---- a/src/systemd/src/systemd/sd-dhcp6-client.h
-+++ b/src/systemd/src/systemd/sd-dhcp6-client.h
-@@ -20,7 +20,9 @@
- ***/
-
- #include <inttypes.h>
-+#if defined(__GLIBC__)
- #include <net/ethernet.h>
-+#endif
- #include <sys/types.h>
-
- #include "sd-dhcp6-lease.h"
-diff --git a/src/systemd/src/systemd/sd-ipv4ll.h b/src/systemd/src/systemd/sd-ipv4ll.h
-index 71bd4cf..1c667ba 100644
---- a/src/systemd/src/systemd/sd-ipv4ll.h
-+++ b/src/systemd/src/systemd/sd-ipv4ll.h
-@@ -19,7 +19,9 @@
- along with systemd; If not, see <http://www.gnu.org/licenses/>.
- ***/
-
-+#if defined(__GLIBC__)
- #include <net/ethernet.h>
-+#endif
- #include <netinet/in.h>
-
- #include "sd-event.h"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0008-Add-a-strndupa-replacement-for-musl.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0008-Add-a-strndupa-replacement-for-musl.patch
deleted file mode 100644
index 885810185..000000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0008-Add-a-strndupa-replacement-for-musl.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From cdd69321ec97ed19e66a747a968a1637a251b9e6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Mon, 16 Apr 2018 15:07:20 +0200
-Subject: [PATCH] Add a strndupa replacement for musl
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
-
----
- shared/systemd/src/basic/in-addr-util.c | 1 +
- shared/systemd/src/basic/string-util.h | 5 +++++
- 2 files changed, 6 insertions(+)
-
-diff --git a/shared/systemd/src/basic/in-addr-util.c b/shared/systemd/src/basic/in-addr-util.c
-index 5ced350..c6b52b8 100644
---- a/shared/systemd/src/basic/in-addr-util.c
-+++ b/shared/systemd/src/basic/in-addr-util.c
-@@ -13,6 +13,7 @@
- #include "in-addr-util.h"
- #include "macro.h"
- #include "parse-util.h"
-+#include "string-util.h"
- #include "util.h"
-
- bool in4_addr_is_null(const struct in_addr *a) {
-diff --git a/shared/systemd/src/basic/string-util.h b/shared/systemd/src/basic/string-util.h
-index 38070ab..6b918e0 100644
---- a/shared/systemd/src/basic/string-util.h
-+++ b/shared/systemd/src/basic/string-util.h
-@@ -27,6 +27,11 @@
- #define strcaseeq(a,b) (strcasecmp((a),(b)) == 0)
- #define strncaseeq(a, b, n) (strncasecmp((a), (b), (n)) == 0)
-
-+/* musl does not know strndupa */
-+#if !defined(__GLIBC__)
-+#define strndupa(x,s) strncpy(alloca(strlen(x)+1),x,s)
-+#endif
-+
- int strcmp_ptr(const char *a, const char *b) _pure_;
-
- static inline bool streq_ptr(const char *a, const char *b) {
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.0.bb
index bdf60ee7c..9f57908e9 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.0.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.0.bb
@@ -26,19 +26,14 @@ SRC_URI = " \
${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \
file://0001-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch \
file://0002-Do-not-create-settings-settings-property-documentati.patch \
- file://musl/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch \
- file://musl/0002-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch \
- file://musl/0003-musl-basic.patch \
- file://musl/0004-musl-dlopen-configure-ac.patch \
- file://musl/0005-musl-network-support.patch \
- file://musl/0006-musl-process-util.patch \
- file://musl/0007-musl-avoid-further-conflicts-by-including-net-ethern.patch \
- file://musl/0008-Add-a-strndupa-replacement-for-musl.patch \
+ file://0003-dlopen-failure.patch \
"
+SRC_URI_append_libc-musl = " file://musl/0001-Fix-build-with-musl.patch"
+
SRC_URI[md5sum] = "10abacaafb162a67d2942adf03e7e9e4"
SRC_URI[sha256sum] = "8e962833b6ca03edda1bc57ed6614a7b8c2339531b44acef098d05f2324c5d2c"
-UPSTREAM_CHECK_URI = "${GNOME_MIRROR}/NetworkManager/1.10/"
+UPSTREAM_CHECK_URI = "${GNOME_MIRROR}/NetworkManager/1.16/"
UPSTREAM_CHECK_REGEX = "NetworkManager\-(?P<pver>1\.10(\.\d+)+).tar.xz"
S = "${WORKDIR}/NetworkManager-${PV}"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.15.7.bb b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.15.8.bb
index 0a0a6075d..d4b969104 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.15.7.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.15.8.bb
@@ -12,9 +12,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
PROVIDES += "cyassl"
RPROVIDES_${PN} = "cyassl"
-SRC_URI = "https://www.wolfssl.com/wolfssl-${PV}.zip"
-SRC_URI[md5sum] = "6ec08c09e3f51cccbb1686b4fd45f92f"
-SRC_URI[sha256sum] = "4cc318c49580d3b9c361fe258fac6106624aa744f1d34e03977b587766a753ee"
+SRC_URI = "git://github.com/wolfSSL/wolfssl.git;protocol=https"
+SRCREV = "e87433e2b6682aa7162fcb4aafefb08e2fbd932b"
+S = "${WORKDIR}/git"
inherit autotools
diff --git a/meta-openembedded/meta-networking/recipes-support/fping/fping_3.5.bb b/meta-openembedded/meta-networking/recipes-support/fping/fping_4.2.bb
index 82e3bf073..594f5b9cf 100644
--- a/meta-openembedded/meta-networking/recipes-support/fping/fping_3.5.bb
+++ b/meta-openembedded/meta-networking/recipes-support/fping/fping_4.2.bb
@@ -9,11 +9,11 @@ in a round-robin fashion."
HOMEPAGE = "http://www.fping.org/"
SECTION = "net"
LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=09d77789fe32be35acde9637a5ee39b1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c6170fbadddfcd74f011515291d96901"
SRC_URI = "http://www.fping.org/dist/fping-${PV}.tar.gz"
-SRC_URI[md5sum] = "2e17cb655aa4eb59b5a4a38a89e746ed"
-SRC_URI[sha256sum] = "09b8960e235341bae6000085d38106357eae656a79e0119bd27e816c9003656a"
+SRC_URI[md5sum] = "218e71764177a8ce25564a7810f8e729"
+SRC_URI[sha256sum] = "7d339674b6a95aae1d8ad487ff5056fd95b474c3650938268f6a905c3771b64a"
S = "${WORKDIR}/fping-${PV}"
diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2015-4047.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2015-4047.patch
index 5286376ac..7e033af5e 100644
--- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2015-4047.patch
+++ b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2015-4047.patch
@@ -2,6 +2,8 @@
Upstream-Status: Backport
+CVE: CVE-2015-4047
+
http://www.openwall.com/lists/oss-security/2015/05/20/1
racoon/gssapi.c in IPsec-Tools 0.8.2 allows remote attackers to cause
diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch
index bd0796554..19220c4e7 100644
--- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch
+++ b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch
@@ -1,6 +1,6 @@
Upstream-Status: Backport [https://anonscm.debian.org/cgit/pkg-ipsec-tools/pkg-ipsec-tools.git/plain/debian/patches/CVE-2016-10396.patch?id=62ac12648a4eb7c5ba5dba0f81998d1acf310d8b]
-Fix CVE-2016-10396.
+CVE: CVE-2016-10396.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
diff --git a/meta-openembedded/meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb b/meta-openembedded/meta-networking/recipes-support/nuttcp/nuttcp_7.3.3.bb
index 9430add48..ec4067806 100644
--- a/meta-openembedded/meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb
+++ b/meta-openembedded/meta-networking/recipes-support/nuttcp/nuttcp_7.3.3.bb
@@ -1,6 +1,3 @@
-# Copyright (C) 2013 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
SUMMARY = "network performance measurement tool"
DESCRIPTION = "nuttcp is a network performance measurement tool intended for use by network \
and system managers. Its most basic usage is to determine the raw TCP (or UDP) \
@@ -11,11 +8,11 @@ number of bytes."
HOMEPAGE = "http://www.nuttcp.net/Welcome%20Page.html"
LICENSE = "GPL-2.0"
SECTION = "net"
-LIC_FILES_CHKSUM = "file://${BP}.c;beginline=4;endline=30;md5=ae7045c3c3616092e07d87f04ba0d960"
+LIC_FILES_CHKSUM = "file://${BP}.c;beginline=4;endline=30;md5=c55daba5a5a869a123c3565de07d15a6"
SRC_URI = "http://nuttcp.net/${BPN}/beta/${BP}.c"
-SRC_URI[md5sum] = "1ebf4a08bad2a295a8155f02995e8754"
-SRC_URI[sha256sum] = "c6e33810ccce67260f8d5d627f60e429d44f532365c58ed5673d035e2a59c4db"
+SRC_URI[md5sum] = "dfbff3c38fb0cbdc474ca6d13539d425"
+SRC_URI[sha256sum] = "d68e291a72375d76f301d54aa945727c95e78090aa6783a4844764e632e98a4a"
S = "${WORKDIR}"
diff --git a/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.2.6.bb b/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.3.2.bb
index 681ef02bb..a808c2728 100644
--- a/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.2.6.bb
+++ b/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.3.2.bb
@@ -8,8 +8,8 @@ LIC_FILES_CHKSUM = "file://docs/LICENSE;md5=890b830b22fd632e9ffd996df20338f8"
SRC_URI = "https://github.com/appneta/tcpreplay/releases/download/v${PV}/tcpreplay-${PV}.tar.gz"
-SRC_URI[md5sum] = "3e65d5b872e441c6a0038191a3dc7ce9"
-SRC_URI[sha256sum] = "043756c532dab93e2be33a517ef46b1341f7239278a1045ae670041dd8a4531d"
+SRC_URI[md5sum] = "dfa0d1b3dfd2cd316291a7a20563b649"
+SRC_URI[sha256sum] = "4f479bd9196cafde70c58ab072ca4959ecc5278555cf1aa7cf42f7f210daa951"
DEPENDS = "libpcap"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.12.bb b/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.12.bb
index 2deb42db9..e85e7c709 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.12.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.12.bb
@@ -16,6 +16,7 @@ RDEPENDS_${PN} = "python bash"
PACKAGECONFIG_NUMA = "numa"
# ARM does not currently support NUMA
PACKAGECONFIG_NUMA_arm = ""
+PACKAGECONFIG_NUMA_armeb = ""
PACKAGECONFIG ??= "${PACKAGECONFIG_NUMA}"
PACKAGECONFIG[numa] = ",--disable-numa,numactl"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
index 9aff59c6c..11ea3be95 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
@@ -4,8 +4,8 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=db174eaf7b55a34a7c89551197f66e94"
DEPENDS = "zeromq"
-SRCREV = "6aa3ab686e916cb0e62df7fa7d12e0b13ae9fae6"
-PV = "4.2.3+git${SRCPV}"
+SRCREV = "213da0b04ae3b4d846c9abc46bab87f86bfb9cf4"
+PV = "4.3.0"
SRC_URI = "git://github.com/zeromq/cppzmq.git"
@@ -13,6 +13,8 @@ S = "${WORKDIR}/git"
inherit cmake
+EXTRA_OECMAKE = "-DCPPZMQ_BUILD_TESTS=OFF"
+
PACKAGES = "${PN}-dev"
RDEPENDS_${PN}-dev = "zeromq-dev"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/czmq_4.1.1.bb b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/czmq_4.2.0.bb
index f2db0041c..4ec1c0409 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/czmq_4.1.1.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/czmq_4.2.0.bb
@@ -1,15 +1,13 @@
-DESCRIPTION = "C bindings for ZeroMQ"
-HOMEPAGE = "http://www.zeromq.org"
+DESCRIPTION = "High-level C binding for 0MQ"
+HOMEPAGE = "http://czmq.zeromq.org/"
LICENSE = "MPL-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=9741c346eef56131163e13b9db1241b3"
DEPENDS = "zeromq"
-SRC_URI = "https://github.com/zeromq/czmq/releases/download/v${PV}/czmq-${PV}.tar.gz \
- file://0001-Problem-out-of-date-with-zproject.patch \
-"
+SRC_URI = "https://github.com/zeromq/czmq/releases/download/v${PV}/czmq-${PV}.tar.gz"
-SRC_URI[md5sum] = "6d3a6fdd25c2bb29897c53670dce97bf"
-SRC_URI[sha256sum] = "f00ff419881dc2a05d0686c8467cd89b4882677fc56f31c0e2cc81c134cbb0c0"
+SRC_URI[md5sum] = "7e09997db6ac3b25e8ed104053040722"
+SRC_URI[sha256sum] = "cfab29c2b3cc8a845749758a51e1dd5f5160c1ef57e2a41ea96e4c2dcc8feceb"
inherit cmake
@@ -17,14 +15,16 @@ PACKAGES = "lib${BPN} lib${BPN}-dev lib${BPN}-staticdev ${PN} ${PN}-dbg"
FILES_${PN} = "${bindir}/*"
FILES_lib${BPN} = "${libdir}/*.so.*"
-FILES_lib${BPN}-dev = "${libdir}/*.so ${libdir}/pkgconfig ${includedir}"
+FILES_lib${BPN}-dev = "${libdir}/*.so ${libdir}/pkgconfig ${includedir} ${datadir}/cmake"
FILES_lib${BPN}-staticdev = "${libdir}/lib*.a"
RDEPENDS_lib${BPN}-dev = "zeromq-dev"
-PACKAGECONFIG ??= "lz4 uuid"
+PACKAGECONFIG ??= "lz4 uuid curl ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
PACKAGECONFIG[lz4] = ",-DCMAKE_DISABLE_FIND_PACKAGE_lz4=TRUE,lz4"
PACKAGECONFIG[uuid] = ",-DCMAKE_DISABLE_FIND_PACKAGE_uuid=TRUE,util-linux"
+PACKAGECONFIG[curl] = ",-DCMAKE_DISABLE_FIND_PACKAGE_libcurl=TRUE,curl"
+PACKAGECONFIG[systemd] = ",-DCMAKE_DISABLE_FIND_PACKAGE_systemd=TRUE,systemd"
BBCLASSEXTEND = "nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/0001-Problem-out-of-date-with-zproject.patch b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/0001-Problem-out-of-date-with-zproject.patch
deleted file mode 100644
index 5f5702c8c..000000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/0001-Problem-out-of-date-with-zproject.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From d155ffd33630f80b23c31b3a6e01da221dd9bd13 Mon Sep 17 00:00:00 2001
-From: Luca Boccassi <luca.boccassi@gmail.com>
-Date: Fri, 30 Mar 2018 16:36:22 +0100
-Subject: [PATCH] Problem: out of date with zproject
-
-Upstream-Status: backport
-Signed-off-by: Adrian Bunk <bunk@stusta.de>
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index a3b81722..4f203461 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -38,7 +38,7 @@ if (NOT CMAKE_BUILD_TYPE)
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- message(STATUS "git workspace root [${git_result}]: ${git_root}")
-- if ( "${git_result}" == "0" )
-+ if ( "${git_result}" STREQUAL "0" )
- set (CMAKE_BUILD_TYPE Debug)
- else ()
- set (CMAKE_BUILD_TYPE Release)
-@@ -608,7 +608,7 @@ add_custom_command(
- TARGET distclean
- )
-
--include(ClangFormat)
-+include(ClangFormat OPTIONAL)
-
- ########################################################################
- # summary
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.2.5.bb b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.2.5.bb
deleted file mode 100644
index 356348b43..000000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.2.5.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-DESCRIPTION = "ZeroMQ looks like an embeddable networking library but acts like a concurrency framework"
-HOMEPAGE = "http://www.zeromq.org"
-LICENSE = "LGPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=d5311495d952062e0e4fbba39cbf3de1"
-
-PACKAGECONFIG ??= "libsodium"
-PACKAGECONFIG[libsodium] = "--with-libsodium, --without-libsodium, libsodium"
-
-SRC_URI = "http://github.com/zeromq/libzmq/releases/download/v${PV}/zeromq-${PV}.tar.gz \
- file://run-ptest \
-"
-SRC_URI[md5sum] = "a1c95b34384257e986842f4d006957b8"
-SRC_URI[sha256sum] = "cc9090ba35713d59bb2f7d7965f877036c49c5558ea0c290b0dcc6f2a17e489f"
-
-S = "${WORKDIR}/zeromq-${PV}"
-
-#Uncomment to choose polling system manually. valid values are kqueue, epoll, devpoll, poll or select
-#EXTRA_OECONF += "--with-poller=kqueue"
-#CFLAGS_append = " -O0"
-#CXXFLAGS_append = " -O0"
-
-inherit autotools ptest pkgconfig
-
-do_compile_ptest () {
- echo 'buildtest-TESTS: $(check_PROGRAMS)' >> ${B}/Makefile
- oe_runmake buildtest-TESTS
-}
-
-do_install_ptest () {
- install -d ${D}${PTEST_PATH}/tests
- install -m 0755 ${B}/tests/.libs/test_* ${D}${PTEST_PATH}/tests
-}
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.1.bb b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.1.bb
new file mode 100644
index 000000000..6e1337646
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.1.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "ZeroMQ looks like an embeddable networking library but acts like a concurrency framework"
+HOMEPAGE = "http://www.zeromq.org"
+LICENSE = "LGPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=d5311495d952062e0e4fbba39cbf3de1"
+
+PACKAGECONFIG ??= "libsodium"
+PACKAGECONFIG[libsodium] = "-DWITH_LIBSODIUM=ON,-DWITH_LIBSODIUM=OFF, libsodium"
+
+SRC_URI = "http://github.com/zeromq/libzmq/releases/download/v${PV}/zeromq-${PV}.tar.gz \
+ file://run-ptest \
+"
+SRC_URI[md5sum] = "64cbf3577afdbfda30358bc757a6ac83"
+SRC_URI[sha256sum] = "bcbabe1e2c7d0eec4ed612e10b94b112dd5f06fcefa994a0c79a45d835cd21eb"
+
+inherit cmake ptest pkgconfig
+
+EXTRA_OECMAKE = "${@bb.utils.contains('PTEST_ENABLED', '1', '-DBUILD_TESTS=ON', '-DBUILD_TESTS=OFF', d)} \
+ -DCMAKE_SKIP_RPATH=ON \
+"
+
+do_install_ptest () {
+ install -d ${D}${PTEST_PATH}/tests
+ install -m 0755 ${B}/bin/test_* ${D}${PTEST_PATH}/tests
+}
+
+FILES_${PN}-doc += "${datadir}/zmq/*.txt"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools-conf/android-gadget-setup b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools-conf/android-gadget-setup
index f7d997372..beca353e6 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools-conf/android-gadget-setup
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools-conf/android-gadget-setup
@@ -1,5 +1,8 @@
#!/bin/sh
+[ ! -e /dev/pts ] && mkdir -p /dev/pts
+[ ! -e /dev/pts/0 ] && mount devpts /dev/pts -t devpts
+
# TODO enable the lines below once we have support for getprop
# retrieve the product info from Android
# manufacturer=$(getprop ro.product.manufacturer Android)
@@ -17,7 +20,7 @@ echo $manufacturer > /sys/class/android_usb/android0/iManufacturer
echo $model > /sys/class/android_usb/android0/iProduct
echo "0" > /sys/class/android_usb/android0/enable
-echo "18d1" > /sys/class/android_usbid_usb/android0/idVendor
+echo "18d1" > /sys/class/android_usb/android0/idVendor
echo "D002" > /sys/class/android_usb/android0/idProduct
echo "adb" > /sys/class/android_usb/android0/functions
echo "1" > /sys/class/android_usb/android0/enable
diff --git a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.15.bb b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.15.bb
index 784684620..2435b587d 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.15.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.15.bb
@@ -4,8 +4,6 @@ HOMEPAGE = "http://www.doxygen.org/"
LICENSE = "GPL-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-inherit cmake python3native
-
DEPENDS = "flex-native bison-native"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.src.tar.gz \
@@ -13,4 +11,11 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.src.tar.gz \
SRC_URI[md5sum] = "2c98c73eba392d334f5bbaf15e09bae3"
SRC_URI[sha256sum] = "bd9c0ec462b6a9b5b41ede97bede5458e0d7bb40d4cfa27f6f622eb33c59245d"
+inherit cmake python3native
+
+# Avoid the following error:
+# ninja: error: build.ninja:1948: multiple rules generate
+# generated_src/configvalues.h [-w dupbuild=err]
+EXTRA_OECMAKE_BUILD += "-w dupbuild=warn"
+
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20181209-3.1.bb b/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20190324-3.1.bb
index c0a3d2136..9d333e7aa 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20181209-3.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20190324-3.1.bb
@@ -15,8 +15,8 @@ FETCHCMD_wget += "-U bitbake"
SRC_URI = "http://www.thrysoee.dk/editline/${BPN}-${PV}.tar.gz \
file://stdc-predef.patch \
"
-SRC_URI[md5sum] = "22e945a0476e388e6f78bfc8d6e1192c"
-SRC_URI[sha256sum] = "2811d70c0b000f2ca91b7cb1a37203134441743c4fcc9c37b0b687f328611064"
+SRC_URI[md5sum] = "bec755c8044ad84b752dfe49a0b371d8"
+SRC_URI[sha256sum] = "ac8f0f51c1cf65492e4d1e3ed2be360bda41e54633444666422fbf393bba1bae"
S = "${WORKDIR}/${BPN}-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc/0001-Fix-parallel-build-fix-port-internal-make-dependenci.patch b/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc/0001-Fix-parallel-build-fix-port-internal-make-dependenci.patch
new file mode 100644
index 000000000..8505ea34c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc/0001-Fix-parallel-build-fix-port-internal-make-dependenci.patch
@@ -0,0 +1,33 @@
+From 67d808b8739817c122bed8ba1a8308d01cb5ad0b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 6 Apr 2019 17:28:28 -0700
+Subject: [PATCH] Fix parallel build (fix port-internal make dependencies) on
+ many cores
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ server/drivers/Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/server/drivers/Makefile.am b/server/drivers/Makefile.am
+index 0c23a9b..6777047 100644
+--- a/server/drivers/Makefile.am
++++ b/server/drivers/Makefile.am
+@@ -47,11 +47,11 @@ CwLnx_LDADD = libLCD.a libbignum.a
+ futaba_LDADD = @LIBUSB_LIBS@ @LIBUSB_1_0_LIBS@ libLCD.a
+ g15_LDADD = @LIBG15@
+ glcd_LDADD = libLCD.a @GLCD_DRIVERS@ @FT2_LIBS@ @LIBPNG_LIBS@ @LIBSERDISP@ @LIBUSB_LIBS@ @LIBX11_LIBS@
+-glcd_DEPENDENCIES = @GLCD_DRIVERS@ glcd-glcd-render.o
++glcd_DEPENDENCIES = @GLCD_DRIVERS@ glcd-glcd-render.o libLCD.a
+ glcdlib_LDADD = @LIBGLCD@
+ glk_LDADD = libbignum.a
+ hd44780_LDADD = libLCD.a @HD44780_DRIVERS@ @HD44780_I2C@ @LIBUSB_LIBS@ @LIBFTDI_LIBS@ @LIBUGPIO@ libbignum.a
+-hd44780_DEPENDENCIES = @HD44780_DRIVERS@ @HD44780_I2C@
++hd44780_DEPENDENCIES = @HD44780_DRIVERS@ @HD44780_I2C@ libLCD.a libbignum.a
+ i2500vfd_LDADD = @LIBFTDI_LIBS@
+ imon_LDADD = libLCD.a libbignum.a
+ imonlcd_LDADD = libLCD.a
+--
+2.21.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb b/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb
index 135499789..7ddc55f5e 100644
--- a/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb
@@ -11,8 +11,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=18810669f13b87348459e611d31ab760 \
BASEPV = "0.5.9"
PV = "${BASEPV}+git${SRCPV}"
-SRCREV = "a4b5a7e058fdd0d914a61138748b589c0128b45b"
+SRCREV = "e08546c13a4157ed98cd4a8e9086e7acd66f93c0"
SRC_URI = "git://github.com/lcdproc/lcdproc \
+ file://0001-Fix-parallel-build-fix-port-internal-make-dependenci.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.4.bb b/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.4.bb
index d438a0abc..cc45fa7e2 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.4.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.4.bb
@@ -1,7 +1,4 @@
require libmodbus.inc
-# Use the stable branch by default
-DEFAULT_PREFERENCE = "-1"
-
SRC_URI[md5sum] = "b1a8fd3a40d2db4de51fb0cbcb201806"
SRC_URI[sha256sum] = "c8c862b0e9a7ba699a49bc98f62bdffdfafd53a5716c0e162696b4bf108d3637"
diff --git a/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.17.bb b/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb
index 4354fff9a..c76e0f69e 100644
--- a/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.17.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb
@@ -9,8 +9,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
DEPENDS = "liblockfile"
SRC_URI = "http://ftp.de.debian.org/debian/pool/main/l/${BPN}/${BPN}_${PV}.tar.gz"
-SRC_URI[md5sum] = "64424a766fbc8cf6d613fcc14a096e14"
-SRC_URI[sha256sum] = "03fb05d25499532f497775b1747b61fa6beebf12d3bcc951e125349ae166c511"
+SRC_URI[md5sum] = "4eb83bdf88016db836b7cc09591fb0f3"
+SRC_URI[sha256sum] = "a42995a4b97e6188efc90fcc1a761163c4b2cff5c81b936f85c84301ddb05ce6"
do_compile() {
oe_runmake CFLAGS=' -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables'
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.12.bb b/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.12.bb
index af99537f5..f09d226cc 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.12.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.12.bb
@@ -31,6 +31,10 @@ GROUPADD_PARAM_${PN} = "--system redis"
REDIS_ON_SYSTEMD = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}"
+do_compile_prepend() {
+ (cd deps && oe_runmake hiredis lua jemalloc linenoise)
+}
+
do_install() {
export PREFIX=${D}/${prefix}
oe_runmake install
diff --git a/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.0.bb b/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.0.bb
index ff9957480..4a6c44669 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.0.bb
@@ -50,6 +50,7 @@ EXTRA_OECONF = " \
--disable-tcl \
--disable-rpath \
--enable-nls=${USE_NLS} \
+ --disable-docs \
"
export STAGING_LIBDIR
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.1903.0.bb b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.1903.0.bb
index e06141e81..f1a6e8535 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.1903.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.1903.0.bb
@@ -68,6 +68,7 @@ PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp,"
PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls,"
PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd,"
PACKAGECONFIG[imjournal] = "--enable-imjournal,--disable-imjournal,"
+PACKAGECONFIG[mmjsonparse] = "--enable-mmjsonparse,--disable-mmjsonparse,"
PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5,"
PACKAGECONFIG[postgresql] = "--enable-pgsql,--disable-pgsql,postgresql,"
PACKAGECONFIG[libdbi] = "--enable-libdbi,--disable-libdbi,libdbi,"
@@ -136,6 +137,10 @@ do_install_append() {
install -d 0755 ${D}${sysconfdir}/rsyslog.d
echo '$ModLoad imjournal' >> ${D}${sysconfdir}/rsyslog.d/imjournal.conf
fi
+ if ${@bb.utils.contains('PACKAGECONFIG', 'mmjsonparse', 'true', 'false', d)}; then
+ install -d 0755 ${D}${sysconfdir}/rsyslog.d
+ echo '$ModLoad mmjsonparse' >> ${D}${sysconfdir}/rsyslog.d/mmjsonparse.conf
+ fi
}
FILES_${PN} += "${bindir}"
diff --git a/meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.22.0.bb b/meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.22.0.bb
index c1ead0670..dd1b53e39 100644
--- a/meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.22.0.bb
+++ b/meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.22.0.bb
@@ -5,7 +5,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4b54a1fd55a448865a0b32d41598759d"
DEPENDS = "gnome-common gtk+3 intltool-native"
-inherit gnomebase gobject-introspection gtk-doc gtk-icon-cache
+inherit gnomebase gobject-introspection gtk-doc gtk-icon-cache distro_features_check
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+UNKNOWN_CONFIGURE_WHITELIST_append = " --enable-introspection --disable-introspection"
SRC_URI[archive.md5sum] = "a20dc55c3f88ad06da9491cfd7de7558"
SRC_URI[archive.sha256sum] = "5b2fc0f53962b25bca131a5ec0139e6fef8e254481b6e777975f7a1d2702a962"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_git.bb b/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_git.bb
index 88a859ba2..6a806ffba 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_git.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_git.bb
@@ -25,6 +25,9 @@ PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF,systemd"
PACKAGECONFIG[sdl] = "-DWITH_SDL=ON,-DWITH_SDL=OFF,libsdl2"
PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib"
+PACKAGE_BEFORE_PN = "libvncclient"
+FILES_libvncclient = "${libdir}/libvncclient.*"
+
inherit cmake
SRC_URI = "git://github.com/LibVNC/libvncserver"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch b/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch
index 5299945e1..835b26601 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch
+++ b/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch
@@ -1,18 +1,28 @@
-Index: alsa-oss-1.0.28/alsa/stdioemu.c
-===================================================================
---- alsa-oss-1.0.28.orig/alsa/stdioemu.c
-+++ alsa-oss-1.0.28/alsa/stdioemu.c
+From 54b1c2e27bf81f94c727b4923d4ed592110e2796 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sun, 29 May 2011 21:05:15 +0200
+
+---
+ alsa/stdioemu.c | 8 +++++++-
+ configure.ac | 6 ++++++
+ 2 files changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/alsa/stdioemu.c b/alsa/stdioemu.c
+index f7f9ab5..b673fe3 100644
+--- a/alsa/stdioemu.c
++++ b/alsa/stdioemu.c
@@ -37,7 +37,9 @@
#endif
#include <stdio.h>
+-
+#ifdef HAVE_LIBIO_H
- #include <libio.h>
++#include <libio.h>
+#endif
-
struct fd_cookie {
int fd;
-@@ -99,7 +101,11 @@ static FILE *fake_fopen(const char *path
+ };
+@@ -98,7 +100,11 @@ static FILE *fake_fopen(const char *path, const char *mode, int flags)
if (open_mode && fdc->fd > 0) {
result = fopencookie (fdc,"w", fns);
@@ -24,10 +34,10 @@ Index: alsa-oss-1.0.28/alsa/stdioemu.c
}
return result;
}
-Index: alsa-oss-1.0.28/configure.ac
-===================================================================
---- alsa-oss-1.0.28.orig/configure.ac
-+++ alsa-oss-1.0.28/configure.ac
+diff --git a/configure.ac b/configure.ac
+index 583b95f..60a1025 100644
+--- a/configure.ac
++++ b/configure.ac
@@ -35,6 +35,12 @@ if test "$with_aoss" = "yes"; then
LIBS="$OLD_LIBS"
fi
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.6.bb b/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.8.bb
index 6c2176f79..46ab50316 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.6.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.8.bb
@@ -30,8 +30,8 @@ DEPENDS = "alsa-lib"
SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2 \
file://libio.patch \
"
-SRC_URI[md5sum] = "fc845cafc4444193510ab1865c7350b8"
-SRC_URI[sha256sum] = "c3d3f743e61f05ff95c5cba3b06bc9c91ff86c37495f1d19dab844e6b90845ea"
+SRC_URI[md5sum] = "9ec4bb783fdce19032aace086d65d874"
+SRC_URI[sha256sum] = "64adcef5927e848d2e024e64c4bf85b6f395964d9974ec61905ae4cb8d35d68e"
inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.10.1.bb b/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.10.1.bb
deleted file mode 100644
index 26e191bd3..000000000
--- a/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.10.1.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require augeas.inc
-
-SRC_URI[md5sum] = "6c0b2ea6eec45e8bc374b283aedf27ce"
-SRC_URI[sha256sum] = "52db256afab261d31cc147eaa1a71795a5fec59e888dfd0b65a84c7aacd6364d"
diff --git a/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.11.0.bb b/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.11.0.bb
new file mode 100644
index 000000000..cdd11beec
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.11.0.bb
@@ -0,0 +1,4 @@
+require augeas.inc
+
+SRC_URI[md5sum] = "abf51f4c0cf3901d167f23687f60434a"
+SRC_URI[sha256sum] = "393ce8f4055af89cd4c20bf903eacbbd909cf427891f41b56dc2ba66243ea0b0"
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/1094.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/1094.patch
new file mode 100644
index 000000000..3daad97f0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/1094.patch
@@ -0,0 +1,307 @@
+From d672de675a16e5ab9efcf783705cbd171f38188e Mon Sep 17 00:00:00 2001
+From: "Billy O'Neal (VC LIBS)" <bion@microsoft.com>
+Date: Thu, 28 Mar 2019 15:17:12 -0700
+Subject: [PATCH] Avoid tripping over 32 bit time_t mistakes.
+
+Resolves https://github.com/Microsoft/cpprestsdk/issues/1090
+---
+ Release/src/utilities/asyncrt_utils.cpp | 30 ++---
+ Release/tests/functional/utils/datetime.cpp | 140 ++++++++++----------
+ 2 files changed, 84 insertions(+), 86 deletions(-)
+
+diff --git a/Release/src/utilities/asyncrt_utils.cpp b/Release/src/utilities/asyncrt_utils.cpp
+index 4a692e5fa..986b64bb7 100644
+--- a/Release/src/utilities/asyncrt_utils.cpp
++++ b/Release/src/utilities/asyncrt_utils.cpp
+@@ -618,7 +618,7 @@ std::string __cdecl conversions::to_utf8string(const utf16string& value) { retur
+
+ utf16string __cdecl conversions::to_utf16string(const std::string& value) { return utf8_to_utf16(value); }
+
+-static const uint64_t ntToUnixOffsetSeconds = 11644473600U; // diff between windows and unix epochs (seconds)
++static const int64_t ntToUnixOffsetSeconds = 11644473600; // diff between windows and unix epochs (seconds)
+
+ datetime __cdecl datetime::utc_now()
+ {
+@@ -634,10 +634,10 @@ datetime __cdecl datetime::utc_now()
+ #else // LINUX
+ struct timeval time;
+ gettimeofday(&time, nullptr);
+- uint64_t result = ntToUnixOffsetSeconds + time.tv_sec;
++ int64_t result = ntToUnixOffsetSeconds + time.tv_sec;
+ result *= _secondTicks; // convert to 10e-7
+ result += time.tv_usec * 10; // convert and add microseconds, 10e-6 to 10e-7
+- return datetime(result);
++ return datetime(static_cast<interval_type>(result));
+ #endif
+ }
+
+@@ -646,7 +646,7 @@ static const char monthNames[] = "Jan\0Feb\0Mar\0Apr\0May\0Jun\0Jul\0Aug\0Sep\0O
+
+ utility::string_t datetime::to_string(date_format format) const
+ {
+- const uint64_t input = m_interval / _secondTicks; // convert to seconds
++ const int64_t input = static_cast<int64_t>(m_interval / _secondTicks); // convert to seconds
+ const int frac_sec = static_cast<int>(m_interval % _secondTicks);
+ const time_t time = static_cast<time_t>(input - ntToUnixOffsetSeconds);
+ struct tm t;
+@@ -797,22 +797,20 @@ static int atoi2(const CharT* str)
+ return (static_cast<unsigned char>(str[0]) - '0') * 10 + (static_cast<unsigned char>(str[1]) - '0');
+ }
+
+-static const time_t maxTimeT = sizeof(time_t) == 4 ? (time_t)INT_MAX : (time_t)LLONG_MAX;
+-
+-static time_t timezone_adjust(time_t result, unsigned char chSign, int adjustHours, int adjustMinutes)
++static int64_t timezone_adjust(int64_t result, unsigned char chSign, int adjustHours, int adjustMinutes)
+ {
+ if (adjustHours > 23)
+ {
+- return (time_t)-1;
++ return -1;
+ }
+
+ // adjustMinutes > 59 is impossible due to digit 5 check
+ const int tzAdjust = adjustMinutes * 60 + adjustHours * 60 * 60;
+ if (chSign == '-')
+ {
+- if (maxTimeT - result < tzAdjust)
++ if (INT64_MAX - result < tzAdjust)
+ {
+- return (time_t)-1;
++ return -1;
+ }
+
+ result += tzAdjust;
+@@ -821,7 +819,7 @@ static time_t timezone_adjust(time_t result, unsigned char chSign, int adjustHou
+ {
+ if (tzAdjust > result)
+ {
+- return (time_t)-1;
++ return -1;
+ }
+
+ result -= tzAdjust;
+@@ -830,10 +828,10 @@ static time_t timezone_adjust(time_t result, unsigned char chSign, int adjustHou
+ return result;
+ }
+
+-static time_t make_gm_time(struct tm* t)
++static int64_t make_gm_time(struct tm* t)
+ {
+ #ifdef _MSC_VER
+- return _mkgmtime(t);
++ return static_cast<int64_t>(_mkgmtime(t));
+ #elif (defined(ANDROID) || defined(__ANDROID__))
+ // HACK: The (nonportable?) POSIX function timegm is not available in
+ // bionic. As a workaround[1][2], we set the C library timezone to
+@@ -867,9 +865,9 @@ static time_t make_gm_time(struct tm* t)
+ unsetenv("TZ");
+ }
+ }
+- return time;
++ return static_cast<int64_t>(time);
+ #else // ^^^ ANDROID // Other POSIX platforms vvv
+- return timegm(t);
++ return static_cast<int64_t>(timegm(t));
+ #endif // _MSC_VER
+ }
+
+@@ -916,7 +914,7 @@ zone = "UT" / "GMT" ; Universal Time
+ datetime __cdecl datetime::from_string(const utility::string_t& dateString, date_format format)
+ {
+ datetime result;
+- time_t seconds;
++ int64_t seconds;
+ uint64_t frac_sec = 0;
+ struct tm t{};
+ auto str = dateString.c_str();
+diff --git a/Release/tests/functional/utils/datetime.cpp b/Release/tests/functional/utils/datetime.cpp
+index ae7f7a5e4..acd6fddb0 100644
+--- a/Release/tests/functional/utils/datetime.cpp
++++ b/Release/tests/functional/utils/datetime.cpp
+@@ -133,75 +133,77 @@ SUITE(datetime)
+
+ TEST(parsing_time_rfc1123_accepts_each_day)
+ {
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:00:00 GMT"), (time_t) 0);
+- TestRfc1123IsTimeT(_XPLATSTR("Fri, 02 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 1);
+- TestRfc1123IsTimeT(_XPLATSTR("Sat, 03 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 2);
+- TestRfc1123IsTimeT(_XPLATSTR("Sun, 04 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 3);
+- TestRfc1123IsTimeT(_XPLATSTR("Mon, 05 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 4);
+- TestRfc1123IsTimeT(_XPLATSTR("Tue, 06 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 5);
+- TestRfc1123IsTimeT(_XPLATSTR("Wed, 07 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 6);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:00:00 GMT"), (time_t)0);
++ TestRfc1123IsTimeT(_XPLATSTR("Fri, 02 Jan 1970 00:00:00 GMT"), (time_t)86400 * 1);
++ TestRfc1123IsTimeT(_XPLATSTR("Sat, 03 Jan 1970 00:00:00 GMT"), (time_t)86400 * 2);
++ TestRfc1123IsTimeT(_XPLATSTR("Sun, 04 Jan 1970 00:00:00 GMT"), (time_t)86400 * 3);
++ TestRfc1123IsTimeT(_XPLATSTR("Mon, 05 Jan 1970 00:00:00 GMT"), (time_t)86400 * 4);
++ TestRfc1123IsTimeT(_XPLATSTR("Tue, 06 Jan 1970 00:00:00 GMT"), (time_t)86400 * 5);
++ TestRfc1123IsTimeT(_XPLATSTR("Wed, 07 Jan 1970 00:00:00 GMT"), (time_t)86400 * 6);
+ }
+
+ TEST(parsing_time_rfc1123_boundary_cases)
+ {
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:00:00 GMT"), (time_t) 0);
+- TestRfc1123IsTimeT(_XPLATSTR("19 Jan 2038 03:14:06 GMT"), (time_t) INT_MAX - 1);
+-#ifndef _USE_32BIT_TIME_T
+- TestRfc1123IsTimeT(_XPLATSTR("19 Jan 2038 03:13:07 -0001"), (time_t) INT_MAX);
+- TestRfc1123IsTimeT(_XPLATSTR("19 Jan 2038 03:14:07 -0000"), (time_t) INT_MAX);
+-#endif // _USE_32BIT_TIME_T
+- TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 +0000"), (time_t) 1547507781);
+- TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 -0001"), (time_t) 1547507841);
+- TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 +0001"), (time_t) 1547507721);
+- TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 -0100"), (time_t) 1547511381);
+- TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 +0100"), (time_t) 1547504181);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:00:00 GMT"), (time_t)0);
++ TestRfc1123IsTimeT(_XPLATSTR("19 Jan 2038 03:14:06 GMT"), (time_t)INT_MAX - 1);
++ if (sizeof(time_t) == 8)
++ {
++ TestRfc1123IsTimeT(_XPLATSTR("19 Jan 2038 03:13:07 -0001"), (time_t)INT_MAX);
++ TestRfc1123IsTimeT(_XPLATSTR("19 Jan 2038 03:14:07 -0000"), (time_t)INT_MAX);
++ }
++ TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 +0000"), (time_t)1547507781);
++ TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 -0001"), (time_t)1547507841);
++ TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 +0001"), (time_t)1547507721);
++ TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 -0100"), (time_t)1547511381);
++ TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 +0100"), (time_t)1547504181);
+ }
+
+ TEST(parsing_time_rfc1123_uses_each_field)
+ {
+- TestRfc1123IsTimeT(_XPLATSTR("02 Jan 1970 00:00:00 GMT"), (time_t) 86400);
+- TestRfc1123IsTimeT(_XPLATSTR("12 Jan 1970 00:00:00 GMT"), (time_t) 950400);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Feb 1970 00:00:00 GMT"), (time_t) 2678400);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 2000 00:00:00 GMT"), (time_t) 946684800);
+-#ifndef _USE_32BIT_TIME_T
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 2100 00:00:00 GMT"), (time_t) 4102444800);
+-#endif // _USE_32BIT_TIME_T
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1990 00:00:00 GMT"), (time_t) 631152000);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1971 00:00:00 GMT"), (time_t) 31536000);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 10:00:00 GMT"), (time_t) 36000);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 01:00:00 GMT"), (time_t) 3600);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:10:00 GMT"), (time_t) 600);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:01:00 GMT"), (time_t) 60);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:00:10 GMT"), (time_t) 10);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:00:01 GMT"), (time_t) 1);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 10:00:00 GMT"), (time_t) 36000);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 02:00:00 PST"), (time_t) 36000);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 03:00:00 PDT"), (time_t) 36000);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 03:00:00 MST"), (time_t) 36000);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 04:00:00 MDT"), (time_t) 36000);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 04:00:00 CST"), (time_t) 36000);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 05:00:00 CDT"), (time_t) 36000);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 05:00:00 EST"), (time_t) 36000);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 06:00:00 EDT"), (time_t) 36000);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 06:00:00 -0400"), (time_t) 36000);
+- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 05:59:00 -0401"), (time_t) 36000);
++ TestRfc1123IsTimeT(_XPLATSTR("02 Jan 1970 00:00:00 GMT"), (time_t)86400);
++ TestRfc1123IsTimeT(_XPLATSTR("12 Jan 1970 00:00:00 GMT"), (time_t)950400);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Feb 1970 00:00:00 GMT"), (time_t)2678400);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 2000 00:00:00 GMT"), (time_t)946684800);
++ if (sizeof(time_t) == 8)
++ {
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 2100 00:00:00 GMT"), (time_t)4102444800);
++ }
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1990 00:00:00 GMT"), (time_t)631152000);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1971 00:00:00 GMT"), (time_t)31536000);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 10:00:00 GMT"), (time_t)36000);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 01:00:00 GMT"), (time_t)3600);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:10:00 GMT"), (time_t)600);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:01:00 GMT"), (time_t)60);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:00:10 GMT"), (time_t)10);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:00:01 GMT"), (time_t)1);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 10:00:00 GMT"), (time_t)36000);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 02:00:00 PST"), (time_t)36000);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 03:00:00 PDT"), (time_t)36000);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 03:00:00 MST"), (time_t)36000);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 04:00:00 MDT"), (time_t)36000);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 04:00:00 CST"), (time_t)36000);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 05:00:00 CDT"), (time_t)36000);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 05:00:00 EST"), (time_t)36000);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 06:00:00 EDT"), (time_t)36000);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 06:00:00 -0400"), (time_t)36000);
++ TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 05:59:00 -0401"), (time_t)36000);
+ }
+
+ TEST(parsing_time_rfc1123_max_days)
+ {
+- TestRfc1123IsTimeT(_XPLATSTR("31 Jan 1970 00:00:00 GMT"), (time_t) 2592000);
+- TestRfc1123IsTimeT(_XPLATSTR("28 Feb 2019 00:00:00 GMT"), (time_t) 1551312000); // non leap year allows feb 28
+- TestRfc1123IsTimeT(_XPLATSTR("29 Feb 2020 00:00:00 GMT"), (time_t) 1582934400); // leap year allows feb 29
+- TestRfc1123IsTimeT(_XPLATSTR("31 Mar 1970 00:00:00 GMT"), (time_t) 7689600);
+- TestRfc1123IsTimeT(_XPLATSTR("30 Apr 1970 00:00:00 GMT"), (time_t) 10281600);
+- TestRfc1123IsTimeT(_XPLATSTR("31 May 1970 00:00:00 GMT"), (time_t) 12960000);
+- TestRfc1123IsTimeT(_XPLATSTR("30 Jun 1970 00:00:00 GMT"), (time_t) 15552000);
+- TestRfc1123IsTimeT(_XPLATSTR("31 Jul 1970 00:00:00 GMT"), (time_t) 18230400);
+- TestRfc1123IsTimeT(_XPLATSTR("31 Aug 1970 00:00:00 GMT"), (time_t) 20908800);
+- TestRfc1123IsTimeT(_XPLATSTR("30 Sep 1970 00:00:00 GMT"), (time_t) 23500800);
+- TestRfc1123IsTimeT(_XPLATSTR("31 Oct 1970 00:00:00 GMT"), (time_t) 26179200);
+- TestRfc1123IsTimeT(_XPLATSTR("30 Nov 1970 00:00:00 GMT"), (time_t) 28771200);
+- TestRfc1123IsTimeT(_XPLATSTR("31 Dec 1970 00:00:00 GMT"), (time_t) 31449600);
++ TestRfc1123IsTimeT(_XPLATSTR("31 Jan 1970 00:00:00 GMT"), (time_t)2592000);
++ TestRfc1123IsTimeT(_XPLATSTR("28 Feb 2019 00:00:00 GMT"), (time_t)1551312000); // non leap year allows feb 28
++ TestRfc1123IsTimeT(_XPLATSTR("29 Feb 2020 00:00:00 GMT"), (time_t)1582934400); // leap year allows feb 29
++ TestRfc1123IsTimeT(_XPLATSTR("31 Mar 1970 00:00:00 GMT"), (time_t)7689600);
++ TestRfc1123IsTimeT(_XPLATSTR("30 Apr 1970 00:00:00 GMT"), (time_t)10281600);
++ TestRfc1123IsTimeT(_XPLATSTR("31 May 1970 00:00:00 GMT"), (time_t)12960000);
++ TestRfc1123IsTimeT(_XPLATSTR("30 Jun 1970 00:00:00 GMT"), (time_t)15552000);
++ TestRfc1123IsTimeT(_XPLATSTR("31 Jul 1970 00:00:00 GMT"), (time_t)18230400);
++ TestRfc1123IsTimeT(_XPLATSTR("31 Aug 1970 00:00:00 GMT"), (time_t)20908800);
++ TestRfc1123IsTimeT(_XPLATSTR("30 Sep 1970 00:00:00 GMT"), (time_t)23500800);
++ TestRfc1123IsTimeT(_XPLATSTR("31 Oct 1970 00:00:00 GMT"), (time_t)26179200);
++ TestRfc1123IsTimeT(_XPLATSTR("30 Nov 1970 00:00:00 GMT"), (time_t)28771200);
++ TestRfc1123IsTimeT(_XPLATSTR("31 Dec 1970 00:00:00 GMT"), (time_t)31449600);
+ }
+
+ TEST(parsing_time_rfc1123_invalid_cases)
+@@ -266,7 +268,7 @@ SUITE(datetime)
+ _XPLATSTR("Thu, 01 Jan 1970 00:00:00 G"),
+ _XPLATSTR("Thu, 01 Jan 1970 00:00:00 GM"),
+ _XPLATSTR("Fri, 01 Jan 1970 00:00:00 GMT"), // wrong day
+- _XPLATSTR("01 Jan 4970 00:00:00 GMT"), // year too big
++ _XPLATSTR("01 Jan 4970 00:00:00 GMT"), // year too big
+ _XPLATSTR("01 Jan 3001 00:00:00 GMT"),
+ _XPLATSTR("01 Xxx 1971 00:00:00 GMT"), // month bad
+ _XPLATSTR("00 Jan 1971 00:00:00 GMT"), // day too small
+@@ -288,8 +290,8 @@ SUITE(datetime)
+ _XPLATSTR("01 Jan 1971 00:60:00 GMT"), // minute too big
+ _XPLATSTR("01 Jan 1971 00:00:70 GMT"), // second too big
+ _XPLATSTR("01 Jan 1971 00:00:61 GMT"),
+- _XPLATSTR("01 Jan 1969 00:00:00 GMT"), // underflow
+- _XPLATSTR("01 Jan 1969 00:00:00 CEST"), // bad tz
++ _XPLATSTR("01 Jan 1969 00:00:00 GMT"), // underflow
++ _XPLATSTR("01 Jan 1969 00:00:00 CEST"), // bad tz
+ _XPLATSTR("01 Jan 1970 00:00:00 +2400"), // bad tzoffsets
+ _XPLATSTR("01 Jan 1970 00:00:00 -3000"),
+ _XPLATSTR("01 Jan 1970 00:00:00 +2160"),
+@@ -309,11 +311,12 @@ SUITE(datetime)
+ // boundary cases:
+ TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T00:00:00Z")); // epoch
+ TestDateTimeRoundtrip(_XPLATSTR("2038-01-19T03:14:06+00:00"), _XPLATSTR("2038-01-19T03:14:06Z")); // INT_MAX - 1
+-#ifndef _USE_32BIT_TIME_T
+- TestDateTimeRoundtrip(_XPLATSTR("2038-01-19T03:13:07-00:01"),
+- _XPLATSTR("2038-01-19T03:14:07Z")); // INT_MAX after subtacting 1
+- TestDateTimeRoundtrip(_XPLATSTR("2038-01-19T03:14:07-00:00"), _XPLATSTR("2038-01-19T03:14:07Z"));
+-#endif // _USE_32BIT_TIME_T
++ if (sizeof(time_t) == 8)
++ {
++ TestDateTimeRoundtrip(_XPLATSTR("2038-01-19T03:13:07-00:01"),
++ _XPLATSTR("2038-01-19T03:14:07Z")); // INT_MAX after subtacting 1
++ TestDateTimeRoundtrip(_XPLATSTR("2038-01-19T03:14:07-00:00"), _XPLATSTR("2038-01-19T03:14:07Z"));
++ }
+ }
+
+ TEST(parsing_time_iso8601_uses_each_timezone_digit)
+@@ -456,11 +459,8 @@ SUITE(datetime)
+ _XPLATSTR("1971-01-01T00:60:00Z"), // minute too big
+ _XPLATSTR("1971-01-01T00:00:70Z"), // second too big
+ _XPLATSTR("1971-01-01T00:00:61Z"),
+- _XPLATSTR("1969-01-01T00:00:00Z"), // underflow
+-#ifdef _USE_32BIT_TIME_T
+- _XPLATSTR("3000-01-01T00:00:01Z"), // overflow
+-#endif
+- _XPLATSTR("3001-01-01T00:00:00Z"),
++ _XPLATSTR("1969-01-01T00:00:00Z"), // underflow
++ _XPLATSTR("3001-01-01T00:00:00Z"), // overflow
+ _XPLATSTR("1970-01-01T00:00:00+00:01"), // time zone underflow
+ // _XPLATSTR("1970-01-01T00:00:00.Z"), // accepted as invalid timezone above
+ _XPLATSTR("1970-01-01T00:00:00+24:00"), // bad tzoffsets
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/revert-9b670e5b33dfdbd501d618cd7e7498148ffbd559.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/revert-9b670e5b33dfdbd501d618cd7e7498148ffbd559.patch
deleted file mode 100644
index 9af2cbf36..000000000
--- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/revert-9b670e5b33dfdbd501d618cd7e7498148ffbd559.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Description: revert upstream bugfix (see:https://github.com/Microsoft/cpprestsdk/issues/1090)
-Last-Update: 2019-03-28
-
---- cpprest-2.10.12.orig/Release/src/utilities/asyncrt_utils.cpp
-+++ cpprest-2.10.12/Release/src/utilities/asyncrt_utils.cpp
-@@ -1393,16 +1393,15 @@ utility::seconds __cdecl timespan::xml_d
- return utility::seconds(numSecs);
- }
-
--static const char c_allowed_chars[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
--static const int chars_count = static_cast<int>(sizeof(c_allowed_chars) - 1);
-+static const utility::char_t c_allowed_chars[] =
-+ _XPLATSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
-
- utility::string_t nonce_generator::generate()
- {
-- std::uniform_int_distribution<> distr(0, chars_count - 1);
-+ std::uniform_int_distribution<> distr(0, static_cast<int>(sizeof(c_allowed_chars) / sizeof(utility::char_t)) - 1);
- utility::string_t result;
- result.reserve(length());
-- std::generate_n(std::back_inserter(result), length(),
-- [&] { return static_cast<utility::char_t>(c_allowed_chars[distr(m_random)]); });
-+ std::generate_n(std::back_inserter(result), length(), [&]() { return c_allowed_chars[distr(m_random)]; });
- return result;
- }
-
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/revert-f10d9f8e214516d2c19aa6ef831ee874a58c0479.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/revert-f10d9f8e214516d2c19aa6ef831ee874a58c0479.patch
deleted file mode 100644
index 01e463113..000000000
--- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/revert-f10d9f8e214516d2c19aa6ef831ee874a58c0479.patch
+++ /dev/null
@@ -1,1557 +0,0 @@
-Description: revert upstream bugfix (see:https://github.com/Microsoft/cpprestsdk/issues/1090)
-Last-Update: 2019-03-28
-
---- cpprest-2.10.12.orig/Release/include/cpprest/asyncrt_utils.h
-+++ cpprest-2.10.12/Release/include/cpprest/asyncrt_utils.h
-@@ -630,6 +630,15 @@ private:
- static const interval_type _hourTicks = 60 * 60 * _secondTicks;
- static const interval_type _dayTicks = 24 * 60 * 60 * _secondTicks;
-
-+#ifdef _WIN32
-+ // void* to avoid pulling in windows.h
-+ static _ASYNCRTIMP bool __cdecl system_type_to_datetime(/*SYSTEMTIME*/ void* psysTime,
-+ uint64_t seconds,
-+ datetime* pdt);
-+#else
-+ static datetime timeval_to_datetime(const timeval& time);
-+#endif
-+
- // Private constructor. Use static methods to create an instance.
- datetime(interval_type interval) : m_interval(interval) {}
-
-@@ -690,6 +699,7 @@ public:
- void set_length(int length) { m_length = length; }
-
- private:
-+ static const utility::string_t c_allowed_chars;
- std::mt19937 m_random;
- int m_length;
- };
---- cpprest-2.10.12.orig/Release/src/pch/stdafx.h
-+++ cpprest-2.10.12/Release/src/pch/stdafx.h
-@@ -61,6 +61,7 @@
- #undef BOOST_NO_CXX11_NULLPTR
- #endif
- #include "boost/bind/bind.hpp"
-+#include "boost/date_time/posix_time/posix_time_types.hpp"
- #include "boost/thread/condition_variable.hpp"
- #include "boost/thread/mutex.hpp"
- #include <fcntl.h>
---- cpprest-2.10.12.orig/Release/src/utilities/asyncrt_utils.cpp
-+++ cpprest-2.10.12/Release/src/utilities/asyncrt_utils.cpp
-@@ -15,9 +15,20 @@
-
- #include <algorithm>
- #include <cpprest/asyncrt_utils.h>
--#include <stdexcept>
-+#include <sstream>
- #include <string>
--#include <time.h>
-+
-+#ifndef _WIN32
-+#if defined(__clang__)
-+#pragma clang diagnostic push
-+#pragma clang diagnostic ignored "-Wunused-local-typedef"
-+#endif
-+#include <boost/date_time/posix_time/posix_time.hpp>
-+#include <boost/date_time/posix_time/posix_time_io.hpp>
-+#if defined(__clang__)
-+#pragma clang diagnostic pop
-+#endif
-+#endif
-
- using namespace web;
- using namespace utility;
-@@ -618,7 +629,18 @@ std::string __cdecl conversions::to_utf8
-
- utf16string __cdecl conversions::to_utf16string(const std::string& value) { return utf8_to_utf16(value); }
-
--static const uint64_t ntToUnixOffsetSeconds = 11644473600U; // diff between windows and unix epochs (seconds)
-+#ifndef WIN32
-+datetime datetime::timeval_to_datetime(const timeval& time)
-+{
-+ const uint64_t epoch_offset = 11644473600LL; // diff between windows and unix epochs (seconds)
-+ uint64_t result = epoch_offset + time.tv_sec;
-+ result *= _secondTicks; // convert to 10e-7
-+ result += time.tv_usec * 10; // convert and add microseconds, 10e-6 to 10e-7
-+ return datetime(result);
-+}
-+#endif
-+
-+static bool is_digit(utility::char_t c) { return c >= _XPLATSTR('0') && c <= _XPLATSTR('9'); }
-
- datetime __cdecl datetime::utc_now()
- {
-@@ -634,649 +656,450 @@ datetime __cdecl datetime::utc_now()
- #else // LINUX
- struct timeval time;
- gettimeofday(&time, nullptr);
-- uint64_t result = ntToUnixOffsetSeconds + time.tv_sec;
-- result *= _secondTicks; // convert to 10e-7
-- result += time.tv_usec * 10; // convert and add microseconds, 10e-6 to 10e-7
-- return datetime(result);
-+ return timeval_to_datetime(time);
- #endif
- }
-
--static const char dayNames[] = "Sun\0Mon\0Tue\0Wed\0Thu\0Fri\0Sat";
--static const char monthNames[] = "Jan\0Feb\0Mar\0Apr\0May\0Jun\0Jul\0Aug\0Sep\0Oct\0Nov\0Dec";
--
- utility::string_t datetime::to_string(date_format format) const
- {
-- const uint64_t input = m_interval / _secondTicks; // convert to seconds
-- const int frac_sec = static_cast<int>(m_interval % _secondTicks);
-- const time_t time = static_cast<time_t>(input - ntToUnixOffsetSeconds);
-- struct tm t;
--#ifdef _MSC_VER
-- if (gmtime_s(&t, &time) != 0)
--#else // ^^^ _MSC_VER ^^^ // vvv !_MSC_VER vvv
-- if (gmtime_r(&time, &t) == 0)
--#endif // _MSC_VER
-- {
-- throw std::invalid_argument("gmtime_r/s failed on the time supplied");
-- }
--
-- char outBuffer[38]; // Thu, 01 Jan 1970 00:00:00 GMT\0
-- // 1970-01-01T00:00:00.1234567Z\0
-- char* outCursor = outBuffer;
-- switch (format)
-- {
-- case RFC_1123:
--#ifdef _MSC_VER
-- sprintf_s(outCursor,
-- 26,
-- "%s, %02d %s %04d %02d:%02d:%02d",
-- dayNames + 4 * t.tm_wday,
-- t.tm_mday,
-- monthNames + 4 * t.tm_mon,
-- t.tm_year + 1900,
-- t.tm_hour,
-- t.tm_min,
-- t.tm_sec);
--#else // ^^^ _MSC_VER // !_MSC_VER vvv
-- sprintf(outCursor,
-- "%s, %02d %s %04d %02d:%02d:%02d",
-- dayNames + 4 * t.tm_wday,
-- t.tm_mday,
-- monthNames + 4 * t.tm_mon,
-- t.tm_year + 1900,
-- t.tm_hour,
-- t.tm_min,
-- t.tm_sec);
--#endif // _MSC_VER
-- outCursor += 25;
-- memcpy(outCursor, " GMT", 4);
-- outCursor += 4;
-- return utility::string_t(outBuffer, outCursor);
-- case ISO_8601:
--#ifdef _MSC_VER
-- sprintf_s(outCursor,
-- 20,
-- "%04d-%02d-%02dT%02d:%02d:%02d",
-- t.tm_year + 1900,
-- t.tm_mon + 1,
-- t.tm_mday,
-- t.tm_hour,
-- t.tm_min,
-- t.tm_sec);
--#else // ^^^ _MSC_VER // !_MSC_VER vvv
-- sprintf(outCursor,
-- "%04d-%02d-%02dT%02d:%02d:%02d",
-- t.tm_year + 1900,
-- t.tm_mon + 1,
-- t.tm_mday,
-- t.tm_hour,
-- t.tm_min,
-- t.tm_sec);
--#endif // _MSC_VER
-- outCursor += 19;
-- if (frac_sec != 0)
-- {
-- // Append fractional second, which is a 7-digit value with no trailing zeros
-- // This way, '1200' becomes '00012'
--#ifdef _MSC_VER
-- size_t appended = sprintf_s(outCursor, 9, ".%07d", frac_sec);
--#else // ^^^ _MSC_VER // !_MSC_VER vvv
-- size_t appended = sprintf(outCursor, ".%07d", frac_sec);
--#endif // _MSC_VER
-- while (outCursor[appended - 1] == '0')
-- {
-- --appended; // trim trailing zeros
-- }
--
-- outCursor += appended;
-- }
--
-- *outCursor = 'Z';
-- ++outCursor;
-- return utility::string_t(outBuffer, outCursor);
-- default: throw std::invalid_argument("Unrecognized date format.");
-- }
--}
--
--template<class CharT>
--static bool string_starts_with(const CharT* haystack, const char* needle)
--{
-- while (*needle)
-- {
-- if (*haystack != static_cast<CharT>(*needle))
-- {
-- return false;
-- }
--
-- ++haystack;
-- ++needle;
-- }
--
-- return true;
--}
--
--#define ascii_isdigit(c) ((unsigned char)((unsigned char)(c) - '0') <= 9)
--#define ascii_isdigit6(c) ((unsigned char)((unsigned char)(c) - '0') <= 6)
--#define ascii_isdigit5(c) ((unsigned char)((unsigned char)(c) - '0') <= 5)
--#define ascii_isdigit3(c) ((unsigned char)((unsigned char)(c) - '0') <= 3)
--#define ascii_isdigit2(c) ((unsigned char)((unsigned char)(c) - '0') <= 2)
--#define ascii_isdigit1(c) ((unsigned char)((unsigned char)(c) - '0') <= 1)
--
--static const unsigned char max_days_in_month[12] = {
-- 31, // Jan
-- 00, // Feb, special handling for leap years
-- 31, // Mar
-- 30, // Apr
-- 31, // May
-- 30, // Jun
-- 31, // Jul
-- 31, // Aug
-- 30, // Sep
-- 31, // Oct
-- 30, // Nov
-- 31 // Dec
--};
--
--static bool validate_day_month(int day, int month, int year)
--{
-- int maxDaysThisMonth;
-- if (month == 1)
-- { // Feb needs leap year testing
-- maxDaysThisMonth = 28 + (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
-- }
-- else
-- {
-- maxDaysThisMonth = max_days_in_month[month];
-- }
--
-- return day >= 1 && day <= maxDaysThisMonth;
--}
-+#ifdef _WIN32
-+ int status;
-
--template<class CharT>
--static int atoi2(const CharT* str)
--{
-- return (static_cast<unsigned char>(str[0]) - '0') * 10 + (static_cast<unsigned char>(str[1]) - '0');
--}
-+ ULARGE_INTEGER largeInt;
-+ largeInt.QuadPart = m_interval;
-
--static const time_t maxTimeT = sizeof(time_t) == 4 ? (time_t)INT_MAX : (time_t)LLONG_MAX;
-+ FILETIME ft;
-+ ft.dwHighDateTime = largeInt.HighPart;
-+ ft.dwLowDateTime = largeInt.LowPart;
-
--static time_t timezone_adjust(time_t result, unsigned char chSign, int adjustHours, int adjustMinutes)
--{
-- if (adjustHours > 23)
-+ SYSTEMTIME systemTime;
-+ if (!FileTimeToSystemTime((const FILETIME*)&ft, &systemTime))
- {
-- return (time_t)-1;
-+ throw utility::details::create_system_error(GetLastError());
- }
-
-- // adjustMinutes > 59 is impossible due to digit 5 check
-- const int tzAdjust = adjustMinutes * 60 + adjustHours * 60 * 60;
-- if (chSign == '-')
-+ std::wstring result;
-+ if (format == RFC_1123)
- {
-- if (maxTimeT - result < tzAdjust)
- {
-- return (time_t)-1;
-+ wchar_t dateStr[18] = {0};
-+#if _WIN32_WINNT < _WIN32_WINNT_VISTA
-+ status = GetDateFormatW(
-+ LOCALE_INVARIANT, 0, &systemTime, L"ddd',' dd MMM yyyy", dateStr, sizeof(dateStr) / sizeof(wchar_t));
-+#else
-+ status = GetDateFormatEx(LOCALE_NAME_INVARIANT,
-+ 0,
-+ &systemTime,
-+ L"ddd',' dd MMM yyyy",
-+ dateStr,
-+ sizeof(dateStr) / sizeof(wchar_t),
-+ NULL);
-+#endif // _WIN32_WINNT < _WIN32_WINNT_VISTA
-+ if (status == 0)
-+ {
-+ throw utility::details::create_system_error(GetLastError());
-+ }
-+
-+ result += dateStr;
-+ result += L' ';
- }
-
-- result += tzAdjust;
-- }
-- else
-- {
-- if (tzAdjust > result)
- {
-- return (time_t)-1;
-- }
--
-- result -= tzAdjust;
-- }
--
-- return result;
--}
--
--static time_t make_gm_time(struct tm* t)
--{
--#ifdef _MSC_VER
-- return _mkgmtime(t);
--#elif (defined(ANDROID) || defined(__ANDROID__))
-- // HACK: The (nonportable?) POSIX function timegm is not available in
-- // bionic. As a workaround[1][2], we set the C library timezone to
-- // UTC, call mktime, then set the timezone back. However, the C
-- // environment is fundamentally a shared global resource and thread-
-- // unsafe. We can protect our usage here, however any other code might
-- // manipulate the environment at the same time.
-- //
-- // [1] http://linux.die.net/man/3/timegm
-- // [2] http://www.gnu.org/software/libc/manual/html_node/Broken_002ddown-Time.html
-- time_t time;
-- static boost::mutex env_var_lock;
-- {
-- boost::lock_guard<boost::mutex> lock(env_var_lock);
-- std::string prev_env;
-- auto prev_env_cstr = getenv("TZ");
-- if (prev_env_cstr != nullptr)
-- {
-- prev_env = prev_env_cstr;
-- }
-- setenv("TZ", "UTC", 1);
--
-- time = mktime(t);
-+ wchar_t timeStr[10] = {0};
-+#if _WIN32_WINNT < _WIN32_WINNT_VISTA
-+ status = GetTimeFormatW(LOCALE_INVARIANT,
-+ TIME_NOTIMEMARKER | TIME_FORCE24HOURFORMAT,
-+ &systemTime,
-+ L"HH':'mm':'ss",
-+ timeStr,
-+ sizeof(timeStr) / sizeof(wchar_t));
-+#else
-+ status = GetTimeFormatEx(LOCALE_NAME_INVARIANT,
-+ TIME_NOTIMEMARKER | TIME_FORCE24HOURFORMAT,
-+ &systemTime,
-+ L"HH':'mm':'ss",
-+ timeStr,
-+ sizeof(timeStr) / sizeof(wchar_t));
-+#endif // _WIN32_WINNT < _WIN32_WINNT_VISTA
-+ if (status == 0)
-+ {
-+ throw utility::details::create_system_error(GetLastError());
-+ }
-
-- if (prev_env_cstr)
-- {
-- setenv("TZ", prev_env.c_str(), 1);
-- }
-- else
-- {
-- unsetenv("TZ");
-+ result += timeStr;
-+ result += L" GMT";
- }
- }
-- return time;
--#else // ^^^ ANDROID // Other POSIX platforms vvv
-- return timegm(t);
--#endif // _MSC_VER
--}
--
--/*
--https://tools.ietf.org/html/rfc822
--https://tools.ietf.org/html/rfc1123
--
--date-time = [ day "," ] date time ; dd mm yy
-- ; hh:mm:ss zzz
--
--day = "Mon" / "Tue" / "Wed" / "Thu"
-- / "Fri" / "Sat" / "Sun"
--
--date = 1*2DIGIT month 2DIGIT ; day month year
-- ; e.g. 20 Jun 82
--RFC1123 changes this to:
--date = 1*2DIGIT month 2*4DIGIT ; day month year
-- ; e.g. 20 Jun 1982
--This implementation only accepts 4 digit years.
--
--month = "Jan" / "Feb" / "Mar" / "Apr"
-- / "May" / "Jun" / "Jul" / "Aug"
-- / "Sep" / "Oct" / "Nov" / "Dec"
--
--time = hour zone ; ANSI and Military
--
--hour = 2DIGIT ":" 2DIGIT [":" 2DIGIT]
-- ; 00:00:00 - 23:59:59
--
--zone = "UT" / "GMT" ; Universal Time
-- ; North American : UT
-- / "EST" / "EDT" ; Eastern: - 5/ - 4
-- / "CST" / "CDT" ; Central: - 6/ - 5
-- / "MST" / "MDT" ; Mountain: - 7/ - 6
-- / "PST" / "PDT" ; Pacific: - 8/ - 7
--
--// military time deleted by RFC 1123
--
-- / ( ("+" / "-") 4DIGIT ) ; Local differential
-- ; hours+min. (HHMM)
--*/
--
--
--datetime __cdecl datetime::from_string(const utility::string_t& dateString, date_format format)
--{
-- datetime result;
-- time_t seconds;
-- uint64_t frac_sec = 0;
-- struct tm t{};
-- auto str = dateString.c_str();
-- if (format == RFC_1123)
-+ else if (format == ISO_8601)
- {
-- int parsedWeekday = -1;
-- for (int day = 0; day < 7; ++day)
-+ const size_t buffSize = 64;
- {
-- if (string_starts_with(str, dayNames + day * 4) && str[3] == _XPLATSTR(',') && str[4] == _XPLATSTR(' '))
-+ wchar_t dateStr[buffSize] = {0};
-+#if _WIN32_WINNT < _WIN32_WINNT_VISTA
-+ status = GetDateFormatW(LOCALE_INVARIANT, 0, &systemTime, L"yyyy-MM-dd", dateStr, buffSize);
-+#else
-+ status = GetDateFormatEx(LOCALE_NAME_INVARIANT, 0, &systemTime, L"yyyy-MM-dd", dateStr, buffSize, NULL);
-+#endif // _WIN32_WINNT < _WIN32_WINNT_VISTA
-+ if (status == 0)
- {
-- parsedWeekday = day;
-- str += 5; // parsed day of week
-- break;
-+ throw utility::details::create_system_error(GetLastError());
- }
-- }
-
-- if (ascii_isdigit3(str[0]) && ascii_isdigit(str[1]) && str[2] == _XPLATSTR(' '))
-- {
-- t.tm_mday = atoi2(str); // validity checked later
-- str += 3; // parsed day
-- }
-- else if (ascii_isdigit(str[0]) && str[1] == _XPLATSTR(' '))
-- {
-- t.tm_mday = str[0] - _XPLATSTR('0');
-- str += 2; // parsed day
-- }
-- else
-- {
-- return result;
-+ result += dateStr;
-+ result += L'T';
- }
-
-- t.tm_mon = -1;
-- for (int month = 0; month < 12; ++month)
- {
-- if (string_starts_with(str, monthNames + month * 4))
-+ wchar_t timeStr[buffSize] = {0};
-+#if _WIN32_WINNT < _WIN32_WINNT_VISTA
-+ status = GetTimeFormatW(LOCALE_INVARIANT,
-+ TIME_NOTIMEMARKER | TIME_FORCE24HOURFORMAT,
-+ &systemTime,
-+ L"HH':'mm':'ss",
-+ timeStr,
-+ buffSize);
-+#else
-+ status = GetTimeFormatEx(LOCALE_NAME_INVARIANT,
-+ TIME_NOTIMEMARKER | TIME_FORCE24HOURFORMAT,
-+ &systemTime,
-+ L"HH':'mm':'ss",
-+ timeStr,
-+ buffSize);
-+#endif // _WIN32_WINNT < _WIN32_WINNT_VISTA
-+ if (status == 0)
- {
-- t.tm_mon = month;
-- break;
-+ throw utility::details::create_system_error(GetLastError());
- }
-- }
-
-- if (t.tm_mon == -1 || str[3] != _XPLATSTR(' '))
-- {
-- return result;
-+ result += timeStr;
- }
-
-- str += 4; // parsed month
--
-- if (!ascii_isdigit3(str[0]) || !ascii_isdigit(str[1]) || !ascii_isdigit(str[2]) || !ascii_isdigit(str[3]) ||
-- str[4] != ' ')
-+ uint64_t frac_sec = largeInt.QuadPart % _secondTicks;
-+ if (frac_sec > 0)
- {
-- return result;
-+ // Append fractional second, which is a 7-digit value with no trailing zeros
-+ // This way, '1200' becomes '00012'
-+ wchar_t buf[9] = {0};
-+ size_t appended = swprintf_s(buf, 9, L".%07ld", static_cast<long>(frac_sec));
-+ while (buf[appended - 1] == L'0')
-+ --appended; // trim trailing zeros
-+ result.append(buf, appended);
- }
-
-- t.tm_year = (str[0] - _XPLATSTR('0')) * 1000 + (str[1] - _XPLATSTR('0')) * 100 +
-- (str[2] - _XPLATSTR('0')) * 10 + (str[3] - _XPLATSTR('0'));
-- if (t.tm_year < 1970 || t.tm_year > 3000)
-- {
-- return result;
-- }
-+ result += L'Z';
-+ }
-
-- // days in month validity check
-- if (!validate_day_month(t.tm_mday, t.tm_mon, t.tm_year))
-- {
-- return result;
-- }
-+ return result;
-+#else // LINUX
-+ uint64_t input = m_interval;
-+ uint64_t frac_sec = input % _secondTicks;
-+ input /= _secondTicks; // convert to seconds
-+ time_t time = (time_t)input - (time_t)11644473600LL; // diff between windows and unix epochs (seconds)
-+
-+ struct tm datetime;
-+ gmtime_r(&time, &datetime);
-+
-+ const int max_dt_length = 64;
-+ char output[max_dt_length + 1] = {0};
-+
-+ if (format != RFC_1123 && frac_sec > 0)
-+ {
-+ // Append fractional second, which is a 7-digit value with no trailing zeros
-+ // This way, '1200' becomes '00012'
-+ const int max_frac_length = 8;
-+ char buf[max_frac_length + 1] = {0};
-+ snprintf(buf, sizeof(buf), ".%07ld", (long int)frac_sec);
-+ // trim trailing zeros
-+ for (int i = max_frac_length - 1; buf[i] == '0'; i--)
-+ buf[i] = '\0';
-+ // format the datetime into a separate buffer
-+ char datetime_str[max_dt_length - max_frac_length - 1 + 1] = {0};
-+ strftime(datetime_str, sizeof(datetime_str), "%Y-%m-%dT%H:%M:%S", &datetime);
-+ // now print this buffer into the output buffer
-+ snprintf(output, sizeof(output), "%s%sZ", datetime_str, buf);
-+ }
-+ else
-+ {
-+ strftime(
-+ output, sizeof(output), format == RFC_1123 ? "%a, %d %b %Y %H:%M:%S GMT" : "%Y-%m-%dT%H:%M:%SZ", &datetime);
-+ }
-
-- t.tm_year -= 1900;
-- str += 5; // parsed year
-+ return std::string(output);
-+#endif
-+}
-
-- if (!ascii_isdigit2(str[0]) || !ascii_isdigit(str[1]) || str[2] != _XPLATSTR(':') || !ascii_isdigit5(str[3]) ||
-- !ascii_isdigit(str[4]))
-- {
-- return result;
-- }
-+#ifdef _WIN32
-+bool __cdecl datetime::system_type_to_datetime(void* pvsysTime, uint64_t seconds, datetime* pdt)
-+{
-+ SYSTEMTIME* psysTime = (SYSTEMTIME*)pvsysTime;
-+ FILETIME fileTime;
-
-- t.tm_hour = atoi2(str);
-- if (t.tm_hour > 23)
-- {
-- return result;
-- }
-+ if (SystemTimeToFileTime(psysTime, &fileTime))
-+ {
-+ ULARGE_INTEGER largeInt;
-+ largeInt.LowPart = fileTime.dwLowDateTime;
-+ largeInt.HighPart = fileTime.dwHighDateTime;
-
-- str += 3; // parsed hour
-- t.tm_min = atoi2(str);
-- str += 2; // parsed mins
-+ // Add hundredths of nanoseconds
-+ largeInt.QuadPart += seconds;
-
-- if (str[0] == ':')
-- {
-- if (!ascii_isdigit6(str[1]) || !ascii_isdigit(str[2]) || str[3] != _XPLATSTR(' '))
-- {
-- return result;
-- }
-+ *pdt = datetime(largeInt.QuadPart);
-+ return true;
-+ }
-+ return false;
-+}
-+#endif
-
-- t.tm_sec = atoi2(str + 1);
-- str += 4; // parsed seconds
-- }
-- else if (str[0] == _XPLATSTR(' '))
-- {
-- t.tm_sec = 0;
-- str += 1; // parsed seconds
-- }
-- else
-- {
-- return result;
-+// Take a string that represents a fractional second and return the number of ticks
-+// This is equivalent to doing atof on the string and multiplying by 10000000,
-+// but does not lose precision
-+template<typename StringIterator>
-+uint64_t timeticks_from_second(StringIterator begin, StringIterator end)
-+{
-+ int size = (int)(end - begin);
-+ _ASSERTE(begin[0] == U('.'));
-+ uint64_t ufrac_second = 0;
-+ for (int i = 1; i <= 7; ++i)
-+ {
-+ ufrac_second *= 10;
-+ int add = i < size ? begin[i] - U('0') : 0;
-+ ufrac_second += add;
-+ }
-+ return ufrac_second;
-+}
-+
-+void extract_fractional_second(const utility::string_t& dateString,
-+ utility::string_t& resultString,
-+ uint64_t& ufrac_second)
-+{
-+ resultString = dateString;
-+ // First, the string must be strictly longer than 2 characters, and the trailing character must be 'Z'
-+ if (resultString.size() > 2 && resultString[resultString.size() - 1] == U('Z'))
-+ {
-+ // Second, find the last non-digit by scanning the string backwards
-+ auto last_non_digit = std::find_if_not(resultString.rbegin() + 1, resultString.rend(), is_digit);
-+ if (last_non_digit < resultString.rend() - 1)
-+ {
-+ // Finally, make sure the last non-digit is a dot:
-+ auto last_dot = last_non_digit.base() - 1;
-+ if (*last_dot == U('.'))
-+ {
-+ // Got it! Now extract the fractional second
-+ auto last_before_Z = std::end(resultString) - 1;
-+ ufrac_second = timeticks_from_second(last_dot, last_before_Z);
-+ // And erase it from the string
-+ resultString.erase(last_dot, last_before_Z);
-+ }
- }
-+ }
-+}
-
-- if (t.tm_sec > 60)
-- { // 60 to allow leap seconds
-- return result;
-- }
-+datetime __cdecl datetime::from_string(const utility::string_t& dateString, date_format format)
-+{
-+ // avoid floating point math to preserve precision
-+ uint64_t ufrac_second = 0;
-
-- t.tm_isdst = 0;
-- seconds = make_gm_time(&t);
-- if (seconds < 0)
-- {
-- return result;
-- }
-+#ifdef _WIN32
-+ datetime result;
-+ if (format == RFC_1123)
-+ {
-+ SYSTEMTIME sysTime = {0};
-
-- if (parsedWeekday >= 0 && parsedWeekday != t.tm_wday)
-- {
-- return result;
-- }
-+ std::wstring month(3, L'\0');
-+ std::wstring unused(3, L'\0');
-
-- if (!string_starts_with(str, "GMT") && !string_starts_with(str, "UT"))
-- {
-- // some timezone adjustment necessary
-- auto tzCh = _XPLATSTR('-');
-- int tzHours;
-- int tzMinutes = 0;
-- if (string_starts_with(str, "EDT"))
-- {
-- tzHours = 4;
-- }
-- else if (string_starts_with(str, "EST") || string_starts_with(str, "CDT"))
-- {
-- tzHours = 5;
-- }
-- else if (string_starts_with(str, "CST") || string_starts_with(str, "MDT"))
-- {
-- tzHours = 6;
-- }
-- else if (string_starts_with(str, "MST") || string_starts_with(str, "PDT"))
-- {
-- tzHours = 7;
-- }
-- else if (string_starts_with(str, "PST"))
-- {
-- tzHours = 8;
-- }
-- else if ((tzCh == _XPLATSTR('+') || tzCh == _XPLATSTR('-')) && ascii_isdigit2(str[1]) &&
-- ascii_isdigit(str[2]) && ascii_isdigit5(str[3]) && ascii_isdigit(str[4]))
-- {
-- tzCh = str[0];
-- tzHours = atoi2(str + 1);
-- tzMinutes = atoi2(str + 3);
-- }
-- else
-- {
-- return result;
-- }
-+ const wchar_t* formatString = L"%3c, %2d %3c %4d %2d:%2d:%2d %3c";
-+ auto n = swscanf_s(dateString.c_str(),
-+ formatString,
-+ unused.data(),
-+ unused.size(),
-+ &sysTime.wDay,
-+ month.data(),
-+ month.size(),
-+ &sysTime.wYear,
-+ &sysTime.wHour,
-+ &sysTime.wMinute,
-+ &sysTime.wSecond,
-+ unused.data(),
-+ unused.size());
-+
-+ if (n == 8)
-+ {
-+ std::wstring monthnames[12] = {
-+ L"Jan", L"Feb", L"Mar", L"Apr", L"May", L"Jun", L"Jul", L"Aug", L"Sep", L"Oct", L"Nov", L"Dec"};
-+ auto loc =
-+ std::find_if(monthnames, monthnames + 12, [&month](const std::wstring& m) { return m == month; });
-
-- seconds = timezone_adjust(seconds, static_cast<unsigned char>(tzCh), tzHours, tzMinutes);
-- if (seconds < 0)
-+ if (loc != monthnames + 12)
- {
-- return result;
-+ sysTime.wMonth = (short)((loc - monthnames) + 1);
-+ if (system_type_to_datetime(&sysTime, ufrac_second, &result))
-+ {
-+ return result;
-+ }
- }
- }
- }
- else if (format == ISO_8601)
- {
-- // parse year
-- if (!ascii_isdigit3(str[0]) || !ascii_isdigit(str[1]) || !ascii_isdigit(str[2]) || !ascii_isdigit(str[3]))
-- {
-- return result;
-- }
-+ // Unlike FILETIME, SYSTEMTIME does not have enough precision to hold seconds in 100 nanosecond
-+ // increments. Therefore, start with seconds and milliseconds set to 0, then add them separately
-
-- t.tm_year = (str[0] - _XPLATSTR('0')) * 1000 + (str[1] - _XPLATSTR('0')) * 100 +
-- (str[2] - _XPLATSTR('0')) * 10 + (str[3] - _XPLATSTR('0'));
-- if (t.tm_year < 1970 || t.tm_year > 3000)
-- {
-- return result;
-- }
-+ // Try to extract the fractional second from the timestamp
-+ utility::string_t input;
-+ extract_fractional_second(dateString, input, ufrac_second);
-+ {
-+ SYSTEMTIME sysTime = {0};
-+ const wchar_t* formatString = L"%4d-%2d-%2dT%2d:%2d:%2dZ";
-+ auto n = swscanf_s(input.c_str(),
-+ formatString,
-+ &sysTime.wYear,
-+ &sysTime.wMonth,
-+ &sysTime.wDay,
-+ &sysTime.wHour,
-+ &sysTime.wMinute,
-+ &sysTime.wSecond);
-
-- str += 4;
-- if (*str == _XPLATSTR('-'))
-- {
-- ++str;
-+ if (n == 3 || n == 6)
-+ {
-+ if (system_type_to_datetime(&sysTime, ufrac_second, &result))
-+ {
-+ return result;
-+ }
-+ }
- }
--
-- // parse month
-- if (!ascii_isdigit1(str[0]) || !ascii_isdigit(str[1]))
- {
-- return result;
-- }
-+ SYSTEMTIME sysTime = {0};
-+ DWORD date = 0;
-
-- t.tm_mon = atoi2(str);
-- if (t.tm_mon < 1 || t.tm_mon > 12)
-- {
-- return result;
-- }
--
-- t.tm_mon -= 1;
-- str += 2;
-+ const wchar_t* formatString = L"%8dT%2d:%2d:%2dZ";
-+ auto n = swscanf_s(input.c_str(), formatString, &date, &sysTime.wHour, &sysTime.wMinute, &sysTime.wSecond);
-
-- if (*str == _XPLATSTR('-'))
-- {
-- ++str;
-- }
-+ if (n == 1 || n == 4)
-+ {
-+ sysTime.wDay = date % 100;
-+ date /= 100;
-+ sysTime.wMonth = date % 100;
-+ date /= 100;
-+ sysTime.wYear = (WORD)date;
-
-- // parse day
-- if (!ascii_isdigit3(str[0]) || !ascii_isdigit(str[1]))
-- {
-- return result;
-+ if (system_type_to_datetime(&sysTime, ufrac_second, &result))
-+ {
-+ return result;
-+ }
-+ }
- }
--
-- t.tm_mday = atoi2(str);
-- if (!validate_day_month(t.tm_mday, t.tm_mon, t.tm_year))
- {
-- return result;
-- }
-+ SYSTEMTIME sysTime = {0};
-+ GetSystemTime(&sysTime); // Fill date portion with today's information
-+ sysTime.wSecond = 0;
-+ sysTime.wMilliseconds = 0;
-
-- t.tm_year -= 1900;
-- str += 2;
-+ const wchar_t* formatString = L"%2d:%2d:%2dZ";
-+ auto n = swscanf_s(input.c_str(), formatString, &sysTime.wHour, &sysTime.wMinute, &sysTime.wSecond);
-
-- if (str[0] != _XPLATSTR('T') && str[0] != _XPLATSTR('t'))
-- {
-- // No time
-- seconds = make_gm_time(&t);
-- if (seconds < 0)
-+ if (n == 3)
- {
-- return result;
-+ if (system_type_to_datetime(&sysTime, ufrac_second, &result))
-+ {
-+ return result;
-+ }
- }
--
-- seconds += ntToUnixOffsetSeconds;
-- result.m_interval = static_cast<interval_type>(seconds) * _secondTicks;
-- return result;
- }
-+ }
-
-- ++str; // skip 'T'
-+ return datetime();
-+#else
-+ std::string input(dateString);
-
-- // parse hour
-- if (!ascii_isdigit2(str[0]) || !ascii_isdigit(str[1]))
-- {
-- return result;
-- }
-+ struct tm output = tm();
-
-- t.tm_hour = atoi2(str);
-- str += 2;
-- if (t.tm_hour > 23)
-- {
-- return result;
-- }
-+ if (format == RFC_1123)
-+ {
-+ strptime(input.data(), "%a, %d %b %Y %H:%M:%S GMT", &output);
-+ }
-+ else
-+ {
-+ // Try to extract the fractional second from the timestamp
-+ utility::string_t input;
-+ extract_fractional_second(dateString, input, ufrac_second);
-
-- if (*str == _XPLATSTR(':'))
-- {
-- ++str;
-- }
-+ auto result = strptime(input.data(), "%Y-%m-%dT%H:%M:%SZ", &output);
-
-- // parse minute
-- if (!ascii_isdigit5(str[0]) || !ascii_isdigit(str[1]))
-+ if (result == nullptr)
- {
-- return result;
-+ result = strptime(input.data(), "%Y%m%dT%H:%M:%SZ", &output);
- }
-- t.tm_min = atoi2(str);
-- // t.tm_min > 59 is impossible because we checked that the first digit is <= 5 in the basic format
-- // check above
--
-- str += 2;
--
-- if (*str == _XPLATSTR(':'))
-+ if (result == nullptr)
- {
-- ++str;
-+ // Fill the date portion with the epoch,
-+ // strptime will do the rest
-+ memset(&output, 0, sizeof(struct tm));
-+ output.tm_year = 70;
-+ output.tm_mon = 1;
-+ output.tm_mday = 1;
-+ result = strptime(input.data(), "%H:%M:%SZ", &output);
- }
--
-- // parse seconds
-- if (!ascii_isdigit6(str[0]) || !ascii_isdigit(str[1]))
-+ if (result == nullptr)
- {
-- return result;
-+ result = strptime(input.data(), "%Y-%m-%d", &output);
- }
--
-- t.tm_sec = atoi2(str);
-- // We allow 60 to account for leap seconds
-- if (t.tm_sec > 60)
-+ if (result == nullptr)
- {
-- return result;
-+ result = strptime(input.data(), "%Y%m%d", &output);
- }
--
-- str += 2;
-- if (str[0] == _XPLATSTR('.') && ascii_isdigit(str[1]))
-+ if (result == nullptr)
- {
-- ++str;
-- int digits = 7;
-- for (;;)
-- {
-- frac_sec *= 10;
-- frac_sec += *str - _XPLATSTR('0');
-- --digits;
-- ++str;
-- if (digits == 0)
-- {
-- while (ascii_isdigit(*str))
-- {
-- // consume remaining fractional second digits we can't use
-- ++str;
-- }
--
-- break;
-- }
--
-- if (!ascii_isdigit(*str))
-- {
-- // no more digits in the input, do the remaining multiplies we need
-- for (; digits != 0; --digits)
-- {
-- frac_sec *= 10;
-- }
--
-- break;
-- }
-- }
-+ return datetime();
- }
-+ }
-
-- seconds = make_gm_time(&t);
-- if (seconds < 0)
-- {
-- return result;
-- }
-+#if (defined(ANDROID) || defined(__ANDROID__))
-+ // HACK: The (nonportable?) POSIX function timegm is not available in
-+ // bionic. As a workaround[1][2], we set the C library timezone to
-+ // UTC, call mktime, then set the timezone back. However, the C
-+ // environment is fundamentally a shared global resource and thread-
-+ // unsafe. We can protect our usage here, however any other code might
-+ // manipulate the environment at the same time.
-+ //
-+ // [1] http://linux.die.net/man/3/timegm
-+ // [2] http://www.gnu.org/software/libc/manual/html_node/Broken_002ddown-Time.html
-+ time_t time;
-
-- if (str[0] == _XPLATSTR('Z') || str[0] == _XPLATSTR('z'))
-+ static boost::mutex env_var_lock;
-+ {
-+ boost::lock_guard<boost::mutex> lock(env_var_lock);
-+ std::string prev_env;
-+ auto prev_env_cstr = getenv("TZ");
-+ if (prev_env_cstr != nullptr)
- {
-- // no adjustment needed for zulu time
-+ prev_env = prev_env_cstr;
- }
-- else if (str[0] == _XPLATSTR('+') || str[0] == _XPLATSTR('-'))
-- {
-- const unsigned char offsetDirection = static_cast<unsigned char>(str[0]);
-- if (!ascii_isdigit2(str[1]) || !ascii_isdigit(str[2]) || str[3] != _XPLATSTR(':') ||
-- !ascii_isdigit5(str[4]) || !ascii_isdigit(str[5]))
-- {
-- return result;
-- }
-+ setenv("TZ", "UTC", 1);
-
-- seconds = timezone_adjust(seconds, offsetDirection, atoi2(str + 1), atoi2(str + 4));
-- if (seconds < 0)
-- {
-- return result;
-- }
-+ time = mktime(&output);
-+
-+ if (prev_env_cstr)
-+ {
-+ setenv("TZ", prev_env.c_str(), 1);
- }
- else
- {
-- // the timezone is malformed, but cpprestsdk currently accepts this as no timezone
-+ unsetenv("TZ");
- }
- }
-- else
-- {
-- throw std::invalid_argument("unrecognized date format");
-- }
-+#else
-+ time_t time = timegm(&output);
-+#endif
-+
-+ struct timeval tv = timeval();
-+ tv.tv_sec = time;
-+ auto result = timeval_to_datetime(tv);
-
-- seconds += ntToUnixOffsetSeconds;
-- result.m_interval = static_cast<interval_type>(seconds) * _secondTicks + frac_sec;
-+ // fractional seconds are already in correct format so just add them.
-+ result = result + ufrac_second;
- return result;
-+#endif
- }
-
- /// <summary>
-@@ -1358,32 +1181,38 @@ utility::seconds __cdecl timespan::xml_d
- // The final S could be omitted
-
- int64_t numSecs = 0;
-- auto cursor = timespanString.c_str();
-- auto c = *cursor++; // skip 'P'
-- while (c)
-+
-+ utility::istringstream_t is(timespanString);
-+ is.imbue(std::locale::classic());
-+ auto eof = std::char_traits<utility::char_t>::eof();
-+
-+ std::basic_istream<utility::char_t>::int_type c;
-+ c = is.get(); // P
-+
-+ while (c != eof)
- {
- int val = 0;
-- c = *cursor++;
-+ c = is.get();
-
-- while (ascii_isdigit(c))
-+ while (is_digit((utility::char_t)c))
- {
-- val = val * 10 + (c - _XPLATSTR('0'));
-- c = *cursor++;
-+ val = val * 10 + (c - L'0');
-+ c = is.get();
-
-- if (c == _XPLATSTR('.'))
-+ if (c == '.')
- {
- // decimal point is not handled
- do
- {
-- c = *cursor++;
-- } while (ascii_isdigit(c));
-+ c = is.get();
-+ } while (is_digit((utility::char_t)c));
- }
- }
-
-- if (c == _XPLATSTR('D')) numSecs += val * 24 * 3600; // days
-- if (c == _XPLATSTR('H')) numSecs += val * 3600; // Hours
-- if (c == _XPLATSTR('M')) numSecs += val * 60; // Minutes
-- if (c == _XPLATSTR('S') || c == _XPLATSTR('\0'))
-+ if (c == L'D') numSecs += val * 24 * 3600; // days
-+ if (c == L'H') numSecs += val * 3600; // Hours
-+ if (c == L'M') numSecs += val * 60; // Minutes
-+ if (c == L'S' || c == eof)
- {
- numSecs += val; // seconds
- break;
-@@ -1393,12 +1222,12 @@ utility::seconds __cdecl timespan::xml_d
- return utility::seconds(numSecs);
- }
-
--static const utility::char_t c_allowed_chars[] =
-- _XPLATSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
-+const utility::string_t nonce_generator::c_allowed_chars(
-+ _XPLATSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"));
-
- utility::string_t nonce_generator::generate()
- {
-- std::uniform_int_distribution<> distr(0, static_cast<int>(sizeof(c_allowed_chars) / sizeof(utility::char_t)) - 1);
-+ std::uniform_int_distribution<> distr(0, static_cast<int>(c_allowed_chars.length() - 1));
- utility::string_t result;
- result.reserve(length());
- std::generate_n(std::back_inserter(result), length(), [&]() { return c_allowed_chars[distr(m_random)]; });
---- cpprest-2.10.12.orig/Release/tests/functional/utils/datetime.cpp
-+++ cpprest-2.10.12/Release/tests/functional/utils/datetime.cpp
-@@ -74,6 +74,16 @@ SUITE(datetime)
- }
- }
-
-+ TEST(parsing_time_extended)
-+ {
-+ // ISO 8601
-+ {
-+ auto dt = utility::datetime::from_string(_XPLATSTR("14:30:01Z"), utility::datetime::ISO_8601);
-+
-+ VERIFY_ARE_NOT_EQUAL(0u, dt.to_interval());
-+ }
-+ }
-+
- void TestDateTimeRoundtrip(utility::string_t str, utility::string_t strExpected)
- {
- auto dt = utility::datetime::from_string(str, utility::datetime::ISO_8601);
-@@ -91,8 +101,6 @@ SUITE(datetime)
-
- TEST(parsing_time_roundtrip_datetime2)
- {
-- // lose the last '000'
-- TestDateTimeRoundtrip(_XPLATSTR("2013-11-19T14:30:59.1234567000Z"), _XPLATSTR("2013-11-19T14:30:59.1234567Z"));
- // lose the last '999' without rounding up
- TestDateTimeRoundtrip(_XPLATSTR("2013-11-19T14:30:59.1234567999Z"), _XPLATSTR("2013-11-19T14:30:59.1234567Z"));
- }
-@@ -121,260 +129,16 @@ SUITE(datetime)
- TestDateTimeRoundtrip(_XPLATSTR("2013-11-19T14:30:59.5Z"));
- }
-
-- void TestRfc1123IsTimeT(const utility::char_t* str, time_t t)
-- {
-- datetime dt = datetime::from_string(str, utility::datetime::RFC_1123);
-- uint64_t interval = dt.to_interval();
-- VERIFY_ARE_EQUAL(0, interval % 10000000);
-- interval /= 10000000;
-- interval -= 11644473600; // NT epoch adjustment
-- VERIFY_ARE_EQUAL(static_cast<uint64_t>(t), interval);
-- }
--
-- TEST(parsing_time_rfc1123_accepts_each_day)
-- {
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:00:00 GMT"), (time_t) 0);
-- TestRfc1123IsTimeT(_XPLATSTR("Fri, 02 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 1);
-- TestRfc1123IsTimeT(_XPLATSTR("Sat, 03 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 2);
-- TestRfc1123IsTimeT(_XPLATSTR("Sun, 04 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 3);
-- TestRfc1123IsTimeT(_XPLATSTR("Mon, 05 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 4);
-- TestRfc1123IsTimeT(_XPLATSTR("Tue, 06 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 5);
-- TestRfc1123IsTimeT(_XPLATSTR("Wed, 07 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 6);
-- }
--
-- TEST(parsing_time_rfc1123_boundary_cases)
-- {
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:00:00 GMT"), (time_t) 0);
-- TestRfc1123IsTimeT(_XPLATSTR("19 Jan 2038 03:14:06 GMT"), (time_t) INT_MAX - 1);
--#ifndef _USE_32BIT_TIME_T
-- TestRfc1123IsTimeT(_XPLATSTR("19 Jan 2038 03:13:07 -0001"), (time_t) INT_MAX);
-- TestRfc1123IsTimeT(_XPLATSTR("19 Jan 2038 03:14:07 -0000"), (time_t) INT_MAX);
--#endif // _USE_32BIT_TIME_T
-- TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 +0000"), (time_t) 1547507781);
-- TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 -0001"), (time_t) 1547507841);
-- TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 +0001"), (time_t) 1547507721);
-- TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 -0100"), (time_t) 1547511381);
-- TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 +0100"), (time_t) 1547504181);
-- }
--
-- TEST(parsing_time_rfc1123_uses_each_field)
-- {
-- TestRfc1123IsTimeT(_XPLATSTR("02 Jan 1970 00:00:00 GMT"), (time_t) 86400);
-- TestRfc1123IsTimeT(_XPLATSTR("12 Jan 1970 00:00:00 GMT"), (time_t) 950400);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Feb 1970 00:00:00 GMT"), (time_t) 2678400);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 2000 00:00:00 GMT"), (time_t) 946684800);
--#ifndef _USE_32BIT_TIME_T
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 2100 00:00:00 GMT"), (time_t) 4102444800);
--#endif // _USE_32BIT_TIME_T
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1990 00:00:00 GMT"), (time_t) 631152000);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1971 00:00:00 GMT"), (time_t) 31536000);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 10:00:00 GMT"), (time_t) 36000);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 01:00:00 GMT"), (time_t) 3600);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:10:00 GMT"), (time_t) 600);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:01:00 GMT"), (time_t) 60);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:00:10 GMT"), (time_t) 10);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:00:01 GMT"), (time_t) 1);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 10:00:00 GMT"), (time_t) 36000);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 02:00:00 PST"), (time_t) 36000);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 03:00:00 PDT"), (time_t) 36000);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 03:00:00 MST"), (time_t) 36000);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 04:00:00 MDT"), (time_t) 36000);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 04:00:00 CST"), (time_t) 36000);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 05:00:00 CDT"), (time_t) 36000);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 05:00:00 EST"), (time_t) 36000);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 06:00:00 EDT"), (time_t) 36000);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 06:00:00 -0400"), (time_t) 36000);
-- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 05:59:00 -0401"), (time_t) 36000);
-- }
--
-- TEST(parsing_time_rfc1123_max_days)
-- {
-- TestRfc1123IsTimeT(_XPLATSTR("31 Jan 1970 00:00:00 GMT"), (time_t) 2592000);
-- TestRfc1123IsTimeT(_XPLATSTR("28 Feb 2019 00:00:00 GMT"), (time_t) 1551312000); // non leap year allows feb 28
-- TestRfc1123IsTimeT(_XPLATSTR("29 Feb 2020 00:00:00 GMT"), (time_t) 1582934400); // leap year allows feb 29
-- TestRfc1123IsTimeT(_XPLATSTR("31 Mar 1970 00:00:00 GMT"), (time_t) 7689600);
-- TestRfc1123IsTimeT(_XPLATSTR("30 Apr 1970 00:00:00 GMT"), (time_t) 10281600);
-- TestRfc1123IsTimeT(_XPLATSTR("31 May 1970 00:00:00 GMT"), (time_t) 12960000);
-- TestRfc1123IsTimeT(_XPLATSTR("30 Jun 1970 00:00:00 GMT"), (time_t) 15552000);
-- TestRfc1123IsTimeT(_XPLATSTR("31 Jul 1970 00:00:00 GMT"), (time_t) 18230400);
-- TestRfc1123IsTimeT(_XPLATSTR("31 Aug 1970 00:00:00 GMT"), (time_t) 20908800);
-- TestRfc1123IsTimeT(_XPLATSTR("30 Sep 1970 00:00:00 GMT"), (time_t) 23500800);
-- TestRfc1123IsTimeT(_XPLATSTR("31 Oct 1970 00:00:00 GMT"), (time_t) 26179200);
-- TestRfc1123IsTimeT(_XPLATSTR("30 Nov 1970 00:00:00 GMT"), (time_t) 28771200);
-- TestRfc1123IsTimeT(_XPLATSTR("31 Dec 1970 00:00:00 GMT"), (time_t) 31449600);
-- }
--
-- TEST(parsing_time_rfc1123_invalid_cases)
-- {
-- const utility::string_t bad_strings[] = {
-- _XPLATSTR("Ahu, 01 Jan 1970 00:00:00 GMT"), // bad letters in each place
-- _XPLATSTR("TAu, 01 Jan 1970 00:00:00 GMT"),
-- _XPLATSTR("ThA, 01 Jan 1970 00:00:00 GMT"),
-- _XPLATSTR("ThuA 01 Jan 1970 00:00:00 GMT"),
-- _XPLATSTR("Thu,A01 Jan 1970 00:00:00 GMT"),
-- _XPLATSTR("Thu, A1 Jan 1970 00:00:00 GMT"),
-- _XPLATSTR("Thu, 0A Jan 1970 00:00:00 GMT"),
-- _XPLATSTR("Thu, 01AJan 1970 00:00:00 GMT"),
-- _XPLATSTR("Thu, 01 Aan 1970 00:00:00 GMT"),
-- _XPLATSTR("Thu, 01 JAn 1970 00:00:00 GMT"),
-- _XPLATSTR("Thu, 01 JaA 1970 00:00:00 GMT"),
-- _XPLATSTR("Thu, 01 JanA1970 00:00:00 GMT"),
-- _XPLATSTR("Thu, 01 Jan A970 00:00:00 GMT"),
-- _XPLATSTR("Thu, 01 Jan 1A70 00:00:00 GMT"),
-- _XPLATSTR("Thu, 01 Jan 19A0 00:00:00 GMT"),
-- _XPLATSTR("Thu, 01 Jan 197A 00:00:00 GMT"),
-- _XPLATSTR("Thu, 01 Jan 1970A00:00:00 GMT"),
-- _XPLATSTR("Thu, 01 Jan 1970 A0:00:00 GMT"),
-- _XPLATSTR("Thu, 01 Jan 1970 0A:00:00 GMT"),
-- _XPLATSTR("Thu, 01 Jan 1970 00A00:00 GMT"),
-- _XPLATSTR("Thu, 01 Jan 1970 00:A0:00 GMT"),
-- _XPLATSTR("Thu, 01 Jan 1970 00:0A:00 GMT"),
-- _XPLATSTR("Thu, 01 Jan 1970 00:00A00 GMT"),
-- _XPLATSTR("Thu, 01 Jan 1970 00:00:A0 GMT"),
-- _XPLATSTR("Thu, 01 Jan 1970 00:00:0A GMT"),
-- _XPLATSTR("Thu, 01 Jan 1970 00:00:00AGMT"),
-- _XPLATSTR("Thu, 01 Jan 1970 00:00:00 AMT"),
-- _XPLATSTR("Thu, 01 Jan 1970 00:00:00 GAT"),
-- _XPLATSTR("Thu, 01 Jan 1970 00:00:00 GMA"),
-- _XPLATSTR(""), // truncation
-- _XPLATSTR("T"),
-- _XPLATSTR("Th"),
-- _XPLATSTR("Thu"),
-- _XPLATSTR("Thu,"),
-- _XPLATSTR("Thu, "),
-- _XPLATSTR("Thu, 0"),
-- _XPLATSTR("Thu, 01"),
-- _XPLATSTR("Thu, 01 "),
-- _XPLATSTR("Thu, 01 J"),
-- _XPLATSTR("Thu, 01 Ja"),
-- _XPLATSTR("Thu, 01 Jan"),
-- _XPLATSTR("Thu, 01 Jan "),
-- _XPLATSTR("Thu, 01 Jan 1"),
-- _XPLATSTR("Thu, 01 Jan 19"),
-- _XPLATSTR("Thu, 01 Jan 197"),
-- _XPLATSTR("Thu, 01 Jan 1970"),
-- _XPLATSTR("Thu, 01 Jan 1970 "),
-- _XPLATSTR("Thu, 01 Jan 1970 0"),
-- _XPLATSTR("Thu, 01 Jan 1970 00"),
-- _XPLATSTR("Thu, 01 Jan 1970 00:"),
-- _XPLATSTR("Thu, 01 Jan 1970 00:0"),
-- _XPLATSTR("Thu, 01 Jan 1970 00:00"),
-- _XPLATSTR("Thu, 01 Jan 1970 00:00:"),
-- _XPLATSTR("Thu, 01 Jan 1970 00:00:0"),
-- _XPLATSTR("Thu, 01 Jan 1970 00:00:00"),
-- _XPLATSTR("Thu, 01 Jan 1970 00:00:00 "),
-- _XPLATSTR("Thu, 01 Jan 1970 00:00:00 G"),
-- _XPLATSTR("Thu, 01 Jan 1970 00:00:00 GM"),
-- _XPLATSTR("Fri, 01 Jan 1970 00:00:00 GMT"), // wrong day
-- _XPLATSTR("01 Jan 4970 00:00:00 GMT"), // year too big
-- _XPLATSTR("01 Jan 3001 00:00:00 GMT"),
-- _XPLATSTR("01 Xxx 1971 00:00:00 GMT"), // month bad
-- _XPLATSTR("00 Jan 1971 00:00:00 GMT"), // day too small
-- _XPLATSTR("32 Jan 1971 00:00:00 GMT"), // day too big
-- _XPLATSTR("30 Feb 1971 00:00:00 GMT"), // day too big for feb
-- _XPLATSTR("30 Feb 1971 00:00:00 GMT"), // day too big for feb (non-leap year)
-- _XPLATSTR("32 Mar 1971 00:00:00 GMT"), // other months
-- _XPLATSTR("31 Apr 1971 00:00:00 GMT"),
-- _XPLATSTR("32 May 1971 00:00:00 GMT"),
-- _XPLATSTR("31 Jun 1971 00:00:00 GMT"),
-- _XPLATSTR("32 Jul 1971 00:00:00 GMT"),
-- _XPLATSTR("32 Aug 1971 00:00:00 GMT"),
-- _XPLATSTR("31 Sep 1971 00:00:00 GMT"),
-- _XPLATSTR("32 Oct 1971 00:00:00 GMT"),
-- _XPLATSTR("31 Nov 1971 00:00:00 GMT"),
-- _XPLATSTR("32 Dec 1971 00:00:00 GMT"),
-- _XPLATSTR("01 Jan 1971 70:00:00 GMT"), // hour too big
-- _XPLATSTR("01 Jan 1971 24:00:00 GMT"),
-- _XPLATSTR("01 Jan 1971 00:60:00 GMT"), // minute too big
-- _XPLATSTR("01 Jan 1971 00:00:70 GMT"), // second too big
-- _XPLATSTR("01 Jan 1971 00:00:61 GMT"),
-- _XPLATSTR("01 Jan 1969 00:00:00 GMT"), // underflow
-- _XPLATSTR("01 Jan 1969 00:00:00 CEST"), // bad tz
-- _XPLATSTR("01 Jan 1970 00:00:00 +2400"), // bad tzoffsets
-- _XPLATSTR("01 Jan 1970 00:00:00 -3000"),
-- _XPLATSTR("01 Jan 1970 00:00:00 +2160"),
-- _XPLATSTR("01 Jan 1970 00:00:00 -2400"),
-- _XPLATSTR("01 Jan 1970 00:00:00 -2160"),
-- };
--
-- for (const auto& str : bad_strings)
-- {
-- auto dt = utility::datetime::from_string(str, utility::datetime::RFC_1123);
-- VERIFY_ARE_EQUAL(0, dt.to_interval());
-- }
-- }
--
-- TEST(parsing_time_iso8601_boundary_cases)
-- {
-- // boundary cases:
-- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T00:00:00Z")); // epoch
-- TestDateTimeRoundtrip(_XPLATSTR("2038-01-19T03:14:06+00:00"), _XPLATSTR("2038-01-19T03:14:06Z")); // INT_MAX - 1
--#ifndef _USE_32BIT_TIME_T
-- TestDateTimeRoundtrip(_XPLATSTR("2038-01-19T03:13:07-00:01"),
-- _XPLATSTR("2038-01-19T03:14:07Z")); // INT_MAX after subtacting 1
-- TestDateTimeRoundtrip(_XPLATSTR("2038-01-19T03:14:07-00:00"), _XPLATSTR("2038-01-19T03:14:07Z"));
--#endif // _USE_32BIT_TIME_T
-- }
--
-- TEST(parsing_time_iso8601_uses_each_timezone_digit)
-- {
-- TestDateTimeRoundtrip(_XPLATSTR("2019-01-14T23:16:21+00:00"), _XPLATSTR("2019-01-14T23:16:21Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("2019-01-14T23:16:21-00:01"), _XPLATSTR("2019-01-14T23:17:21Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("2019-01-14T23:16:21+00:01"), _XPLATSTR("2019-01-14T23:15:21Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("2019-01-14T23:16:21-01:00"), _XPLATSTR("2019-01-15T00:16:21Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("2019-01-14T23:16:21+01:00"), _XPLATSTR("2019-01-14T22:16:21Z"));
-- }
--
-- TEST(parsing_time_iso8601_uses_each_digit)
-- {
-- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T00:00:01Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T00:01:00Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T01:00:00Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("1970-01-02T00:00:00Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("1970-02-01T00:00:00Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("1971-01-01T00:00:00Z"));
--
-- TestDateTimeRoundtrip(_XPLATSTR("1999-01-01T00:00:00Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("1970-12-01T00:00:00Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("1970-09-01T00:00:00Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("1970-01-30T00:00:00Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("1970-01-31T00:00:00Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T23:00:00Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T19:00:00Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T00:59:00Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T00:00:59Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T00:00:60Z"), _XPLATSTR("1970-01-01T00:01:00Z")); // leap seconds
-- }
--
-- TEST(parsing_time_iso8601_accepts_month_max_days)
-- {
-- TestDateTimeRoundtrip(_XPLATSTR("1970-01-31T00:00:00Z")); // jan
-- TestDateTimeRoundtrip(_XPLATSTR("2019-02-28T00:00:00Z")); // non leap year allows feb 28
-- TestDateTimeRoundtrip(_XPLATSTR("2020-02-29T00:00:00Z")); // leap year allows feb 29
-- TestDateTimeRoundtrip(_XPLATSTR("1970-03-31T00:00:00Z")); // mar
-- TestDateTimeRoundtrip(_XPLATSTR("1970-04-30T00:00:00Z")); // apr
-- TestDateTimeRoundtrip(_XPLATSTR("1970-05-31T00:00:00Z")); // may
-- TestDateTimeRoundtrip(_XPLATSTR("1970-06-30T00:00:00Z")); // jun
-- TestDateTimeRoundtrip(_XPLATSTR("1970-07-31T00:00:00Z")); // jul
-- TestDateTimeRoundtrip(_XPLATSTR("1970-08-31T00:00:00Z")); // aug
-- TestDateTimeRoundtrip(_XPLATSTR("1970-09-30T00:00:00Z")); // sep
-- TestDateTimeRoundtrip(_XPLATSTR("1970-10-31T00:00:00Z")); // oct
-- TestDateTimeRoundtrip(_XPLATSTR("1970-11-30T00:00:00Z")); // nov
-- TestDateTimeRoundtrip(_XPLATSTR("1970-12-31T00:00:00Z")); // dec
-- }
--
-- TEST(parsing_time_iso8601_accepts_lowercase_t_z)
-- {
-- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01t00:00:00Z"), _XPLATSTR("1970-01-01T00:00:00Z"));
-- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T00:00:00z"), _XPLATSTR("1970-01-01T00:00:00Z"));
-- }
--
-- TEST(parsing_time_roundtrip_datetime_accepts_invalid_no_trailing_timezone)
-+ TEST(parsing_time_roundtrip_datetime_invalid1,
-+ "Ignore:Linux",
-+ "Codeplex issue #115",
-+ "Ignore:Apple",
-+ "Codeplex issue #115")
- {
- // No digits after the dot, or non-digits. This is not a valid input, but we should not choke on it,
- // Simply ignore the bad fraction
- const utility::string_t bad_strings[] = {_XPLATSTR("2013-11-19T14:30:59.Z"),
-- _XPLATSTR("2013-11-19T14:30:59.a12Z")};
-+ _XPLATSTR("2013-11-19T14:30:59.1a2Z")};
- utility::string_t str_corrected = _XPLATSTR("2013-11-19T14:30:59Z");
-
- for (const auto& str : bad_strings)
-@@ -387,87 +151,12 @@ SUITE(datetime)
-
- TEST(parsing_time_roundtrip_datetime_invalid2)
- {
-- // Various unsupported cases. In all cases, we have produce an empty date time
-+ // Variouls unsupported cases. In all cases, we have produce an empty date time
- const utility::string_t bad_strings[] = {
-- _XPLATSTR(""), // empty
-- _XPLATSTR(".Z"), // too short
-- _XPLATSTR(".Zx"), // no trailing Z
-- _XPLATSTR("3.14Z") // not a valid date
-- _XPLATSTR("a971-01-01T00:00:00Z"), // any non digits or valid separators
-- _XPLATSTR("1a71-01-01T00:00:00Z"),
-- _XPLATSTR("19a1-01-01T00:00:00Z"),
-- _XPLATSTR("197a-01-01T00:00:00Z"),
-- _XPLATSTR("1971a01-01T00:00:00Z"),
-- _XPLATSTR("1971-a1-01T00:00:00Z"),
-- _XPLATSTR("1971-0a-01T00:00:00Z"),
-- _XPLATSTR("1971-01a01T00:00:00Z"),
-- _XPLATSTR("1971-01-a1T00:00:00Z"),
-- _XPLATSTR("1971-01-0aT00:00:00Z"),
-- // _XPLATSTR("1971-01-01a00:00:00Z"), parsed as complete date
-- _XPLATSTR("1971-01-01Ta0:00:00Z"),
-- _XPLATSTR("1971-01-01T0a:00:00Z"),
-- _XPLATSTR("1971-01-01T00a00:00Z"),
-- _XPLATSTR("1971-01-01T00:a0:00Z"),
-- _XPLATSTR("1971-01-01T00:0a:00Z"),
-- _XPLATSTR("1971-01-01T00:00a00Z"),
-- _XPLATSTR("1971-01-01T00:00:a0Z"),
-- _XPLATSTR("1971-01-01T00:00:0aZ"),
-- // "1971-01-01T00:00:00a", accepted as per invalid_no_trailing_timezone above
-- _XPLATSTR("1"), // truncation
-- _XPLATSTR("19"),
-- _XPLATSTR("197"),
-- _XPLATSTR("1970"),
-- _XPLATSTR("1970-"),
-- _XPLATSTR("1970-0"),
-- _XPLATSTR("1970-01"),
-- _XPLATSTR("1970-01-"),
-- _XPLATSTR("1970-01-0"),
-- // _XPLATSTR("1970-01-01"), complete date
-- _XPLATSTR("1970-01-01T"),
-- _XPLATSTR("1970-01-01T0"),
-- _XPLATSTR("1970-01-01T00"),
-- _XPLATSTR("1970-01-01T00:"),
-- _XPLATSTR("1970-01-01T00:0"),
-- _XPLATSTR("1970-01-01T00:00"),
-- _XPLATSTR("1970-01-01T00:00:"),
-- _XPLATSTR("1970-01-01T00:00:0"),
-- // _XPLATSTR("1970-01-01T00:00:00"), // accepted as invalid timezone above
-- _XPLATSTR("4970-01-01T00:00:00Z"), // year too big
-- _XPLATSTR("3001-01-01T00:00:00Z"),
-- _XPLATSTR("1971-00-01T00:00:00Z"), // month too small
-- _XPLATSTR("1971-20-01T00:00:00Z"), // month too big
-- _XPLATSTR("1971-13-01T00:00:00Z"),
-- _XPLATSTR("1971-01-00T00:00:00Z"), // day too small
-- _XPLATSTR("1971-01-32T00:00:00Z"), // day too big
-- _XPLATSTR("1971-02-30T00:00:00Z"), // day too big for feb
-- _XPLATSTR("1971-02-30T00:00:00Z"), // day too big for feb (non-leap year)
-- _XPLATSTR("1971-03-32T00:00:00Z"), // other months
-- _XPLATSTR("1971-04-31T00:00:00Z"),
-- _XPLATSTR("1971-05-32T00:00:00Z"),
-- _XPLATSTR("1971-06-31T00:00:00Z"),
-- _XPLATSTR("1971-07-32T00:00:00Z"),
-- _XPLATSTR("1971-08-32T00:00:00Z"),
-- _XPLATSTR("1971-09-31T00:00:00Z"),
-- _XPLATSTR("1971-10-32T00:00:00Z"),
-- _XPLATSTR("1971-11-31T00:00:00Z"),
-- _XPLATSTR("1971-12-32T00:00:00Z"),
-- _XPLATSTR("1971-01-01T70:00:00Z"), // hour too big
-- _XPLATSTR("1971-01-01T24:00:00Z"),
-- _XPLATSTR("1971-01-01T00:60:00Z"), // minute too big
-- _XPLATSTR("1971-01-01T00:00:70Z"), // second too big
-- _XPLATSTR("1971-01-01T00:00:61Z"),
-- _XPLATSTR("1969-01-01T00:00:00Z"), // underflow
--#ifdef _USE_32BIT_TIME_T
-- _XPLATSTR("3000-01-01T00:00:01Z"), // overflow
--#endif
-- _XPLATSTR("3001-01-01T00:00:00Z"),
-- _XPLATSTR("1970-01-01T00:00:00+00:01"), // time zone underflow
-- // _XPLATSTR("1970-01-01T00:00:00.Z"), // accepted as invalid timezone above
-- _XPLATSTR("1970-01-01T00:00:00+24:00"), // bad tzoffsets
-- _XPLATSTR("1970-01-01T00:00:00-30:00"),
-- _XPLATSTR("1970-01-01T00:00:00+21:60"),
-- _XPLATSTR("1970-01-01T00:00:00-24:00"),
-- _XPLATSTR("1970-01-01T00:00:00-21:60"),
-+ _XPLATSTR(""), // empty
-+ _XPLATSTR(".Z"), // too short
-+ _XPLATSTR(".Zx"), // no trailing Z
-+ _XPLATSTR("3.14Z") // not a valid date
- };
-
- for (const auto& str : bad_strings)
-@@ -477,6 +166,16 @@ SUITE(datetime)
- }
- }
-
-+ TEST(parsing_time_roundtrip_time)
-+ {
-+ // time only without date
-+ utility::string_t str = _XPLATSTR("14:30:59.1234567Z");
-+ auto dt = utility::datetime::from_string(str, utility::datetime::ISO_8601);
-+ utility::string_t str2 = dt.to_string(utility::datetime::ISO_8601);
-+ // Must look for a substring now, since the date part is filled with today's date
-+ VERIFY_IS_TRUE(str2.find(str) != std::string::npos);
-+ }
-+
- } // SUITE(datetime)
-
- } // namespace utils_tests
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.12.bb b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.12.bb
index 92c04535d..67edf5691 100644
--- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.12.bb
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.12.bb
@@ -8,9 +8,7 @@ DEPENDS = "openssl websocketpp zlib boost brotli"
EXTRA_OECMAKE = "-DCPPREST_EXPORT_DIR=cmake -DCPPREST_EXCLUDE_BROTLI=OFF"
SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master \
- file://revert-9b670e5b33dfdbd501d618cd7e7498148ffbd559.patch \
- file://revert-f10d9f8e214516d2c19aa6ef831ee874a58c0479.patch \
- "
+ file://1094.patch "
# tag 2.10.12
SRCREV= "d4fb1cf7f7d22c12e2e442ba5a5e98d09b0a28ab"
diff --git a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.8.bb
index 37d5a637a..52b291d6e 100644
--- a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb
+++ b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.8.bb
@@ -4,14 +4,14 @@ HOMEPAGE = "https://www.imagemagick.org/"
DESCRIPTION = "ImageMagick is a collection of tools for displaying, converting, and \
editing raster and vector image files. It can read and write over 200 image file formats."
LICENSE = "ImageMagick"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dad5a98f173fd3fa6958a1a58c6131c1"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=05ff94b3ff59fe6fa7489fa26e3d9142"
# FIXME: There are many more checked libraries. All should be added or explicitly disabled to get consistent results.
-DEPENDS = "lcms bzip2 jpeg libpng tiff zlib fftw freetype"
+DEPENDS = "lcms bzip2 jpeg libpng tiff zlib fftw freetype libtool"
BASE_PV := "${PV}"
-PV .= "_7"
+PV .= "_35"
SRC_URI = "git://github.com/ImageMagick/ImageMagick.git "
-SRCREV = "e12602b39b5e778240d286b6f9bbbc0fe3fb26c5"
+SRCREV = "224159dfcc0ae3da9a247921e3c8bfb44d39965e"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/libfann/libfann_git.bb b/meta-openembedded/meta-oe/recipes-support/libfann/libfann_git.bb
new file mode 100644
index 000000000..c986e1775
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libfann/libfann_git.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Fast Artificial Neural Network (FANN) Library"
+DESCRIPTION = "Fast Artificial Neural Network (FANN) Library is a free open source neural network library, which implements multilayer artificial neural networks in C with support for both fully connected and sparsely connected networks."
+HOMEPAGE = "https://github.com/libfann/fann"
+SECTION = "libs/devel"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=f14599a2f089f6ff8c97e2baa4e3d575"
+
+inherit cmake
+
+SRCREV ?= "7ec1fc7e5bd734f1d3c89b095e630e83c86b9be1"
+SRC_URI = "git://github.com/libfann/fann.git;branch=master \
+ "
+
+PV = "2.2.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_161.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_162.bb
index dfca3855b..dfca3855b 100644
--- a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_161.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_162.bb
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch
index 25e148ed0..ce8b47ae4 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch
@@ -12,6 +12,8 @@ unknown vectors.
Upstream-Status: Pending
+CVE: CVE-2015-3276
+
Signed-off-by: Li Wang <li.wang@windriver.com>
---
libraries/libldap/tls_m.c | 27 ++++++++++++++++-----------
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc
index 04173f067..0d9638845 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc
@@ -8,8 +8,8 @@ DEPENDS += " \
${PYTHON_PN}-cryptography \
"
-SRC_URI[md5sum] = "e7f44b1678e3071e2044a32f7c353d14"
-SRC_URI[sha256sum] = "829d43e8066056de8ea7b8ad311db79e47d8d658e23d5f5fc4b0245a1b3baa74"
+SRC_URI[md5sum] = "f8b166652e7a9d668b851b28e4417057"
+SRC_URI[sha256sum] = "03f38115dccb266dd96538f94067442a877932c2322661bdc5bf2502c76658af"
PYPI_PACKAGE = "cryptography_vectors"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.6.1.bb
index 4975278a9..4975278a9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.6.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc
index 2c1ac1c9f..8a364116d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc
@@ -10,8 +10,8 @@ DEPENDS += " \
${PYTHON_PN}-six \
"
-SRC_URI[md5sum] = "464f180ff64622760cca7167f97b3ff4"
-SRC_URI[sha256sum] = "e85b410885addaeb31a867eabcefc9ef4a7e904ad45eac9e60a763a54b244626"
+SRC_URI[md5sum] = "401cc8268f89496643da3f7a48eb4e8e"
+SRC_URI[sha256sum] = "26c821cbeb683facb966045e2064303029d572a87ee69ca5a1bf54bf55f93ca6"
RDEPENDS_${PN} += " \
${PYTHON_PN}-cffi \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.6.1.bb
index 9c2f88418..9c2f88418 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.6.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-fann2.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-fann2.inc
new file mode 100644
index 000000000..c415b35a9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-fann2.inc
@@ -0,0 +1,9 @@
+SUMMARY = "Python bindings for Fast Artificial Neural Networks 2.2.0 (FANN >= 2.2.0)"
+SECTION = "devel/python"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c73b943dc75f6f65e007c56ac6515c8f"
+
+SRC_URI[md5sum] = "0b85b418018746d63ed66b55465697a9"
+SRC_URI[sha256sum] = "cdca0a65ad48e08320672affe38c3dd4ea15e27821e5e1db9fa2b34299bdd41e"
+
+DEPENDS += "swig-native libfann"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pocketsphinx.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pocketsphinx.inc
new file mode 100644
index 000000000..4c848b6dd
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pocketsphinx.inc
@@ -0,0 +1,9 @@
+SUMMARY = "This package provides a python interface to CMU Sphinxbase and Pocketsphinx libraries created with SWIG and Setuptools."
+SECTION = "devel/python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=826ebda787eb48e78aec2624f9faba72"
+
+SRC_URI[md5sum] = "c0f2bfd54bc4c438c3bb64825f57d575"
+SRC_URI[sha256sum] = "2cc493ed48c1301e0d2e69b137dc646c2f8caca190ef4bce61836eac96d1796f"
+
+DEPENDS += "swig-native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyaudio.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyaudio.inc
new file mode 100644
index 000000000..0d3ddb1a5
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyaudio.inc
@@ -0,0 +1,13 @@
+SUMMARY = "PyAudio provides Python bindings for PortAudio, the cross-platform audio I/O library"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://README;md5=288793c2b9b05bd67abbd2a8f5d144f7"
+
+PYPI_PACKAGE = "PyAudio"
+
+SRC_URI[md5sum] = "7e4c88139284033f67b4336c74eda3b8"
+SRC_URI[sha256sum] = "93bfde30e0b64e63a46f2fd77e85c41fd51182a4a3413d9edfaf9ffaa26efb74"
+
+DEPENDS += "portaudio-v19"
+
+RDEPENDS_${PN} += "portaudio-v19"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc
index 0401ee448..e6337cb32 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc
@@ -5,8 +5,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=a8d5a1d1c2d53025e2282c511033f6f7"
FILESEXTRAPATHS_prepend := "${THISDIR}/python-requests:"
-SRC_URI[md5sum] = "2918817ea4688f4ea21cb4b11e353448"
-SRC_URI[sha256sum] = "ea881206e59f41dbd0bd445437d792e43906703fff75ca8ff43ccdb11f33f263"
+SRC_URI[md5sum] = "1bcd0e0977c3f8db1848ba0e2b7ab904"
+SRC_URI[sha256sum] = "502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e"
inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.20.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.21.0.bb
index 0d7a29f74..0d7a29f74 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.20.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.21.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-xxhash.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-xxhash.inc
new file mode 100644
index 000000000..9df4520f7
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-xxhash.inc
@@ -0,0 +1,7 @@
+SUMMARY = "xxhash is a Python binding for the xxHash library by Yann Collet."
+SECTION = "devel/python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d2c6db5887cc6b2fac8b701d64cb8442"
+
+SRC_URI[md5sum] = "a4289aa01839f3ea1fb98929d9131001"
+SRC_URI[sha256sum] = "fe21f23a9d05428c75461790b670f2bf15f50a632d6c171a7e7b588269c619e6"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.6.1.bb
index 58994ffff..58994ffff 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.6.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.6.1.bb
index 195923343..195923343 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.6.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fann2/0001-setup.py-Don-t-hardcode-swig-and-fann2-binary-locati.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-fann2/0001-setup.py-Don-t-hardcode-swig-and-fann2-binary-locati.patch
new file mode 100644
index 000000000..cbc838f0e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-fann2/0001-setup.py-Don-t-hardcode-swig-and-fann2-binary-locati.patch
@@ -0,0 +1,28 @@
+From 85307f592c7cb87af162cca4b121b874108b7754 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Tue, 2 Apr 2019 11:25:15 -0700
+Subject: [PATCH] setup.py: Don't hardcode swig and fann2 binary locations
+
+Upstream-Status: Inappropriate [configuration]
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+---
+ setup.py | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 37af7c7..8e416f2 100755
+--- a/setup.py
++++ b/setup.py
+@@ -81,11 +81,8 @@ def find_swig():
+
+ def build_swig():
+ '''Run SWIG with specified parameters'''
+- print("Looking for FANN libs...")
+- find_fann()
+- print("running SWIG...")
+ swig_bin = find_swig()
+- swig_cmd = [swig_bin, '-c++', '-python', 'fann2/fann2.i']
++ swig_cmd = ['swig', '-c++', '-python', 'fann2/fann2.i']
+ subprocess.Popen(swig_cmd).wait()
+
+ if "sdist" not in sys.argv:
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb
new file mode 100644
index 000000000..a04c961f4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb
@@ -0,0 +1,4 @@
+require python-fann2.inc
+inherit pypi setuptools3
+
+SRC_URI += " file://0001-setup.py-Don-t-hardcode-swig-and-fann2-binary-locati.patch"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pocketsphinx_0.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pocketsphinx_0.1.0.bb
new file mode 100644
index 000000000..2275d1b50
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pocketsphinx_0.1.0.bb
@@ -0,0 +1,2 @@
+require python-pocketsphinx.inc
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyaudio_0.2.11.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyaudio_0.2.11.bb
new file mode 100644
index 000000000..abb01bf69
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyaudio_0.2.11.bb
@@ -0,0 +1,2 @@
+require python-pyaudio.inc
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.20.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.21.0.bb
index 0a2410f85..0a2410f85 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.20.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.21.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_1.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_1.3.0.bb
new file mode 100644
index 000000000..76bc41a11
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_1.3.0.bb
@@ -0,0 +1,2 @@
+require python-xxhash.inc
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.4.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.5.bb
index 7c5848b92..9f8f61a4a 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.4.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.5.bb
@@ -7,8 +7,8 @@ DEPENDS = "xfce4-panel libxfce4util libxfce4ui gdk-pixbuf gtk+ glib-2.0 libsoup-
inherit xfce-app
-SRC_URI[md5sum] = "68321e50939fea3c66f0771d59845dab"
-SRC_URI[sha256sum] = "c4f3225b3f73f1feb1869807b8b27aec4c32a3e9c2954915a5fb39d18d3a60f2"
+SRC_URI[md5sum] = "0354811cd2622d3de92e342c7eaa184d"
+SRC_URI[sha256sum] = "bf35b5432cb920987c6d7ff193600e5dd4d73422b6aa02b4ec5288744053b38c"
do_compile_prepend() {
mkdir -p lib
OpenPOWER on IntegriCloud