From 34ae60030e520db4235f13b99849052e594fde7b Mon Sep 17 00:00:00 2001 From: Brad Bishop Date: Mon, 8 Apr 2019 15:21:03 -0400 Subject: meta-openembedded: refresh master: 0435c9e193..4a9deabbc8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .../recipes-devtools/python/python-engineio.inc | 13 + .../python/python-engineio_3.5.0.bb | 2 + .../python/python-flask-socketio.inc | 18 + .../python/python-flask-socketio_3.3.2.bb | 2 + .../recipes-devtools/python/python-socketio.inc | 17 + .../python/python-socketio_4.0.0.bb | 2 + .../python/python3-engineio_3.5.0.bb | 2 + .../python/python3-flask-socketio_3.3.2.bb | 2 + .../python/python3-socketio_4.0.0.bb | 2 + ...on.build-Disable-libseccomp-for-all-archs.patch | 40 + .../gnome-desktop/gnome-desktop3_3.32.0.bb | 13 +- .../meta-gnome/recipes-gnome/gvfs/gvfs_1.40.0.bb | 14 +- .../dracut/0001-dracut.sh-improve-udevdir.patch | 39 + .../recipes-devtools/dracut/dracut_git.bb | 1 + .../recipes-multimedia/musicpd/ncmpc_0.33.bb | 4 +- .../mycroft/files/0001-Remove-python-venv.patch | 192 +++ ...-requirements-Remove-ones-installed-by-OE.patch | 62 + ...ython3-and-pip3-instead-of-python-and-pip.patch | 135 ++ ...04-dev_setup.sh-Remove-the-git-dependency.patch | 48 + ...setup.sh-Remove-the-test-setup-dependency.patch | 31 + .../recipes-multimedia/mycroft/files/dev_opts.json | 1 + .../mycroft/files/mycroft-setup.service | 11 + .../mycroft/files/mycroft.service | 13 + .../recipes-multimedia/mycroft/mycroft_19.2.2.bb | 73 + .../networkmanager/0003-dlopen-failure.patch | 34 + ...clude-net-ethernet.h-and-linux-if_ether.h.patch | 54 - .../musl/0001-Fix-build-with-musl.patch | 351 +++++ ...emove-net-ethernet.h-seems-to-be-over-spe.patch | 37 - .../networkmanager/musl/0003-musl-basic.patch | 56 - .../musl/0004-musl-dlopen-configure-ac.patch | 33 - .../musl/0005-musl-network-support.patch | 71 - .../musl/0006-musl-process-util.patch | 60 - ...further-conflicts-by-including-net-ethern.patch | 75 - .../0008-Add-a-strndupa-replacement-for-musl.patch | 45 - .../networkmanager/networkmanager_1.16.0.bb | 13 +- .../recipes-connectivity/wolfssl/wolfssl_3.15.7.bb | 21 - .../recipes-connectivity/wolfssl/wolfssl_3.15.8.bb | 21 + .../recipes-support/fping/fping_3.5.bb | 25 - .../recipes-support/fping/fping_4.2.bb | 25 + .../ipsec-tools/fix-CVE-2015-4047.patch | 2 + .../ipsec-tools/fix-CVE-2016-10396.patch | 2 +- .../recipes-support/nuttcp/nuttcp_7.2.1.bb | 29 - .../recipes-support/nuttcp/nuttcp_7.3.3.bb | 26 + .../recipes-support/tcpreplay/tcpreplay_4.2.6.bb | 19 - .../recipes-support/tcpreplay/tcpreplay_4.3.2.bb | 19 + .../meta-oe/recipes-benchmark/fio/fio_3.12.bb | 1 + .../recipes-connectivity/zeromq/cppzmq_git.bb | 6 +- .../recipes-connectivity/zeromq/czmq_4.1.1.bb | 30 - .../recipes-connectivity/zeromq/czmq_4.2.0.bb | 30 + .../0001-Problem-out-of-date-with-zproject.patch | 31 - .../recipes-connectivity/zeromq/zeromq_4.2.5.bb | 32 - .../recipes-connectivity/zeromq/zeromq_4.3.1.bb | 26 + .../android-tools-conf/android-gadget-setup | 5 +- .../recipes-devtools/doxygen/doxygen_1.8.15.bb | 9 +- .../libedit/libedit_20181209-3.1.bb | 23 - .../libedit/libedit_20190324-3.1.bb | 23 + ...l-build-fix-port-internal-make-dependenci.patch | 33 + .../recipes-extended/lcdproc/lcdproc_git.bb | 3 +- .../recipes-extended/libmodbus/libmodbus_3.1.4.bb | 3 - .../lockfile-progs/lockfile-progs_0.1.17.bb | 24 - .../lockfile-progs/lockfile-progs_0.1.18.bb | 24 + .../meta-oe/recipes-extended/redis/redis_4.0.12.bb | 4 + .../recipes-extended/rrdtool/rrdtool_1.7.0.bb | 1 + .../recipes-extended/rsyslog/rsyslog_8.1903.0.bb | 5 + .../recipes-gnome/libpeas/libpeas_1.22.0.bb | 6 +- .../libvncserver/libvncserver_git.bb | 3 + .../recipes-multimedia/alsa/alsa-oss/libio.patch | 32 +- .../recipes-multimedia/alsa/alsa-oss_1.1.6.bb | 46 - .../recipes-multimedia/alsa/alsa-oss_1.1.8.bb | 46 + .../recipes-support/augeas/augeas_1.10.1.bb | 4 - .../recipes-support/augeas/augeas_1.11.0.bb | 4 + .../recipes-support/cpprest/cpprest/1094.patch | 307 ++++ ...-9b670e5b33dfdbd501d618cd7e7498148ffbd559.patch | 26 - ...-f10d9f8e214516d2c19aa6ef831ee874a58c0479.patch | 1557 -------------------- .../recipes-support/cpprest/cpprest_2.10.12.bb | 4 +- .../imagemagick/imagemagick_7.0.7.bb | 86 -- .../imagemagick/imagemagick_7.0.8.bb | 86 ++ .../meta-oe/recipes-support/libfann/libfann_git.bb | 17 + .../meta-oe/recipes-support/mcelog/mcelog_161.bb | 35 - .../meta-oe/recipes-support/mcelog/mcelog_162.bb | 35 + .../openldap/openldap/openldap-CVE-2015-3276.patch | 2 + .../python/python-cryptography-vectors.inc | 4 +- .../python/python-cryptography-vectors_2.4.1.bb | 2 - .../python/python-cryptography-vectors_2.6.1.bb | 2 + .../python/python-cryptography.inc | 4 +- .../python/python-cryptography_2.4.1.bb | 22 - .../python/python-cryptography_2.6.1.bb | 22 + .../recipes-devtools/python/python-fann2.inc | 9 + .../python/python-pocketsphinx.inc | 9 + .../recipes-devtools/python/python-pyaudio.inc | 13 + .../recipes-devtools/python/python-requests.inc | 4 +- .../python/python-requests_2.20.1.bb | 4 - .../python/python-requests_2.21.0.bb | 4 + .../recipes-devtools/python/python-xxhash.inc | 7 + .../python/python3-cryptography-vectors_2.4.1.bb | 2 - .../python/python3-cryptography-vectors_2.6.1.bb | 2 + .../python/python3-cryptography_2.4.1.bb | 8 - .../python/python3-cryptography_2.6.1.bb | 8 + ...n-t-hardcode-swig-and-fann2-binary-locati.patch | 28 + .../recipes-devtools/python/python3-fann2_1.1.2.bb | 4 + .../python/python3-pocketsphinx_0.1.0.bb | 2 + .../python/python3-pyaudio_0.2.11.bb | 2 + .../python/python3-requests_2.20.1.bb | 2 - .../python/python3-requests_2.21.0.bb | 2 + .../python/python3-xxhash_1.3.0.bb | 2 + .../xfce4-screenshooter_1.9.4.bb | 22 - .../xfce4-screenshooter_1.9.5.bb | 22 + 107 files changed, 2046 insertions(+), 2530 deletions(-) create mode 100644 meta-openembedded/meta-demo/recipes-devtools/python/python-engineio.inc create mode 100644 meta-openembedded/meta-demo/recipes-devtools/python/python-engineio_3.5.0.bb create mode 100644 meta-openembedded/meta-demo/recipes-devtools/python/python-flask-socketio.inc create mode 100644 meta-openembedded/meta-demo/recipes-devtools/python/python-flask-socketio_3.3.2.bb create mode 100644 meta-openembedded/meta-demo/recipes-devtools/python/python-socketio.inc create mode 100644 meta-openembedded/meta-demo/recipes-devtools/python/python-socketio_4.0.0.bb create mode 100644 meta-openembedded/meta-demo/recipes-devtools/python/python3-engineio_3.5.0.bb create mode 100644 meta-openembedded/meta-demo/recipes-devtools/python/python3-flask-socketio_3.3.2.bb create mode 100644 meta-openembedded/meta-demo/recipes-devtools/python/python3-socketio_4.0.0.bb create mode 100644 meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch create mode 100644 meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut/0001-dracut.sh-improve-udevdir.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0002-pip-requirements-Remove-ones-installed-by-OE.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0003-Use-python3-and-pip3-instead-of-python-and-pip.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Remove-the-git-dependency.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/0005-dev_setup.sh-Remove-the-test-setup-dependency.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/dev_opts.json create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.2.2.bb create mode 100644 meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-dlopen-failure.patch delete mode 100644 meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch create mode 100644 meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-Fix-build-with-musl.patch delete mode 100644 meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch delete mode 100644 meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-basic.patch delete mode 100644 meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-dlopen-configure-ac.patch delete mode 100644 meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-network-support.patch delete mode 100644 meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-musl-process-util.patch delete mode 100644 meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0007-musl-avoid-further-conflicts-by-including-net-ethern.patch delete mode 100644 meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0008-Add-a-strndupa-replacement-for-musl.patch delete mode 100644 meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.15.7.bb create mode 100644 meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.15.8.bb delete mode 100644 meta-openembedded/meta-networking/recipes-support/fping/fping_3.5.bb create mode 100644 meta-openembedded/meta-networking/recipes-support/fping/fping_4.2.bb delete mode 100644 meta-openembedded/meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb create mode 100644 meta-openembedded/meta-networking/recipes-support/nuttcp/nuttcp_7.3.3.bb delete mode 100644 meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.2.6.bb create mode 100644 meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.3.2.bb delete mode 100644 meta-openembedded/meta-oe/recipes-connectivity/zeromq/czmq_4.1.1.bb create mode 100644 meta-openembedded/meta-oe/recipes-connectivity/zeromq/czmq_4.2.0.bb delete mode 100644 meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/0001-Problem-out-of-date-with-zproject.patch delete mode 100644 meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.2.5.bb create mode 100644 meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.1.bb delete mode 100644 meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20181209-3.1.bb create mode 100644 meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20190324-3.1.bb create mode 100644 meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc/0001-Fix-parallel-build-fix-port-internal-make-dependenci.patch delete mode 100644 meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.17.bb create mode 100644 meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb delete mode 100644 meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.6.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.8.bb delete mode 100644 meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.10.1.bb create mode 100644 meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.11.0.bb create mode 100644 meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/1094.patch delete mode 100644 meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/revert-9b670e5b33dfdbd501d618cd7e7498148ffbd559.patch delete mode 100644 meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/revert-f10d9f8e214516d2c19aa6ef831ee874a58c0479.patch delete mode 100644 meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb create mode 100644 meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.8.bb create mode 100644 meta-openembedded/meta-oe/recipes-support/libfann/libfann_git.bb delete mode 100644 meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_161.bb create mode 100644 meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_162.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.4.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.6.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.4.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.6.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python-fann2.inc create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python-pocketsphinx.inc create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python-pyaudio.inc delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.20.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.21.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python-xxhash.inc delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.4.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.6.1.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.4.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.6.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-fann2/0001-setup.py-Don-t-hardcode-swig-and-fann2-binary-locati.patch create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pocketsphinx_0.1.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-pyaudio_0.2.11.bb delete mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.20.1.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.21.0.bb create mode 100644 meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_1.3.0.bb delete mode 100644 meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.4.bb create mode 100644 meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.5.bb (limited to 'meta-openembedded') 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?= +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 +--- + 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 +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 +--- + 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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Alistair Francis +--- + 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/0003-dlopen-failure.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-dlopen-failure.patch new file mode 100644 index 000000000..e99c22710 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-dlopen-failure.patch @@ -0,0 +1,34 @@ +From 57239fda56b68a8f3e413f7b6af5290ba0d86636 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 22 Mar 2018 18:18:06 +0100 +Subject: [PATCH] musl: dlopen is included so LD_LIBS="" instead of + LD_LIBS="none required" +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 +--- + configure.ac | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configure.ac b/configure.ac +index 487a266..96ae4f7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -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=]) ++AS_IF([test "$ac_cv_search_dlopen" = "none required"],[ac_cv_search_dlopen=""]) + 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 -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 - ---- - 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 - #include - #include --#include - #include - #include - #include -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 -- - #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 -- - #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?= +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 +--- + 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 + #include + #include +-#include + #include + #include + #include +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 + #include "nm-utils.h" + + #include +-#include + #include + #include + #include +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 + #include + #include +-#include + #include + #include + #include +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 + #include + #include ++#ifndef __GLIBC__ ++#include ++#endif + #if 0 /* NM_IGNORED */ + #if HAVE_VALGRIND_VALGRIND_H + #include +@@ -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 + #include + ++#if !defined(__GLIBC__) ++/* SIOCGSTAMPNS from linux/asm-generic.h ++ * for src/systemd/src/libsystemd-network/sd-lldp.c */ ++#include ++#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 ++#endif + #include + #include + #include +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 ++#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 +- + #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 +- + #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 ++#include + #include + #include + +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 ++#if defined(__GLIBC__) + #include ++#endif + #include + #include + #include +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 ++#if defined(__GLIBC__) + #include ++#endif + #include + #include + +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 ++#if defined(__GLIBC__) + #include ++#endif + #include + + #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 . + ***/ + ++#if defined(__GLIBC__) + #include ++#endif + #include + + #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 +-#include ++//#include + #include + + #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 -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 - ---- - 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 -+#include - #include - #include - -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 --#include -+//#include - #include - - #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?= -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?= -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 - ---- - 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 -+#endif - #include - #include - #include -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/0004-musl-dlopen-configure-ac.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-dlopen-configure-ac.patch deleted file mode 100644 index 419e1be24..000000000 --- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-dlopen-configure-ac.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 7743ea63fbe572b1f82db7d399fe9c5c99521432 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Thu, 22 Mar 2018 18:18:06 +0100 -Subject: [PATCH] musl: dlopen is included so LD_LIBS="" instead of - LD_LIBS="none required" -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 - ---- - configure.ac | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/configure.ac b/configure.ac -index b914219..1b2b0ff 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -241,6 +241,7 @@ dnl - dnl Checks for libdl - on certain platforms its part of libc - dnl - AC_SEARCH_LIBS([dlopen], [dl dld], [], [ac_cv_search_dlopen=]) -+AS_IF([test "$ac_cv_search_dlopen" = "none required"],[ac_cv_search_dlopen=""]) - AC_SUBST([DL_LIBS], "$ac_cv_search_dlopen") - - PKG_CHECK_MODULES(GLIB, [gio-unix-2.0 >= 2.37.6 gmodule-2.0], 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?= -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 - ---- - 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 - - /* For ETH_ALEN and INFINIBAND_ALEN */ -+#if defined(__GLIBC__) - #include -+#else -+#define ETH_ALEN 6 /* Octets in one ethernet addr */ -+#endif - #include - - #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 - #include - -+#if !defined(__GLIBC__) -+/* SIOCGSTAMPNS from linux/asm-generic.h -+ * for src/systemd/src/libsystemd-network/sd-lldp.c */ -+#include -+#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 -+#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?= -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 - ---- - 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 - #include - #include -+#ifndef __GLIBC__ -+#include -+#endif - #if 0 /* NM_IGNORED */ - #if HAVE_VALGRIND_VALGRIND_H - #include -@@ -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?= -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 - ---- - 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 -+#if defined(__GLIBC__) - #include -+#endif - #include - #include - #include -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 -+#if defined(__GLIBC__) - #include -+#endif - #include - #include - -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 -+#if defined(__GLIBC__) - #include -+#endif - #include - - #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 . - ***/ - -+#if defined(__GLIBC__) - #include -+#endif - #include - - #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?= -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 - ---- - 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\-(?P1\.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.7.bb deleted file mode 100644 index 0a0a6075d..000000000 --- a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.15.7.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "wolfSSL Lightweight Embedded SSL/TLS Library" -DESCRIPTION = "wolfSSL, formerly CyaSSL, is a lightweight SSL library written \ - in C and optimized for embedded and RTOS environments. It can \ - be up to 20 times smaller than OpenSSL while still supporting \ - a full TLS client and server, up to TLS 1.3" -HOMEPAGE = "https://www.wolfssl.com/products/wolfssl" -BUGTRACKER = "https://github.com/wolfssl/wolfssl/issues" -SECTION = "libs" -LICENSE = "GPLv2" -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" - -inherit autotools - -BBCLASSEXTEND += "native nativesdk" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.15.8.bb b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.15.8.bb new file mode 100644 index 000000000..d4b969104 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.15.8.bb @@ -0,0 +1,21 @@ +SUMMARY = "wolfSSL Lightweight Embedded SSL/TLS Library" +DESCRIPTION = "wolfSSL, formerly CyaSSL, is a lightweight SSL library written \ + in C and optimized for embedded and RTOS environments. It can \ + be up to 20 times smaller than OpenSSL while still supporting \ + a full TLS client and server, up to TLS 1.3" +HOMEPAGE = "https://www.wolfssl.com/products/wolfssl" +BUGTRACKER = "https://github.com/wolfssl/wolfssl/issues" +SECTION = "libs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +PROVIDES += "cyassl" +RPROVIDES_${PN} = "cyassl" + +SRC_URI = "git://github.com/wolfSSL/wolfssl.git;protocol=https" +SRCREV = "e87433e2b6682aa7162fcb4aafefb08e2fbd932b" +S = "${WORKDIR}/git" + +inherit autotools + +BBCLASSEXTEND += "native nativesdk" diff --git a/meta-openembedded/meta-networking/recipes-support/fping/fping_3.5.bb b/meta-openembedded/meta-networking/recipes-support/fping/fping_3.5.bb deleted file mode 100644 index 82e3bf073..000000000 --- a/meta-openembedded/meta-networking/recipes-support/fping/fping_3.5.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "sends ICMP ECHO_REQUEST packets to network hosts" -DESCRIPTION = "fping is a ping like program which uses the Internet Control \ -Message Protocol (ICMP) echo request to determine if a target host is \ -responding. fping differs from ping in that you can specify any number of \ -targets on the command line, or specify a file containing the lists of \ -targets to ping. Instead of sending to one target until it times out or \ -replies, fping will send out a ping packet and move on to the next target \ -in a round-robin fashion." -HOMEPAGE = "http://www.fping.org/" -SECTION = "net" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=09d77789fe32be35acde9637a5ee39b1" - -SRC_URI = "http://www.fping.org/dist/fping-${PV}.tar.gz" -SRC_URI[md5sum] = "2e17cb655aa4eb59b5a4a38a89e746ed" -SRC_URI[sha256sum] = "09b8960e235341bae6000085d38106357eae656a79e0119bd27e816c9003656a" - -S = "${WORKDIR}/fping-${PV}" - -inherit autotools - -EXTRA_OECONF = "--enable-ipv4" - -PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/meta-openembedded/meta-networking/recipes-support/fping/fping_4.2.bb b/meta-openembedded/meta-networking/recipes-support/fping/fping_4.2.bb new file mode 100644 index 000000000..594f5b9cf --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/fping/fping_4.2.bb @@ -0,0 +1,25 @@ +SUMMARY = "sends ICMP ECHO_REQUEST packets to network hosts" +DESCRIPTION = "fping is a ping like program which uses the Internet Control \ +Message Protocol (ICMP) echo request to determine if a target host is \ +responding. fping differs from ping in that you can specify any number of \ +targets on the command line, or specify a file containing the lists of \ +targets to ping. Instead of sending to one target until it times out or \ +replies, fping will send out a ping packet and move on to the next target \ +in a round-robin fashion." +HOMEPAGE = "http://www.fping.org/" +SECTION = "net" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=c6170fbadddfcd74f011515291d96901" + +SRC_URI = "http://www.fping.org/dist/fping-${PV}.tar.gz" +SRC_URI[md5sum] = "218e71764177a8ce25564a7810f8e729" +SRC_URI[sha256sum] = "7d339674b6a95aae1d8ad487ff5056fd95b474c3650938268f6a905c3771b64a" + +S = "${WORKDIR}/fping-${PV}" + +inherit autotools + +EXTRA_OECONF = "--enable-ipv4" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," 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 --- 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.2.1.bb deleted file mode 100644 index 9430add48..000000000 --- a/meta-openembedded/meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (C) 2013 Khem Raj -# 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) \ -network layer throughput by transferring memory buffers from a source system \ -across an interconnecting network to a destination system, either transferring \ -data for a specified time interval, or alternatively transferring a specified \ -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" - -SRC_URI = "http://nuttcp.net/${BPN}/beta/${BP}.c" -SRC_URI[md5sum] = "1ebf4a08bad2a295a8155f02995e8754" -SRC_URI[sha256sum] = "c6e33810ccce67260f8d5d627f60e429d44f532365c58ed5673d035e2a59c4db" - -S = "${WORKDIR}" - -do_compile () { - ${CC} ${CFLAGS} ${LDFLAGS} -o nuttcp nuttcp-${PV}.c -} - -do_install () { - install -d ${D}${bindir} - install -m 0755 nuttcp ${D}${bindir} -} diff --git a/meta-openembedded/meta-networking/recipes-support/nuttcp/nuttcp_7.3.3.bb b/meta-openembedded/meta-networking/recipes-support/nuttcp/nuttcp_7.3.3.bb new file mode 100644 index 000000000..ec4067806 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/nuttcp/nuttcp_7.3.3.bb @@ -0,0 +1,26 @@ +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) \ +network layer throughput by transferring memory buffers from a source system \ +across an interconnecting network to a destination system, either transferring \ +data for a specified time interval, or alternatively transferring a specified \ +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=c55daba5a5a869a123c3565de07d15a6" + +SRC_URI = "http://nuttcp.net/${BPN}/beta/${BP}.c" +SRC_URI[md5sum] = "dfbff3c38fb0cbdc474ca6d13539d425" +SRC_URI[sha256sum] = "d68e291a72375d76f301d54aa945727c95e78090aa6783a4844764e632e98a4a" + +S = "${WORKDIR}" + +do_compile () { + ${CC} ${CFLAGS} ${LDFLAGS} -o nuttcp nuttcp-${PV}.c +} + +do_install () { + install -d ${D}${bindir} + install -m 0755 nuttcp ${D}${bindir} +} 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.2.6.bb deleted file mode 100644 index 681ef02bb..000000000 --- a/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.2.6.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "Use previously captured traffic to test network devices" - -HOMEPAGE = "http://tcpreplay.synfin.net/" -SECTION = "net" - -LICENSE = "GPLv3" -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" - -DEPENDS = "libpcap" - -EXTRA_OECONF += "--with-libpcap=${STAGING_DIR_HOST}/usr" - -inherit siteinfo autotools-brokensep - diff --git a/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.3.2.bb b/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.3.2.bb new file mode 100644 index 000000000..a808c2728 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.3.2.bb @@ -0,0 +1,19 @@ +SUMMARY = "Use previously captured traffic to test network devices" + +HOMEPAGE = "http://tcpreplay.synfin.net/" +SECTION = "net" + +LICENSE = "GPLv3" +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] = "dfa0d1b3dfd2cd316291a7a20563b649" +SRC_URI[sha256sum] = "4f479bd9196cafde70c58ab072ca4959ecc5278555cf1aa7cf42f7f210daa951" + +DEPENDS = "libpcap" + +EXTRA_OECONF += "--with-libpcap=${STAGING_DIR_HOST}/usr" + +inherit siteinfo autotools-brokensep + 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.1.1.bb deleted file mode 100644 index f2db0041c..000000000 --- a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/czmq_4.1.1.bb +++ /dev/null @@ -1,30 +0,0 @@ -DESCRIPTION = "C bindings for ZeroMQ" -HOMEPAGE = "http://www.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[md5sum] = "6d3a6fdd25c2bb29897c53670dce97bf" -SRC_URI[sha256sum] = "f00ff419881dc2a05d0686c8467cd89b4882677fc56f31c0e2cc81c134cbb0c0" - -inherit cmake - -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}-staticdev = "${libdir}/lib*.a" - -RDEPENDS_lib${BPN}-dev = "zeromq-dev" - -PACKAGECONFIG ??= "lz4 uuid" -PACKAGECONFIG[lz4] = ",-DCMAKE_DISABLE_FIND_PACKAGE_lz4=TRUE,lz4" -PACKAGECONFIG[uuid] = ",-DCMAKE_DISABLE_FIND_PACKAGE_uuid=TRUE,util-linux" - -BBCLASSEXTEND = "nativesdk" - diff --git a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/czmq_4.2.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/czmq_4.2.0.bb new file mode 100644 index 000000000..4ec1c0409 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/czmq_4.2.0.bb @@ -0,0 +1,30 @@ +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" + +SRC_URI[md5sum] = "7e09997db6ac3b25e8ed104053040722" +SRC_URI[sha256sum] = "cfab29c2b3cc8a845749758a51e1dd5f5160c1ef57e2a41ea96e4c2dcc8feceb" + +inherit cmake + +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} ${datadir}/cmake" +FILES_lib${BPN}-staticdev = "${libdir}/lib*.a" + +RDEPENDS_lib${BPN}-dev = "zeromq-dev" + +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 -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 - -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_20181209-3.1.bb deleted file mode 100644 index c0a3d2136..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20181209-3.1.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "BSD replacement for libreadline" -DESCRIPTION = "Command line editor library providing generic line editing, \ -history, and tokenization functions" -HOMEPAGE = "http://www.thrysoee.dk/editline/" -SECTION = "libs" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=1e4228d0c5a9093b01aeaaeae6641533" - -DEPENDS = "ncurses" - -inherit autotools - -# upstream site does not allow wget's User-Agent -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" - -S = "${WORKDIR}/${BPN}-${PV}" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20190324-3.1.bb b/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20190324-3.1.bb new file mode 100644 index 000000000..9d333e7aa --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20190324-3.1.bb @@ -0,0 +1,23 @@ +SUMMARY = "BSD replacement for libreadline" +DESCRIPTION = "Command line editor library providing generic line editing, \ +history, and tokenization functions" +HOMEPAGE = "http://www.thrysoee.dk/editline/" +SECTION = "libs" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=1e4228d0c5a9093b01aeaaeae6641533" + +DEPENDS = "ncurses" + +inherit autotools + +# upstream site does not allow wget's User-Agent +FETCHCMD_wget += "-U bitbake" +SRC_URI = "http://www.thrysoee.dk/editline/${BPN}-${PV}.tar.gz \ + file://stdc-predef.patch \ + " +SRC_URI[md5sum] = "bec755c8044ad84b752dfe49a0b371d8" +SRC_URI[sha256sum] = "ac8f0f51c1cf65492e4d1e3ed2be360bda41e54633444666422fbf393bba1bae" + +S = "${WORKDIR}/${BPN}-${PV}" + +BBCLASSEXTEND = "native nativesdk" 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 +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 +--- + 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.17.bb deleted file mode 100644 index 4354fff9a..000000000 --- a/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.17.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "Command-line programs to safely lock and unlock files and mailboxes" -DESCRIPTION = "\ -lockfile-progs provide a method to lock and unlock mailboxes and files \ -safely (via liblockfile)." -HOMEPAGE = "http://packages.qa.debian.org/l/lockfile-progs.html" -SECTION = "Applications/System" -LICENSE = "GPLv2" -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" - -do_compile() { - oe_runmake CFLAGS=' -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables' -} - -do_install() { - install -m 755 -d ${D}${bindir} - install bin/* ${D}${bindir} - install -m 755 -d ${D}${mandir}/man1 - install man/* ${D}${mandir}/man1 -} diff --git a/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb b/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb new file mode 100644 index 000000000..c76e0f69e --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb @@ -0,0 +1,24 @@ +SUMMARY = "Command-line programs to safely lock and unlock files and mailboxes" +DESCRIPTION = "\ +lockfile-progs provide a method to lock and unlock mailboxes and files \ +safely (via liblockfile)." +HOMEPAGE = "http://packages.qa.debian.org/l/lockfile-progs.html" +SECTION = "Applications/System" +LICENSE = "GPLv2" +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] = "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' +} + +do_install() { + install -m 755 -d ${D}${bindir} + install bin/* ${D}${bindir} + install -m 755 -d ${D}${mandir}/man1 + install man/* ${D}${mandir}/man1 +} 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 +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 +- +#ifdef HAVE_LIBIO_H - #include ++#include +#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.6.bb deleted file mode 100644 index 6c2176f79..000000000 --- a/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.6.bb +++ /dev/null @@ -1,46 +0,0 @@ -# FIXME: the LIC_FILES_CHKSUM values have been updated by 'devtool upgrade'. -# The following is the difference between the old and the new license text. -# Please update the LICENSE value if needed, and summarize the changes in -# the commit message via 'License-Update:' tag. -# (example: 'License-Update: copyright years updated.') -# -# The changes: -# -# --- COPYING -# +++ COPYING -# @@ -2,7 +2,8 @@ -# Version 2, June 1991 -# -# Copyright (C) 1989, 1991 Free Software Foundation, Inc. -# - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA -# + -# Everyone is permitted to copy and distribute verbatim copies -# of this license document, but changing it is not allowed. -# -# -# - -SUMMARY = "Alsa OSS Compatibility Package" -SECTION = "libs/multimedia" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=ed055b4eff93da784176a01582e6ec1a" -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" - -inherit autotools - -LEAD_SONAME = "libaoss.so.0" - -do_configure_prepend () { - touch NEWS README AUTHORS ChangeLog - sed -i "s/libaoss.so/${LEAD_SONAME}/" ${S}/alsa/aoss.in -} - -# http://errors.yoctoproject.org/Errors/Details/186961/ -EXCLUDE_FROM_WORLD_libc-musl = "1" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.8.bb b/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.8.bb new file mode 100644 index 000000000..46ab50316 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.8.bb @@ -0,0 +1,46 @@ +# FIXME: the LIC_FILES_CHKSUM values have been updated by 'devtool upgrade'. +# The following is the difference between the old and the new license text. +# Please update the LICENSE value if needed, and summarize the changes in +# the commit message via 'License-Update:' tag. +# (example: 'License-Update: copyright years updated.') +# +# The changes: +# +# --- COPYING +# +++ COPYING +# @@ -2,7 +2,8 @@ +# Version 2, June 1991 +# +# Copyright (C) 1989, 1991 Free Software Foundation, Inc. +# - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA +# + +# Everyone is permitted to copy and distribute verbatim copies +# of this license document, but changing it is not allowed. +# +# +# + +SUMMARY = "Alsa OSS Compatibility Package" +SECTION = "libs/multimedia" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=ed055b4eff93da784176a01582e6ec1a" +DEPENDS = "alsa-lib" + +SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2 \ + file://libio.patch \ +" +SRC_URI[md5sum] = "9ec4bb783fdce19032aace086d65d874" +SRC_URI[sha256sum] = "64adcef5927e848d2e024e64c4bf85b6f395964d9974ec61905ae4cb8d35d68e" + +inherit autotools + +LEAD_SONAME = "libaoss.so.0" + +do_configure_prepend () { + touch NEWS README AUTHORS ChangeLog + sed -i "s/libaoss.so/${LEAD_SONAME}/" ${S}/alsa/aoss.in +} + +# http://errors.yoctoproject.org/Errors/Details/186961/ +EXCLUDE_FROM_WORLD_libc-musl = "1" 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)" +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(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(m_interval / _secondTicks); // convert to seconds + const int frac_sec = static_cast(m_interval % _secondTicks); + const time_t time = static_cast(input - ntToUnixOffsetSeconds); + struct tm t; +@@ -797,22 +797,20 @@ static int atoi2(const CharT* str) + return (static_cast(str[0]) - '0') * 10 + (static_cast(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(_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(time); + #else // ^^^ ANDROID // Other POSIX platforms vvv +- return timegm(t); ++ return static_cast(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(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(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(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 ---- 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 - #include --#include -+#include - #include --#include -+ -+#ifndef _WIN32 -+#if defined(__clang__) -+#pragma clang diagnostic push -+#pragma clang diagnostic ignored "-Wunused-local-typedef" -+#endif -+#include -+#include -+#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(m_interval % _secondTicks); -- const time_t time = static_cast(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 --static bool string_starts_with(const CharT* haystack, const char* needle) --{ -- while (*needle) -- { -- if (*haystack != static_cast(*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 --static int atoi2(const CharT* str) --{ -- return (static_cast(str[0]) - '0') * 10 + (static_cast(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 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(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 -+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(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(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 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(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(seconds) * _secondTicks + frac_sec; -+ // fractional seconds are already in correct format so just add them. -+ result = result + ufrac_second; - return result; -+#endif - } - - /// -@@ -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::eof(); -+ -+ std::basic_istream::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(sizeof(c_allowed_chars) / sizeof(utility::char_t)) - 1); -+ std::uniform_int_distribution<> distr(0, static_cast(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(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.7.bb deleted file mode 100644 index 37d5a637a..000000000 --- a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb +++ /dev/null @@ -1,86 +0,0 @@ -SUMMARY = "ImageMagick is an image conversion toolkit" -SECTION = "console/utils" -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" -# 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" - -BASE_PV := "${PV}" -PV .= "_7" -SRC_URI = "git://github.com/ImageMagick/ImageMagick.git " -SRCREV = "e12602b39b5e778240d286b6f9bbbc0fe3fb26c5" - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig update-alternatives - -# xml disabled because it's using xml2-config --prefix to determine prefix which returns just /usr with our libxml2 -# if someone needs xml support then fix it first -EXTRA_OECONF = "--program-prefix= --program-suffix=.im7 --without-perl --disable-openmp --without-xml --disable-opencl" - -CACHED_CONFIGUREVARS = "ac_cv_sys_file_offset_bits=yes" -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" -PACKAGECONFIG[graphviz] = "--with-gvc,--without-gvc,graphviz" -PACKAGECONFIG[jp2] = "--with-jp2,,jasper" -PACKAGECONFIG[lzma] = "--with-lzma,--without-lzma,xz" -PACKAGECONFIG[openjpeg] = "--with-openjp2,--without-openjp2,openjpeg" -PACKAGECONFIG[pango] = "--with-pango,--without-pango,pango cairo" -PACKAGECONFIG[rsvg] = "--with-rsvg,--without-rsvg,librsvg" -PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp" -PACKAGECONFIG[wmf] = "--with-wmf,--without-wmf,libwmf" -PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 libxext libxt" - -FILES_${PN} += "${libdir}/ImageMagick-${BASE_PV}/config-Q16* \ - ${datadir}/ImageMagick-7" - -FILES_${PN}-dev += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/*.a" - -FILES_${PN}-dbg += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/.debug/*" - -BBCLASSEXTEND = "native" - -ALTERNATIVE_PRIORITY = "100" - -ALTERNATIVE_${PN} = "animate compare composite conjure convert display \ - identify import mogrify montage stream" - -ALTERNATIVE_TARGET[animate] = "${bindir}/animate.im7" -ALTERNATIVE_TARGET[compare] = "${bindir}/compare.im7" -ALTERNATIVE_TARGET[composite] = "${bindir}/composite.im7" -ALTERNATIVE_TARGET[conjure] = "${bindir}/conjure.im7" -ALTERNATIVE_TARGET[convert] = "${bindir}/convert.im7" -ALTERNATIVE_TARGET[display] = "${bindir}/display.im7" -ALTERNATIVE_TARGET[identify] = "${bindir}/identify.im7" -ALTERNATIVE_TARGET[import] = "${bindir}/import.im7" -ALTERNATIVE_TARGET[mogrify] = "${bindir}/mogrify.im7" -ALTERNATIVE_TARGET[montage] = "${bindir}/montage.im7" -ALTERNATIVE_TARGET[stream] = "${bindir}/stream.im7" - -ALTERNATIVE_${PN}-doc = "animate.1 compare.1 composite.1 conjure.1 \ - convert.1 display.1 identify.1 import.1 mogrify.1 montage.1 stream.1" - -ALTERNATIVE_LINK_NAME[animate.1] = "${mandir}/man1/animate.1" -ALTERNATIVE_TARGET[animate.1] = "${mandir}/man1/animate.im7.1" -ALTERNATIVE_LINK_NAME[compare.1] = "${mandir}/man1/compare.1" -ALTERNATIVE_TARGET[compare.1] = "${mandir}/man1/compare.im7.1" -ALTERNATIVE_LINK_NAME[composite.1] = "${mandir}/man1/composite.1" -ALTERNATIVE_TARGET[composite.1] = "${mandir}/man1/composite.im7.1" -ALTERNATIVE_LINK_NAME[conjure.1] = "${mandir}/man1/conjure.1" -ALTERNATIVE_TARGET[conjure.1] = "${mandir}/man1/conjure.im7.1" -ALTERNATIVE_LINK_NAME[convert.1] = "${mandir}/man1/convert.1" -ALTERNATIVE_TARGET[convert.1] = "${mandir}/man1/convert.im7.1" -ALTERNATIVE_LINK_NAME[display.1] = "${mandir}/man1/display.1" -ALTERNATIVE_TARGET[display.1] = "${mandir}/man1/display.im7.1" -ALTERNATIVE_LINK_NAME[identify.1] = "${mandir}/man1/identify.1" -ALTERNATIVE_TARGET[identify.1] = "${mandir}/man1/identify.im7.1" -ALTERNATIVE_LINK_NAME[import.1] = "${mandir}/man1/import.1" -ALTERNATIVE_TARGET[import.1] = "${mandir}/man1/import.im7.1" -ALTERNATIVE_LINK_NAME[mogrify.1] = "${mandir}/man1/mogrify.1" -ALTERNATIVE_TARGET[mogrify.1] = "${mandir}/man1/mogrify.im7.1" -ALTERNATIVE_LINK_NAME[montage.1] = "${mandir}/man1/montage.1" -ALTERNATIVE_TARGET[montage.1] = "${mandir}/man1/montage.im7.1" -ALTERNATIVE_LINK_NAME[stream.1] = "${mandir}/man1/stream.1" -ALTERNATIVE_TARGET[stream.1] = "${mandir}/man1/stream.im7.1" diff --git a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.8.bb b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.8.bb new file mode 100644 index 000000000..52b291d6e --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.8.bb @@ -0,0 +1,86 @@ +SUMMARY = "ImageMagick is an image conversion toolkit" +SECTION = "console/utils" +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=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 libtool" + +BASE_PV := "${PV}" +PV .= "_35" +SRC_URI = "git://github.com/ImageMagick/ImageMagick.git " +SRCREV = "224159dfcc0ae3da9a247921e3c8bfb44d39965e" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig update-alternatives + +# xml disabled because it's using xml2-config --prefix to determine prefix which returns just /usr with our libxml2 +# if someone needs xml support then fix it first +EXTRA_OECONF = "--program-prefix= --program-suffix=.im7 --without-perl --disable-openmp --without-xml --disable-opencl" + +CACHED_CONFIGUREVARS = "ac_cv_sys_file_offset_bits=yes" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" +PACKAGECONFIG[graphviz] = "--with-gvc,--without-gvc,graphviz" +PACKAGECONFIG[jp2] = "--with-jp2,,jasper" +PACKAGECONFIG[lzma] = "--with-lzma,--without-lzma,xz" +PACKAGECONFIG[openjpeg] = "--with-openjp2,--without-openjp2,openjpeg" +PACKAGECONFIG[pango] = "--with-pango,--without-pango,pango cairo" +PACKAGECONFIG[rsvg] = "--with-rsvg,--without-rsvg,librsvg" +PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp" +PACKAGECONFIG[wmf] = "--with-wmf,--without-wmf,libwmf" +PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 libxext libxt" + +FILES_${PN} += "${libdir}/ImageMagick-${BASE_PV}/config-Q16* \ + ${datadir}/ImageMagick-7" + +FILES_${PN}-dev += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/*.a" + +FILES_${PN}-dbg += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/.debug/*" + +BBCLASSEXTEND = "native" + +ALTERNATIVE_PRIORITY = "100" + +ALTERNATIVE_${PN} = "animate compare composite conjure convert display \ + identify import mogrify montage stream" + +ALTERNATIVE_TARGET[animate] = "${bindir}/animate.im7" +ALTERNATIVE_TARGET[compare] = "${bindir}/compare.im7" +ALTERNATIVE_TARGET[composite] = "${bindir}/composite.im7" +ALTERNATIVE_TARGET[conjure] = "${bindir}/conjure.im7" +ALTERNATIVE_TARGET[convert] = "${bindir}/convert.im7" +ALTERNATIVE_TARGET[display] = "${bindir}/display.im7" +ALTERNATIVE_TARGET[identify] = "${bindir}/identify.im7" +ALTERNATIVE_TARGET[import] = "${bindir}/import.im7" +ALTERNATIVE_TARGET[mogrify] = "${bindir}/mogrify.im7" +ALTERNATIVE_TARGET[montage] = "${bindir}/montage.im7" +ALTERNATIVE_TARGET[stream] = "${bindir}/stream.im7" + +ALTERNATIVE_${PN}-doc = "animate.1 compare.1 composite.1 conjure.1 \ + convert.1 display.1 identify.1 import.1 mogrify.1 montage.1 stream.1" + +ALTERNATIVE_LINK_NAME[animate.1] = "${mandir}/man1/animate.1" +ALTERNATIVE_TARGET[animate.1] = "${mandir}/man1/animate.im7.1" +ALTERNATIVE_LINK_NAME[compare.1] = "${mandir}/man1/compare.1" +ALTERNATIVE_TARGET[compare.1] = "${mandir}/man1/compare.im7.1" +ALTERNATIVE_LINK_NAME[composite.1] = "${mandir}/man1/composite.1" +ALTERNATIVE_TARGET[composite.1] = "${mandir}/man1/composite.im7.1" +ALTERNATIVE_LINK_NAME[conjure.1] = "${mandir}/man1/conjure.1" +ALTERNATIVE_TARGET[conjure.1] = "${mandir}/man1/conjure.im7.1" +ALTERNATIVE_LINK_NAME[convert.1] = "${mandir}/man1/convert.1" +ALTERNATIVE_TARGET[convert.1] = "${mandir}/man1/convert.im7.1" +ALTERNATIVE_LINK_NAME[display.1] = "${mandir}/man1/display.1" +ALTERNATIVE_TARGET[display.1] = "${mandir}/man1/display.im7.1" +ALTERNATIVE_LINK_NAME[identify.1] = "${mandir}/man1/identify.1" +ALTERNATIVE_TARGET[identify.1] = "${mandir}/man1/identify.im7.1" +ALTERNATIVE_LINK_NAME[import.1] = "${mandir}/man1/import.1" +ALTERNATIVE_TARGET[import.1] = "${mandir}/man1/import.im7.1" +ALTERNATIVE_LINK_NAME[mogrify.1] = "${mandir}/man1/mogrify.1" +ALTERNATIVE_TARGET[mogrify.1] = "${mandir}/man1/mogrify.im7.1" +ALTERNATIVE_LINK_NAME[montage.1] = "${mandir}/man1/montage.1" +ALTERNATIVE_TARGET[montage.1] = "${mandir}/man1/montage.im7.1" +ALTERNATIVE_LINK_NAME[stream.1] = "${mandir}/man1/stream.1" +ALTERNATIVE_TARGET[stream.1] = "${mandir}/man1/stream.im7.1" 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_161.bb deleted file mode 100644 index dfca3855b..000000000 --- a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_161.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "mcelog daemon accounts memory and some other errors in various ways." -DESCRIPTION = "mcelog is required by both 32bit x86 Linux kernels (since 2.6.30) \ -and 64bit Linux kernels (since early 2.6 kernel releases) to log machine checks \ -and should run on all Linux systems that need error handling." -HOMEPAGE = "http://mcelog.org/" -SECTION = "System Environment/Base" - -SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git;protocol=http; \ - file://run-ptest \ -" - -SRCREV = "6ed93e30f83519b0ab71f8ecd156b8ff0b2912b6" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://README.md;md5=74bb47b9a68850cb398665cf78b31de6" - -S = "${WORKDIR}/git" - -inherit autotools-brokensep ptest - -COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux' - -do_install_append() { - install -d ${D}${sysconfdir}/cron.hourly - install -m 0755 ${S}/mcelog.cron ${D}${sysconfdir}/cron.hourly/ - sed -i 's/bash/sh/' ${D}${sysconfdir}/cron.hourly/mcelog.cron -} - -do_install_ptest() { - install -d ${D}${PTEST_PATH} - cp -r ${S}/tests ${S}/input ${D}${PTEST_PATH} - sed -i 's#../../mcelog#mcelog#' ${D}${PTEST_PATH}/tests/test -} - -RDEPENDS_${PN}-ptest += "${PN} make bash mce-inject" diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_162.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_162.bb new file mode 100644 index 000000000..dfca3855b --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_162.bb @@ -0,0 +1,35 @@ +SUMMARY = "mcelog daemon accounts memory and some other errors in various ways." +DESCRIPTION = "mcelog is required by both 32bit x86 Linux kernels (since 2.6.30) \ +and 64bit Linux kernels (since early 2.6 kernel releases) to log machine checks \ +and should run on all Linux systems that need error handling." +HOMEPAGE = "http://mcelog.org/" +SECTION = "System Environment/Base" + +SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git;protocol=http; \ + file://run-ptest \ +" + +SRCREV = "6ed93e30f83519b0ab71f8ecd156b8ff0b2912b6" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://README.md;md5=74bb47b9a68850cb398665cf78b31de6" + +S = "${WORKDIR}/git" + +inherit autotools-brokensep ptest + +COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux' + +do_install_append() { + install -d ${D}${sysconfdir}/cron.hourly + install -m 0755 ${S}/mcelog.cron ${D}${sysconfdir}/cron.hourly/ + sed -i 's/bash/sh/' ${D}${sysconfdir}/cron.hourly/mcelog.cron +} + +do_install_ptest() { + install -d ${D}${PTEST_PATH} + cp -r ${S}/tests ${S}/input ${D}${PTEST_PATH} + sed -i 's#../../mcelog#mcelog#' ${D}${PTEST_PATH}/tests/test +} + +RDEPENDS_${PN}-ptest += "${PN} make bash mce-inject" 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 --- 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.4.1.bb deleted file mode 100644 index 4975278a9..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.4.1.bb +++ /dev/null @@ -1,2 +0,0 @@ -inherit pypi setuptools -require python-cryptography-vectors.inc diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.6.1.bb new file mode 100644 index 000000000..4975278a9 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.6.1.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-cryptography-vectors.inc 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.4.1.bb deleted file mode 100644 index 9c2f88418..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.4.1.bb +++ /dev/null @@ -1,22 +0,0 @@ -inherit pypi setuptools -require python-cryptography.inc - -SRC_URI += " \ - file://run-ptest \ -" - -DEPENDS += " \ - ${PYTHON_PN}-enum34 \ -" - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-enum34 \ - ${PYTHON_PN}-ipaddress \ -" - -RDEPENDS_${PN}_class-target += " \ - ${PYTHON_PN}-enum34 \ - ${PYTHON_PN}-ipaddress \ - ${PYTHON_PN}-contextlib \ - ${PYTHON_PN}-subprocess \ -" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.6.1.bb new file mode 100644 index 000000000..9c2f88418 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.6.1.bb @@ -0,0 +1,22 @@ +inherit pypi setuptools +require python-cryptography.inc + +SRC_URI += " \ + file://run-ptest \ +" + +DEPENDS += " \ + ${PYTHON_PN}-enum34 \ +" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-enum34 \ + ${PYTHON_PN}-ipaddress \ +" + +RDEPENDS_${PN}_class-target += " \ + ${PYTHON_PN}-enum34 \ + ${PYTHON_PN}-ipaddress \ + ${PYTHON_PN}-contextlib \ + ${PYTHON_PN}-subprocess \ +" 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.20.1.bb deleted file mode 100644 index 0d7a29f74..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.20.1.bb +++ /dev/null @@ -1,4 +0,0 @@ -inherit setuptools -require python-requests.inc - -RDEPENDS_${PN} += "${PYTHON_PN}-zlib" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.21.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.21.0.bb new file mode 100644 index 000000000..0d7a29f74 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.21.0.bb @@ -0,0 +1,4 @@ +inherit setuptools +require python-requests.inc + +RDEPENDS_${PN} += "${PYTHON_PN}-zlib" 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.4.1.bb deleted file mode 100644 index 58994ffff..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.4.1.bb +++ /dev/null @@ -1,2 +0,0 @@ -inherit pypi setuptools3 -require python-cryptography-vectors.inc diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.6.1.bb new file mode 100644 index 000000000..58994ffff --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.6.1.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-cryptography-vectors.inc 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.4.1.bb deleted file mode 100644 index 195923343..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.4.1.bb +++ /dev/null @@ -1,8 +0,0 @@ -inherit pypi setuptools3 -require python-cryptography.inc - -LDSHARED += "-pthread" - -SRC_URI += " \ - file://run-ptest \ -" diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.6.1.bb new file mode 100644 index 000000000..195923343 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.6.1.bb @@ -0,0 +1,8 @@ +inherit pypi setuptools3 +require python-cryptography.inc + +LDSHARED += "-pthread" + +SRC_URI += " \ + file://run-ptest \ +" 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 +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 +--- + 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.20.1.bb deleted file mode 100644 index 0a2410f85..000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.20.1.bb +++ /dev/null @@ -1,2 +0,0 @@ -inherit setuptools3 -require python-requests.inc diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.21.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.21.0.bb new file mode 100644 index 000000000..0a2410f85 --- /dev/null +++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.21.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-requests.inc 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.4.bb deleted file mode 100644 index 7c5848b92..000000000 --- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.4.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "Application to take screenshots" -HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-screenshooter" -SECTION = "x11/application" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855" -DEPENDS = "xfce4-panel libxfce4util libxfce4ui gdk-pixbuf gtk+ glib-2.0 libsoup-2.4 exo libxfixes xext virtual/libx11" - -inherit xfce-app - -SRC_URI[md5sum] = "68321e50939fea3c66f0771d59845dab" -SRC_URI[sha256sum] = "c4f3225b3f73f1feb1869807b8b27aec4c32a3e9c2954915a5fb39d18d3a60f2" - -do_compile_prepend() { - mkdir -p lib - mkdir -p src panel-plugin -} - -FILES_${PN} += " \ - ${datadir}/appdata \ - ${datadir}/xfce4/panel/plugins \ - ${libdir}/xfce4/panel/plugins \ -" diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.5.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.5.bb new file mode 100644 index 000000000..9f8f61a4a --- /dev/null +++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.5.bb @@ -0,0 +1,22 @@ +SUMMARY = "Application to take screenshots" +HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-screenshooter" +SECTION = "x11/application" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855" +DEPENDS = "xfce4-panel libxfce4util libxfce4ui gdk-pixbuf gtk+ glib-2.0 libsoup-2.4 exo libxfixes xext virtual/libx11" + +inherit xfce-app + +SRC_URI[md5sum] = "0354811cd2622d3de92e342c7eaa184d" +SRC_URI[sha256sum] = "bf35b5432cb920987c6d7ff193600e5dd4d73422b6aa02b4ec5288744053b38c" + +do_compile_prepend() { + mkdir -p lib + mkdir -p src panel-plugin +} + +FILES_${PN} += " \ + ${datadir}/appdata \ + ${datadir}/xfce4/panel/plugins \ + ${libdir}/xfce4/panel/plugins \ +" -- cgit v1.2.1