summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-oe
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2020-04-13 21:39:40 +0300
committerAndrew Geissler <geissonator@yahoo.com>2020-05-05 16:30:44 +0300
commit82c905dc58a36aeae40b1b273a12f63fb1973cf4 (patch)
tree38caf00263451b5036435cdc36e035b25d32e623 /meta-openembedded/meta-oe
parent83ecb75644b3d677c274188f9ac0b2374d6f6925 (diff)
downloadopenbmc-82c905dc58a36aeae40b1b273a12f63fb1973cf4.tar.xz
meta-openembedded and poky: subtree updates
Squash of the following due to dependencies among them and OpenBMC changes: meta-openembedded: subtree update:d0748372d2..9201611135 meta-openembedded: subtree update:9201611135..17fd382f34 poky: subtree update:9052e5b32a..2e11d97b6c poky: subtree update:2e11d97b6c..a8544811d7 The change log was too large for the jenkins plugin to handle therefore it has been removed. Here is the first and last commit of each subtree: meta-openembedded:d0748372d2 cppzmq: bump to version 4.6.0 meta-openembedded:17fd382f34 mpv: Remove X11 dependency poky:9052e5b32a package_ipk: Remove pointless comment to trigger rebuild poky:a8544811d7 pbzip2: Fix license warning Change-Id: If0fc6c37629642ee207a4ca2f7aa501a2c673cd6 Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Diffstat (limited to 'meta-openembedded/meta-oe')
-rw-r--r--meta-openembedded/meta-oe/conf/layer.conf14
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-benchmark/speedtest-cli/speedtest-cli_2.1.2.bb (renamed from meta-openembedded/meta-oe/recipes-benchmark/speedtest-cli/speedtest-cli_2.1.2.bb)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-bsp/rwmem/rwmem_1.2.bb (renamed from meta-openembedded/meta-oe/recipes-bsp/rwmem/rwmem_1.2.bb)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch (renamed from meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lirc.tmpfiles (renamed from meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lirc.tmpfiles)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lirc_options.conf (renamed from meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lirc_options.conf)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.conf (renamed from meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.conf)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.init (renamed from meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.init)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.service (renamed from meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.service)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircexec.init (renamed from meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircexec.init)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/pollfd.patch (renamed from meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/pollfd.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.9.4d.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc_0.9.4d.bb)10
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-core/packagegroups/packagegroup-meta-oe.bbappend20
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch (renamed from meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Mark-one-of-strerror_r-implementation-glibc-specific.patch (renamed from meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Mark-one-of-strerror_r-implementation-glibc-specific.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Support-deprecated-resolver-functions.patch (renamed from meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Support-deprecated-resolver-functions.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch (renamed from meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch (renamed from meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch (renamed from meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch (renamed from meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch (renamed from meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Fix-default-stack-size-to-256K.patch (renamed from meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0002-Fix-default-stack-size-to-256K.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch (renamed from meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch (renamed from meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch52
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch (renamed from meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/arm64-support.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb (renamed from meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb_git.bb)11
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0001-Fix-parallel-build-fix-port-internal-make-dependenci.patch (renamed from meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc/0001-Fix-parallel-build-fix-port-internal-make-dependenci.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0002-Include-limits.h-for-PATH_MAX-definition.patch (renamed from meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc/0002-Include-limits.h-for-PATH_MAX-definition.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0003-Fix-non-x86-platforms-on-musl.patch (renamed from meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc/0003-Fix-non-x86-platforms-on-musl.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc_git.bb (renamed from meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch6897
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0002-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0003-fix-cross-compilation-on-i586-targets.patch (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch)20
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0004-do-not-create-python-environment.patch (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-do-not-create-python-environment.patch)15
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0005-fix-cannot-find-link.patch (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0002-fix-cannot-find-link.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0006-workaround-autoconf-2.13-detection-failed.patch (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0003-workaround-autoconf-2.13-detection-failed.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0007-fix-do_compile-failed-on-mips.patch (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0005-fix-do_compile-failed-on-mips.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0008-add-riscv-support.patch (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/add-riscv-support.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0009-mozjs-fix-coredump-caused-by-getenv.patch (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs-fix-coredump-caused-by-getenv.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0010-format-overflow.patch (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/format-overflow.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0011-To-fix-build-error-on-arm32BE.patch (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-To-fix-build-error-on-arm32BE.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0012-JS_PUBLIC_API.patch (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/JS_PUBLIC_API.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0013-riscv-Disable-atomic-operations.patch (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-riscv-Disable-atomic-operations.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0014-fallback-to-2011-C++-standard.patch (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/fallback-to-2011-C++-standard.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/mipsarchn32/0001-fix-compiling-failure-on-mips64-n32-bsp.patch (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-fix-compiling-failure-on-mips64-n32-bsp.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/musl/0001-support-musl.patch (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0006-support-musl.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/musl/0002-js-Fix-build-with-musl.patch (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-js-Fix-build-with-musl.patch)0
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs_60.9.0.bb (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb)103
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem/0001-smem-fix-support-for-source-option-python3.patch53
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem_1.5.bb (renamed from meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb)22
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/perl-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend1
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/perl-layer/recipes-support/debsums/debsums_2.2.2.bb (renamed from meta-openembedded/meta-oe/recipes-support/debsums/debsums_2.2.2.bb)2
-rw-r--r--meta-openembedded/meta-oe/licenses/wxWidgets54
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_5.5.bb29
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/fio/files/python3_shebangs.patch38
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.17.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_489.bb (renamed from meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_488.bb)5
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-huge_page_setup_helper-use-python3-interpreter.patch29
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.2.1.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-typecast-enum-conversions-explicitly.patch69
-rw-r--r--meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.2.bb (renamed from meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.1.bb)5
-rw-r--r--meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli/0001-fix-musl-compilation.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.10.1.bb (renamed from meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.9.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio/0001-filter-Rename-some-variables-to-tr_stdxxx.patch108
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_1.5.3.bb27
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/CVE-2019-16275.patch79
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.9.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.2.2.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.1.2.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch40
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.0.bb39
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.6.bb54
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.33.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.27.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch73
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.22.0.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.20.4.bb)9
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.17.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.16.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.8.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.2.bb)3
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.36.0.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.34.0.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.0.1.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_3.2.0.bb)11
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.8.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.10.8.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/files/0001-Fix-bug-of-free-with-musl.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.2.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.1.bb)15
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.1.5.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_3.5.1.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb7
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_4.4.6.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_4.4.1.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/zeromq/czmq_4.2.0.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.2.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0001-launch-improve-error-handling-for-opendir.patch48
-rw-r--r--meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0002-metrics-change-the-constant-used-for-invalid-timesta.patch86
-rw-r--r--meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0003-dbus-socket-treat-MSG_CTRUNC-gracefully.patch83
-rw-r--r--meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0004-launcher-fix-build-with-musl-libc.patch38
-rw-r--r--meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_22.bb (renamed from meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_21.bb)10
-rw-r--r--meta-openembedded/meta-oe/recipes-core/emlog/emlog/0001-Remove-modules_clean-from-clean-target.patch33
-rw-r--r--meta-openembedded/meta-oe/recipes-core/emlog/emlog_git.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-core/libnfc/libnfc_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.3.bb (renamed from meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.2.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.0.3.bb (renamed from meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.0.2.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb68
-rw-r--r--meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.4.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-core/safec/safec_3.5.bb8
-rwxr-xr-xmeta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.8.1/run-ptest (renamed from meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.7.6/run-ptest)0
-rw-r--r--meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_0.8.1.bb (renamed from meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools-native_0.7.6.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.8.1.bb (renamed from meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.7.6.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.14.0.bb (renamed from meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.13.0.bb)9
-rw-r--r--meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.3.1.bb (renamed from meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.2.2.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.26.bb (renamed from meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.25.1.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.4.12.bb (renamed from meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.4.11.bb)0
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc11
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-arm-atomic.patch15
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.4.12.bb (renamed from meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.4.11.bb)0
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb7
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc4
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_12.1.bb12
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_12.2.bb12
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/rocksdb/files/0001-Fix-build-breakage-from-lock_guard-error-6161.patch36
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Add-check-for-atomic-support.patch115
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb10
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Add-RISCV-support-to-GetProgramCounter.patch29
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch53
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-absl-always-use-asm-sgidefs.h.patch38
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch35
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Add-fPIC-option.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb57
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/build/0001-Riscv-Add-risc-v-Android-config-header.patch359
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0013-adb-Support-riscv64.patch189
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13-native_2.13.bb67
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13/0001-Add-config.guess-config.sub-install-to-destdir.patch67
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb_0.7.1.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/cjson/cjson_1.7.13.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/cloc/cloc_1.84.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20200211.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20180519.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb5
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch433
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.17.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers/0001-Add-detection-of-strtoull_l-function.patch38
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.12.0.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb)8
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.22.2.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.22.1.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch45
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch177
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.24.3.bb67
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.6.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.6.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.3.0.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.2.0.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/lapack/lapack_3.9.0.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/lapack/lapack_3.8.0.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.20.3.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.20.2.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.5.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/luajit/luajit/clang.patch4
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_git.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb)15
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/luaposix/luaposix/0001-fix-avoid-race-condition-between-test-and-mkdir.patch75
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/luaposix/luaposix_33.4.0.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nanopb/nanopb_0.4.0.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch25
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-allow-passing-multiple-libs-to-pkg_config.patch41
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-binaries.patch71
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-torque.patch36
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-build-allow-use-of-system-installed-brotli.patch66
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0003-Install-both-binaries-and-use-libdir.patch17
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0004-Make-compatibility-with-gcc-4.8.patch69
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0004-v8-don-t-override-ARM-CFLAGS.patch (renamed from meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0007-v8-don-t-override-ARM-CFLAGS.patch)16
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0005-Link-atomic-library.patch20
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch18
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/mips-warnings.patch19
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.17.0.bb)47
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/octave/octave_4.4.1.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb17
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.643.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.642.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl_1.14.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl_1.12.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/perl/libjson-perl_4.02000.bb22
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/perl/libperlio-gzip-perl_0.20.bb30
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php/0001-Use-pkg-config-for-libxml2-detection.patch23
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-skip-binconfig-check-for-libxml.patch56
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php/0001-configure.ac-don-t-include-build-libtool.m4.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php/0001-main-php_ini.c-build-empty-php_load_zend_extension_c.patch63
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch170
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php-don-t-use-broken-wrapper-for-mkdir.patch11
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php.m4-don-t-unset-cache-variables.patch (renamed from meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch)23
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php/0048-Use-pkg-config-for-FreeType2-detection.patch53
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php/70_mod_php5.conf12
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php/CVE-2019-6978.patch192
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch36
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch36
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch18
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch20
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.4.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.11.bb)20
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/ply/ply_git.bb15
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.3.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.2.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.11.4.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.10.1.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.10.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/python/python-cpuset_1.6.bb18
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/python/python-distutils-extra.bb7
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.3.0.bb13
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/python/python-jsmin_2.2.2.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject/0001-python-pyobject-fix-install-dir.patch121
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.34.0.bb39
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/python/python-pytoml.inc12
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/python/python-pytoml_0.1.21.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/python/python-six_1.13.0.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/python/python-which_1.1.0.bb19
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.19.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.9.4.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.9.3.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.16.bb9
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.7.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20200330.bb (renamed from meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20191125.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles/python3.patch16
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.15.0.bb (renamed from meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.12.0.bb)15
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.15.0.bb (renamed from meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.12.0.bb)12
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-Remove-including-sys-sysctl.h-on-glibc-based-systems.patch85
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-conditionally-check-libvirt.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch6
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-fix-to-build-with-glibc-2.25.patch4
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.11.0.bb (renamed from meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.8.1.bb)7
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/ddrescue/ddrescue_1.25.bb (renamed from meta-openembedded/meta-oe/recipes-extended/ddrescue/ddrescue_1.24.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0002-Don-t-execute-processes-as-a-specific-user.patch94
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0004-Modify-systemd-config-directory.patch24
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/204.patch148
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.4.bb62
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/figlet/figlet/0001-build-add-autotools-support-to-allow-easy-cross-comp.patch252
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/figlet/figlet_git.bb15
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit_1.3.5.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/0001-include-cups-ppd.h-for-missing-ppd-definitions.patch42
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/configure.patch14
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/cups-1.6.patch395
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/fix-libusb-paths.patch35
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/setup-add-sleep-after-cups-reset.patch12
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/hplip/hplip/030-replace_unsafe_memcpy_with_memmove.patch15
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch17
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/hplip/hplip/600-fix.patch10
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/hplip/hplip/999-remove-lImageProcessor.patch69
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/hplip/hplip/configure.patch12
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch33
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/hplip/hplip/hplip-3.19.6-fix-return.patch20
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.12.6.bb75
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.19.12.bb88
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/icewm/icewm_1.6.5.bb (renamed from meta-openembedded/meta-oe/recipes-extended/icewm/icewm_1.5.5.bb)17
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/indent/indent/0001-Fix-builds-with-recent-gettext.patch14
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/indent/indent_2.2.12.bb7
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/iotop/iotop_0.6.bb18
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libcec/libcec/0001-Enhance-reproducibility.patch33
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libcec/libcec_git.bb9
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch181
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch23
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libidn/libidn_1.35.bb40
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.1.0.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libpwquality/files/add-missing-python-include-dir-for-cross.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.2.bb (renamed from meta-openembedded/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.5.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.6.1.bb (renamed from meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.5.2.bb)9
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0004-do-not-use-autoconf-2.13-to-refresh-old.configure.patch42
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mraa/mraa/0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch35
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb13
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/nana/nana_2.5.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb8
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.3.bb (renamed from meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2019.6.bb)28
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.8.3.bb (renamed from meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.8.1.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/redis/redis/0001-src-Do-not-reset-FINAL_LIBS.patch4
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/redis/redis/0005-Mark-extern-definition-of-SDS_NOINIT-in-sds.h.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/redis/redis_5.0.9.bb (renamed from meta-openembedded/meta-oe/recipes-extended/redis/redis_5.0.7.bb)5
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.2.bb8
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.5.0.bb (renamed from meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.4.0.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/run-ptest5
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2002.0.bb (renamed from meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb)16
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/sigrok/libsigrok_0.5.2.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.1.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/snappy/snappy_1.1.8.bb (renamed from meta-openembedded/meta-oe/recipes-extended/snappy/snappy_1.1.7.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils/0001-fix-include-to-find-SIOCGSTAMP-with-latest-kernel.patch106
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb13
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch37
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-fix-build-with-LuaJIT-2.1-betas.patch96
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Port-to-build-with-lua-5.2.patch108
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/aarch64.patch359
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/fix-uint64-const.patch16
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig_git.bb51
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/tmux/tmux_2.6.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/upm/upm/0001-cmake-Disable-using-Wno-maybe-uninitialized.patch37
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb5
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/wxwidgets/wxwidgets_git.bb82
-rw-r--r--meta-openembedded/meta-oe/recipes-gnome/gmime/gmime_3.2.6.bb (renamed from meta-openembedded/meta-oe/recipes-gnome/gmime/gmime_3.2.5.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.25.3.bb (renamed from meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.24.1.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-gnome/pyxdg/pyxdg_0.26.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/babl/babl_0.1.62.bb13
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch10
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Run-python-scripts-using-env.patch25
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch13
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch10
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb12
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/fbgrab/fbgrab_1.3.3.bb (renamed from meta-openembedded/meta-oe/recipes-graphics/fbgrab/fbgrab_1.3.bb)10
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20190801.bb9
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/freeglut/freeglut_3.2.1.bb (renamed from meta-openembedded/meta-oe/recipes-graphics/freeglut/freeglut_3.0.0.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm_2.6.9.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch21
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb34
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch38
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch34
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch53
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb52
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.24.bb (renamed from meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.23.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.40.1.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.104.bb (renamed from meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.103.bb)10
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.12.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_2.52.0.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/openbox/files/0001-openbox-xdg-autostart-convert-to-python3.patch138
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/CVE-2020-6851.patch32
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/CVE-2020-8112.patch46
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.1.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.42.1.bb (renamed from meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.42.0.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.7.bb (renamed from meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.5.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.10.1.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/tslib/tslib/0001-Fix-build-error-with-input_event_sec-for-old-kernel.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.21.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.1.bb (renamed from meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb19
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_353.bb (renamed from meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_351.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xorg-lib/xcb-util-cursor_0.1.3.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/yad/yad_6.0.bb (renamed from meta-openembedded/meta-oe/recipes-graphics/yad/yad_5.0.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.8.bb (renamed from meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.7.bb)22
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-fru-Fix-buffer-overflow-in-ipmi_spd_print_fru.patch53
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-fru-Fix-buffer-overflow-vulnerabilities.patch133
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0002-session-Fix-buffer-overflow-in-ipmi_get_session_info.patch53
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0003-channel-Fix-buffer-overflow.patch69
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0004-lanp-Fix-buffer-overflows-in-get_lan_param_select.patch94
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0005-fru-sdr-Fix-id_string-buffer-overflows.patch142
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch25
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb14
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch6
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch_git.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/libpfm/libpfm4_4.10.1.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch6
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0003-build-Delete-libebl-from-required-libraries-during-l.patch34
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.7.bb (renamed from meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.6.bb)5
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc1
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-Use-new-bfd-APIs-from-2.34.patch79
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.3.0.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/spidev-test/spidev-test.bb29
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/turbostat/turbostat_3.4.bb9
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb7
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_6.1.1.bb (renamed from meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_6.0.2.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb82
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb117
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/pipewire/pipewire-0.2_git.bb65
-rw-r--r--meta-openembedded/meta-oe/recipes-multimedia/pipewire/pipewire_git.bb33
-rw-r--r--meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb26
-rw-r--r--meta-openembedded/meta-oe/recipes-navigation/proj/proj_7.0.0.bb (renamed from meta-openembedded/meta-oe/recipes-navigation/proj/proj_6.2.0.bb)9
-rw-r--r--meta-openembedded/meta-oe/recipes-printing/cups/cups-filters_1.26.2.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-printing/cups/cups-filters_1.27.2.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-security/nmap/files/0001-Make-ndiff-support-python3.patch1720
-rw-r--r--meta-openembedded/meta-oe/recipes-security/nmap/files/0001-configure.ac-make-ndiff-depend-on-python3.patch48
-rw-r--r--meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.80.bb14
-rw-r--r--meta-openembedded/meta-oe/recipes-shells/mksh/mksh_58.bb (renamed from meta-openembedded/meta-oe/recipes-shells/mksh/mksh_57.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.22.02.bb (renamed from meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.21.00.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-Allow-avro-C-to-be-built-on-musl-based-systems.patch42
-rw-r--r--meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.9.2.bb (renamed from meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.9.1.bb)3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_8.0.4.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/c-ares/c-ares/0001-fix-configure-error-mv-libcares.pc.cmakein-to-libcar.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch84
-rw-r--r--meta-openembedded/meta-oe/recipes-support/c-ares/c-ares_1.16.0.bb27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch43
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.15.bb (renamed from meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.14.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-native-Fix-a-warning.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb25
-rw-r--r--meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.4.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fmt/fmt_6.2.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/fmt/fmt_6.0.0.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb7
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch46
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2018-1000222.patch82
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2019-6978.patch299
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gd/gd_2.3.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb)11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gengetopt/gengetopt_2.23.bb16
-rw-r--r--meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb9
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch34
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.90.bb (renamed from meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb)7
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.100.bb (renamed from meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.95.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/0001-Makefile.am-add-build-rule-for-README.patch46
-rw-r--r--meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb8
-rw-r--r--meta-openembedded/meta-oe/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch35
-rw-r--r--meta-openembedded/meta-oe/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.6.bb20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/joe/joe_4.6.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch898
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch247
-rwxr-xr-xmeta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.2.bb (renamed from meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.1.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libcanberra/files/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch63
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.3.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.2.2.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.3.bb (renamed from meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.1.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch52
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libharu/libharu_2.3.0.bb23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.70.bb (renamed from meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.69.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch67
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic/0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch49
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb24
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.3.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.2.1.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.9.bb (renamed from meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.4.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-use-python3-interpreter.patch28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.30.bb (renamed from meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.29.bb)5
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_8.0.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.1.0.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb9
-rw-r--r--meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.3.bb (renamed from meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb)7
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mcelog/mce-test/0001-gcov_merge.py-scov_merge.py-switch-to-python3.patch110
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_168.bb (renamed from meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_166.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/monit/monit/monit42
-rw-r--r--meta-openembedded/meta-oe/recipes-support/monit/monit/monitrc44
-rw-r--r--meta-openembedded/meta-oe/recipes-support/monit/monit_5.26.0.bb53
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nano/nano_4.9.2.bb (renamed from meta-openembedded/meta-oe/recipes-support/nano/nano_4.4.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch35
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch102
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch103
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nspr/nspr/fix-build-on-x86_64.patch52
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nspr/nspr/nspr.pc.in11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nspr/nspr/remove-rpath-from-tests.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch19
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nspr/nspr_4.25.bb197
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch52
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch48
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nss/nss/blank-cert9.dbbin0 -> 28672 bytes
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nss/nss/blank-key4.dbbin0 -> 36864 bytes
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch33
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch110
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch36
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nss/nss/nss.pc.in11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nss/nss/riscv.patch36
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nss/nss/signlibs.sh20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nss/nss/system-pkcs11.txt5
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nss/nss_3.51.1.bb274
-rw-r--r--meta-openembedded/meta-oe/recipes-support/onig/onig_6.9.4.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.49.bb (renamed from meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.48.bb)7
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite/0001-pcsc-spy-use-python3-only.patch43
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.26.bb9
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.4.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.86.1.bb (renamed from meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.84.0.bb)7
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pv/pv_1.6.6.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.3.6.bb18
-rw-r--r--meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb22
-rw-r--r--meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb40
-rw-r--r--meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.11.bb (renamed from meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.45.bb (renamed from meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.44.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/span-lite/span-lite_git.bb12
-rw-r--r--meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.3.1.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/srecord/srecord_1.64.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc24
-rw-r--r--meta-openembedded/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/tbb/tbb/0002-linux-Fix-gcc-version-check.patch57
-rw-r--r--meta-openembedded/meta-oe/recipes-support/tbb/tbb/GLIBC-PREREQ-is-not-defined-on-musl.patch42
-rw-r--r--meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch62
-rw-r--r--meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/tbb/tbb_2020.2.bb (renamed from meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb)26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.3.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20191128.bb (renamed from meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170806.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.6.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.2.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/usbpath/usbpath/configure.patch11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch15
-rw-r--r--meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.6.bb (renamed from meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.2.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Replace-make_shared-with-new-in-some-cases.patch78
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0002-Fix-missed-entries-fix-testing.patch66
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/771.patch22
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/842.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-Correct-clang-compiler-flags.patch (renamed from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Correct-clang-compiler-flags.patch)2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-cmake-Use-GNUInstallDirs.patch (renamed from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-cmake-Use-GNUInstallDirs.patch)0
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/855.patch (renamed from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/855.patch)2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/857.patch (renamed from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/857.patch)0
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.2.bb (renamed from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb)8
-rw-r--r--meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch656
-rw-r--r--meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb25
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/0001-nss-nspr-fix-for-multilib.patch52
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch44
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.30.bb (renamed from meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.29.bb)11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xxhash/xxhash_0.7.3.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/zchunk/zchunk/0001-zck.h-fix-build-on-musl.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-support/zchunk/zchunk/0002-unzck-fix-build-with-musl-libc.patch61
-rw-r--r--meta-openembedded/meta-oe/recipes-support/zchunk/zchunk_1.1.5.bb26
-rw-r--r--meta-openembedded/meta-oe/recipes-test/cunit/cunit_2.1-3.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb2
525 files changed, 19185 insertions, 5524 deletions
diff --git a/meta-openembedded/meta-oe/conf/layer.conf b/meta-openembedded/meta-oe/conf/layer.conf
index bad87850e..adcec8302 100644
--- a/meta-openembedded/meta-oe/conf/layer.conf
+++ b/meta-openembedded/meta-oe/conf/layer.conf
@@ -23,13 +23,20 @@ BBFILE_PATTERN_openembedded-layer := "^${LAYERDIR}/"
BBFILE_PRIORITY_openembedded-layer = "6"
+# only activates content when identified layers are present,
+# to ensure yocto compatibility check pass
+BBFILES_DYNAMIC += " \
+meta-python:${LAYERDIR}/dynamic-layers/meta-python/recipes-*/*/*.bb \
+perl-layer:${LAYERDIR}/dynamic-layers/perl-layer/recipes-*/*/*.bb \
+"
+
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_openembedded-layer = "1"
LAYERDEPENDS_openembedded-layer = "core"
-LAYERSERIES_COMPAT_openembedded-layer = "thud warrior zeus"
+LAYERSERIES_COMPAT_openembedded-layer = "thud warrior zeus dunfell"
LICENSE_PATH += "${LAYERDIR}/licenses"
@@ -49,11 +56,13 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
usb-modeswitch-data->usb-modeswitch \
lmsensors->lmsensors-config \
phoronix-test-suite->bash \
- phoronix-test-suite->python \
+ phoronix-test-suite->python3 \
phoronix-test-suite->php \
phoronix-test-suite->lsb-release \
phoronix-test-suite->util-linux \
phoronix-test-suite->busybox \
+ phoronix-test-suite->shared-mime-info \
+ phoronix-test-suite->desktop-file-utils \
"
# ttf.inc inherits fontcache which adds fontconfig-utils to RDEPENDS
@@ -70,6 +79,7 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
ttf-liberation-sans-narrow->fontconfig \
ttf-lklug->fontconfig \
ttf-lohit->fontconfig \
+ ttf-noto-emoji->fontconfig \
ttf-pt-sans->fontconfig \
ttf-roboto->fontconfig \
ttf-mplus->fontconfig \
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/speedtest-cli/speedtest-cli_2.1.2.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-benchmark/speedtest-cli/speedtest-cli_2.1.2.bb
index de4fa1642..de4fa1642 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/speedtest-cli/speedtest-cli_2.1.2.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-benchmark/speedtest-cli/speedtest-cli_2.1.2.bb
diff --git a/meta-openembedded/meta-oe/recipes-bsp/rwmem/rwmem_1.2.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-bsp/rwmem/rwmem_1.2.bb
index 065243ccf..065243ccf 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/rwmem/rwmem_1.2.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-bsp/rwmem/rwmem_1.2.bb
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
index 0e38f7d8e..0e38f7d8e 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lirc.tmpfiles b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lirc.tmpfiles
index 0b80e2e47..0b80e2e47 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lirc.tmpfiles
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lirc.tmpfiles
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lirc_options.conf b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lirc_options.conf
index d8ddedd8f..d8ddedd8f 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lirc_options.conf
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lirc_options.conf
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.conf b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.conf
index 29b03c72a..29b03c72a 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.conf
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.conf
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.init b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.init
index 8b124af6f..8b124af6f 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.init
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.init
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.service b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.service
index c8661368b..c8661368b 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.service
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.service
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircexec.init b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircexec.init
index 3a8c1a306..3a8c1a306 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircexec.init
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircexec.init
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/pollfd.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/pollfd.patch
index 4feea8034..4feea8034 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/pollfd.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/pollfd.patch
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc_0.9.4d.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.9.4d.bb
index 606caee89..f59969673 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc_0.9.4d.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.9.4d.bb
@@ -6,8 +6,7 @@ DESCRIPTION_append_lirc-nslu2example = " This package contains a working config
HOMEPAGE = "http://www.lirc.org"
SECTION = "console/network"
LICENSE = "GPLv2"
-DEPENDS = "libxslt-native alsa-lib libftdi libusb1 libusb-compat jack portaudio-v19"
-
+DEPENDS = "libxslt-native alsa-lib libftdi libusb1 libusb-compat jack portaudio-v19 python3-pyyaml"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
@@ -61,9 +60,9 @@ PACKAGES =+ "${PN}-contrib ${PN}-exec ${PN}-plugins ${PN}-python"
RDEPENDS_${PN} = "bash"
RDEPENDS_${PN}-exec = "${PN}"
-RDEPENDS_${PN}-python = "python"
+RDEPENDS_${PN}-python = "python3-shell python3-pyyaml python3-datetime python3-netclient python3-stringold"
-RRECOMMENDS_lirc = "${PN}-exec ${PN}-plugins"
+RRECOMMENDS_${PN} = "${PN}-exec ${PN}-plugins"
FILES_${PN}-plugins = "${libdir}/lirc/plugins/*.so ${datadir}/lirc/configs"
FILES_${PN}-contrib = "${datadir}/lirc/contrib"
@@ -73,8 +72,7 @@ FILES_${PN} += "${systemd_unitdir}/system/lircd.service"
FILES_${PN} += "${systemd_unitdir}/system/lircd.socket"
FILES_${PN} += "${libdir}/tmpfiles.d/lirc.conf"
FILES_${PN}-dbg += "${libdir}/lirc/plugins/.debug"
-FILES_${PN}-python += "${libdir}/python*/site-packages"
-
+FILES_${PN}-python += "${bindir}/irdb-get ${bindir}/irtext2udp ${bindir}/lircd-setup ${bindir}/pronto2lirc ${libdir}/python*/site-packages"
INITSCRIPT_PACKAGES = "lirc lirc-exec"
INITSCRIPT_NAME_lirc-exec = "lircexec"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-core/packagegroups/packagegroup-meta-oe.bbappend b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
new file mode 100644
index 000000000..50da5e5d0
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
@@ -0,0 +1,20 @@
+RDEPENDS_packagegroup-meta-oe-devtools += "\
+ python3-distutils-extra \
+ rwmem \
+ speedtest-cli \
+ mongodb \
+"
+
+RDEPENDS_packagegroup-meta-oe-connectivity += "\
+ lirc \
+"
+
+RDEPENDS_packagegroup-meta-oe-extended += "\
+ lcdproc \
+ mozjs \
+"
+RDEPENDS_packagegroup-meta-oe-support += "\
+ smem \
+"
+RDEPENDS_packagegroup-meta-oe-extended_remove_libc-musl = "lcdproc"
+
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
index e636adc55..e636adc55 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Mark-one-of-strerror_r-implementation-glibc-specific.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Mark-one-of-strerror_r-implementation-glibc-specific.patch
index 5337fcdbf..5337fcdbf 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Mark-one-of-strerror_r-implementation-glibc-specific.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Mark-one-of-strerror_r-implementation-glibc-specific.patch
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Support-deprecated-resolver-functions.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Support-deprecated-resolver-functions.patch
index 3d949c873..3d949c873 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Support-deprecated-resolver-functions.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Support-deprecated-resolver-functions.patch
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
index 190884624..190884624 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
index d98fa56cb..d98fa56cb 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
index b9c670407..b9c670407 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch
index e726933f5..e726933f5 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
index 869d2849d..869d2849d 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0002-Fix-default-stack-size-to-256K.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Fix-default-stack-size-to-256K.patch
index 59066b260..59066b260 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0002-Fix-default-stack-size-to-256K.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Fix-default-stack-size-to-256K.patch
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch
index 3a27aacfe..3a27aacfe 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
index 2cea9bc31..2cea9bc31 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch
new file mode 100644
index 000000000..ae84bcb56
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch
@@ -0,0 +1,52 @@
+Upstream-Status: submitted https://github.com/mongodb/mongo/pull/1296
+From 362be06fc16a5ad0f9e9aa90cc763c5242e8e35c Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Sat, 9 Feb 2019 12:41:45 +0100
+Subject: [PATCH] ssl_manager.cpp: fix build with gcc 7 and -fpermissive
+
+Change prototype of DERToken::parse function from
+parse(ConstDataRange cdr, size_t* outLength);
+to parse(ConstDataRange cdr, uint64_t* outLength);
+
+Otherwise, we got the following error:
+
+src/mongo/util/net/ssl_manager.cpp: In static member function 'static mongo::StatusWith<mongo::{anonymous}::DERToken> mongo::{anonymous}::DERToken::parse(mongo::ConstDataRange, size_t*)':
+src/mongo/util/net/ssl_manager.cpp:575:79: error: invalid conversion from 'size_t* {aka unsigned int*}' to 'long unsigned int*' [-fpermissive]
+ if (mongoUnsignedAddOverflow64(tagAndLengthByteCount, derLength, outLength) ||
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ src/mongo/util/net/ssl_manager.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/mongo/util/net/ssl_manager.cpp b/src/mongo/util/net/ssl_manager.cpp
+index b93ebe84a4a3..3511eb5d998f 100644
+--- a/src/mongo/util/net/ssl_manager.cpp
++++ b/src/mongo/util/net/ssl_manager.cpp
+@@ -782,7 +782,7 @@ class DERToken {
+ *
+ * Returns a DERToken which consists of the (tag, length, value) tuple.
+ */
+- static StatusWith<DERToken> parse(ConstDataRange cdr, size_t* outLength);
++ static StatusWith<DERToken> parse(ConstDataRange cdr, uint64_t* outLength);
+
+ private:
+ DERType _type{DERType::EndOfContent};
+@@ -799,7 +799,7 @@ struct DataType::Handler<DERToken> {
+ size_t length,
+ size_t* advanced,
+ std::ptrdiff_t debug_offset) {
+- size_t outLength;
++ uint64_t outLength;
+
+ auto swPair = DERToken::parse(ConstDataRange(ptr, length), &outLength);
+
+@@ -844,7 +844,7 @@ StatusWith<std::string> readDERString(ConstDataRangeCursor& cdc) {
+ }
+
+
+-StatusWith<DERToken> DERToken::parse(ConstDataRange cdr, size_t* outLength) {
++StatusWith<DERToken> DERToken::parse(ConstDataRange cdr, uint64_t* outLength) {
+ const size_t kTagLength = 1;
+ const size_t kTagLengthAndInitialLengthByteLength = kTagLength + 1;
+
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/arm64-support.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch
index 15bd7da70..15bd7da70 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/arm64-support.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb_git.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
index cd8ccdc8a..58841ef31 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb_git.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
@@ -11,9 +11,9 @@ DEPENDS = "openssl libpcap zlib boost curl python3 \
inherit scons dos2unix siteinfo python3native
-PV = "4.2.0+git${SRCPV}"
-#v4.2.0
-SRCREV = "18ce5c9f56a01f2c933a720d64707f3456f81c8b"
+PV = "4.2.2"
+#v4.2.2
+SRCREV = "a0bbbff6ada159e19298d37946ac8dc4b497eadf"
SRC_URI = "git://github.com/mongodb/mongo.git;branch=v4.2 \
file://0001-Tell-scons-to-use-build-settings-from-environment-va.patch \
file://0001-Use-long-long-instead-of-int64_t.patch \
@@ -23,6 +23,7 @@ SRC_URI = "git://github.com/mongodb/mongo.git;branch=v4.2 \
file://0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch \
file://0001-Support-deprecated-resolver-functions.patch \
file://0003-Fix-unknown-prefix-env.patch \
+ file://1296.patch \
"
SRC_URI_append_libc-musl ="\
file://0001-Mark-one-of-strerror_r-implementation-glibc-specific.patch \
@@ -36,13 +37,15 @@ SRC_URI_append_toolchain-clang = "\
S = "${WORKDIR}/git"
-COMPATIBLE_HOST ?= '(x86_64|powerpc64|aarch64).*-linux'
+COMPATIBLE_HOST ?= '(x86_64|i.86|powerpc64|arm|aarch64).*-linux'
PACKAGECONFIG ??= "tcmalloc system-pcre"
# gperftools compilation fails for arm below v7 because of missing support of
# dmb operation. So we use system-allocator instead of tcmalloc
PACKAGECONFIG_remove_armv6 = "tcmalloc"
PACKAGECONFIG_remove_libc-musl = "tcmalloc"
+PACKAGECONFIG_remove_riscv64 = "tcmalloc"
+PACKAGECONFIG_remove_riscv32 = "tcmalloc"
PACKAGECONFIG[tcmalloc] = "--use-system-tcmalloc,--allocator=system,gperftools,"
PACKAGECONFIG[shell] = ",--js-engine=none,,"
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/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0001-Fix-parallel-build-fix-port-internal-make-dependenci.patch
index f6a7956db..f6a7956db 100644
--- a/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc/0001-Fix-parallel-build-fix-port-internal-make-dependenci.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0001-Fix-parallel-build-fix-port-internal-make-dependenci.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc/0002-Include-limits.h-for-PATH_MAX-definition.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0002-Include-limits.h-for-PATH_MAX-definition.patch
index eb866bf10..eb866bf10 100644
--- a/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc/0002-Include-limits.h-for-PATH_MAX-definition.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0002-Include-limits.h-for-PATH_MAX-definition.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc/0003-Fix-non-x86-platforms-on-musl.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0003-Fix-non-x86-platforms-on-musl.patch
index e39e9bda1..e39e9bda1 100644
--- a/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc/0003-Fix-non-x86-platforms-on-musl.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0003-Fix-non-x86-platforms-on-musl.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc_git.bb
index 275b984e4..275b984e4 100644
--- a/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc_git.bb
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch
new file mode 100644
index 000000000..e525047df
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch
@@ -0,0 +1,6897 @@
+From 33a373ba41d978af60c2f0230bcba6ad27357ec8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Wed, 29 Jan 2020 16:25:11 +0100
+Subject: [PATCH] Port build to python3
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* first tool of choice was 2to3
+* some parts were taken from [1] but during work it was found that this patch
+ introduces interesting effects - see hash functions. Working more on this
+ makes me guess that one has never worked...
+* Few parts were taken from upstream mirror [2]. Since they use six for porting
+ to python3 it adds us a new dependency.
+* To get a better overview what is going on or failing some additional messages
+ were added. The most verbose one is left disabled - see
+ python/mozbuild/mozbuild/configure/__init__.py / Line 310 onwards
+* major changes upstream on build are not to expect so upgrading should cause
+ little trouble and changes can be tracked by [3]
+* some solutions are workarounds/hacks so this patch will not be accepeted
+ upstream. This should not be a probelme for us: once mozjs >= 68 will arrive
+ we have to go to rust/cargo based build anyway.
+
+[1] https://code.foxkit.us/adelie/packages/blob/f2b5773da19ab397fbe64fd32dacc383cfe4cd77/user/mozjs/python3.patch
+[2] https://github.com/mozilla/gecko-dev
+[3] https://github.com/mozilla/gecko-dev/tree/esr60
+
+Upstream-Status: Inaproppriate [Some Hacks]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ build/autoconf/config.status.m4 | 2 +-
+ build/moz.configure/android-ndk.configure | 4 +-
+ build/moz.configure/checks.configure | 4 +-
+ build/moz.configure/init.configure | 31 +-
+ build/moz.configure/keyfiles.configure | 4 +-
+ build/moz.configure/old.configure | 32 +-
+ build/moz.configure/toolchain.configure | 18 +-
+ build/moz.configure/util.configure | 9 +-
+ build/moz.configure/windows.configure | 10 +-
+ build/templates.mozbuild | 2 +-
+ config/MozZipFile.py | 12 +-
+ config/expandlibs.py | 6 +-
+ config/expandlibs_exec.py | 14 +-
+ config/expandlibs_gen.py | 4 +-
+ configure.py | 42 +-
+ js/src/build/moz.build | 8 +-
+ js/src/builtin/embedjs.py | 10 +-
+ js/src/configure | 2 +-
+ js/src/frontend/GenerateReservedWords.py | 6 +-
+ js/src/gc/GenerateStatsPhases.py | 4 +-
+ js/src/old-configure.in | 2 +
+ memory/build/moz.build | 8 +-
+ mozglue/build/moz.build | 22 +-
+ .../mozbuild/mozbuild/action/check_binary.py | 2 +
+ .../mozbuild/action/process_define_files.py | 4 +-
+ python/mozbuild/mozbuild/backend/base.py | 8 +-
+ python/mozbuild/mozbuild/backend/common.py | 8 +-
+ .../mozbuild/backend/configenvironment.py | 14 +-
+ .../mozbuild/mozbuild/backend/fastermake.py | 10 +-
+ .../mozbuild/backend/recursivemake.py | 181 +++----
+ python/mozbuild/mozbuild/config_status.py | 7 +-
+ .../mozbuild/mozbuild/configure/__init__.py | 83 +++-
+ .../mozbuild/configure/check_debug_ranges.py | 6 +-
+ python/mozbuild/mozbuild/configure/options.py | 24 +-
+ python/mozbuild/mozbuild/configure/util.py | 12 +-
+ .../mozbuild/mozbuild/controller/building.py | 16 +-
+ python/mozbuild/mozbuild/frontend/context.py | 89 ++--
+ python/mozbuild/mozbuild/frontend/data.py | 8 +-
+ python/mozbuild/mozbuild/frontend/emitter.py | 50 +-
+ python/mozbuild/mozbuild/frontend/reader.py | 49 +-
+ python/mozbuild/mozbuild/frontend/sandbox.py | 3 +-
+ python/mozbuild/mozbuild/jar.py | 12 +-
+ python/mozbuild/mozbuild/makeutil.py | 24 +-
+ python/mozbuild/mozbuild/mozinfo.py | 8 +-
+ python/mozbuild/mozbuild/preprocessor.py | 27 +-
+ python/mozbuild/mozbuild/shellutil.py | 6 +-
+ .../test/backend/test_recursivemake.py | 18 +-
+ .../mozbuild/test/configure/common.py | 8 +-
+ .../mozbuild/mozbuild/test/configure/lint.py | 8 +-
+ .../test/configure/test_checks_configure.py | 8 +-
+ .../test/configure/test_compile_checks.py | 4 +-
+ .../mozbuild/test/configure/test_configure.py | 244 +++++-----
+ .../mozbuild/test/configure/test_lint.py | 24 +-
+ .../test/configure/test_moz_configure.py | 32 +-
+ .../mozbuild/test/configure/test_options.py | 450 +++++++++---------
+ .../configure/test_toolchain_configure.py | 22 +-
+ .../test/configure/test_toolchain_helpers.py | 62 +--
+ .../configure/test_toolkit_moz_configure.py | 2 +-
+ .../mozbuild/test/configure/test_util.py | 8 +-
+ python/mozbuild/mozbuild/testing.py | 10 +-
+ python/mozbuild/mozbuild/util.py | 79 ++-
+ python/mozbuild/mozbuild/virtualenv.py | 6 +-
+ python/mozbuild/mozpack/chrome/manifest.py | 6 +-
+ python/mozbuild/mozpack/copier.py | 12 +-
+ python/mozbuild/mozpack/files.py | 22 +-
+ python/mozbuild/mozpack/manifests.py | 16 +-
+ python/mozbuild/mozpack/mozjar.py | 37 +-
+ .../manifestparser/manifestparser/ini.py | 13 +-
+ .../manifestparser/manifestparser.py | 24 +-
+ testing/mozbase/mozinfo/mozinfo/mozinfo.py | 26 +-
+ .../mozprocess/mozprocess/processhandler.py | 10 +-
+ third_party/python/which/which.py | 18 +-
+ 72 files changed, 1081 insertions(+), 993 deletions(-)
+
+diff --git a/build/autoconf/config.status.m4 b/build/autoconf/config.status.m4
+index c75575386..543c2d682 100644
+--- a/build/autoconf/config.status.m4
++++ b/build/autoconf/config.status.m4
+@@ -122,7 +122,7 @@ trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+ dnl We're going to need [ ] for python syntax.
+ changequote(<<<, >>>)dnl
+-echo creating $CONFIG_STATUS
++echo creating $CONFIG_STATUS in `pwd`
+
+ cat > $CONFIG_STATUS <<EOF
+
+diff --git a/build/moz.configure/android-ndk.configure b/build/moz.configure/android-ndk.configure
+index 1067b8619..3b592a237 100644
+--- a/build/moz.configure/android-ndk.configure
++++ b/build/moz.configure/android-ndk.configure
+@@ -30,7 +30,7 @@ js_option('--with-android-version',
+
+
+ @depends('--with-android-version', min_android_version, '--help')
+-@imports(_from='__builtin__', _import='ValueError')
++@imports(_from='builtins', _import='ValueError')
+ def android_version(value, min_version, _):
+ if not value:
+ # Someone has passed --without-android-version.
+@@ -68,7 +68,7 @@ add_old_configure_assignment('android_ndk', ndk)
+
+ @depends(ndk)
+ @checking('for android ndk version')
+-@imports(_from='__builtin__', _import='open')
++@imports(_from='builtins', _import='open')
+ def ndk_version(ndk):
+ if not ndk:
+ # Building 'js/src' for non-Android.
+diff --git a/build/moz.configure/checks.configure b/build/moz.configure/checks.configure
+index 516652da9..11e1091c6 100644
+--- a/build/moz.configure/checks.configure
++++ b/build/moz.configure/checks.configure
+@@ -14,7 +14,7 @@
+
+
+ @template
+-@imports(_from='__builtin__', _import='Exception')
++@imports(_from='builtins', _import='Exception')
+ def _declare_exceptions():
+ class FatalCheckError(Exception):
+ '''An exception to throw from a function decorated with @checking.
+@@ -57,7 +57,7 @@ def checking(what, callback=None):
+ try:
+ ret = func(*args, **kwargs)
+ except FatalCheckError as e:
+- error = e.message
++ error = str(e)
+ display_ret = callback(ret) if callback else ret
+ if display_ret is True:
+ log.info('yes')
+diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
+index 648ac2ded..4d74547d8 100644
+--- a/build/moz.configure/init.configure
++++ b/build/moz.configure/init.configure
+@@ -14,7 +14,7 @@ option(env='DIST', nargs=1, help='DIST directory')
+
+
+ @depends('--help', 'DIST')
+-@imports(_from='__builtin__', _import='open')
++@imports(_from='builtins', _import='open')
+ @imports(_from='os.path', _import='exists')
+ def check_build_environment(help, dist):
+ topobjdir = os.path.realpath(os.path.abspath('.'))
+@@ -65,7 +65,7 @@ def check_build_environment(help, dist):
+ # Check for CRLF line endings.
+ with open(os.path.join(topsrcdir, 'configure.py'), 'rb') as fh:
+ data = fh.read()
+- if '\r' in data:
++ if b'\r' in data:
+ die('\n ***\n'
+ ' * The source tree appears to have Windows-style line endings.\n'
+ ' *\n'
+@@ -269,7 +269,7 @@ def early_options():
+ def early_options():
+ return set(
+ option.env
+- for option in __sandbox__._options.itervalues()
++ for option in __sandbox__._options.values()
+ if option.env
+ )
+ return early_options
+@@ -307,15 +307,15 @@ def mozconfig_options(mozconfig, automation, help):
+ log.info(' %s' % arg)
+ helper.add(arg, origin='mozconfig', args=helper._args)
+
+- for key, value in mozconfig['env']['added'].iteritems():
++ for key, value in mozconfig['env']['added'].items():
+ add(key, value)
+ os.environ[key] = value
+- for key, (_, value) in mozconfig['env']['modified'].iteritems():
++ for key, (_, value) in mozconfig['env']['modified'].items():
+ add(key, value)
+ os.environ[key] = value
+- for key, value in mozconfig['vars']['added'].iteritems():
++ for key, value in mozconfig['vars']['added'].items():
+ add(key, value)
+- for key, (_, value) in mozconfig['vars']['modified'].iteritems():
++ for key, (_, value) in mozconfig['vars']['modified'].items():
+ add(key, value)
+
+
+@@ -353,7 +353,7 @@ option(env='PYTHON3', nargs=1, help='Python 3 interpreter (3.5 or later)')
+ @depends('PYTHON3')
+ @checking('for Python 3',
+ callback=lambda x: '%s (%s)' % (x.path, x.str_version) if x else 'no')
+-@imports(_from='__builtin__', _import='Exception')
++@imports(_from='builtins', _import='Exception')
+ @imports(_from='mozbuild.pythonutil', _import='find_python3_executable')
+ @imports(_from='mozbuild.pythonutil', _import='python_executable_version')
+ def python3(env_python):
+@@ -377,9 +377,6 @@ def python3(env_python):
+ if not python:
+ return None
+
+- # The API returns a bytes whereas everything in configure is unicode.
+- python = python.decode('utf-8')
+-
+ return namespace(
+ path=python,
+ version=version,
+@@ -481,6 +478,8 @@ def hg_config(build_env, hg, version):
+ @imports('re')
+ def git_version(git):
+ out = check_cmd_output(git, '--version').rstrip()
++ if isinstance(out, bytes):
++ out = out.decode('utf-8')
+
+ match = re.search('git version (.*)$', out)
+
+@@ -551,8 +550,8 @@ option('--target', nargs=1,
+ @imports(_from='mozbuild.configure.constants', _import='Endianness')
+ @imports(_from='mozbuild.configure.constants', _import='Kernel')
+ @imports(_from='mozbuild.configure.constants', _import='OS')
+-@imports(_from='__builtin__', _import='KeyError')
+-@imports(_from='__builtin__', _import='ValueError')
++@imports(_from='builtins', _import='KeyError')
++@imports(_from='builtins', _import='ValueError')
+ def split_triplet(triplet, allow_unknown=False):
+ # The standard triplet is defined as
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+@@ -562,6 +561,8 @@ def split_triplet(triplet, allow_unknown=False):
+ # Additionally, some may omit "unknown" when the manufacturer
+ # is not specified and emit
+ # CPU_TYPE-OPERATING_SYSTEM
++ if isinstance(triplet, bytes):
++ triplet = triplet.decode('utf-8')
+ parts = triplet.split('-', 2)
+ if len(parts) == 3:
+ cpu, _, os = parts
+@@ -987,7 +988,7 @@ add_old_configure_assignment('MOZ_BUILD_APP', build_project)
+ # - otherwise, if we have "a" in GRE_MILESTONE, we're building Nightly or Aurora
+ # - otherwise, we're building Release/Beta (define RELEASE_OR_BETA)
+ @depends(check_build_environment, '--help')
+-@imports(_from='__builtin__', _import='open')
++@imports(_from='builtins', _import='open')
+ @imports('re')
+ def milestone(build_env, _):
+ milestone_path = os.path.join(build_env.topsrcdir,
+@@ -1105,7 +1106,7 @@ def enabled_in_nightly(milestone, _):
+ def all_configure_options():
+ result = []
+ previous = None
+- for option in __sandbox__._options.itervalues():
++ for option in __sandbox__._options.values():
+ # __sandbox__._options contains items for both option.name and
+ # option.env. But it's also an OrderedDict, meaning both are
+ # consecutive.
+diff --git a/build/moz.configure/keyfiles.configure b/build/moz.configure/keyfiles.configure
+index 5d51cccea..14a35a3c6 100644
+--- a/build/moz.configure/keyfiles.configure
++++ b/build/moz.configure/keyfiles.configure
+@@ -16,8 +16,8 @@ def keyfile(desc, default=None, help=None, callback=lambda x: x):
+
+ @depends('--with-%s-keyfile' % name)
+ @checking('for the %s key' % desc, lambda x: x and x is not no_key)
+- @imports(_from='__builtin__', _import='open')
+- @imports(_from='__builtin__', _import='IOError')
++ @imports(_from='builtins', _import='open')
++ @imports(_from='builtins', _import='IOError')
+ def keyfile(value):
+ if value:
+ try:
+diff --git a/build/moz.configure/old.configure b/build/moz.configure/old.configure
+index 81c10b91f..29b496bae 100644
+--- a/build/moz.configure/old.configure
++++ b/build/moz.configure/old.configure
+@@ -64,9 +64,9 @@ set_config('AUTOCONF', autoconf)
+
+ @depends('OLD_CONFIGURE', mozconfig, autoconf, check_build_environment, shell,
+ old_configure_assignments, build_project)
+-@imports(_from='__builtin__', _import='open')
+-@imports(_from='__builtin__', _import='print')
+-@imports(_from='__builtin__', _import='sorted')
++@imports(_from='builtins', _import='open')
++@imports(_from='builtins', _import='print')
++@imports(_from='builtins', _import='sorted')
+ @imports('glob')
+ @imports('itertools')
+ @imports('subprocess')
+@@ -113,7 +113,7 @@ def prepare_configure(old_configure, mozconfig, autoconf, build_env, shell,
+
+ # Make old-configure append to config.log, where we put our own log.
+ # This could be done with a m4 macro, but it's way easier this way
+- script = script.replace('>./config.log', '>>./config.log')
++ script = script.replace(b'>./config.log', b'>>./config.log')
+
+ with open(old_configure, 'wb') as fh:
+ fh.write(script)
+@@ -282,8 +282,8 @@ def old_configure_options(*options):
+ '--x-includes',
+ '--x-libraries',
+ )
+-@imports(_from='__builtin__', _import='compile')
+-@imports(_from='__builtin__', _import='open')
++@imports(_from='builtins', _import='compile')
++@imports(_from='builtins', _import='open')
+ @imports('logging')
+ @imports('os')
+ @imports('subprocess')
+@@ -326,7 +326,7 @@ def old_configure(prepare_configure, extra_old_configure_args, all_options,
+ log.debug('Running %s', quote(*cmd))
+ if extra_env:
+ log.debug('with extra environment: %s',
+- ' '.join('%s=%s' % pair for pair in extra_env.iteritems()))
++ ' '.join('%s=%s' % pair for pair in extra_env.items()))
+
+ # Our logging goes to config.log, the same file old.configure uses.
+ # We can't share the handle on the file, so close it. We assume nothing
+@@ -359,7 +359,7 @@ def old_configure(prepare_configure, extra_old_configure_args, all_options,
+ # Every variation of the exec() function I tried led to:
+ # SyntaxError: unqualified exec is not allowed in function 'main' it
+ # contains a nested function with free variables
+- exec code in raw_config # noqa
++ exec(code, raw_config) # noqa
+
+ # Ensure all the flags known to old-configure appear in the
+ # @old_configure_options above.
+@@ -393,16 +393,24 @@ def set_old_configure_define(name, value):
+ @depends(old_configure)
+ @imports('types')
+ def post_old_configure(raw_config):
++ log.info('post_old_configure started')
++
+ for k, v in raw_config['substs']:
+ set_old_configure_config(
+- k[1:-1], v[1:-1] if isinstance(v, types.StringTypes) else v)
++ k[1:-1], v[1:-1] if isinstance(v, str) else v)
++
++ log.info('post_old_configure 1 finished')
+
+- for k, v in dict(raw_config['defines']).iteritems():
++ for k, v in dict(raw_config['defines']).items():
+ set_old_configure_define(k[1:-1], v[1:-1])
+
++ log.info('post_old_configure 2 finished')
++
+ set_old_configure_config('non_global_defines',
+ raw_config['non_global_defines'])
+
++ log.info('post_old_configure 3 finished')
++
+
+ # Assuming no other option is declared after this function, handle the
+ # env options that were injected by mozconfig_options by creating dummy
+@@ -414,6 +422,7 @@ def post_old_configure(raw_config):
+ @imports('__sandbox__')
+ @imports(_from='mozbuild.configure.options', _import='Option')
+ def remaining_mozconfig_options(_):
++ log.info('remaining_mozconfig_options started')
+ helper = __sandbox__._helper
+ for arg in helper:
+ if helper._origins[arg] != 'mozconfig':
+@@ -422,5 +431,6 @@ def remaining_mozconfig_options(_):
+ if name.isupper() and name not in __sandbox__._options:
+ option = Option(env=name, nargs='*', help=name)
+ helper.handle(option)
++ log.info('remaining_mozconfig_options finished')
+
+ # Please do not add anything after remaining_mozconfig_options()
+diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure
+index fc640c75e..c5508dfb7 100755
+--- a/build/moz.configure/toolchain.configure
++++ b/build/moz.configure/toolchain.configure
+@@ -391,7 +391,7 @@ def get_compiler_info(compiler, language):
+ ('CPU', CPU_preprocessor_checks),
+ ('KERNEL', kernel_preprocessor_checks),
+ ):
+- for n, (value, condition) in enumerate(preprocessor_checks.iteritems()):
++ for n, (value, condition) in enumerate(preprocessor_checks.items()):
+ check += dedent('''\
+ #%(if)s %(condition)s
+ %%%(name)s "%(value)s"
+@@ -425,9 +425,9 @@ def get_compiler_info(compiler, language):
+ data = {}
+ for line in result.splitlines():
+ if line.startswith(b'%'):
+- k, _, v = line.partition(' ')
+- k = k.lstrip('%')
+- data[k] = v.replace(' ', '').lstrip('"').rstrip('"')
++ k, _, v = line.partition(b' ')
++ k = k.lstrip(b'%').decode('utf-8')
++ data[k] = v.replace(b' ', b'').lstrip(b'"').rstrip(b'"').decode('utf-8')
+ log.debug('%s = %s', k, data[k])
+
+ try:
+@@ -551,7 +551,7 @@ def check_compiler(compiler, language, target):
+ )
+
+
+-@imports(_from='__builtin__', _import='open')
++@imports(_from='builtins', _import='open')
+ @imports('json')
+ @imports('subprocess')
+ @imports('sys')
+@@ -606,7 +606,7 @@ def vs_major_version(value):
+
+
+ @depends(host, target, vs_major_version, check_build_environment, '--with-visual-studio-version')
+-@imports(_from='__builtin__', _import='sorted')
++@imports(_from='builtins', _import='sorted')
+ @imports(_from='operator', _import='itemgetter')
+ @imports('platform')
+ def vc_compiler_path(host, target, vs_major_version, env, vs_release_name):
+@@ -807,7 +807,7 @@ def compiler(language, host_or_target, c_compiler=None, other_compiler=None,
+ target.os != 'Android':
+ return namespace(**{
+ k: [] if k == 'flags' else v
+- for k, v in other_compiler.__dict__.iteritems()
++ for k, v in other_compiler.__dict__.items()
+ })
+
+ # Normally, we'd use `var` instead of `_var`, but the interaction with
+@@ -1238,7 +1238,7 @@ set_config('VISIBILITY_FLAGS', visibility_flags)
+
+ @depends(c_compiler)
+ @imports('multiprocessing')
+-@imports(_from='__builtin__', _import='min')
++@imports(_from='builtins', _import='min')
+ def pgo_flags(compiler):
+ if compiler.type in ('gcc', 'clang'):
+ return namespace(
+@@ -1517,6 +1517,8 @@ def enable_gnu_linker(enable_gold_option, c_compiler, developer_options, build_e
+ gold = check_cmd_output(*detection_cmd).strip()
+ if not gold:
+ return
++ if isinstance(gold, bytes):
++ gold = gold.decode('utf-8')
+
+ goldFullPath = find_program(gold)
+ if goldFullPath is None:
+diff --git a/build/moz.configure/util.configure b/build/moz.configure/util.configure
+index 3284fd8b5..218813e2d 100644
+--- a/build/moz.configure/util.configure
++++ b/build/moz.configure/util.configure
+@@ -25,7 +25,6 @@ def configure_error(message):
+ # does not.
+
+
+-@imports(_from='__builtin__', _import='unicode')
+ @imports('subprocess')
+ @imports('sys')
+ @imports(_from='mozbuild.configure.util', _import='LineIO')
+@@ -39,10 +38,10 @@ def check_cmd_output(*args, **kwargs):
+ if 'env' in kwargs:
+ normalized_env = {}
+ for k, v in kwargs['env'].items():
+- if isinstance(k, unicode):
++ if isinstance(k, str):
+ k = k.encode('utf-8', 'strict')
+
+- if isinstance(v, unicode):
++ if isinstance(v, str):
+ v = v.encode('utf-8', 'strict')
+
+ normalized_env[k] = v
+@@ -285,7 +284,7 @@ def unique_list(l):
+ # ('19.0', 'x64', r'C:\...\amd64\cl.exe')
+ # ('19.0', 'x86', r'C:\...\amd64_x86\cl.exe')
+ @imports(_import='_winreg', _as='winreg')
+-@imports(_from='__builtin__', _import='WindowsError')
++@imports(_from='builtins', _import='WindowsError')
+ @imports(_from='fnmatch', _import='fnmatch')
+ def get_registry_values(pattern, get_32_and_64_bit=False):
+ def enum_helper(func, key):
+@@ -360,6 +359,8 @@ def get_registry_values(pattern, get_32_and_64_bit=False):
+ @imports(_from='mozbuild.configure.util', _import='Version', _as='_Version')
+ def Version(v):
+ 'A version number that can be compared usefully.'
++ if isinstance(v, bytes):
++ v = v.decode('utf-8')
+ return _Version(v)
+
+ # Denotes a deprecated option. Combines option() and @depends:
+diff --git a/build/moz.configure/windows.configure b/build/moz.configure/windows.configure
+index a5b790e3b..2b88fc447 100644
+--- a/build/moz.configure/windows.configure
++++ b/build/moz.configure/windows.configure
+@@ -10,7 +10,7 @@ option('--with-windows-version', nargs=1, default='603',
+
+
+ @depends('--with-windows-version')
+-@imports(_from='__builtin__', _import='ValueError')
++@imports(_from='builtins', _import='ValueError')
+ def valid_windows_version(value):
+ if not value:
+ die('Cannot build with --without-windows-version')
+@@ -50,8 +50,8 @@ def windows_sdk_dir(value, host):
+
+ @imports('os')
+ @imports('re')
+-@imports(_from='__builtin__', _import='sorted')
+-@imports(_from='__builtin__', _import='WindowsError')
++@imports(_from='builtins', _import='sorted')
++@imports(_from='builtins', _import='WindowsError')
+ def get_sdk_dirs(sdk, subdir):
+ def get_dirs_containing(sdk, stem, subdir):
+ base = os.path.join(sdk, stem)
+@@ -96,7 +96,7 @@ def valid_windows_sdk_dir_result(value):
+
+ @depends(c_compiler, windows_sdk_dir, valid_windows_version, 'WINDOWSSDKDIR')
+ @checking('for Windows SDK', valid_windows_sdk_dir_result)
+-@imports(_from='__builtin__', _import='sorted')
++@imports(_from='builtins', _import='sorted')
+ @imports(_from='textwrap', _import='dedent')
+ def valid_windows_sdk_dir(compiler, windows_sdk_dir, target_version,
+ windows_sdk_dir_env):
+@@ -174,7 +174,7 @@ def valid_ucrt_sdk_dir_result(value):
+ @depends(windows_sdk_dir, 'WINDOWSSDKDIR', c_compiler)
+ @checking('for Universal CRT SDK', valid_ucrt_sdk_dir_result)
+ @imports('os')
+-@imports(_from='__builtin__', _import='sorted')
++@imports(_from='builtins', _import='sorted')
+ @imports(_import='mozpack.path', _as='mozpath')
+ def valid_ucrt_sdk_dir(windows_sdk_dir, windows_sdk_dir_env, c_compiler):
+ if windows_sdk_dir_env:
+diff --git a/build/templates.mozbuild b/build/templates.mozbuild
+index 3da850ce5..ae5e410fe 100644
+--- a/build/templates.mozbuild
++++ b/build/templates.mozbuild
+@@ -10,7 +10,7 @@ def Binary():
+ templates.'''
+
+ # Add -llog by default, since we use it all over the place.
+- if CONFIG['OS_TARGET'] == 'Android':
++ if str(CONFIG['OS_TARGET']) == 'Android':
+ OS_LIBS += ['log']
+
+
+diff --git a/config/MozZipFile.py b/config/MozZipFile.py
+index 337fe0521..dc7add4c3 100644
+--- a/config/MozZipFile.py
++++ b/config/MozZipFile.py
+@@ -18,7 +18,7 @@ class ZipFile(zipfile.ZipFile):
+ def __init__(self, file, mode="r", compression=zipfile.ZIP_STORED,
+ lock = False):
+ if lock:
+- assert isinstance(file, basestring)
++ assert isinstance(file, str)
+ self.lockfile = lock_file(file + '.lck')
+ else:
+ self.lockfile = None
+@@ -46,7 +46,7 @@ class ZipFile(zipfile.ZipFile):
+ date_time=time.localtime(time.time()))
+ zinfo.compress_type = self.compression
+ # Add some standard UNIX file access permissions (-rw-r--r--).
+- zinfo.external_attr = (0x81a4 & 0xFFFF) << 16L
++ zinfo.external_attr = (0x81a4 & 0xFFFF) << 16
+ else:
+ zinfo = zinfo_or_arcname
+
+@@ -58,7 +58,7 @@ class ZipFile(zipfile.ZipFile):
+ # as the old, reuse the existing entry.
+
+ doSeek = False # store if we need to seek to the eof after overwriting
+- if self.NameToInfo.has_key(zinfo.filename):
++ if zinfo.filename in self.NameToInfo:
+ # Find the last ZipInfo with our name.
+ # Last, because that's catching multiple overwrites
+ i = len(self.filelist)
+@@ -109,14 +109,14 @@ class ZipFile(zipfile.ZipFile):
+ # adjust file mode if we originally just wrote, now we rewrite
+ self.fp.close()
+ self.fp = open(self.filename, 'r+b')
+- all = map(lambda zi: (zi, True), self.filelist) + \
+- map(lambda zi: (zi, False), self._remove)
++ all = [(zi, True) for zi in self.filelist] + \
++ [(zi, False) for zi in self._remove]
+ all.sort(lambda l, r: cmp(l[0].header_offset, r[0].header_offset))
+ # empty _remove for multiple closes
+ self._remove = []
+
+ lengths = [all[i+1][0].header_offset - all[i][0].header_offset
+- for i in xrange(len(all)-1)]
++ for i in range(len(all)-1)]
+ lengths.append(self.end - all[-1][0].header_offset)
+ to_pos = 0
+ for (zi, keep), length in zip(all, lengths):
+diff --git a/config/expandlibs.py b/config/expandlibs.py
+index ac06c432f..df1fed15d 100644
+--- a/config/expandlibs.py
++++ b/config/expandlibs.py
+@@ -26,7 +26,7 @@ ${LIB_PREFIX}${ROOT}.${LIB_SUFFIX} following these rules:
+ descriptor contains. And for each of these LIBS, also apply the same
+ rules.
+ '''
+-from __future__ import with_statement
++
+ import sys, os, errno
+ import expandlibs_config as conf
+
+@@ -36,7 +36,7 @@ def ensureParentDir(file):
+ if dir and not os.path.exists(dir):
+ try:
+ os.makedirs(dir)
+- except OSError, error:
++ except OSError as error:
+ if error.errno != errno.EEXIST:
+ raise
+
+@@ -140,4 +140,4 @@ class ExpandArgs(list):
+ return [relativize(arg)]
+
+ if __name__ == '__main__':
+- print " ".join(ExpandArgs(sys.argv[1:]))
++ print(" ".join(ExpandArgs(sys.argv[1:])))
+diff --git a/config/expandlibs_exec.py b/config/expandlibs_exec.py
+index df656016c..fb786a6a8 100644
+--- a/config/expandlibs_exec.py
++++ b/config/expandlibs_exec.py
+@@ -20,7 +20,7 @@ With the --symbol-order argument, followed by a file name, it will add the
+ relevant linker options to change the order in which the linker puts the
+ symbols appear in the resulting binary. Only works for ELF targets.
+ '''
+-from __future__ import with_statement
++
+ import sys
+ import os
+ from expandlibs import (
+@@ -304,11 +304,11 @@ class SectionFinder(object):
+ return syms
+
+ def print_command(out, args):
+- print >>out, "Executing: " + " ".join(args)
++ print("Executing: " + " ".join(args), file=out)
+ for tmp in [f for f in args.tmp if os.path.isfile(f)]:
+- print >>out, tmp + ":"
++ print(tmp + ":", file=out)
+ with open(tmp) as file:
+- print >>out, "".join([" " + l for l in file.readlines()])
++ print("".join([" " + l for l in file.readlines()]), file=out)
+ out.flush()
+
+ def main(args, proc_callback=None):
+@@ -338,13 +338,13 @@ def main(args, proc_callback=None):
+ proc = subprocess.Popen(args, stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
+ if proc_callback:
+ proc_callback(proc)
+- except Exception, e:
+- print >>sys.stderr, 'error: Launching', args, ':', e
++ except Exception as e:
++ print('error: Launching', args, ':', e, file=sys.stderr)
+ raise e
+ (stdout, stderr) = proc.communicate()
+ if proc.returncode and not options.verbose:
+ print_command(sys.stderr, args)
+- sys.stderr.write(stdout)
++ sys.stderr.write(stdout.decode("utf-8"))
+ sys.stderr.flush()
+ if proc.returncode:
+ return proc.returncode
+diff --git a/config/expandlibs_gen.py b/config/expandlibs_gen.py
+index b1de63cd0..dc62bd184 100644
+--- a/config/expandlibs_gen.py
++++ b/config/expandlibs_gen.py
+@@ -5,7 +5,7 @@
+ '''Given a list of object files and library names, prints a library
+ descriptor to standard output'''
+
+-from __future__ import with_statement
++
+ import sys
+ import os
+ import expandlibs_config as conf
+@@ -38,4 +38,4 @@ if __name__ == '__main__':
+
+ ensureParentDir(options.output)
+ with open(options.output, 'w') as outfile:
+- print >>outfile, generate(args)
++ print(generate(args), file=outfile)
+diff --git a/configure.py b/configure.py
+index 771e34e38..bee329d7c 100644
+--- a/configure.py
++++ b/configure.py
+@@ -2,10 +2,11 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import print_function, unicode_literals
++
+
+ import codecs
+ import itertools
++import logging
+ import os
+ import sys
+ import textwrap
+@@ -34,7 +35,9 @@ from mozbuild.util import (
+ def main(argv):
+ config = {}
+ sandbox = ConfigureSandbox(config, os.environ, argv)
++ print('sandbox.run started')
+ sandbox.run(os.path.join(os.path.dirname(__file__), 'moz.configure'))
++ print('sandbox.run finished')
+
+ if sandbox._help:
+ return 0
+@@ -56,12 +59,21 @@ def config_status(config):
+
+ sanitized_config = {}
+ sanitized_config['substs'] = {
+- k: sanitized_bools(v) for k, v in config.iteritems()
++ k: sanitized_bools(v) for k, v in config.items()
+ if k not in ('DEFINES', 'non_global_defines', 'TOPSRCDIR', 'TOPOBJDIR',
+ 'ALL_CONFIGURE_PATHS')
+ }
++
++ # Hack around OptionValue entries unknown during compile
++ for opt in ('BUILD_BACKENDS', 'MOZ_UI_LOCALE', 'RUSTFLAGS' ):
++ old = sanitized_config['substs'][opt]
++ new = []
++ for setting in old:
++ new.append(setting)
++ sanitized_config['substs'][opt] = new
++
+ sanitized_config['defines'] = {
+- k: sanitized_bools(v) for k, v in config['DEFINES'].iteritems()
++ k: sanitized_bools(v) for k, v in config['DEFINES'].items()
+ }
+ sanitized_config['non_global_defines'] = config['non_global_defines']
+ sanitized_config['topsrcdir'] = config['TOPSRCDIR']
+@@ -71,20 +83,17 @@ def config_status(config):
+ # Create config.status. Eventually, we'll want to just do the work it does
+ # here, when we're able to skip configure tests/use cached results/not rely
+ # on autoconf.
+- print("Creating config.status", file=sys.stderr)
+- encoding = 'mbcs' if sys.platform == 'win32' else 'utf-8'
+- with codecs.open('config.status', 'w', encoding) as fh:
++ logging.getLogger('moz.configure').info('Creating config.status')
++ with codecs.open('config.status', 'w', 'utf-8') as fh:
+ fh.write(textwrap.dedent('''\
+ #!%(python)s
+- # coding=%(encoding)s
+- from __future__ import unicode_literals
+- from mozbuild.util import encode
+- encoding = '%(encoding)s'
+- ''') % {'python': config['PYTHON'], 'encoding': encoding})
++ # coding=utf-8
++ print("config.status started")
++ ''') % {'python': config['PYTHON']})
+ # A lot of the build backend code is currently expecting byte
+ # strings and breaks in subtle ways with unicode strings. (bug 1296508)
+- for k, v in sanitized_config.iteritems():
+- fh.write('%s = encode(%s, encoding)\n' % (k, indented_repr(v)))
++ for k, v in sanitized_config.items():
++ fh.write('%s = %s\n' % (k, indented_repr(v)))
+ fh.write("__all__ = ['topobjdir', 'topsrcdir', 'defines', "
+ "'non_global_defines', 'substs', 'mozconfig']")
+
+@@ -97,6 +106,9 @@ def config_status(config):
+ args = dict([(name, globals()[name]) for name in __all__])
+ config_status(**args)
+ '''))
++ fh.write(textwrap.dedent('''
++ print("config.status finished")
++ '''))
+
+ partial_config = PartialConfigEnvironment(config['TOPOBJDIR'])
+ partial_config.write_vars(sanitized_config)
+@@ -116,7 +128,7 @@ def config_status(config):
+ # executable permissions.
+ os.chmod('config.status', 0o755)
+ if config.get('MOZ_BUILD_APP') != 'js' or config.get('JS_STANDALONE'):
+- os.environ[b'WRITE_MOZINFO'] = b'1'
++ os.environ['WRITE_MOZINFO'] = '1'
+ from mozbuild.config_status import config_status
+
+ # Some values in sanitized_config also have more complex types, such as
+@@ -127,7 +139,7 @@ def config_status(config):
+
+ # A lot of the build backend code is currently expecting byte strings
+ # and breaks in subtle ways with unicode strings.
+- return config_status(args=[], **encode(sanitized_config, encoding))
++ return config_status(args=[], **sanitized_config)
+ return 0
+
+
+diff --git a/js/src/build/moz.build b/js/src/build/moz.build
+index a7f5fa4ce..856cae32d 100644
+--- a/js/src/build/moz.build
++++ b/js/src/build/moz.build
+@@ -47,22 +47,22 @@ USE_LIBS += [
+ 'zlib',
+ ]
+
+-if CONFIG['OS_ARCH'] not in ('WINNT', 'HP-UX'):
++if str(CONFIG['OS_ARCH']) not in ('WINNT', 'HP-UX'):
+ OS_LIBS += [
+ 'm',
+ ]
+
+-if CONFIG['OS_ARCH'] == 'FreeBSD':
++if str(CONFIG['OS_ARCH']) == 'FreeBSD':
+ OS_LIBS += [
+ '-pthread',
+ ]
+
+-if CONFIG['OS_ARCH'] == 'Linux':
++if str(CONFIG['OS_ARCH']) == 'Linux':
+ OS_LIBS += [
+ 'dl',
+ ]
+
+-if CONFIG['OS_ARCH'] == 'SunOS':
++if str(CONFIG['OS_ARCH']) == 'SunOS':
+ OS_LIBS += [
+ 'posix4',
+ 'dl',
+diff --git a/js/src/builtin/embedjs.py b/js/src/builtin/embedjs.py
+index ba25e71c1..d4f2de122 100644
+--- a/js/src/builtin/embedjs.py
++++ b/js/src/builtin/embedjs.py
+@@ -36,7 +36,7 @@
+ #
+ # It uses the C preprocessor to process its inputs.
+
+-from __future__ import with_statement
++
+ import re, sys, os, subprocess
+ import shlex
+ import which
+@@ -52,8 +52,8 @@ def ToCAsciiArray(lines):
+
+ def ToCArray(lines):
+ result = []
+- for chr in lines:
+- result.append(str(ord(chr)))
++ for char in lines:
++ result.append("0x%0.2X" % char)
+ return ", ".join(result)
+
+ HEADER_TEMPLATE = """\
+@@ -87,7 +87,7 @@ def embed(cxx, preprocessorOption, cppflags, msgs, sources, c_out, js_out, names
+
+ js_out.write(processed)
+ import zlib
+- compressed = zlib.compress(processed)
++ compressed = zlib.compress(processed.encode('utf-8'))
+ data = ToCArray(compressed)
+ c_out.write(HEADER_TEMPLATE % {
+ 'sources_type': 'unsigned char',
+@@ -107,7 +107,7 @@ def preprocess(cxx, preprocessorOption, source, args = []):
+ tmpOut = 'self-hosting-preprocessed.pp';
+ outputArg = shlex.split(preprocessorOption + tmpOut)
+
+- with open(tmpIn, 'wb') as input:
++ with open(tmpIn, 'w') as input:
+ input.write(source)
+ print(' '.join(cxx + outputArg + args + [tmpIn]))
+ result = subprocess.Popen(cxx + outputArg + args + [tmpIn]).wait()
+diff --git a/js/src/configure b/js/src/configure
+index 3b3a39af3..8f5ea41d0 100755
+--- a/js/src/configure
++++ b/js/src/configure
+@@ -24,4 +24,4 @@ export OLD_CONFIGURE="$SRCDIR"/old-configure
+
+ set -- "$@" --enable-project=js
+
+-which python2.7 > /dev/null && exec python2.7 "$TOPSRCDIR/configure.py" "$@" || exec python "$TOPSRCDIR/configure.py" "$@"
++which python3 > /dev/null && exec python3 "$TOPSRCDIR/configure.py" "$@" || exec python "$TOPSRCDIR/configure.py" "$@"
+diff --git a/js/src/frontend/GenerateReservedWords.py b/js/src/frontend/GenerateReservedWords.py
+index 3aa2307b9..381c8e2b4 100644
+--- a/js/src/frontend/GenerateReservedWords.py
++++ b/js/src/frontend/GenerateReservedWords.py
+@@ -80,14 +80,14 @@ def split_list_per_column(reserved_word_list, column):
+ per_column = column_dict.setdefault(word[column], [])
+ per_column.append(item)
+
+- return sorted(column_dict.items(), key=lambda (char, word): ord(char))
++ return sorted(list(column_dict.items()), key=lambda char_word: ord(char_word[0]))
+
+ def generate_letter_switch(opt, unprocessed_columns, reserved_word_list,
+ columns=None):
+ assert(len(reserved_word_list) != 0);
+
+ if not columns:
+- columns = range(0, unprocessed_columns)
++ columns = list(range(0, unprocessed_columns))
+
+ if len(reserved_word_list) == 1:
+ index, word = reserved_word_list[0]
+@@ -161,7 +161,7 @@ def split_list_per_length(reserved_word_list):
+ per_length = length_dict.setdefault(len(word), [])
+ per_length.append(item)
+
+- return sorted(length_dict.items(), key=lambda (length, word): length)
++ return sorted(list(length_dict.items()), key=lambda length_word: length_word[0])
+
+ def generate_switch(opt, reserved_word_list):
+ assert(len(reserved_word_list) != 0);
+diff --git a/js/src/gc/GenerateStatsPhases.py b/js/src/gc/GenerateStatsPhases.py
+index 2daf83555..e39a26a4b 100644
+--- a/js/src/gc/GenerateStatsPhases.py
++++ b/js/src/gc/GenerateStatsPhases.py
+@@ -267,7 +267,7 @@ def generateHeader(out):
+ #
+ # Generate PhaseKind enum.
+ #
+- phaseKindNames = map(lambda phaseKind: phaseKind.name, AllPhaseKinds)
++ phaseKindNames = [phaseKind.name for phaseKind in AllPhaseKinds]
+ extraPhaseKinds = [
+ "NONE = LIMIT",
+ "EXPLICIT_SUSPENSION = LIMIT",
+@@ -279,7 +279,7 @@ def generateHeader(out):
+ #
+ # Generate Phase enum.
+ #
+- phaseNames = map(lambda phase: phase.name, AllPhases)
++ phaseNames = [phase.name for phase in AllPhases]
+ extraPhases = [
+ "NONE = LIMIT",
+ "EXPLICIT_SUSPENSION = LIMIT",
+diff --git a/js/src/old-configure.in b/js/src/old-configure.in
+index 11c3d5a2e..389265404 100644
+--- a/js/src/old-configure.in
++++ b/js/src/old-configure.in
+@@ -1884,3 +1884,5 @@ if test "$JS_STANDALONE"; then
+ fi
+
+ rm -fr confdefs* $ac_clean_files
++echo confdefs* $ac_clean_files removed
++echo "old-configure done"
+diff --git a/memory/build/moz.build b/memory/build/moz.build
+index e2c715271..f09ce7935 100644
+--- a/memory/build/moz.build
++++ b/memory/build/moz.build
+@@ -30,7 +30,7 @@ else:
+ 'fallback.cpp',
+ ]
+
+-if CONFIG['OS_TARGET'] == 'Darwin' and (CONFIG['MOZ_REPLACE_MALLOC'] or
++if str(CONFIG['OS_TARGET']) == 'Darwin' and (CONFIG['MOZ_REPLACE_MALLOC'] or
+ CONFIG['MOZ_MEMORY']):
+ SOURCES += [
+ 'zone.c',
+@@ -38,15 +38,15 @@ if CONFIG['OS_TARGET'] == 'Darwin' and (CONFIG['MOZ_REPLACE_MALLOC'] or
+
+ Library('memory')
+
+-if CONFIG['OS_TARGET'] == 'Android' and CONFIG['CC_TYPE'] == 'clang':
++if str(CONFIG['OS_TARGET']) == 'Android' and str(CONFIG['CC_TYPE']) == 'clang':
+ CXXFLAGS += [
+ '-Wno-tautological-pointer-compare',
+ ]
+
+-if CONFIG['MOZ_BUILD_APP'] != 'memory':
++if str(CONFIG['MOZ_BUILD_APP']) != 'memory':
+ FINAL_LIBRARY = 'mozglue'
+
+-if CONFIG['CC_TYPE'] in ('msvc', 'clang-cl'):
++if str(CONFIG['CC_TYPE']) in ('msvc', 'clang-cl'):
+ CXXFLAGS += ['-wd4273'] # inconsistent dll linkage (bug 558163)
+
+ if CONFIG['MOZ_REPLACE_MALLOC_STATIC']:
+diff --git a/mozglue/build/moz.build b/mozglue/build/moz.build
+index 53758485a..5e9308802 100644
+--- a/mozglue/build/moz.build
++++ b/mozglue/build/moz.build
+@@ -9,12 +9,12 @@
+ # If this is ever changed, update MOZ_SHARED_MOZGLUE in browser/installer/Makefile.in
+ if CONFIG['JS_STANDALONE'] and not CONFIG['MOZ_MEMORY']:
+ Library('mozglue')
+-elif CONFIG['OS_TARGET'] in ('WINNT', 'Darwin', 'Android'):
++elif str(CONFIG['OS_TARGET']) in ('WINNT', 'Darwin', 'Android'):
+ SharedLibrary('mozglue')
+ else:
+ Library('mozglue')
+
+-if CONFIG['OS_TARGET'] == 'Android':
++if str(CONFIG['OS_TARGET']) == 'Android':
+ SOURCES += [
+ 'BionicGlue.cpp',
+ ]
+@@ -24,14 +24,14 @@ if CONFIG['MOZ_ASAN']:
+ 'AsanOptions.cpp',
+ ]
+
+-if CONFIG['OS_TARGET'] == 'WINNT':
++if str(CONFIG['OS_TARGET']) == 'WINNT':
+ DEFFILE = 'mozglue.def'
+ # We'll break the DLL blocklist if we immediately load user32.dll
+ DELAYLOAD_DLLS += [
+ 'user32.dll',
+ ]
+
+- if CONFIG['CC_TYPE'] == "msvc":
++ if str(CONFIG['CC_TYPE']) == "msvc":
+ CFLAGS += ['-guard:cf']
+ CXXFLAGS += ['-guard:cf']
+ LDFLAGS += ['-guard:cf']
+@@ -48,12 +48,12 @@ if CONFIG['MOZ_WIDGET_TOOLKIT']:
+ 'dummy.cpp',
+ ]
+
+- if CONFIG['OS_TARGET'] == 'WINNT':
++ if str(CONFIG['OS_TARGET']) == 'WINNT':
+ LOCAL_INCLUDES += [
+ '/memory/build',
+ ]
+
+- if CONFIG['CC_TYPE'] == "msvc":
++ if str(CONFIG['CC_TYPE']) == "msvc":
+ SOURCES += ['WindowsCFGStatus.cpp']
+ SOURCES += [
+ 'Authenticode.cpp',
+@@ -85,17 +85,17 @@ if CONFIG['MOZ_WIDGET_TOOLKIT']:
+ 'WindowsDllBlocklist.h',
+ ]
+
+- if CONFIG['CPU_ARCH'].startswith('x86'):
++ if str(CONFIG['CPU_ARCH']).startswith('x86'):
+ SOURCES += [
+ 'SSE.cpp',
+ ]
+
+- if CONFIG['CPU_ARCH'] == 'arm':
++ if str(CONFIG['CPU_ARCH']) == 'arm':
+ SOURCES += [
+ 'arm.cpp',
+ ]
+
+- if CONFIG['CPU_ARCH'].startswith('mips'):
++ if str(CONFIG['CPU_ARCH']).startswith('mips'):
+ SOURCES += [
+ 'mips.cpp',
+ ]
+@@ -114,7 +114,7 @@ LIBRARY_DEFINES['MOZ_HAS_MOZGLUE'] = True
+
+ LDFLAGS += CONFIG['MOZ_GLUE_WRAP_LDFLAGS']
+
+-if CONFIG['OS_TARGET'] == 'Darwin':
++if str(CONFIG['OS_TARGET']) == 'Darwin':
+ # On OSX 10.10.3, a dead lock happens in some cases involving dynamic
+ # symbol resolution for symbols that jemalloc itself uses. While it
+ # might be possible to find a way to avoid all such symbol resolutions,
+@@ -124,7 +124,7 @@ if CONFIG['OS_TARGET'] == 'Darwin':
+ # for TLS.
+ LDFLAGS += ['-Wl,-bind_at_load']
+
+-if CONFIG['MOZ_LINKER'] and CONFIG['TARGET_CPU'] == 'arm':
++if CONFIG['MOZ_LINKER'] and str(CONFIG['TARGET_CPU']) == 'arm':
+ LDFLAGS += ['-Wl,-version-script,%s/arm-eabi-filter' % SRCDIR]
+
+ DIST_INSTALL = True
+diff --git a/python/mozbuild/mozbuild/action/check_binary.py b/python/mozbuild/mozbuild/action/check_binary.py
+index 5665ef053..b696f73d6 100644
+--- a/python/mozbuild/mozbuild/action/check_binary.py
++++ b/python/mozbuild/mozbuild/action/check_binary.py
+@@ -104,6 +104,8 @@ def iter_readelf_symbols(target, binary):
+
+ def iter_readelf_dynamic(target, binary):
+ for line in get_output(target['readelf'], '-d', binary):
++ if isinstance(line, bytes):
++ line=line.decode('utf-8')
+ data = line.split(None, 2)
+ if data and len(data) == 3 and data[0].startswith('0x'):
+ yield data[1].rstrip(')').lstrip('('), data[2]
+diff --git a/python/mozbuild/mozbuild/action/process_define_files.py b/python/mozbuild/mozbuild/action/process_define_files.py
+index 563fbb8fa..c3df2869b 100644
+--- a/python/mozbuild/mozbuild/action/process_define_files.py
++++ b/python/mozbuild/mozbuild/action/process_define_files.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, print_function, unicode_literals
++
+
+ import argparse
+ import os
+@@ -53,7 +53,7 @@ def process_define_file(output, input):
+ 'CONFIGURE_DEFINE_FILE')
+ defines = '\n'.join(sorted(
+ '#define %s %s' % (name, val)
+- for name, val in config.defines['ALLDEFINES'].iteritems()))
++ for name, val in config.defines['ALLDEFINES'].items()))
+ l = l[:m.start('cmd') - 1] \
+ + defines + l[m.end('name'):]
+ elif cmd == 'define':
+diff --git a/python/mozbuild/mozbuild/backend/base.py b/python/mozbuild/mozbuild/backend/base.py
+index a8d5c94e0..7cda63475 100644
+--- a/python/mozbuild/mozbuild/backend/base.py
++++ b/python/mozbuild/mozbuild/backend/base.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, unicode_literals
++
+
+ from abc import (
+ ABCMeta,
+@@ -31,7 +31,7 @@ from .configenvironment import ConfigEnvironment
+ from mozbuild.base import ExecutionSummary
+
+
+-class BuildBackend(LoggingMixin):
++class BuildBackend(LoggingMixin, metaclass=ABCMeta):
+ """Abstract base class for build backends.
+
+ A build backend is merely a consumer of the build configuration (the output
+@@ -39,8 +39,6 @@ class BuildBackend(LoggingMixin):
+ is the discretion of the specific implementation.
+ """
+
+- __metaclass__ = ABCMeta
+-
+ def __init__(self, environment):
+ assert isinstance(environment, (ConfigEnvironment, EmptyConfig))
+ self.populate_logger()
+@@ -311,7 +309,7 @@ class BuildBackend(LoggingMixin):
+ srcdir = mozpath.dirname(obj.input_path)
+ pp.context.update({
+ k: ' '.join(v) if isinstance(v, list) else v
+- for k, v in obj.config.substs.iteritems()
++ for k, v in obj.config.substs.items()
+ })
+ pp.context.update(
+ top_srcdir=obj.topsrcdir,
+diff --git a/python/mozbuild/mozbuild/backend/common.py b/python/mozbuild/mozbuild/backend/common.py
+index d00cbbcaf..f747df446 100644
+--- a/python/mozbuild/mozbuild/backend/common.py
++++ b/python/mozbuild/mozbuild/backend/common.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, unicode_literals
++
+
+ import json
+ import os
+@@ -174,7 +174,7 @@ class CommonBackend(BuildBackend):
+ if len(self._idl_manager.idls):
+ self._write_rust_xpidl_summary(self._idl_manager)
+ self._handle_idl_manager(self._idl_manager)
+- self._handle_generated_sources(mozpath.join(self.environment.topobjdir, 'dist/include/%s.h' % idl['root']) for idl in self._idl_manager.idls.values())
++ self._handle_generated_sources(mozpath.join(self.environment.topobjdir, 'dist/include/%s.h' % idl['root']) for idl in list(self._idl_manager.idls.values()))
+
+
+ for config in self._configs:
+@@ -372,14 +372,14 @@ class CommonBackend(BuildBackend):
+
+ with self._write_file(mozpath.join(topobjdir, 'dist', 'xpcrs', 'rt', 'all.rs')) as fh:
+ fh.write("// THIS FILE IS GENERATED - DO NOT EDIT\n\n")
+- for idl in manager.idls.values():
++ for idl in list(manager.idls.values()):
+ fh.write(include_tmpl % ("rt", idl['root']))
+ fh.write(";\n")
+
+ with self._write_file(mozpath.join(topobjdir, 'dist', 'xpcrs', 'bt', 'all.rs')) as fh:
+ fh.write("// THIS FILE IS GENERATED - DO NOT EDIT\n\n")
+ fh.write("&[\n")
+- for idl in manager.idls.values():
++ for idl in list(manager.idls.values()):
+ fh.write(include_tmpl % ("bt", idl['root']))
+ fh.write(",\n")
+ fh.write("]\n")
+diff --git a/python/mozbuild/mozbuild/backend/configenvironment.py b/python/mozbuild/mozbuild/backend/configenvironment.py
+index 3676a7d18..f0896cea4 100644
+--- a/python/mozbuild/mozbuild/backend/configenvironment.py
++++ b/python/mozbuild/mozbuild/backend/configenvironment.py
+@@ -2,14 +2,14 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import
++
+
+ import os
+ import sys
+ import json
+
+ from collections import Iterable, OrderedDict
+-from types import StringTypes, ModuleType
++from types import ModuleType
+
+ import mozpack.path as mozpath
+
+@@ -22,7 +22,7 @@ from mozbuild.shellutil import quote as shell_quote
+
+
+ if sys.version_info.major == 2:
+- text_type = unicode
++ text_type = str
+ else:
+ text_type = str
+
+@@ -151,7 +151,7 @@ class ConfigEnvironment(object):
+ shell_quote(self.defines[name]).replace('$', '$$'))
+ for name in sorted(global_defines)])
+ def serialize(name, obj):
+- if isinstance(obj, StringTypes):
++ if isinstance(obj, str):
+ return obj
+ if isinstance(obj, Iterable):
+ return ' '.join(obj)
+@@ -185,8 +185,8 @@ class ConfigEnvironment(object):
+ except UnicodeDecodeError:
+ return v.decode('utf-8', 'replace')
+
+- for k, v in self.substs.items():
+- if not isinstance(v, StringTypes):
++ for k, v in list(self.substs.items()):
++ if not isinstance(v, str):
+ if isinstance(v, Iterable):
+ type(v)(decode(i) for i in v)
+ elif not isinstance(v, text_type):
+@@ -255,7 +255,7 @@ class PartialConfigDict(object):
+ existing_files = self._load_config_track()
+
+ new_files = set()
+- for k, v in values.iteritems():
++ for k, v in values.items():
+ new_files.add(self._write_file(k, v))
+
+ for filename in existing_files - new_files:
+diff --git a/python/mozbuild/mozbuild/backend/fastermake.py b/python/mozbuild/mozbuild/backend/fastermake.py
+index b029aa10f..b66ade64f 100644
+--- a/python/mozbuild/mozbuild/backend/fastermake.py
++++ b/python/mozbuild/mozbuild/backend/fastermake.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, unicode_literals, print_function
++
+
+ from mozbuild.backend.base import PartialBackend
+ from mozbuild.backend.common import CommonBackend
+@@ -140,7 +140,7 @@ class FasterMakeBackend(CommonBackend, PartialBackend):
+ # Add information for chrome manifest generation
+ manifest_targets = []
+
+- for target, entries in self._manifest_entries.iteritems():
++ for target, entries in self._manifest_entries.items():
+ manifest_targets.append(target)
+ install_target = mozpath.basedir(target, install_manifests_bases)
+ self._install_manifests[install_target].add_content(
+@@ -152,13 +152,13 @@ class FasterMakeBackend(CommonBackend, PartialBackend):
+ % ' '.join(self._install_manifests.keys()))
+
+ # Add dependencies we infered:
+- for target, deps in self._dependencies.iteritems():
++ for target, deps in self._dependencies.items():
+ mk.create_rule([target]).add_dependencies(
+ '$(TOPOBJDIR)/%s' % d for d in deps)
+
+ mk.add_statement('include $(TOPSRCDIR)/config/faster/rules.mk')
+
+- for base, install_manifest in self._install_manifests.iteritems():
++ for base, install_manifest in self._install_manifests.items():
+ with self._write_file(
+ mozpath.join(self.environment.topobjdir, 'faster',
+ 'install_%s' % base.replace('/', '_'))) as fh:
+@@ -167,7 +167,7 @@ class FasterMakeBackend(CommonBackend, PartialBackend):
+ # For artifact builds only, write a single unified manifest for consumption by |mach watch|.
+ if self.environment.is_artifact_build:
+ unified_manifest = InstallManifest()
+- for base, install_manifest in self._install_manifests.iteritems():
++ for base, install_manifest in self._install_manifests.items():
+ # Expect 'dist/bin/**', which includes 'dist/bin' with no trailing slash.
+ assert base.startswith('dist/bin')
+ base = base[len('dist/bin'):]
+diff --git a/python/mozbuild/mozbuild/backend/recursivemake.py b/python/mozbuild/mozbuild/backend/recursivemake.py
+index dd9020d62..aa89cc297 100644
+--- a/python/mozbuild/mozbuild/backend/recursivemake.py
++++ b/python/mozbuild/mozbuild/backend/recursivemake.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, unicode_literals
++
+
+ import logging
+ import os
+@@ -12,7 +12,7 @@ from collections import (
+ defaultdict,
+ namedtuple,
+ )
+-from StringIO import StringIO
++from io import StringIO
+ from itertools import chain
+
+ from mozpack.manifests import (
+@@ -80,75 +80,76 @@ from ..util import (
+ )
+ from ..makeutil import Makefile
+ from mozbuild.shellutil import quote as shell_quote
++from functools import reduce
+
+ MOZBUILD_VARIABLES = [
+- b'ASFLAGS',
+- b'CMSRCS',
+- b'CMMSRCS',
+- b'CPP_UNIT_TESTS',
+- b'DIRS',
+- b'DIST_INSTALL',
+- b'EXTRA_DSO_LDOPTS',
+- b'EXTRA_JS_MODULES',
+- b'EXTRA_PP_COMPONENTS',
+- b'EXTRA_PP_JS_MODULES',
+- b'FORCE_SHARED_LIB',
+- b'FORCE_STATIC_LIB',
+- b'FINAL_LIBRARY',
+- b'HOST_CFLAGS',
+- b'HOST_CSRCS',
+- b'HOST_CMMSRCS',
+- b'HOST_CXXFLAGS',
+- b'HOST_EXTRA_LIBS',
+- b'HOST_LIBRARY_NAME',
+- b'HOST_PROGRAM',
+- b'HOST_SIMPLE_PROGRAMS',
+- b'JAR_MANIFEST',
+- b'JAVA_JAR_TARGETS',
+- b'LIBRARY_NAME',
+- b'LIBS',
+- b'MAKE_FRAMEWORK',
+- b'MODULE',
+- b'NO_DIST_INSTALL',
+- b'NO_EXPAND_LIBS',
+- b'NO_INTERFACES_MANIFEST',
+- b'NO_JS_MANIFEST',
+- b'OS_LIBS',
+- b'PARALLEL_DIRS',
+- b'PREF_JS_EXPORTS',
+- b'PROGRAM',
+- b'RESOURCE_FILES',
+- b'SHARED_LIBRARY_LIBS',
+- b'SHARED_LIBRARY_NAME',
+- b'SIMPLE_PROGRAMS',
+- b'SONAME',
+- b'STATIC_LIBRARY_NAME',
+- b'TEST_DIRS',
+- b'TOOL_DIRS',
++ 'ASFLAGS',
++ 'CMSRCS',
++ 'CMMSRCS',
++ 'CPP_UNIT_TESTS',
++ 'DIRS',
++ 'DIST_INSTALL',
++ 'EXTRA_DSO_LDOPTS',
++ 'EXTRA_JS_MODULES',
++ 'EXTRA_PP_COMPONENTS',
++ 'EXTRA_PP_JS_MODULES',
++ 'FORCE_SHARED_LIB',
++ 'FORCE_STATIC_LIB',
++ 'FINAL_LIBRARY',
++ 'HOST_CFLAGS',
++ 'HOST_CSRCS',
++ 'HOST_CMMSRCS',
++ 'HOST_CXXFLAGS',
++ 'HOST_EXTRA_LIBS',
++ 'HOST_LIBRARY_NAME',
++ 'HOST_PROGRAM',
++ 'HOST_SIMPLE_PROGRAMS',
++ 'JAR_MANIFEST',
++ 'JAVA_JAR_TARGETS',
++ 'LIBRARY_NAME',
++ 'LIBS',
++ 'MAKE_FRAMEWORK',
++ 'MODULE',
++ 'NO_DIST_INSTALL',
++ 'NO_EXPAND_LIBS',
++ 'NO_INTERFACES_MANIFEST',
++ 'NO_JS_MANIFEST',
++ 'OS_LIBS',
++ 'PARALLEL_DIRS',
++ 'PREF_JS_EXPORTS',
++ 'PROGRAM',
++ 'RESOURCE_FILES',
++ 'SHARED_LIBRARY_LIBS',
++ 'SHARED_LIBRARY_NAME',
++ 'SIMPLE_PROGRAMS',
++ 'SONAME',
++ 'STATIC_LIBRARY_NAME',
++ 'TEST_DIRS',
++ 'TOOL_DIRS',
+ # XXX config/Makefile.in specifies this in a make invocation
+ #'USE_EXTENSION_MANIFEST',
+- b'XPCSHELL_TESTS',
+- b'XPIDL_MODULE',
++ 'XPCSHELL_TESTS',
++ 'XPIDL_MODULE',
+ ]
+
+ DEPRECATED_VARIABLES = [
+- b'EXPORT_LIBRARY',
+- b'EXTRA_LIBS',
+- b'HOST_LIBS',
+- b'LIBXUL_LIBRARY',
+- b'MOCHITEST_A11Y_FILES',
+- b'MOCHITEST_BROWSER_FILES',
+- b'MOCHITEST_BROWSER_FILES_PARTS',
+- b'MOCHITEST_CHROME_FILES',
+- b'MOCHITEST_FILES',
+- b'MOCHITEST_FILES_PARTS',
+- b'MOCHITEST_METRO_FILES',
+- b'MOCHITEST_ROBOCOP_FILES',
+- b'MODULE_OPTIMIZE_FLAGS',
+- b'MOZ_CHROME_FILE_FORMAT',
+- b'SHORT_LIBNAME',
+- b'TESTING_JS_MODULES',
+- b'TESTING_JS_MODULE_DIR',
++ 'EXPORT_LIBRARY',
++ 'EXTRA_LIBS',
++ 'HOST_LIBS',
++ 'LIBXUL_LIBRARY',
++ 'MOCHITEST_A11Y_FILES',
++ 'MOCHITEST_BROWSER_FILES',
++ 'MOCHITEST_BROWSER_FILES_PARTS',
++ 'MOCHITEST_CHROME_FILES',
++ 'MOCHITEST_FILES',
++ 'MOCHITEST_FILES_PARTS',
++ 'MOCHITEST_METRO_FILES',
++ 'MOCHITEST_ROBOCOP_FILES',
++ 'MODULE_OPTIMIZE_FLAGS',
++ 'MOZ_CHROME_FILE_FORMAT',
++ 'SHORT_LIBNAME',
++ 'TESTING_JS_MODULES',
++ 'TESTING_JS_MODULE_DIR',
+ ]
+
+ MOZBUILD_VARIABLES_MESSAGE = 'It should only be defined in moz.build files.'
+@@ -207,7 +208,7 @@ class BackendMakeFile(object):
+ self.fh.write(buf)
+
+ def write_once(self, buf):
+- if isinstance(buf, unicode):
++ if isinstance(buf, str):
+ buf = buf.encode('utf-8')
+ if b'\n' + buf not in self.fh.getvalue():
+ self.write(buf)
+@@ -280,7 +281,7 @@ class RecursiveMakeTraversal(object):
+ Helper function to call a filter from compute_dependencies and
+ traverse.
+ """
+- return filter(current, self.get_subdirs(current))
++ return list(filter(current, self.get_subdirs(current)))
+
+ def compute_dependencies(self, filter=None):
+ """
+@@ -710,7 +711,7 @@ class RecursiveMakeBackend(CommonBackend):
+ convenience variables, and the other dependency definitions for a
+ hopefully proper directory traversal.
+ """
+- for tier, no_skip in self._no_skip.items():
++ for tier, no_skip in list(self._no_skip.items()):
+ self.log(logging.DEBUG, 'fill_root_mk', {
+ 'number': len(no_skip), 'tier': tier
+ }, 'Using {number} directories during {tier}')
+@@ -757,7 +758,7 @@ class RecursiveMakeBackend(CommonBackend):
+ for tier, filter in filters:
+ main, all_deps = \
+ self._traversal.compute_dependencies(filter)
+- for dir, deps in all_deps.items():
++ for dir, deps in list(all_deps.items()):
+ if deps is not None or (dir in self._idl_dirs \
+ and tier == 'export'):
+ rule = root_deps_mk.create_rule(['%s/%s' % (dir, tier)])
+@@ -770,7 +771,7 @@ class RecursiveMakeBackend(CommonBackend):
+ rule.add_dependencies('%s/%s' % (d, tier) for d in main)
+
+ all_compile_deps = reduce(lambda x,y: x|y,
+- self._compile_graph.values()) if self._compile_graph else set()
++ list(self._compile_graph.values())) if self._compile_graph else set()
+ # Include the following as dependencies of the top recursion target for
+ # compilation:
+ # - nodes that are not dependended upon by anything. Typically, this
+@@ -783,7 +784,7 @@ class RecursiveMakeBackend(CommonBackend):
+ # as direct dependencies of the top recursion target, to somehow
+ # prioritize them.
+ # 1. See bug 1262241 comment 5.
+- compile_roots = [t for t, deps in self._compile_graph.iteritems()
++ compile_roots = [t for t, deps in list(self._compile_graph.items())
+ if not deps or t not in all_compile_deps]
+
+ rule = root_deps_mk.create_rule(['recurse_compile'])
+@@ -845,14 +846,14 @@ class RecursiveMakeBackend(CommonBackend):
+ rule.add_dependencies(['$(CURDIR)/%: %'])
+
+ def _check_blacklisted_variables(self, makefile_in, makefile_content):
+- if b'EXTERNALLY_MANAGED_MAKE_FILE' in makefile_content:
++ if 'EXTERNALLY_MANAGED_MAKE_FILE' in makefile_content:
+ # Bypass the variable restrictions for externally managed makefiles.
+ return
+
+ for l in makefile_content.splitlines():
+ l = l.strip()
+ # Don't check comments
+- if l.startswith(b'#'):
++ if l.startswith('#'):
+ continue
+ for x in chain(MOZBUILD_VARIABLES, DEPRECATED_VARIABLES):
+ if x not in l:
+@@ -909,11 +910,11 @@ class RecursiveMakeBackend(CommonBackend):
+ # Directories with a Makefile containing a tools target, or
+ # XPI_PKGNAME or INSTALL_EXTENSION_ID can't be skipped and
+ # must run during the 'tools' tier.
+- for t in (b'XPI_PKGNAME', b'INSTALL_EXTENSION_ID',
+- b'tools'):
++ for t in ('XPI_PKGNAME', 'INSTALL_EXTENSION_ID',
++ 'tools'):
+ if t not in content:
+ continue
+- if t == b'tools' and not re.search('(?:^|\s)tools.*::', content, re.M):
++ if t == 'tools' and not re.search('(?:^|\s)tools.*::', content, re.M):
+ continue
+ if objdir == self.environment.topobjdir:
+ continue
+@@ -933,7 +934,7 @@ class RecursiveMakeBackend(CommonBackend):
+ self._fill_root_mk()
+
+ # Make the master test manifest files.
+- for flavor, t in self._test_manifests.items():
++ for flavor, t in list(self._test_manifests.items()):
+ install_prefix, manifests = t
+ manifest_stem = mozpath.join(install_prefix, '%s.ini' % flavor)
+ self._write_master_test_manifest(mozpath.join(
+@@ -1039,7 +1040,7 @@ class RecursiveMakeBackend(CommonBackend):
+ for p in ('Makefile', 'backend.mk', '.deps/.mkdir.done'):
+ build_files.add_optional_exists(p)
+
+- for idl in manager.idls.values():
++ for idl in list(manager.idls.values()):
+ self._install_manifests['dist_idl'].add_link(idl['source'],
+ idl['basename'])
+ self._install_manifests['dist_include'].add_optional_exists('%s.h'
+@@ -1086,7 +1087,7 @@ class RecursiveMakeBackend(CommonBackend):
+
+ interfaces_manifests = []
+ dist_dir = mozpath.join(self.environment.topobjdir, 'dist')
+- for manifest, entries in manager.interface_manifests.items():
++ for manifest, entries in list(manager.interface_manifests.items()):
+ interfaces_manifests.append(mozpath.join('$(DEPTH)', manifest))
+ for xpt in sorted(entries):
+ registered_xpt_files.add(mozpath.join(
+@@ -1194,7 +1195,7 @@ class RecursiveMakeBackend(CommonBackend):
+ # Don't allow files to be defined multiple times unless it is allowed.
+ # We currently allow duplicates for non-test files or test files if
+ # the manifest is listed as a duplicate.
+- for source, (dest, is_test) in obj.installs.items():
++ for source, (dest, is_test) in list(obj.installs.items()):
+ try:
+ self._install_manifests['_test_files'].add_link(source, dest)
+ except ValueError:
+@@ -1558,7 +1559,7 @@ class RecursiveMakeBackend(CommonBackend):
+ man_dir = mozpath.join(self.environment.topobjdir, '_build_manifests',
+ dest)
+
+- for k, manifest in manifests.items():
++ for k, manifest in list(manifests.items()):
+ with self._write_file(mozpath.join(man_dir, k)) as fh:
+ manifest.write(fileobj=fh)
+
+@@ -1593,20 +1594,20 @@ class RecursiveMakeBackend(CommonBackend):
+ pp.context.update(extra)
+ if not pp.context.get('autoconfmk', ''):
+ pp.context['autoconfmk'] = 'autoconf.mk'
+- pp.handleLine(b'# THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT MODIFY BY HAND.\n');
+- pp.handleLine(b'DEPTH := @DEPTH@\n')
+- pp.handleLine(b'topobjdir := @topobjdir@\n')
+- pp.handleLine(b'topsrcdir := @top_srcdir@\n')
+- pp.handleLine(b'srcdir := @srcdir@\n')
+- pp.handleLine(b'VPATH := @srcdir@\n')
+- pp.handleLine(b'relativesrcdir := @relativesrcdir@\n')
+- pp.handleLine(b'include $(DEPTH)/config/@autoconfmk@\n')
++ pp.handleLine('# THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT MODIFY BY HAND.\n');
++ pp.handleLine('DEPTH := @DEPTH@\n')
++ pp.handleLine('topobjdir := @topobjdir@\n')
++ pp.handleLine('topsrcdir := @top_srcdir@\n')
++ pp.handleLine('srcdir := @srcdir@\n')
++ pp.handleLine('VPATH := @srcdir@\n')
++ pp.handleLine('relativesrcdir := @relativesrcdir@\n')
++ pp.handleLine('include $(DEPTH)/config/@autoconfmk@\n')
+ if not stub:
+ pp.do_include(obj.input_path)
+ # Empty line to avoid failures when last line in Makefile.in ends
+ # with a backslash.
+- pp.handleLine(b'\n')
+- pp.handleLine(b'include $(topsrcdir)/config/recurse.mk\n')
++ pp.handleLine('\n')
++ pp.handleLine('include $(topsrcdir)/config/recurse.mk\n')
+ if not stub:
+ # Adding the Makefile.in here has the desired side-effect
+ # that if the Makefile.in disappears, this will force
+diff --git a/python/mozbuild/mozbuild/config_status.py b/python/mozbuild/mozbuild/config_status.py
+index d46f1332d..a9a27a699 100644
+--- a/python/mozbuild/mozbuild/config_status.py
++++ b/python/mozbuild/mozbuild/config_status.py
+@@ -77,6 +77,7 @@ def config_status(topobjdir='.', topsrcdir='.', defines=None,
+ See build/autoconf/config.status.m4.
+ '''
+
++ print("config_status started")
+ if 'CONFIG_FILES' in os.environ:
+ raise Exception('Using the CONFIG_FILES environment variable is not '
+ 'supported.')
+@@ -119,7 +120,7 @@ def config_status(topobjdir='.', topsrcdir='.', defines=None,
+ if 'WRITE_MOZINFO' in os.environ:
+ write_mozinfo(os.path.join(topobjdir, 'mozinfo.json'), env, os.environ)
+
+- cpu_start = time.clock()
++ cpu_start = time.perf_counter()
+ time_start = time.time()
+
+ # Make appropriate backend instances, defaulting to RecursiveMakeBackend,
+@@ -155,7 +156,7 @@ def config_status(topobjdir='.', topsrcdir='.', defines=None,
+ summary = obj.gyp_summary()
+ print(summary, file=sys.stderr)
+
+- cpu_time = time.clock() - cpu_start
++ cpu_time = time.perf_counter() - cpu_start
+ wall_time = time.time() - time_start
+ efficiency = cpu_time / wall_time if wall_time else 100
+ untracked = wall_time - execution_time
+@@ -179,3 +180,5 @@ def config_status(topobjdir='.', topsrcdir='.', defines=None,
+ # Advertise Android Studio if it is appropriate.
+ if MachCommandConditions.is_android(env):
+ print(ANDROID_IDE_ADVERTISEMENT)
++
++ print("config_status finished")
+diff --git a/python/mozbuild/mozbuild/configure/__init__.py b/python/mozbuild/mozbuild/configure/__init__.py
+index d03615707..13d623d4f 100644
+--- a/python/mozbuild/mozbuild/configure/__init__.py
++++ b/python/mozbuild/mozbuild/configure/__init__.py
+@@ -2,9 +2,9 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, print_function, unicode_literals
+
+-import __builtin__
++
++import builtins
+ import inspect
+ import logging
+ import os
+@@ -38,6 +38,8 @@ from mozbuild.util import (
+
+ import mozpack.path as mozpath
+
++import traceback
++
+
+ class ConfigureError(Exception):
+ pass
+@@ -69,7 +71,7 @@ class SandboxDependsFunction(object):
+ def __getattr__(self, key):
+ return self._getattr(key).sandboxed
+
+- def __nonzero__(self):
++ def __bool__(self):
+ raise ConfigureError(
+ 'Cannot do boolean operations on @depends functions.')
+
+@@ -96,6 +98,7 @@ class DependsFunction(object):
+ sandbox._value_for(self)
+ elif not sandbox._help:
+ sandbox._execution_queue.append((sandbox._value_for, (self,)))
++ sandbox.tasks_debug_out("DependsFunction.__init %s" % func.__name__)
+
+ @property
+ def name(self):
+@@ -206,6 +209,15 @@ class CombinedDependsFunction(DependsFunction):
+ def __ne__(self, other):
+ return not self == other
+
++ def __hash__(self):
++ # This was one was taken from [1] initially. Should not have done that:
++ # it causes explosion of ConfigureSandbox._execution_queue with 100%
++ # CPU load and eating all avaliable memory...
++ #
++ # [1] https://code.foxkit.us/adelie/packages/blob/f2b5773da19ab397fbe64fd32dacc383cfe4cd77/user/mozjs/python3.patch#L8068
++ return hash((self._name, tuple(self.dependencies)))
++
++
+ class SandboxedGlobal(dict):
+ '''Identifiable dict type for use as function global'''
+
+@@ -253,11 +265,12 @@ class ConfigureSandbox(dict):
+ # The default set of builtins. We expose unicode as str to make sandboxed
+ # files more python3-ready.
+ BUILTINS = ReadOnlyDict({
+- b: getattr(__builtin__, b)
++ b: getattr(builtins, b)
+ for b in ('None', 'False', 'True', 'int', 'bool', 'any', 'all', 'len',
+ 'list', 'tuple', 'set', 'dict', 'isinstance', 'getattr',
+- 'hasattr', 'enumerate', 'range', 'zip')
+- }, __import__=forbidden_import, str=unicode)
++ 'hasattr', 'enumerate', 'range', 'zip', '__build_class__',
++ 'bytes', 'exec')
++ }, __import__=forbidden_import, str=str)
+
+ # Expose a limited set of functions from os.path
+ OS = ReadOnlyNamespace(path=ReadOnlyNamespace(**{
+@@ -294,6 +307,11 @@ class ConfigureSandbox(dict):
+ # Queue of functions to execute, with their arguments
+ self._execution_queue = []
+
++ # For debugging: Show number of tasks started in run() / added elsewhere
++ # and some additional info
++ self.task_debug = False # set True to enable
++ self.tasks_started = 0
++
+ # Store the `when`s associated to some options.
+ self._conditions = {}
+
+@@ -331,7 +349,7 @@ class ConfigureSandbox(dict):
+ return method
+ def wrapped(*args, **kwargs):
+ out_args = [
+- arg.decode(encoding) if isinstance(arg, str) else arg
++ arg.decode(encoding) if isinstance(arg, bytes) else arg
+ for arg in args
+ ]
+ return method(*out_args, **kwargs)
+@@ -360,6 +378,14 @@ class ConfigureSandbox(dict):
+ handler.setFormatter(formatter)
+ logger.addHandler(handler)
+
++ def tasks_debug_out(self, text):
++ if self.task_debug:
++ print("%s / queued %i / done %i" %(text, len(self._execution_queue), self.tasks_started))
++ #if len(self._execution_queue) > 5000:
++ # traceback.print_stack(file=sys.stdout)
++ #if len(self._execution_queue) > 5010:
++ # raise Exception("Too many tasks")
++
+ def include_file(self, path):
+ '''Include one file in the sandbox. Users of this class probably want
+ to use `run` instead.
+@@ -380,6 +406,9 @@ class ConfigureSandbox(dict):
+ if path in self._all_paths:
+ raise ConfigureError(
+ 'Cannot include `%s` because it was included already.' % path)
++
++ if self.task_debug:
++ print("include_file", path)
+ self._paths.append(path)
+ self._all_paths.add(path)
+
+@@ -398,7 +427,7 @@ class ConfigureSandbox(dict):
+ if path:
+ self.include_file(path)
+
+- for option in self._options.itervalues():
++ for option in self._options.values():
+ # All options must be referenced by some @depends function
+ if option not in self._seen:
+ raise ConfigureError(
+@@ -425,6 +454,8 @@ class ConfigureSandbox(dict):
+
+ # Run the execution queue
+ for func, args in self._execution_queue:
++ self.tasks_started += 1
++ self.tasks_debug_out("ConfigureSandbox.run(%s)" % func.__name__)
+ func(*args)
+
+ if self._help:
+@@ -504,7 +535,7 @@ class ConfigureSandbox(dict):
+ value = PositiveOptionValue()
+ elif value is False or value == ():
+ value = NegativeOptionValue()
+- elif isinstance(value, types.StringTypes):
++ elif isinstance(value, (str,)):
+ value = PositiveOptionValue((value,))
+ elif isinstance(value, tuple):
+ value = PositiveOptionValue(value)
+@@ -544,7 +575,7 @@ class ConfigureSandbox(dict):
+ return value
+
+ def _dependency(self, arg, callee_name, arg_name=None):
+- if isinstance(arg, types.StringTypes):
++ if isinstance(arg, (str,)):
+ prefix, name, values = Option.split_option(arg)
+ if values != ():
+ raise ConfigureError("Option must not contain an '='")
+@@ -608,7 +639,7 @@ class ConfigureSandbox(dict):
+ '''
+ when = self._normalize_when(kwargs.get('when'), 'option')
+ args = [self._resolve(arg) for arg in args]
+- kwargs = {k: self._resolve(v) for k, v in kwargs.iteritems()
++ kwargs = {k: self._resolve(v) for k, v in kwargs.items()
+ if k != 'when'}
+ option = Option(*args, **kwargs)
+ if when:
+@@ -689,7 +720,7 @@ class ConfigureSandbox(dict):
+ with self.only_when_impl(when):
+ what = self._resolve(what)
+ if what:
+- if not isinstance(what, types.StringTypes):
++ if not isinstance(what, (str,)):
+ raise TypeError("Unexpected type: '%s'" % type(what).__name__)
+ self.include_file(what)
+
+@@ -707,7 +738,7 @@ class ConfigureSandbox(dict):
+ (k[:-len('_impl')], getattr(self, k))
+ for k in dir(self) if k.endswith('_impl') and k != 'template_impl'
+ )
+- glob.update((k, v) for k, v in self.iteritems() if k not in glob)
++ glob.update((k, v) for k, v in self.items() if k not in glob)
+
+ # Any function argument to the template must be prepared to be sandboxed.
+ # If the template itself returns a function (in which case, it's very
+@@ -731,7 +762,7 @@ class ConfigureSandbox(dict):
+ def wrapper(*args, **kwargs):
+ args = [maybe_prepare_function(arg) for arg in args]
+ kwargs = {k: maybe_prepare_function(v)
+- for k, v in kwargs.iteritems()}
++ for k, v in kwargs.items()}
+ ret = template(*args, **kwargs)
+ if isfunction(ret):
+ # We can't expect the sandboxed code to think about all the
+@@ -766,7 +797,7 @@ class ConfigureSandbox(dict):
+ for value, required in (
+ (_import, True), (_from, False), (_as, False)):
+
+- if not isinstance(value, types.StringTypes) and (
++ if not isinstance(value, (str,)) and (
+ required or value is not None):
+ raise TypeError("Unexpected type: '%s'" % type(value).__name__)
+ if value is not None and not self.RE_MODULE.match(value):
+@@ -807,7 +838,7 @@ class ConfigureSandbox(dict):
+ # Special case for the open() builtin, because otherwise, using it
+ # fails with "IOError: file() constructor not accessible in
+ # restricted mode"
+- if what == '__builtin__.open':
++ if what == 'builtins.open':
+ return lambda *args, **kwargs: open(*args, **kwargs)
+ # Until this proves to be a performance problem, just construct an
+ # import statement and execute it.
+@@ -829,7 +860,7 @@ class ConfigureSandbox(dict):
+ name = self._resolve(name, need_help_dependency=False)
+ if name is None:
+ return
+- if not isinstance(name, types.StringTypes):
++ if not isinstance(name, (str,)):
+ raise TypeError("Unexpected type: '%s'" % type(name).__name__)
+ if name in data:
+ raise ConfigureError(
+@@ -850,6 +881,7 @@ class ConfigureSandbox(dict):
+
+ self._execution_queue.append((
+ self._resolve_and_set, (self._config, name, value, when)))
++ self.tasks_debug_out("ConfigureSandbox.set_config_impl / %s(%s" % (name, value))
+
+ def set_define_impl(self, name, value, when=None):
+ '''Implementation of set_define().
+@@ -864,6 +896,7 @@ class ConfigureSandbox(dict):
+ defines = self._config.setdefault('DEFINES', {})
+ self._execution_queue.append((
+ self._resolve_and_set, (defines, name, value, when)))
++ self.tasks_debug_out("ConfigureSandbox.set_define_impl / %s(%s)" % (name, value))
+
+ def imply_option_impl(self, option, value, reason=None, when=None):
+ '''Implementation of imply_option().
+@@ -922,7 +955,7 @@ class ConfigureSandbox(dict):
+ if isinstance(possible_reasons[0], Option):
+ reason = possible_reasons[0]
+ if not reason and (isinstance(value, (bool, tuple)) or
+- isinstance(value, types.StringTypes)):
++ isinstance(value, (str,))):
+ # A reason can be provided automatically when imply_option
+ # is called with an immediate value.
+ _, filename, line, _, _, _ = inspect.stack()[1]
+@@ -955,10 +988,10 @@ class ConfigureSandbox(dict):
+ if not inspect.isfunction(func):
+ raise TypeError("Unexpected type: '%s'" % type(func).__name__)
+ if func in self._prepared_functions:
+- return func, func.func_globals
++ return func, func.__globals__
+
+ glob = SandboxedGlobal(
+- (k, v) for k, v in func.func_globals.iteritems()
++ (k, v) for k, v in func.__globals__.items()
+ if (inspect.isfunction(v) and v not in self._templates) or (
+ inspect.isclass(v) and issubclass(v, Exception))
+ )
+@@ -979,20 +1012,20 @@ class ConfigureSandbox(dict):
+ # Note this is not entirely bullet proof (if the value is e.g. a list,
+ # the list contents could have changed), but covers the bases.
+ closure = None
+- if func.func_closure:
++ if func.__closure__:
+ def makecell(content):
+ def f():
+ content
+- return f.func_closure[0]
++ return f.__closure__[0]
+
+ closure = tuple(makecell(cell.cell_contents)
+- for cell in func.func_closure)
++ for cell in func.__closure__)
+
+ new_func = self.wraps(func)(types.FunctionType(
+- func.func_code,
++ func.__code__,
+ glob,
+ func.__name__,
+- func.func_defaults,
++ func.__defaults__,
+ closure
+ ))
+ @self.wraps(new_func)
+diff --git a/python/mozbuild/mozbuild/configure/check_debug_ranges.py b/python/mozbuild/mozbuild/configure/check_debug_ranges.py
+index c0caa9cc5..a3e1f37e1 100644
+--- a/python/mozbuild/mozbuild/configure/check_debug_ranges.py
++++ b/python/mozbuild/mozbuild/configure/check_debug_ranges.py
+@@ -6,7 +6,7 @@
+ # to a given compilation unit. This is used as a helper to find a bug in some
+ # versions of GNU ld.
+
+-from __future__ import absolute_import
++
+
+ import subprocess
+ import sys
+@@ -45,6 +45,8 @@ def get_range_length(range, debug_ranges):
+ def main(bin, compilation_unit):
+ p = subprocess.Popen(['objdump', '-W', bin], stdout = subprocess.PIPE, stderr = subprocess.PIPE)
+ (out, err) = p.communicate()
++ if isinstance(out, bytes):
++ out = out.decode('utf-8')
+ sections = re.split('\n(Contents of the|The section) ', out)
+ debug_info = [s for s in sections if s.startswith('.debug_info')]
+ debug_ranges = [s for s in sections if s.startswith('.debug_ranges')]
+@@ -59,4 +61,4 @@ def main(bin, compilation_unit):
+
+
+ if __name__ == '__main__':
+- print(main(*sys.argv[1:]))
++ print((main(*sys.argv[1:])))
+diff --git a/python/mozbuild/mozbuild/configure/options.py b/python/mozbuild/mozbuild/configure/options.py
+index 53ae2ae6d..4d80cad86 100644
+--- a/python/mozbuild/mozbuild/configure/options.py
++++ b/python/mozbuild/mozbuild/configure/options.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, print_function, unicode_literals
++
+
+ import os
+ import sys
+@@ -12,7 +12,7 @@ from collections import OrderedDict
+
+ def istupleofstrings(obj):
+ return isinstance(obj, tuple) and len(obj) and all(
+- isinstance(o, types.StringTypes) for o in obj)
++ isinstance(o, (str,)) for o in obj)
+
+
+ class OptionValue(tuple):
+@@ -88,7 +88,7 @@ class PositiveOptionValue(OptionValue):
+ in the form of a tuple for when values are given to the option (in the form
+ --option=value[,value2...].
+ '''
+- def __nonzero__(self):
++ def __bool__(self):
+ return True
+
+
+@@ -113,7 +113,7 @@ class ConflictingOptionError(InvalidOptionError):
+ if format_data:
+ message = message.format(**format_data)
+ super(ConflictingOptionError, self).__init__(message)
+- for k, v in format_data.iteritems():
++ for k, v in format_data.items():
+ setattr(self, k, v)
+
+
+@@ -149,7 +149,7 @@ class Option(object):
+ 'At least an option name or an environment variable name must '
+ 'be given')
+ if name:
+- if not isinstance(name, types.StringTypes):
++ if not isinstance(name, (str,)):
+ raise InvalidOptionError('Option must be a string')
+ if not name.startswith('--'):
+ raise InvalidOptionError('Option must start with `--`')
+@@ -158,7 +158,7 @@ class Option(object):
+ if not name.islower():
+ raise InvalidOptionError('Option must be all lowercase')
+ if env:
+- if not isinstance(env, types.StringTypes):
++ if not isinstance(env, (str,)):
+ raise InvalidOptionError(
+ 'Environment variable name must be a string')
+ if not env.isupper():
+@@ -168,8 +168,8 @@ class Option(object):
+ isinstance(nargs, int) and nargs >= 0):
+ raise InvalidOptionError(
+ "nargs must be a positive integer, '?', '*' or '+'")
+- if (not isinstance(default, types.StringTypes) and
+- not isinstance(default, (bool, types.NoneType)) and
++ if (not isinstance(default, (str,)) and
++ not isinstance(default, (bool, type(None))) and
+ not istupleofstrings(default)):
+ raise InvalidOptionError(
+ 'default must be a bool, a string or a tuple of strings')
+@@ -241,7 +241,7 @@ class Option(object):
+ ', '.join("'%s'" % c for c in choices))
+ elif has_choices:
+ maxargs = self.maxargs
+- if len(choices) < maxargs and maxargs != sys.maxint:
++ if len(choices) < maxargs and maxargs != sys.maxsize:
+ raise InvalidOptionError('Not enough `choices` for `nargs`')
+ self.choices = choices
+ self.help = help
+@@ -255,7 +255,7 @@ class Option(object):
+ where prefix is one of 'with', 'without', 'enable' or 'disable'.
+ The '=values' part is optional. Values are separated with commas.
+ '''
+- if not isinstance(option, types.StringTypes):
++ if not isinstance(option, (str,)):
+ raise InvalidOptionError('Option must be a string')
+
+ elements = option.split('=', 1)
+@@ -308,7 +308,7 @@ class Option(object):
+ def maxargs(self):
+ if isinstance(self.nargs, int):
+ return self.nargs
+- return 1 if self.nargs == '?' else sys.maxint
++ return 1 if self.nargs == '?' else sys.maxsize
+
+ def _validate_nargs(self, num):
+ minargs, maxargs = self.minargs, self.maxargs
+@@ -499,5 +499,5 @@ class CommandLineHelper(object):
+
+ def __iter__(self):
+ for d in (self._args, self._extra_args):
+- for arg, pos in d.itervalues():
++ for arg, pos in d.values():
+ yield arg
+diff --git a/python/mozbuild/mozbuild/configure/util.py b/python/mozbuild/mozbuild/configure/util.py
+index 9d8b2eb0e..a12986e48 100644
+--- a/python/mozbuild/mozbuild/configure/util.py
++++ b/python/mozbuild/mozbuild/configure/util.py
+@@ -77,15 +77,7 @@ class ConfigureOutputHandler(logging.Handler):
+ # Python has this feature where it sets the encoding of pipes to
+ # ascii, which blatantly fails when trying to print out non-ascii.
+ def fix_encoding(fh):
+- try:
+- isatty = fh.isatty()
+- except AttributeError:
+- isatty = True
+-
+- if not isatty:
+- encoding = getpreferredencoding()
+- if encoding:
+- return codecs.getwriter(encoding)(fh)
++ # no magic on oe / python3
+ return fh
+
+ self._stdout = fix_encoding(stdout)
+@@ -200,7 +192,7 @@ class LineIO(object):
+ self._errors = errors
+
+ def write(self, buf):
+- if self._encoding and isinstance(buf, str):
++ if self._encoding and isinstance(buf, bytes):
+ buf = buf.decode(self._encoding, self._errors)
+ lines = buf.splitlines()
+ if not lines:
+diff --git a/python/mozbuild/mozbuild/controller/building.py b/python/mozbuild/mozbuild/controller/building.py
+index d5af532f7..e9810fe58 100644
+--- a/python/mozbuild/mozbuild/controller/building.py
++++ b/python/mozbuild/mozbuild/controller/building.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, unicode_literals
++
+
+ import errno
+ import getpass
+@@ -146,7 +146,7 @@ class TierStatus(object):
+ """
+ o = []
+
+- for tier, state in self.tiers.items():
++ for tier, state in list(self.tiers.items()):
+ t_entry = dict(
+ name=tier,
+ start=state['begin_time'],
+@@ -574,7 +574,7 @@ class BuildProgressFooter(Footer):
+
+ def __init__(self, terminal, monitor):
+ Footer.__init__(self, terminal)
+- self.tiers = monitor.tiers.tier_status.viewitems()
++ self.tiers = monitor.tiers.tier_status.items()
+
+ def draw(self):
+ """Draws this footer in the terminal."""
+@@ -911,8 +911,8 @@ class CCacheStats(object):
+
+ return '\n'.join(lines)
+
+- def __nonzero__(self):
+- relative_values = [v for k, v in self._values.items()
++ def __bool__(self):
++ relative_values = [v for k, v in list(self._values.items())
+ if k not in self.ABSOLUTE_KEYS]
+ return (all(v >= 0 for v in relative_values) and
+ any(v > 0 for v in relative_values))
+@@ -1156,7 +1156,7 @@ class BuildDriver(MozbuildObject):
+
+ high_finder, finder_percent = monitor.have_high_finder_usage()
+ if high_finder:
+- print(FINDER_SLOW_MESSAGE % finder_percent)
++ print((FINDER_SLOW_MESSAGE % finder_percent))
+
+ ccache_end = monitor.ccache_stats()
+
+@@ -1276,8 +1276,8 @@ class BuildDriver(MozbuildObject):
+ """Install test files."""
+
+ if self.is_clobber_needed():
+- print(INSTALL_TESTS_CLOBBER.format(
+- clobber_file=os.path.join(self.topobjdir, 'CLOBBER')))
++ print((INSTALL_TESTS_CLOBBER.format(
++ clobber_file=os.path.join(self.topobjdir, 'CLOBBER'))))
+ sys.exit(1)
+
+ if not test_objs:
+diff --git a/python/mozbuild/mozbuild/frontend/context.py b/python/mozbuild/mozbuild/frontend/context.py
+index fbdbefc1d..1aef6a65a 100644
+--- a/python/mozbuild/mozbuild/frontend/context.py
++++ b/python/mozbuild/mozbuild/frontend/context.py
+@@ -14,7 +14,7 @@ If you are looking for the absolute authority on what moz.build files can
+ contain, you've come to the right place.
+ """
+
+-from __future__ import absolute_import, unicode_literals
++
+
+ import os
+
+@@ -237,15 +237,15 @@ class Context(KeyedDefaultDict):
+ This function is transactional: if setitem fails for one of the values,
+ the context is not updated at all."""
+ if isinstance(iterable, dict):
+- iterable = iterable.items()
++ iterable = list(iterable.items())
+
+ update = {}
+- for key, value in itertools.chain(iterable, kwargs.items()):
++ for key, value in itertools.chain(iterable, list(kwargs.items())):
+ stored_type = self._validate(key, value)
+ # Don't create an instance of stored_type if coercion is needed,
+ # until all values are validated.
+ update[key] = (value, stored_type)
+- for key, (value, stored_type) in update.items():
++ for key, (value, stored_type) in list(update.items()):
+ if not isinstance(value, stored_type):
+ update[key] = stored_type(value)
+ else:
+@@ -311,7 +311,7 @@ class BaseCompileFlags(ContextDerivedValue, dict):
+ # a template were set and which were provided as defaults.
+ template_name = getattr(context, 'template', None)
+ if template_name in (None, 'Gyp'):
+- dict.__init__(self, ((k, v if v is None else TypedList(unicode)(v))
++ dict.__init__(self, ((k, v if v is None else TypedList(str)(v))
+ for k, v, _ in self.flag_variables))
+ else:
+ dict.__init__(self)
+@@ -520,13 +520,13 @@ class CompileFlags(BaseCompileFlags):
+ if key in self and self[key] is None:
+ raise ValueError('`%s` may not be set in COMPILE_FLAGS from moz.build, this '
+ 'value is resolved from the emitter.' % key)
+- if not (isinstance(value, list) and all(isinstance(v, basestring) for v in value)):
++ if not (isinstance(value, list) and all(isinstance(v, str) for v in value)):
+ raise ValueError('A list of strings must be provided as a value for a '
+ 'compile flags category.')
+ dict.__setitem__(self, key, value)
+
+
+-class FinalTargetValue(ContextDerivedValue, unicode):
++class FinalTargetValue(ContextDerivedValue, str):
+ def __new__(cls, context, value=""):
+ if not value:
+ value = 'dist/'
+@@ -536,7 +536,7 @@ class FinalTargetValue(ContextDerivedValue, unicode):
+ value += 'bin'
+ if context['DIST_SUBDIR']:
+ value += '/' + context['DIST_SUBDIR']
+- return unicode.__new__(cls, value)
++ return str.__new__(cls, value)
+
+
+ def Enum(*values):
+@@ -584,7 +584,7 @@ class PathMeta(type):
+ cls = SourcePath
+ return super(PathMeta, cls).__call__(context, value)
+
+-class Path(ContextDerivedValue, unicode):
++class Path(ContextDerivedValue, str, metaclass=PathMeta):
+ """Stores and resolves a source path relative to a given context
+
+ This class is used as a backing type for some of the sandbox variables.
+@@ -595,7 +595,6 @@ class Path(ContextDerivedValue, unicode):
+ - '!objdir/relative/paths'
+ - '%/filesystem/absolute/paths'
+ """
+- __metaclass__ = PathMeta
+
+ def __new__(cls, context, value=None):
+ return super(Path, cls).__new__(cls, value)
+@@ -612,10 +611,14 @@ class Path(ContextDerivedValue, unicode):
+ """
+ return Path(self.context, mozpath.join(self, *p))
+
++ @staticmethod
++ def cmp(a, b):
++ return (a > b) - (a < b)
++
+ def __cmp__(self, other):
+ if isinstance(other, Path) and self.srcdir != other.srcdir:
+- return cmp(self.full_path, other.full_path)
+- return cmp(unicode(self), other)
++ return self.cmp(self.full_path, other.full_path)
++ return self.cmp(str(self), other)
+
+ # __cmp__ is not enough because unicode has __eq__, __ne__, etc. defined
+ # and __cmp__ is only used for those when they don't exist.
+@@ -773,7 +776,7 @@ def ContextDerivedTypedRecord(*fields):
+ __slots__ = tuple([name for name, _ in fields])
+
+ def __init__(self, context):
+- for fname, ftype in self._fields.items():
++ for fname, ftype in list(self._fields.items()):
+ if issubclass(ftype, ContextDerivedValue):
+ setattr(self, fname, self._fields[fname](context))
+ else:
+@@ -909,8 +912,8 @@ def TypedListWithAction(typ, action):
+ return _TypedListWithAction
+
+ WebPlatformTestManifest = TypedNamedTuple("WebPlatformTestManifest",
+- [("manifest_path", unicode),
+- ("test_root", unicode)])
++ [("manifest_path", str),
++ ("test_root", str)])
+ ManifestparserManifestList = OrderedPathListWithAction(read_manifestparser_manifest)
+ ReftestManifestList = OrderedPathListWithAction(read_reftest_manifest)
+ WptManifestList = TypedListWithAction(WebPlatformTestManifest, read_wpt_manifest)
+@@ -918,18 +921,18 @@ WptManifestList = TypedListWithAction(WebPlatformTestManifest, read_wpt_manifest
+ OrderedSourceList = ContextDerivedTypedList(SourcePath, StrictOrderingOnAppendList)
+ OrderedTestFlavorList = TypedList(Enum(*all_test_flavors()),
+ StrictOrderingOnAppendList)
+-OrderedStringList = TypedList(unicode, StrictOrderingOnAppendList)
++OrderedStringList = TypedList(str, StrictOrderingOnAppendList)
+ DependentTestsEntry = ContextDerivedTypedRecord(('files', OrderedSourceList),
+ ('tags', OrderedStringList),
+ ('flavors', OrderedTestFlavorList))
+ BugzillaComponent = TypedNamedTuple('BugzillaComponent',
+- [('product', unicode), ('component', unicode)])
++ [('product', str), ('component', str)])
+ SchedulingComponents = ContextDerivedTypedRecord(
+- ('inclusive', TypedList(unicode, StrictOrderingOnAppendList)),
+- ('exclusive', TypedList(unicode, StrictOrderingOnAppendList)))
++ ('inclusive', TypedList(str, StrictOrderingOnAppendList)),
++ ('exclusive', TypedList(str, StrictOrderingOnAppendList)))
+
+ GeneratedFilesList = StrictOrderingOnAppendListWithFlagsFactory({
+- 'script': unicode,
++ 'script': str,
+ 'inputs': list,
+ 'flags': list, })
+
+@@ -1096,7 +1099,7 @@ class Files(SubContext):
+ self.test_tags |= other.test_tags
+ self.test_flavors |= other.test_flavors
+
+- for k, v in other.items():
++ for k, v in list(other.items()):
+ if k == 'IMPACTED_TESTS':
+ self.test_files |= set(mozpath.relpath(e.full_path, e.context.config.topsrcdir)
+ for e in v.files)
+@@ -1154,7 +1157,7 @@ class Files(SubContext):
+
+ bug_components = Counter()
+
+- for f in files.values():
++ for f in list(files.values()):
+ bug_component = f.get('BUG_COMPONENT')
+ if bug_component:
+ bug_components[bug_component] += 1
+@@ -1232,7 +1235,7 @@ VARIABLES = {
+ RustLibrary template instead.
+ """),
+
+- 'RUST_LIBRARY_TARGET_DIR': (unicode, unicode,
++ 'RUST_LIBRARY_TARGET_DIR': (str, str,
+ """Where CARGO_TARGET_DIR should point when compiling this library. If
+ not set, it defaults to the current objdir. It should be a relative path
+ to the current objdir; absolute paths should not be used.
+@@ -1248,7 +1251,7 @@ VARIABLES = {
+ HostRustLibrary template instead.
+ """),
+
+- 'RUST_TEST': (unicode, unicode,
++ 'RUST_TEST': (str, str,
+ """Name of a Rust test to build and run via `cargo test`.
+
+ This variable should not be used directly; you should be using the
+@@ -1487,7 +1490,7 @@ VARIABLES = {
+ """Like ``OBJDIR_FILES``, with preprocessing. Use sparingly.
+ """),
+
+- 'FINAL_LIBRARY': (unicode, unicode,
++ 'FINAL_LIBRARY': (str, str,
+ """Library in which the objects of the current directory will be linked.
+
+ This variable contains the name of a library, defined elsewhere with
+@@ -1528,7 +1531,7 @@ VARIABLES = {
+ with the host compiler.
+ """),
+
+- 'HOST_LIBRARY_NAME': (unicode, unicode,
++ 'HOST_LIBRARY_NAME': (str, str,
+ """Name of target library generated when cross compiling.
+ """),
+
+@@ -1546,7 +1549,7 @@ VARIABLES = {
+ libraries that link into this library via FINAL_LIBRARY.
+ """),
+
+- 'LIBRARY_NAME': (unicode, unicode,
++ 'LIBRARY_NAME': (str, str,
+ """The code name of the library generated for a directory.
+
+ By default STATIC_LIBRARY_NAME and SHARED_LIBRARY_NAME take this name.
+@@ -1558,7 +1561,7 @@ VARIABLES = {
+ ``example/components/xpcomsample.lib`` on Windows.
+ """),
+
+- 'SHARED_LIBRARY_NAME': (unicode, unicode,
++ 'SHARED_LIBRARY_NAME': (str, str,
+ """The name of the static library generated for a directory, if it needs to
+ differ from the library code name.
+
+@@ -1572,7 +1575,7 @@ VARIABLES = {
+ Implies FORCE_SHARED_LIB.
+ """),
+
+- 'STATIC_LIBRARY_NAME': (unicode, unicode,
++ 'STATIC_LIBRARY_NAME': (str, str,
+ """The name of the static library generated for a directory, if it needs to
+ differ from the library code name.
+
+@@ -1604,31 +1607,31 @@ VARIABLES = {
+
+ This variable contains a list of system libaries to link against.
+ """),
+- 'RCFILE': (unicode, unicode,
++ 'RCFILE': (str, str,
+ """The program .rc file.
+
+ This variable can only be used on Windows.
+ """),
+
+- 'RESFILE': (unicode, unicode,
++ 'RESFILE': (str, str,
+ """The program .res file.
+
+ This variable can only be used on Windows.
+ """),
+
+- 'RCINCLUDE': (unicode, unicode,
++ 'RCINCLUDE': (str, str,
+ """The resource script file to be included in the default .res file.
+
+ This variable can only be used on Windows.
+ """),
+
+- 'DEFFILE': (unicode, unicode,
++ 'DEFFILE': (str, str,
+ """The program .def (module definition) file.
+
+ This variable can only be used on Windows.
+ """),
+
+- 'SYMBOLS_FILE': (Path, unicode,
++ 'SYMBOLS_FILE': (Path, str,
+ """A file containing a list of symbols to export from a shared library.
+
+ The given file contains a list of symbols to be exported, and is
+@@ -1649,7 +1652,7 @@ VARIABLES = {
+ ``BIN_SUFFIX``, the name will remain unchanged.
+ """),
+
+- 'SONAME': (unicode, unicode,
++ 'SONAME': (str, str,
+ """The soname of the shared object currently being linked
+
+ soname is the "logical name" of a shared object, often used to provide
+@@ -1719,7 +1722,7 @@ VARIABLES = {
+ ``GENERATED_FILES``.
+ """),
+
+- 'PROGRAM' : (unicode, unicode,
++ 'PROGRAM' : (str, str,
+ """Compiled executable name.
+
+ If the configuration token ``BIN_SUFFIX`` is set, its value will be
+@@ -1727,7 +1730,7 @@ VARIABLES = {
+ ``BIN_SUFFIX``, ``PROGRAM`` will remain unchanged.
+ """),
+
+- 'HOST_PROGRAM' : (unicode, unicode,
++ 'HOST_PROGRAM' : (str, str,
+ """Compiled host executable name.
+
+ If the configuration token ``HOST_BIN_SUFFIX`` is set, its value will be
+@@ -1765,7 +1768,7 @@ VARIABLES = {
+ files.
+ """),
+
+- 'XPIDL_MODULE': (unicode, unicode,
++ 'XPIDL_MODULE': (str, str,
+ """XPCOM Interface Definition Module Name.
+
+ This is the name of the ``.xpt`` file that is created by linking
+@@ -1924,14 +1927,14 @@ VARIABLES = {
+
+
+ # The following variables are used to control the target of installed files.
+- 'XPI_NAME': (unicode, unicode,
++ 'XPI_NAME': (str, str,
+ """The name of an extension XPI to generate.
+
+ When this variable is present, the results of this directory will end up
+ being packaged into an extension instead of the main dist/bin results.
+ """),
+
+- 'DIST_SUBDIR': (unicode, unicode,
++ 'DIST_SUBDIR': (str, str,
+ """The name of an alternate directory to install files to.
+
+ When this variable is present, the results of this directory will end up
+@@ -1939,7 +1942,7 @@ VARIABLES = {
+ otherwise be placed.
+ """),
+
+- 'FINAL_TARGET': (FinalTargetValue, unicode,
++ 'FINAL_TARGET': (FinalTargetValue, str,
+ """The name of the directory to install targets to.
+
+ The directory is relative to the top of the object directory. The
+@@ -1970,7 +1973,7 @@ VARIABLES = {
+
+ 'GYP_DIRS': (StrictOrderingOnAppendListWithFlagsFactory({
+ 'variables': dict,
+- 'input': unicode,
++ 'input': str,
+ 'sandbox_vars': dict,
+ 'no_chromium': bool,
+ 'no_unified': bool,
+@@ -2194,7 +2197,7 @@ VARIABLES = {
+ }
+
+ # Sanity check: we don't want any variable above to have a list as storage type.
+-for name, (storage_type, input_types, docs) in VARIABLES.items():
++for name, (storage_type, input_types, docs) in list(VARIABLES.items()):
+ if storage_type == list:
+ raise RuntimeError('%s has a "list" storage type. Use "List" instead.'
+ % name)
+diff --git a/python/mozbuild/mozbuild/frontend/data.py b/python/mozbuild/mozbuild/frontend/data.py
+index 442fc9e0a..837453a9f 100644
+--- a/python/mozbuild/mozbuild/frontend/data.py
++++ b/python/mozbuild/mozbuild/frontend/data.py
+@@ -15,7 +15,7 @@ contains the code for converting executed mozbuild files into these data
+ structures.
+ """
+
+-from __future__ import absolute_import, unicode_literals
++
+
+ from mozbuild.util import StrictOrderingOnAppendList
+ from mozpack.chrome.manifest import ManifestEntry
+@@ -182,7 +182,7 @@ class ComputedFlags(ContextDerived):
+ if value:
+ for dest_var in dest_vars:
+ flags[dest_var].extend(value)
+- return flags.items()
++ return list(flags.items())
+
+ class XPIDLFile(ContextDerived):
+ """Describes an XPIDL file to be compiled."""
+@@ -213,7 +213,7 @@ class BaseDefines(ContextDerived):
+ self.defines = defines
+
+ def get_defines(self):
+- for define, value in self.defines.iteritems():
++ for define, value in self.defines.items():
+ if value is True:
+ yield('-D%s' % define)
+ elif value is False:
+@@ -494,7 +494,7 @@ class SimpleProgram(BaseProgram):
+ KIND = 'target'
+
+ def source_files(self):
+- for srcs in self.sources.values():
++ for srcs in list(self.sources.values()):
+ for f in srcs:
+ if mozpath.basename(mozpath.splitext(f)[0]) == mozpath.splitext(self.program)[0]:
+ return [f]
+diff --git a/python/mozbuild/mozbuild/frontend/emitter.py b/python/mozbuild/mozbuild/frontend/emitter.py
+index 642b381c0..c28344a75 100644
+--- a/python/mozbuild/mozbuild/frontend/emitter.py
++++ b/python/mozbuild/mozbuild/frontend/emitter.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, unicode_literals
++
+
+ import itertools
+ import logging
+@@ -116,8 +116,8 @@ class TreeMetadataEmitter(LoggingMixin):
+ # arguments. This gross hack works around the problem until we
+ # rid ourselves of 2.6.
+ self.info = {}
+- for k, v in mozinfo.info.items():
+- if isinstance(k, unicode):
++ for k, v in list(mozinfo.info.items()):
++ if isinstance(k, str):
+ k = k.encode('ascii')
+ self.info[k] = v
+
+@@ -234,7 +234,7 @@ class TreeMetadataEmitter(LoggingMixin):
+
+
+ # Next do FINAL_LIBRARY linkage.
+- for lib in (l for libs in self._libs.values() for l in libs):
++ for lib in (l for libs in list(self._libs.values()) for l in libs):
+ if not isinstance(lib, (StaticLibrary, RustLibrary)) or not lib.link_into:
+ continue
+ if lib.link_into not in self._libs:
+@@ -294,13 +294,13 @@ class TreeMetadataEmitter(LoggingMixin):
+ lib.link_into == outerlib.basename):
+ propagate_defines(lib, defines)
+
+- for lib in (l for libs in self._libs.values() for l in libs):
++ for lib in (l for libs in list(self._libs.values()) for l in libs):
+ if isinstance(lib, Library):
+ propagate_defines(lib, lib.lib_defines)
+ yield lib
+
+
+- for lib in (l for libs in self._libs.values() for l in libs):
++ for lib in (l for libs in list(self._libs.values()) for l in libs):
+ lib_defines = list(lib.lib_defines.get_defines())
+ if lib_defines:
+ objdir_flags = self._compile_flags[lib.objdir]
+@@ -310,13 +310,13 @@ class TreeMetadataEmitter(LoggingMixin):
+ if objdir_flags:
+ objdir_flags.resolve_flags('LIBRARY_DEFINES', lib_defines)
+
+- for flags_obj in self._compile_flags.values():
++ for flags_obj in list(self._compile_flags.values()):
+ yield flags_obj
+
+- for flags_obj in self._compile_as_flags.values():
++ for flags_obj in list(self._compile_as_flags.values()):
+ yield flags_obj
+
+- for obj in self._binaries.values():
++ for obj in list(self._binaries.values()):
+ yield obj
+
+
+@@ -409,7 +409,7 @@ class TreeMetadataEmitter(LoggingMixin):
+ libs[key] = l
+ if key not in libs:
+ libs[key] = l
+- candidates = libs.values()
++ candidates = list(libs.values())
+ if force_static and not candidates:
+ if dir:
+ raise SandboxValidationError(
+@@ -473,9 +473,9 @@ class TreeMetadataEmitter(LoggingMixin):
+
+ def _verify_deps(self, context, crate_dir, crate_name, dependencies, description='Dependency'):
+ """Verify that a crate's dependencies all specify local paths."""
+- for dep_crate_name, values in dependencies.iteritems():
++ for dep_crate_name, values in dependencies.items():
+ # A simple version number.
+- if isinstance(values, (str, unicode)):
++ if isinstance(values, str):
+ raise SandboxValidationError(
+ '%s %s of crate %s does not list a path' % (description, dep_crate_name, crate_name),
+ context)
+@@ -529,7 +529,7 @@ class TreeMetadataEmitter(LoggingMixin):
+
+ cargo_target_dir = context.get('RUST_LIBRARY_TARGET_DIR', '.')
+
+- dependencies = set(config.get('dependencies', {}).iterkeys())
++ dependencies = set(config.get('dependencies', {}).keys())
+
+ features = context.get(cls.FEATURES_VAR, [])
+ unique_features = set(features)
+@@ -863,7 +863,7 @@ class TreeMetadataEmitter(LoggingMixin):
+ assert not gen_sources['UNIFIED_SOURCES']
+
+ no_pgo = context.get('NO_PGO')
+- no_pgo_sources = [f for f, flags in all_flags.iteritems()
++ no_pgo_sources = [f for f, flags in all_flags.items()
+ if flags.no_pgo]
+ if no_pgo:
+ if no_pgo_sources:
+@@ -890,7 +890,7 @@ class TreeMetadataEmitter(LoggingMixin):
+
+ # The inverse of the above, mapping suffixes to their canonical suffix.
+ canonicalized_suffix_map = {}
+- for suffix, alternatives in suffix_map.iteritems():
++ for suffix, alternatives in suffix_map.items():
+ alternatives.add(suffix)
+ for a in alternatives:
+ canonicalized_suffix_map[a] = suffix
+@@ -914,7 +914,7 @@ class TreeMetadataEmitter(LoggingMixin):
+ # Source files to track for linkables associated with this context.
+ ctxt_sources = defaultdict(lambda: defaultdict(list))
+
+- for variable, (klass, gen_klass, suffixes) in varmap.items():
++ for variable, (klass, gen_klass, suffixes) in list(varmap.items()):
+ allowed_suffixes = set().union(*[suffix_map[s] for s in suffixes])
+
+ # First ensure that we haven't been given filetypes that we don't
+@@ -941,20 +941,20 @@ class TreeMetadataEmitter(LoggingMixin):
+ obj = cls(*arglist)
+ srcs = obj.files
+ if isinstance(obj, UnifiedSources) and obj.have_unified_mapping:
+- srcs = dict(obj.unified_source_mapping).keys()
++ srcs = list(dict(obj.unified_source_mapping).keys())
+ ctxt_sources[variable][canonical_suffix] += sorted(srcs)
+ yield obj
+
+ if ctxt_sources:
+ for linkable in linkables:
+ for target_var in ('SOURCES', 'UNIFIED_SOURCES'):
+- for suffix, srcs in ctxt_sources[target_var].items():
++ for suffix, srcs in list(ctxt_sources[target_var].items()):
+ linkable.sources[suffix] += srcs
+ for host_linkable in host_linkables:
+- for suffix, srcs in ctxt_sources['HOST_SOURCES'].items():
++ for suffix, srcs in list(ctxt_sources['HOST_SOURCES'].items()):
+ host_linkable.sources[suffix] += srcs
+
+- for f, flags in all_flags.iteritems():
++ for f, flags in all_flags.items():
+ if flags.flags:
+ ext = mozpath.splitext(f)[1]
+ yield PerSourceFlag(context, f, flags.flags)
+@@ -1143,7 +1143,7 @@ class TreeMetadataEmitter(LoggingMixin):
+ for obj in self._handle_linkables(context, passthru, generated_files):
+ yield obj
+
+- generated_files.update(['%s%s' % (k, self.config.substs.get('BIN_SUFFIX', '')) for k in self._binaries.keys()])
++ generated_files.update(['%s%s' % (k, self.config.substs.get('BIN_SUFFIX', '')) for k in list(self._binaries.keys())])
+
+ components = []
+ for var, cls in (
+@@ -1277,7 +1277,7 @@ class TreeMetadataEmitter(LoggingMixin):
+ for obj in self._process_jar_manifests(context):
+ yield obj
+
+- for name, jar in context.get('JAVA_JAR_TARGETS', {}).items():
++ for name, jar in list(context.get('JAVA_JAR_TARGETS', {}).items()):
+ yield ContextWrapped(context, jar)
+
+ computed_as_flags.resolve_flags('MOZBUILD',
+@@ -1346,7 +1346,7 @@ class TreeMetadataEmitter(LoggingMixin):
+ script = mozpath.join(mozpath.dirname(mozpath.dirname(__file__)),
+ 'action', 'process_define_files.py')
+ yield GeneratedFile(context, script, 'process_define_file',
+- unicode(path),
++ str(path),
+ [Path(context, path + '.in')])
+
+ generated_files = context.get('GENERATED_FILES') or []
+@@ -1393,7 +1393,7 @@ class TreeMetadataEmitter(LoggingMixin):
+ flags.flags, localized=localized)
+
+ def _process_test_manifests(self, context):
+- for prefix, info in TEST_MANIFESTS.items():
++ for prefix, info in list(TEST_MANIFESTS.items()):
+ for path, manifest in context.get('%s_MANIFESTS' % prefix, []):
+ for obj in self._process_test_manifest(context, info, path, manifest):
+ yield obj
+@@ -1479,7 +1479,7 @@ class TreeMetadataEmitter(LoggingMixin):
+
+ process_support_files(test)
+
+- for path, m_defaults in mpmanifest.manifest_defaults.items():
++ for path, m_defaults in list(mpmanifest.manifest_defaults.items()):
+ process_support_files(m_defaults)
+
+ # We also copy manifests into the output directory,
+diff --git a/python/mozbuild/mozbuild/frontend/reader.py b/python/mozbuild/mozbuild/frontend/reader.py
+index c1efc1c3d..0cdf8b8db 100644
+--- a/python/mozbuild/mozbuild/frontend/reader.py
++++ b/python/mozbuild/mozbuild/frontend/reader.py
+@@ -16,7 +16,7 @@ The BuildReader contains basic logic for traversing a tree of mozbuild files.
+ It does this by examining specific variables populated during execution.
+ """
+
+-from __future__ import absolute_import, print_function, unicode_literals
++
+
+ import ast
+ import inspect
+@@ -81,12 +81,13 @@ from .context import (
+
+ from mozbuild.base import ExecutionSummary
+ from concurrent.futures.process import ProcessPoolExecutor
++from functools import reduce
+
+
+
+ if sys.version_info.major == 2:
+- text_type = unicode
+- type_type = types.TypeType
++ text_type = str
++ type_type = type
+ else:
+ text_type = str
+ type_type = type
+@@ -127,7 +128,7 @@ class EmptyConfig(object):
+
+ self.substs = self.PopulateOnGetDict(EmptyValue, substs or self.default_substs)
+ udict = {}
+- for k, v in self.substs.items():
++ for k, v in list(self.substs.items()):
+ if isinstance(v, str):
+ udict[k.decode('utf-8')] = v.decode('utf-8')
+ else:
+@@ -311,7 +312,7 @@ class MozbuildSandbox(Sandbox):
+ raise Exception('`template` is a function decorator. You must '
+ 'use it as `@template` preceding a function declaration.')
+
+- name = func.func_name
++ name = func.__name__
+
+ if name in self.templates:
+ raise KeyError(
+@@ -390,7 +391,7 @@ class MozbuildSandbox(Sandbox):
+ klass = self._context.__class__
+ self._context.__class__ = TemplateContext
+ # The sandbox will do all the necessary checks for these merges.
+- for key, value in context.items():
++ for key, value in list(context.items()):
+ if isinstance(value, dict):
+ self[key].update(value)
+ elif isinstance(value, (list, HierarchicalStringList)):
+@@ -407,12 +408,14 @@ class MozbuildSandbox(Sandbox):
+
+ class TemplateFunction(object):
+ def __init__(self, func, sandbox):
+- self.path = func.func_code.co_filename
+- self.name = func.func_name
++ self.path = func.__code__.co_filename
++ self.name = func.__name__
+
+- code = func.func_code
++ code = func.__code__
+ firstlineno = code.co_firstlineno
+ lines = sandbox._current_source.splitlines(True)
++ if len(lines) and isinstance(lines[0], bytes):
++ lines = [l.decode('utf-8') for l in lines]
+ lines = inspect.getblock(lines[firstlineno - 1:])
+
+ # The code lines we get out of inspect.getsourcelines look like
+@@ -430,7 +433,7 @@ class TemplateFunction(object):
+ # actually never calls __getitem__ and __setitem__, so we need to
+ # modify the AST so that accesses to globals are properly directed
+ # to a dict.
+- self._global_name = b'_data' # AST wants str for this, not unicode
++ self._global_name = '_data'
+ # In case '_data' is a name used for a variable in the function code,
+ # prepend more underscores until we find an unused name.
+ while (self._global_name in code.co_names or
+@@ -449,8 +452,8 @@ class TemplateFunction(object):
+ compile(func_ast, self.path, 'exec'),
+ glob,
+ self.name,
+- func.func_defaults,
+- func.func_closure,
++ func.__defaults__,
++ func.__closure__,
+ )
+ func()
+
+@@ -464,11 +467,11 @@ class TemplateFunction(object):
+ '__builtins__': sandbox._builtins
+ }
+ func = types.FunctionType(
+- self._func.func_code,
++ self._func.__code__,
+ glob,
+ self.name,
+- self._func.func_defaults,
+- self._func.func_closure
++ self._func.__defaults__,
++ self._func.__closure__
+ )
+ sandbox.exec_function(func, args, kwargs, self.path,
+ becomes_current_path=False)
+@@ -484,7 +487,7 @@ class TemplateFunction(object):
+ def visit_Str(self, node):
+ # String nodes we got from the AST parser are str, but we want
+ # unicode literals everywhere, so transform them.
+- node.s = unicode(node.s)
++ node.s = str(node.s)
+ return node
+
+ def visit_Name(self, node):
+@@ -617,7 +620,7 @@ class BuildReaderError(Exception):
+
+ for l in traceback.format_exception(type(self.other), self.other,
+ self.trace):
+- s.write(unicode(l))
++ s.write(str(l))
+
+ return s.getvalue()
+
+@@ -767,7 +770,7 @@ class BuildReaderError(Exception):
+ s.write(' %s\n' % inner.args[2])
+ s.write('\n')
+ close_matches = difflib.get_close_matches(inner.args[2],
+- VARIABLES.keys(), 2)
++ list(VARIABLES.keys()), 2)
+ if close_matches:
+ s.write('Maybe you meant %s?\n' % ' or '.join(close_matches))
+ s.write('\n')
+@@ -1152,7 +1155,7 @@ class BuildReader(object):
+ context)
+ non_unified_sources.add(source)
+ action_overrides = {}
+- for action, script in gyp_dir.action_overrides.iteritems():
++ for action, script in gyp_dir.action_overrides.items():
+ action_overrides[action] = SourcePath(context, script)
+
+ gyp_processor = GypProcessor(context.config,
+@@ -1188,7 +1191,7 @@ class BuildReader(object):
+
+ recurse_info[d][key] = dict(sandbox.metadata[key])
+
+- for path, child_metadata in recurse_info.items():
++ for path, child_metadata in list(recurse_info.items()):
+ child_path = path.join('moz.build').full_path
+
+ # Ensure we don't break out of the topsrcdir. We don't do realpath
+@@ -1279,7 +1282,7 @@ class BuildReader(object):
+ # There is room to improve this code (and the code in
+ # _find_relevant_mozbuilds) to better handle multiple files in the same
+ # directory. Bug 1136966 tracks.
+- for path, mbpaths in relevants.items():
++ for path, mbpaths in list(relevants.items()):
+ path_mozbuilds[path] = [mozpath.join(topsrcdir, p) for p in mbpaths]
+
+ for i, mbpath in enumerate(mbpaths[0:-1]):
+@@ -1316,7 +1319,7 @@ class BuildReader(object):
+ all_contexts.append(context)
+
+ result = {}
+- for path, paths in path_mozbuilds.items():
++ for path, paths in list(path_mozbuilds.items()):
+ result[path] = reduce(lambda x, y: x + y, (contexts[p] for p in paths), [])
+
+ return result, all_contexts
+@@ -1356,7 +1359,7 @@ class BuildReader(object):
+
+ r = {}
+
+- for path, ctxs in paths.items():
++ for path, ctxs in list(paths.items()):
+ # Should be normalized by read_relevant_mozbuilds.
+ assert '\\' not in path
+
+diff --git a/python/mozbuild/mozbuild/frontend/sandbox.py b/python/mozbuild/mozbuild/frontend/sandbox.py
+index b2090802e..6d94291ea 100644
+--- a/python/mozbuild/mozbuild/frontend/sandbox.py
++++ b/python/mozbuild/mozbuild/frontend/sandbox.py
+@@ -17,7 +17,7 @@ KeyError are machine parseable. This machine-friendly data is used to present
+ user-friendly error messages in the case of errors.
+ """
+
+-from __future__ import absolute_import, unicode_literals
++
+
+ import os
+ import sys
+@@ -112,6 +112,7 @@ class Sandbox(dict):
+ 'int': int,
+ 'set': set,
+ 'tuple': tuple,
++ 'str': str,
+ })
+
+ def __init__(self, context, finder=default_finder):
+diff --git a/python/mozbuild/mozbuild/jar.py b/python/mozbuild/mozbuild/jar.py
+index 47a2eff63..96aea63ce 100644
+--- a/python/mozbuild/mozbuild/jar.py
++++ b/python/mozbuild/mozbuild/jar.py
+@@ -8,7 +8,7 @@ processing jar.mn files.
+ See the documentation for jar.mn on MDC for further details on the format.
+ '''
+
+-from __future__ import absolute_import
++
+
+ import sys
+ import os
+@@ -17,7 +17,7 @@ import re
+ import logging
+ from time import localtime
+ from MozZipFile import ZipFile
+-from cStringIO import StringIO
++from io import StringIO
+ from collections import defaultdict
+
+ from mozbuild.preprocessor import Preprocessor
+@@ -302,9 +302,9 @@ class JarMaker(object):
+ '''updateManifest replaces the % in the chrome registration entries
+ with the given chrome base path, and updates the given manifest file.
+ '''
+- myregister = dict.fromkeys(map(lambda s: s.replace('%',
+- chromebasepath), register))
+- addEntriesToListFile(manifestPath, myregister.iterkeys())
++ myregister = dict.fromkeys([s.replace('%',
++ chromebasepath) for s in register])
++ addEntriesToListFile(manifestPath, iter(myregister.keys()))
+
+ def makeJar(self, infile, jardir):
+ '''makeJar is the main entry point to JarMaker.
+@@ -322,7 +322,7 @@ class JarMaker(object):
+ elif self.relativesrcdir:
+ self.localedirs = \
+ self.generateLocaleDirs(self.relativesrcdir)
+- if isinstance(infile, basestring):
++ if isinstance(infile, str):
+ logging.info('processing ' + infile)
+ self.sourcedirs.append(_normpath(os.path.dirname(infile)))
+ pp = self.pp.clone()
+diff --git a/python/mozbuild/mozbuild/makeutil.py b/python/mozbuild/mozbuild/makeutil.py
+index fcd45bed2..f77c5d2c3 100644
+--- a/python/mozbuild/mozbuild/makeutil.py
++++ b/python/mozbuild/mozbuild/makeutil.py
+@@ -2,11 +2,10 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import
++
+
+ import os
+ import re
+-from types import StringTypes
+ from collections import Iterable
+
+
+@@ -66,7 +65,7 @@ class _SimpleOrderedSet(object):
+ self._list = []
+ self._set = set()
+
+- def __nonzero__(self):
++ def __bool__(self):
+ return bool(self._set)
+
+ def __iter__(self):
+@@ -103,19 +102,19 @@ class Rule(object):
+
+ def add_targets(self, targets):
+ '''Add additional targets to the rule.'''
+- assert isinstance(targets, Iterable) and not isinstance(targets, StringTypes)
++ assert isinstance(targets, Iterable) and not isinstance(targets, str)
+ self._targets.update(targets)
+ return self
+
+ def add_dependencies(self, deps):
+ '''Add dependencies to the rule.'''
+- assert isinstance(deps, Iterable) and not isinstance(deps, StringTypes)
++ assert isinstance(deps, Iterable) and not isinstance(deps, str)
+ self._dependencies.update(deps)
+ return self
+
+ def add_commands(self, commands):
+ '''Add commands to the rule.'''
+- assert isinstance(commands, Iterable) and not isinstance(commands, StringTypes)
++ assert isinstance(commands, Iterable) and not isinstance(commands, str)
+ self._commands.extend(commands)
+ return self
+
+@@ -139,13 +138,16 @@ class Rule(object):
+ '''
+ if not self._targets:
+ return
+- fh.write('%s:' % ' '.join(self._targets))
++ wstring = '%s:' % ' '.join(self._targets)
+ if self._dependencies:
+- fh.write(' %s' % ' '.join(self.dependencies()))
+- fh.write('\n')
++ wstring += ' %s' % ' '.join(self.dependencies())
++ wstring += '\n'
+ for cmd in self._commands:
+- fh.write('\t%s\n' % cmd)
+-
++ wstring += '\t%s\n' % cmd
++ try:
++ fh.write(wstring.encode('utf-8'))
++ except TypeError:
++ fh.write(wstring)
+
+ # colon followed by anything except a slash (Windows path detection)
+ _depfilesplitter = re.compile(r':(?![\\/])')
+diff --git a/python/mozbuild/mozbuild/mozinfo.py b/python/mozbuild/mozbuild/mozinfo.py
+index 7e7ad1b2a..f03f20ba3 100755
+--- a/python/mozbuild/mozbuild/mozinfo.py
++++ b/python/mozbuild/mozbuild/mozinfo.py
+@@ -5,7 +5,7 @@
+ # This module produces a JSON file that provides basic build info and
+ # configuration metadata.
+
+-from __future__ import absolute_import
++
+
+ import os
+ import re
+@@ -33,7 +33,7 @@ def build_dict(config, env=os.environ):
+ d['mozconfig'] = config.mozconfig
+
+ # os
+- o = substs["OS_TARGET"]
++ o = str(substs["OS_TARGET"])
+ known_os = {"Linux": "linux",
+ "WINNT": "win",
+ "Darwin": "mac",
+@@ -148,7 +148,7 @@ def write_mozinfo(file, config, env=os.environ):
+ and what keys are produced.
+ """
+ build_conf = build_dict(config, env)
+- if isinstance(file, basestring):
+- file = open(file, 'wb')
++ if isinstance(file, str):
++ file = open(file, 'w')
+
+ json.dump(build_conf, file, sort_keys=True, indent=4)
+diff --git a/python/mozbuild/mozbuild/preprocessor.py b/python/mozbuild/mozbuild/preprocessor.py
+index 6780b8b72..19e59884e 100644
+--- a/python/mozbuild/mozbuild/preprocessor.py
++++ b/python/mozbuild/mozbuild/preprocessor.py
+@@ -27,7 +27,8 @@ import os
+ import re
+ from optparse import OptionParser
+ import errno
+-from makeutil import Makefile
++from .makeutil import Makefile
++from functools import reduce
+
+ # hack around win32 mangling our line endings
+ # http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65443
+@@ -230,7 +231,7 @@ class Expression:
+ def __repr__(self):
+ return self.value.__repr__()
+
+- class ParseError(StandardError):
++ class ParseError(Exception):
+ """
+ Error raised when parsing fails.
+ It has two members, offset and content, which give the offset of the
+@@ -278,7 +279,7 @@ class Preprocessor:
+ self.context = Context()
+ for k,v in {'FILE': '',
+ 'LINE': 0,
+- 'DIRECTORY': os.path.abspath('.')}.iteritems():
++ 'DIRECTORY': os.path.abspath('.')}.items():
+ self.context[k] = v
+ self.actionLevel = 0
+ self.disableLevel = 0
+@@ -292,21 +293,21 @@ class Preprocessor:
+ self.cmds = {}
+ for cmd, level in {'define': 0,
+ 'undef': 0,
+- 'if': sys.maxint,
+- 'ifdef': sys.maxint,
+- 'ifndef': sys.maxint,
++ 'if': sys.maxsize,
++ 'ifdef': sys.maxsize,
++ 'ifndef': sys.maxsize,
+ 'else': 1,
+ 'elif': 1,
+ 'elifdef': 1,
+ 'elifndef': 1,
+- 'endif': sys.maxint,
++ 'endif': sys.maxsize,
+ 'expand': 0,
+ 'literal': 0,
+ 'filter': 0,
+ 'unfilter': 0,
+ 'include': 0,
+ 'includesubst': 0,
+- 'error': 0}.iteritems():
++ 'error': 0}.items():
+ self.cmds[cmd] = (level, getattr(self, 'do_' + cmd))
+ self.out = sys.stdout
+ self.setMarker(marker)
+@@ -434,7 +435,7 @@ class Preprocessor:
+ filteredLine = self.applyFilters(aLine)
+ if filteredLine != aLine:
+ self.actionLevel = 2
+- self.out.write(filteredLine)
++ self.out.write(filteredLine.encode('utf-8'))
+
+ def handleCommandLine(self, args, defaultToStdin = False):
+ """
+@@ -468,7 +469,7 @@ class Preprocessor:
+ raise Preprocessor.Error(self, "--depend doesn't work with stdout",
+ None)
+ try:
+- from makeutil import Makefile
++ from .makeutil import Makefile
+ except:
+ raise Preprocessor.Error(self, "--depend requires the "
+ "mozbuild.makeutil module", None)
+@@ -683,7 +684,7 @@ class Preprocessor:
+ current = dict(self.filters)
+ for f in filters:
+ current[f] = getattr(self, 'filter_' + f)
+- filterNames = current.keys()
++ filterNames = list(current.keys())
+ filterNames.sort()
+ self.filters = [(fn, current[fn]) for fn in filterNames]
+ return
+@@ -693,7 +694,7 @@ class Preprocessor:
+ for f in filters:
+ if f in current:
+ del current[f]
+- filterNames = current.keys()
++ filterNames = list(current.keys())
+ filterNames.sort()
+ self.filters = [(fn, current[fn]) for fn in filterNames]
+ return
+@@ -738,7 +739,7 @@ class Preprocessor:
+ args can either be a file name, or a file-like object.
+ Files should be opened, and will be closed after processing.
+ """
+- isName = type(args) == str or type(args) == unicode
++ isName = type(args) == str or type(args) == str
+ oldCheckLineNumbers = self.checkLineNumbers
+ self.checkLineNumbers = False
+ if isName:
+diff --git a/python/mozbuild/mozbuild/shellutil.py b/python/mozbuild/mozbuild/shellutil.py
+index 185a970ee..c0c15f8f2 100644
+--- a/python/mozbuild/mozbuild/shellutil.py
++++ b/python/mozbuild/mozbuild/shellutil.py
+@@ -15,7 +15,7 @@ def _tokens2re(**tokens):
+ # which matches the pattern and captures it in a named match group.
+ # The group names and patterns are given as arguments.
+ all_tokens = '|'.join('(?P<%s>%s)' % (name, value)
+- for name, value in tokens.iteritems())
++ for name, value in tokens.items())
+ nonescaped = r'(?<!\\)(?:%s)' % all_tokens
+
+ # The final pattern matches either the above pattern, or an escaped
+@@ -96,7 +96,7 @@ class _ClineSplitter(object):
+ self.cline = self.cline[m.end():]
+
+ match = {name: value
+- for name, value in m.groupdict().items() if value}
++ for name, value in list(m.groupdict().items()) if value}
+ if 'quote' in match:
+ # " or ' start a quoted string
+ if match['quote'] == '"':
+@@ -144,7 +144,7 @@ class _ClineSplitter(object):
+ self._push(self.cline[:m.start()])
+ self.cline = self.cline[m.end():]
+ match = {name: value
+- for name, value in m.groupdict().items() if value}
++ for name, value in list(m.groupdict().items()) if value}
+ if 'quote' in match:
+ # a double quote ends the quoted string, so go back to
+ # unquoted parsing
+diff --git a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py b/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
+index a05059f8a..355a96165 100644
+--- a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
++++ b/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
+@@ -2,9 +2,9 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import unicode_literals
+
+-import cPickle as pickle
++
++import pickle as pickle
+ import json
+ import os
+ import unittest
+@@ -333,7 +333,7 @@ class TestRecursiveMakeBackend(BackendTester):
+ ],
+ }
+
+- for var, val in expected.items():
++ for var, val in list(expected.items()):
+ # print("test_variable_passthru[%s]" % (var))
+ found = [str for str in lines if str.startswith(var)]
+ self.assertEqual(found, val)
+@@ -372,7 +372,7 @@ class TestRecursiveMakeBackend(BackendTester):
+ ],
+ }
+
+- for var, val in expected.items():
++ for var, val in list(expected.items()):
+ found = [str for str in lines if str.startswith(var)]
+ self.assertEqual(found, val)
+
+@@ -563,7 +563,7 @@ class TestRecursiveMakeBackend(BackendTester):
+
+ # This is not the most robust test in the world, but it gets the job
+ # done.
+- entries = [e for e in m._dests.keys() if '**' in e]
++ entries = [e for e in list(m._dests.keys()) if '**' in e]
+ self.assertEqual(len(entries), 1)
+ self.assertIn('support/**', entries[0])
+
+@@ -590,11 +590,11 @@ class TestRecursiveMakeBackend(BackendTester):
+ set(['child/test_sub.js',
+ 'child/data/**',
+ 'child/another-file.sjs']))
+- for key in test_installs.keys():
++ for key in list(test_installs.keys()):
+ self.assertIn(key, test_installs)
+
+ synthesized_manifest = InstallManifest()
+- for item, installs in test_installs.items():
++ for item, installs in list(test_installs.items()):
+ for install_info in installs:
+ if len(install_info) == 3:
+ synthesized_manifest.add_pattern_link(*install_info)
+@@ -602,7 +602,7 @@ class TestRecursiveMakeBackend(BackendTester):
+ synthesized_manifest.add_link(*install_info)
+
+ self.assertEqual(len(synthesized_manifest), 3)
+- for item, info in synthesized_manifest._dests.items():
++ for item, info in list(synthesized_manifest._dests.items()):
+ self.assertIn(item, m)
+ self.assertEqual(info, m._dests[item])
+
+@@ -864,7 +864,7 @@ class TestRecursiveMakeBackend(BackendTester):
+ expected[mozpath.join(env.topobjdir, 'final-target')] = [
+ 'FINAL_TARGET = $(DEPTH)/random-final-target'
+ ]
+- for key, expected_rules in expected.iteritems():
++ for key, expected_rules in expected.items():
+ backend_path = mozpath.join(key, 'backend.mk')
+ lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]]
+ found = [str for str in lines if
+diff --git a/python/mozbuild/mozbuild/test/configure/common.py b/python/mozbuild/mozbuild/test/configure/common.py
+index 150c6e393..5e2c2afaa 100644
+--- a/python/mozbuild/mozbuild/test/configure/common.py
++++ b/python/mozbuild/mozbuild/test/configure/common.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, print_function, unicode_literals
++
+
+ import copy
+ import errno
+@@ -16,7 +16,7 @@ from mozbuild.configure import ConfigureSandbox
+ from mozbuild.util import ReadOnlyNamespace
+ from mozpack import path as mozpath
+
+-from StringIO import StringIO
++from io import StringIO
+ from which import WhichError
+
+ from buildconfig import (
+@@ -77,10 +77,10 @@ class ConfigureTestSandbox(ConfigureSandbox):
+ self._search_path = environ.get('PATH', '').split(os.pathsep)
+
+ self._subprocess_paths = {
+- mozpath.abspath(k): v for k, v in paths.iteritems() if v
++ mozpath.abspath(k): v for k, v in paths.items() if v
+ }
+
+- paths = paths.keys()
++ paths = list(paths.keys())
+
+ environ = dict(environ)
+ if 'CONFIG_SHELL' not in environ:
+diff --git a/python/mozbuild/mozbuild/test/configure/lint.py b/python/mozbuild/mozbuild/test/configure/lint.py
+index 98f5f4fe7..a549b4bcf 100644
+--- a/python/mozbuild/mozbuild/test/configure/lint.py
++++ b/python/mozbuild/mozbuild/test/configure/lint.py
+@@ -2,11 +2,11 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, print_function, unicode_literals
++
+
+ import os
+ import unittest
+-from StringIO import StringIO
++from io import StringIO
+ from mozunit import main
+ from buildconfig import (
+ topobjdir,
+@@ -40,9 +40,7 @@ class LintMeta(type):
+ return type.__new__(mcs, name, bases, attrs)
+
+
+-class Lint(unittest.TestCase):
+- __metaclass__ = LintMeta
+-
++class Lint(unittest.TestCase, metaclass=LintMeta):
+ def setUp(self):
+ self._curdir = os.getcwd()
+ os.chdir(topobjdir)
+diff --git a/python/mozbuild/mozbuild/test/configure/test_checks_configure.py b/python/mozbuild/mozbuild/test/configure/test_checks_configure.py
+index c60000bb2..07091c077 100644
+--- a/python/mozbuild/mozbuild/test/configure/test_checks_configure.py
++++ b/python/mozbuild/mozbuild/test/configure/test_checks_configure.py
+@@ -2,9 +2,9 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, print_function, unicode_literals
+
+-from StringIO import StringIO
++
++from io import StringIO
+ import os
+ import sys
+ import textwrap
+@@ -447,7 +447,7 @@ class TestChecksConfigure(unittest.TestCase):
+ checking for a... %s
+ ''' % self.OTHER_A))
+
+- dirs = map(mozpath.dirname, (self.OTHER_A, self.KNOWN_A))
++ dirs = list(map(mozpath.dirname, (self.OTHER_A, self.KNOWN_A)))
+ config, out, status = self.get_result(textwrap.dedent('''\
+ check_prog("A", ("known-a",), paths=["%s"])
+ ''' % os.pathsep.join(dirs)))
+@@ -457,7 +457,7 @@ class TestChecksConfigure(unittest.TestCase):
+ checking for a... %s
+ ''' % self.OTHER_A))
+
+- dirs = map(mozpath.dirname, (self.KNOWN_A, self.KNOWN_B))
++ dirs = list(map(mozpath.dirname, (self.KNOWN_A, self.KNOWN_B)))
+ config, out, status = self.get_result(textwrap.dedent('''\
+ check_prog("A", ("known-a",), paths=["%s", "%s"])
+ ''' % (os.pathsep.join(dirs), self.OTHER_A)))
+diff --git a/python/mozbuild/mozbuild/test/configure/test_compile_checks.py b/python/mozbuild/mozbuild/test/configure/test_compile_checks.py
+index b5be3bf2e..282000bb2 100644
+--- a/python/mozbuild/mozbuild/test/configure/test_compile_checks.py
++++ b/python/mozbuild/mozbuild/test/configure/test_compile_checks.py
+@@ -2,14 +2,14 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, print_function, unicode_literals
++
+
+ import os
+ import textwrap
+ import unittest
+ import mozpack.path as mozpath
+
+-from StringIO import StringIO
++from io import StringIO
+
+ from buildconfig import topsrcdir
+ from common import ConfigureTestSandbox
+diff --git a/python/mozbuild/mozbuild/test/configure/test_configure.py b/python/mozbuild/mozbuild/test/configure/test_configure.py
+index f37e2701f..eb0ca84fb 100644
+--- a/python/mozbuild/mozbuild/test/configure/test_configure.py
++++ b/python/mozbuild/mozbuild/test/configure/test_configure.py
+@@ -2,9 +2,9 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, print_function, unicode_literals
+
+-from StringIO import StringIO
++
++from io import StringIO
+ import os
+ import sys
+ import textwrap
+@@ -43,7 +43,7 @@ class TestConfigure(unittest.TestCase):
+
+ if '--help' in options:
+ return out.getvalue(), config
+- self.assertEquals('', out.getvalue())
++ self.assertEqual('', out.getvalue())
+ return config
+
+ def moz_configure(self, source):
+@@ -55,7 +55,7 @@ class TestConfigure(unittest.TestCase):
+ def test_defaults(self):
+ config = self.get_config()
+ self.maxDiff = None
+- self.assertEquals({
++ self.assertEqual({
+ 'CHOICES': NegativeOptionValue(),
+ 'DEFAULTED': PositiveOptionValue(('not-simple',)),
+ 'IS_GCC': NegativeOptionValue(),
+@@ -71,9 +71,9 @@ class TestConfigure(unittest.TestCase):
+ def test_help(self):
+ help, config = self.get_config(['--help'], prog='configure')
+
+- self.assertEquals({}, config)
++ self.assertEqual({}, config)
+ self.maxDiff = None
+- self.assertEquals(
++ self.assertEqual(
+ 'Usage: configure [options]\n'
+ '\n'
+ 'Options: [defaults in brackets after descriptions]\n'
+@@ -109,7 +109,7 @@ class TestConfigure(unittest.TestCase):
+ ):
+ self.assertNotIn('ENABLED_SIMPLE', config)
+ self.assertIn('SIMPLE', config)
+- self.assertEquals(NegativeOptionValue(), config['SIMPLE'])
++ self.assertEqual(NegativeOptionValue(), config['SIMPLE'])
+
+ for config in (
+ self.get_config(['--enable-simple']),
+@@ -117,7 +117,7 @@ class TestConfigure(unittest.TestCase):
+ ):
+ self.assertIn('ENABLED_SIMPLE', config)
+ self.assertIn('SIMPLE', config)
+- self.assertEquals(PositiveOptionValue(), config['SIMPLE'])
++ self.assertEqual(PositiveOptionValue(), config['SIMPLE'])
+ self.assertIs(config['SIMPLE'], config['ENABLED_SIMPLE'])
+
+ # --enable-simple doesn't take values.
+@@ -135,7 +135,7 @@ class TestConfigure(unittest.TestCase):
+ env={'MOZ_WITH_ENV': '1'}),
+ ):
+ self.assertIn('WITH_ENV', config)
+- self.assertEquals(NegativeOptionValue(), config['WITH_ENV'])
++ self.assertEqual(NegativeOptionValue(), config['WITH_ENV'])
+
+ for config in (
+ self.get_config(['--enable-with-env']),
+@@ -145,7 +145,7 @@ class TestConfigure(unittest.TestCase):
+ env={'MOZ_WITH_ENV': ''}),
+ ):
+ self.assertIn('WITH_ENV', config)
+- self.assertEquals(PositiveOptionValue(), config['WITH_ENV'])
++ self.assertEqual(PositiveOptionValue(), config['WITH_ENV'])
+
+ with self.assertRaises(InvalidOptionError):
+ self.get_config(['--enable-with-env=value'])
+@@ -160,23 +160,23 @@ class TestConfigure(unittest.TestCase):
+ self.get_config(['--enable-values', '--disable-values']),
+ ):
+ self.assertIn(name, config)
+- self.assertEquals(NegativeOptionValue(), config[name])
++ self.assertEqual(NegativeOptionValue(), config[name])
+
+ for config in (
+ self.get_config(['--enable-values']),
+ self.get_config(['--disable-values', '--enable-values']),
+ ):
+ self.assertIn(name, config)
+- self.assertEquals(PositiveOptionValue(), config[name])
++ self.assertEqual(PositiveOptionValue(), config[name])
+
+ config = self.get_config(['--enable-values=foo'])
+ self.assertIn(name, config)
+- self.assertEquals(PositiveOptionValue(('foo',)), config[name])
++ self.assertEqual(PositiveOptionValue(('foo',)), config[name])
+
+ config = self.get_config(['--enable-values=foo,bar'])
+ self.assertIn(name, config)
+ self.assertTrue(config[name])
+- self.assertEquals(PositiveOptionValue(('foo', 'bar')), config[name])
++ self.assertEqual(PositiveOptionValue(('foo', 'bar')), config[name])
+
+ def test_values2(self):
+ self.test_values('VALUES2')
+@@ -187,12 +187,12 @@ class TestConfigure(unittest.TestCase):
+ def test_returned_default(self):
+ config = self.get_config(['--enable-simple'])
+ self.assertIn('DEFAULTED', config)
+- self.assertEquals(
++ self.assertEqual(
+ PositiveOptionValue(('simple',)), config['DEFAULTED'])
+
+ config = self.get_config(['--disable-simple'])
+ self.assertIn('DEFAULTED', config)
+- self.assertEquals(
++ self.assertEqual(
+ PositiveOptionValue(('not-simple',)), config['DEFAULTED'])
+
+ def test_returned_choices(self):
+@@ -200,13 +200,13 @@ class TestConfigure(unittest.TestCase):
+ config = self.get_config(
+ ['--enable-values=alpha', '--returned-choices=%s' % val])
+ self.assertIn('CHOICES', config)
+- self.assertEquals(PositiveOptionValue((val,)), config['CHOICES'])
++ self.assertEqual(PositiveOptionValue((val,)), config['CHOICES'])
+
+ for val in ('0', '1', '2'):
+ config = self.get_config(
+ ['--enable-values=numeric', '--returned-choices=%s' % val])
+ self.assertIn('CHOICES', config)
+- self.assertEquals(PositiveOptionValue((val,)), config['CHOICES'])
++ self.assertEqual(PositiveOptionValue((val,)), config['CHOICES'])
+
+ with self.assertRaises(InvalidOptionError):
+ self.get_config(['--enable-values=numeric',
+@@ -218,12 +218,12 @@ class TestConfigure(unittest.TestCase):
+ def test_included(self):
+ config = self.get_config(env={'CC': 'gcc'})
+ self.assertIn('IS_GCC', config)
+- self.assertEquals(config['IS_GCC'], True)
++ self.assertEqual(config['IS_GCC'], True)
+
+ config = self.get_config(
+ ['--enable-include=extra.configure', '--extra'])
+ self.assertIn('EXTRA', config)
+- self.assertEquals(PositiveOptionValue(), config['EXTRA'])
++ self.assertEqual(PositiveOptionValue(), config['EXTRA'])
+
+ with self.assertRaises(InvalidOptionError):
+ self.get_config(['--extra'])
+@@ -231,7 +231,7 @@ class TestConfigure(unittest.TestCase):
+ def test_template(self):
+ config = self.get_config(env={'CC': 'gcc'})
+ self.assertIn('CFLAGS', config)
+- self.assertEquals(config['CFLAGS'], ['-Werror=foobar'])
++ self.assertEqual(config['CFLAGS'], ['-Werror=foobar'])
+
+ config = self.get_config(env={'CC': 'clang'})
+ self.assertNotIn('CFLAGS', config)
+@@ -288,7 +288,7 @@ class TestConfigure(unittest.TestCase):
+ sandbox
+ )
+
+- import __builtin__
++ import builtins
+ self.assertIs(sandbox['foo'](), __builtin__)
+
+ exec_(textwrap.dedent('''
+@@ -300,7 +300,7 @@ class TestConfigure(unittest.TestCase):
+ )
+
+ f = sandbox['foo']()
+- self.assertEquals(f.name, os.devnull)
++ self.assertEqual(f.name, os.devnull)
+ f.close()
+
+ # This unlocks the sandbox
+@@ -336,8 +336,8 @@ class TestConfigure(unittest.TestCase):
+ self.assertIs(sandbox['foo'](), sandbox)
+
+ # Nothing leaked from the function being executed
+- self.assertEquals(sandbox.keys(), ['__builtins__', 'foo'])
+- self.assertEquals(sandbox['__builtins__'], ConfigureSandbox.BUILTINS)
++ self.assertEqual(list(sandbox.keys()), ['__builtins__', 'foo'])
++ self.assertEqual(sandbox['__builtins__'], ConfigureSandbox.BUILTINS)
+
+ exec_(textwrap.dedent('''
+ @template
+@@ -354,7 +354,7 @@ class TestConfigure(unittest.TestCase):
+ with self.assertRaises(NameError) as e:
+ sandbox._depends[sandbox['bar']].result()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "global name 'sys' is not defined")
+
+ def test_apply_imports(self):
+@@ -380,28 +380,28 @@ class TestConfigure(unittest.TestCase):
+ sandbox
+ )
+
+- self.assertEquals(len(imports), 1)
++ self.assertEqual(len(imports), 1)
+
+ def test_os_path(self):
+ config = self.get_config(['--with-imports=%s' % __file__])
+ self.assertIn('HAS_ABSPATH', config)
+- self.assertEquals(config['HAS_ABSPATH'], True)
++ self.assertEqual(config['HAS_ABSPATH'], True)
+ self.assertIn('HAS_GETATIME', config)
+- self.assertEquals(config['HAS_GETATIME'], True)
++ self.assertEqual(config['HAS_GETATIME'], True)
+ self.assertIn('HAS_GETATIME2', config)
+- self.assertEquals(config['HAS_GETATIME2'], False)
++ self.assertEqual(config['HAS_GETATIME2'], False)
+
+ def test_template_call(self):
+ config = self.get_config(env={'CC': 'gcc'})
+ self.assertIn('TEMPLATE_VALUE', config)
+- self.assertEquals(config['TEMPLATE_VALUE'], 42)
++ self.assertEqual(config['TEMPLATE_VALUE'], 42)
+ self.assertIn('TEMPLATE_VALUE_2', config)
+- self.assertEquals(config['TEMPLATE_VALUE_2'], 21)
++ self.assertEqual(config['TEMPLATE_VALUE_2'], 21)
+
+ def test_template_imports(self):
+ config = self.get_config(['--enable-imports-in-template'])
+ self.assertIn('PLATFORM', config)
+- self.assertEquals(config['PLATFORM'], sys.platform)
++ self.assertEqual(config['PLATFORM'], sys.platform)
+
+ def test_decorators(self):
+ config = {}
+@@ -419,27 +419,27 @@ class TestConfigure(unittest.TestCase):
+ return self.get_config(*args, configure='set_config.configure')
+
+ help, config = get_config(['--help'])
+- self.assertEquals(config, {})
++ self.assertEqual(config, {})
+
+ config = get_config(['--set-foo'])
+ self.assertIn('FOO', config)
+- self.assertEquals(config['FOO'], True)
++ self.assertEqual(config['FOO'], True)
+
+ config = get_config(['--set-bar'])
+ self.assertNotIn('FOO', config)
+ self.assertIn('BAR', config)
+- self.assertEquals(config['BAR'], True)
++ self.assertEqual(config['BAR'], True)
+
+ config = get_config(['--set-value=qux'])
+ self.assertIn('VALUE', config)
+- self.assertEquals(config['VALUE'], 'qux')
++ self.assertEqual(config['VALUE'], 'qux')
+
+ config = get_config(['--set-name=hoge'])
+ self.assertIn('hoge', config)
+- self.assertEquals(config['hoge'], True)
++ self.assertEqual(config['hoge'], True)
+
+ config = get_config([])
+- self.assertEquals(config, {'BAR': False})
++ self.assertEqual(config, {'BAR': False})
+
+ with self.assertRaises(ConfigureError):
+ # Both --set-foo and --set-name=FOO are going to try to
+@@ -454,11 +454,11 @@ class TestConfigure(unittest.TestCase):
+ set_config('QUX', 'qux', when='--with-qux')
+ '''):
+ config = self.get_config()
+- self.assertEquals(config, {
++ self.assertEqual(config, {
+ 'FOO': 'foo',
+ })
+ config = self.get_config(['--with-qux'])
+- self.assertEquals(config, {
++ self.assertEqual(config, {
+ 'FOO': 'foo',
+ 'QUX': 'qux',
+ })
+@@ -468,27 +468,27 @@ class TestConfigure(unittest.TestCase):
+ return self.get_config(*args, configure='set_define.configure')
+
+ help, config = get_config(['--help'])
+- self.assertEquals(config, {'DEFINES': {}})
++ self.assertEqual(config, {'DEFINES': {}})
+
+ config = get_config(['--set-foo'])
+ self.assertIn('FOO', config['DEFINES'])
+- self.assertEquals(config['DEFINES']['FOO'], True)
++ self.assertEqual(config['DEFINES']['FOO'], True)
+
+ config = get_config(['--set-bar'])
+ self.assertNotIn('FOO', config['DEFINES'])
+ self.assertIn('BAR', config['DEFINES'])
+- self.assertEquals(config['DEFINES']['BAR'], True)
++ self.assertEqual(config['DEFINES']['BAR'], True)
+
+ config = get_config(['--set-value=qux'])
+ self.assertIn('VALUE', config['DEFINES'])
+- self.assertEquals(config['DEFINES']['VALUE'], 'qux')
++ self.assertEqual(config['DEFINES']['VALUE'], 'qux')
+
+ config = get_config(['--set-name=hoge'])
+ self.assertIn('hoge', config['DEFINES'])
+- self.assertEquals(config['DEFINES']['hoge'], True)
++ self.assertEqual(config['DEFINES']['hoge'], True)
+
+ config = get_config([])
+- self.assertEquals(config['DEFINES'], {'BAR': False})
++ self.assertEqual(config['DEFINES'], {'BAR': False})
+
+ with self.assertRaises(ConfigureError):
+ # Both --set-foo and --set-name=FOO are going to try to
+@@ -503,11 +503,11 @@ class TestConfigure(unittest.TestCase):
+ set_define('QUX', 'qux', when='--with-qux')
+ '''):
+ config = self.get_config()
+- self.assertEquals(config['DEFINES'], {
++ self.assertEqual(config['DEFINES'], {
+ 'FOO': 'foo',
+ })
+ config = self.get_config(['--with-qux'])
+- self.assertEquals(config['DEFINES'], {
++ self.assertEqual(config['DEFINES'], {
+ 'FOO': 'foo',
+ 'QUX': 'qux',
+ })
+@@ -518,19 +518,19 @@ class TestConfigure(unittest.TestCase):
+ *args, configure='imply_option/simple.configure')
+
+ help, config = get_config(['--help'])
+- self.assertEquals(config, {})
++ self.assertEqual(config, {})
+
+ config = get_config([])
+- self.assertEquals(config, {})
++ self.assertEqual(config, {})
+
+ config = get_config(['--enable-foo'])
+ self.assertIn('BAR', config)
+- self.assertEquals(config['BAR'], PositiveOptionValue())
++ self.assertEqual(config['BAR'], PositiveOptionValue())
+
+ with self.assertRaises(InvalidOptionError) as e:
+ get_config(['--enable-foo', '--disable-bar'])
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ "'--enable-bar' implied by '--enable-foo' conflicts with "
+ "'--disable-bar' from the command-line")
+@@ -541,31 +541,31 @@ class TestConfigure(unittest.TestCase):
+ *args, configure='imply_option/negative.configure')
+
+ help, config = get_config(['--help'])
+- self.assertEquals(config, {})
++ self.assertEqual(config, {})
+
+ config = get_config([])
+- self.assertEquals(config, {})
++ self.assertEqual(config, {})
+
+ config = get_config(['--enable-foo'])
+ self.assertIn('BAR', config)
+- self.assertEquals(config['BAR'], NegativeOptionValue())
++ self.assertEqual(config['BAR'], NegativeOptionValue())
+
+ with self.assertRaises(InvalidOptionError) as e:
+ get_config(['--enable-foo', '--enable-bar'])
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ "'--disable-bar' implied by '--enable-foo' conflicts with "
+ "'--enable-bar' from the command-line")
+
+ config = get_config(['--disable-hoge'])
+ self.assertIn('BAR', config)
+- self.assertEquals(config['BAR'], NegativeOptionValue())
++ self.assertEqual(config['BAR'], NegativeOptionValue())
+
+ with self.assertRaises(InvalidOptionError) as e:
+ get_config(['--disable-hoge', '--enable-bar'])
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ "'--disable-bar' implied by '--disable-hoge' conflicts with "
+ "'--enable-bar' from the command-line")
+@@ -576,23 +576,23 @@ class TestConfigure(unittest.TestCase):
+ *args, configure='imply_option/values.configure')
+
+ help, config = get_config(['--help'])
+- self.assertEquals(config, {})
++ self.assertEqual(config, {})
+
+ config = get_config([])
+- self.assertEquals(config, {})
++ self.assertEqual(config, {})
+
+ config = get_config(['--enable-foo=a'])
+ self.assertIn('BAR', config)
+- self.assertEquals(config['BAR'], PositiveOptionValue(('a',)))
++ self.assertEqual(config['BAR'], PositiveOptionValue(('a',)))
+
+ config = get_config(['--enable-foo=a,b'])
+ self.assertIn('BAR', config)
+- self.assertEquals(config['BAR'], PositiveOptionValue(('a','b')))
++ self.assertEqual(config['BAR'], PositiveOptionValue(('a','b')))
+
+ with self.assertRaises(InvalidOptionError) as e:
+ get_config(['--enable-foo=a,b', '--disable-bar'])
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ "'--enable-bar=a,b' implied by '--enable-foo' conflicts with "
+ "'--disable-bar' from the command-line")
+@@ -603,15 +603,15 @@ class TestConfigure(unittest.TestCase):
+ *args, configure='imply_option/infer.configure')
+
+ help, config = get_config(['--help'])
+- self.assertEquals(config, {})
++ self.assertEqual(config, {})
+
+ config = get_config([])
+- self.assertEquals(config, {})
++ self.assertEqual(config, {})
+
+ with self.assertRaises(InvalidOptionError) as e:
+ get_config(['--enable-foo', '--disable-bar'])
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ "'--enable-bar' implied by '--enable-foo' conflicts with "
+ "'--disable-bar' from the command-line")
+@@ -619,7 +619,7 @@ class TestConfigure(unittest.TestCase):
+ with self.assertRaises(ConfigureError) as e:
+ self.get_config([], configure='imply_option/infer_ko.configure')
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ "Cannot infer what implies '--enable-bar'. Please add a `reason` "
+ "to the `imply_option` call.")
+@@ -630,25 +630,25 @@ class TestConfigure(unittest.TestCase):
+ *args, configure='imply_option/imm.configure')
+
+ help, config = get_config(['--help'])
+- self.assertEquals(config, {})
++ self.assertEqual(config, {})
+
+ config = get_config([])
+- self.assertEquals(config, {})
++ self.assertEqual(config, {})
+
+ config_path = mozpath.abspath(
+ mozpath.join(test_data_path, 'imply_option', 'imm.configure'))
+
+- with self.assertRaisesRegexp(InvalidOptionError,
++ with self.assertRaisesRegex(InvalidOptionError,
+ "--enable-foo' implied by 'imply_option at %s:7' conflicts with "
+ "'--disable-foo' from the command-line" % config_path):
+ get_config(['--disable-foo'])
+
+- with self.assertRaisesRegexp(InvalidOptionError,
++ with self.assertRaisesRegex(InvalidOptionError,
+ "--enable-bar=foo,bar' implied by 'imply_option at %s:16' conflicts"
+ " with '--enable-bar=a,b,c' from the command-line" % config_path):
+ get_config(['--enable-bar=a,b,c'])
+
+- with self.assertRaisesRegexp(InvalidOptionError,
++ with self.assertRaisesRegex(InvalidOptionError,
+ "--enable-baz=BAZ' implied by 'imply_option at %s:25' conflicts"
+ " with '--enable-baz=QUUX' from the command-line" % config_path):
+ get_config(['--enable-baz=QUUX'])
+@@ -660,7 +660,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "`--with-foo`, emitted from `%s` line 2, is unknown."
+ % mozpath.join(test_data_path, 'moz.configure'))
+
+@@ -675,7 +675,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "Unexpected type: 'int'")
+
+ def test_imply_option_when(self):
+@@ -686,12 +686,12 @@ class TestConfigure(unittest.TestCase):
+ set_config('QUX', depends('--with-qux')(lambda x: x))
+ '''):
+ config = self.get_config()
+- self.assertEquals(config, {
++ self.assertEqual(config, {
+ 'QUX': NegativeOptionValue(),
+ })
+
+ config = self.get_config(['--with-foo'])
+- self.assertEquals(config, {
++ self.assertEqual(config, {
+ 'QUX': PositiveOptionValue(),
+ })
+
+@@ -700,7 +700,7 @@ class TestConfigure(unittest.TestCase):
+ with self.moz_configure('option("--with-foo", help="foo")'):
+ self.get_config()
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ 'Option `--with-foo` is not handled ; reference it with a @depends'
+ )
+@@ -712,7 +712,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ 'Option `--with-foo` already defined'
+ )
+@@ -724,7 +724,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ 'Option `MOZ_FOO` already defined'
+ )
+@@ -736,7 +736,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ 'Option `MOZ_FOO` already defined'
+ )
+@@ -748,7 +748,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ 'Option `MOZ_FOO` already defined'
+ )
+@@ -760,7 +760,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ 'Option `--with-foo` already defined'
+ )
+@@ -776,18 +776,18 @@ class TestConfigure(unittest.TestCase):
+ set_config('QUX', depends('--with-qux', when='--with-foo')(lambda x: x))
+ '''):
+ config = self.get_config()
+- self.assertEquals(config, {
++ self.assertEqual(config, {
+ 'FOO': NegativeOptionValue(),
+ })
+
+ config = self.get_config(['--with-foo'])
+- self.assertEquals(config, {
++ self.assertEqual(config, {
+ 'FOO': PositiveOptionValue(),
+ 'QUX': NegativeOptionValue(),
+ })
+
+ config = self.get_config(['--with-foo', '--with-qux'])
+- self.assertEquals(config, {
++ self.assertEqual(config, {
+ 'FOO': PositiveOptionValue(),
+ 'QUX': PositiveOptionValue(),
+ })
+@@ -795,7 +795,7 @@ class TestConfigure(unittest.TestCase):
+ with self.assertRaises(InvalidOptionError) as e:
+ self.get_config(['--with-bar'])
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ '--with-bar is not available in this configuration'
+ )
+@@ -803,7 +803,7 @@ class TestConfigure(unittest.TestCase):
+ with self.assertRaises(InvalidOptionError) as e:
+ self.get_config(['--with-qux'])
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ '--with-qux is not available in this configuration'
+ )
+@@ -811,18 +811,18 @@ class TestConfigure(unittest.TestCase):
+ with self.assertRaises(InvalidOptionError) as e:
+ self.get_config(['QUX=1'])
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ 'QUX is not available in this configuration'
+ )
+
+ config = self.get_config(env={'QUX': '1'})
+- self.assertEquals(config, {
++ self.assertEqual(config, {
+ 'FOO': NegativeOptionValue(),
+ })
+
+ help, config = self.get_config(['--help'])
+- self.assertEquals(help, textwrap.dedent('''\
++ self.assertEqual(help, textwrap.dedent('''\
+ Usage: configure [options]
+
+ Options: [defaults in brackets after descriptions]
+@@ -833,7 +833,7 @@ class TestConfigure(unittest.TestCase):
+ '''))
+
+ help, config = self.get_config(['--help', '--with-foo'])
+- self.assertEquals(help, textwrap.dedent('''\
++ self.assertEqual(help, textwrap.dedent('''\
+ Usage: configure [options]
+
+ Options: [defaults in brackets after descriptions]
+@@ -851,7 +851,7 @@ class TestConfigure(unittest.TestCase):
+ with self.assertRaises(ConfigureError) as e:
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '@depends function needs the same `when` as '
+ 'options it depends on')
+
+@@ -868,7 +868,7 @@ class TestConfigure(unittest.TestCase):
+ with self.assertRaises(ConfigureError) as e:
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '@depends function needs the same `when` as '
+ 'options it depends on')
+
+@@ -896,7 +896,7 @@ class TestConfigure(unittest.TestCase):
+ with self.moz_configure('include("../foo.configure")'):
+ self.get_config()
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ 'Cannot include `%s` because it is not in a subdirectory of `%s`'
+ % (mozpath.normpath(mozpath.join(test_data_path, '..',
+@@ -911,7 +911,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ 'Cannot include `%s` because it was included already.'
+ % mozpath.normpath(mozpath.join(test_data_path,
+@@ -924,7 +924,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(e.exception.message, "Unexpected type: 'int'")
++ self.assertEqual(e.exception.message, "Unexpected type: 'int'")
+
+ def test_include_when(self):
+ with MockedOpen({
+@@ -967,26 +967,26 @@ class TestConfigure(unittest.TestCase):
+ '''),
+ }):
+ config = self.get_config()
+- self.assertEquals(config, {})
++ self.assertEqual(config, {})
+
+ config = self.get_config(['--with-foo'])
+- self.assertEquals(config, {})
++ self.assertEqual(config, {})
+
+ config = self.get_config(['--with-bar'])
+- self.assertEquals(config, {
++ self.assertEqual(config, {
+ 'BAR': 'bar',
+ })
+
+ with self.assertRaises(InvalidOptionError) as e:
+ self.get_config(['--with-qux'])
+
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ '--with-qux is not available in this configuration'
+ )
+
+ config = self.get_config(['--with-foo', '--with-foo-really'])
+- self.assertEquals(config, {
++ self.assertEqual(config, {
+ 'FOO': 'foo',
+ 'FOO2': True,
+ })
+@@ -998,7 +998,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(e.exception.message, 'Cannot reassign builtins')
++ self.assertEqual(e.exception.message, 'Cannot reassign builtins')
+
+ with self.assertRaises(KeyError) as e:
+ with self.moz_configure('''
+@@ -1006,7 +1006,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ 'Cannot assign `foo` because it is neither a '
+ '@depends nor a @template')
+
+@@ -1019,7 +1019,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "@depends needs at least one argument")
+
+ with self.assertRaises(ConfigureError) as e:
+@@ -1030,7 +1030,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "'--with-foo' is not a known option. Maybe it's "
+ "declared too late?")
+
+@@ -1042,7 +1042,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "Option must not contain an '='")
+
+ with self.assertRaises(TypeError) as e:
+@@ -1053,7 +1053,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "Cannot use object of type 'int' as argument "
+ "to @depends")
+
+@@ -1065,7 +1065,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "Cannot decorate generator functions with @depends")
+
+ with self.assertRaises(TypeError) as e:
+@@ -1074,7 +1074,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "Unexpected type: 'int'")
+
+ with self.assertRaises(ConfigureError) as e:
+@@ -1088,7 +1088,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "The `foo` function may not be called")
+
+ with self.assertRaises(TypeError) as e:
+@@ -1099,7 +1099,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "depends_impl() got an unexpected keyword argument 'foo'")
+
+ def test_depends_when(self):
+@@ -1124,12 +1124,12 @@ class TestConfigure(unittest.TestCase):
+ set_config('QUX', qux)
+ '''):
+ config = self.get_config()
+- self.assertEquals(config, {
++ self.assertEqual(config, {
+ 'FOO': 'foo',
+ })
+
+ config = self.get_config(['--with-qux'])
+- self.assertEquals(config, {
++ self.assertEqual(config, {
+ 'FOO': 'foo',
+ 'QUX': 'qux',
+ })
+@@ -1144,7 +1144,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '@imports must appear after @template')
+
+ with self.assertRaises(ConfigureError) as e:
+@@ -1157,7 +1157,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '@imports must appear after @depends')
+
+ for import_ in (
+@@ -1174,7 +1174,7 @@ class TestConfigure(unittest.TestCase):
+ ''' % import_):
+ self.get_config()
+
+- self.assertEquals(e.exception.message, "Unexpected type: 'int'")
++ self.assertEqual(e.exception.message, "Unexpected type: 'int'")
+
+ with self.assertRaises(TypeError) as e:
+ with self.moz_configure('''
+@@ -1185,7 +1185,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(e.exception.message, "Unexpected type: 'int'")
++ self.assertEqual(e.exception.message, "Unexpected type: 'int'")
+
+ with self.assertRaises(ValueError) as e:
+ with self.moz_configure('''
+@@ -1195,7 +1195,7 @@ class TestConfigure(unittest.TestCase):
+ '''):
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "Invalid argument to @imports: 'os*'")
+
+ def test_only_when(self):
+@@ -1250,7 +1250,7 @@ class TestConfigure(unittest.TestCase):
+ with self.assertRaises(InvalidOptionError) as e:
+ self.get_config(['--foo'])
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '--foo is not available in this configuration')
+
+ # Cannot depend on an option defined in a only_when block, because we
+@@ -1261,7 +1261,7 @@ class TestConfigure(unittest.TestCase):
+ with self.assertRaises(ConfigureError) as e:
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '@depends function needs the same `when` as '
+ 'options it depends on')
+
+@@ -1278,7 +1278,7 @@ class TestConfigure(unittest.TestCase):
+ with self.assertRaises(InvalidOptionError) as e:
+ self.get_config()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '--foo is not available in this configuration')
+
+ # And similarly doesn't fail when the condition is true.
+diff --git a/python/mozbuild/mozbuild/test/configure/test_lint.py b/python/mozbuild/mozbuild/test/configure/test_lint.py
+index 6d8d4c49f..6ad897839 100644
+--- a/python/mozbuild/mozbuild/test/configure/test_lint.py
++++ b/python/mozbuild/mozbuild/test/configure/test_lint.py
+@@ -2,9 +2,9 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, print_function, unicode_literals
+
+-from StringIO import StringIO
++
++from io import StringIO
+ import os
+ import textwrap
+ import unittest
+@@ -62,7 +62,7 @@ class TestLint(unittest.TestCase):
+ '''):
+ self.lint_test()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "`bar` depends on '--help' and `foo`. "
+ "`foo` must depend on '--help'")
+
+@@ -85,7 +85,7 @@ class TestLint(unittest.TestCase):
+ '''):
+ self.lint_test()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "`bar` depends on '--help' and `foo`. "
+ "`foo` must depend on '--help'")
+
+@@ -111,7 +111,7 @@ class TestLint(unittest.TestCase):
+ '''):
+ self.lint_test()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "Missing @depends for `foo`: '--help'")
+
+ with self.assertRaises(ConfigureError) as e:
+@@ -130,7 +130,7 @@ class TestLint(unittest.TestCase):
+ '''):
+ self.lint_test()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "Missing @depends for `foo`: '--help'")
+
+ with self.assertRaises(ConfigureError) as e:
+@@ -145,7 +145,7 @@ class TestLint(unittest.TestCase):
+ '''):
+ self.lint_test()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "Missing @depends for `foo`: '--help'")
+
+ # This would have failed with "Missing @depends for `foo`: '--help'"
+@@ -178,7 +178,7 @@ class TestLint(unittest.TestCase):
+ '''):
+ self.lint_test()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "Missing @depends for `foo`: '--help'")
+
+ # There is a default restricted `os` module when there is no explicit
+@@ -205,7 +205,7 @@ class TestLint(unittest.TestCase):
+ '''):
+ self.lint_test()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "%s:3: The dependency on `--foo` is unused."
+ % mozpath.join(test_data_path, 'moz.configure'))
+
+@@ -222,7 +222,7 @@ class TestLint(unittest.TestCase):
+ '''):
+ self.lint_test()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "%s:5: The dependency on `bar` is unused."
+ % mozpath.join(test_data_path, 'moz.configure'))
+
+@@ -236,7 +236,7 @@ class TestLint(unittest.TestCase):
+ '''):
+ self.lint_test()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "%s:2: The dependency on `<lambda>` is unused."
+ % mozpath.join(test_data_path, 'moz.configure'))
+
+@@ -257,7 +257,7 @@ class TestLint(unittest.TestCase):
+ '''):
+ self.lint_test()
+
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "%s:9: The dependency on `qux` is unused."
+ % mozpath.join(test_data_path, 'moz.configure'))
+
+diff --git a/python/mozbuild/mozbuild/test/configure/test_moz_configure.py b/python/mozbuild/mozbuild/test/configure/test_moz_configure.py
+index b3342e268..7a26e9e09 100644
+--- a/python/mozbuild/mozbuild/test/configure/test_moz_configure.py
++++ b/python/mozbuild/mozbuild/test/configure/test_moz_configure.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, print_function, unicode_literals
++
+
+ from mozunit import main
+ from mozpack import path as mozpath
+@@ -27,10 +27,10 @@ class TestMozConfigure(BaseConfigureTest):
+ shell = mozpath.abspath('/bin/sh')
+ return result.replace('CONFIG_SHELL=%s ' % shell, '')
+
+- self.assertEquals('--enable-application=browser',
++ self.assertEqual('--enable-application=browser',
+ get_value_for(['--enable-application=browser']))
+
+- self.assertEquals('--enable-application=browser '
++ self.assertEqual('--enable-application=browser '
+ 'MOZ_VTUNE=1',
+ get_value_for(['--enable-application=browser',
+ 'MOZ_VTUNE=1']))
+@@ -39,25 +39,25 @@ class TestMozConfigure(BaseConfigureTest):
+ environ={'MOZ_VTUNE': '1'},
+ mozconfig='ac_add_options --enable-project=js')
+
+- self.assertEquals('--enable-project=js MOZ_VTUNE=1',
++ self.assertEqual('--enable-project=js MOZ_VTUNE=1',
+ value)
+
+ # --disable-js-shell is the default, so it's filtered out.
+- self.assertEquals('--enable-application=browser',
++ self.assertEqual('--enable-application=browser',
+ get_value_for(['--enable-application=browser',
+ '--disable-js-shell']))
+
+ # Normally, --without-foo would be filtered out because that's the
+ # default, but since it is a (fake) old-configure option, it always
+ # appears.
+- self.assertEquals('--enable-application=browser --without-foo',
++ self.assertEqual('--enable-application=browser --without-foo',
+ get_value_for(['--enable-application=browser',
+ '--without-foo']))
+- self.assertEquals('--enable-application=browser --with-foo',
++ self.assertEqual('--enable-application=browser --with-foo',
+ get_value_for(['--enable-application=browser',
+ '--with-foo']))
+
+- self.assertEquals("--enable-application=browser '--with-foo=foo bar'",
++ self.assertEqual("--enable-application=browser '--with-foo=foo bar'",
+ get_value_for(['--enable-application=browser',
+ '--with-foo=foo bar']))
+
+@@ -69,7 +69,7 @@ class TestMozConfigure(BaseConfigureTest):
+ self.version = version
+
+ def __call__(self, stdin, args):
+- this.assertEquals(args, ('-version',))
++ this.assertEqual(args, ('-version',))
+ return 0, self.version, ''
+
+ def check_nsis_version(version):
+@@ -84,13 +84,13 @@ class TestMozConfigure(BaseConfigureTest):
+ with self.assertRaises(SystemExit) as e:
+ check_nsis_version('v3.0a2')
+
+- self.assertEquals(check_nsis_version('v3.0b1'), '3.0b1')
+- self.assertEquals(check_nsis_version('v3.0b2'), '3.0b2')
+- self.assertEquals(check_nsis_version('v3.0rc1'), '3.0rc1')
+- self.assertEquals(check_nsis_version('v3.0'), '3.0')
+- self.assertEquals(check_nsis_version('v3.0-2'), '3.0')
+- self.assertEquals(check_nsis_version('v3.0.1'), '3.0')
+- self.assertEquals(check_nsis_version('v3.1'), '3.1')
++ self.assertEqual(check_nsis_version('v3.0b1'), '3.0b1')
++ self.assertEqual(check_nsis_version('v3.0b2'), '3.0b2')
++ self.assertEqual(check_nsis_version('v3.0rc1'), '3.0rc1')
++ self.assertEqual(check_nsis_version('v3.0'), '3.0')
++ self.assertEqual(check_nsis_version('v3.0-2'), '3.0')
++ self.assertEqual(check_nsis_version('v3.0.1'), '3.0')
++ self.assertEqual(check_nsis_version('v3.1'), '3.1')
+
+
+ if __name__ == '__main__':
+diff --git a/python/mozbuild/mozbuild/test/configure/test_options.py b/python/mozbuild/mozbuild/test/configure/test_options.py
+index 9defccb2c..330ce3b1f 100644
+--- a/python/mozbuild/mozbuild/test/configure/test_options.py
++++ b/python/mozbuild/mozbuild/test/configure/test_options.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, print_function, unicode_literals
++
+
+ import unittest
+
+@@ -28,139 +28,139 @@ class Option(Option):
+ class TestOption(unittest.TestCase):
+ def test_option(self):
+ option = Option('--option')
+- self.assertEquals(option.prefix, '')
+- self.assertEquals(option.name, 'option')
+- self.assertEquals(option.env, None)
++ self.assertEqual(option.prefix, '')
++ self.assertEqual(option.name, 'option')
++ self.assertEqual(option.env, None)
+ self.assertFalse(option.default)
+
+ option = Option('--enable-option')
+- self.assertEquals(option.prefix, 'enable')
+- self.assertEquals(option.name, 'option')
+- self.assertEquals(option.env, None)
++ self.assertEqual(option.prefix, 'enable')
++ self.assertEqual(option.name, 'option')
++ self.assertEqual(option.env, None)
+ self.assertFalse(option.default)
+
+ option = Option('--disable-option')
+- self.assertEquals(option.prefix, 'disable')
+- self.assertEquals(option.name, 'option')
+- self.assertEquals(option.env, None)
++ self.assertEqual(option.prefix, 'disable')
++ self.assertEqual(option.name, 'option')
++ self.assertEqual(option.env, None)
+ self.assertTrue(option.default)
+
+ option = Option('--with-option')
+- self.assertEquals(option.prefix, 'with')
+- self.assertEquals(option.name, 'option')
+- self.assertEquals(option.env, None)
++ self.assertEqual(option.prefix, 'with')
++ self.assertEqual(option.name, 'option')
++ self.assertEqual(option.env, None)
+ self.assertFalse(option.default)
+
+ option = Option('--without-option')
+- self.assertEquals(option.prefix, 'without')
+- self.assertEquals(option.name, 'option')
+- self.assertEquals(option.env, None)
++ self.assertEqual(option.prefix, 'without')
++ self.assertEqual(option.name, 'option')
++ self.assertEqual(option.env, None)
+ self.assertTrue(option.default)
+
+ option = Option('--without-option-foo', env='MOZ_OPTION')
+- self.assertEquals(option.env, 'MOZ_OPTION')
++ self.assertEqual(option.env, 'MOZ_OPTION')
+
+ option = Option(env='MOZ_OPTION')
+- self.assertEquals(option.prefix, '')
+- self.assertEquals(option.name, None)
+- self.assertEquals(option.env, 'MOZ_OPTION')
++ self.assertEqual(option.prefix, '')
++ self.assertEqual(option.name, None)
++ self.assertEqual(option.env, 'MOZ_OPTION')
+ self.assertFalse(option.default)
+
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--option', nargs=0, default=('a',))
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "The given `default` doesn't satisfy `nargs`")
+
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--option', nargs=1, default=())
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ 'default must be a bool, a string or a tuple of strings')
+
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--option', nargs=1, default=True)
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "The given `default` doesn't satisfy `nargs`")
+
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--option', nargs=1, default=('a', 'b'))
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "The given `default` doesn't satisfy `nargs`")
+
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--option', nargs=2, default=())
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ 'default must be a bool, a string or a tuple of strings')
+
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--option', nargs=2, default=True)
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "The given `default` doesn't satisfy `nargs`")
+
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--option', nargs=2, default=('a',))
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "The given `default` doesn't satisfy `nargs`")
+
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--option', nargs='?', default=('a', 'b'))
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "The given `default` doesn't satisfy `nargs`")
+
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--option', nargs='+', default=())
+- self.assertEquals(
++ self.assertEqual(
+ e.exception.message,
+ 'default must be a bool, a string or a tuple of strings')
+
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--option', nargs='+', default=True)
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "The given `default` doesn't satisfy `nargs`")
+
+ # --disable options with a nargs value that requires at least one
+ # argument need to be given a default.
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--disable-option', nargs=1)
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "The given `default` doesn't satisfy `nargs`")
+
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--disable-option', nargs='+')
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "The given `default` doesn't satisfy `nargs`")
+
+ # Test nargs inference from default value
+ option = Option('--with-foo', default=True)
+- self.assertEquals(option.nargs, 0)
++ self.assertEqual(option.nargs, 0)
+
+ option = Option('--with-foo', default=False)
+- self.assertEquals(option.nargs, 0)
++ self.assertEqual(option.nargs, 0)
+
+ option = Option('--with-foo', default='a')
+- self.assertEquals(option.nargs, '?')
++ self.assertEqual(option.nargs, '?')
+
+ option = Option('--with-foo', default=('a',))
+- self.assertEquals(option.nargs, '?')
++ self.assertEqual(option.nargs, '?')
+
+ option = Option('--with-foo', default=('a', 'b'))
+- self.assertEquals(option.nargs, '*')
++ self.assertEqual(option.nargs, '*')
+
+ option = Option(env='FOO', default=True)
+- self.assertEquals(option.nargs, 0)
++ self.assertEqual(option.nargs, 0)
+
+ option = Option(env='FOO', default=False)
+- self.assertEquals(option.nargs, 0)
++ self.assertEqual(option.nargs, 0)
+
+ option = Option(env='FOO', default='a')
+- self.assertEquals(option.nargs, '?')
++ self.assertEqual(option.nargs, '?')
+
+ option = Option(env='FOO', default=('a',))
+- self.assertEquals(option.nargs, '?')
++ self.assertEqual(option.nargs, '?')
+
+ option = Option(env='FOO', default=('a', 'b'))
+- self.assertEquals(option.nargs, '*')
++ self.assertEqual(option.nargs, '*')
+
+ def test_option_option(self):
+ for option in (
+@@ -170,70 +170,70 @@ class TestOption(unittest.TestCase):
+ '--with-option',
+ '--without-option',
+ ):
+- self.assertEquals(Option(option).option, option)
+- self.assertEquals(Option(option, env='FOO').option, option)
++ self.assertEqual(Option(option).option, option)
++ self.assertEqual(Option(option, env='FOO').option, option)
+
+ opt = Option(option, default=False)
+- self.assertEquals(opt.option,
++ self.assertEqual(opt.option,
+ option.replace('-disable-', '-enable-')
+ .replace('-without-', '-with-'))
+
+ opt = Option(option, default=True)
+- self.assertEquals(opt.option,
++ self.assertEqual(opt.option,
+ option.replace('-enable-', '-disable-')
+ .replace('-with-', '-without-'))
+
+- self.assertEquals(Option(env='FOO').option, 'FOO')
++ self.assertEqual(Option(env='FOO').option, 'FOO')
+
+ def test_option_choices(self):
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--option', nargs=3, choices=('a', 'b'))
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ 'Not enough `choices` for `nargs`')
+
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--without-option', nargs=1, choices=('a', 'b'))
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ 'A `default` must be given along with `choices`')
+
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--without-option', nargs='+', choices=('a', 'b'))
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ 'A `default` must be given along with `choices`')
+
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--without-option', default='c', choices=('a', 'b'))
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "The `default` value must be one of 'a', 'b'")
+
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--without-option', default=('a', 'c',), choices=('a', 'b'))
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "The `default` value must be one of 'a', 'b'")
+
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--without-option', default=('c',), choices=('a', 'b'))
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "The `default` value must be one of 'a', 'b'")
+
+ option = Option('--with-option', nargs='+', choices=('a', 'b'))
+ with self.assertRaises(InvalidOptionError) as e:
+ option.get_value('--with-option=c')
+- self.assertEquals(e.exception.message, "'c' is not one of 'a', 'b'")
++ self.assertEqual(e.exception.message, "'c' is not one of 'a', 'b'")
+
+ value = option.get_value('--with-option=b,a')
+ self.assertTrue(value)
+- self.assertEquals(PositiveOptionValue(('b', 'a')), value)
++ self.assertEqual(PositiveOptionValue(('b', 'a')), value)
+
+ option = Option('--without-option', nargs='*', default='a',
+ choices=('a', 'b'))
+ with self.assertRaises(InvalidOptionError) as e:
+ option.get_value('--with-option=c')
+- self.assertEquals(e.exception.message, "'c' is not one of 'a', 'b'")
++ self.assertEqual(e.exception.message, "'c' is not one of 'a', 'b'")
+
+ value = option.get_value('--with-option=b,a')
+ self.assertTrue(value)
+- self.assertEquals(PositiveOptionValue(('b', 'a')), value)
++ self.assertEqual(PositiveOptionValue(('b', 'a')), value)
+
+ # Test nargs inference from choices
+ option = Option('--with-option', choices=('a', 'b'))
+@@ -244,37 +244,37 @@ class TestOption(unittest.TestCase):
+ choices=('a', 'b', 'c', 'd'))
+
+ value = option.get_value('--with-option=+d')
+- self.assertEquals(PositiveOptionValue(('b', 'c', 'd')), value)
++ self.assertEqual(PositiveOptionValue(('b', 'c', 'd')), value)
+
+ value = option.get_value('--with-option=-b')
+- self.assertEquals(PositiveOptionValue(('c',)), value)
++ self.assertEqual(PositiveOptionValue(('c',)), value)
+
+ value = option.get_value('--with-option=-b,+d')
+- self.assertEquals(PositiveOptionValue(('c','d')), value)
++ self.assertEqual(PositiveOptionValue(('c','d')), value)
+
+ # Adding something that is in the default is fine
+ value = option.get_value('--with-option=+b')
+- self.assertEquals(PositiveOptionValue(('b', 'c')), value)
++ self.assertEqual(PositiveOptionValue(('b', 'c')), value)
+
+ # Removing something that is not in the default is fine, as long as it
+ # is one of the choices
+ value = option.get_value('--with-option=-a')
+- self.assertEquals(PositiveOptionValue(('b', 'c')), value)
++ self.assertEqual(PositiveOptionValue(('b', 'c')), value)
+
+ with self.assertRaises(InvalidOptionError) as e:
+ option.get_value('--with-option=-e')
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "'e' is not one of 'a', 'b', 'c', 'd'")
+
+ # Other "not a choice" errors.
+ with self.assertRaises(InvalidOptionError) as e:
+ option.get_value('--with-option=+e')
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "'e' is not one of 'a', 'b', 'c', 'd'")
+
+ with self.assertRaises(InvalidOptionError) as e:
+ option.get_value('--with-option=e')
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "'e' is not one of 'a', 'b', 'c', 'd'")
+
+ def test_option_value_compare(self):
+@@ -294,7 +294,7 @@ class TestOption(unittest.TestCase):
+
+ # For usability reasons, we raise TypeError when attempting to compare
+ # against a non-tuple.
+- with self.assertRaisesRegexp(TypeError, 'cannot compare a'):
++ with self.assertRaisesRegex(TypeError, 'cannot compare a'):
+ val == 'foo'
+
+ # But we allow empty option values to compare otherwise we can't
+@@ -313,36 +313,36 @@ class TestOption(unittest.TestCase):
+
+ def test_option_value_format(self):
+ val = PositiveOptionValue()
+- self.assertEquals('--with-value', val.format('--with-value'))
+- self.assertEquals('--with-value', val.format('--without-value'))
+- self.assertEquals('--enable-value', val.format('--enable-value'))
+- self.assertEquals('--enable-value', val.format('--disable-value'))
+- self.assertEquals('--value', val.format('--value'))
+- self.assertEquals('VALUE=1', val.format('VALUE'))
++ self.assertEqual('--with-value', val.format('--with-value'))
++ self.assertEqual('--with-value', val.format('--without-value'))
++ self.assertEqual('--enable-value', val.format('--enable-value'))
++ self.assertEqual('--enable-value', val.format('--disable-value'))
++ self.assertEqual('--value', val.format('--value'))
++ self.assertEqual('VALUE=1', val.format('VALUE'))
+
+ val = PositiveOptionValue(('a',))
+- self.assertEquals('--with-value=a', val.format('--with-value'))
+- self.assertEquals('--with-value=a', val.format('--without-value'))
+- self.assertEquals('--enable-value=a', val.format('--enable-value'))
+- self.assertEquals('--enable-value=a', val.format('--disable-value'))
+- self.assertEquals('--value=a', val.format('--value'))
+- self.assertEquals('VALUE=a', val.format('VALUE'))
++ self.assertEqual('--with-value=a', val.format('--with-value'))
++ self.assertEqual('--with-value=a', val.format('--without-value'))
++ self.assertEqual('--enable-value=a', val.format('--enable-value'))
++ self.assertEqual('--enable-value=a', val.format('--disable-value'))
++ self.assertEqual('--value=a', val.format('--value'))
++ self.assertEqual('VALUE=a', val.format('VALUE'))
+
+ val = PositiveOptionValue(('a', 'b'))
+- self.assertEquals('--with-value=a,b', val.format('--with-value'))
+- self.assertEquals('--with-value=a,b', val.format('--without-value'))
+- self.assertEquals('--enable-value=a,b', val.format('--enable-value'))
+- self.assertEquals('--enable-value=a,b', val.format('--disable-value'))
+- self.assertEquals('--value=a,b', val.format('--value'))
+- self.assertEquals('VALUE=a,b', val.format('VALUE'))
++ self.assertEqual('--with-value=a,b', val.format('--with-value'))
++ self.assertEqual('--with-value=a,b', val.format('--without-value'))
++ self.assertEqual('--enable-value=a,b', val.format('--enable-value'))
++ self.assertEqual('--enable-value=a,b', val.format('--disable-value'))
++ self.assertEqual('--value=a,b', val.format('--value'))
++ self.assertEqual('VALUE=a,b', val.format('VALUE'))
+
+ val = NegativeOptionValue()
+- self.assertEquals('--without-value', val.format('--with-value'))
+- self.assertEquals('--without-value', val.format('--without-value'))
+- self.assertEquals('--disable-value', val.format('--enable-value'))
+- self.assertEquals('--disable-value', val.format('--disable-value'))
+- self.assertEquals('', val.format('--value'))
+- self.assertEquals('VALUE=', val.format('VALUE'))
++ self.assertEqual('--without-value', val.format('--with-value'))
++ self.assertEqual('--without-value', val.format('--without-value'))
++ self.assertEqual('--disable-value', val.format('--enable-value'))
++ self.assertEqual('--disable-value', val.format('--disable-value'))
++ self.assertEqual('', val.format('--value'))
++ self.assertEqual('VALUE=', val.format('VALUE'))
+
+ def test_option_value(self, name='option', nargs=0, default=None):
+ disabled = name.startswith(('disable-', 'without-'))
+@@ -359,28 +359,28 @@ class TestOption(unittest.TestCase):
+
+ if nargs in (0, '?', '*') or disabled:
+ value = option.get_value('--%s' % name, 'option')
+- self.assertEquals(value, posOptionValue())
+- self.assertEquals(value.origin, 'option')
++ self.assertEqual(value, posOptionValue())
++ self.assertEqual(value.origin, 'option')
+ else:
+ with self.assertRaises(InvalidOptionError) as e:
+ option.get_value('--%s' % name)
+ if nargs == 1:
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '--%s takes 1 value' % name)
+ elif nargs == '+':
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '--%s takes 1 or more values' % name)
+ else:
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '--%s takes 2 values' % name)
+
+ value = option.get_value('')
+- self.assertEquals(value, defaultValue)
+- self.assertEquals(value.origin, 'default')
++ self.assertEqual(value, defaultValue)
++ self.assertEqual(value.origin, 'default')
+
+ value = option.get_value(None)
+- self.assertEquals(value, defaultValue)
+- self.assertEquals(value.origin, 'default')
++ self.assertEqual(value, defaultValue)
++ self.assertEqual(value.origin, 'default')
+
+ with self.assertRaises(AssertionError):
+ value = option.get_value('MOZ_OPTION=', 'environment')
+@@ -393,47 +393,47 @@ class TestOption(unittest.TestCase):
+
+ if nargs in (1, '?', '*', '+') and not disabled:
+ value = option.get_value('--%s=' % name, 'option')
+- self.assertEquals(value, PositiveOptionValue(('',)))
+- self.assertEquals(value.origin, 'option')
++ self.assertEqual(value, PositiveOptionValue(('',)))
++ self.assertEqual(value.origin, 'option')
+ else:
+ with self.assertRaises(InvalidOptionError) as e:
+ option.get_value('--%s=' % name)
+ if disabled:
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ 'Cannot pass a value to --%s' % name)
+ else:
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '--%s takes %d values' % (name, nargs))
+
+ if nargs in (1, '?', '*', '+') and not disabled:
+ value = option.get_value('--%s=foo' % name, 'option')
+- self.assertEquals(value, PositiveOptionValue(('foo',)))
+- self.assertEquals(value.origin, 'option')
++ self.assertEqual(value, PositiveOptionValue(('foo',)))
++ self.assertEqual(value.origin, 'option')
+ else:
+ with self.assertRaises(InvalidOptionError) as e:
+ option.get_value('--%s=foo' % name)
+ if disabled:
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ 'Cannot pass a value to --%s' % name)
+ else:
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '--%s takes %d values' % (name, nargs))
+
+ if nargs in (2, '*', '+') and not disabled:
+ value = option.get_value('--%s=foo,bar' % name, 'option')
+- self.assertEquals(value, PositiveOptionValue(('foo', 'bar')))
+- self.assertEquals(value.origin, 'option')
++ self.assertEqual(value, PositiveOptionValue(('foo', 'bar')))
++ self.assertEqual(value.origin, 'option')
+ else:
+ with self.assertRaises(InvalidOptionError) as e:
+ option.get_value('--%s=foo,bar' % name, 'option')
+ if disabled:
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ 'Cannot pass a value to --%s' % name)
+ elif nargs == '?':
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '--%s takes 0 or 1 values' % name)
+ else:
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '--%s takes %d value%s'
+ % (name, nargs, 's' if nargs != 1 else ''))
+
+@@ -441,59 +441,59 @@ class TestOption(unittest.TestCase):
+ default=default)
+ if nargs in (0, '?', '*') or disabled:
+ value = option.get_value('--%s' % name, 'option')
+- self.assertEquals(value, posOptionValue())
+- self.assertEquals(value.origin, 'option')
++ self.assertEqual(value, posOptionValue())
++ self.assertEqual(value.origin, 'option')
+ else:
+ with self.assertRaises(InvalidOptionError) as e:
+ option.get_value('--%s' % name)
+ if disabled:
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ 'Cannot pass a value to --%s' % name)
+ elif nargs == '+':
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '--%s takes 1 or more values' % name)
+ else:
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '--%s takes %d value%s'
+ % (name, nargs, 's' if nargs != 1 else ''))
+
+ value = option.get_value('')
+- self.assertEquals(value, defaultValue)
+- self.assertEquals(value.origin, 'default')
++ self.assertEqual(value, defaultValue)
++ self.assertEqual(value.origin, 'default')
+
+ value = option.get_value(None)
+- self.assertEquals(value, defaultValue)
+- self.assertEquals(value.origin, 'default')
++ self.assertEqual(value, defaultValue)
++ self.assertEqual(value.origin, 'default')
+
+ value = option.get_value('MOZ_OPTION=', 'environment')
+- self.assertEquals(value, NegativeOptionValue())
+- self.assertEquals(value.origin, 'environment')
++ self.assertEqual(value, NegativeOptionValue())
++ self.assertEqual(value.origin, 'environment')
+
+ if nargs in (0, '?', '*'):
+ value = option.get_value('MOZ_OPTION=1', 'environment')
+- self.assertEquals(value, PositiveOptionValue())
+- self.assertEquals(value.origin, 'environment')
++ self.assertEqual(value, PositiveOptionValue())
++ self.assertEqual(value.origin, 'environment')
+ elif nargs in (1, '+'):
+ value = option.get_value('MOZ_OPTION=1', 'environment')
+- self.assertEquals(value, PositiveOptionValue(('1',)))
+- self.assertEquals(value.origin, 'environment')
++ self.assertEqual(value, PositiveOptionValue(('1',)))
++ self.assertEqual(value.origin, 'environment')
+ else:
+ with self.assertRaises(InvalidOptionError) as e:
+ option.get_value('MOZ_OPTION=1', 'environment')
+- self.assertEquals(e.exception.message, 'MOZ_OPTION takes 2 values')
++ self.assertEqual(e.exception.message, 'MOZ_OPTION takes 2 values')
+
+ if nargs in (1, '?', '*', '+') and not disabled:
+ value = option.get_value('--%s=' % name, 'option')
+- self.assertEquals(value, PositiveOptionValue(('',)))
+- self.assertEquals(value.origin, 'option')
++ self.assertEqual(value, PositiveOptionValue(('',)))
++ self.assertEqual(value.origin, 'option')
+ else:
+ with self.assertRaises(InvalidOptionError) as e:
+ option.get_value('--%s=' % name, 'option')
+ if disabled:
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ 'Cannot pass a value to --%s' % name)
+ else:
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '--%s takes %d values' % (name, nargs))
+
+ with self.assertRaises(AssertionError):
+@@ -501,26 +501,26 @@ class TestOption(unittest.TestCase):
+
+ if nargs in (1, '?', '*', '+'):
+ value = option.get_value('MOZ_OPTION=foo', 'environment')
+- self.assertEquals(value, PositiveOptionValue(('foo',)))
+- self.assertEquals(value.origin, 'environment')
++ self.assertEqual(value, PositiveOptionValue(('foo',)))
++ self.assertEqual(value.origin, 'environment')
+ else:
+ with self.assertRaises(InvalidOptionError) as e:
+ option.get_value('MOZ_OPTION=foo', 'environment')
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ 'MOZ_OPTION takes %d values' % nargs)
+
+ if nargs in (2, '*', '+'):
+ value = option.get_value('MOZ_OPTION=foo,bar', 'environment')
+- self.assertEquals(value, PositiveOptionValue(('foo', 'bar')))
+- self.assertEquals(value.origin, 'environment')
++ self.assertEqual(value, PositiveOptionValue(('foo', 'bar')))
++ self.assertEqual(value.origin, 'environment')
+ else:
+ with self.assertRaises(InvalidOptionError) as e:
+ option.get_value('MOZ_OPTION=foo,bar', 'environment')
+ if nargs == '?':
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ 'MOZ_OPTION takes 0 or 1 values')
+ else:
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ 'MOZ_OPTION takes %d value%s'
+ % (nargs, 's' if nargs != 1 else ''))
+
+@@ -532,26 +532,26 @@ class TestOption(unittest.TestCase):
+ env_option.get_value('--%s' % name)
+
+ value = env_option.get_value('')
+- self.assertEquals(value, defaultValue)
+- self.assertEquals(value.origin, 'default')
++ self.assertEqual(value, defaultValue)
++ self.assertEqual(value.origin, 'default')
+
+ value = env_option.get_value('MOZ_OPTION=', 'environment')
+- self.assertEquals(value, negOptionValue())
+- self.assertEquals(value.origin, 'environment')
++ self.assertEqual(value, negOptionValue())
++ self.assertEqual(value.origin, 'environment')
+
+ if nargs in (0, '?', '*'):
+ value = env_option.get_value('MOZ_OPTION=1', 'environment')
+- self.assertEquals(value, posOptionValue())
++ self.assertEqual(value, posOptionValue())
+ self.assertTrue(value)
+- self.assertEquals(value.origin, 'environment')
++ self.assertEqual(value.origin, 'environment')
+ elif nargs in (1, '+'):
+ value = env_option.get_value('MOZ_OPTION=1', 'environment')
+- self.assertEquals(value, PositiveOptionValue(('1',)))
+- self.assertEquals(value.origin, 'environment')
++ self.assertEqual(value, PositiveOptionValue(('1',)))
++ self.assertEqual(value.origin, 'environment')
+ else:
+ with self.assertRaises(InvalidOptionError) as e:
+ env_option.get_value('MOZ_OPTION=1', 'environment')
+- self.assertEquals(e.exception.message, 'MOZ_OPTION takes 2 values')
++ self.assertEqual(e.exception.message, 'MOZ_OPTION takes 2 values')
+
+ with self.assertRaises(AssertionError) as e:
+ env_option.get_value('--%s' % name)
+@@ -561,26 +561,26 @@ class TestOption(unittest.TestCase):
+
+ if nargs in (1, '?', '*', '+'):
+ value = env_option.get_value('MOZ_OPTION=foo', 'environment')
+- self.assertEquals(value, PositiveOptionValue(('foo',)))
+- self.assertEquals(value.origin, 'environment')
++ self.assertEqual(value, PositiveOptionValue(('foo',)))
++ self.assertEqual(value.origin, 'environment')
+ else:
+ with self.assertRaises(InvalidOptionError) as e:
+ env_option.get_value('MOZ_OPTION=foo', 'environment')
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ 'MOZ_OPTION takes %d values' % nargs)
+
+ if nargs in (2, '*', '+'):
+ value = env_option.get_value('MOZ_OPTION=foo,bar', 'environment')
+- self.assertEquals(value, PositiveOptionValue(('foo', 'bar')))
+- self.assertEquals(value.origin, 'environment')
++ self.assertEqual(value, PositiveOptionValue(('foo', 'bar')))
++ self.assertEqual(value.origin, 'environment')
+ else:
+ with self.assertRaises(InvalidOptionError) as e:
+ env_option.get_value('MOZ_OPTION=foo,bar', 'environment')
+ if nargs == '?':
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ 'MOZ_OPTION takes 0 or 1 values')
+ else:
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ 'MOZ_OPTION takes %d value%s'
+ % (nargs, 's' if nargs != 1 else ''))
+
+@@ -592,28 +592,28 @@ class TestOption(unittest.TestCase):
+ default=default)
+
+ value = option.get_value('--%s-option' % disable, 'option')
+- self.assertEquals(value, NegativeOptionValue())
+- self.assertEquals(value.origin, 'option')
++ self.assertEqual(value, NegativeOptionValue())
++ self.assertEqual(value.origin, 'option')
+
+ option = self.test_option_value('%s-option' % disable, nargs=nargs,
+ default=default)
+
+ if nargs in (0, '?', '*'):
+ value = option.get_value('--%s-option' % enable, 'option')
+- self.assertEquals(value, PositiveOptionValue())
+- self.assertEquals(value.origin, 'option')
++ self.assertEqual(value, PositiveOptionValue())
++ self.assertEqual(value.origin, 'option')
+ else:
+ with self.assertRaises(InvalidOptionError) as e:
+ option.get_value('--%s-option' % enable, 'option')
+ if nargs == 1:
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '--%s-option takes 1 value' % enable)
+ elif nargs == '+':
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '--%s-option takes 1 or more values'
+ % enable)
+ else:
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ '--%s-option takes 2 values' % enable)
+
+ def test_option_value_with(self):
+@@ -622,12 +622,12 @@ class TestOption(unittest.TestCase):
+ def test_option_value_invalid_nargs(self):
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--option', nargs='foo')
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "nargs must be a positive integer, '?', '*' or '+'")
+
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--option', nargs=-2)
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "nargs must be a positive integer, '?', '*' or '+'")
+
+ def test_option_value_nargs_1(self):
+@@ -638,7 +638,7 @@ class TestOption(unittest.TestCase):
+ # A default is required
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--disable-option', nargs=1)
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "The given `default` doesn't satisfy `nargs`")
+
+ def test_option_value_nargs_2(self):
+@@ -649,7 +649,7 @@ class TestOption(unittest.TestCase):
+ # A default is required
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--disable-option', nargs=2)
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "The given `default` doesn't satisfy `nargs`")
+
+ def test_option_value_nargs_0_or_1(self):
+@@ -676,7 +676,7 @@ class TestOption(unittest.TestCase):
+ # A default is required
+ with self.assertRaises(InvalidOptionError) as e:
+ Option('--disable-option', nargs='+')
+- self.assertEquals(e.exception.message,
++ self.assertEqual(e.exception.message,
+ "The given `default` doesn't satisfy `nargs`")
+
+
+@@ -684,21 +684,21 @@ class TestCommandLineHelper(unittest.TestCase):
+ def test_basic(self):
+ helper = CommandLineHelper({}, ['cmd', '--foo', '--bar'])
+
+- self.assertEquals(['--foo', '--bar'], list(helper))
++ self.assertEqual(['--foo', '--bar'], list(helper))
+
+ helper.add('--enable-qux')
+
+- self.assertEquals(['--foo', '--bar', '--enable-qux'], list(helper))
++ self.assertEqual(['--foo', '--bar', '--enable-qux'], list(helper))
+
+ value, option = helper.handle(Option('--bar'))
+- self.assertEquals(['--foo', '--enable-qux'], list(helper))
+- self.assertEquals(PositiveOptionValue(), value)
+- self.assertEquals('--bar', option)
++ self.assertEqual(['--foo', '--enable-qux'], list(helper))
++ self.assertEqual(PositiveOptionValue(), value)
++ self.assertEqual('--bar', option)
+
+ value, option = helper.handle(Option('--baz'))
+- self.assertEquals(['--foo', '--enable-qux'], list(helper))
+- self.assertEquals(NegativeOptionValue(), value)
+- self.assertEquals(None, option)
++ self.assertEqual(['--foo', '--enable-qux'], list(helper))
++ self.assertEqual(NegativeOptionValue(), value)
++ self.assertEqual(None, option)
+
+ with self.assertRaises(AssertionError):
+ CommandLineHelper({}, ['--foo', '--bar'])
+@@ -707,89 +707,89 @@ class TestCommandLineHelper(unittest.TestCase):
+ foo = Option('--with-foo', nargs='*')
+ helper = CommandLineHelper({}, ['cmd', '--with-foo=a,b'])
+ value, option = helper.handle(foo)
+- self.assertEquals(PositiveOptionValue(('a', 'b')), value)
+- self.assertEquals('command-line', value.origin)
+- self.assertEquals('--with-foo=a,b', option)
++ self.assertEqual(PositiveOptionValue(('a', 'b')), value)
++ self.assertEqual('command-line', value.origin)
++ self.assertEqual('--with-foo=a,b', option)
+
+ helper = CommandLineHelper({}, ['cmd', '--with-foo=a,b',
+ '--without-foo'])
+ value, option = helper.handle(foo)
+- self.assertEquals(NegativeOptionValue(), value)
+- self.assertEquals('command-line', value.origin)
+- self.assertEquals('--without-foo', option)
++ self.assertEqual(NegativeOptionValue(), value)
++ self.assertEqual('command-line', value.origin)
++ self.assertEqual('--without-foo', option)
+
+ helper = CommandLineHelper({}, ['cmd', '--without-foo',
+ '--with-foo=a,b'])
+ value, option = helper.handle(foo)
+- self.assertEquals(PositiveOptionValue(('a', 'b')), value)
+- self.assertEquals('command-line', value.origin)
+- self.assertEquals('--with-foo=a,b', option)
++ self.assertEqual(PositiveOptionValue(('a', 'b')), value)
++ self.assertEqual('command-line', value.origin)
++ self.assertEqual('--with-foo=a,b', option)
+
+ foo = Option('--with-foo', env='FOO', nargs='*')
+ helper = CommandLineHelper({'FOO': ''}, ['cmd', '--with-foo=a,b'])
+ value, option = helper.handle(foo)
+- self.assertEquals(PositiveOptionValue(('a', 'b')), value)
+- self.assertEquals('command-line', value.origin)
+- self.assertEquals('--with-foo=a,b', option)
++ self.assertEqual(PositiveOptionValue(('a', 'b')), value)
++ self.assertEqual('command-line', value.origin)
++ self.assertEqual('--with-foo=a,b', option)
+
+ helper = CommandLineHelper({'FOO': 'a,b'}, ['cmd', '--without-foo'])
+ value, option = helper.handle(foo)
+- self.assertEquals(NegativeOptionValue(), value)
+- self.assertEquals('command-line', value.origin)
+- self.assertEquals('--without-foo', option)
++ self.assertEqual(NegativeOptionValue(), value)
++ self.assertEqual('command-line', value.origin)
++ self.assertEqual('--without-foo', option)
+
+ helper = CommandLineHelper({'FOO': ''}, ['cmd', '--with-bar=a,b'])
+ value, option = helper.handle(foo)
+- self.assertEquals(NegativeOptionValue(), value)
+- self.assertEquals('environment', value.origin)
+- self.assertEquals('FOO=', option)
++ self.assertEqual(NegativeOptionValue(), value)
++ self.assertEqual('environment', value.origin)
++ self.assertEqual('FOO=', option)
+
+ helper = CommandLineHelper({'FOO': 'a,b'}, ['cmd', '--without-bar'])
+ value, option = helper.handle(foo)
+- self.assertEquals(PositiveOptionValue(('a', 'b')), value)
+- self.assertEquals('environment', value.origin)
+- self.assertEquals('FOO=a,b', option)
++ self.assertEqual(PositiveOptionValue(('a', 'b')), value)
++ self.assertEqual('environment', value.origin)
++ self.assertEqual('FOO=a,b', option)
+
+ helper = CommandLineHelper({}, ['cmd', '--with-foo=a,b', 'FOO='])
+ value, option = helper.handle(foo)
+- self.assertEquals(NegativeOptionValue(), value)
+- self.assertEquals('command-line', value.origin)
+- self.assertEquals('FOO=', option)
++ self.assertEqual(NegativeOptionValue(), value)
++ self.assertEqual('command-line', value.origin)
++ self.assertEqual('FOO=', option)
+
+ helper = CommandLineHelper({}, ['cmd', '--without-foo', 'FOO=a,b'])
+ value, option = helper.handle(foo)
+- self.assertEquals(PositiveOptionValue(('a', 'b')), value)
+- self.assertEquals('command-line', value.origin)
+- self.assertEquals('FOO=a,b', option)
++ self.assertEqual(PositiveOptionValue(('a', 'b')), value)
++ self.assertEqual('command-line', value.origin)
++ self.assertEqual('FOO=a,b', option)
+
+ helper = CommandLineHelper({}, ['cmd', 'FOO=', '--with-foo=a,b'])
+ value, option = helper.handle(foo)
+- self.assertEquals(PositiveOptionValue(('a', 'b')), value)
+- self.assertEquals('command-line', value.origin)
+- self.assertEquals('--with-foo=a,b', option)
++ self.assertEqual(PositiveOptionValue(('a', 'b')), value)
++ self.assertEqual('command-line', value.origin)
++ self.assertEqual('--with-foo=a,b', option)
+
+ helper = CommandLineHelper({}, ['cmd', 'FOO=a,b', '--without-foo'])
+ value, option = helper.handle(foo)
+- self.assertEquals(NegativeOptionValue(), value)
+- self.assertEquals('command-line', value.origin)
+- self.assertEquals('--without-foo', option)
++ self.assertEqual(NegativeOptionValue(), value)
++ self.assertEqual('command-line', value.origin)
++ self.assertEqual('--without-foo', option)
+
+ def test_extra_args(self):
+ foo = Option('--with-foo', env='FOO', nargs='*')
+ helper = CommandLineHelper({}, ['cmd'])
+ helper.add('FOO=a,b,c', 'other-origin')
+ value, option = helper.handle(foo)
+- self.assertEquals(PositiveOptionValue(('a', 'b', 'c')), value)
+- self.assertEquals('other-origin', value.origin)
+- self.assertEquals('FOO=a,b,c', option)
++ self.assertEqual(PositiveOptionValue(('a', 'b', 'c')), value)
++ self.assertEqual('other-origin', value.origin)
++ self.assertEqual('FOO=a,b,c', option)
+
+ helper = CommandLineHelper({}, ['cmd'])
+ helper.add('FOO=a,b,c', 'other-origin')
+ helper.add('--with-foo=a,b,c', 'other-origin')
+ value, option = helper.handle(foo)
+- self.assertEquals(PositiveOptionValue(('a', 'b', 'c')), value)
+- self.assertEquals('other-origin', value.origin)
+- self.assertEquals('--with-foo=a,b,c', option)
++ self.assertEqual(PositiveOptionValue(('a', 'b', 'c')), value)
++ self.assertEqual('other-origin', value.origin)
++ self.assertEqual('--with-foo=a,b,c', option)
+
+ # Adding conflicting options is not allowed.
+ helper = CommandLineHelper({}, ['cmd'])
+@@ -809,9 +809,9 @@ class TestCommandLineHelper(unittest.TestCase):
+ # But adding the same is allowed.
+ helper.add('FOO=a,b,c', 'other-origin')
+ value, option = helper.handle(foo)
+- self.assertEquals(PositiveOptionValue(('a', 'b', 'c')), value)
+- self.assertEquals('other-origin', value.origin)
+- self.assertEquals('FOO=a,b,c', option)
++ self.assertEqual(PositiveOptionValue(('a', 'b', 'c')), value)
++ self.assertEqual('other-origin', value.origin)
++ self.assertEqual('FOO=a,b,c', option)
+
+ # The same rule as above applies when using the option form vs. the
+ # variable form. But we can't detect it when .add is called.
+@@ -837,9 +837,9 @@ class TestCommandLineHelper(unittest.TestCase):
+ helper.add('FOO=a,b,c', 'other-origin')
+ helper.add('--with-foo=a,b,c', 'other-origin')
+ value, option = helper.handle(foo)
+- self.assertEquals(PositiveOptionValue(('a', 'b', 'c')), value)
+- self.assertEquals('other-origin', value.origin)
+- self.assertEquals('--with-foo=a,b,c', option)
++ self.assertEqual(PositiveOptionValue(('a', 'b', 'c')), value)
++ self.assertEqual('other-origin', value.origin)
++ self.assertEqual('--with-foo=a,b,c', option)
+
+ # Conflicts are also not allowed against what is in the
+ # environment/on the command line.
+@@ -869,19 +869,19 @@ class TestCommandLineHelper(unittest.TestCase):
+ foo = Option('--foo',
+ possible_origins=('command-line',))
+ value, option = helper.handle(foo)
+- self.assertEquals(PositiveOptionValue(), value)
+- self.assertEquals('command-line', value.origin)
+- self.assertEquals('--foo', option)
++ self.assertEqual(PositiveOptionValue(), value)
++ self.assertEqual('command-line', value.origin)
++ self.assertEqual('--foo', option)
+
+ bar = Option('--bar',
+ possible_origins=('mozconfig',))
+- with self.assertRaisesRegexp(InvalidOptionError,
++ with self.assertRaisesRegex(InvalidOptionError,
+ "--bar can not be set by command-line. Values are accepted from: mozconfig"):
+ helper.handle(bar)
+
+ baz = Option(env='BAZ',
+ possible_origins=('implied',))
+- with self.assertRaisesRegexp(InvalidOptionError,
++ with self.assertRaisesRegex(InvalidOptionError,
+ "BAZ=1 can not be set by environment. Values are accepted from: implied"):
+ helper.handle(baz)
+
+diff --git a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
+index cb7ff709e..c339a32bf 100755
+--- a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
++++ b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
+@@ -2,12 +2,12 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, print_function, unicode_literals
++
+
+ import logging
+ import os
+
+-from StringIO import StringIO
++from io import StringIO
+
+ from mozunit import main
+
+@@ -366,9 +366,9 @@ class BaseToolchainTest(BaseConfigureTest):
+ compiler = sandbox._value_for(sandbox[var])
+ # Add var on both ends to make it clear which of the
+ # variables is failing the test when that happens.
+- self.assertEquals((var, compiler), (var, result))
++ self.assertEqual((var, compiler), (var, result))
+ except SystemExit:
+- self.assertEquals((var, result),
++ self.assertEqual((var, result),
+ (var, self.out.getvalue().strip()))
+ return
+
+@@ -407,7 +407,7 @@ class BaseToolchainTest(BaseConfigureTest):
+ 'RUST_LIB_SUFFIX',
+ 'OBJ_SUFFIX',
+ ):
+- self.assertEquals('%s=%s' % (k, sandbox.get_config(k)),
++ self.assertEqual('%s=%s' % (k, sandbox.get_config(k)),
+ '%s=%s' % (k, library_name_info[k]))
+
+
+@@ -584,7 +584,7 @@ class LinuxToolchainTest(BaseToolchainTest):
+ # We'll try gcc and clang, but since there is no gcc (gcc-x.y doesn't
+ # count), find clang.
+ paths = {
+- k: v for k, v in self.PATHS.iteritems()
++ k: v for k, v in self.PATHS.items()
+ if os.path.basename(k) not in ('gcc', 'g++')
+ }
+ self.do_toolchain_test(paths, {
+@@ -619,7 +619,7 @@ class LinuxToolchainTest(BaseToolchainTest):
+ # Even if there are gcc-x.y or clang-x.y compilers available, we
+ # don't try them. This could be considered something to improve.
+ paths = {
+- k: v for k, v in self.PATHS.iteritems()
++ k: v for k, v in self.PATHS.items()
+ if os.path.basename(k) not in ('gcc', 'g++', 'clang', 'clang++')
+ }
+ self.do_toolchain_test(paths, {
+@@ -800,7 +800,7 @@ class OSXToolchainTest(BaseToolchainTest):
+ def test_not_gcc(self):
+ # We won't pick GCC if it's the only thing available.
+ paths = {
+- k: v for k, v in self.PATHS.iteritems()
++ k: v for k, v in self.PATHS.items()
+ if os.path.basename(k) not in ('clang', 'clang++')
+ }
+ self.do_toolchain_test(paths, {
+@@ -976,7 +976,7 @@ class WindowsToolchainTest(BaseToolchainTest):
+ def test_clang_cl(self):
+ # We'll pick clang-cl if msvc can't be found.
+ paths = {
+- k: v for k, v in self.PATHS.iteritems()
++ k: v for k, v in self.PATHS.items()
+ if os.path.basename(k) != 'cl'
+ }
+ self.do_toolchain_test(paths, {
+@@ -987,7 +987,7 @@ class WindowsToolchainTest(BaseToolchainTest):
+ def test_gcc(self):
+ # We'll pick GCC if msvc and clang-cl can't be found.
+ paths = {
+- k: v for k, v in self.PATHS.iteritems()
++ k: v for k, v in self.PATHS.items()
+ if os.path.basename(k) not in ('cl', 'clang-cl')
+ }
+ self.do_toolchain_test(paths, {
+@@ -1006,7 +1006,7 @@ class WindowsToolchainTest(BaseToolchainTest):
+ def test_clang(self):
+ # We'll pick clang if nothing else is found.
+ paths = {
+- k: v for k, v in self.PATHS.iteritems()
++ k: v for k, v in self.PATHS.items()
+ if os.path.basename(k) not in ('cl', 'clang-cl', 'gcc')
+ }
+ self.do_toolchain_test(paths, {
+diff --git a/python/mozbuild/mozbuild/test/configure/test_toolchain_helpers.py b/python/mozbuild/mozbuild/test/configure/test_toolchain_helpers.py
+index 8ec33a8b7..ba046ed12 100644
+--- a/python/mozbuild/mozbuild/test/configure/test_toolchain_helpers.py
++++ b/python/mozbuild/mozbuild/test/configure/test_toolchain_helpers.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, print_function, unicode_literals
++
+
+ import copy
+ import re
+@@ -10,7 +10,7 @@ import types
+ import unittest
+
+ from fnmatch import fnmatch
+-from StringIO import StringIO
++from io import StringIO
+ from textwrap import dedent
+
+ from mozunit import (
+@@ -43,7 +43,7 @@ class CompilerPreprocessor(Preprocessor):
+ # Hack around it enough that the configure tests work properly.
+ context = self.context
+ def normalize_numbers(value):
+- if isinstance(value, types.StringTypes):
++ if isinstance(value, (str,)):
+ if value[-1:] == 'L' and value[:-1].isdigit():
+ value = int(value[:-1])
+ return value
+@@ -53,7 +53,7 @@ class CompilerPreprocessor(Preprocessor):
+ return self.HAS_FEATURE.sub(r'\1\2', expr)
+ self.context = self.Context(
+ (normalize_has_feature(k), normalize_numbers(v))
+- for k, v in context.iteritems()
++ for k, v in context.items()
+ )
+ try:
+ return Preprocessor.do_if(self, normalize_has_feature(expression),
+@@ -95,7 +95,7 @@ class TestCompilerPreprocessor(unittest.TestCase):
+ input.name = 'foo'
+ pp.do_include(input)
+
+- self.assertEquals(pp.out.getvalue(), '1 . 2 . c "D"')
++ self.assertEqual(pp.out.getvalue(), '1 . 2 . c "D"')
+
+ def test_condition(self):
+ pp = CompilerPreprocessor({
+@@ -125,7 +125,7 @@ class TestCompilerPreprocessor(unittest.TestCase):
+ input.name = 'foo'
+ pp.do_include(input)
+
+- self.assertEquals('IFDEF_A\nIF_A\nIF_B\nIF_NOT_C\n', pp.out.getvalue())
++ self.assertEqual('IFDEF_A\nIF_A\nIF_B\nIF_NOT_C\n', pp.out.getvalue())
+
+
+ class FakeCompiler(dict):
+@@ -164,9 +164,9 @@ class FakeCompiler(dict):
+ '''
+ def __init__(self, *definitions):
+ for definition in definitions:
+- if all(not isinstance(d, dict) for d in definition.itervalues()):
++ if all(not isinstance(d, dict) for d in definition.values()):
+ definition = {None: definition}
+- for key, value in definition.iteritems():
++ for key, value in definition.items():
+ self.setdefault(key, {}).update(value)
+
+ def __call__(self, stdin, args):
+@@ -178,14 +178,14 @@ class FakeCompiler(dict):
+ pp = CompilerPreprocessor(self[None])
+
+ def apply_defn(defn):
+- for k, v in defn.iteritems():
++ for k, v in defn.items():
+ if v is False:
+ if k in pp.context:
+ del pp.context[k]
+ else:
+ pp.context[k] = v
+
+- for glob, defn in self.iteritems():
++ for glob, defn in self.items():
+ if glob and not glob.startswith('-') and fnmatch(file, glob):
+ apply_defn(defn)
+
+@@ -216,7 +216,7 @@ class TestFakeCompiler(unittest.TestCase):
+ 'A': '1',
+ 'B': '2',
+ })
+- self.assertEquals(compiler(None, ['-E', 'file']),
++ self.assertEqual(compiler(None, ['-E', 'file']),
+ (0, '1 2 C', ''))
+
+ compiler = FakeCompiler({
+@@ -238,25 +238,25 @@ class TestFakeCompiler(unittest.TestCase):
+ 'B': '42',
+ },
+ })
+- self.assertEquals(compiler(None, ['-E', 'file']),
++ self.assertEqual(compiler(None, ['-E', 'file']),
+ (0, '1 2 C', ''))
+- self.assertEquals(compiler(None, ['-E', '-foo', 'file']),
++ self.assertEqual(compiler(None, ['-E', '-foo', 'file']),
+ (0, '1 2 foo', ''))
+- self.assertEquals(compiler(None, ['-E', '-bar', 'file']),
++ self.assertEqual(compiler(None, ['-E', '-bar', 'file']),
+ (0, '1 bar bar', ''))
+- self.assertEquals(compiler(None, ['-E', '-qux', 'file']),
++ self.assertEqual(compiler(None, ['-E', '-qux', 'file']),
+ (0, '1 B C', ''))
+- self.assertEquals(compiler(None, ['-E', '-foo', '-bar', 'file']),
++ self.assertEqual(compiler(None, ['-E', '-foo', '-bar', 'file']),
+ (0, '1 bar bar', ''))
+- self.assertEquals(compiler(None, ['-E', '-bar', '-foo', 'file']),
++ self.assertEqual(compiler(None, ['-E', '-bar', '-foo', 'file']),
+ (0, '1 bar foo', ''))
+- self.assertEquals(compiler(None, ['-E', '-bar', '-qux', 'file']),
++ self.assertEqual(compiler(None, ['-E', '-bar', '-qux', 'file']),
+ (0, '1 B bar', ''))
+- self.assertEquals(compiler(None, ['-E', '-qux', '-bar', 'file']),
++ self.assertEqual(compiler(None, ['-E', '-qux', '-bar', 'file']),
+ (0, '1 bar bar', ''))
+- self.assertEquals(compiler(None, ['-E', 'file.c']),
++ self.assertEqual(compiler(None, ['-E', 'file.c']),
+ (0, '1 42 C', ''))
+- self.assertEquals(compiler(None, ['-E', '-bar', 'file.c']),
++ self.assertEqual(compiler(None, ['-E', '-bar', 'file.c']),
+ (0, '1 bar bar', ''))
+
+ def test_multiple_definitions(self):
+@@ -267,7 +267,7 @@ class TestFakeCompiler(unittest.TestCase):
+ 'C': 3,
+ })
+
+- self.assertEquals(compiler, {
++ self.assertEqual(compiler, {
+ None: {
+ 'A': 1,
+ 'B': 2,
+@@ -282,7 +282,7 @@ class TestFakeCompiler(unittest.TestCase):
+ 'C': 3,
+ })
+
+- self.assertEquals(compiler, {
++ self.assertEqual(compiler, {
+ None: {
+ 'A': 1,
+ 'B': 4,
+@@ -302,7 +302,7 @@ class TestFakeCompiler(unittest.TestCase):
+ },
+ })
+
+- self.assertEquals(compiler, {
++ self.assertEqual(compiler, {
+ None: {
+ 'A': 1,
+ 'B': 4,
+@@ -330,7 +330,7 @@ class TestFakeCompiler(unittest.TestCase):
+ },
+ })
+
+- self.assertEquals(compiler, {
++ self.assertEqual(compiler, {
+ None: {
+ 'A': 1,
+ 'B': 2,
+@@ -370,7 +370,7 @@ class CompilerResult(ReadOnlyNamespace):
+ def __add__(self, other):
+ assert isinstance(other, dict)
+ result = copy.deepcopy(self.__dict__)
+- for k, v in other.iteritems():
++ for k, v in other.items():
+ if k == 'flags':
+ result.setdefault(k, []).extend(v)
+ else:
+@@ -381,7 +381,7 @@ class CompilerResult(ReadOnlyNamespace):
+ class TestCompilerResult(unittest.TestCase):
+ def test_compiler_result(self):
+ result = CompilerResult()
+- self.assertEquals(result.__dict__, {
++ self.assertEqual(result.__dict__, {
+ 'wrapper': [],
+ 'compiler': mozpath.abspath(''),
+ 'version': '',
+@@ -397,7 +397,7 @@ class TestCompilerResult(unittest.TestCase):
+ language='C',
+ flags=['-std=gnu99'],
+ )
+- self.assertEquals(result.__dict__, {
++ self.assertEqual(result.__dict__, {
+ 'wrapper': [],
+ 'compiler': mozpath.abspath('/usr/bin/gcc'),
+ 'version': '4.2.1',
+@@ -407,7 +407,7 @@ class TestCompilerResult(unittest.TestCase):
+ })
+
+ result2 = result + {'flags': ['-m32']}
+- self.assertEquals(result2.__dict__, {
++ self.assertEqual(result2.__dict__, {
+ 'wrapper': [],
+ 'compiler': mozpath.abspath('/usr/bin/gcc'),
+ 'version': '4.2.1',
+@@ -416,14 +416,14 @@ class TestCompilerResult(unittest.TestCase):
+ 'flags': ['-std=gnu99', '-m32'],
+ })
+ # Original flags are untouched.
+- self.assertEquals(result.flags, ['-std=gnu99'])
++ self.assertEqual(result.flags, ['-std=gnu99'])
+
+ result3 = result + {
+ 'compiler': '/usr/bin/gcc-4.7',
+ 'version': '4.7.3',
+ 'flags': ['-m32'],
+ }
+- self.assertEquals(result3.__dict__, {
++ self.assertEqual(result3.__dict__, {
+ 'wrapper': [],
+ 'compiler': mozpath.abspath('/usr/bin/gcc-4.7'),
+ 'version': '4.7.3',
+diff --git a/python/mozbuild/mozbuild/test/configure/test_toolkit_moz_configure.py b/python/mozbuild/mozbuild/test/configure/test_toolkit_moz_configure.py
+index ac35d745f..cdd8ece1b 100644
+--- a/python/mozbuild/mozbuild/test/configure/test_toolkit_moz_configure.py
++++ b/python/mozbuild/mozbuild/test/configure/test_toolkit_moz_configure.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, print_function, unicode_literals
++
+
+ import os
+
+diff --git a/python/mozbuild/mozbuild/test/configure/test_util.py b/python/mozbuild/mozbuild/test/configure/test_util.py
+index 9f9575fd0..c2db1a628 100644
+--- a/python/mozbuild/mozbuild/test/configure/test_util.py
++++ b/python/mozbuild/mozbuild/test/configure/test_util.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, print_function, unicode_literals
++
+
+ import logging
+ import os
+@@ -11,7 +11,7 @@ import textwrap
+ import unittest
+ import sys
+
+-from StringIO import StringIO
++from io import StringIO
+
+ from mozunit import main
+ from mozpack import path as mozpath
+@@ -434,11 +434,11 @@ class TestLogSubprocessOutput(unittest.TestCase):
+ except SystemExit as e:
+ status = e.code
+
+- self.assertEquals(status, 0)
++ self.assertEqual(status, 0)
+ quote_char = "'"
+ if getpreferredencoding().lower() == 'utf-8':
+ quote_char = '\u00B4'.encode('utf-8')
+- self.assertEquals(out.getvalue().strip(), quote_char)
++ self.assertEqual(out.getvalue().strip(), quote_char)
+
+
+ class TestVersion(unittest.TestCase):
+diff --git a/python/mozbuild/mozbuild/testing.py b/python/mozbuild/mozbuild/testing.py
+index 3229c3f77..82d250fab 100644
+--- a/python/mozbuild/mozbuild/testing.py
++++ b/python/mozbuild/mozbuild/testing.py
+@@ -2,9 +2,9 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, unicode_literals
+
+-import cPickle as pickle
++
++import pickle as pickle
+ import os
+ import sys
+
+@@ -70,7 +70,7 @@ REFTEST_FLAVORS = ('crashtest', 'reftest')
+ WEB_PLATFORM_TESTS_FLAVORS = ('web-platform-tests',)
+
+ def all_test_flavors():
+- return ([v[0] for v in TEST_MANIFESTS.values()] +
++ return ([v[0] for v in list(TEST_MANIFESTS.values())] +
+ list(REFTEST_FLAVORS) +
+ list(WEB_PLATFORM_TESTS_FLAVORS))
+
+@@ -210,7 +210,7 @@ def install_test_files(topsrcdir, topobjdir, tests_root, test_objs):
+ only a few tests need to be run.
+ """
+ flavor_info = {flavor: (root, prefix, install)
+- for (flavor, root, prefix, install) in TEST_MANIFESTS.values()}
++ for (flavor, root, prefix, install) in list(TEST_MANIFESTS.values())}
+ objdir_dest = mozpath.join(topobjdir, tests_root)
+
+ converter = SupportFilesConverter()
+@@ -292,7 +292,7 @@ def read_wpt_manifest(context, paths):
+ paths_file = os.path.join(context.config.topsrcdir, "testing",
+ "web-platform", "tests", "tools", "localpaths.py")
+ _globals = {"__file__": paths_file}
+- execfile(paths_file, _globals)
++ exec(compile(open(paths_file, "rb").read(), paths_file, 'exec'), _globals)
+ import manifest as wptmanifest
+ finally:
+ sys.path = old_path
+diff --git a/python/mozbuild/mozbuild/util.py b/python/mozbuild/mozbuild/util.py
+index 4ea227dc0..79cb15713 100644
+--- a/python/mozbuild/mozbuild/util.py
++++ b/python/mozbuild/mozbuild/util.py
+@@ -5,7 +5,7 @@
+ # This file contains miscellaneous utility functions that don't belong anywhere
+ # in particular.
+
+-from __future__ import absolute_import, unicode_literals, print_function
++
+
+ import argparse
+ import collections
+@@ -21,6 +21,9 @@ import stat
+ import sys
+ import time
+ import types
++import pprint
++import six
++import subprocess
+
+ from collections import (
+ defaultdict,
+@@ -36,7 +39,7 @@ from io import (
+ if sys.version_info[0] == 3:
+ str_type = str
+ else:
+- str_type = basestring
++ str_type = str
+
+ if sys.platform == 'win32':
+ _kernel32 = ctypes.windll.kernel32
+@@ -78,7 +81,7 @@ def hash_file(path, hasher=None):
+ return h.hexdigest()
+
+
+-class EmptyValue(unicode):
++class EmptyValue(str):
+ """A dummy type that behaves like an empty string and sequence.
+
+ This type exists in order to support
+@@ -92,7 +95,7 @@ class EmptyValue(unicode):
+ class ReadOnlyNamespace(object):
+ """A class for objects with immutable attributes set at initialization."""
+ def __init__(self, **kwargs):
+- for k, v in kwargs.iteritems():
++ for k, v in kwargs.items():
+ super(ReadOnlyNamespace, self).__setattr__(k, v)
+
+ def __delattr__(self, key):
+@@ -224,7 +227,7 @@ class FileAvoidWrite(BytesIO):
+ self.mode = mode
+
+ def write(self, buf):
+- if isinstance(buf, unicode):
++ if isinstance(buf, str):
+ buf = buf.encode('utf-8')
+ BytesIO.write(self, buf)
+
+@@ -267,6 +270,10 @@ class FileAvoidWrite(BytesIO):
+ if 'b' in self.mode:
+ writemode += 'b'
+ with open(self.name, writemode) as file:
++ if 'b' in self.mode and isinstance(buf, str):
++ buf = buf.encode('utf-8')
++ elif 'b' not in self.mode and isinstance(buf, bytes):
++ buf = buf.decode('utf-8')
+ file.write(buf)
+
+ if self._capture_diff:
+@@ -381,7 +388,7 @@ class ListMixin(object):
+ def __add__(self, other):
+ # Allow None and EmptyValue is a special case because it makes undefined
+ # variable references in moz.build behave better.
+- other = [] if isinstance(other, (types.NoneType, EmptyValue)) else other
++ other = [] if isinstance(other, (type(None), EmptyValue)) else other
+ if not isinstance(other, list):
+ raise ValueError('Only lists can be appended to lists.')
+
+@@ -390,7 +397,7 @@ class ListMixin(object):
+ return new_list
+
+ def __iadd__(self, other):
+- other = [] if isinstance(other, (types.NoneType, EmptyValue)) else other
++ other = [] if isinstance(other, (type(None), EmptyValue)) else other
+ if not isinstance(other, list):
+ raise ValueError('Only lists can be appended to lists.')
+
+@@ -561,14 +568,14 @@ def FlagsFactory(flags):
+ functions below.
+ """
+ assert isinstance(flags, dict)
+- assert all(isinstance(v, type) for v in flags.values())
++ assert all(isinstance(v, type) for v in list(flags.values()))
+
+ class Flags(object):
+- __slots__ = flags.keys()
++ __slots__ = list(flags.keys())
+ _flags = flags
+
+ def update(self, **kwargs):
+- for k, v in kwargs.iteritems():
++ for k, v in kwargs.items():
+ setattr(self, k, v)
+
+ def __getattr__(self, name):
+@@ -1006,8 +1013,6 @@ def TypedNamedTuple(name, fields):
+ 'got %s, expected %s' % (fname,
+ type(value), ftype))
+
+- super(TypedTuple, self).__init__(*args, **kwargs)
+-
+ TypedTuple._fields = fields
+
+ return TypedTuple
+@@ -1099,14 +1104,14 @@ def group_unified_files(files, unified_prefix, unified_suffix,
+ # issue. So we do a little dance to filter it out ourselves.
+ dummy_fill_value = ("dummy",)
+ def filter_out_dummy(iterable):
+- return itertools.ifilter(lambda x: x != dummy_fill_value,
++ return filter(lambda x: x != dummy_fill_value,
+ iterable)
+
+ # From the itertools documentation, slightly modified:
+ def grouper(n, iterable):
+ "grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
+ args = [iter(iterable)] * n
+- return itertools.izip_longest(fillvalue=dummy_fill_value, *args)
++ return itertools.zip_longest(fillvalue=dummy_fill_value, *args)
+
+ for i, unified_group in enumerate(grouper(files_per_unified_file,
+ files)):
+@@ -1123,7 +1128,7 @@ def pair(iterable):
+ [(1,2), (3,4), (5,6)]
+ '''
+ i = iter(iterable)
+- return itertools.izip_longest(i, i)
++ return itertools.zip_longest(i, i)
+
+
+ VARIABLES_RE = re.compile('\$\((\w+)\)')
+@@ -1141,7 +1146,7 @@ def expand_variables(s, variables):
+ value = variables.get(name)
+ if not value:
+ continue
+- if not isinstance(value, types.StringTypes):
++ if not isinstance(value, (str,)):
+ value = ' '.join(value)
+ result += value
+ return result
+@@ -1168,7 +1173,7 @@ class EnumStringComparisonError(Exception):
+ pass
+
+
+-class EnumString(unicode):
++class EnumString(str):
+ '''A string type that only can have a limited set of values, similarly to
+ an Enum, and can only be compared against that set of values.
+
+@@ -1185,8 +1190,8 @@ class EnumString(unicode):
+ def __eq__(self, other):
+ if other not in self.POSSIBLE_VALUES:
+ raise EnumStringComparisonError(
+- 'Can only compare with %s'
+- % ', '.join("'%s'" % v for v in self.POSSIBLE_VALUES))
++ '%s is not in %s'
++ % (other, ', '.join("'%s'" % v for v in self.POSSIBLE_VALUES)))
+ return super(EnumString, self).__eq__(other)
+
+ def __ne__(self, other):
+@@ -1204,14 +1209,14 @@ def _escape_char(c):
+ # quoting could be done with either ' or ".
+ if c == "'":
+ return "\\'"
+- return unicode(c.encode('unicode_escape'))
++ return str(c.encode('unicode_escape'))
+
+ # Mapping table between raw characters below \x80 and their escaped
+ # counterpart, when they differ
+ _INDENTED_REPR_TABLE = {
+ c: e
+ for c, e in map(lambda x: (x, _escape_char(x)),
+- map(unichr, range(128)))
++ map(chr, range(128)))
+ if c != e
+ }
+ # Regexp matching all characters to escape.
+@@ -1219,7 +1224,33 @@ _INDENTED_REPR_RE = re.compile(
+ '([' + ''.join(_INDENTED_REPR_TABLE.values()) + ']+)')
+
+
++# Stolen from gecko master [1]
++# [1] https://github.com/mozilla/gecko-dev/blob/4165a2e843c494bfb3e35d8a1fbf9c61209e3675/python/mozbuild/mozbuild/util.py#L1286
++
++# The default PrettyPrinter has some issues with UTF-8, so we need to override
++# some stuff here.
++class _PrettyPrinter(pprint.PrettyPrinter):
++ def format(self, object, context, maxlevels, level):
++ if not (isinstance(object, six.text_type) or
++ isinstance(object, six.binary_type)):
++ return super(_PrettyPrinter, self).format(
++ object, context, maxlevels, level)
++ # This is super hacky and weird, but the output of 'repr' actually
++ # varies based on the default I/O encoding of the process, which isn't
++ # necessarily utf-8. Instead we open a new shell and ask what the repr
++ # WOULD be assuming the default encoding is utf-8. If you can come up
++ # with a better way of doing this without simply re-implementing the
++ # logic of "repr", please replace this.
++ env = dict(os.environ)
++ env['PYTHONIOENCODING'] = 'utf-8'
++ ret = six.ensure_text(subprocess.check_output(
++ [sys.executable], input='print(repr(%s))' % repr(object),
++ universal_newlines=True, env=env, encoding='utf-8')).strip()
++ return (ret, True, False)
++
+ def indented_repr(o, indent=4):
++ return _PrettyPrinter(indent=indent).pformat(o)
++
+ '''Similar to repr(), but returns an indented representation of the object
+
+ One notable difference with repr is that the returned representation
+@@ -1242,7 +1273,7 @@ def indented_repr(o, indent=4):
+ elif isinstance(o, bytes):
+ yield 'b'
+ yield repr(o)
+- elif isinstance(o, unicode):
++ elif isinstance(o, str):
+ yield "'"
+ # We want a readable string (non escaped unicode), but some
+ # special characters need escaping (e.g. \n, \t, etc.)
+@@ -1272,11 +1303,11 @@ def encode(obj, encoding='utf-8'):
+ if isinstance(obj, dict):
+ return {
+ encode(k, encoding): encode(v, encoding)
+- for k, v in obj.iteritems()
++ for k, v in obj.items()
+ }
+ if isinstance(obj, bytes):
+ return obj
+- if isinstance(obj, unicode):
++ if isinstance(obj, str):
+ return obj.encode(encoding)
+ if isinstance(obj, Iterable):
+ return [encode(i, encoding) for i in obj]
+diff --git a/python/mozbuild/mozbuild/virtualenv.py b/python/mozbuild/mozbuild/virtualenv.py
+index 38d06d71d..c67c046f3 100644
+--- a/python/mozbuild/mozbuild/virtualenv.py
++++ b/python/mozbuild/mozbuild/virtualenv.py
+@@ -531,9 +531,9 @@ def verify_python_version(log_handle):
+
+ our = LooseVersion('%d.%d.%d' % (major, minor, micro))
+
+- if major != MINIMUM_PYTHON_MAJOR or our < MINIMUM_PYTHON_VERSION:
+- log_handle.write('Python %s or greater (but not Python 3) is '
+- 'required to build. ' % MINIMUM_PYTHON_VERSION)
++ if our < MINIMUM_PYTHON_VERSION:
++ log_handle.write('Python %s or greater is required to build. '
++ % MINIMUM_PYTHON_VERSION)
+ log_handle.write('You are running Python %s.\n' % our)
+
+ if os.name in ('nt', 'ce'):
+diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpack/chrome/manifest.py
+index c91b99cf1..02eac0dbb 100644
+--- a/python/mozbuild/mozpack/chrome/manifest.py
++++ b/python/mozbuild/mozpack/chrome/manifest.py
+@@ -2,11 +2,11 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import
++
+
+ import re
+ import os
+-from urlparse import urlparse
++from urllib.parse import urlparse
+ import mozpack.path as mozpath
+ from mozpack.chrome.flags import Flags
+ from mozpack.errors import errors
+@@ -316,7 +316,7 @@ class ManifestContract(ManifestEntry):
+ return self.serialize(self.contractID, self.cid)
+
+ # All manifest classes by their type name.
+-MANIFESTS_TYPES = dict([(c.type, c) for c in globals().values()
++MANIFESTS_TYPES = dict([(c.type, c) for c in list(globals().values())
+ if type(c) == type and issubclass(c, ManifestEntry)
+ and hasattr(c, 'type') and c.type])
+
+diff --git a/python/mozbuild/mozpack/copier.py b/python/mozbuild/mozpack/copier.py
+index 1e521e52b..43ed9be4a 100644
+--- a/python/mozbuild/mozpack/copier.py
++++ b/python/mozbuild/mozpack/copier.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import
++
+
+ import os
+ import stat
+@@ -113,7 +113,7 @@ class FileRegistry(object):
+ '''
+ Return all paths stored in the container, in the order they were added.
+ '''
+- return self._files.keys()
++ return list(self._files.keys())
+
+ def __len__(self):
+ '''
+@@ -146,7 +146,7 @@ class FileRegistry(object):
+ for path, file in registry:
+ (...)
+ '''
+- return self._files.iteritems()
++ return iter(self._files.items())
+
+ def required_directories(self):
+ '''
+@@ -155,7 +155,7 @@ class FileRegistry(object):
+ unspecified (virtual) root directory (and do not include said root
+ directory).
+ '''
+- return set(k for k, v in self._required_directories.items() if v > 0)
++ return set(k for k, v in list(self._required_directories.items()) if v > 0)
+
+ def output_to_inputs_tree(self):
+ '''
+@@ -295,7 +295,7 @@ class FileCopier(FileRegistry):
+
+ Returns a FileCopyResult that details what changed.
+ '''
+- assert isinstance(destination, basestring)
++ assert isinstance(destination, str)
+ assert not os.path.exists(destination) or os.path.isdir(destination)
+
+ result = FileCopyResult()
+@@ -563,7 +563,7 @@ class Jarrer(FileRegistry, BaseFile):
+ def exists(self):
+ return self.deflater is not None
+
+- if isinstance(dest, basestring):
++ if isinstance(dest, str):
+ dest = Dest(dest)
+ assert isinstance(dest, Dest)
+
+diff --git a/python/mozbuild/mozpack/files.py b/python/mozbuild/mozpack/files.py
+index 8ce353375..bf35e39b8 100644
+--- a/python/mozbuild/mozpack/files.py
++++ b/python/mozbuild/mozpack/files.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import
++
+
+ import errno
+ import os
+@@ -57,7 +57,7 @@ else:
+
+ def _copyfile(src, dest):
+ # False indicates `dest` should be overwritten if it exists already.
+- if isinstance(src, unicode) and isinstance(dest, unicode):
++ if isinstance(src, str) and isinstance(dest, str):
+ _CopyFileW(src, dest, False)
+ elif isinstance(src, str) and isinstance(dest, str):
+ _CopyFileA(src, dest, False)
+@@ -164,7 +164,7 @@ class BaseFile(object):
+ disabled when skip_if_older is False.
+ Returns whether a copy was actually performed (True) or not (False).
+ '''
+- if isinstance(dest, basestring):
++ if isinstance(dest, str):
+ dest = Dest(dest)
+ else:
+ assert isinstance(dest, Dest)
+@@ -278,11 +278,11 @@ class ExecutableFile(File):
+ '''
+ def copy(self, dest, skip_if_older=True):
+ real_dest = dest
+- if not isinstance(dest, basestring):
++ if not isinstance(dest, str):
+ fd, dest = mkstemp()
+ os.close(fd)
+ os.remove(dest)
+- assert isinstance(dest, basestring)
++ assert isinstance(dest, str)
+ # If File.copy didn't actually copy because dest is newer, check the
+ # file sizes. If dest is smaller, it means it is already stripped and
+ # elfhacked, so we can skip.
+@@ -319,7 +319,7 @@ class AbsoluteSymlinkFile(File):
+ File.__init__(self, path)
+
+ def copy(self, dest, skip_if_older=True):
+- assert isinstance(dest, basestring)
++ assert isinstance(dest, str)
+
+ # The logic in this function is complicated by the fact that symlinks
+ # aren't universally supported. So, where symlinks aren't supported, we
+@@ -410,7 +410,7 @@ class HardlinkFile(File):
+ '''
+
+ def copy(self, dest, skip_if_older=True):
+- assert isinstance(dest, basestring)
++ assert isinstance(dest, str)
+
+ if not hasattr(os, 'link'):
+ return super(HardlinkFile, self).copy(
+@@ -471,7 +471,7 @@ class ExistingFile(BaseFile):
+ self.required = required
+
+ def copy(self, dest, skip_if_older=True):
+- if isinstance(dest, basestring):
++ if isinstance(dest, str):
+ dest = Dest(dest)
+ else:
+ assert isinstance(dest, Dest)
+@@ -517,7 +517,7 @@ class PreprocessedFile(BaseFile):
+ '''
+ Invokes the preprocessor to create the destination file.
+ '''
+- if isinstance(dest, basestring):
++ if isinstance(dest, str):
+ dest = Dest(dest)
+ else:
+ assert isinstance(dest, Dest)
+@@ -657,7 +657,7 @@ class XPTFile(GeneratedFile):
+ the individual XPTs to link.
+ skip_if_older is ignored.
+ '''
+- if isinstance(dest, basestring):
++ if isinstance(dest, str):
+ dest = Dest(dest)
+ assert isinstance(dest, Dest)
+
+@@ -1108,7 +1108,7 @@ class ComposedFinder(BaseFinder):
+ from mozpack.copier import FileRegistry
+ self.files = FileRegistry()
+
+- for base, finder in sorted(finders.iteritems()):
++ for base, finder in sorted(finders.items()):
+ if self.files.contains(base):
+ self.files.remove(base)
+ for p, f in finder.find(''):
+diff --git a/python/mozbuild/mozpack/manifests.py b/python/mozbuild/mozpack/manifests.py
+index 27c66634b..f79b40086 100644
+--- a/python/mozbuild/mozpack/manifests.py
++++ b/python/mozbuild/mozpack/manifests.py
+@@ -2,8 +2,6 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, unicode_literals
+-
+ from contextlib import contextmanager
+ import json
+
+@@ -116,7 +114,7 @@ class InstallManifest(object):
+ self._source_files = set()
+
+ if path or fileobj:
+- with _auto_fileobj(path, fileobj, 'rb') as fh:
++ with _auto_fileobj(path, fileobj, 'r') as fh:
+ self._source_files.add(fh.name)
+ self._load_from_fileobj(fh)
+
+@@ -175,7 +173,7 @@ class InstallManifest(object):
+ dest, content = fields[1:]
+
+ self.add_content(
+- self._decode_field_entry(content).encode('utf-8'), dest)
++ self._decode_field_entry(content), dest)
+ continue
+
+ # Don't fail for non-actionable items, allowing
+@@ -228,7 +226,7 @@ class InstallManifest(object):
+
+ It is an error if both are specified.
+ """
+- with _auto_fileobj(path, fileobj, 'wb') as fh:
++ with _auto_fileobj(path, fileobj, 'w') as fh:
+ fh.write('%d\n' % self.CURRENT_VERSION)
+
+ for dest in sorted(self._dests):
+@@ -242,13 +240,11 @@ class InstallManifest(object):
+ for path in paths:
+ source = mozpath.join(base, path)
+ parts = ['%d' % type, mozpath.join(dest, path), source]
+- fh.write('%s\n' % self.FIELD_SEPARATOR.join(
+- p.encode('utf-8') for p in parts))
++ fh.write('%s\n' % self.FIELD_SEPARATOR.join(parts))
+ else:
+ parts = ['%d' % entry[0], dest]
+ parts.extend(entry[1:])
+- fh.write('%s\n' % self.FIELD_SEPARATOR.join(
+- p.encode('utf-8') for p in parts))
++ fh.write('%s\n' % self.FIELD_SEPARATOR.join(parts))
+
+ def add_link(self, source, dest):
+ """Add a link to this manifest.
+@@ -439,7 +435,7 @@ class InstallManifest(object):
+ if install_type == self.CONTENT:
+ # GeneratedFile expect the buffer interface, which the unicode
+ # type doesn't have, so encode to a str.
+- content = self._decode_field_entry(entry[1]).encode('utf-8')
++ content = self._decode_field_entry(entry[1])
+ registry.add(dest, GeneratedFile(content))
+ continue
+
+diff --git a/python/mozbuild/mozpack/mozjar.py b/python/mozbuild/mozpack/mozjar.py
+index a723fd2c0..0b04d233c 100644
+--- a/python/mozbuild/mozpack/mozjar.py
++++ b/python/mozbuild/mozpack/mozjar.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import
++
+
+ from io import BytesIO
+ import struct
+@@ -14,9 +14,10 @@ from zipfile import (
+ ZIP_DEFLATED,
+ )
+ from collections import OrderedDict
+-from urlparse import urlparse, ParseResult
++from urllib.parse import urlparse, ParseResult
+ import mozpack.path as mozpath
+ from mozbuild.util import memoize
++from functools import reduce
+
+
+ JAR_STORED = ZIP_STORED
+@@ -72,7 +73,7 @@ class JarStruct(object):
+ an instance with empty fields.
+ '''
+ assert self.MAGIC and isinstance(self.STRUCT, OrderedDict)
+- self.size_fields = set(t for t in self.STRUCT.itervalues()
++ self.size_fields = set(t for t in self.STRUCT.values()
+ if not t in JarStruct.TYPE_MAPPING)
+ self._values = {}
+ if data:
+@@ -94,7 +95,7 @@ class JarStruct(object):
+ # For all fields used as other fields sizes, keep track of their value
+ # separately.
+ sizes = dict((t, 0) for t in self.size_fields)
+- for name, t in self.STRUCT.iteritems():
++ for name, t in self.STRUCT.items():
+ if t in JarStruct.TYPE_MAPPING:
+ value, size = JarStruct.get_data(t, data[offset:])
+ else:
+@@ -113,7 +114,7 @@ class JarStruct(object):
+ Initialize an instance with empty fields.
+ '''
+ self.signature = self.MAGIC
+- for name, t in self.STRUCT.iteritems():
++ for name, t in self.STRUCT.items():
+ if name in self.size_fields:
+ continue
+ self._values[name] = 0 if t in JarStruct.TYPE_MAPPING else ''
+@@ -138,9 +139,9 @@ class JarStruct(object):
+ from self.STRUCT.
+ '''
+ serialized = struct.pack('<I', self.signature)
+- sizes = dict((t, name) for name, t in self.STRUCT.iteritems()
++ sizes = dict((t, name) for name, t in self.STRUCT.items()
+ if not t in JarStruct.TYPE_MAPPING)
+- for name, t in self.STRUCT.iteritems():
++ for name, t in self.STRUCT.items():
+ if t in JarStruct.TYPE_MAPPING:
+ format, size = JarStruct.TYPE_MAPPING[t]
+ if name in sizes:
+@@ -159,7 +160,7 @@ class JarStruct(object):
+ variable length fields.
+ '''
+ size = JarStruct.TYPE_MAPPING['uint32'][1]
+- for name, type in self.STRUCT.iteritems():
++ for name, type in self.STRUCT.items():
+ if type in JarStruct.TYPE_MAPPING:
+ size += JarStruct.TYPE_MAPPING[type][1]
+ else:
+@@ -180,7 +181,7 @@ class JarStruct(object):
+ return key in self._values
+
+ def __iter__(self):
+- return self._values.iteritems()
++ return iter(self._values.items())
+
+ def __repr__(self):
+ return "<%s %s>" % (self.__class__.__name__,
+@@ -374,7 +375,7 @@ class JarReader(object):
+ entries = self.entries
+ if not entries:
+ return JAR_STORED
+- return max(f['compression'] for f in entries.itervalues())
++ return max(f['compression'] for f in entries.values())
+
+ @property
+ def entries(self):
+@@ -390,7 +391,7 @@ class JarReader(object):
+ preload = JarStruct.get_data('uint32', self._data)[0]
+ entries = OrderedDict()
+ offset = self._cdir_end['cdir_offset']
+- for e in xrange(self._cdir_end['cdir_entries']):
++ for e in range(self._cdir_end['cdir_entries']):
+ entry = JarCdirEntry(self._data[offset:])
+ offset += entry.size
+ # Creator host system. 0 is MSDOS, 3 is Unix
+@@ -452,7 +453,7 @@ class JarReader(object):
+ for file in jarReader:
+ ...
+ '''
+- for entry in self.entries.itervalues():
++ for entry in self.entries.values():
+ yield self._getreader(entry)
+
+ def __getitem__(self, name):
+@@ -547,7 +548,7 @@ class JarWriter(object):
+ headers = {}
+ preload_size = 0
+ # Prepare central directory entries
+- for entry, content in self._contents.itervalues():
++ for entry, content in self._contents.values():
+ header = JarLocalFileHeader()
+ for name in entry.STRUCT:
+ if name in header:
+@@ -562,7 +563,7 @@ class JarWriter(object):
+ end['disk_entries'] = len(self._contents)
+ end['cdir_entries'] = end['disk_entries']
+ end['cdir_size'] = reduce(lambda x, y: x + y[0].size,
+- self._contents.values(), 0)
++ list(self._contents.values()), 0)
+ # On optimized archives, store the preloaded size and the central
+ # directory entries, followed by the first end of central directory.
+ if self._optimize:
+@@ -571,18 +572,18 @@ class JarWriter(object):
+ if preload_size:
+ preload_size += offset
+ self._data.write(struct.pack('<I', preload_size))
+- for entry, _ in self._contents.itervalues():
++ for entry, _ in self._contents.values():
+ entry['offset'] += offset
+ self._data.write(entry.serialize())
+ self._data.write(end.serialize())
+ # Store local file entries followed by compressed data
+- for entry, content in self._contents.itervalues():
++ for entry, content in self._contents.values():
+ self._data.write(headers[entry].serialize())
+ self._data.write(content)
+ # On non optimized archives, store the central directory entries.
+ if not self._optimize:
+ end['cdir_offset'] = offset
+- for entry, _ in self._contents.itervalues():
++ for entry, _ in self._contents.values():
+ self._data.write(entry.serialize())
+ # Store the end of central directory.
+ self._data.write(end.serialize())
+@@ -622,7 +623,7 @@ class JarWriter(object):
+ deflater = data
+ else:
+ deflater = Deflater(compress, compress_level=self._compress_level)
+- if isinstance(data, basestring):
++ if isinstance(data, str):
+ deflater.write(data)
+ elif hasattr(data, 'read'):
+ if hasattr(data, 'seek'):
+diff --git a/testing/mozbase/manifestparser/manifestparser/ini.py b/testing/mozbase/manifestparser/manifestparser/ini.py
+index e5ba249c1..c141a18b7 100644
+--- a/testing/mozbase/manifestparser/manifestparser/ini.py
++++ b/testing/mozbase/manifestparser/manifestparser/ini.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ # You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import
++
+
+ import os
+ import sys
+@@ -12,7 +12,7 @@ __all__ = ['read_ini', 'combine_fields']
+
+ class IniParseError(Exception):
+ def __init__(self, fp, linenum, msg):
+- if isinstance(fp, basestring):
++ if isinstance(fp, str):
+ path = fp
+ elif hasattr(fp, 'name'):
+ path = fp.name
+@@ -43,12 +43,15 @@ def read_ini(fp, variables=None, default='DEFAULT', defaults_only=False,
+ sections = []
+ key = value = None
+ section_names = set()
+- if isinstance(fp, basestring):
++ if isinstance(fp, str):
+ fp = file(fp)
+
+ # read the lines
+ for (linenum, line) in enumerate(fp.read().splitlines(), start=1):
+
++ if isinstance(line, bytes):
++ line = line.decode('utf-8')
++
+ stripped = line.strip()
+
+ # ignore blank lines
+@@ -66,7 +69,7 @@ def read_ini(fp, variables=None, default='DEFAULT', defaults_only=False,
+ inline_prefixes = {p: -1 for p in comments}
+ while comment_start == sys.maxsize and inline_prefixes:
+ next_prefixes = {}
+- for prefix, index in inline_prefixes.items():
++ for prefix, index in list(inline_prefixes.items()):
+ index = line.find(prefix, index+1)
+ if index == -1:
+ continue
+@@ -163,7 +166,7 @@ def combine_fields(global_vars, local_vars):
+ 'support-files': '%s %s',
+ }
+ final_mapping = global_vars.copy()
+- for field_name, value in local_vars.items():
++ for field_name, value in list(local_vars.items()):
+ if field_name not in field_patterns or field_name not in global_vars:
+ final_mapping[field_name] = value
+ continue
+diff --git a/testing/mozbase/manifestparser/manifestparser/manifestparser.py b/testing/mozbase/manifestparser/manifestparser/manifestparser.py
+index 921369fd2..5b2f4c453 100755
+--- a/testing/mozbase/manifestparser/manifestparser/manifestparser.py
++++ b/testing/mozbase/manifestparser/manifestparser/manifestparser.py
+@@ -2,9 +2,9 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ # You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, print_function
+
+-from StringIO import StringIO
++
++from io import StringIO
+ import json
+ import fnmatch
+ import os
+@@ -23,7 +23,7 @@ from .filters import (
+ __all__ = ['ManifestParser', 'TestManifest', 'convert']
+
+ relpath = os.path.relpath
+-string = (basestring,)
++string = (str,)
+
+
+ # path normalization
+@@ -195,7 +195,7 @@ class ManifestParser(object):
+
+ # otherwise an item
+ # apply ancestor defaults, while maintaining current file priority
+- data = dict(self._ancestor_defaults.items() + data.items())
++ data = dict(list(self._ancestor_defaults.items()) + list(data.items()))
+
+ test = data
+ test['name'] = section
+@@ -323,19 +323,19 @@ class ManifestParser(object):
+ # make some check functions
+ if inverse:
+ def has_tags(test):
+- return not tags.intersection(test.keys())
++ return not tags.intersection(list(test.keys()))
+
+ def dict_query(test):
+- for key, value in kwargs.items():
++ for key, value in list(kwargs.items()):
+ if test.get(key) == value:
+ return False
+ return True
+ else:
+ def has_tags(test):
+- return tags.issubset(test.keys())
++ return tags.issubset(list(test.keys()))
+
+ def dict_query(test):
+- for key, value in kwargs.items():
++ for key, value in list(kwargs.items()):
+ if test.get(key) != value:
+ return False
+ return True
+@@ -359,7 +359,7 @@ class ManifestParser(object):
+ if tests is None:
+ manifests = []
+ # Make sure to return all the manifests, even ones without tests.
+- for manifest in self.manifest_defaults.keys():
++ for manifest in list(self.manifest_defaults.keys()):
+ if isinstance(manifest, tuple):
+ parentmanifest, manifest = manifest
+ if manifest not in manifests:
+@@ -409,7 +409,7 @@ class ManifestParser(object):
+ """
+
+ files = set([])
+- if isinstance(directories, basestring):
++ if isinstance(directories, str):
+ directories = [directories]
+
+ # get files in directories
+@@ -476,7 +476,7 @@ class ManifestParser(object):
+ print('[DEFAULT]', file=fp)
+ for tag in global_tags:
+ print('%s =' % tag, file=fp)
+- for key, value in global_kwargs.items():
++ for key, value in list(global_kwargs.items()):
+ print('%s = %s' % (key, value), file=fp)
+ print(file=fp)
+
+@@ -602,7 +602,7 @@ class ManifestParser(object):
+ internal function to import directories
+ """
+
+- if isinstance(pattern, basestring):
++ if isinstance(pattern, str):
+ patterns = [pattern]
+ else:
+ patterns = pattern
+diff --git a/testing/mozbase/mozinfo/mozinfo/mozinfo.py b/testing/mozbase/mozinfo/mozinfo/mozinfo.py
+index 90c187568..6c5a1f322 100755
+--- a/testing/mozbase/mozinfo/mozinfo/mozinfo.py
++++ b/testing/mozbase/mozinfo/mozinfo/mozinfo.py
+@@ -8,7 +8,7 @@
+ # linux) to the information; I certainly wouldn't want anyone parsing this
+ # information and having behaviour depend on it
+
+-from __future__ import absolute_import, print_function
++
+
+ import os
+ import platform
+@@ -24,7 +24,7 @@ _os = os
+ class unknown(object):
+ """marker class for unknown information"""
+
+- def __nonzero__(self):
++ def __bool__(self):
+ return False
+
+ def __str__(self):
+@@ -96,20 +96,17 @@ elif system.startswith(('MINGW', 'MSYS_NT')):
+ info['os'] = 'win'
+ os_version = version = unknown
+ elif system == "Linux":
+- if hasattr(platform, "linux_distribution"):
+- (distro, os_version, codename) = platform.linux_distribution()
+- else:
+- (distro, os_version, codename) = platform.dist()
+ if not processor:
+ processor = machine
+- version = "%s %s" % (distro, os_version)
++
++ distro = 'OE/Yocto'
++ os_version = version = unknown
+
+ # Bug in Python 2's `platform` library:
+ # It will return a triple of empty strings if the distribution is not supported.
+ # It works on Python 3. If we don't have an OS version,
+ # the unit tests fail to run.
+ if not distro and not os_version and not codename:
+- distro = 'lfs'
+ version = release
+ os_version = release
+
+@@ -131,7 +128,7 @@ else:
+ os_version = version = unknown
+
+ info['version'] = version
+-info['os_version'] = StringVersion(os_version)
++info['os_version'] = version
+
+ # processor type and bits
+ if processor in ["i386", "i686"]:
+@@ -188,12 +185,7 @@ def update(new_info):
+ to a json file containing the new info.
+ """
+
+- PY3 = sys.version_info[0] == 3
+- if PY3:
+- string_types = str,
+- else:
+- string_types = basestring,
+- if isinstance(new_info, string_types):
++ if isinstance(new_info, str):
+ # lazy import
+ import mozfile
+ import json
+@@ -295,7 +287,7 @@ def main(args=None):
+
+ # print out choices if requested
+ flag = False
+- for key, value in options.__dict__.items():
++ for key, value in list(options.__dict__.items()):
+ if value is True:
+ print('%s choices: %s' % (key, ' '.join([str(choice)
+ for choice in choices[key]])))
+@@ -304,7 +296,7 @@ def main(args=None):
+ return
+
+ # otherwise, print out all info
+- for key, value in info.items():
++ for key, value in list(info.items()):
+ print('%s: %s' % (key, value))
+
+
+diff --git a/testing/mozbase/mozprocess/mozprocess/processhandler.py b/testing/mozbase/mozprocess/mozprocess/processhandler.py
+index 3efb650b7..2575a4702 100644
+--- a/testing/mozbase/mozprocess/mozprocess/processhandler.py
++++ b/testing/mozbase/mozprocess/mozprocess/processhandler.py
+@@ -2,7 +2,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ # You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-from __future__ import absolute_import, print_function
++
+
+ import errno
+ import os
+@@ -13,7 +13,7 @@ import threading
+ import time
+ import traceback
+
+-from Queue import Queue, Empty
++from queue import Queue, Empty
+ from datetime import datetime
+
+
+@@ -124,14 +124,14 @@ class ProcessHandlerMixin(object):
+ thread = threading.current_thread().name
+ print("DBG::MOZPROC PID:{} ({}) | {}".format(self.pid, thread, msg))
+
+- def __del__(self, _maxint=sys.maxint):
++ def __del__(self, _maxint=sys.maxsize):
+ if isWin:
+ handle = getattr(self, '_handle', None)
+ if handle:
+ if hasattr(self, '_internal_poll'):
+ self._internal_poll(_deadstate=_maxint)
+ else:
+- self.poll(_deadstate=sys.maxint)
++ self.poll(_deadstate=sys.maxsize)
+ if handle or self._job or self._io_port:
+ self._cleanup()
+ else:
+@@ -243,7 +243,7 @@ class ProcessHandlerMixin(object):
+ p2cread, p2cwrite,
+ c2pread, c2pwrite,
+ errread, errwrite) = args_tuple
+- if not isinstance(args, basestring):
++ if not isinstance(args, str):
+ args = subprocess.list2cmdline(args)
+
+ # Always or in the create new process group
+diff --git a/third_party/python/which/which.py b/third_party/python/which/which.py
+index 9c7d10835..f02b2616e 100644
+--- a/third_party/python/which/which.py
++++ b/third_party/python/which/which.py
+@@ -90,13 +90,13 @@ def _getRegisteredExecutable(exeName):
+ if sys.platform.startswith('win'):
+ if os.path.splitext(exeName)[1].lower() != '.exe':
+ exeName += '.exe'
+- import _winreg
++ import winreg
+ try:
+ key = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\" +\
+ exeName
+- value = _winreg.QueryValue(_winreg.HKEY_LOCAL_MACHINE, key)
++ value = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE, key)
+ registered = (value, "from HKLM\\"+key)
+- except _winreg.error:
++ except winreg.error:
+ pass
+ if registered and not os.path.exists(registered[0]):
+ registered = None
+@@ -244,7 +244,7 @@ def which(command, path=None, verbose=0, exts=None):
+ If no match is found for the command, a WhichError is raised.
+ """
+ try:
+- match = whichgen(command, path, verbose, exts).next()
++ match = next(whichgen(command, path, verbose, exts))
+ except StopIteration:
+ raise WhichError("Could not find '%s' on the path." % command)
+ return match
+@@ -281,17 +281,17 @@ def main(argv):
+ try:
+ optlist, args = getopt.getopt(argv[1:], 'haVvqp:e:',
+ ['help', 'all', 'version', 'verbose', 'quiet', 'path=', 'exts='])
+- except getopt.GetoptError, msg:
++ except getopt.GetoptError as msg:
+ sys.stderr.write("which: error: %s. Your invocation was: %s\n"\
+ % (msg, argv))
+ sys.stderr.write("Try 'which --help'.\n")
+ return 1
+ for opt, optarg in optlist:
+ if opt in ('-h', '--help'):
+- print _cmdlnUsage
++ print(_cmdlnUsage)
+ return 0
+ elif opt in ('-V', '--version'):
+- print "which %s" % __version__
++ print("which %s" % __version__)
+ return 0
+ elif opt in ('-a', '--all'):
+ all = 1
+@@ -319,9 +319,9 @@ def main(argv):
+ nmatches = 0
+ for match in whichgen(arg, path=altpath, verbose=verbose, exts=exts):
+ if verbose:
+- print "%s (%s)" % match
++ print("%s (%s)" % match)
+ else:
+- print match
++ print(match)
+ nmatches += 1
+ if not all:
+ break
+--
+2.21.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0002-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch
index e3f1883a9..e3f1883a9 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0002-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0003-fix-cross-compilation-on-i586-targets.patch
index 3ac25f6ae..e0929a8a8 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0003-fix-cross-compilation-on-i586-targets.patch
@@ -13,18 +13,26 @@ Signed-off-by: Maciej Borzecki <maciej.borzecki@open-rnd.pl>
Rebase to 52.8.1
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Rebase to 60.9.0 (firefox-esr sources)
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
- js/src/old-configure | 2 +-
+ js/src/old-configure.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---- a/js/src/old-configure
-+++ b/js/src/old-configure
-@@ -3833,7 +3833,7 @@ AS='$(CC)'
+diff --git a/js/src/old-configure.in b/js/src/old-configure.in
+index 3d53ee1..11c3d5a 100644
+--- a/js/src/old-configure.in
++++ b/js/src/old-configure.in
+@@ -405,7 +405,7 @@ AS='$(CC)'
AS_DASH_C_FLAG='-c'
MOZ_USER_DIR=".mozilla"
-MOZ_FIX_LINK_PATHS="-Wl,-rpath-link,${DIST}/bin -Wl,-rpath-link,${prefix}/lib"
+MOZ_FIX_LINK_PATHS="-Wl,-rpath-link,${DIST}/bin"
-
-
+ dnl Configure platform-specific CPU architecture compiler options.
+ dnl ==============================================================
+--
+2.21.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-do-not-create-python-environment.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0004-do-not-create-python-environment.patch
index a3c1b69e2..985fc36c1 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-do-not-create-python-environment.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0004-do-not-create-python-environment.patch
@@ -8,10 +8,12 @@ Use oe's python environment rather than create one of host
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Rebase to 60.9.0 (firefox-esr sources)
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
build/moz.configure/init.configure | 18 ------------------
configure.py | 10 +++++++++-
- js/src/old-configure | 4 ++--
3 files changed, 11 insertions(+), 21 deletions(-)
--- a/build/moz.configure/init.configure
@@ -60,14 +62,3 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
from mozbuild.configure import ConfigureSandbox
from mozbuild.makeutil import Makefile
from mozbuild.pythonutil import iter_modules_in_path
---- a/js/src/old-configure
-+++ b/js/src/old-configure
-@@ -9974,7 +9974,7 @@ if test "$JS_STANDALONE"; then
-
- if test "$no_recursion" != yes; then
- trap '' EXIT
-- if ! $PYTHON $_topsrcdir/build/subconfigure.py --list subconfigures --skip skip_subconfigures; then
-+ if ! PYTHONPATH=$_topsrcdir/python/mozbuild/ $PYTHON $_topsrcdir/build/subconfigure.py --list subconfigures --skip skip_subconfigures; then
- exit 1
- fi
- fi
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0002-fix-cannot-find-link.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0005-fix-cannot-find-link.patch
index 4f7ebc68d..4f7ebc68d 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0002-fix-cannot-find-link.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0005-fix-cannot-find-link.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0003-workaround-autoconf-2.13-detection-failed.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0006-workaround-autoconf-2.13-detection-failed.patch
index a754ff16c..a754ff16c 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0003-workaround-autoconf-2.13-detection-failed.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0006-workaround-autoconf-2.13-detection-failed.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0005-fix-do_compile-failed-on-mips.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0007-fix-do_compile-failed-on-mips.patch
index d1da10972..d1da10972 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0005-fix-do_compile-failed-on-mips.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0007-fix-do_compile-failed-on-mips.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/add-riscv-support.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0008-add-riscv-support.patch
index 0a4148561..0a4148561 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/add-riscv-support.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0008-add-riscv-support.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs-fix-coredump-caused-by-getenv.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0009-mozjs-fix-coredump-caused-by-getenv.patch
index 477f73a2f..477f73a2f 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs-fix-coredump-caused-by-getenv.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0009-mozjs-fix-coredump-caused-by-getenv.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/format-overflow.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0010-format-overflow.patch
index e257fc6f6..e257fc6f6 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/format-overflow.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0010-format-overflow.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-To-fix-build-error-on-arm32BE.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0011-To-fix-build-error-on-arm32BE.patch
index 056f74a52..056f74a52 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-To-fix-build-error-on-arm32BE.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0011-To-fix-build-error-on-arm32BE.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/JS_PUBLIC_API.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0012-JS_PUBLIC_API.patch
index 56b18ba8c..56b18ba8c 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/JS_PUBLIC_API.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0012-JS_PUBLIC_API.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-riscv-Disable-atomic-operations.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0013-riscv-Disable-atomic-operations.patch
index 2e810c87f..2e810c87f 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-riscv-Disable-atomic-operations.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0013-riscv-Disable-atomic-operations.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/fallback-to-2011-C++-standard.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0014-fallback-to-2011-C++-standard.patch
index 7a0d286e1..7a0d286e1 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/fallback-to-2011-C++-standard.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/0014-fallback-to-2011-C++-standard.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-fix-compiling-failure-on-mips64-n32-bsp.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/mipsarchn32/0001-fix-compiling-failure-on-mips64-n32-bsp.patch
index b882d76ec..b882d76ec 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-fix-compiling-failure-on-mips64-n32-bsp.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/mipsarchn32/0001-fix-compiling-failure-on-mips64-n32-bsp.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0006-support-musl.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/musl/0001-support-musl.patch
index 770d5e0aa..770d5e0aa 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0006-support-musl.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/musl/0001-support-musl.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-js-Fix-build-with-musl.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/musl/0002-js-Fix-build-with-musl.patch
index f4c6e2768..f4c6e2768 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-js-Fix-build-with-musl.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs/musl/0002-js-Fix-build-with-musl.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs_60.9.0.bb
index 389bcac92..9466c62aa 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs_60.9.0.bb
@@ -3,40 +3,45 @@ HOMEPAGE = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonk
LICENSE = "MPL-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=dc9b6ecd19a14a54a628edaaf23733bf"
-SRC_URI = "https://dev.gentoo.org/~axs/distfiles/mozjs-60.5.2.tar.bz2 \
- file://0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch \
- file://0010-fix-cross-compilation-on-i586-targets.patch \
- file://0001-do-not-create-python-environment.patch \
- file://0002-fix-cannot-find-link.patch \
- file://0003-workaround-autoconf-2.13-detection-failed.patch \
- file://0004-do-not-use-autoconf-2.13-to-refresh-old.configure.patch \
- file://0005-fix-do_compile-failed-on-mips.patch \
- file://add-riscv-support.patch \
- file://0001-mozjs-fix-coredump-caused-by-getenv.patch \
- file://format-overflow.patch \
- file://0001-To-fix-build-error-on-arm32BE.patch \
- file://JS_PUBLIC_API.patch \
- file://0001-riscv-Disable-atomic-operations.patch \
- file://fallback-to-2011-C++-standard.patch \
- "
+SRC_URI = " \
+ https://archive.mozilla.org/pub/firefox/releases/${PV}esr/source/firefox-${PV}esr.source.tar.xz \
+ file://0001-Port-build-to-python3.patch \
+ file://0002-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch \
+ file://0003-fix-cross-compilation-on-i586-targets.patch \
+ file://0004-do-not-create-python-environment.patch \
+ file://0005-fix-cannot-find-link.patch \
+ file://0006-workaround-autoconf-2.13-detection-failed.patch \
+ file://0007-fix-do_compile-failed-on-mips.patch \
+ file://0008-add-riscv-support.patch \
+ file://0009-mozjs-fix-coredump-caused-by-getenv.patch \
+ file://0010-format-overflow.patch \
+ file://0011-To-fix-build-error-on-arm32BE.patch \
+ file://0012-JS_PUBLIC_API.patch \
+ file://0013-riscv-Disable-atomic-operations.patch \
+ file://0014-fallback-to-2011-C++-standard.patch \
+"
SRC_URI_append_libc-musl = " \
- file://0006-support-musl.patch \
- file://0001-js-Fix-build-with-musl.patch \
- "
+ file://musl/0001-support-musl.patch \
+ file://musl/0002-js-Fix-build-with-musl.patch \
+"
SRC_URI_append_mipsarchn32 = " \
- file://0001-fix-compiling-failure-on-mips64-n32-bsp.patch \
- "
-SRC_URI[md5sum] = "023ed014e9e93d01620d121bc06a3589"
-SRC_URI[sha256sum] = "f51039c997415fd0f13f8e01966b4a8ff80cbf90deb8b14c18827104a369cc0d"
+ file://mipsarchn32/0001-fix-compiling-failure-on-mips64-n32-bsp.patch \
+"
+SRC_URI[md5sum] = "69a0be9ce695e5dc4941ed0c78ef00c2"
+SRC_URI[sha256sum] = "9f453c8cc5669e46e38f977764d49a36295bf0d023619d9aac782e6bb3e8c53f"
+
+S = "${WORKDIR}/firefox-${@d.getVar("PV").replace("esr", "")}"
-inherit autotools pkgconfig perlnative pythonnative
+inherit autotools pkgconfig perlnative python3native
inherit features_check
CONFLICT_DISTRO_FEATURES_mipsarchn32 = "ld-is-gold"
-DEPENDS += "nspr zlib python-six-native python-pytoml-native \
- python-jsmin-native python-futures-native \
- python-which-native"
+DEPENDS += " \
+ nspr zlib autoconf-2.13-native \
+ python3-six-native python3-pytoml-native \
+ python3-jsmin-native python3-six \
+"
# Disable null pointer optimization in gcc >= 6
# https://bugzilla.redhat.com/show_bug.cgi?id=1328045
@@ -51,6 +56,7 @@ EXTRA_OECONF = " \
--libdir=${libdir} \
--disable-tests --disable-strip --disable-optimize \
--disable-jemalloc \
+ --with-nspr-cflags='-I${STAGING_INCDIR}/nspr -I${STAGING_INCDIR}/nss3' \
--with-nspr-libs='-lplds4 -lplc4 -lnspr4' \
${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', "--enable-gold", '--disable-gold', d)} \
"
@@ -77,15 +83,9 @@ export HOST_CXXFLAGS = "${BUILD_CXXFLAGS}"
do_configure() {
export SHELL="/bin/sh"
- export TMP="${B}"
- ${S}/js/src/configure ${EXTRA_OECONF}
-}
-
-do_compile_prepend() {
- export SHELL="/bin/sh"
- export S
- export PYTHONPATH
cd ${S}
+ # Add mozjs python-modules necessary
+ PYTHONPATH="${S}/third_party/python/which:${S}/config:${S}/build"
for sub_dir in python testing/mozbase; do
for module_dir in `ls $sub_dir -1`;do
[ $module_dir = "virtualenv" ] && continue
@@ -94,25 +94,28 @@ do_compile_prepend() {
fi
done
done
- PYTHONPATH="$PYTHONPATH:${S}/config:${S}/build"
- cd -
+ echo "$PYTHONPATH" > ${B}/PYTHONPATH
+ export PYTHONPATH=`cat ${B}/PYTHONPATH`
+
+ cd ${S}/js/src
+ autoconf213 --macrodir=${STAGING_DATADIR_NATIVE}/autoconf213 old-configure.in > old-configure
+
+ cd ${B}
+ ${S}/js/src/configure ${EXTRA_OECONF}
+
+ # Make standard Makefile checks pass
+ touch ${S}/js/src/configure
+ touch ${B}/config.status
+}
+
+do_compile_prepend() {
+ export SHELL="/bin/sh"
+ export PYTHONPATH=`cat ${B}/PYTHONPATH`
}
do_install_prepend() {
export SHELL="/bin/sh"
- export S
- export PYTHONPATH
- cd ${S}
- for sub_dir in python testing/mozbase; do
- for module_dir in `ls $sub_dir -1`;do
- [ $module_dir = "virtualenv" ] && continue
- if [ -d "${S}/$sub_dir/$module_dir" ];then
- PYTHONPATH="$PYTHONPATH:${S}/$sub_dir/$module_dir"
- fi
- done
- done
- PYTHONPATH="$PYTHONPATH:${S}/config:${S}/build"
- cd -
+ export PYTHONPATH=`cat ${B}/PYTHONPATH`
}
PACKAGES =+ "lib${BPN}"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem/0001-smem-fix-support-for-source-option-python3.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem/0001-smem-fix-support-for-source-option-python3.patch
new file mode 100644
index 000000000..5c1be5a0a
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem/0001-smem-fix-support-for-source-option-python3.patch
@@ -0,0 +1,53 @@
+From 3ff78f1f00973393d1a7ee4e467a2bacf1c807f3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net>
+Date: Wed, 5 Feb 2020 16:14:21 +0000
+Subject: [PATCH] smem: fix support for --source option (python3)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Using --source doesn't work without this patch:
+Traceback (most recent call last):
+ File "./smem", line 727, in <module>
+ showpids()
+ File "./smem", line 299, in showpids
+ showtable(pt.keys(), fields, columns.split(), options.sort or 'pss')
+ File "./smem", line 519, in showtable
+ mt = totalmem()
+ File "./smem", line 118, in totalmem
+ _totalmem = memory()['memtotal']
+ File "./smem", line 193, in memory
+ m = f.match(l)
+TypeError: cannot use a string pattern on a bytes-like object
+
+python3's tarfile returns bytes, whereas all of the rest of
+the code assumes str.
+
+Fix the tarfile usage to convert to str before returning the
+results.
+
+Signed-off-by: André Draszik <git@andred.net>
+Upstream-Status: Inappropriate [upstream wants to support python2 & python3]
+---
+ smem | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/smem b/smem
+index 46a3189..54d40dd 100755
+--- a/smem
++++ b/smem
+@@ -90,9 +90,9 @@ class tardata(procdata):
+ d,f = ti.name.split('/')
+ yield d
+ def _read(self, f):
+- return self.tar.extractfile(f).read()
++ return self.tar.extractfile(f).read().decode()
+ def _readlines(self, f):
+- return self.tar.extractfile(f).readlines()
++ return [l.decode() for l in self.tar.extractfile(f).readlines()]
+ def piduser(self, p):
+ t = self.tar.getmember("%d" % p)
+ if t.uname:
+--
+2.23.0.rc1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem_1.5.bb
index 702217a33..90db9c3f3 100644
--- a/meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem_1.5.bb
@@ -9,9 +9,16 @@ SECTION = "Applications/System"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-SRC_URI = "http://www.selenic.com/${BPN}/download/${BP}.tar.gz"
-SRC_URI[md5sum] = "fe79435c3930389bfdb560255c802162"
-SRC_URI[sha256sum] = "2ea9f878f4cf3c276774c3f7e2a41977a1f2d64f98d2dcb6a15f1f3d84df61ec"
+HG_CHANGESET = "98273ce331bb"
+SRC_URI = "https://selenic.com/repo/${BPN}/archive/${HG_CHANGESET}.tar.bz2;downloadfilename=${BP}.tar.bz2 \
+ file://0001-smem-fix-support-for-source-option-python3.patch"
+SRC_URI[md5sum] = "51c3989779360f42b42ef46b2831be3a"
+SRC_URI[sha256sum] = "161131c686a6d9962a0e96912526dd46308e022d62e3f8acaed5a56fda8e08ce"
+
+UPSTREAM_CHECK_URI = "https://selenic.com/repo/smem/tags"
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
+
+S = "${WORKDIR}/${BPN}-${HG_CHANGESET}"
do_compile() {
${CC} ${CFLAGS} ${LDFLAGS} smemcap.c -o smemcap
@@ -21,11 +28,16 @@ do_install() {
install -d ${D}/${bindir}/
install -d ${D}/${mandir}/man8
install -m 0755 ${S}/smem ${D}${bindir}/
+ sed -i -e '1s,#!.*python.*,#!${USRBINPATH}/env python3,' ${D}${bindir}/smem
install -m 0755 ${S}/smemcap ${D}${bindir}/
install -m 0644 ${S}/smem.8 ${D}/${mandir}/man8/
}
-RDEPENDS_${PN} += "python-textutils python-compression python-shell python-codecs"
-PACKAGES =+ "smemcap"
+RDEPENDS_${PN} = "python3-core python3-compression"
+RRECOMMENDS_${PN} = "python3-matplotlib python3-numpy"
+
+PACKAGE_BEFORE_PN = "smemcap"
FILES_smemcap = "${bindir}/smemcap"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/perl-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend b/meta-openembedded/meta-oe/dynamic-layers/perl-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
new file mode 100644
index 000000000..69bc788a8
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/perl-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
@@ -0,0 +1 @@
+RDEPENDS_packagegroup-meta-oe-support += "debsums"
diff --git a/meta-openembedded/meta-oe/recipes-support/debsums/debsums_2.2.2.bb b/meta-openembedded/meta-oe/dynamic-layers/perl-layer/recipes-support/debsums/debsums_2.2.2.bb
index 13f20eb94..07ab5e62b 100644
--- a/meta-openembedded/meta-oe/recipes-support/debsums/debsums_2.2.2.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/perl-layer/recipes-support/debsums/debsums_2.2.2.bb
@@ -20,6 +20,8 @@ UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/"
inherit perlnative gettext
+DEPENDS += "po4a-native"
+
do_install() {
install -d ${D}/${sysconfdir}/cron.daily ${D}/${sysconfdir}/cron.weekly
install -d ${D}/${sysconfdir}/cron.monthly ${D}${sbindir} ${D}${bindir}
diff --git a/meta-openembedded/meta-oe/licenses/wxWidgets b/meta-openembedded/meta-oe/licenses/wxWidgets
new file mode 100644
index 000000000..0f6b9d6a8
--- /dev/null
+++ b/meta-openembedded/meta-oe/licenses/wxWidgets
@@ -0,0 +1,54 @@
+ wxWindows Library Licence, Version 3.1
+ ======================================
+
+ Copyright (c) 1998-2005 Julian Smart, Robert Roebling et al
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this licence document, but changing it is not allowed.
+
+ WXWINDOWS LIBRARY LICENCE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public Licence as published by
+ the Free Software Foundation; either version 2 of the Licence, or (at
+ your option) any later version.
+
+ This library is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
+ General Public Licence for more details.
+
+ You should have received a copy of the GNU Library General Public Licence
+ along with this software, usually in a file named COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301 USA.
+
+ EXCEPTION NOTICE
+
+ 1. As a special exception, the copyright holders of this library give
+ permission for additional uses of the text contained in this release of
+ the library as licenced under the wxWindows Library Licence, applying
+ either version 3.1 of the Licence, or (at your option) any later version of
+ the Licence as published by the copyright holders of version
+ 3.1 of the Licence document.
+
+ 2. The exception is that you may use, copy, link, modify and distribute
+ under your own terms, binary object code versions of works based
+ on the Library.
+
+ 3. If you copy code from files distributed under the terms of the GNU
+ General Public Licence or the GNU Library General Public Licence into a
+ copy of this library, as this licence permits, the exception does not
+ apply to the code that you add in this way. To avoid misleading anyone as
+ to the status of such modified files, you must delete this exception
+ notice from such code and/or adjust the licensing conditions notice
+ accordingly.
+
+ 4. If you write modifications of your own for this library, it is your
+ choice whether to permit this exception to apply to your modifications.
+ If you do not wish that, you must delete the exception notice from such
+ code and/or adjust the licensing conditions notice accordingly.
+
+
+
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_5.5.bb b/meta-openembedded/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_5.5.bb
deleted file mode 100644
index bb0aad341..000000000
--- a/meta-openembedded/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_5.5.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Analyze Suspend"
-DESCRIPTION = "analyze-suspend is a tool for system developers to visualize \
-the activity between suspend and resume, allowing them to identify \
-inefficiencies and bottlenecks."
-HOMEPAGE = "https://01.org/suspendresume"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e"
-
-# Apart from the listed RDEPENDS, analyze-suspend depends on some features
-# provided by the kernel. These options are:
-# - CONFIG_PM_DEBUG=y
-# - CONFIG_PM_SLEEP_DEBUG=y
-# - CONFIG_FTRACE=y
-# - CONFIG_FUNCTION_TRACER=y
-# - CONFIG_FUNCTION_GRAPH_TRACER=y
-
-RDEPENDS_${PN} += "python-core python-datetime python-stringold"
-
-SRC_URI = "git://github.com/01org/suspendresume.git;protocol=https"
-SRCREV = "cf59527dc24fdd2f314ae4dcaeb3d68a117988f6"
-
-S = "${WORKDIR}/git"
-
-do_install() {
- install -Dm 0755 analyze_suspend.py ${D}${bindir}/analyze_suspend.py
- install -Dm 0644 README ${D}${docdir}/analyze-suspend/README
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/fio/files/python3_shebangs.patch b/meta-openembedded/meta-oe/recipes-benchmark/fio/files/python3_shebangs.patch
new file mode 100644
index 000000000..068b02164
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/fio/files/python3_shebangs.patch
@@ -0,0 +1,38 @@
+python3: change four shebangs to python3
+
+Upstream-Status: Pending
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+--- a/tools/fio_jsonplus_clat2csv
++++ b/tools/fio_jsonplus_clat2csv
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # Note: this script is python2 and python3 compatible.
+ #
+ # fio_jsonplus_clat2csv
+--- a/tools/fiologparser.py
++++ b/tools/fiologparser.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # Note: this script is python2 and python 3 compatible.
+ #
+ # fiologparser.py
+--- a/tools/hist/fiologparser_hist.py
++++ b/tools/hist/fiologparser_hist.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ """
+ Utility for converting *_clat_hist* files generated by fio into latency statistics.
+
+--- a/tools/plot/fio2gnuplot
++++ b/tools/plot/fio2gnuplot
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # Note: this script is python2 and python3 compatible.
+ #
+ # Copyright (C) 2013 eNovance SAS <licensing@enovance.com>
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.17.bb b/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.17.bb
index e41c21d1e..759d1087c 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.17.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.17.bb
@@ -11,7 +11,8 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS = "libaio zlib coreutils-native"
-RDEPENDS_${PN} = "python bash"
+DEPENDS += "${@bb.utils.contains('MACHINE_FEATURES', 'pmem', 'pmdk', '', d)}"
+RDEPENDS_${PN} = "python3-core bash"
PACKAGECONFIG_NUMA = "numa"
# ARM does not currently support NUMA
@@ -24,6 +25,7 @@ PACKAGECONFIG[numa] = ",--disable-numa,numactl"
SRCREV = "08ce9dc20b8a4e55db7af6d869ddfa49b4a02d03"
SRC_URI = "git://git.kernel.dk/fio.git \
file://0001-update-the-interpreter-paths.patch \
+ file://python3_shebangs.patch \
"
S = "${WORKDIR}/git"
@@ -32,7 +34,7 @@ S = "${WORKDIR}/git"
DISABLE_STATIC = ""
EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}'"
-EXTRA_OECONF = "--disable-optimizations"
+EXTRA_OECONF = "${@bb.utils.contains('MACHINE_FEATURES', 'x86', '--disable-optimizations', '', d)}"
do_configure() {
./configure ${EXTRA_OECONF}
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
index 50b553c80..6d20bbdaf 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
@@ -10,13 +10,13 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
DEPENDS = "libpng jpeg udev"
-PV = "20190904+${SRCPV}"
+PV = "20191226+${SRCPV}"
COMPATIBLE_HOST_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '.*-linux*', 'null', d)}"
SRC_URI = "git://github.com/glmark2/glmark2.git;protocol=https \
file://python3.patch"
-SRCREV = "24a1139dcbfd86bd02065316eaa90559e39374e1"
+SRCREV = "72dabc5d72b49c6d45badeb8a941ba4d829b0bd6"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_488.bb b/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_489.bb
index 4d9e07765..e4b7e4f49 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_488.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_489.bb
@@ -11,8 +11,8 @@ SRC_URI = "http://www.iozone.org/src/current/${BPN}_${PV}.tar \
file://0001-let-system-headers-provide-pread64.patch \
file://copyright.txt \
"
-SRC_URI[md5sum] = "d60a69e44cda8436f4f94d860958efc2"
-SRC_URI[sha256sum] = "960265163d93f15f7ad352f726d4837c5dd794fff357c743fdb56cbcf4abca04"
+SRC_URI[md5sum] = "e863281987689cd6d9729e535637b77d"
+SRC_URI[sha256sum] = "6155850d1019f2450dc926bbdb5a24abf423ee3bb928ab1e68569cf60a908584"
UPSTREAM_CHECK_REGEX = "iozone3_(?P<pver>\d+).tar"
@@ -25,6 +25,7 @@ S = "${WORKDIR}/${BPN}_${PV}/src/current/"
#
EXTRA_OEMAKE_powerpc = "linux-powerpc CC='${CC}' GCC='${CC}'"
EXTRA_OEMAKE_powerpc64 = "linux-powerpc64 CC='${CC}' GCC='${CC}'"
+EXTRA_OEMAKE_powerpc64le = "linux-powerpc64 CC='${CC}' GCC='${CC}'"
EXTRA_OEMAKE_x86-64 = "linux-AMD64 CC='${CC}' GCC='${CC}'"
EXTRA_OEMAKE_arm = "linux-arm CC='${CC}' GCC='${CC}'"
EXTRA_OEMAKE = "linux CC='${CC}' GCC='${CC}'"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-huge_page_setup_helper-use-python3-interpreter.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-huge_page_setup_helper-use-python3-interpreter.patch
new file mode 100644
index 000000000..e45f283b3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-huge_page_setup_helper-use-python3-interpreter.patch
@@ -0,0 +1,29 @@
+From b77c61de4d88d2c6e5d31f4f5a5877cc4c61272e Mon Sep 17 00:00:00 2001
+From: Andrey Zhizhikin <andrey.z@gmail.com>
+Date: Mon, 27 Jan 2020 17:27:55 +0000
+Subject: [PATCH] huge_page_setup_helper: use python3 interpreter
+
+Setup helper script is already prepared to be used with python3, use the
+interpreter explicitly. This removes dependency to python2 and will not
+fail the QA check.
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
+---
+ huge_page_setup_helper.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/huge_page_setup_helper.py b/huge_page_setup_helper.py
+index a9ba2bf..7ba0c92 100755
+--- a/huge_page_setup_helper.py
++++ b/huge_page_setup_helper.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/env python3
+
+ #
+ # Tool to set up Linux large page support with minimal effort
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
index e66db1a09..4768d7b63 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
@@ -4,7 +4,7 @@ LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://LGPL-2.1;md5=2d5025d4aa3495befef8f17206a5b0a1"
DEPENDS = "sysfsutils"
-RDEPENDS_${PN} += "bash python python-io python-lang python-subprocess python-resource"
+RDEPENDS_${PN} += "bash python3-core"
RDEPENDS_${PN}-tests += "bash python3-core"
PV = "2.22"
@@ -25,6 +25,7 @@ SRC_URI = " \
file://0005-Include-dirent.h-for-ino_t.patch \
file://0006-include-limits.h-for-PATH_MAX.patch \
file://0001-tests-add-explicit-permissions-to-open-call.patch \
+ file://0001-huge_page_setup_helper-use-python3-interpreter.patch \
"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
@@ -37,6 +38,7 @@ LIBARGS = "LIB32=${baselib} LIB64=${baselib}"
LIBHUGETLBFS_ARCH = "${TARGET_ARCH}"
LIBHUGETLBFS_ARCH_powerpc = "ppc"
LIBHUGETLBFS_ARCH_powerpc64 = "ppc64"
+LIBHUGETLBFS_ARCH_powerpc64le = "ppc64"
EXTRA_OEMAKE = "'ARCH=${LIBHUGETLBFS_ARCH}' 'OPT=${CFLAGS}' 'CC=${CC}' ${LIBARGS} BUILDTYPE=NATIVEONLY V=2"
PARALLEL_MAKE = ""
CFLAGS += "-fexpensive-optimizations -frename-registers -fomit-frame-pointer -g0"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.2.1.bb b/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.2.1.bb
index 52b341b0e..4a8e5b5b2 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.2.1.bb
@@ -11,7 +11,7 @@ SRC_URI[sha256sum] = "675e7ca96719e2f3b42a6c13421213a398f04da0f8e78f4691fa9261fd
S = "${WORKDIR}/phoronix-test-suite"
-inherit systemd allarch
+inherit systemd allarch mime mime-xdg
do_install() {
DESTDIR=${D} ./install-sh ${exec_prefix}
@@ -29,7 +29,7 @@ do_install() {
SYSTEMD_AUTO_ENABLE = "disable"
SYSTEMD_SERVICE_${PN} = "phoromatic-client.service phoromatic-server.service"
-RDEPENDS_${PN} += "bash python php-cli util-linux-lscpu os-release lsb-release"
+RDEPENDS_${PN} += "bash python3-core php-cli util-linux-lscpu os-release lsb-release"
FILES_${PN} += " \
${datadir}/phoronix-test-suite \
diff --git a/meta-openembedded/meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb b/meta-openembedded/meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb
index 09e738488..b89fe6771 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb
@@ -30,6 +30,7 @@ RDEPENDS_${PN}_arm = "dmidecode"
RDEPENDS_${PN}_aarch64 = "dmidecode"
RDEPENDS_${PN}_powerpc = "dmidecode"
RDEPENDS_${PN}_powerpc64 = "dmidecode"
+RDEPENDS_${PN}_powerpc64le = "dmidecode"
RDEPENDS_${PN}_append = " \
perl \
perl-module-file-basename \
diff --git a/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-typecast-enum-conversions-explicitly.patch b/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-typecast-enum-conversions-explicitly.patch
new file mode 100644
index 000000000..7ac53650f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-typecast-enum-conversions-explicitly.patch
@@ -0,0 +1,69 @@
+From 8a236330f2af56bde21e9f69208ea3e59f529f0c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 15 Mar 2020 17:02:30 -0700
+Subject: [PATCH] typecast enum conversions explicitly
+
+clang complains like below
+
+libflashrom.c:191:43: error: implicit conversion from enumeration type 'const enum test_state' to different enumeration type 'enum flashrom_test_state' [-Werror,-Wenum-conversion]
+ supported_boards[i].working = binfo[i].working;
+ ~ ~~~~~~~~~^~~~~~~
+libflashrom.c:229:46: error: implicit conversion from enumeration type 'const enum test_state' to different enumeration type 'enum flashrom_test_state' [-Werror,-Wenum-conversion]
+ supported_chipsets[i].status = chipset[i].status;
+ ~ ~~~~~~~~~~~^~~~~~
+
+However these enums are exactly same so they can be typecasted
+
+libflashrom.h
+
+/** @ingroup flashrom-query */
+enum flashrom_test_state {
+ FLASHROM_TESTED_OK = 0,
+ FLASHROM_TESTED_NT = 1,
+ FLASHROM_TESTED_BAD = 2,
+ FLASHROM_TESTED_DEP = 3,
+ FLASHROM_TESTED_NA = 4,
+};
+
+flash.h
+
+enum test_state {
+ OK = 0,
+ NT = 1, /* Not tested */
+ BAD, /* Known to not work */
+ DEP, /* Support depends on configuration (e.g. Intel flash descriptor) */
+ NA, /* Not applicable (e.g. write support on ROM chips) */
+ };
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libflashrom.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libflashrom.c b/libflashrom.c
+index 0dec22e..7956685 100644
+--- a/libflashrom.c
++++ b/libflashrom.c
+@@ -188,7 +188,7 @@ struct flashrom_board_info *flashrom_supported_boards(void)
+ for (; i < boards_known_size; ++i) {
+ supported_boards[i].vendor = binfo[i].vendor;
+ supported_boards[i].name = binfo[i].name;
+- supported_boards[i].working = binfo[i].working;
++ supported_boards[i].working = (enum flashrom_test_state)binfo[i].working;
+ }
+ } else {
+ msg_gerr("Memory allocation error!\n");
+@@ -226,7 +226,7 @@ struct flashrom_chipset_info *flashrom_supported_chipsets(void)
+ supported_chipsets[i].chipset = chipset[i].device_name;
+ supported_chipsets[i].vendor_id = chipset[i].vendor_id;
+ supported_chipsets[i].chipset_id = chipset[i].device_id;
+- supported_chipsets[i].status = chipset[i].status;
++ supported_chipsets[i].status = (enum flashrom_test_state)chipset[i].status;
+ }
+ } else {
+ msg_gerr("Memory allocation error!\n");
+--
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.1.bb b/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.2.bb
index 074a1a5f6..642cec159 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.1.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.2.bb
@@ -6,9 +6,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
DEPENDS = "pciutils libusb libusb-compat"
SRC_URI = "https://download.flashrom.org/releases/flashrom-v${PV}.tar.bz2 \
+ file://0001-typecast-enum-conversions-explicitly.patch \
"
-SRC_URI[md5sum] = "91bab6c072e38a493bb4eb673e4fe0d6"
-SRC_URI[sha256sum] = "aeada9c70c22421217c669356180c0deddd0b60876e63d2224e3260b90c14e19"
+SRC_URI[md5sum] = "7f8e4b87087eb12ecee0fcc5445b4956"
+SRC_URI[sha256sum] = "e1f8d95881f5a4365dfe58776ce821dfcee0f138f75d0f44f8a3cd032d9ea42b"
S = "${WORKDIR}/flashrom-v${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb b/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb
index 48490e8d8..890db55bc 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb
@@ -7,7 +7,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
DEPENDS = " \
bison-native \
flex-native \
- rrdtool \
virtual/libiconv \
"
@@ -91,7 +90,7 @@ ALLOW_EMPTY_${PN} = "1"
RDEPENDS_${PN} += " \
${PN}-libsensors \
${PN}-sensors \
- ${PN}-sensord \
+ ${@bb.utils.contains('PACKAGECONFIG', 'sensord', '${PN}-sensord', '', d)} \
${PN}-fancontrol \
${PN}-sensorsdetect \
${PN}-sensorsconfconvert \
diff --git a/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli/0001-fix-musl-compilation.patch b/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli/0001-fix-musl-compilation.patch
new file mode 100644
index 000000000..be5d0dac7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli/0001-fix-musl-compilation.patch
@@ -0,0 +1,26 @@
+From 0ff7ad2c88e3a47e7e3f6fe68c28a8d2d8a71f1f Mon Sep 17 00:00:00 2001
+From: Neel Chotai <neel@chot.ai>
+Date: Fri, 14 Feb 2020 17:56:23 +0000
+Subject: [PATCH] fix musl compilation
+
+Upstream-Status: Backport [https://github.com/linux-nvme/nvme-cli/commit/0ff7ad2c88e3a47e7e3f6fe68c28a8d2d8a71f1f]
+Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
+---
+ plugins/micron/micron-nvme.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/plugins/micron/micron-nvme.c b/plugins/micron/micron-nvme.c
+index 8240887..165fcf0 100644
+--- a/plugins/micron/micron-nvme.c
++++ b/plugins/micron/micron-nvme.c
+@@ -13,6 +13,7 @@
+ #include "nvme-print.h"
+ #include "nvme-ioctl.h"
+ #include <sys/ioctl.h>
++#include <limits.h>
+
+ #define CREATE_CMD
+ #include "micron-nvme.h"
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.9.bb b/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.10.1.bb
index ea8bc1738..4f4bb2dfa 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.9.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.10.1.bb
@@ -7,8 +7,10 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=8264535c0c4e9c6c335635c4026a8022"
DEPENDS = "util-linux"
PV .= "+git${SRCPV}"
-SRC_URI = "git://github.com/linux-nvme/nvme-cli.git"
-SRCREV = "977e7d4cf59c3c7f89e9c093c91f991b07292e45"
+SRC_URI = "git://github.com/linux-nvme/nvme-cli.git \
+ file://0001-fix-musl-compilation.patch \
+"
+SRCREV = "1d84d6ae0c7d7ceff5a73fe174dde8b0005f6108"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb
index 44411751e..fd6b85ff2 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb
@@ -13,7 +13,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}/${PV}/${BP}.tar.bz2 \
SRC_URI[md5sum] = "8ea16c6b3cc48097a8e62311fe0e25b9"
SRC_URI[sha256sum] = "de67caa102aa4c8fbed5300e5a0262e40411c4cc79f4379a8d34eed797968fc3"
-inherit distutils cmake gettext
+inherit distutils3 cmake gettext
do_install_append() {
# these files seem to only be used by symbian and trigger QA warnings
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio/0001-filter-Rename-some-variables-to-tr_stdxxx.patch b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio/0001-filter-Rename-some-variables-to-tr_stdxxx.patch
new file mode 100644
index 000000000..dbc48a213
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio/0001-filter-Rename-some-variables-to-tr_stdxxx.patch
@@ -0,0 +1,108 @@
+From 601e6e56f44b91d957bb643662455f52540f336a Mon Sep 17 00:00:00 2001
+From: Corey Minyard <cminyard@mvista.com>
+Date: Tue, 25 Feb 2020 16:08:40 -0600
+Subject: [PATCH] filter: Rename some variables to tr_stdxxx
+
+stdout and stderr can be macros, don't use the names directly.
+
+Signed-off-by: Corey Minyard <cminyard@mvista.com>
+Upstream-Status: Backport [https://github.com/cminyard/gensio/commit/601e6e56f44b91d957bb643662455f52540f336a]
+Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
+---
+ lib/gensio_filter_trace.c | 28 ++++++++++++++--------------
+ 1 file changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/lib/gensio_filter_trace.c b/lib/gensio_filter_trace.c
+index d39d58b..abe2db6 100644
+--- a/lib/gensio_filter_trace.c
++++ b/lib/gensio_filter_trace.c
+@@ -32,8 +32,8 @@ struct trace_filter {
+ enum trace_dir dir;
+ bool raw;
+ char *filename;
+- bool stdout;
+- bool stderr;
++ bool tr_stdout;
++ bool tr_stderr;
+
+ FILE *tr;
+ };
+@@ -82,9 +82,9 @@ trace_try_connect(struct gensio_filter *filter, struct timeval *timeout)
+ {
+ struct trace_filter *tfilter = filter_to_trace(filter);
+
+- if (tfilter->stdout) {
++ if (tfilter->tr_stdout) {
+ tfilter->tr = stdout;
+- } else if (tfilter->stderr) {
++ } else if (tfilter->tr_stderr) {
+ tfilter->tr = stderr;
+ } else if (tfilter->filename) {
+ tfilter->tr = fopen(tfilter->filename, "a+");
+@@ -99,7 +99,7 @@ trace_try_disconnect(struct gensio_filter *filter, struct timeval *timeout)
+ {
+ struct trace_filter *tfilter = filter_to_trace(filter);
+
+- if (!tfilter->stdout && !tfilter->stderr && tfilter->tr)
++ if (!tfilter->tr_stdout && !tfilter->tr_stderr && tfilter->tr)
+ fclose(tfilter->tr);
+ tfilter->tr = NULL;
+ return 0;
+@@ -331,12 +331,12 @@ static int gensio_trace_filter_func(struct gensio_filter *filter, int op,
+
+ static struct gensio_filter *
+ gensio_trace_filter_raw_alloc(struct gensio_os_funcs *o, enum trace_dir dir,
+- bool raw, const char *filename, bool stdout,
+- bool stderr)
++ bool raw, const char *filename, bool tr_stdout,
++ bool tr_stderr)
+ {
+ struct trace_filter *tfilter;
+
+- if (!filename && !stdout && !stderr)
++ if (!filename && !tr_stdout && !tr_stderr)
+ dir = TRACE_NONE;
+
+ tfilter = o->zalloc(o, sizeof(*tfilter));
+@@ -351,8 +351,8 @@ gensio_trace_filter_raw_alloc(struct gensio_os_funcs *o, enum trace_dir dir,
+ if (!tfilter->filename)
+ goto out_nomem;
+ }
+- tfilter->stdout = stdout;
+- tfilter->stderr = stderr;
++ tfilter->tr_stdout = tr_stdout;
++ tfilter->tr_stderr = tr_stderr;
+
+ tfilter->lock = o->alloc_lock(o);
+ if (!tfilter->lock)
+@@ -385,7 +385,7 @@ gensio_trace_filter_alloc(struct gensio_os_funcs *o,
+ {
+ struct gensio_filter *filter;
+ int dir = TRACE_NONE;
+- bool raw = false, stdout = false, stderr = false;
++ bool raw = false, tr_stdout = false, tr_stderr = false;
+ const char *filename = NULL;
+ unsigned int i;
+
+@@ -396,15 +396,15 @@ gensio_trace_filter_alloc(struct gensio_os_funcs *o,
+ continue;
+ if (gensio_check_keyvalue(args[i], "file", &filename) > 0)
+ continue;
+- if (gensio_check_keybool(args[i], "stdout", &stdout) > 0)
++ if (gensio_check_keybool(args[i], "stdout", &tr_stdout) > 0)
+ continue;
+- if (gensio_check_keybool(args[i], "stderr", &stderr) > 0)
++ if (gensio_check_keybool(args[i], "stderr", &tr_stderr) > 0)
+ continue;
+ return GE_INVAL;
+ }
+
+ filter = gensio_trace_filter_raw_alloc(o, dir, raw, filename,
+- stdout, stderr);
++ tr_stdout, tr_stderr);
+ if (!filter)
+ return GE_NOMEM;
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_1.5.3.bb b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_1.5.3.bb
new file mode 100644
index 000000000..8c97662df
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_1.5.3.bb
@@ -0,0 +1,27 @@
+SUMMARY = "A library to abstract stream I/O like serial port, TCP, telnet, etc"
+HOMEPAGE = "https://github.com/cminyard/gensio"
+LICENSE = "GPL-2.0 & LGPL-2.1"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a0fd36908af843bcee10cb6dfc47fa67 \
+ file://COPYING;md5=bae3019b4c6dc4138c217864bd04331f \
+ "
+
+SRCREV = "95ec1ab31ee97411fc37156d12061adcf0331598"
+PV = "1.5.3+git${SRCPV}"
+
+SRC_URI = "git://github.com/cminyard/gensio;protocol=https \
+ file://0001-filter-Rename-some-variables-to-tr_stdxxx.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+PACKAGECONFIG ??= "openssl tcp-wrappers"
+
+PACKAGECONFIG[openssl] = "--with-openssl=${STAGING_DIR_HOST}${prefix},--without-openssl, openssl"
+PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,--without-tcp-wrappers, tcp-wrappers"
+PACKAGECONFIG[swig] = "--with-swig,--without-swig, swig"
+
+EXTRA_OECONF = "--without-python"
+
+RDEPENDS_${PN} += "bash"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/CVE-2019-16275.patch b/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/CVE-2019-16275.patch
new file mode 100644
index 000000000..9cefd4f2a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/CVE-2019-16275.patch
@@ -0,0 +1,79 @@
+From d86d66dc073bc21d3b12faf4112062ae00c1773f Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Thu, 29 Aug 2019 11:52:04 +0300
+Subject: AP: Silently ignore management frame from unexpected source
+address
+
+Do not process any received Management frames with unexpected/invalid SA
+so that we do not add any state for unexpected STA addresses or end up
+sending out frames to unexpected destination. This prevents unexpected
+sequences where an unprotected frame might end up causing the AP to send
+out a response to another device and that other device processing the
+unexpected response.
+
+In particular, this prevents some potential denial of service cases
+where the unexpected response frame from the AP might result in a
+connected station dropping its association.
+
+Upstream-Status: Accepted
+CVE: CVE-2019-16275
+
+Reference to upstream patch:
+https://w1.fi/cgit/hostap/commit/?id=d86d66dc073bc21d3b12faf4112062ae00c1773f
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/ap/drv_callbacks.c | 13 +++++++++++++
+ src/ap/ieee802_11.c | 12 ++++++++++++
+ 2 files changed, 25 insertions(+)
+
+diff --git a/src/ap/drv_callbacks.c b/src/ap/drv_callbacks.c
+index 3158768..34ca379 100644
+--- a/src/ap/drv_callbacks.c
++++ b/src/ap/drv_callbacks.c
+@@ -131,6 +131,19 @@ int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr,
+ "hostapd_notif_assoc: Skip event with no address");
+ return -1;
+ }
++
++ if (is_multicast_ether_addr(addr) ||
++ is_zero_ether_addr(addr) ||
++ os_memcmp(addr, hapd->own_addr, ETH_ALEN) == 0) {
++ /* Do not process any frames with unexpected/invalid SA so that
++ * we do not add any state for unexpected STA addresses or end
++ * up sending out frames to unexpected destination. */
++ wpa_printf(MSG_DEBUG, "%s: Invalid SA=" MACSTR
++ " in received indication - ignore this indication silently",
++ __func__, MAC2STR(addr));
++ return 0;
++ }
++
+ random_add_randomness(addr, ETH_ALEN);
+
+ hostapd_logger(hapd, addr, HOSTAPD_MODULE_IEEE80211,
+diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c
+index c85a28d..2816812 100644
+--- a/src/ap/ieee802_11.c
++++ b/src/ap/ieee802_11.c
+@@ -4626,6 +4626,18 @@ int ieee802_11_mgmt(struct hostapd_data *hapd, const u8 *buf, size_t len,
+ fc = le_to_host16(mgmt->frame_control);
+ stype = WLAN_FC_GET_STYPE(fc);
+
++ if (is_multicast_ether_addr(mgmt->sa) ||
++ is_zero_ether_addr(mgmt->sa) ||
++ os_memcmp(mgmt->sa, hapd->own_addr, ETH_ALEN) == 0) {
++ /* Do not process any frames with unexpected/invalid SA so that
++ * we do not add any state for unexpected STA addresses or end
++ * up sending out frames to unexpected destination. */
++ wpa_printf(MSG_DEBUG, "MGMT: Invalid SA=" MACSTR
++ " in received frame - ignore this frame silently",
++ MAC2STR(mgmt->sa));
++ return 0;
++ }
++
+ if (stype == WLAN_FC_STYPE_BEACON) {
+ handle_beacon(hapd, mgmt, len, fi);
+ return 1;
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.9.bb b/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.9.bb
index 982514f5d..68dc12370 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.9.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.9.bb
@@ -11,6 +11,7 @@ SRC_URI = " \
file://defconfig \
file://init \
file://hostapd.service \
+ file://CVE-2019-16275.patch \
"
SRC_URI[md5sum] = "f188fc53a495fe7af3b6d77d3c31dee8"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.1.2.bb b/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.2.2.bb
index e2867e84b..da5403e5c 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.1.2.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.2.2.bb
@@ -6,8 +6,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=55fdc1113306167d6ea2561404ce02f8"
DEPENDS = "glib-2.0 ncurses openssl"
SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz"
-SRC_URI[md5sum] = "271d2fd875cddd34526234d8a766d82c"
-SRC_URI[sha256sum] = "5ccc2b89a394e91bea0aa83a951c3b1d471c76da87b4169ec435530a31bf9732"
+SRC_URI[md5sum] = "8547f89e014e23e1bbbb665bcf7e2f70"
+SRC_URI[sha256sum] = "6727060c918568ba2ff4295ad736128dba0b995d7b20491bca11f593bd857578"
+
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch
deleted file mode 100644
index 93ef007f8..000000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From f2a2b9f445ab1e31fbb27a74744e9a2ededfce17 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 4 Nov 2019 16:38:04 -0800
-Subject: [PATCH] Makefile.am: Avoid redirection of input and output files
-
-Ensure that directory is created before its written to
-
-This can cause a build race in a highly parallelised build where a directory is not yet created but
-output file is being written using redirection e.g.
-
-rst2man.py --strict --no-raw --no-generator --no-datestamp < ../git/monitor/iwmon.rst > monitor/iwmon.1
-/bin/sh: monitor/iwmon.1: No such file or directory
-make[1]: *** [Makefile:3544: monitor/iwmon.1] Error 1
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Makefile.am | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 823b7d02..1bd0005c 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -626,8 +626,9 @@ SED_PROCESS = $(AM_V_GEN)$(MKDIR_P) $(dir $@) && $(SED) \
- < $< > $@
-
- if RUN_RST2MAN
--RST2MAN_PROCESS = $(AM_V_GEN)$(RST2MAN) --strict --no-raw --no-generator \
-- --no-datestamp < $< > $@
-+RST2MAN_PROCESS = $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
-+ $(AM_V_GEN)$(RST2MAN) --strict --no-raw \
-+ --no-generator --no-datestamp $< $@
- else
- RST2MAN_PROCESS = $(AM_V_GEN)test -f $@ || \
- { echo "Generated manual page $@ does not exist"; false; }
---
-2.24.0
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.0.bb
deleted file mode 100644
index cc34ca221..000000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.0.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-DESCRIPTION = "Wireless daemon for Linux"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09"
-
-inherit autotools pkgconfig systemd python3native
-
-DEPENDS = "ell readline dbus python3-docutils-native"
-
-SRC_URI = "git://git.kernel.org/pub/scm/network/wireless/iwd.git \
- file://0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch \
- "
-SRCREV = "971e1d2038a203ad43bd2278a811a9e5ec8d52db"
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[wired] = "--enable-wired,--disable-wired"
-PACKAGECONFIG[ofono] = "--enable-ofono,--disable-ofono"
-PACKAGECONFIG[systemd] = "--with-systemd-unitdir=${systemd_system_unitdir},--disable-systemd-service,systemd"
-
-EXTRA_OECONF += "--enable-external-ell"
-
-do_configure_prepend () {
- mkdir -p ${S}/build-aux
-}
-
-do_install_append() {
- mkdir --parents ${D}${docdir}/${BPN}
- install -m644 ${S}/doc/*.txt ${D}${docdir}/${BPN}
-}
-
-FILES_${PN} += "${datadir}/dbus-1 ${nonarch_libdir}/modules-load.d ${systemd_unitdir}/network/"
-
-SYSTEMD_SERVICE_${PN} = "iwd.service ${@bb.utils.contains('PACKAGECONFIG', 'wired', 'ead.service', '', d)}"
-
-RRECOMMENDS_${PN} = "\
- kernel-module-pkcs7-message \
- kernel-module-pkcs8-key-parser \
- kernel-module-x509-key-parser \
-"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.6.bb b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.6.bb
new file mode 100644
index 000000000..10ac03ef0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.6.bb
@@ -0,0 +1,54 @@
+SUMMARY = "Wireless daemon for Linux"
+HOMEPAGE = "https://iwd.wiki.kernel.org/"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09"
+
+DEPENDS = "ell"
+
+SRC_URI = "git://git.kernel.org/pub/scm/network/wireless/iwd.git"
+SRCREV = "ad97f4f945b828425ff288e905523e11b330d41d"
+S = "${WORKDIR}/git"
+
+inherit autotools manpages pkgconfig python3native systemd
+
+PACKAGECONFIG ??= " \
+ client \
+ monitor \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+"
+PACKAGECONFIG[client] = "--enable-client,--disable-client,readline"
+PACKAGECONFIG[monitor] = "--enable-monitor,--disable-monitor"
+PACKAGECONFIG[manpages] = "--enable-manual-pages,--disable-manual-pages,python3-docutils-native"
+PACKAGECONFIG[wired] = "--enable-wired,--disable-wired"
+PACKAGECONFIG[ofono] = "--enable-ofono,--disable-ofono"
+PACKAGECONFIG[systemd] = "--with-systemd-unitdir=${systemd_system_unitdir},--disable-systemd-service,systemd"
+
+EXTRA_OECONF = "--enable-external-ell"
+
+SYSTEMD_SERVICE_${PN} = " \
+ iwd.service \
+ ${@bb.utils.contains('PACKAGECONFIG', 'wired', 'ead.service', '', d)} \
+"
+
+do_configure_prepend() {
+ install -d ${S}/build-aux
+}
+
+do_install_append() {
+ # If client and monitor are disabled, bindir is empty, causing a QA error
+ rmdir --ignore-fail-on-non-empty ${D}/${bindir}
+}
+
+FILES_${PN} += " \
+ ${datadir}/dbus-1 \
+ ${nonarch_libdir}/modules-load.d \
+ ${systemd_unitdir}/network \
+"
+
+RDEPENDS_${PN} = "dbus"
+
+RRECOMMENDS_${PN} = "\
+ kernel-module-pkcs7-message \
+ kernel-module-pkcs8-key-parser \
+ kernel-module-x509-key-parser \
+"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.27.bb b/meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.33.bb
index be4536b9c..760c2dbce 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.27.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.33.bb
@@ -5,8 +5,8 @@ LICENSE = "BSD-2-Clause | GPL-2.0+"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d6ad416afd040c90698edcdf1cbee347"
SRC_URI = "http://dist.schmorp.de/libev/Attic/${BP}.tar.gz"
-SRC_URI[md5sum] = "d38925fbc030153fe674c4e0e864a69a"
-SRC_URI[sha256sum] = "2d5526fc8da4f072dd5c73e18fbb1666f5ef8ed78b73bba12e195cfdd810344e"
+SRC_URI[md5sum] = "a3433f23583167081bf4acdd5b01b34f"
+SRC_URI[sha256sum] = "507eb7b8d1015fbec5b935f34ebed15bf346bed04a11ab82b8eee848c4205aea"
inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch b/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch
deleted file mode 100644
index d88578418..000000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-Check for clang compiler since we need to disable
-unused-function warning for clang, at same time
-pass werror when checking for compiler options if
-werror is enabled so spurious options do not get
-enabled. Only the ones that are supported by given
-compiler are accepted.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
-Index: libmbim-1.14.0/m4/compiler-warnings.m4
-===================================================================
---- libmbim-1.14.0.orig/m4/compiler-warnings.m4
-+++ libmbim-1.14.0/m4/compiler-warnings.m4
-@@ -2,10 +2,30 @@ AC_DEFUN([LIBMBIM_COMPILER_WARNINGS],
- [AC_ARG_ENABLE(more-warnings,
- AS_HELP_STRING([--enable-more-warnings], [Possible values: no/yes/error]),
- set_more_warnings="$enableval",set_more_warnings=error)
-+
-+# Clang throws a lot of warnings when it does not understand a flag. Disable
-+# this warning for now so other warnings are visible.
-+AC_MSG_CHECKING([if compiling with clang])
-+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[
-+#ifndef __clang__
-+ not clang
-+#endif
-+ ]])],
-+ [CLANG=yes],
-+ [CLANG=no]
-+)
-+AC_MSG_RESULT([$CLANG])
-+AS_IF([test "x$CLANG" = "xyes"], [CLANG_FLAGS=-Wno-error=unused-function])
-+CFLAGS="$CFLAGS $CLANG_FLAGS"
-+LDFLAGS="$LDFLAGS $CLANG_FLAGS"
-+
- AC_MSG_CHECKING(for more warnings)
- if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
- AC_MSG_RESULT(yes)
- CFLAGS="-Wall -std=gnu89 $CFLAGS"
-+ if test "x$set_more_warnings" = xerror; then
-+ WERROR="-Werror"
-+ fi
-
- for option in -Wmissing-declarations -Wmissing-prototypes \
- -Wdeclaration-after-statement -Wstrict-prototypes \
-@@ -17,22 +37,23 @@ if test "$GCC" = "yes" -a "$set_more_war
- -Wmissing-include-dirs -Waggregate-return \
- -Wformat-security -Wtype-limits; do
- SAVE_CFLAGS="$CFLAGS"
-- CFLAGS="$CFLAGS $option"
-+ CFLAGS="$CFLAGS $option $WERROR"
- AC_MSG_CHECKING([whether gcc understands $option])
- AC_TRY_COMPILE([], [],
- has_option=yes,
- has_option=no,)
- if test $has_option = no; then
- CFLAGS="$SAVE_CFLAGS"
-+ else
-+ CFLAGS="$SAVE_CFLAGS $option"
- fi
- AC_MSG_RESULT($has_option)
- unset has_option
- unset SAVE_CFLAGS
- done
-+ CFLAGS="$CFLAGS $WERROR"
- unset option
-- if test "x$set_more_warnings" = xerror; then
-- CFLAGS="$CFLAGS -Werror"
-- fi
-+ unset WERROR
- else
- AC_MSG_RESULT(no)
- fi
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.20.4.bb b/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.22.0.bb
index a3ef80c1b..61e314f1f 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.20.4.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.22.0.bb
@@ -11,8 +11,7 @@ DEPENDS = "glib-2.0 glib-2.0-native libgudev"
inherit autotools pkgconfig bash-completion
-SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \
- file://clang.patch \
-"
-SRC_URI[md5sum] = "d38d637e33cde8a91484f53a9f6c4d49"
-SRC_URI[sha256sum] = "ac2708a409b09f1f6f1786a8a9e39c36619aa8d6f285ea943daa7a48ea36d3e8"
+SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz"
+
+SRC_URI[md5sum] = "87060e8957013177e4140edc6f64f5bd"
+SRC_URI[sha256sum] = "5c0778eb1cd12c3604523134e55183f5147b0cae71150e875b583768f7aa1f38"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.16.bb b/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.17.bb
index 596e315b7..54decbccf 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.16.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.17.bb
@@ -21,8 +21,8 @@ DEPENDS_append_class-target = " ${BPN}-native"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
SRC_URI_append_class-target = " file://0001-Use-native-mtp-hotplug.patch"
-SRC_URI[md5sum] = "7796179af46e90938dde1d0c4d1d1d4c"
-SRC_URI[sha256sum] = "5b68f9dd1ed38de558de687f40e255a39e4d5e32ef3de601f0ac19dd5682bba0"
+SRC_URI[md5sum] = "81aea5d3139e5189c2e055ed2c98cd91"
+SRC_URI[sha256sum] = "f8a34cf52d9f9b9cb8c7f26b12da347d4af7eb904c13189602e4c6b62d1a79dc"
inherit autotools pkgconfig lib_package
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.2.bb b/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.8.bb
index 35a58d2f1..124b0f1b0 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.2.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.8.bb
@@ -14,8 +14,7 @@ inherit autotools pkgconfig bash-completion
SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \
"
-SRC_URI[md5sum] = "e49c419112d708b5301af7ccc2c090ff"
-SRC_URI[sha256sum] = "4ae4e476f960dbc0d04b1c0368776eb78edffd4421f3e4c074bb2bfb6375b282"
+SRC_URI[sha256sum] = "c793db2c91d7928160341b357b26315d9c879ecb36699cb7a6b36054cba60893"
PACKAGECONFIG ??= "udev mbim"
PACKAGECONFIG[udev] = ",--without-udev,libgudev"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.34.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.36.0.bb
index b842bbda7..deeaa2b15 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.34.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.36.0.bb
@@ -4,7 +4,7 @@ BUGTRACKER = "https://github.com/libuv/libuv/issues"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47"
-SRCREV = "15ae750151ac9341e5945eb38f8982d59fb99201"
+SRCREV = "533b738838ad8407032e14b6772b29ef9af63cfa"
SRC_URI = "git://github.com/libuv/libuv;branch=v1.x"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_3.2.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.0.1.bb
index 9c5503357..0d1f57ab8 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_3.2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.0.1.bb
@@ -1,13 +1,16 @@
SUMMARY = "Canonical libwebsockets.org websocket library"
HOMEPAGE = "https://libwebsockets.org/"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4ce87f3facb6f911c142c8bef9bfb380"
+LICENSE = "MIT & Zlib & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8c47b078124308a4e1354e8d59f606b7"
DEPENDS = "zlib"
S = "${WORKDIR}/git"
-SRCREV = "94931cad003faf9d316e698b557bbb6d245f1f91"
-SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;branch=v3.2-stable"
+SRCREV = "6eb39388f43f6e2a27f0efcbf8cb2391e38824e9"
+SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;branch=v4.0-stable"
+
+UPSTREAM_CHECK_URI = "https://github.com/warmcat/${BPN}/releases"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
inherit cmake pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.10.8.bb b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.8.bb
index 3cd21cc0d..47a86b919 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.10.8.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.8.bb
@@ -14,8 +14,7 @@ DEPENDS = "glib-2.0 libgudev intltool-native libxslt-native"
SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.tar.xz \
"
-SRC_URI[md5sum] = "c05ac4246c81cc15d617c4a129232988"
-SRC_URI[sha256sum] = "cbe174078dbdf3f746a55f0004353d3c27da2a31da553036d90fc7dc34a0169a"
+SRC_URI[sha256sum] = "68b53d0615ba0d3e2bbf386ed029dfe644a6a30a79ab8d85523527bb4e713aff"
S = "${WORKDIR}/ModemManager-${PV}"
@@ -23,6 +22,7 @@ PACKAGECONFIG ??= "mbim qmi \
${@bb.utils.filter('DISTRO_FEATURES', 'systemd polkit', d)} \
"
+PACKAGECONFIG[at] = "--with-at-command-via-dbus"
PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,,"
PACKAGECONFIG[polkit] = "--with-polkit=yes,--with-polkit=no,polkit"
# Support WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol.
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/files/0001-Fix-bug-of-free-with-musl.patch b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/files/0001-Fix-bug-of-free-with-musl.patch
new file mode 100644
index 000000000..12f9e7abc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/files/0001-Fix-bug-of-free-with-musl.patch
@@ -0,0 +1,39 @@
+From 96233a8382b9520293a48b08dc3b204a21205800 Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@cn.fujitsu.com>
+Date: Fri, 24 Apr 2020 00:53:19 +0900
+Subject: [PATCH] Fix bug of free() with musl
+
+This fixes build error with musl C library:
+/ubinux-dev/ubinux001/contribution/build/tmp/work/armv7vet2hf-neon-poky-linux-musleabi/paho-mqtt-c/1.3.2-r0/git/src/Heap.h:55:24:
+error: expected declaration specifiers or '...' before string constant
+ 55 | #define free(x) myfree(__FILE__, __LINE__, x)
+ | ^~~~~~~~
+/ubinux-dev/ubinux001/contribution/build/tmp/work/armv7vet2hf-neon-poky-linux-musleabi/paho-mqtt-c/1.3.2-r0/git/src/Heap.h:55:34:
+error: expected declaration specifiers or '...' before numeric constant
+ 55 | #define free(x) myfree(__FILE__, __LINE__, x)
+ | ^~~~~~~~
+
+Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
+---
+ src/MQTTReasonCodes.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/MQTTReasonCodes.c b/src/MQTTReasonCodes.c
+index 416eab5..479dbac 100644
+--- a/src/MQTTReasonCodes.c
++++ b/src/MQTTReasonCodes.c
+@@ -16,10 +16,10 @@
+
+ #include "MQTTReasonCodes.h"
+
+-#include "Heap.h"
+ #include "StackTrace.h"
+
+ #include <memory.h>
++#include "Heap.h"
+
+ #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.1.bb b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.2.bb
index fa249677e..fa8c714ce 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.1.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.2.bb
@@ -6,14 +6,15 @@ LICENSE = "EPL-1.0 | EDL-1.0"
LIC_FILES_CHKSUM = " \
file://edl-v10;md5=3adfcc70f5aeb7a44f3f9b495aa1fbf3 \
- file://epl-v10;md5=659c8e92a40b6df1d9e3dccf5ae45a08 \
- file://notice.html;md5=a00d6f9ab542be7babc2d8b80d5d2a4c \
- file://about.html;md5=dcde438d73cf42393da9d40fabc0c9bc \
+ file://epl-v20;md5=d9fc0efef5228704e7f5b37f27192723 \
+ file://notice.html;md5=943f861069889acecebf51dfa24478e2 \
+ file://about.html;md5=e5662cbb5f8fd5c9faac526e4077898e \
"
-SRC_URI = "git://github.com/eclipse/paho.mqtt.c;protocol=http"
+SRC_URI = "git://github.com/eclipse/paho.mqtt.c;protocol=http \
+ file://0001-Fix-bug-of-free-with-musl.patch"
-SRCREV = "d34c51214f4172f2e12bb17532c9f44f72a57dd4"
+SRCREV = "fbe39064c4416f879308a8a5390b19d544970789"
DEPENDS = "openssl"
@@ -28,3 +29,7 @@ do_install_append() {
}
EXTRA_OECMAKE = "-DPAHO_WITH_SSL=ON"
+
+do_configure_prepend_libc-musl() {
+ sed -i -e "s/SET(LIBS_SYSTEM c dl pthread anl rt)/SET(LIBS_SYSTEM c dl pthread rt)/g" ${S}/src/CMakeLists.txt
+}
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_3.5.1.bb b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.1.5.bb
index ed8aab016..0df134eca 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_3.5.1.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.1.5.bb
@@ -5,10 +5,12 @@ HOMEPAGE = "http://sourceforge.net/projects/ser2net/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=bae3019b4c6dc4138c217864bd04331f"
+DEPENDS = "gensio libyaml"
+
SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz"
-SRC_URI[md5sum] = "569267b37b8f507d8874f28f5334b5d2"
-SRC_URI[sha256sum] = "02f5dd0abbef5a17b80836b0de1ef0588e257106fb5e269b86822bfd001dc862"
+SRC_URI[md5sum] = "52c5e56d2d54ced0cdeb764a7e8fec92"
+SRC_URI[sha256sum] = "df904d271eb161c265c956f0cb938dd0a375dda4a919a344f73b08bc50b9f308"
inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb
index ca09f6daf..7cb25b677 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb
@@ -11,7 +11,12 @@ SRC_URI = "http://telepathy.freedesktop.org/releases/${BPN}/${BPN}-${PV}.tar.gz
SRC_URI[md5sum] = "92a2de5198284cbd3c430b0d1a971a86"
SRC_URI[sha256sum] = "3013ad4b38d14ee630b8cc8ada5e95ccaa849b9a6fe15d2eaf6d0717d76f2fab"
-inherit autotools pkgconfig pythonnative
+inherit autotools pkgconfig ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "pythonnative", "", d)}
FILES_${PN} += "${datadir}/telepathy \
${datadir}/dbus-1"
+
+python() {
+ if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('Requires meta-python2 to be present.')
+}
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_4.4.1.bb b/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_4.4.6.bb
index 656ff0dd8..0e0ddd577 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_4.4.1.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_4.4.6.bb
@@ -28,8 +28,8 @@ SRC_URI = "http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stab
file://zabbix-agent.service \
"
-SRC_URI[md5sum] = "e9df94149790f86732f18d042b70155d"
-SRC_URI[sha256sum] = "0bf74e597dd41a558305fe17a2b1ed6fe2d77044b87696a92e4227fbf315564a"
+SRC_URI[md5sum] = "e666539220be93b1af38e40f5fbb1f79"
+SRC_URI[sha256sum] = "22bb28e667424ad4688f47732853f4241df0e78a7607727b043d704ba726ae0e"
inherit autotools-brokensep linux-kernel-base pkgconfig systemd useradd
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
index 4ec1c0409..7c9a33e8c 100644
--- 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
@@ -9,6 +9,8 @@ SRC_URI = "https://github.com/zeromq/czmq/releases/download/v${PV}/czmq-${PV}.ta
SRC_URI[md5sum] = "7e09997db6ac3b25e8ed104053040722"
SRC_URI[sha256sum] = "cfab29c2b3cc8a845749758a51e1dd5f5160c1ef57e2a41ea96e4c2dcc8feceb"
+UPSTREAM_CHECK_URI = "https://github.com/zeromq/${BPN}/releases"
+
inherit cmake
PACKAGES = "lib${BPN} lib${BPN}-dev lib${BPN}-staticdev ${PN} ${PN}-dbg"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch
new file mode 100644
index 000000000..eb3dee4d3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch
@@ -0,0 +1,39 @@
+From: Niko Mauno <niko.mauno@vaisala.com>
+Date: Wed Apr 22 09:00:00 2020 +0300
+Subject: CMakeLists.txt: Avoid host-specific path to libsodium
+
+Avoid propagating full build host specific path to generated
+ZeroMQTargets.cmake when building with libsodium, which changes the
+content in generated ZeroMQTargets.cmake files followingly:
+
+ -INTERFACE_LINK_LIBRARIES "-lpthread;/build/host/specific/path/to/zeromq/4.3.2-r0/recipe-sysroot/usr/lib/libsodium.so;-lrt"
+ +INTERFACE_LINK_LIBRARIES "-lpthread;-lsodium;-lrt"
+
+This change mitigates an issue stemming from reuse of build artifacts
+where the path to libsodium.so does not match exactly between two
+different build hosts.
+
+Upstream-Status: Pending
+
+Signed-off-by: Niko Mauno <niko.mauno@vaisala.com>
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1210,7 +1210,7 @@
+ target_link_libraries(libzmq ${OPTIONAL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
+
+ if(SODIUM_FOUND)
+- target_link_libraries(libzmq ${SODIUM_LIBRARIES})
++ target_link_libraries(libzmq -lsodium)
+ # On Solaris, libsodium depends on libssp
+ if(${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
+ target_link_libraries(libzmq ssp)
+@@ -1240,7 +1240,7 @@
+ target_link_libraries(libzmq-static ${OPTIONAL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
+
+ if(SODIUM_FOUND)
+- target_link_libraries(libzmq-static ${SODIUM_LIBRARIES})
++ target_link_libraries(libzmq-static -lsodium)
+ # On Solaris, libsodium depends on libssp
+ if(${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
+ target_link_libraries(libzmq-static ssp)
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.2.bb b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.2.bb
index adf2c7ba5..02a4c04fd 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.2.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.2.bb
@@ -7,11 +7,14 @@ 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://0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch \
file://run-ptest \
"
SRC_URI[md5sum] = "2047e917c2cc93505e2579bcba67a573"
SRC_URI[sha256sum] = "ebd7b5c830d6428956b67a0454a7f8cbed1de74b3b01e5c33c5378e22740f763"
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/libzmq/releases"
+
inherit cmake ptest pkgconfig
EXTRA_OECMAKE = "${@bb.utils.contains('PTEST_ENABLED', '1', '-DBUILD_TESTS=ON', '-DBUILD_TESTS=OFF', d)} \
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0001-launch-improve-error-handling-for-opendir.patch b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0001-launch-improve-error-handling-for-opendir.patch
deleted file mode 100644
index ccc175bb8..000000000
--- a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0001-launch-improve-error-handling-for-opendir.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From f42d5e38859c65a186acd0da94bbeeca12faf7a2 Mon Sep 17 00:00:00 2001
-From: David Rheinsberg <david.rheinsberg@gmail.com>
-Date: Thu, 2 May 2019 17:33:34 +0200
-Subject: [PATCH] launch: improve error handling for opendir()
-
-This improves the error-handling of opendir() by always printing
-diagnostics. Furthermore, it aligns the behavior with dbus-deamon and
-ignores EACCES.
-
-Signed-off-by: David Rheinsberg <david.rheinsberg@gmail.com>
-Upstream-Status: dbus-broker@f42d5e38859c65a186acd0da94bbeeca12faf7a2
----
- src/launch/launcher.c | 17 +++++++++++++++--
- 1 file changed, 15 insertions(+), 2 deletions(-)
-
-diff --git a/src/launch/launcher.c b/src/launch/launcher.c
-index 31a5364..2ec4bda 100644
---- a/src/launch/launcher.c
-+++ b/src/launch/launcher.c
-@@ -749,10 +749,23 @@ static int launcher_load_service_dir(Launcher *launcher, const char *dirpath, NS
-
- dir = opendir(dirpath);
- if (!dir) {
-- if (errno == ENOENT || errno == ENOTDIR)
-+ if (errno == ENOENT || errno == ENOTDIR) {
- return 0;
-- else
-+ } else if (errno == EACCES) {
-+ log_append_here(&launcher->log, LOG_ERR, 0, NULL);
-+ r = log_commitf(&launcher->log, "Access denied to service directory '%s'\n", dirpath);
-+ if (r)
-+ return error_fold(r);
-+
-+ return 0;
-+ } else {
-+ log_append_here(&launcher->log, LOG_ERR, errno, NULL);
-+ r = log_commitf(&launcher->log, "Unable to open service directory '%s': %m\n", dirpath);
-+ if (r)
-+ return error_fold(r);
-+
- return error_origin(-errno);
-+ }
- }
-
- r = dirwatch_add(launcher->dirwatch, dirpath);
---
-2.20.1
-
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0002-metrics-change-the-constant-used-for-invalid-timesta.patch b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0002-metrics-change-the-constant-used-for-invalid-timesta.patch
deleted file mode 100644
index 67a2dc46f..000000000
--- a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0002-metrics-change-the-constant-used-for-invalid-timesta.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 3570b3e9ba367f10718b56336ce32d5254f66575 Mon Sep 17 00:00:00 2001
-From: Tom Gundersen <teg@jklm.no>
-Date: Thu, 9 May 2019 13:00:37 +0200
-Subject: [PATCH] metrics: change the constant used for invalid timestamps
-
-Use (uint64_t)-1 rather than 0 to indicate an invalid timestamp. It
-should not be possible for the kernel to return 0 from
-clock_gettime(), but we have received some reports of our asserts
-triggering, so avoid the issue entirely by using -1 instead (which
-really can never be returned).
-
-See https://retrace.fedoraproject.org/faf/reports/2539484/
-
-Signed-off-by: Tom Gundersen <teg@jklm.no>
-Upstream-Status: dbus-broker@3570b3e9ba367f10718b56336ce32d5254f66575
----
- src/util/metrics.c | 8 ++++----
- src/util/metrics.h | 9 ++++++---
- 2 files changed, 10 insertions(+), 7 deletions(-)
-
-diff --git a/src/util/metrics.c b/src/util/metrics.c
-index b5a7182..eef94eb 100644
---- a/src/util/metrics.c
-+++ b/src/util/metrics.c
-@@ -26,7 +26,7 @@ void metrics_init(Metrics *metrics, clockid_t id) {
- }
-
- void metrics_deinit(Metrics *metrics) {
-- c_assert(!metrics->timestamp);
-+ c_assert(metrics->timestamp == METRICS_TIMESTAMP_INVALID);
- metrics_init(metrics, metrics->id);
- }
-
-@@ -82,7 +82,7 @@ void metrics_sample_add(Metrics *metrics, uint64_t timestamp) {
- * a sample is not currently running.
- */
- void metrics_sample_start(Metrics *metrics) {
-- c_assert(!metrics->timestamp);
-+ c_assert(metrics->timestamp == METRICS_TIMESTAMP_INVALID);
- metrics->timestamp = metrics_get_time(metrics);
- }
-
-@@ -93,11 +93,11 @@ void metrics_sample_start(Metrics *metrics) {
- * End a currently running sample, and update the internal state.
- */
- void metrics_sample_end(Metrics *metrics) {
-- c_assert(metrics->timestamp);
-+ c_assert(metrics->timestamp != METRICS_TIMESTAMP_INVALID);
-
- metrics_sample_add(metrics, metrics->timestamp);
-
-- metrics->timestamp = 0;
-+ metrics->timestamp = METRICS_TIMESTAMP_INVALID;
- }
-
- /**
-diff --git a/src/util/metrics.h b/src/util/metrics.h
-index a8ee915..b00dee6 100644
---- a/src/util/metrics.h
-+++ b/src/util/metrics.h
-@@ -8,6 +8,8 @@
- #include <stdlib.h>
- #include <time.h>
-
-+#define METRICS_TIMESTAMP_INVALID ((uint64_t) -1)
-+
- typedef struct Metrics Metrics;
-
- struct Metrics {
-@@ -23,9 +25,10 @@ struct Metrics {
- uint64_t sum_of_squares;
- };
-
--#define METRICS_INIT(_id) { \
-- .minimum = (uint64_t) -1, \
-- .id = (_id), \
-+#define METRICS_INIT(_id) { \
-+ .minimum = (uint64_t) -1, \
-+ .id = (_id), \
-+ .timestamp = METRICS_TIMESTAMP_INVALID, \
- }
-
- void metrics_init(Metrics *metrics, clockid_t id);
---
-2.21.0
-
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0003-dbus-socket-treat-MSG_CTRUNC-gracefully.patch b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0003-dbus-socket-treat-MSG_CTRUNC-gracefully.patch
deleted file mode 100644
index 53f9e71aa..000000000
--- a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0003-dbus-socket-treat-MSG_CTRUNC-gracefully.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From 520c47c53deeb893e03194fefaf3c5b9223ede27 Mon Sep 17 00:00:00 2001
-From: David Rheinsberg <david.rheinsberg@gmail.com>
-Date: Fri, 10 May 2019 10:58:06 +0200
-Subject: [PATCH] dbus/socket: treat MSG_CTRUNC gracefully
-
-As it turns out, LSMs allow clients to trigger a MSG_CTRUNC on the
-remote side of a unix socket. Whenever LSMs reject the transmission of
-an FD, they will simply drop the FD and set MSG_CTRUNC, without any
-other error notification.
-
-Therefore, we must assume any occurance of MSG_CTRUNC is trigger by a
-client. This makes it impossible to consider MSG_CTRUNC for any other
-error handling, and as such we are left to disconnecting the client and
-ignoring the flag.
-
-Luckily, MSG_CTRUNC is expected for any other event, so we only used it
-for diagnostics so far.
-
-Signed-off-by: David Rheinsberg <david.rheinsberg@gmail.com>
-Upstream-Status: dbus-broker@520c47c53deeb893e03194fefaf3c5b9223ede27
----
- src/dbus/socket.c | 44 +++++++++++++++++++++++++++++++++-----------
- 1 file changed, 33 insertions(+), 11 deletions(-)
-
-diff --git a/src/dbus/socket.c b/src/dbus/socket.c
-index cacdff2..6e6ba10 100644
---- a/src/dbus/socket.c
-+++ b/src/dbus/socket.c
-@@ -593,18 +593,40 @@ static int socket_recvmsg(Socket *socket,
-
- if (msg.msg_flags & MSG_CTRUNC) {
- /*
-- * This flag means the control-buffer was too small to retrieve
-- * all data. If this can be triggered remotely, it means a peer
-- * can cause us to miss FDs. Hence, we really must protect
-- * against this.
-- * We do provide suitably sized buffers to be prepared for any
-- * possible scenario. So if this happens, something is fishy
-- * and we better report it.
-- * Note that this is also reported by the kernel if we exceeded
-- * our NOFILE limit. Since this implies resource
-- * misconfiguration as well, we treat it the same way.
-+ * Our control-buffer-size is carefully calculated to be big
-+ * enough for any possible ancillary data we expect. Therefore,
-+ * the kernel should never be required to truncate it, and thus
-+ * MSG_CTRUNC will never be set. This is also foward compatible
-+ * to future extensions to the ancillary data, since these must
-+ * be enabled explicitly before the kernel considers forwarding
-+ * them.
-+ *
-+ * Unfortunately, the SCM_RIGHTS implementation might set this
-+ * flag as well. In particular, if not all FDs can be returned
-+ * to user-space, MSG_CTRUNC will be set (signalling that the
-+ * FD-set is non-complete). No other error is returned or
-+ * signalled, though. There are several reasons why the FD
-+ * transmission can fail. Most importantly, if we exhaust our
-+ * FD limit, further FDs will simply be discarded. We are
-+ * protected against this by our accounting-quotas, but we
-+ * would still like to catch this condition and warn loudly.
-+ * However, FDs are also dropped if the security layer refused
-+ * the transmission of the FD in question. This means, if an
-+ * LSM refuses the D-Bus client to send us an FD, the FD is
-+ * just dropped and MSG_CTRUNC will be set. This can be
-+ * triggered by clients.
-+ *
-+ * To summarize: In an ideal world, we would expect this flag
-+ * to never be set, and we would just use
-+ * `error_origin(-ENOTRECOVERABLE)` to provide diagnostics.
-+ * Unfortunately, the gross misuse of this flag for LSM
-+ * security enforcements means we have to assume any occurence
-+ * of MSG_CTRUNC means the client was refused to send a
-+ * specific message. Our only possible way to deal with this is
-+ * to disconnect the client.
- */
-- r = error_origin(-ENOTRECOVERABLE);
-+ socket_close(socket);
-+ r = SOCKET_E_LOST_INTEREST;
- goto error;
- }
-
---
-2.21.0
-
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0004-launcher-fix-build-with-musl-libc.patch b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0004-launcher-fix-build-with-musl-libc.patch
deleted file mode 100644
index 0348d9722..000000000
--- a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0004-launcher-fix-build-with-musl-libc.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From fc1d26dd08c48c04fc9883b36a94c219aba2091c Mon Sep 17 00:00:00 2001
-From: Luca Boccassi <luca.boccassi@microsoft.com>
-Date: Mon, 28 Oct 2019 14:31:38 +0000
-Subject: [PATCH] launcher: fix build with musl libc
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-../src/launch/launcher.c: In function ‘launcher_fork’:
-../src/launch/launcher.c:378:60: error: ‘WEXITED’ undeclared (first use in this function); did you mean ‘WIFEXITED’?
- r = sd_event_add_child(launcher->event, NULL, pid, WEXITED, launcher_on_child_exit, launcher);
- ^~~~~~~
- WIFEXITED
-
-Include sys/wait.h which defines it.
-
-Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
-Suggested-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: pending https://github.com/bus1/dbus-broker/pull/214
----
- src/launch/launcher.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/launch/launcher.c b/src/launch/launcher.c
-index 2ec4bda..1f38fcf 100644
---- a/src/launch/launcher.c
-+++ b/src/launch/launcher.c
-@@ -10,6 +10,7 @@
- #include <stdlib.h>
- #include <sys/prctl.h>
- #include <sys/un.h>
-+#include <sys/wait.h>
- #include <systemd/sd-bus.h>
- #include <systemd/sd-daemon.h>
- #include <systemd/sd-event.h>
---
-2.20.1
-
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_21.bb b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_22.bb
index 8b4101aaf..c0b6f7f88 100644
--- a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_21.bb
+++ b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_22.bb
@@ -7,12 +7,10 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=7b486c2338d225a1405d979ed2c15ce8"
SRC_URI = "https://github.com/bus1/dbus-broker/releases/download/v${PV}/dbus-broker-${PV}.tar.xz"
-SRC_URI += " file://0001-launch-improve-error-handling-for-opendir.patch"
-SRC_URI += " file://0002-metrics-change-the-constant-used-for-invalid-timesta.patch"
-SRC_URI += " file://0003-dbus-socket-treat-MSG_CTRUNC-gracefully.patch"
-SRC_URI += " file://0004-launcher-fix-build-with-musl-libc.patch"
-SRC_URI[md5sum] = "a17886a92ab1e0bc2e4b1a274339e388"
-SRC_URI[sha256sum] = "6fff9a831a514659e2c7d704e76867ce31ebcf43e8d7a62e080c6656f64cd39e"
+SRC_URI[md5sum] = "03c4730f2110b5492e1212c81af325dc"
+SRC_URI[sha256sum] = "32f30700cefc997c479d75fcc42f3177940f1ebbee9c5a60c1e3ee39b90a9783"
+
+UPSTREAM_CHECK_URI = "https://github.com/bus1/${BPN}/releases"
inherit meson pkgconfig systemd features_check
diff --git a/meta-openembedded/meta-oe/recipes-core/emlog/emlog/0001-Remove-modules_clean-from-clean-target.patch b/meta-openembedded/meta-oe/recipes-core/emlog/emlog/0001-Remove-modules_clean-from-clean-target.patch
new file mode 100644
index 000000000..beba528b3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/emlog/emlog/0001-Remove-modules_clean-from-clean-target.patch
@@ -0,0 +1,33 @@
+From fd0a4ee201b5c7b24da79dcd346ac121978951a0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 29 Mar 2020 19:58:36 -0700
+Subject: [PATCH] Remove modules_clean from clean target
+
+This is needed when building applications (w/o module)
+Since OE will run 'make clean' before reconfiguring, this
+will try to run module_clean and will wrongly try to look for removing
+modules from /lib/modules
+
+Upstream-Status: Inappropriate [ OE-Specific ]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index c60863f..fc897d5 100644
+--- a/Makefile
++++ b/Makefile
+@@ -23,7 +23,7 @@ all: modules nbcat mkemlog
+
+ install: modules_install nbcat_install mkemlog_install
+
+-clean: modules_clean nbcat_clean mkemlog_clean
++clean: nbcat_clean mkemlog_clean
+
+ modules:
+ $(MAKE) -C $(KDIR) M=$(CURDIR) modules
+--
+2.26.0
+
diff --git a/meta-openembedded/meta-oe/recipes-core/emlog/emlog_git.bb b/meta-openembedded/meta-oe/recipes-core/emlog/emlog_git.bb
index 22308d7e8..387dd6712 100644
--- a/meta-openembedded/meta-oe/recipes-core/emlog/emlog_git.bb
+++ b/meta-openembedded/meta-oe/recipes-core/emlog/emlog_git.bb
@@ -1,6 +1,8 @@
require ${BPN}.inc
-SRC_URI += "file://${BPN}.initd"
+SRC_URI += "file://${BPN}.initd \
+ file://0001-Remove-modules_clean-from-clean-target.patch \
+ "
SRC_URI_append_libc-musl = " file://Drop-use-of-error-h.patch"
@@ -8,6 +10,8 @@ inherit update-rc.d
INITSCRIPT_NAME = "${BPN}"
+
+
do_compile() {
oe_runmake nbcat
oe_runmake mkemlog
diff --git a/meta-openembedded/meta-oe/recipes-core/libnfc/libnfc_git.bb b/meta-openembedded/meta-oe/recipes-core/libnfc/libnfc_git.bb
index 64c5f5c34..2851ecf9f 100644
--- a/meta-openembedded/meta-oe/recipes-core/libnfc/libnfc_git.bb
+++ b/meta-openembedded/meta-oe/recipes-core/libnfc/libnfc_git.bb
@@ -7,6 +7,8 @@ SECTION = "libs"
inherit autotools pkgconfig
+PV = "1.7.1+git${SRCPV}"
+
S = "${WORKDIR}/git"
SRCREV = "2d4543673e9b76c02679ca8b89259659f1afd932"
SRC_URI = "git://github.com/nfc-tools/libnfc.git \
diff --git a/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.2.bb b/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.3.bb
index 0e5b9ceeb..e6129e246 100644
--- a/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.2.bb
+++ b/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.3.bb
@@ -6,8 +6,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
DEPENDS = "mm-common"
SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.10/libsigc++-${PV}.tar.xz"
-SRC_URI[md5sum] = "1b067bfae0b502e6a5127336cb09d2dd"
-SRC_URI[sha256sum] = "b1ca0253379596f9c19f070c83d362b12dfd39c0a3ea1dd813e8e21c1a097a98"
+SRC_URI[md5sum] = "ea68c7afc23a4b89a2dfa78344460785"
+SRC_URI[sha256sum] = "0b68dfc6313c6cc90ac989c6d722a1bf0585ad13846e79746aa87cb265904786"
S = "${WORKDIR}/libsigc++-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.0.2.bb b/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.0.3.bb
index 26bd02c7b..fc4f5d649 100644
--- a/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.0.2.bb
+++ b/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.0.3.bb
@@ -6,8 +6,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=959bffe2993816eb32ec4bc1ec1d5875"
DEPENDS = "mm-common"
SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libsigc++/3.0/libsigc++-${PV}.tar.xz"
-SRC_URI[md5sum] = "1f93f8ed4ead38e876157834b2c57c21"
-SRC_URI[sha256sum] = "4b77676de1e74774ec456bcc6ac6f04a2791a12cc1fe07f8305d4c3c86e2f339"
+SRC_URI[md5sum] = "8dca4559e732f47710370baa8bc2e66f"
+SRC_URI[sha256sum] = "e4f4866a894bdbe053e4fb22ccc6bc4b6851fd31a4746fdd20b2cf6e87c6edb6"
S = "${WORKDIR}/libsigc++-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
index 59f1703f4..8358e933d 100644
--- a/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
+++ b/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
@@ -46,7 +46,7 @@ RDEPENDS_packagegroup-meta-oe = "\
"
RDEPENDS_packagegroup-meta-oe-benchmarks = "\
- analyze-suspend dhrystone iperf2 linpack phoronix-test-suite \
+ dhrystone iperf2 linpack phoronix-test-suite \
tiobench bonnie++ fio iperf2 iperf3 lmbench s-suite whetstone \
libc-bench memtester sysbench dbench iozone3 libhugetlbfs \
nbench-byte tinymembench \
@@ -62,14 +62,15 @@ RDEPENDS_packagegroup-meta-oe-benchmarks_remove_riscv32 = "libhugetlbfs"
RDEPENDS_packagegroup-meta-oe-connectivity ="\
gammu hostapd irssi krb5 libev libimobiledevice \
libmbim libmtp libndp libqmi libtorrent \
- libuv libwebsockets linuxptp lirc loudmouth \
+ libuv libwebsockets linuxptp loudmouth \
modemmanager mosh \
paho-mqtt-c phonet-utils rabbitmq-c rfkill rtorrent \
- ser2net smstools3 telepathy-glib telepathy-idle thrift \
+ ser2net smstools3 telepathy-glib thrift \
usbmuxd zabbix zeromq \
${@bb.utils.contains("DISTRO_FEATURES", "x11", "obex-data-server", "", d)} \
libmikmod \
obexftp openobex libnet \
+ ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "telepathy-idle", "", d)} \
"
RDEPENDS_packagegroup-meta-oe-connectivity_append_libc-glibc = " wvstreams wvdial"
@@ -100,24 +101,25 @@ RDEPENDS_packagegroup-meta-oe-bsp_remove_riscv32 = "efivar efibootmgr"
RDEPENDS_packagegroup-meta-oe-dbs ="\
leveldb libdbi mariadb mariadb-native \
- mysql-python postgresql psqlodbc rocksdb soci \
+ postgresql psqlodbc rocksdb soci \
sqlite \
+ ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "mysql-python", "", d)} \
"
RDEPENDS_packagegroup-meta-oe-devtools ="\
android-tools android-tools-conf bootchart breakpad \
capnproto cgdb cscope ctags \
debootstrap dmalloc flatbuffers \
- giflib icon-slicer iptraf-ng jq jsoncpp jsonrpc json-spirit \
+ giflib grpc icon-slicer iptraf-ng jq jsoncpp jsonrpc json-spirit \
kconfig-frontends lemon libedit libgee libsombok3 \
libubox log4cplus lshw ltrace lua mcpp memstat mercurial \
- mpich msgpack-c nlohmann-json nodejs openocd pax-utils \
+ mpich msgpack-c nlohmann-json openocd pax-utils \
ipc-run libdbd-mysql-perl libdbi-perl libio-pty-perl php \
- protobuf protobuf-c python3-distutils-extra \
- python-cpuset python-distutils-extra python-futures python-pygobject \
- rapidjson serialcheck sip3 sip tclap uftrace uw-imap valijson \
+ protobuf protobuf-c \
+ rapidjson serialcheck sip3 tclap uftrace uw-imap valijson \
xmlrpc-c yajl yasm \
${@bb.utils.contains("DISTRO_FEATURES", "x11", "geany geany-plugins glade tk", "", d)} \
+ ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "nodejs", "", d)} \
"
RDEPENDS_packagegroup-meta-oe-devtools_remove_armv5 = "uftrace nodejs"
@@ -127,19 +129,19 @@ RDEPENDS_packagegroup-meta-oe-devtools_remove_mips64el = "nodejs"
RDEPENDS_packagegroup-meta-oe-devtools_remove_powerpc = "android-tools breakpad uftrace lshw"
RDEPENDS_packagegroup-meta-oe-devtools_remove_powerpc64 = "android-tools uftrace lshw"
RDEPENDS_packagegroup-meta-oe-devtools_remove_powerpc64le = "android-tools uftrace lshw"
-RDEPENDS_packagegroup-meta-oe-devtools_remove_riscv64 = "nodejs uftrace lshw"
-RDEPENDS_packagegroup-meta-oe-devtools_remove_riscv32 = "nodejs uftrace lshw"
+RDEPENDS_packagegroup-meta-oe-devtools_remove_riscv64 = "breakpad ltrace nodejs uftrace lshw"
+RDEPENDS_packagegroup-meta-oe-devtools_remove_riscv32 = "breakpad ltrace nodejs uftrace lshw"
RDEPENDS_packagegroup-meta-oe-extended ="\
byacc cfengine cfengine-masterfiles cmpi-bindings \
ddrescue dialog dumb-init enscript fluentbit \
haveged hexedit hiredis hplip hwloc indent iotop isomd5sum \
- jansson konkretcmpi lcdproc libblockdev libcec libconfig \
+ jansson konkretcmpi libblockdev libcec libconfig \
libdivecomputer libplist libusbmuxd \
liblockfile liblogging liblognorm libmodbus libmodbus \
libpwquality libqb libuio \
lockfile-progs logwatch lprng mailx md5deep \
- mozjs mraa nana nicstat \
+ mraa nana nicstat \
p7zip p8platform libfile-fnmatch-perl \
rarpd redis rrdtool libfastjson librelp rsyslog sanlock \
sblim-cmpi-devel sblim-sfc-common sblim-sfcc \
@@ -153,7 +155,7 @@ RDEPENDS_packagegroup-meta-oe-extended ="\
${@bb.utils.contains("DISTRO_FEATURES", "pam", "pam-ssh-agent-auth openwsman sblim-sfcb ", "", d)} \
${@bb.utils.contains("DISTRO_FEATURES", "polkit", "polkit polkit-group-rule-datetime ", "", d)} \
${@bb.utils.contains("DISTRO_FEATURES", "polkit", "polkit-group-rule-network ", "", d)} \
- ${@bb.utils.contains("BBPATH", "meta-python", "openlmi-tools", "", d)} \
+ ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "openlmi-tools", "", d)} \
"
RDEPENDS_packagegroup-meta-oe-extended_remove_mipsarch = "upm mraa tiptop"
RDEPENDS_packagegroup-meta-oe-extended_remove_powerpc = "upm mraa"
@@ -161,7 +163,6 @@ RDEPENDS_packagegroup-meta-oe-extended_remove_powerpc64 = "upm mraa"
RDEPENDS_packagegroup-meta-oe-extended_remove_powerpc64le = "upm mraa"
RDEPENDS_packagegroup-meta-oe-extended_remove_riscv64 = "upm mraa tiptop"
RDEPENDS_packagegroup-meta-oe-extended_remove_riscv32 = "upm mraa tiptop"
-RDEPENDS_packagegroup-meta-oe-extended_remove_libc-musl = "lcdproc"
RDEPENDS_packagegroup-meta-oe-gnome ="\
atkmm gnome-common gnome-doc-utils-stub gtkmm \
@@ -169,8 +170,9 @@ RDEPENDS_packagegroup-meta-oe-gnome ="\
"
RDEPENDS_packagegroup-meta-oe-graphics ="\
- babl cairomm dietsplash directfb directfb-examples dnfdragora \
- fbgrab fbida fontforge fvwm gegl gimp glm gphoto2 libgphoto2 \
+ cairomm dietsplash directfb directfb-examples \
+ ${@bb.utils.contains("PACKAGE_CLASSES", "package_rpm", "dnfdragora dnf-plugin-tui", "", d)} \
+ fbgrab fbida fontforge fvwm glm gphoto2 libgphoto2 \
gtkperf jasper leptonica libmng libsdl2-image libsdl2-mixer libsdl2-net \
libsdl-gfx libsdl-image libsdl-mixer libsdl-net libsdl-ttf \
libvncserver libyui libyui-ncurses lxdm numlockx openbox openjpeg \
@@ -187,15 +189,23 @@ RDEPENDS_packagegroup-meta-oe-graphics ="\
${@bb.utils.contains("DISTRO_FEATURES", "opengl", "freeglut libsdl2-ttf", "", d)} \
"
+
+
RDEPENDS_packagegroup-meta-oe-kernel ="\
agent-proxy broadcom-bt-firmware cpupower \
crash ipmitool minicoredumper oprofile \
"
+RDEPENDS_packagegroup-meta-oe-kernel_append_x86 = " pm-graph "
+RDEPENDS_packagegroup-meta-oe-kernel_append_x86-64 = " pm-graph "
+
RDEPENDS_packagegroup-meta-oe-kernel_remove_libc-musl = "crash minicoredumper"
RDEPENDS_packagegroup-meta-oe-kernel_remove_mips64 = "crash"
RDEPENDS_packagegroup-meta-oe-kernel_remove_mips64el = "crash"
+RDEPENDS_packagegroup-meta-oe-kernel_remove_riscv64 = "crash oprofile"
+RDEPENDS_packagegroup-meta-oe-kernel_remove_riscv32 = "crash oprofile"
+
RDEPENDS_packagegroup-meta-oe-multimedia ="\
alsa-oss audiofile cdrkit id3lib \
a2jmidid jack libass libburn libcdio libcdio-paranoia \
@@ -230,9 +240,9 @@ NE10_armv7a = "ne10"
NE10_armv7ve = "ne10"
RDEPENDS_packagegroup-meta-oe-support ="\
- anthy asio atop augeas avro-c bdwgc frame grail \
+ anthy asio atop augeas avro-c bdwgc frame grail c-ares \
ccid ceres-solver ckermit cpprest ctapi-common daemonize \
- daemontools debsums devmem2 dfu-util dfu-util-native digitemp \
+ daemontools devmem2 dfu-util dfu-util-native digitemp \
dstat eject enca epeg espeak fbset fbset-modes \
fftw fltk-native gd gflags glog gnulib gperftools \
gpm gradm gsl gsoap hddtemp hidapi htop hunspell hwdata iksemel \
@@ -241,18 +251,18 @@ RDEPENDS_packagegroup-meta-oe-support ="\
libgpiod libiio libjs-jquery libjs-sizzle liblinebreak libmicrohttpd \
libmxml liboauth libol liboop libp11 libraw1394 libsmi libsoc libssh2 \
libssh libtar libteam libtinyxml2 libtinyxml libusbg libusb-compat libutempter \
- links lio-utils lockdev log4c log4cpp logwarn libdevmapper lvm2 \
+ links lockdev log4c log4cpp logwarn libdevmapper lvm2 \
mailcap mbuffer mg minini \
multipath-tools nano neon nmon numactl onig openct openldap \
opensc wbxml2 p910nd pcsc-lite picocom libotr pidgin \
pngcheck poco poppler poppler-data portaudio-v19 pps-tools \
- pv pxaregs raptor2 rdfind read-edid rsnapshot s3c24xx-gpio s3c64xx-gpio \
- sjf2410-linux-native satyr sdparm pty-forward-native serial-forward \
- sg3-utils sharutils smem spitools srecord ssiapi stm32flash \
+ pv pxaregs raptor2 rdfind read-edid rsnapshot \
+ satyr sdparm pty-forward-native serial-forward \
+ sg3-utils sharutils spitools srecord ssiapi stm32flash \
syslog-ng system-config-keyboard tbb thin-provisioning-tools tokyocabinet \
tree uhubctl unixodbc uriparser usb-modeswitch \
- usb-modeswitch-data usbpath uthash utouch-evemu utouch-frame \
- vim vim-tiny websocketpp wmiconfig xdelta3 xdg-user-dirs xmlstarlet \
+ usb-modeswitch-data uthash utouch-evemu utouch-frame \
+ vim vim-tiny websocketpp xdelta3 xdg-user-dirs xmlstarlet \
zbar zile \
${@bb.utils.contains("DISTRO_FEATURES", "x11", "geis toscoterm uim synergy utouch-mtview links-x11 fltk pidgin-otr", "", d)} \
libcanberra \
@@ -260,12 +270,13 @@ RDEPENDS_packagegroup-meta-oe-support ="\
procmail \
${@bb.utils.contains("DISTRO_FEATURES", "polkit", "udisks2 upower", "", d)} \
${NE10} \
+ ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "lio-utils", "", d)} \
"
RDEPENDS_packagegroup-meta-oe-support_remove_arm ="numactl"
RDEPENDS_packagegroup-meta-oe-support_remove_mipsarch = "gperftools"
-RDEPENDS_packagegroup-meta-oe-support_remove_riscv64 = "uim"
-RDEPENDS_packagegroup-meta-oe-support_remove_riscv32 = "uim"
+RDEPENDS_packagegroup-meta-oe-support_remove_riscv64 = "gperftools uim"
+RDEPENDS_packagegroup-meta-oe-support_remove_riscv32 = "gperftools uim"
RDEPENDS_packagegroup-meta-oe-support_remove_powerpc = "ssiapi"
RDEPENDS_packagegroup-meta-oe-support-egl ="\
@@ -296,6 +307,9 @@ RDEPENDS_packagegroup-meta-oe-ptest-packages = "\
libee-ptest \
poco-ptest \
"
+RDEPENDS_packagegroup-meta-oe-ptest-packages_remove_riscv64 = "oprofile-ptest"
+RDEPENDS_packagegroup-meta-oe-ptest-packages_remove_riscv32 = "oprofile-ptest"
+
RDEPENDS_packagegroup-meta-oe-ptest-packages_append_x86 = "\
mcelog-ptest \
"
diff --git a/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.4.bb b/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.4.bb
index 305977e5e..8b71c2bd6 100644
--- a/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.4.bb
+++ b/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.4.bb
@@ -26,7 +26,8 @@ SRC_URI[sha256sum] = "4a197a4f1a05785d7453dd829b231352fb2d09171bd86c5ffaafbb2dd6
EXTRA_OECONF += " --enable-shared --disable-static --disable-gtk --disable-documentation \
--with-logo=${LOGO} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-systemd-integration --with-system-root-install --with-systemd-tty-ask-password-agent=${base_bindir}/systemd-tty-ask-password-agent', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-systemd-integration --with-systemd-tty-ask-password-agent=${base_bindir}/systemd-tty-ask-password-agent', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge','--without-system-root-install','--with-system-root-install',d)} \
"
PACKAGECONFIG ??= "pango initrd"
diff --git a/meta-openembedded/meta-oe/recipes-core/safec/safec_3.5.bb b/meta-openembedded/meta-oe/recipes-core/safec/safec_3.5.bb
index c9ace3b0b..94cdb3a3c 100644
--- a/meta-openembedded/meta-oe/recipes-core/safec/safec_3.5.bb
+++ b/meta-openembedded/meta-oe/recipes-core/safec/safec_3.5.bb
@@ -14,6 +14,10 @@ SRC_URI = "git://github.com/rurban/safeclib.git \
CPPFLAGS_append_libc-musl = " -D_GNU_SOURCE"
-COMPATIBLE_HOST = '(x86_64|i.86|powerpc|powerpc64|arm).*-linux'
+COMPATIBLE_HOST = '(x86_64|i.86|powerpc|powerpc64|arm|aarch64).*-linux'
-RDEPENDS_${PN} = "perl"
+PACKAGES =+ "${PN}-check"
+
+FILES_${PN}-check += "${bindir}/check_for_unsafe_apis"
+
+RDEPENDS_${PN}-check += "perl"
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.7.6/run-ptest b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.8.1/run-ptest
index f6ade0c7e..f6ade0c7e 100755
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.7.6/run-ptest
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.8.1/run-ptest
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools-native_0.7.6.bb b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_0.8.1.bb
index 6492c2368..9eaec0f2a 100644
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools-native_0.7.6.bb
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_0.8.1.bb
@@ -4,11 +4,13 @@ DESCRIPTION = "Native interface code generator for development with sdbus-c++"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=1803fa9c2c3ce8cb06b4861d75310742"
-inherit cmake native
+inherit cmake
DEPENDS += "expat"
-SRCREV = "5121d46eed42231285c18d317a9f48e0b2849d5e"
+SRCREV = "3a4f343fb924650e7639660efa5f143961162044"
SRC_URI = "git://github.com/Kistler-Group/sdbus-cpp.git;protocol=https;branch=master;subpath=tools"
S = "${WORKDIR}/tools"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.7.6.bb b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.8.1.bb
index 57774cbdf..c4d63fd27 100644
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.7.6.bb
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.8.1.bb
@@ -16,7 +16,7 @@ PACKAGECONFIG[with-tests] = "-DBUILD_TESTS=ON -DTESTS_INSTALL_PATH=${libdir}/${B
DEPENDS += "expat"
-SRCREV = "5121d46eed42231285c18d317a9f48e0b2849d5e"
+SRCREV = "3a4f343fb924650e7639660efa5f143961162044"
SRC_URI = "git://github.com/Kistler-Group/sdbus-cpp.git;protocol=https;branch=master"
SRC_URI += "file://run-ptest"
diff --git a/meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.13.0.bb b/meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.14.0.bb
index 0854bd672..42e89f639 100644
--- a/meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.13.0.bb
+++ b/meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.14.0.bb
@@ -5,8 +5,8 @@ LIC_FILES_CHKSUM = "file://license.txt;md5=a02e03c8fa2c5e7b9b3fcc1b9811fd3b"
SECTION = "libs"
SRC_URI = "https://botan.randombit.net/releases/Botan-${PV}.tar.xz"
-SRC_URI[md5sum] = "9f90c7d523778be5f23f3ce79046ba35"
-SRC_URI[sha256sum] = "f57ae42a41e1091bca58f44f41addebd9a390b651603952c881ec89d50187e90"
+SRC_URI[md5sum] = "ebc68c08b99bbc4b4fc9bdbfad398b02"
+SRC_URI[sha256sum] = "0c10f12b424a40ee19bde00292098e201d7498535c062d8d5b586d07861a54b5"
S = "${WORKDIR}/Botan-${PV}"
@@ -19,14 +19,15 @@ CPU_armv7ve = "armv7"
do_configure() {
python3 ${S}/configure.py \
- --prefix="${D}${prefix}" \
+ --prefix="${D}${exec_prefix}" \
+ --libdir="${D}${libdir}" \
--cpu="${CPU}" \
--cc-bin="${CXX}" \
--cxxflags="${CXXFLAGS}" \
--ldflags="${LDFLAGS}" \
--with-endian=${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
${@bb.utils.contains("TUNE_FEATURES","neon","","--disable-neon",d)} \
- --with-sysroot-dir=${STAGING_DIR_TARGET} \
+ --with-sysroot-dir=${STAGING_DIR_HOST} \
--with-build-dir="${B}" \
--optimize-for-size \
--with-stack-protector \
diff --git a/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.2.2.bb b/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.3.1.bb
index 479b9eb37..ec375fed9 100644
--- a/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.2.2.bb
+++ b/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.3.1.bb
@@ -21,8 +21,8 @@ RDEPENDS_${PN} = " \
"
SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}/${BP}.tar.xz"
-SRC_URI[md5sum] = "2b64ca9ea16e823df359eacf9c02414b"
-SRC_URI[sha256sum] = "2af0ec9551ab9c870074cae9d3f68d82cab004f4095fa89db0e4413713424a46"
+SRC_URI[md5sum] = "cef482c0579f34d9524311ac70c0875f"
+SRC_URI[sha256sum] = "92aba4d559a2cf7043faed92e0f22c5addea36bd63f8c039ba5a8f3a159fe7d2"
inherit autotools gettext pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.25.1.bb b/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.26.bb
index 271f2eaa3..9b6e7ccbe 100644
--- a/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.25.1.bb
+++ b/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.26.bb
@@ -18,8 +18,10 @@ LIC_FILES_CHKSUM = " \
SRC_URI = "git://github.com/OpenSC/${BPN}.git"
S = "${WORKDIR}/git"
-# v1.25.1
-SRCREV = "2713cb09dcd90104cb7bceb5f14cd6f90834f7b1"
+# v1.26
+SRCREV = "c7a0cfa08ddc75d963a835d3588170af0e5f1115"
+
+UPSTREAM_CHECK_GITTAGREGEX = "pkcs11-helper-(?P<pver>\d+(\.\d+)+)"
DEPENDS = "zlib nettle gnutls gmp openssl nss nspr"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.4.11.bb b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.4.12.bb
index e1a038dfa..e1a038dfa 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.4.11.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.4.12.bb
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
index 23de69dd2..95f5acba1 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
@@ -21,8 +21,8 @@ SRC_URI = "https://downloads.mariadb.org/interstitial/${BP}/source/${BP}.tar.gz
file://0001-Fix-build-breakage-from-lock_guard-error-6161.patch \
file://0001-Fix-library-LZ4-lookup.patch \
"
-SRC_URI[md5sum] = "d0de881ab8ead46928cafb7d558535c1"
-SRC_URI[sha256sum] = "4c076232b99433b09eb3c6d62f607192b3474d022703699b8f6aef4e79de3fb9"
+SRC_URI[md5sum] = "97d7c0f508c04a31c138fdb24e95dbc4"
+SRC_URI[sha256sum] = "fef1e1d38aa253dd8a51006bd15aad184912fce31c446bb69434fcde735aa208"
UPSTREAM_CHECK_URI = "https://github.com/MariaDB/server/releases"
@@ -168,6 +168,10 @@ do_install() {
if [ -f ${D}${datadir}/doc/README ]; then
mv ${D}${datadir}/doc/README ${D}${datadir}/doc/${PN}/
fi
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then
+ mv ${D}/lib/security ${D}/${libdir}
+ rmdir --ignore-fail-on-non-empty ${D}/lib
+ fi
}
PACKAGES = "${PN}-dbg ${PN} \
@@ -299,11 +303,14 @@ FILES_${PN}-server = "\
${sbindir}/ndbd \
${sbindir}/ndb_mgmd \
${libdir}/plugin/*.so \
+ ${libdir}/security/*.so \
+ ${libdir}/plugin/auth_pam_tool_dir/auth_pam_tool \
${datadir}/mysql/ \
${localstatedir}/mysql/ \
${sysconfdir}/init.d/mysqld \
${sysconfdir}/my.cnf \
${sysconfdir}/my.cnf.d/server.cnf \
+ ${sysconfdir}/security/user_map.conf \
${sysconfdir}/tmpfiles.d"
DESCRIPTION_${PN}-leftovers = "unpackaged and probably unneeded files for ${PN}"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-arm-atomic.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-arm-atomic.patch
index 185b7b77f..05b0cf8ff 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-arm-atomic.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-arm-atomic.patch
@@ -1,6 +1,6 @@
-From ffaaf4d43ebf2ef6d0229a60f407c1f5a06e5c53 Mon Sep 17 00:00:00 2001
+From f447aca534d1a12809eeb146e8220d305cc3884d Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
-Date: Fri, 15 Mar 2019 01:46:05 -0700
+Date: Thu, 9 Apr 2020 14:07:19 +0800
Subject: [PATCH] build_rocksdb.cmake: fix atomic support on arm
Check to link with libatomic to enable C11 atomics support
@@ -10,14 +10,16 @@ to fix below build error on arm:
Upstream-Status: Pending
-Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
storage/rocksdb/build_rocksdb.cmake | 3 +++
1 file changed, 3 insertions(+)
+diff --git a/storage/rocksdb/build_rocksdb.cmake b/storage/rocksdb/build_rocksdb.cmake
+index d7895b0..3bcd52a 100644
--- a/storage/rocksdb/build_rocksdb.cmake
+++ b/storage/rocksdb/build_rocksdb.cmake
-@@ -470,6 +470,9 @@ list(APPEND SOURCES ${CMAKE_CURRENT_BINA
+@@ -470,6 +470,9 @@ list(APPEND SOURCES ${CMAKE_CURRENT_BINARY_DIR}/build_version.cc)
ADD_CONVENIENCE_LIBRARY(rocksdblib ${SOURCES})
target_link_libraries(rocksdblib ${THIRDPARTY_LIBS} ${SYSTEM_LIBS})
@@ -25,5 +27,8 @@ Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+ TARGET_LINK_LIBRARIES(rocksdblib atomic)
+ENDIF()
IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- set_target_properties(rocksdblib PROPERTIES COMPILE_FLAGS "-fPIC -fno-builtin-memcmp")
+ set_target_properties(rocksdblib PROPERTIES COMPILE_FLAGS "-fPIC -fno-builtin-memcmp -Wno-error")
endif()
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.4.11.bb b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.4.12.bb
index c0b53379d..c0b53379d 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.4.11.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.4.12.bb
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb b/meta-openembedded/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb
index f2faec1c1..4617da8e1 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb
@@ -16,4 +16,9 @@ SRC_URI[sha256sum] = "811040b647e5d5686f84db415efd697e6250008b112b6909ba77ac059e
S = "${WORKDIR}/${SRCNAME}-${PV}"
-inherit setuptools
+inherit ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "setuptools", "", d)}
+
+python() {
+ if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('Requires meta-python2 to be present.')
+}
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
index 91d0275b3..d35711c1e 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
@@ -37,7 +37,7 @@ LEAD_SONAME = "libpq.so"
# LDFLAGS for shared libraries
export LDFLAGS_SL = "${LDFLAGS}"
-inherit autotools pkgconfig perlnative pythonnative useradd update-rc.d systemd gettext cpan-base
+inherit autotools pkgconfig perlnative python3native useradd update-rc.d systemd gettext cpan-base
CFLAGS += "-I${STAGING_INCDIR}/${PYTHON_DIR} -I${STAGING_INCDIR}/tcl8.6"
@@ -58,7 +58,7 @@ enable_pam = "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
PACKAGECONFIG ??= "${enable_pam} openssl python uuid libxml tcl nls libxml perl"
PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,"
PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl,"
-PACKAGECONFIG[python] = "--with-python,--without-python,python,python"
+PACKAGECONFIG[python] = "--with-python,--without-python,python3,python3"
PACKAGECONFIG[uuid] = "--with-uuid=e2fs,--without-uuid,util-linux,"
PACKAGECONFIG[tcl] = "--with-tcl --with-tclconfig=${STAGING_BINDIR_CROSS},--without-tcl,tcl tcl-native,"
PACKAGECONFIG[nls] = "--enable-nls,--disable-nls,,"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_12.1.bb b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_12.1.bb
deleted file mode 100644
index 486851941..000000000
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_12.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-require postgresql.inc
-
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=87da2b84884860b71f5f24ab37e7da78"
-
-SRC_URI += "\
- file://not-check-libperl.patch \
- file://0001-Add-support-for-RISC-V.patch \
- file://0001-Improve-reproducibility.patch \
-"
-
-SRC_URI[md5sum] = "2ee1bd4ec5f49363a3f456f07e599b41"
-SRC_URI[sha256sum] = "a09bf3abbaf6763980d0f8acbb943b7629a8b20073de18d867aecdb7988483ed"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_12.2.bb b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_12.2.bb
new file mode 100644
index 000000000..0613e50c7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_12.2.bb
@@ -0,0 +1,12 @@
+require postgresql.inc
+
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=fc4ce21960f0c561460d750bc270d11f"
+
+SRC_URI += "\
+ file://not-check-libperl.patch \
+ file://0001-Add-support-for-RISC-V.patch \
+ file://0001-Improve-reproducibility.patch \
+"
+
+SRC_URI[md5sum] = "a88ceea8ecf2741307f663e4539b58b7"
+SRC_URI[sha256sum] = "ad1dcc4c4fc500786b745635a9e1eba950195ce20b8913f50345bb7d5369b5de"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/rocksdb/files/0001-Fix-build-breakage-from-lock_guard-error-6161.patch b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/files/0001-Fix-build-breakage-from-lock_guard-error-6161.patch
deleted file mode 100644
index ac87d0c60..000000000
--- a/meta-openembedded/meta-oe/recipes-dbs/rocksdb/files/0001-Fix-build-breakage-from-lock_guard-error-6161.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From b626703de7ece507f360507e49d3ecb448b12e07 Mon Sep 17 00:00:00 2001
-From: Maysam Yabandeh <myabandeh@fb.com>
-Date: Thu, 12 Dec 2019 13:48:50 -0800
-Subject: [PATCH] Fix build breakage from lock_guard error (#6161)
-
-Summary:
-This change fixes a source issue that caused compile time error which breaks build for many fbcode services in that setup. The size() member function of channel is a const member, so member variables accessed within it are implicitly const as well. This caused error when clang fails to resolve to a constructor that takes std::mutex because the suitable constructor got rejected due to loss of constness for its argument. The fix is to add mutable modifier to the lock_ member of channel.
-Pull Request resolved: https://github.com/facebook/rocksdb/pull/6161
-
-Differential Revision: D18967685
-
-Pulled By: maysamyabandeh
-
-Upstream-Status: Backport
-
-fbshipit-source-id: 698b6a5153c3c92eeacb842c467aa28cc350d432
----
- util/channel.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/util/channel.h b/util/channel.h
-index 0225482c0..a8a47680a 100644
---- a/util/channel.h
-+++ b/util/channel.h
-@@ -60,7 +60,7 @@ class channel {
-
- private:
- std::condition_variable cv_;
-- std::mutex lock_;
-+ mutable std::mutex lock_;
- std::queue<T> buffer_;
- bool eof_;
- };
---
-2.24.1
-
diff --git a/meta-openembedded/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Add-check-for-atomic-support.patch b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Add-check-for-atomic-support.patch
new file mode 100644
index 000000000..9bfb1f31d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Add-check-for-atomic-support.patch
@@ -0,0 +1,115 @@
+From ba0a0e54d9544babbd3963891f4e3200dd5583f5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 18 Mar 2020 15:10:37 -0700
+Subject: [PATCH] cmake: Add check for atomic support
+
+Detect if libatomic should be linked in or compiler and platform can
+provide the needed atomic instrinsics, this helps build on certain
+platforms like mips or clang/i386
+
+Fixes
+
+| /mnt/b/yoe/build/tmp/work/mips32r2-yoe-linux/rocksdb/6.6.4-r0/recipe-sysroot-native/usr/bin/mips-yoe-linux/mips-yoe-linux-ld: librocksdb.so.6.6.4: undefined reference to `__atomic_exchange_8'
+| /mnt/b/yoe/build/tmp/work/mips32r2-yoe-linux/rocksdb/6.6.4-r0/recipe-sysroot-native/usr/bin/mips-yoe-linux/mips-yoe-linux-ld: librocksdb.so.6.6.4: undefined reference to `__atomic_fetch_or_8'
+| /mnt/b/yoe/build/tmp/work/mips32r2-yoe-linux/rocksdb/6.6.4-r0/recipe-sysroot-native/usr/bin/mips-yoe-linux/mips-yoe-linux-ld: librocksdb.so.6.6.4: undefined reference to `__atomic_compare_exchange_8'
+| /mnt/b/yoe/build/tmp/work/mips32r2-yoe-linux/rocksdb/6.6.4-r0/recipe-sysroot-native/usr/bin/mips-yoe-linux/mips-yoe-linux-ld: librocksdb.so.6.6.4: undefined reference to `__atomic_fetch_sub_8'
+| /mnt/b/yoe/build/tmp/work/mips32r2-yoe-linux/rocksdb/6.6.4-r0/recipe-sysroot-native/usr/bin/mips-yoe-linux/mips-yoe-linux-ld: librocksdb.so.6.6.4: undefined reference to `__atomic_load_8'
+| /mnt/b/yoe/build/tmp/work/mips32r2-yoe-linux/rocksdb/6.6.4-r0/recipe-sysroot-native/usr/bin/mips-yoe-linux/mips-yoe-linux-ld: librocksdb.so.6.6.4: undefined reference to `__atomic_store_8'
+| /mnt/b/yoe/build/tmp/work/mips32r2-yoe-linux/rocksdb/6.6.4-r0/recipe-sysroot-native/usr/bin/mips-yoe-linux/mips-yoe-linux-ld: librocksdb.so.6.6.4: undefined reference to `__atomic_fetch_add_8'
+
+Upstream-Status: Submitted [https://github.com/facebook/rocksdb/pull/6555]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt | 6 +++
+ cmake/modules/CheckAtomic.cmake | 69 +++++++++++++++++++++++++++++++++
+ 2 files changed, 75 insertions(+)
+ create mode 100644 cmake/modules/CheckAtomic.cmake
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -780,7 +780,13 @@ if(WIN32)
+ set(SYSTEM_LIBS ${SYSTEM_LIBS} shlwapi.lib rpcrt4.lib)
+ set(LIBS ${ROCKSDB_STATIC_LIB} ${THIRDPARTY_LIBS} ${SYSTEM_LIBS})
+ else()
++ # check if linking against libatomic is necessary
++ include(CheckAtomic)
++
+ set(SYSTEM_LIBS ${CMAKE_THREAD_LIBS_INIT})
++ if(HAVE_CXX_ATOMIC_WITH_LIB OR HAVE_CXX_ATOMICS64_WITH_LIB)
++ set(SYSTEM_LIBS ${SYSTEM_LIBS} atomic)
++ endif()
+ set(LIBS ${ROCKSDB_SHARED_LIB} ${THIRDPARTY_LIBS} ${SYSTEM_LIBS})
+
+ add_library(${ROCKSDB_SHARED_LIB} SHARED ${SOURCES})
+--- /dev/null
++++ b/cmake/modules/CheckAtomic.cmake
+@@ -0,0 +1,69 @@
++# Checks if atomic operations are supported natively or if linking against
++# libatomic is needed.
++
++# Check inspired by LLVMs cmake/modules/CheckAtomic.cmake
++
++INCLUDE(CheckCXXSourceCompiles)
++INCLUDE(CheckLibraryExists)
++
++function(check_working_cxx_atomics varname)
++ set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
++ set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -std=c++11")
++ CHECK_CXX_SOURCE_COMPILES("
++#include <atomic>
++std::atomic<int> x;
++int main() {
++ return x;
++}
++" ${varname})
++ set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
++endfunction(check_working_cxx_atomics)
++
++function(check_working_cxx_atomics64 varname)
++ set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
++ set(CMAKE_REQUIRED_FLAGS "-std=c++11 ${CMAKE_REQUIRED_FLAGS}")
++ CHECK_CXX_SOURCE_COMPILES("
++#include <atomic>
++#include <cstdint>
++std::atomic<uint64_t> x (0);
++std::atomic<double> y (0);
++int main() {
++ uint64_t i = x.load(std::memory_order_relaxed);
++ return int(y);
++}
++" ${varname})
++ set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
++endfunction(check_working_cxx_atomics64)
++
++# Check if atomics work without libatomic
++check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITHOUT_LIB)
++
++if(NOT HAVE_CXX_ATOMICS_WITHOUT_LIB)
++ check_library_exists(atomic __atomic_fetch_add_4 "" HAVE_LIBATOMIC)
++ if( HAVE_LIBATOMIC )
++ list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
++ check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITH_LIB)
++ if (NOT HAVE_CXX_ATOMICS_WITH_LIB)
++ message(FATAL_ERROR "Host compiler must support std::atomic!")
++ endif()
++ else()
++ message(FATAL_ERROR "Host compiler appears to require libatomic, but cannot find it.")
++ endif()
++endif()
++
++# Check if 64bit atomics work without libatomic
++check_working_cxx_atomics64(HAVE_CXX_ATOMICS64_WITHOUT_LIB)
++
++if(NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB)
++ check_library_exists(atomic __atomic_load_8 "" HAVE_CXX_LIBATOMICS64)
++ if(HAVE_CXX_LIBATOMICS64)
++ list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
++ check_working_cxx_atomics64(HAVE_CXX_ATOMICS64_WITH_LIB)
++ if (NOT HAVE_CXX_ATOMICS64_WITH_LIB)
++ message(FATAL_ERROR "Host compiler must support std::atomic!")
++ endif()
++ else()
++ message(FATAL_ERROR "Host compiler appears to require libatomic, but cannot find it.")
++ endif()
++endif()
++
diff --git a/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb
index 713d5bb14..b9038df81 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb
@@ -6,13 +6,13 @@ LIC_FILES_CHKSUM = "file://LICENSE.Apache;md5=3b83ef96387f14655fc854ddc3c6bd57 \
file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://LICENSE.leveldb;md5=fb04ff57a14f308f2eed4a9b87d45837"
-SRCREV = "4cfbd87afd08a16df28436fb990ef6b154ee6114"
-SRCBRANCH = "6.5.fb"
-PV = "6.5.2"
+SRCREV = "551a110918493a19d11243f53408b97485de1411"
+SRCBRANCH = "6.6.fb"
+PV = "6.6.4"
SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH} \
- file://0001-Fix-build-breakage-from-lock_guard-error-6161.patch \
file://0001-db-write_thread.cc-Initialize-state.patch \
+ file://0001-cmake-Add-check-for-atomic-support.patch \
"
S = "${WORKDIR}/git"
@@ -39,3 +39,5 @@ do_install_append() {
# fix for qa check buildpaths
sed -i "s#${RECIPE_SYSROOT}##g" ${D}${libdir}/cmake/rocksdb/RocksDBTargets.cmake
}
+
+LDFLAGS_append_riscv64 = " -pthread"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Add-RISCV-support-to-GetProgramCounter.patch b/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Add-RISCV-support-to-GetProgramCounter.patch
new file mode 100644
index 000000000..95ec070f6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Add-RISCV-support-to-GetProgramCounter.patch
@@ -0,0 +1,29 @@
+From 983eeae0792946fe5c090f95164c892ec6db5cc4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 16 Feb 2020 16:22:53 -0800
+Subject: [PATCH] Add RISCV support to GetProgramCounter()
+
+Identify PC register from signal context
+
+Upstream-Status: Submitted [https://github.com/abseil/abseil-cpp/pull/621]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ absl/debugging/internal/examine_stack.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/absl/debugging/internal/examine_stack.cc b/absl/debugging/internal/examine_stack.cc
+index 4739fbc..fb77450 100644
+--- a/absl/debugging/internal/examine_stack.cc
++++ b/absl/debugging/internal/examine_stack.cc
+@@ -53,6 +53,8 @@ void* GetProgramCounter(void* vuc) {
+ return reinterpret_cast<void*>(context->uc_mcontext.gp_regs[32]);
+ #elif defined(__powerpc__)
+ return reinterpret_cast<void*>(context->uc_mcontext.regs->nip);
++#elif defined(__riscv)
++ return reinterpret_cast<void*>(context->uc_mcontext.__gregs[REG_PC]);
+ #elif defined(__s390__) && !defined(__s390x__)
+ return reinterpret_cast<void*>(context->uc_mcontext.psw.addr & 0x7fffffff);
+ #elif defined(__s390__) && defined(__s390x__)
+--
+2.25.0
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch b/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch
new file mode 100644
index 000000000..4c41cd890
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch
@@ -0,0 +1,53 @@
+From 70926666f7c5c35add363e3bcade6eaabace7206 Mon Sep 17 00:00:00 2001
+From: Sinan Kaya <sinan.kaya@microsoft.com>
+Date: Mon, 3 Feb 2020 03:25:57 +0000
+Subject: [PATCH] Remove maes option from cross-compilation
+
+---
+ absl/copts/GENERATED_AbseilCopts.cmake | 4 ----
+ absl/copts/GENERATED_copts.bzl | 4 ----
+ absl/copts/copts.py | 4 ----
+ 3 files changed, 12 deletions(-)
+
+diff --git a/absl/copts/GENERATED_AbseilCopts.cmake b/absl/copts/GENERATED_AbseilCopts.cmake
+index 01bd40b..af99694 100644
+--- a/absl/copts/GENERATED_AbseilCopts.cmake
++++ b/absl/copts/GENERATED_AbseilCopts.cmake
+@@ -230,7 +230,3 @@ list(APPEND ABSL_RANDOM_HWAES_MSVC_X64_FLAGS
+ "/Ob2"
+ )
+
+-list(APPEND ABSL_RANDOM_HWAES_X64_FLAGS
+- "-maes"
+- "-msse4.1"
+-)
+diff --git a/absl/copts/GENERATED_copts.bzl b/absl/copts/GENERATED_copts.bzl
+index 82f332f..9a548d1 100644
+--- a/absl/copts/GENERATED_copts.bzl
++++ b/absl/copts/GENERATED_copts.bzl
+@@ -231,7 +231,3 @@ ABSL_RANDOM_HWAES_MSVC_X64_FLAGS = [
+ "/Ob2",
+ ]
+
+-ABSL_RANDOM_HWAES_X64_FLAGS = [
+- "-maes",
+- "-msse4.1",
+-]
+diff --git a/absl/copts/copts.py b/absl/copts/copts.py
+index 068abce..c2f70fb 100644
+--- a/absl/copts/copts.py
++++ b/absl/copts/copts.py
+@@ -203,10 +203,6 @@ COPT_VARS = {
+ # to improve performance of some random bit generators.
+ "ABSL_RANDOM_HWAES_ARM64_FLAGS": ["-march=armv8-a+crypto"],
+ "ABSL_RANDOM_HWAES_ARM32_FLAGS": ["-mfpu=neon"],
+- "ABSL_RANDOM_HWAES_X64_FLAGS": [
+- "-maes",
+- "-msse4.1",
+- ],
+ "ABSL_RANDOM_HWAES_MSVC_X64_FLAGS": [
+ "/O2", # Maximize speed
+ "/Ob2", # Aggressive inlining
+--
+2.23.0
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-absl-always-use-asm-sgidefs.h.patch b/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-absl-always-use-asm-sgidefs.h.patch
new file mode 100644
index 000000000..6bb59d933
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-absl-always-use-asm-sgidefs.h.patch
@@ -0,0 +1,38 @@
+From 14229e8c6f42a96e4d725124193ceefa54e5e1a4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 9 Apr 2020 13:06:27 -0700
+Subject: [PATCH] absl: always use <asm/sgidefs.h>
+
+Fixes mips/musl build, since sgidefs.h is not present on all C libraries
+but on linux asm/sgidefs.h is there and contains same definitions, using
+that makes it portable.
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ absl/base/internal/direct_mmap.h | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/absl/base/internal/direct_mmap.h b/absl/base/internal/direct_mmap.h
+index 2e5e422..c515325 100644
+--- a/absl/base/internal/direct_mmap.h
++++ b/absl/base/internal/direct_mmap.h
+@@ -41,13 +41,9 @@
+
+ #ifdef __mips__
+ // Include definitions of the ABI currently in use.
+-#ifdef __BIONIC__
+-// Android doesn't have sgidefs.h, but does have asm/sgidefs.h, which has the
++// bionic/musl C libs don't have sgidefs.h, but do have asm/sgidefs.h, which has the
+ // definitions we need.
+ #include <asm/sgidefs.h>
+-#else
+-#include <sgidefs.h>
+-#endif // __BIONIC__
+ #endif // __mips__
+
+ // SYS_mmap and SYS_munmap are not defined in Android.
+--
+2.26.0
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch b/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch
new file mode 100644
index 000000000..fab4a738e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch
@@ -0,0 +1,35 @@
+From 9384735383a0b8688e3f05ed23a53f18863eae20 Mon Sep 17 00:00:00 2001
+From: Sinan Kaya <sinan.kaya@microsoft.com>
+Date: Tue, 11 Feb 2020 11:36:00 -0500
+Subject: [PATCH] Add forgotten ABSL_HAVE_VDSO_SUPPORT conditional
+
+Signed-off-by: Sinan Kaya <sinan.kaya@microsoft.com>
+---
+ absl/debugging/internal/stacktrace_x86-inl.inc | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/absl/debugging/internal/stacktrace_x86-inl.inc b/absl/debugging/internal/stacktrace_x86-inl.inc
+index ff0fd31..28607c3 100644
+--- a/absl/debugging/internal/stacktrace_x86-inl.inc
++++ b/absl/debugging/internal/stacktrace_x86-inl.inc
+@@ -171,6 +171,7 @@ static void **NextStackFrame(void **old_fp, const void *uc) {
+ static const unsigned char *kernel_rt_sigreturn_address = nullptr;
+ static const unsigned char *kernel_vsyscall_address = nullptr;
+ if (num_push_instructions == -1) {
++#ifdef ABSL_HAVE_VDSO_SUPPORT
+ absl::debugging_internal::VDSOSupport vdso;
+ if (vdso.IsPresent()) {
+ absl::debugging_internal::VDSOSupport::SymbolInfo
+@@ -199,6 +200,9 @@ static void **NextStackFrame(void **old_fp, const void *uc) {
+ } else {
+ num_push_instructions = 0;
+ }
++#else
++ num_push_instructions = 0;
++#endif
+ }
+ if (num_push_instructions != 0 && kernel_rt_sigreturn_address != nullptr &&
+ old_fp[1] == kernel_rt_sigreturn_address) {
+--
+2.20.1.windows.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Add-fPIC-option.patch b/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Add-fPIC-option.patch
new file mode 100644
index 000000000..bb78813a7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Add-fPIC-option.patch
@@ -0,0 +1,27 @@
+From d7160d647c8f8847f3ea8d7b0eb222936962c1af Mon Sep 17 00:00:00 2001
+From: Sinan Kaya <sinan.kaya@microsoft.com>
+Date: Tue, 11 Feb 2020 11:58:02 -0500
+Subject: [PATCH] Add fPIC option
+
+Signed-off-by: Sinan Kaya <sinan.kaya@microsoft.com>
+---
+ CMakeLists.txt | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 74a3a4c..4f837b3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -79,6 +79,9 @@ option(ABSL_USE_GOOGLETEST_HEAD
+
+ option(ABSL_RUN_TESTS "If ON, Abseil tests will be run." OFF)
+
++# link fails on arm64 and x86-64 without this
++add_compile_options(-fPIC)
++
+ if(${ABSL_RUN_TESTS})
+ # enable CTest. This will set BUILD_TESTING to ON unless otherwise specified
+ # on the command line
+--
+2.20.1.windows.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb b/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb
new file mode 100644
index 000000000..9a44133c5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb
@@ -0,0 +1,57 @@
+SUMMARY = "Abseil is a cpp library like STL"
+DESCRIPTION = "Abseil provides pieces missing from the C++ standard. Contains \
+additional useful libraries like algorithm, container, debugging, hash, memory, \
+meta, numeric, strings, synchronization, time, types and utility"
+HOMEPAGE = "https://abseil.io/"
+SECTION = "libs"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=df52c6edb7adc22e533b2bacc3bd3915"
+
+PV = "20190808+git${SRCPV}"
+SRCREV = "aa844899c937bde5d2b24f276b59997e5b668bde"
+BRANCH = "lts_2019_08_08"
+SRC_URI = "git://github.com/abseil/abseil-cpp;branch=${BRANCH} \
+ file://0001-Remove-maes-option-from-cross-compilation.patch \
+ file://0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch \
+ file://0003-Add-fPIC-option.patch \
+ file://0001-Add-RISCV-support-to-GetProgramCounter.patch \
+ file://0001-absl-always-use-asm-sgidefs.h.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+DEPENDS_append_libc-musl = " libexecinfo "
+
+ASNEEDED_class-native = ""
+ASNEEDED_class-nativesdk = ""
+
+inherit cmake
+
+BBCLASSEXTEND = "native nativesdk"
+ALLOW_EMPTY_${PN} = "1"
+
+python () {
+ arch = d.getVar("TARGET_ARCH")
+
+ if arch == "aarch64":
+ tunes = d.getVar("TUNE_FEATURES")
+ if not tunes:
+ raise bb.parse.SkipPackage("%s-%s Needs support for crypto on armv8" % (pkgn, pkgv))
+ return
+ pkgn = d.getVar("PN")
+ pkgv = d.getVar("PV")
+ if "crypto" not in tunes:
+ raise bb.parse.SkipPackage("%s-%s Needs support for crypto on armv8" % (pkgn, pkgv))
+
+ if arch == "x86_64":
+ tunes = d.getVar("TUNE_FEATURES")
+ if not tunes:
+ raise bb.parse.SkipPackage("%s-%s Needs support for corei7 on x86_64" % (pkgn, pkgv))
+ return
+ pkgn = d.getVar("PN")
+ pkgv = d.getVar("PV")
+ if "corei7" not in tunes:
+ raise bb.parse.SkipPackage("%s-%s Needs support for corei7 on x86_64" % (pkgn, pkgv))
+
+}
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/build/0001-Riscv-Add-risc-v-Android-config-header.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/build/0001-Riscv-Add-risc-v-Android-config-header.patch
new file mode 100644
index 000000000..57c443b70
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/build/0001-Riscv-Add-risc-v-Android-config-header.patch
@@ -0,0 +1,359 @@
+From 82dce13ea7b5b31c63851bd67f66072413917e73 Mon Sep 17 00:00:00 2001
+From: Chenxi Mao <maochenxi@eswin.com>
+Date: Mon, 20 Apr 2020 15:32:40 +0800
+Subject: [PATCH 1/1] Riscv: Add risc-v Android config header
+
+---
+ .../arch/linux-riscv64/AndroidConfig.h | 340 ++++++++++++++++++
+ 1 file changed, 340 insertions(+)
+ create mode 100644 core/combo/include/arch/linux-riscv64/AndroidConfig.h
+
+diff --git a/core/combo/include/arch/linux-riscv64/AndroidConfig.h b/core/combo/include/arch/linux-riscv64/AndroidConfig.h
+new file mode 100644
+index 0000000000..bcbda8f87f
+--- /dev/null
++++ b/core/combo/include/arch/linux-riscv64/AndroidConfig.h
+@@ -0,0 +1,340 @@
++/*
++ * Copyright (C) 2013 The Android Open Source Project
++ *
++ * Licensed under the Apache License, Version 2.0 (the "License");
++ * you may not use this file except in compliance with the License.
++ * You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++/*
++ * Android config -- "android-aarch64". Used for ARM aarch64 device builds.
++ */
++#ifndef _ANDROID_CONFIG_H
++#define _ANDROID_CONFIG_H
++
++/*
++ * ===========================================================================
++ * !!! IMPORTANT !!!
++ * ===========================================================================
++ *
++ * This file is included by ALL C/C++ source files. Don't put anything in
++ * here unless you are absolutely certain it can't go anywhere else.
++ *
++ * Any C++ stuff must be wrapped with "#ifdef __cplusplus". Do not use "//"
++ * comments.
++ */
++
++/*
++ * Threading model. Choose one:
++ *
++ * HAVE_PTHREADS - use the pthreads library.
++ * HAVE_WIN32_THREADS - use Win32 thread primitives.
++ * -- combine HAVE_CREATETHREAD, HAVE_CREATEMUTEX, and HAVE__BEGINTHREADEX
++ */
++#define HAVE_PTHREADS
++
++/*
++ * Do we have pthread_setname_np()?
++ *
++ * (HAVE_PTHREAD_SETNAME_NP is used by WebKit to enable a function with
++ * the same name but different parameters, so we can't use that here.)
++ */
++#define HAVE_ANDROID_PTHREAD_SETNAME_NP
++
++/*
++ * Do we have the futex syscall?
++ */
++#define HAVE_FUTEX
++
++/*
++ * Process creation model. Choose one:
++ *
++ * HAVE_FORKEXEC - use fork() and exec()
++ * HAVE_WIN32_PROC - use CreateProcess()
++ */
++#define HAVE_FORKEXEC
++
++/*
++ * Process out-of-memory adjustment. Set if running on Linux,
++ * where we can write to /proc/<pid>/oom_adj to modify the out-of-memory
++ * badness adjustment.
++ */
++#define HAVE_OOM_ADJ
++
++/*
++ * IPC model. Choose one:
++ *
++ * HAVE_SYSV_IPC - use the classic SysV IPC mechanisms (semget, shmget).
++ * HAVE_MACOSX_IPC - use Macintosh IPC mechanisms (sem_open, mmap).
++ * HAVE_WIN32_IPC - use Win32 IPC (CreateSemaphore, CreateFileMapping).
++ * HAVE_ANDROID_IPC - use Android versions (?, mmap).
++ */
++#define HAVE_ANDROID_IPC
++
++/*
++ * Memory-mapping model. Choose one:
++ *
++ * HAVE_POSIX_FILEMAP - use the Posix sys/mmap.h
++ * HAVE_WIN32_FILEMAP - use Win32 filemaps
++ */
++#define HAVE_POSIX_FILEMAP
++
++/*
++ * Define this if you have <termio.h>
++ */
++#define HAVE_TERMIO_H 1
++
++/*
++ * Define this if you have <sys/sendfile.h>
++ */
++#define HAVE_SYS_SENDFILE_H 1
++
++/*
++ * Define this if you build against MSVCRT.DLL
++ */
++/* #define HAVE_MS_C_RUNTIME */
++
++/*
++ * Define this if you have sys/uio.h
++ */
++#define HAVE_SYS_UIO_H 1
++
++/*
++ * Define this if your platforms implements symbolic links
++ * in its filesystems
++ */
++#define HAVE_SYMLINKS
++
++/*
++ * Define this if we have localtime_r().
++ */
++/* #define HAVE_LOCALTIME_R 1 */
++
++/*
++ * Define this if we have gethostbyname_r().
++ */
++/* #define HAVE_GETHOSTBYNAME_R */
++
++/*
++ * Define this if we have ioctl().
++ */
++#define HAVE_IOCTL
++
++/*
++ * Define this if we want to use WinSock.
++ */
++/* #define HAVE_WINSOCK */
++
++/*
++ * Define this if have clock_gettime() and friends
++ */
++#define HAVE_POSIX_CLOCKS
++
++/*
++ * Define this if we have linux style epoll()
++ */
++#define HAVE_EPOLL
++
++/*
++ * Endianness of the target machine. Choose one:
++ *
++ * HAVE_ENDIAN_H -- have endian.h header we can include.
++ * HAVE_LITTLE_ENDIAN -- we are little endian.
++ * HAVE_BIG_ENDIAN -- we are big endian.
++ */
++#define HAVE_ENDIAN_H
++#define HAVE_LITTLE_ENDIAN
++
++#define _FILE_OFFSET_BITS 64
++/* #define _LARGEFILE_SOURCE 1 */
++
++/*
++ * Define if platform has off64_t (and lseek64 and other xxx64 functions)
++ */
++#define HAVE_OFF64_T
++
++/*
++ * Defined if we have the backtrace() call for retrieving a stack trace.
++ * Needed for CallStack to operate; if not defined, CallStack is
++ * non-functional.
++ */
++#define HAVE_BACKTRACE 0
++
++/*
++ * Defined if we have the cxxabi.h header for demangling C++ symbols. If
++ * not defined, stack crawls will be displayed with raw mangled symbols
++ */
++#define HAVE_CXXABI 0
++
++/*
++ * Defined if we have the gettid() system call.
++ */
++#define HAVE_GETTID
++
++/*
++ * Defined if we have the sched_setscheduler() call
++ */
++#define HAVE_SCHED_SETSCHEDULER
++
++/*
++ * Add any extra platform-specific defines here.
++ */
++#ifndef __linux__
++#define __linux__
++#endif
++
++/*
++ * Define if we have <malloc.h> header
++ */
++#define HAVE_MALLOC_H
++
++/*
++ * Define if we're running on *our* linux on device or emulator.
++ */
++#define HAVE_ANDROID_OS 1
++
++/*
++ * Define if we have Linux-style non-filesystem Unix Domain Sockets
++ */
++#define HAVE_LINUX_LOCAL_SOCKET_NAMESPACE 1
++
++/*
++ * Define if we have Linux's inotify in <sys/inotify.h>.
++ */
++#define HAVE_INOTIFY 1
++
++/*
++ * Define if we have madvise() in <sys/mman.h>
++ */
++#define HAVE_MADVISE 1
++
++/*
++ * Define if tm struct has tm_gmtoff field
++ */
++#define HAVE_TM_GMTOFF 1
++
++/*
++ * Define if dirent struct has d_type field
++ */
++#define HAVE_DIRENT_D_TYPE 1
++
++/*
++ * Define if libc includes Android system properties implementation.
++ */
++#define HAVE_LIBC_SYSTEM_PROPERTIES 1
++
++/*
++ * Define if system provides a system property server (should be
++ * mutually exclusive with HAVE_LIBC_SYSTEM_PROPERTIES).
++ */
++/* #define HAVE_SYSTEM_PROPERTY_SERVER */
++
++/*
++ * What CPU architecture does this platform use?
++ */
++#define ARCH_AARCH64
++
++/*
++ * Define if the size of enums is as short as possible,
++ */
++/* #define HAVE_SHORT_ENUMS */
++
++/*
++ * sprintf() format string for shared library naming.
++ */
++#define OS_SHARED_LIB_FORMAT_STR "lib%s.so"
++
++/*
++ * type for the third argument to mincore().
++ */
++#define MINCORE_POINTER_TYPE unsigned char *
++
++/*
++ * The default path separator for the platform
++ */
++#define OS_PATH_SEPARATOR '/'
++
++/*
++ * Is the filesystem case sensitive?
++ */
++#define OS_CASE_SENSITIVE
++
++/*
++ * Define if <sys/socket.h> exists.
++ */
++#define HAVE_SYS_SOCKET_H 1
++
++/*
++ * Define if the strlcpy() function exists on the system.
++ */
++#define HAVE_STRLCPY 1
++
++/*
++ * Define if the open_memstream() function exists on the system.
++ */
++/* #define HAVE_OPEN_MEMSTREAM 1 */
++
++/*
++ * Define if the BSD funopen() function exists on the system.
++ */
++#define HAVE_FUNOPEN 1
++
++/*
++ * Define if prctl() exists
++ */
++#define HAVE_PRCTL 1
++
++/*
++ * Define if writev() exists
++ */
++#define HAVE_WRITEV 1
++
++/*
++ * Define if <stdint.h> exists.
++ */
++#define HAVE_STDINT_H 1
++
++/*
++ * Define if <stdbool.h> exists.
++ */
++#define HAVE_STDBOOL_H 1
++
++/*
++ * Define if <sched.h> exists.
++ */
++#define HAVE_SCHED_H 1
++
++/*
++ * Define if pread() exists
++ */
++#define HAVE_PREAD 1
++
++/*
++ * Define if we have st_mtim in struct stat
++ */
++#define HAVE_STAT_ST_MTIM 1
++
++/*
++ * Define if printf() supports %zd for size_t arguments
++ */
++#define HAVE_PRINTF_ZD 1
++
++/*
++ * Define to 1 if <stdlib.h> provides qsort_r() with a BSD style function prototype.
++ */
++#define HAVE_BSD_QSORT_R 0
++
++/*
++ * Define to 1 if <stdlib.h> provides qsort_r() with a GNU style function prototype.
++ */
++#define HAVE_GNU_QSORT_R 0
++
++#endif /* _ANDROID_CONFIG_H */
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0013-adb-Support-riscv64.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0013-adb-Support-riscv64.patch
new file mode 100644
index 000000000..a8434afba
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0013-adb-Support-riscv64.patch
@@ -0,0 +1,189 @@
+From 48ddf4fb999931942c359350fb31cd557514e1c6 Mon Sep 17 00:00:00 2001
+From: Chenxi Mao <maochenxi@eswin.com>
+Date: Mon, 20 Apr 2020 15:27:22 +0800
+Subject: [PATCH 1/1] adb: Support riscv64
+
+---
+ include/cutils/atomic-inline.h | 2 +
+ include/cutils/atomic-riscv64.h | 156 ++++++++++++++++++++++++++++++++
+ 2 files changed, 158 insertions(+)
+ create mode 100644 include/cutils/atomic-riscv64.h
+
+diff --git a/include/cutils/atomic-inline.h b/include/cutils/atomic-inline.h
+index a31e913579..b5dc38209c 100644
+--- a/include/cutils/atomic-inline.h
++++ b/include/cutils/atomic-inline.h
+@@ -55,6 +55,8 @@ extern "C" {
+ #include <cutils/atomic-mips64.h>
+ #elif defined(__mips__)
+ #include <cutils/atomic-mips.h>
++#elif defined(__riscv) && __riscv_xlen == 64
++#include <cutils/atomic-riscv64.h>
+ #else
+ #error atomic operations are unsupported
+ #endif
+diff --git a/include/cutils/atomic-riscv64.h b/include/cutils/atomic-riscv64.h
+new file mode 100644
+index 0000000000..2664db5a86
+--- /dev/null
++++ b/include/cutils/atomic-riscv64.h
+@@ -0,0 +1,156 @@
++/*
++ * Copyright (C) 2014 The Android Open Source Project
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * * Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * * Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in
++ * the documentation and/or other materials provided with the
++ * distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
++ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
++ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
++ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
++ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
++ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ */
++
++#ifndef ANDROID_CUTILS_ATOMIC_RISCV64_H
++#define ANDROID_CUTILS_ATOMIC_RISCV64_H
++
++#include <stdint.h>
++
++#ifndef ANDROID_ATOMIC_INLINE
++#define ANDROID_ATOMIC_INLINE inline __attribute__((always_inline))
++#endif
++
++/*
++ TODOAArch64: Revisit the below functions and check for potential
++ optimizations using assembly code or otherwise.
++*/
++
++extern ANDROID_ATOMIC_INLINE
++void android_compiler_barrier(void)
++{
++ __asm__ __volatile__ ("" : : : "memory");
++}
++
++extern ANDROID_ATOMIC_INLINE
++void android_memory_barrier(void)
++{
++ __asm__ __volatile__ ("fence rw,rw" : : : "memory");
++}
++
++extern ANDROID_ATOMIC_INLINE
++int32_t android_atomic_acquire_load(volatile const int32_t *ptr)
++{
++ int32_t value = *ptr;
++ android_memory_barrier();
++ return value;
++}
++
++extern ANDROID_ATOMIC_INLINE
++int32_t android_atomic_release_load(volatile const int32_t *ptr)
++{
++ android_memory_barrier();
++ return *ptr;
++}
++
++extern ANDROID_ATOMIC_INLINE
++void android_atomic_acquire_store(int32_t value, volatile int32_t *ptr)
++{
++ *ptr = value;
++ android_memory_barrier();
++}
++
++extern ANDROID_ATOMIC_INLINE
++void android_atomic_release_store(int32_t value, volatile int32_t *ptr)
++{
++ android_memory_barrier();
++ *ptr = value;
++}
++
++extern ANDROID_ATOMIC_INLINE
++int android_atomic_cas(int32_t old_value, int32_t new_value,
++ volatile int32_t *ptr)
++{
++ return __sync_val_compare_and_swap(ptr, old_value, new_value) != old_value;
++}
++
++extern ANDROID_ATOMIC_INLINE
++int android_atomic_acquire_cas(int32_t old_value, int32_t new_value,
++ volatile int32_t *ptr)
++{
++ int status = android_atomic_cas(old_value, new_value, ptr);
++ android_memory_barrier();
++ return status;
++}
++
++extern ANDROID_ATOMIC_INLINE
++int android_atomic_release_cas(int32_t old_value, int32_t new_value,
++ volatile int32_t *ptr)
++{
++ android_memory_barrier();
++ return android_atomic_cas(old_value, new_value, ptr);
++}
++
++extern ANDROID_ATOMIC_INLINE
++int32_t android_atomic_add(int32_t increment, volatile int32_t *ptr)
++{
++ int32_t prev, status;
++ android_memory_barrier();
++ do {
++ prev = *ptr;
++ status = android_atomic_cas(prev, prev + increment, ptr);
++ } while (__builtin_expect(status != 0, 0));
++ return prev;
++}
++
++extern ANDROID_ATOMIC_INLINE
++int32_t android_atomic_inc(volatile int32_t *addr)
++{
++ return android_atomic_add(1, addr);
++}
++
++extern ANDROID_ATOMIC_INLINE
++int32_t android_atomic_dec(volatile int32_t *addr)
++{
++ return android_atomic_add(-1, addr);
++}
++
++extern ANDROID_ATOMIC_INLINE
++int32_t android_atomic_and(int32_t value, volatile int32_t *ptr)
++{
++ int32_t prev, status;
++ android_memory_barrier();
++ do {
++ prev = *ptr;
++ status = android_atomic_cas(prev, prev & value, ptr);
++ } while (__builtin_expect(status != 0, 0));
++ return prev;
++}
++
++extern ANDROID_ATOMIC_INLINE
++int32_t android_atomic_or(int32_t value, volatile int32_t *ptr)
++{
++ int32_t prev, status;
++ android_memory_barrier();
++ do {
++ prev = *ptr;
++ status = android_atomic_cas(prev, prev | value, ptr);
++ } while (__builtin_expect(status != 0, 0));
++ return prev;
++}
++
++#endif /* ANDROID_CUTILS_ATOMIC_RISCV_H */
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
index c0d08db17..fb6125e2a 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
@@ -38,11 +38,13 @@ SRC_URI = " \
file://core/0011-Remove-bionic-specific-calls.patch;patchdir=system/core \
file://core/0012-Fix-implicit-declaration-of-stlcat-strlcopy-function.patch;patchdir=system/core \
file://core/adb_libssl_11.diff;patchdir=system/core \
+ file://core/0013-adb-Support-riscv64.patch;patchdir=system/core \
file://extras/0001-ext4_utils-remove-selinux-extensions.patch;patchdir=system/extras \
file://extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch;patchdir=system/extras \
file://libselinux/0001-Remove-bionic-specific-calls.patch;patchdir=external/libselinux \
file://libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch;patchdir=external/libselinux \
file://android-tools-adbd.service \
+ file://build/0001-Riscv-Add-risc-v-Android-config-header.patch;patchdir=build \
file://gitignore \
file://adb.mk;subdir=${BPN} \
file://adbd.mk;subdir=${BPN} \
@@ -61,6 +63,7 @@ ARM_INSTRUCTION_SET_armv5 = "arm"
COMPATIBLE_HOST_powerpc = "(null)"
COMPATIBLE_HOST_powerpc64 = "(null)"
+COMPATIBLE_HOST_powerpc64le = "(null)"
inherit systemd
@@ -93,6 +96,9 @@ do_compile() {
aarch64)
export android_arch=linux-arm64
;;
+ riscv64)
+ export android_arch=linux-riscv64
+ ;;
mips|mipsel)
export android_arch=linux-mips
;;
diff --git a/meta-openembedded/meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13-native_2.13.bb b/meta-openembedded/meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13-native_2.13.bb
new file mode 100644
index 000000000..a54a7331d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13-native_2.13.bb
@@ -0,0 +1,67 @@
+SUMMARY = "A GNU tool that produce shell scripts to automatically configure software"
+DESCRIPTION = "Autoconf is an extensible package of M4 macros that produce shell scripts to automatically \
+configure software source code packages. Autoconf creates a configuration script for a package from a template \
+file that lists the operating system features that the package can use, in the form of M4 macro calls."
+SECTION = "devel"
+
+HOMEPAGE = "http://www.gnu.org/software/autoconf/"
+
+LICENSE = "GPLv3"
+LICENSE = "GPLv2 & GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f"
+
+SRC_URI = " \
+ ${GNU_MIRROR}/autoconf/autoconf-${PV}.tar.gz \
+ file://0001-Add-config.guess-config.sub-install-to-destdir.patch \
+"
+
+S = "${WORKDIR}/${BPN}"
+SRC_URI[md5sum] = "9de56d4a161a723228220b0f425dc711"
+SRC_URI[sha256sum] = "f0611136bee505811e9ca11ca7ac188ef5323a8e2ef19cffd3edb3cf08fd791e"
+
+inherit native texinfo
+
+DEPENDS += "m4-native gnu-config-native"
+RDEPENDS_${PN} = "m4-native gnu-config-native"
+
+PERL = "${USRBINPATH}/perl"
+
+CACHED_CONFIGUREVARS += "ac_cv_path_PERL='${PERL}'"
+
+CONFIGUREOPTS = " \
+ --build=${BUILD_SYS} \
+ --host=${HOST_SYS} \
+ --target=${TARGET_SYS} \
+ --prefix=${prefix} \
+ --exec_prefix=${exec_prefix} \
+ --bindir=${bindir} \
+ --sbindir=${sbindir} \
+ --libexecdir=${libexecdir} \
+ --datadir=${datadir} \
+ --sysconfdir=${sysconfdir} \
+ --sharedstatedir=${sharedstatedir} \
+ --localstatedir=${localstatedir} \
+ --libdir=${libdir} \
+ --includedir=${includedir} \
+ --oldincludedir=${oldincludedir} \
+ --infodir=${infodir} \
+ --mandir=${mandir} \
+ --disable-silent-rules \
+"
+
+EXTRA_OECONF += "ac_cv_path_M4=m4 ac_cv_prog_TEST_EMACS=no"
+
+do_configure() {
+ ./configure ${CONFIGUREOPTS}
+}
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+
+ # avoid conflicts with standard autotools
+ ver="213"
+ for file in `find ${D}${bindir} -type f`; do
+ mv $file $file$ver
+ done
+ mv ${D}${datadir}/autoconf ${D}${datadir}/autoconf213
+}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13/0001-Add-config.guess-config.sub-install-to-destdir.patch b/meta-openembedded/meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13/0001-Add-config.guess-config.sub-install-to-destdir.patch
new file mode 100644
index 000000000..f6e9ecb9a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13/0001-Add-config.guess-config.sub-install-to-destdir.patch
@@ -0,0 +1,67 @@
+From 3d3e23f7b14e87849405a4e109a69b76696615fc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Wed, 11 Dec 2019 23:18:19 +0100
+Subject: [PATCH] Add config.guess config.sub / install to destdir
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [Configuration]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ Makefile.in | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index a6c94d4..4b1b708 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -137,23 +137,23 @@ installcheck: all install
+ cd testsuite && ${MAKE} AUTOCONF=${bindir}/autoconf $@
+
+ installdirs:
+- $(SHELL) ${srcdir}/mkinstalldirs $(bindir) $(infodir) $(acdatadir)
++ $(SHELL) ${srcdir}/mkinstalldirs ${DESTDIR}$(bindir) ${DESTDIR}$(infodir) ${DESTDIR}$(acdatadir)
+
+ install: all $(M4FILES) acconfig.h installdirs install-info
+ for p in $(ASCRIPTS); do \
+- $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed '$(transform)'`; \
++ $(INSTALL_PROGRAM) $$p ${DESTDIR}$(bindir)/`echo $$p|sed '$(transform)'`; \
+ done
+ for i in $(M4FROZEN); do \
+- $(INSTALL_DATA) $$i $(acdatadir)/$$i; \
++ $(INSTALL_DATA) $$i ${DESTDIR}$(acdatadir)/$$i; \
+ done
+ for i in $(M4FILES) acconfig.h; do \
+- $(INSTALL_DATA) $(srcdir)/$$i $(acdatadir)/$$i; \
++ $(INSTALL_DATA) $(srcdir)/$$i ${DESTDIR}$(acdatadir)/$$i; \
+ done
+ -if test -f autoscan; then \
+- $(INSTALL_PROGRAM) autoscan $(bindir)/`echo autoscan|sed '$(transform)'`; \
++ $(INSTALL_PROGRAM) autoscan ${DESTDIR}$(bindir)/`echo autoscan|sed '$(transform)'`; \
+ for i in acfunctions acheaders acidentifiers acprograms \
+- acmakevars; do \
+- $(INSTALL_DATA) $(srcdir)/$$i $(acdatadir)/$$i; \
++ acmakevars config.guess config.sub; do \
++ $(INSTALL_DATA) $(srcdir)/$$i ${DESTDIR}$(acdatadir)/$$i; \
+ done; \
+ else :; fi
+
+@@ -161,11 +161,11 @@ install: all $(M4FILES) acconfig.h installdirs install-info
+ install-info: info installdirs
+ if test -f autoconf.info; then \
+ for i in *.info*; do \
+- $(INSTALL_DATA) $$i $(infodir)/$$i; \
++ $(INSTALL_DATA) $$i ${DESTDIR}$(infodir)/$$i; \
+ done; \
+ else \
+ for i in $(srcdir)/*.info*; do \
+- $(INSTALL_DATA) $$i $(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
++ $(INSTALL_DATA) $$i ${DESTDIR}$(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
+ done; \
+ fi
+
+--
+2.21.0
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
index ff5acbeac..daf262ed6 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
@@ -49,6 +49,8 @@ S = "${WORKDIR}/git"
CXXFLAGS += "-D_GNU_SOURCE"
COMPATIBLE_HOST_powerpc = "null"
+COMPATIBLE_HOST_riscv64 = "null"
+COMPATIBLE_HOST_riscv32 = "null"
do_install_append() {
install -d ${D}${includedir}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb_0.7.1.bb b/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb_0.7.1.bb
index 57e364e1c..9d373fc98 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb_0.7.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb_0.7.1.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "flex-native readline ncurses"
-inherit autotools
+inherit autotools texinfo
SRC_URI = "http://cgdb.me/files/${BP}.tar.gz \
file://0001-Avoid-use-of-mips-which-is-reserved-on-mips.patch \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/cjson/cjson_1.7.13.bb b/meta-openembedded/meta-oe/recipes-devtools/cjson/cjson_1.7.13.bb
new file mode 100644
index 000000000..e6174821f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/cjson/cjson_1.7.13.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Ultralightweight JSON parser in ANSI C"
+AUTHOR = "Dave Gamble"
+HOMEPAGE = "https://github.com/DaveGamble/cJSON"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=218947f77e8cb8e2fa02918dc41c50d0"
+
+SRC_URI = "git://github.com/DaveGamble/cJSON.git"
+SRCREV = "39853e5148dad8dc5d32ea2b00943cf4a0c6f120"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+EXTRA_OECMAKE += "\
+ -DENABLE_CJSON_UTILS=On \
+ -DENABLE_CUSTOM_COMPILER_FLAGS=OFF \
+ -DBUILD_SHARED_AND_STATIC_LIBS=On \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/cloc/cloc_1.84.bb b/meta-openembedded/meta-oe/recipes-devtools/cloc/cloc_1.84.bb
index f9ecd0ee4..3e46c726c 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/cloc/cloc_1.84.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/cloc/cloc_1.84.bb
@@ -9,6 +9,8 @@ SRC_URI = "https://github.com/AlDanial/cloc/releases/download/${PV}/${BP}.tar.gz
SRC_URI[md5sum] = "a52f3843825377cfa4e4b3b30a567ab4"
SRC_URI[sha256sum] = "c3f0a6bd2319110418ccb3e55a7a1b6d0edfd7528bfd2ae5d530938abe90f254"
+UPSTREAM_CHECK_URI = "https://github.com/AlDanial/${BPN}/releases"
+
do_configure[noexec] = "1"
do_compile[noexec] = "1"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb b/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb
index 19767c311..8c6cf7db2 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb
@@ -21,6 +21,7 @@ COMPATIBLE_HOST = "(i.86|x86_64|powerpc|powerpc64).*-linux*"
inherit autotools-brokensep
PLAT_powerpc64 = "ppc64"
+PLAT_powerpc64le = "ppc64"
PLAT ?= "${HOST_ARCH}"
do_configure () {
diff --git a/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20180519.bb b/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20200211.bb
index 533a00026..56462a913 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20180519.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20200211.bb
@@ -8,11 +8,13 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "http://www.etallen.com/${BPN}/${BP}.src.tar.gz \
"
-SRC_URI[md5sum] = "b3b4e44ef49575043a91def0207dcc76"
-SRC_URI[sha256sum] = "967823be36f23cbc972eb0aa882d069c1d155a5978990ac3bcf425e6a2e7ff9a"
+SRC_URI[md5sum] = "c3dda40aee78bd187929f454a3c75f35"
+SRC_URI[sha256sum] = "a570ca23ce5543fb6974abcbbde0261ea7dbfea40f4e7335b4870274315e521b"
COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
+inherit perlnative
+
# The install rule from the Makefile has hardcoded paths, so we duplicate
# the actions to accommodate different paths.
do_install () {
diff --git a/meta-openembedded/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb b/meta-openembedded/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb
index a8367b5d9..406494ebb 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb
@@ -4,8 +4,8 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://github.com/ubinux/dnf-plugin-tui.git;branch=master "
-SRCREV = "31d6866d5eda02be9a6bfb1fca9e9095b12eecd1"
-PV = "1.0"
+SRCREV = "c5416adeb210154dc4ccc4c3e1c5297d83ebd41e"
+PV = "1.1"
SRC_URI_append_class-target = "file://oe-remote.repo.sample"
@@ -37,3 +37,4 @@ RDEPENDS_${PN} += " \
"
BBCLASSEXTEND = "nativesdk"
+PNBLACKLIST[dnf-plugin-tui] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build correctly without package_rpm in PACKAGE_CLASSES', d)}"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch
new file mode 100644
index 000000000..a9650c232
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch
@@ -0,0 +1,433 @@
+It fails to compile doxygen-native when /usr/bin/python is a link to python3 on
+build host:
+
+| Failed to import the site module
+| Traceback (most recent call last):
+| File "/usr/lib64/python3.6/site.py", line 564, in <module>
+| main()
+| File "/usr/lib64/python3.6/site.py", line 550, in main
+| known_paths = addusersitepackages(known_paths)
+| File "/usr/lib64/python3.6/site.py", line 282, in addusersitepackages
+| user_site = getusersitepackages()
+| File "/usr/lib64/python3.6/site.py", line 258, in getusersitepackages
+| user_base = getuserbase() # this will also set USER_BASE
+| File "/usr/lib64/python3.6/site.py", line 248, in getuserbase
+| USER_BASE = get_config_var('userbase')
+| File "/usr/lib64/python3.6/sysconfig.py", line 604, in get_config_var
+| return get_config_vars().get(name)
+| File "/usr/lib64/python3.6/sysconfig.py", line 553, in get_config_vars
+| _init_posix(_CONFIG_VARS)
+| File "/usr/lib64/python3.6/sysconfig.py", line 424, in _init_posix
+| _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0)
+| ModuleNotFoundError: No module named '_sysconfigdata'
+
+Replace find_package PythonInterp with Python3 to fix this issue that
+it uses python3 from python3-native. And it also replaces the result
+variable PYTHON_EXECUTABLE with Python3_EXECUTABLE.
+
+This patch is only needded by doxygen-native.
+
+Upstream-Status: Inappropriate[oe specific]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 969ae58..604400f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -93,7 +93,7 @@ else ()
+ endif ()
+
+ find_program(DOT NAMES dot)
+-find_package(PythonInterp REQUIRED)
++find_package(Python3 REQUIRED)
+ find_package(FLEX REQUIRED)
+ find_package(BISON REQUIRED)
+ if (BISON_VERSION VERSION_LESS 2.7)
+diff --git a/addon/doxywizard/CMakeLists.txt b/addon/doxywizard/CMakeLists.txt
+index 6aacd8b..fa197e9 100644
+--- a/addon/doxywizard/CMakeLists.txt
++++ b/addon/doxywizard/CMakeLists.txt
+@@ -58,7 +58,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/settings.h PROPERTIES GENERA
+
+ # generate version.cpp
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/version.py ${VERSION} > ${GENERATED_SRC_WIZARD}/version.cpp
++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/version.py ${VERSION} > ${GENERATED_SRC_WIZARD}/version.cpp
+ DEPENDS ${CMAKE_SOURCE_DIR}/VERSION ${CMAKE_SOURCE_DIR}/src/version.py
+ OUTPUT ${GENERATED_SRC_WIZARD}/version.cpp
+ )
+@@ -66,7 +66,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/version.cpp PROPERTIES GENER
+
+ # generate configdoc.cpp
+ add_custom_command(
+-COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -wiz ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC_WIZARD}/configdoc.cpp
++COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -wiz ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC_WIZARD}/configdoc.cpp
+ OUTPUT ${GENERATED_SRC_WIZARD}/configdoc.cpp
+ )
+ set_source_files_properties(${GENERATED_SRC_WIZARD}/configdoc.cpp PROPERTIES GENERATED 1)
+@@ -74,7 +74,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/configdoc.cpp PROPERTIES GEN
+ set(LEX_FILES config_doxyw)
+ foreach(lex_file ${LEX_FILES})
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/scan_states.py ${CMAKE_SOURCE_DIR}/addon/doxywizard/${lex_file}.l > ${GENERATED_SRC_WIZARD}/${lex_file}.l.h
++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/scan_states.py ${CMAKE_SOURCE_DIR}/addon/doxywizard/${lex_file}.l > ${GENERATED_SRC_WIZARD}/${lex_file}.l.h
+ DEPENDS ${CMAKE_SOURCE_DIR}/src/scan_states.py ${CMAKE_SOURCE_DIR}/addon/doxywizard/${lex_file}.l
+ OUTPUT ${GENERATED_SRC_WIZARD}/${lex_file}.l.h
+ )
+diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
+index 032c16a..332f1b2 100644
+--- a/doc/CMakeLists.txt
++++ b/doc/CMakeLists.txt
+@@ -132,7 +132,7 @@ configure_file(${CMAKE_SOURCE_DIR}/doc/doxyindexer.1 ${PROJECT_BINARY_DIR}/
+
+ # doc/language.doc (see tag Doxyfile:INPUT)
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} translator.py ${CMAKE_SOURCE_DIR}
++ COMMAND ${Python3_EXECUTABLE} translator.py ${CMAKE_SOURCE_DIR}
+ DEPENDS ${PROJECT_BINARY_DIR}/doc/maintainers.txt ${PROJECT_BINARY_DIR}/doc/language.tpl ${PROJECT_BINARY_DIR}/doc/translator.py
+ OUTPUT language.doc
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc
+@@ -141,7 +141,7 @@ set_source_files_properties(language.doc PROPERTIES GENERATED 1)
+
+ # doc/config.doc (see tag Doxyfile:INPUT)
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/src/configgen.py -doc ${TOP}/src/config.xml > config.doc
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/src/configgen.py -doc ${TOP}/src/config.xml > config.doc
+ DEPENDS ${TOP}/src/config.xml ${TOP}/src/configgen.py
+ OUTPUT config.doc
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc/
+@@ -192,7 +192,7 @@ add_custom_target(docs_chm
+ COMMAND ${CMAKE_COMMAND} -E echo " for file in files:" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py
+ COMMAND ${CMAKE_COMMAND} -E echo " if file.endswith('.html') or file.endswith('.png') or file.endswith('.css') or file.endswith('.gif'):" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py
+ COMMAND ${CMAKE_COMMAND} -E echo " print(os.path.join(root, file))" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py
+- COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/chm ${PYTHON_EXECUTABLE} ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual.hhp
++ COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/chm ${Python3_EXECUTABLE} ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual.hhp
+ COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/chm "${HTML_HELP_COMPILER}" doxygen_manual.hhp || echo > nul
+ COMMAND ${CMAKE_COMMAND} -E rename ${PROJECT_BINARY_DIR}/chm/index.chm ${PROJECT_BINARY_DIR}/chm/doxygen_manual.chm
+ DEPENDS ${PROJECT_BINARY_DIR}/doc/language.doc ${PROJECT_BINARY_DIR}/doc/config.doc
+diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
+index 967f3d4..a8d1aad 100644
+--- a/examples/CMakeLists.txt
++++ b/examples/CMakeLists.txt
+@@ -52,196 +52,196 @@ add_custom_target(examples
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen class.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/class/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/class/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/class/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/class/latex/refman_doc.tex
+ DEPENDS doxygen class.h class.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/class/html/index.html ${PROJECT_BINARY_DIR}/html/examples/class/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen define.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/define/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/define/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/define/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/define/latex/refman_doc.tex
+ DEPENDS doxygen define.h define.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/define/html/index.html ${PROJECT_BINARY_DIR}/html/examples/define/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen enum.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/enum/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/enum/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/enum/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/enum/latex/refman_doc.tex
+ DEPENDS doxygen enum.h enum.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/enum/html/index.html ${PROJECT_BINARY_DIR}/html/examples/enum/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen file.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/file/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/file/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/file/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/file/latex/refman_doc.tex
+ DEPENDS doxygen file.h file.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/file/html/index.html ${PROJECT_BINARY_DIR}/html/examples/file/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen func.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/func/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/func/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/func/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/func/latex/refman_doc.tex
+ DEPENDS doxygen func.h func.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/func/html/index.html ${PROJECT_BINARY_DIR}/html/examples/func/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen javadoc-banner.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/latex/refman_doc.tex
+ DEPENDS doxygen javadoc-banner.h javadoc-banner.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/html/index.html ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen page.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/page/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/page/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/page/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/page/latex/refman_doc.tex
+ DEPENDS doxygen page.doc page.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/page/html/index.html ${PROJECT_BINARY_DIR}/html/examples/page/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen relates.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/relates/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/relates/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/relates/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/relates/latex/refman_doc.tex
+ DEPENDS doxygen relates.cpp relates.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/relates/html/index.html ${PROJECT_BINARY_DIR}/html/examples/relates/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen author.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/author/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/author/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/author/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/author/latex/refman_doc.tex
+ DEPENDS doxygen author.cpp author.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/author/html/index.html ${PROJECT_BINARY_DIR}/html/examples/author/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen par.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/par/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/par/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/par/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/par/latex/refman_doc.tex
+ DEPENDS doxygen par.cpp par.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/par/html/index.html ${PROJECT_BINARY_DIR}/html/examples/par/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen overload.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/overload/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/overload/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/overload/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/overload/latex/refman_doc.tex
+ DEPENDS doxygen overload.cpp overload.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/overload/html/index.html ${PROJECT_BINARY_DIR}/html/examples/overload/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen example.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/example/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/example/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/example/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/example/latex/refman_doc.tex
+ DEPENDS doxygen example.cpp example_test.cpp example.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/example/html/index.html ${PROJECT_BINARY_DIR}/html/examples/example/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen include.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/include/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/include/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/include/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/include/latex/refman_doc.tex
+ DEPENDS doxygen include.cpp include_test.cpp include.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/include/html/index.html ${PROJECT_BINARY_DIR}/html/examples/include/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen qtstyle.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/qtstyle/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/qtstyle/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/qtstyle/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/qtstyle/latex/refman_doc.tex
+ DEPENDS doxygen qtstyle.cpp qtstyle.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/qtstyle/html/index.html ${PROJECT_BINARY_DIR}/html/examples/qtstyle/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen jdstyle.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/jdstyle/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/jdstyle/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/jdstyle/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/jdstyle/latex/refman_doc.tex
+ DEPENDS doxygen jdstyle.cpp jdstyle.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/jdstyle/html/index.html ${PROJECT_BINARY_DIR}/html/examples/jdstyle/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen structcmd.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/structcmd/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/structcmd/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/structcmd/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/structcmd/latex/refman_doc.tex
+ DEPENDS doxygen structcmd.h structcmd.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/structcmd/html/index.html ${PROJECT_BINARY_DIR}/html/examples/structcmd/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen autolink.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/autolink/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/autolink/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/autolink/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/autolink/latex/refman_doc.tex
+ DEPENDS doxygen autolink.cpp autolink.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/autolink/html/index.html ${PROJECT_BINARY_DIR}/html/examples/autolink/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen tag.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/tag/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/tag/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/tag/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/tag/latex/refman_doc.tex
+ DEPENDS doxygen tag.cpp tag.cfg ${PROJECT_BINARY_DIR}/html/examples/example/html/index.html ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/tag/html/index.html ${PROJECT_BINARY_DIR}/html/examples/tag/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen restypedef.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/restypedef/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/restypedef/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/restypedef/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/restypedef/latex/refman_doc.tex
+ DEPENDS doxygen restypedef.cpp restypedef.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/restypedef/html/index.html ${PROJECT_BINARY_DIR}/html/examples/restypedef/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen afterdoc.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/afterdoc/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/afterdoc/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/afterdoc/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/afterdoc/latex/refman_doc.tex
+ DEPENDS doxygen afterdoc.h afterdoc.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/afterdoc/html/index.html ${PROJECT_BINARY_DIR}/html/examples/afterdoc/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen templ.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/template/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/template/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/template/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/template/latex/refman_doc.tex
+ DEPENDS doxygen templ.cpp templ.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/template/html/index.html ${PROJECT_BINARY_DIR}/html/examples/template/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen group.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/group/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/group/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/group/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/group/latex/refman_doc.tex
+ DEPENDS doxygen group.cpp group.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/group/html/index.html ${PROJECT_BINARY_DIR}/html/examples/group/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen memgrp.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/memgrp/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/memgrp/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/memgrp/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/memgrp/latex/refman_doc.tex
+ DEPENDS doxygen memgrp.cpp memgrp.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/memgrp/html/index.html ${PROJECT_BINARY_DIR}/html/examples/memgrp/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen pyexample.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/pyexample/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/pyexample/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/pyexample/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/pyexample/latex/refman_doc.tex
+ DEPENDS doxygen pyexample.py pyexample.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/pyexample/html/index.html ${PROJECT_BINARY_DIR}/html/examples/pyexample/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen tclexample.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/tclexample/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/tclexample/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/tclexample/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/tclexample/latex/refman_doc.tex
+ DEPENDS doxygen tclexample.tcl tclexample.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/tclexample/html/index.html ${PROJECT_BINARY_DIR}/html/examples/tclexample/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen mux.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/mux/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/mux/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/mux/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/mux/latex/refman_doc.tex
+ DEPENDS doxygen mux.vhdl mux.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/mux/html/index.html ${PROJECT_BINARY_DIR}/html/examples/mux/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen manual.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/manual/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/manual/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/manual/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/manual/latex/refman_doc.tex
+ DEPENDS doxygen manual.c manual.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/manual/html/index.html ${PROJECT_BINARY_DIR}/html/examples/manual/latex/refman_doc.tex
+ )
+
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen docstring.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/docstring/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/docstring/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/docstring/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/docstring/latex/refman_doc.tex
+ DEPENDS doxygen docstring.py docstring.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/docstring/html/index.html ${PROJECT_BINARY_DIR}/html/examples/docstring/latex/refman_doc.tex
+ )
+@@ -249,7 +249,7 @@ add_custom_command(
+ if (DOT)
+ add_custom_command(
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen diagrams.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/diagrams/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/diagrams/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/diagrams/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/diagrams/latex/refman_doc.tex
+ DEPENDS doxygen diagrams_a.h diagrams_b.h diagrams_c.h diagrams_d.h diagrams_e.h diagrams.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/diagrams/html/index.html ${PROJECT_BINARY_DIR}/html/examples/diagrams/latex/refman_doc.tex
+ )
+diff --git a/libmscgen/CMakeLists.txt b/libmscgen/CMakeLists.txt
+index 079fcfc..e6d86f6 100644
+--- a/libmscgen/CMakeLists.txt
++++ b/libmscgen/CMakeLists.txt
+@@ -7,7 +7,7 @@ include_directories(
+ set(LEX_FILES mscgen_lexer)
+ foreach(lex_file ${LEX_FILES})
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/scan_states.py ${CMAKE_SOURCE_DIR}/libmscgen/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h
++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/scan_states.py ${CMAKE_SOURCE_DIR}/libmscgen/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h
+ DEPENDS ${CMAKE_SOURCE_DIR}/src/scan_states.py ${CMAKE_SOURCE_DIR}/libmscgen/${lex_file}.l
+ OUTPUT ${GENERATED_SRC}/${lex_file}.l.h
+ )
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 23460d0..58f679a 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -35,7 +35,7 @@ set_source_files_properties(${GENERATED_SRC}/settings.h PROPERTIES GENERATED 1)
+
+ # configvalues.h
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maph ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.h
++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maph ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.h
+ DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
+ OUTPUT ${GENERATED_SRC}/configvalues.h
+ )
+@@ -47,7 +47,7 @@ add_custom_target(
+
+ # configvalues.cpp
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maps ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.cpp
++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maps ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.cpp
+ DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
+ OUTPUT ${GENERATED_SRC}/configvalues.cpp
+ )
+@@ -55,7 +55,7 @@ set_source_files_properties(${GENERATED_SRC}/configvalues.cpp PROPERTIES GENERAT
+
+ # configoptions.cpp
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -cpp ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configoptions.cpp
++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -cpp ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configoptions.cpp
+ DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
+ OUTPUT ${GENERATED_SRC}/configoptions.cpp
+ )
+@@ -86,7 +86,7 @@ file(GLOB RESOURCES ${CMAKE_SOURCE_DIR}/templates/*/*)
+ # resources.cpp
+ add_custom_command(
+ COMMENT "Generating ${GENERATED_SRC}/resources.cpp"
+- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/res2cc_cmd.py ${CMAKE_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp
++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/res2cc_cmd.py ${CMAKE_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp
+ DEPENDS ${RESOURCES}
+ OUTPUT ${GENERATED_SRC}/resources.cpp
+ )
+@@ -94,7 +94,7 @@ set_source_files_properties(${GENERATED_SRC}/resources.cpp PROPERTIES GENERATED
+
+ # layout_default.xml
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/to_c_cmd.py < ${CMAKE_SOURCE_DIR}/src/layout_default.xml > ${GENERATED_SRC}/layout_default.xml.h
++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/to_c_cmd.py < ${CMAKE_SOURCE_DIR}/src/layout_default.xml > ${GENERATED_SRC}/layout_default.xml.h
+ DEPENDS ${CMAKE_SOURCE_DIR}/src/layout_default.xml
+ OUTPUT ${GENERATED_SRC}/layout_default.xml.h
+ )
+@@ -124,7 +124,7 @@ foreach(lex_file ${LEX_FILES})
+ set(LEX_FILES_H ${LEX_FILES_H} " " ${GENERATED_SRC}/${lex_file}.l.h CACHE INTERNAL "Stores generated files")
+ set(LEX_FILES_CPP ${LEX_FILES_CPP} " " ${GENERATED_SRC}/${lex_file}.cpp CACHE INTERNAL "Stores generated files")
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/scan_states.py ${CMAKE_SOURCE_DIR}/src/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h
++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/scan_states.py ${CMAKE_SOURCE_DIR}/src/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h
+ DEPENDS ${CMAKE_SOURCE_DIR}/src/scan_states.py ${CMAKE_SOURCE_DIR}/src/${lex_file}.l
+ OUTPUT ${GENERATED_SRC}/${lex_file}.l.h
+ )
+diff --git a/testing/CMakeLists.txt b/testing/CMakeLists.txt
+index 40cb40b..a301acd 100644
+--- a/testing/CMakeLists.txt
++++ b/testing/CMakeLists.txt
+@@ -1,9 +1,9 @@
+ add_custom_target(tests
+ COMMENT "Running doxygen tests..."
+- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --doxygen ${PROJECT_BINARY_DIR}/bin/doxygen --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --doxygen ${PROJECT_BINARY_DIR}/bin/doxygen --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
+ DEPENDS doxygen
+ )
+ add_test(NAME suite
+- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --doxygen $<TARGET_FILE:doxygen> --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --doxygen $<TARGET_FILE:doxygen> --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
+ )
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.17.bb b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.17.bb
index 7a4eee32c..45de71826 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.17.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.17.bb
@@ -9,6 +9,7 @@ DEPENDS = "flex-native bison-native"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.src.tar.gz \
file://0001-build-don-t-look-for-Iconv.patch \
"
+SRC_URI_append_class-native = " file://doxygen-native-only-check-python3.patch"
SRC_URI[md5sum] = "7997a15c73a8bd6d003eaba5c2ee2b47"
SRC_URI[sha256sum] = "2cba988af2d495541cbbe5541b3bee0ee11144dcb23a81eada19f5501fd8b599"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers/0001-Add-detection-of-strtoull_l-function.patch b/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers/0001-Add-detection-of-strtoull_l-function.patch
deleted file mode 100644
index f3e82101b..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers/0001-Add-detection-of-strtoull_l-function.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From bff7ffbc5130cd46caf33b76b4bb0593fcd15066 Mon Sep 17 00:00:00 2001
-From: Vladimir Glavnyy <31897320+vglavnyy@users.noreply.github.com>
-Date: Fri, 10 May 2019 00:15:29 +0700
-Subject: [PATCH] Add detection of strtoull_l function (#5333) (#5337)
-
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-[Retrieved from:
-https://github.com/google/flatbuffers/commit/bff7ffbc5130cd46caf33b76b4bb0593fcd15066]
----
- CMakeLists.txt | 12 +++++++++---
- 1 file changed, 9 insertions(+), 3 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 0640c37b5..30be238fe 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -42,12 +42,18 @@ if(DEFINED FLATBUFFERS_MAX_PARSING_DEPTH)
- message(STATUS "FLATBUFFERS_MAX_PARSING_DEPTH: ${FLATBUFFERS_MAX_PARSING_DEPTH}")
- endif()
-
--# Auto-detect locale-narrow 'strtod_l' function.
-+# Auto-detect locale-narrow 'strtod_l' and 'strtoull_l' functions.
- if(NOT DEFINED FLATBUFFERS_LOCALE_INDEPENDENT)
-+ set(FLATBUFFERS_LOCALE_INDEPENDENT 0)
- if(MSVC)
-- check_cxx_symbol_exists(_strtof_l stdlib.h FLATBUFFERS_LOCALE_INDEPENDENT)
-+ check_cxx_symbol_exists(_strtof_l stdlib.h FLATBUFFERS_HAS_STRTOF_L)
-+ check_cxx_symbol_exists(_strtoui64_l stdlib.h FLATBUFFERS_HAS_STRTOULL_L)
- else()
-- check_cxx_symbol_exists(strtof_l stdlib.h FLATBUFFERS_LOCALE_INDEPENDENT)
-+ check_cxx_symbol_exists(strtof_l stdlib.h FLATBUFFERS_HAS_STRTOF_L)
-+ check_cxx_symbol_exists(strtoull_l stdlib.h FLATBUFFERS_HAS_STRTOULL_L)
-+ endif()
-+ if(FLATBUFFERS_HAS_STRTOF_L AND FLATBUFFERS_HAS_STRTOULL_L)
-+ set(FLATBUFFERS_LOCALE_INDEPENDENT 1)
- endif()
- endif()
- add_definitions(-DFLATBUFFERS_LOCALE_INDEPENDENT=$<BOOL:${FLATBUFFERS_LOCALE_INDEPENDENT}>)
diff --git a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb b/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.12.0.bb
index 529441de1..c31cef63c 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.12.0.bb
@@ -8,13 +8,11 @@ PACKAGE_BEFORE_PN = "${PN}-compiler"
RDEPENDS_${PN}-compiler = "${PN}"
RDEPENDS_${PN}-dev += "${PN}-compiler"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a873c5645c184d51e0f9b34e1d7cf559"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
-SRCREV = "9e7e8cbe9f675123dd41b7c62868acad39188cae"
+SRCREV = "6df40a2471737b27271bdd9b900ab5f3aec746c7"
-SRC_URI = "git://github.com/google/flatbuffers.git \
- file://0001-Add-detection-of-strtoull_l-function.patch \
- "
+SRC_URI = "git://github.com/google/flatbuffers.git"
# Make sure C++11 is used, required for example for GCC 4.9
CXXFLAGS += "-std=c++11 -fPIC"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb b/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb
index 17e16bf56..8282091b3 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=bd7b2c994af21d318bd2cd3b3f80c2d5"
DEPENDS = "gtk+3 libxml-parser-perl-native python3-docutils-native intltool-native"
-inherit features_check autotools pkgconfig perlnative gettext
+inherit features_check autotools pkgconfig perlnative gettext mime-xdg
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.22.1.bb b/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.22.2.bb
index cdd7057b3..3d539b232 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.22.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.22.2.bb
@@ -9,15 +9,15 @@ DEPENDS = "gtk+ gtk+3 glib-2.0 libxml2 intltool-native \
"
-inherit features_check autotools pkgconfig gnomebase gobject-introspection
+inherit features_check autotools pkgconfig gnomebase gobject-introspection mime-xdg
REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/glade/3.22/glade-${PV}.tar.xz \
file://remove-yelp-help-rules-var.patch \
"
-SRC_URI[md5sum] = "226802cf3b06861240524805aa6fe6ff"
-SRC_URI[sha256sum] = "dff89a2ef2eaf000ff2a46979978d03cb9202cb04668e01d0ea5c5bb5547e39a"
+SRC_URI[md5sum] = "c074fa378c8f1ad80d20133c4ae6f42d"
+SRC_URI[sha256sum] = "edefa6eb24b4d15bd52589121dc109bc08c286157c41288deb74dd9cc3f26a21"
EXTRA_OECONF += "--disable-man-pages"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch
new file mode 100644
index 000000000..6cad53396
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch
@@ -0,0 +1,45 @@
+From 6d606f1101c1a172fb6d738d6f1865aa61849e68 Mon Sep 17 00:00:00 2001
+From: Alexey Firago <alexey_firago@mentor.com>
+Date: Fri, 20 Oct 2017 00:04:19 +0300
+Subject: [PATCH] CMakeLists.txt: Fix grpc_cpp_plugin path during cross-compiling or native build
+
+Signed-off-by: Alexey Firago <alexey_firago@mentor.com>
+Signed-off-by: Hiram Lew <lew@avast.com>
+Signed-off-by: Jan Kaisrlik <jan.kaisrlik@avast.com>
+---
+ CMakeLists.txt | 9 ++++++++-
+ templates/CMakeLists.txt.template | 9 ++++++++-
+ 2 files changed, 16 insertions(+), 2 deletions(-)
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -193,6 +193,13 @@ function(protobuf_generate_grpc_cpp)
+ return()
+ endif()
+
++ #if cross-compiling or nativesdk, find host plugin
++ if(CMAKE_CROSSCOMPILING)
++ find_program(gRPC_CPP_PLUGIN grpc_cpp_plugin)
++ else()
++ set(gRPC_CPP_PLUGIN $<TARGET_FILE:grpc_cpp_plugin>)
++ endif()
++
+ set(_protobuf_include_path -I . -I ${_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR})
+ foreach(FIL ${ARGN})
+ get_filename_component(ABS_FIL ${FIL} ABSOLUTE)
+--- a/templates/CMakeLists.txt.template
++++ b/templates/CMakeLists.txt.template
+@@ -233,6 +233,13 @@
+ return()
+ endif()
+
++ #if cross-compiling or nativesdk, find host plugin
++ if(CMAKE_CROSSCOMPILING)
++ find_program(gRPC_CPP_PLUGIN grpc_cpp_plugin)
++ else()
++ set(gRPC_CPP_PLUGIN $<TARGET_FILE:grpc_cpp_plugin>)
++ endif()
++
+ set(_protobuf_include_path -I . -I <%text>${_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR}</%text>)
+ foreach(FIL <%text>${ARGN}</%text>)
+ get_filename_component(ABS_FIL <%text>${FIL}</%text> ABSOLUTE)
diff --git a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
new file mode 100644
index 000000000..e517355d3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
@@ -0,0 +1,177 @@
+From 2279e30be5796e9b185545543ea54fe68633cbdd Mon Sep 17 00:00:00 2001
+From: Alexey Firago <alexey_firago@mentor.com>
+Date: Mon, 30 Oct 2017 23:24:49 +0300
+Subject: [PATCH] CMakeLists.txt: Fix libraries installation for Linux
+
+* Set libs versions as in Makefile
+
+Signed-off-by: Alexey Firago <alexey_firago@mentor.com>
+
+---
+ CMakeLists.txt | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 59 insertions(+)
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -30,6 +30,15 @@ set(PACKAGE_TARNAME "${PACKAGE_NAME}-$
+ set(PACKAGE_BUGREPORT "https://github.com/grpc/grpc/issues/")
+ project(${PACKAGE_NAME} C CXX)
+
++set (CORE_VERSION_MAJOR "6")
++set (CORE_VERSION "6.0.0")
++
++set (CPP_VERSION_MAJOR "1")
++set (CPP_VERSION "${PACKAGE_VERSION}")
++
++set (CSHARP_VERSION_MAJOR "1")
++set (CSHARP_VERSION "${PACKAGE_VERSION}")
++
+ set(gRPC_INSTALL_BINDIR "bin" CACHE STRING "Installation directory for executables")
+ set(gRPC_INSTALL_LIBDIR "lib" CACHE STRING "Installation directory for libraries")
+ set(gRPC_INSTALL_INCLUDEDIR "include" CACHE STRING "Installation directory for headers")
+@@ -777,6 +786,10 @@ if(WIN32 AND MSVC)
+ endif()
+ endif()
+
++if(_gRPC_PLATFORM_LINUX)
++ set_property(TARGET address_sorting PROPERTY VERSION ${CORE_VERSION})
++ set_property(TARGET address_sorting PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
++endif()
+
+ target_include_directories(address_sorting
+ PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -903,6 +916,10 @@ if(WIN32 AND MSVC)
+ endif()
+ endif()
+
++if(_gRPC_PLATFORM_LINUX)
++ set_property(TARGET gpr PROPERTY VERSION ${CORE_VERSION})
++ set_property(TARGET gpr PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
++endif()
+
+ target_include_directories(gpr
+ PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -1367,6 +1384,10 @@ if(WIN32 AND MSVC)
+ endif()
+ endif()
+
++if(_gRPC_PLATFORM_LINUX)
++ set_property(TARGET grpc PROPERTY VERSION ${CORE_VERSION})
++ set_property(TARGET grpc PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
++endif()
+
+ target_include_directories(grpc
+ PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -1782,6 +1803,10 @@ if(WIN32 AND MSVC)
+ endif()
+ endif()
+
++if(_gRPC_PLATFORM_LINUX)
++ set_property(TARGET grpc_cronet PROPERTY VERSION ${CORE_VERSION})
++ set_property(TARGET grpc_cronet PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
++endif()
+
+ target_include_directories(grpc_cronet
+ PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -2869,6 +2894,10 @@ if(WIN32 AND MSVC)
+ endif()
+ endif()
+
++if(_gRPC_PLATFORM_LINUX)
++ set_property(TARGET grpc_unsecure PROPERTY VERSION ${CORE_VERSION})
++ set_property(TARGET grpc_unsecure PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
++endif()
+
+ target_include_directories(grpc_unsecure
+ PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -3206,6 +3235,10 @@ if(WIN32 AND MSVC)
+ endif()
+ endif()
+
++if(_gRPC_PLATFORM_LINUX)
++ set_property(TARGET grpc++ PROPERTY VERSION ${CPP_VERSION})
++ set_property(TARGET grpc++ PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
++endif()
+
+ target_include_directories(grpc++
+ PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -3589,6 +3622,11 @@ protobuf_generate_grpc_cpp(
+ src/proto/grpc/status/status.proto
+ )
+
++if(_gRPC_PLATFORM_LINUX)
++ set_property(TARGET grpc++_error_details PROPERTY VERSION ${CPP_VERSION})
++ set_property(TARGET grpc++_error_details PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
++endif()
++
+ target_include_directories(grpc++_error_details
+ PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+@@ -3727,6 +3765,11 @@ protobuf_generate_grpc_cpp(
+ src/proto/grpc/reflection/v1alpha/reflection.proto
+ )
+
++if(_gRPC_PLATFORM_LINUX)
++ set_property(TARGET grpc++_reflection PROPERTY VERSION ${CPP_VERSION})
++ set_property(TARGET grpc++_reflection PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
++endif()
++
+ target_include_directories(grpc++_reflection
+ PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+@@ -3816,6 +3859,10 @@ target_link_libraries(grpc++_test_config
+ ${_gRPC_GFLAGS_LIBRARIES}
+ )
+
++if(_gRPC_PLATFORM_LINUX)
++ set_property(TARGET grpc++_cronet PROPERTY VERSION ${CPP_VERSION})
++ set_property(TARGET grpc++_cronet PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
++endif()
+
+ endif (gRPC_BUILD_TESTS)
+ if (gRPC_BUILD_TESTS)
+@@ -4307,6 +4354,10 @@ if(WIN32 AND MSVC)
+ endif()
+ endif()
+
++if(_gRPC_PLATFORM_LINUX)
++ set_property(TARGET grpc++_unsecure PROPERTY VERSION ${CPP_VERSION})
++ set_property(TARGET grpc++_unsecure PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
++endif()
+
+ target_include_directories(grpc++_unsecure
+ PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -4745,6 +4796,10 @@ if(WIN32 AND MSVC)
+ endif()
+ endif()
+
++if(_gRPC_PLATFORM_LINUX)
++ set_property(TARGET grpc_plugin_support PROPERTY VERSION ${CORE_VERSION})
++ set_property(TARGET grpc_plugin_support PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
++endif()
+
+ target_include_directories(grpc_plugin_support
+ PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -4813,6 +4868,11 @@ protobuf_generate_grpc_cpp(
+ src/proto/grpc/channelz/channelz.proto
+ )
+
++if(_gRPC_PLATFORM_LINUX)
++ set_property(TARGET grpcpp_channelz PROPERTY VERSION ${CPP_VERSION})
++ set_property(TARGET grpcpp_channelz PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
++endif()
++
+ target_include_directories(grpcpp_channelz
+ PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+@@ -5367,6 +5427,10 @@ if(WIN32 AND MSVC)
+ endif()
+ endif()
+
++if(_gRPC_PLATFORM_LINUX)
++ set_property(TARGET grpc_csharp_ext PROPERTY VERSION ${CSHARP_VERSION})
++ set_property(TARGET grpc_csharp_ext PROPERTY SOVERSION ${CSHARP_VERSION_MAJOR})
++endif()
+
+ target_include_directories(grpc_csharp_ext
+ PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
diff --git a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.24.3.bb b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.24.3.bb
new file mode 100644
index 000000000..752562eb3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.24.3.bb
@@ -0,0 +1,67 @@
+DESCRIPTION = "A high performance, open source, general-purpose RPC framework. \
+Provides gRPC libraries for multiple languages written on top of shared C core library \
+(C++, Node.js, Python, Ruby, Objective-C, PHP, C#)"
+HOMEPAGE = "https://github.com/grpc/grpc"
+SECTION = "libs"
+LICENSE = "Apache-2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+DEPENDS = "gflags c-ares protobuf protobuf-native protobuf-c protobuf-c-native openssl libnsl2"
+DEPENDS_append_class-target = " googletest grpc-native "
+DEPENDS_append_class-nativesdk = " grpc-native "
+
+S = "${WORKDIR}/git"
+SRCREV_grpc = "2de2e8dd8921e1f7d043e01faf7fe8a291fbb072"
+SRCREV_upb = "9effcbcb27f0a665f9f345030188c0b291e32482"
+BRANCH = "v1.24.x"
+SRC_URI = "git://github.com/grpc/grpc.git;protocol=https;name=grpc;branch=${BRANCH} \
+ git://github.com/protocolbuffers/upb;name=upb;destsuffix=git/third_party/upb \
+ file://0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch \
+ "
+SRC_URI_append_class-target = " file://0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch \
+ "
+SRC_URI_append_class-nativesdk = " file://0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch"
+
+# Fixes build with older compilers 4.8 especially on ubuntu 14.04
+CXXFLAGS_append_class-native = " -Wl,--no-as-needed"
+
+inherit cmake pkgconfig
+
+EXTRA_OECMAKE = " \
+ -DgRPC_CARES_PROVIDER=package \
+ -DgRPC_ZLIB_PROVIDER=package \
+ -DgRPC_SSL_PROVIDER=package \
+ -DgRPC_PROTOBUF_PROVIDER=package \
+ -DgRPC_GFLAGS_PROVIDER=package \
+ -DgRPC_INSTALL=ON \
+ -DCMAKE_CROSSCOMPILING=ON \
+ -DBUILD_SHARED_LIBS=ON \
+ -DgRPC_INSTALL_LIBDIR=${baselib} \
+ -DgRPC_INSTALL_CMAKEDIR=${baselib}/cmake/${BPN} \
+ "
+
+do_configure_prepend_mipsarch() {
+ sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" ${S}/CMakeLists.txt
+}
+
+do_configure_prepend_powerpc() {
+ sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" ${S}/CMakeLists.txt
+}
+
+do_configure_prepend_riscv64() {
+ sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" ${S}/CMakeLists.txt
+}
+
+do_configure_prepend_riscv32() {
+ sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" ${S}/CMakeLists.txt
+}
+
+do_configure_prepend_toolchain-clang_x86() {
+ sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" ${S}/CMakeLists.txt
+}
+
+BBCLASSEXTEND = "native nativesdk"
+
+SYSROOT_DIRS_BLACKLIST_append_class-target = "${baselib}/cmake/grpc"
+
+FILES_${PN}-dev += "${bindir}"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.6.bb b/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.6.bb
index 0057db661..f05900216 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.6.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.6.bb
@@ -16,7 +16,7 @@ SRCREV = "fef25c41efb9bde0614ea477d0b90bd9565ae0b4"
S = "${WORKDIR}/git"
R = "${RECIPE_SYSROOT}"
-inherit distutils
+inherit ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "distutils", "", d)}
GUIDER_OBJ = "guider.pyc"
GUIDER_SCRIPT = "guider"
@@ -33,3 +33,7 @@ do_install() {
RDEPENDS_${PN} = "python-ctypes python-shell \
python-json python-subprocess"
+python() {
+ if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('Requires meta-python2 to be present.')
+}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.6.bb b/meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.6.bb
index 0086eae5c..bfaeed5fe 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.6.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.6.bb
@@ -8,8 +8,10 @@ SECTION = "utils"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=15d03e360fa7399f76d5a4359fc72cbf"
-SRC_URI = "https://github.com/stedolan/${BPN}/releases/download/${BP}/${BP}.tar.gz \
-"
+SRC_URI = "https://github.com/stedolan/${BPN}/releases/download/${BP}/${BP}.tar.gz"
+
+UPSTREAM_CHECK_URI = "https://github.com/stedolan/${BPN}/releases"
+UPSTREAM_CHECK_REGEX = "jq\-(?P<pver>(\d+\.\d+))(?!_\d+).tar.gz"
SRC_URI[md5sum] = "e68fbd6a992e36f1ac48c99bbf825d6b"
SRC_URI[sha256sum] = "5de8c8e29aaa3fb9cc6b47bb27299f271354ebb72514e3accadc7d38b5bbaa72"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.2.0.bb b/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.3.0.bb
index dbf44d796..ca9675ed6 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.3.0.bb
@@ -10,7 +10,7 @@ SECTION = "libs"
DEPENDS = "curl jsoncpp libmicrohttpd hiredis"
SRC_URI = "git://github.com/cinemast/libjson-rpc-cpp"
-SRCREV = "4ed5b00dcc409405a19e6d8c6478f703153430e1"
+SRCREV = "c696f6932113b81cd20cd4a34fdb1808e773f23e"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack_3.8.0.bb b/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack_3.9.0.bb
index 7544744b3..62d4df5e0 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack_3.8.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack_3.9.0.bb
@@ -13,9 +13,9 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=930f8aa500a47c7dab0f8efb5a1c9a40"
DEPENDS = "libgfortran"
-SRC_URI = "http://www.netlib.org/lapack/lapack-${PV}.tar.gz"
-SRC_URI[md5sum] = "96591affdbf58c450d45c1daa540dbd2"
-SRC_URI[sha256sum] = "deb22cc4a6120bff72621155a9917f485f96ef8319ac074a7afbc68aab88bcf6"
+SRCREV = "6acc99d5f39130be7cec00fb835606042101a970"
+SRC_URI = "git://github.com/Reference-LAPACK/lapack.git;protocol=https"
+S = "${WORKDIR}/git"
EXTRA_OECMAKE = " -DBUILD_SHARED_LIBS=ON "
OECMAKE_GENERATOR = "Unix Makefiles"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.20.2.bb b/meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.20.3.bb
index a048e4832..576eff6d5 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.20.2.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.20.3.bb
@@ -18,5 +18,5 @@ do_configure_prepend() {
done
}
-SRC_URI[archive.md5sum] = "45db478f2b300ada8e039ebc6c9458de"
-SRC_URI[archive.sha256sum] = "9e035c4b755f46bfae70ba81cdcf8328b03f554373cec8c816e8b5680f85353c"
+SRC_URI[archive.md5sum] = "e574b3952b93d219b5ec7c74c5892c33"
+SRC_URI[archive.sha256sum] = "d0b5edefc88cbca5f1709d19fa62aef490922c6577a14ac4e7b085507911a5de"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
index 6b66c2529..5710943d7 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
@@ -38,6 +38,9 @@ PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
PACKAGECONFIG[unwind] = "--with-libunwind,--without-libunwind,libunwind"
PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,libselinux"
+COMPATIBLE_HOST_riscv64 = "null"
+COMPATIBLE_HOST_riscv32 = "null"
+
do_configure_prepend () {
( cd ${S}; ./autogen.sh )
}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.5.bb b/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.5.bb
index ae41e627f..a23a4a5da 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.5.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.5.bb
@@ -35,6 +35,7 @@ EXTRA_OEMAKE = "'CC=${CC} -fPIC' 'MYCFLAGS=${CFLAGS} -fPIC' MYLDFLAGS='${LDFLAGS
do_configure_prepend() {
sed -i -e s:/usr/local:${prefix}:g src/luaconf.h
+ sed -i -e s:lib/lua/:${baselib}/lua/:g src/luaconf.h
}
do_compile () {
diff --git a/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit/clang.patch b/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit/clang.patch
index c39ef6fd4..807cc4417 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit/clang.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit/clang.patch
@@ -8,8 +8,8 @@ Index: LuaJIT-2.0.5/src/lj_arch.h
===================================================================
--- LuaJIT-2.0.5.orig/src/lj_arch.h
+++ LuaJIT-2.0.5/src/lj_arch.h
-@@ -313,7 +313,7 @@
- #error "Need at least GCC 4.2 or newer"
+@@ -436,7 +436,7 @@
+ #endif
#endif
#elif !LJ_TARGET_PS3
-#if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3)
diff --git a/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb b/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_git.bb
index 08a0470b0..c4f821648 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_git.bb
@@ -1,14 +1,14 @@
SUMMARY = "Just-In-Time Compiler for Lua"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=10a96c93403affcc34765f4c2612bc22"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=d739bb9250a55c124a545b588fd76771"
HOMEPAGE = "http://luajit.org"
-PV .= "+git${SRCPV}"
-SRCREV = "02b521981a1ab919ff2cd4d9bcaee80baf77dce2"
-SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http \
+PV = "2.1.0~beta3"
+SRCREV = "0ad60ccbc3768fa8e3e726858adf261950edbc22"
+SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http;branch=v2.1 \
file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \
file://clang.patch \
-"
+ "
S = "${WORKDIR}/git"
@@ -90,9 +90,10 @@ FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \
"
FILES_luajit-common = "${datadir}/${BPN}-${PV}"
-# Aarch64/mips64/ppc/ppc64 is not supported in this release
-COMPATIBLE_HOST_aarch64 = "null"
+# mips64/ppc/ppc64/riscv64 is not supported in this release
COMPATIBLE_HOST_mipsarchn32 = "null"
COMPATIBLE_HOST_mipsarchn64 = "null"
COMPATIBLE_HOST_powerpc = "null"
COMPATIBLE_HOST_powerpc64 = "null"
+COMPATIBLE_HOST_powerpc64le = "null"
+COMPATIBLE_HOST_riscv64 = "null"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/luaposix/luaposix/0001-fix-avoid-race-condition-between-test-and-mkdir.patch b/meta-openembedded/meta-oe/recipes-devtools/luaposix/luaposix/0001-fix-avoid-race-condition-between-test-and-mkdir.patch
new file mode 100644
index 000000000..d8a9e3d2b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/luaposix/luaposix/0001-fix-avoid-race-condition-between-test-and-mkdir.patch
@@ -0,0 +1,75 @@
+From 4dfca036c96071bd2a2c80ff84719c6d37858373 Mon Sep 17 00:00:00 2001
+From: Haseeb Ashraf <Haseeb_Ashraf@mentor.com>
+Date: Fri, 17 Apr 2020 14:36:50 +0500
+Subject: [PATCH 1/1] fix: avoid race condition between test and mkdir
+
+when building in parallel the race condition, when the directory
+is tested for existence and it is created, can break the build
+
+Signed-off-by: Haseeb Ashraf <Haseeb_Ashraf@mentor.com>
+---
+ Makefile.in | 6 +++---
+ build-aux/rockspecs.mk | 2 +-
+ local.mk | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 9b51ef3..4722525 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -1637,7 +1637,7 @@ distclean-tags:
+
+ distdir: $(DISTFILES)
+ $(am__remove_distdir)
+- test -d "$(distdir)" || mkdir "$(distdir)"
++ $(MKDIR_P) "$(distdir)"
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+@@ -1975,7 +1975,7 @@ clean-local:
+ rm -f $(posix_submodules)
+
+ $(allhtml): $(EXTRA_ext_posix_posix_la_SOURCES) $(ext_posix_posix_la_SOURCES)
+- test -d $(builddir)/doc || mkdir $(builddir)/doc
++ $(MKDIR_P) $(builddir)/doc
+ @HAVE_LDOC_TRUE@ $(LDOC) -c build-aux/config.ld -d $(abs_srcdir)/doc .
+ @HAVE_LDOC_FALSE@ $(MKDIR_P) doc
+ @HAVE_LDOC_FALSE@ touch doc/index.html doc/ldoc.css
+@@ -1983,7 +1983,7 @@ $(allhtml): $(EXTRA_ext_posix_posix_la_SOURCES) $(ext_posix_posix_la_SOURCES)
+ doc: $(allhtml)
+
+ $(luarocks_config): Makefile.am
+- @test -d build-aux || mkdir build-aux
++ @$(MKDIR_P) build-aux
+ $(AM_V_GEN){ \
+ $(set_LUA_BINDIR); \
+ echo 'rocks_trees = { "$(abs_srcdir)/luarocks" }'; \
+diff --git a/build-aux/rockspecs.mk b/build-aux/rockspecs.mk
+index ebd1dbf..c8fbdbc 100644
+--- a/build-aux/rockspecs.mk
++++ b/build-aux/rockspecs.mk
+@@ -62,7 +62,7 @@ LUA_INCDIR = `cd $$LUA_BINDIR/../include && pwd`
+ LUA_LIBDIR = `cd $$LUA_BINDIR/../lib && pwd`
+
+ $(luarocks_config): Makefile.am
+- @test -d build-aux || mkdir build-aux
++ @$(MKDIR_P) build-aux
+ $(AM_V_GEN){ \
+ $(set_LUA_BINDIR); \
+ echo 'rocks_trees = { "$(abs_srcdir)/luarocks" }'; \
+diff --git a/local.mk b/local.mk
+index d391ef7..80b22ce 100644
+--- a/local.mk
++++ b/local.mk
+@@ -255,7 +255,7 @@ dist_examples_DATA += \
+ allhtml = $(dist_doc_DATA) $(dist_examples_DATA) $(dist_modules_DATA) $(dist_classes_DATA)
+
+ $(allhtml): $(EXTRA_ext_posix_posix_la_SOURCES) $(ext_posix_posix_la_SOURCES)
+- test -d $(builddir)/doc || mkdir $(builddir)/doc
++ $(MKDIR_P) $(builddir)/doc
+ if HAVE_LDOC
+ $(LDOC) -c build-aux/config.ld -d $(abs_srcdir)/doc .
+ else
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/luaposix/luaposix_33.4.0.bb b/meta-openembedded/meta-oe/recipes-devtools/luaposix/luaposix_33.4.0.bb
new file mode 100644
index 000000000..1bee9fe0b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/luaposix/luaposix_33.4.0.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "luaposix is a POSIX binding for Lua."
+LICENSE = "MIT"
+HOMEPAGE = "https://github.com/luaposix/luaposix"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7dd2aad04bb7ca212e69127ba8d58f9f"
+
+DEPENDS += "lua-native lua"
+
+SRC_URI = "git://github.com/luaposix/luaposix.git;branch=release \
+ file://0001-fix-avoid-race-condition-between-test-and-mkdir.patch \
+"
+SRCREV = "8e4902ed81c922ed8f76a7ed85be1eaa3fd7e66d"
+S = "${WORKDIR}/git"
+LUA_VERSION = "5.3"
+
+inherit autotools pkgconfig
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' 'luadir=${datadir}/lua/${LUA_VERSION}' 'luaexecdir=${libdir}/lua/${LUA_VERSION}' install
+}
+
+FILES_${PN} = "${datadir}/lua/${LUA_VERSION} ${libdir}/lua/${LUA_VERSION}"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nanopb/nanopb_0.4.0.bb b/meta-openembedded/meta-oe/recipes-devtools/nanopb/nanopb_0.4.0.bb
index aedd53a7a..21d110aee 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nanopb/nanopb_0.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/nanopb/nanopb_0.4.0.bb
@@ -9,7 +9,7 @@ SRCREV = "70f0de9877b1ce12abc0229d5df84db6349fcbfc"
S = "${WORKDIR}/git"
-inherit cmake pythonnative
+inherit cmake python3native
do_install_append() {
install -Dm 0755 ${S}/generator/nanopb_generator.py ${D}${bindir}/nanopb_generator.py
@@ -26,3 +26,5 @@ RDEPENDS_${PN} += "\
"
BBCLASSEXTEND = "native nativesdk"
+
+PNBLACKLIST[nanopb] = "Needs forward porting to use python3"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb
index 326a4abfb..a97eb53c1 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb
@@ -10,6 +10,8 @@ PV = "1.0.0+git${SRCPV}"
SRCREV = "0dfbf5dacbb15a32c43f912a7e66a54aae39d0f9"
+UPSTREAM_CHECK_COMMITS = "1"
+
S = "${WORKDIR}/git"
# nlohmann-fifo is a header only C++ library, so the main package will be empty.
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
index 5d0dc03b6..4dd121f48 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
@@ -4,23 +4,22 @@ Date: Thu, 27 Apr 2017 14:25:42 +0200
Subject: [PATCH] Disable running gyp on shared deps
---
- Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
-index a98772f..f5663e2 100644
+index 0947300f24..6c98691984 100644
--- a/Makefile
+++ b/Makefile
-@@ -123,8 +123,8 @@ with-code-cache:
- test-code-cache: with-code-cache
- $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) code-cache
+@@ -141,7 +141,7 @@ test-code-cache: with-code-cache
+ echo "'test-code-cache' target is a noop"
--out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp \
-- deps/zlib/zlib.gyp deps/v8/gypfiles/toolchain.gypi \
-+out/Makefile: common.gypi deps/http_parser/http_parser.gyp \
-+ deps/v8/gypfiles/toolchain.gypi \
- deps/v8/gypfiles/features.gypi deps/v8/gypfiles/v8.gyp node.gyp \
- config.gypi
+ out/Makefile: config.gypi common.gypi node.gyp \
+- deps/uv/uv.gyp deps/http_parser/http_parser.gyp deps/zlib/zlib.gyp \
++ deps/http_parser/http_parser.gyp \
+ tools/v8_gypfiles/toolchain.gypi tools/v8_gypfiles/features.gypi \
+ tools/v8_gypfiles/inspector.gypi tools/v8_gypfiles/v8.gyp
$(PYTHON) tools/gyp_node.py -f make
--
-2.19.2
+2.20.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-allow-passing-multiple-libs-to-pkg_config.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-allow-passing-multiple-libs-to-pkg_config.patch
new file mode 100644
index 000000000..13edf229b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-allow-passing-multiple-libs-to-pkg_config.patch
@@ -0,0 +1,41 @@
+From fdaa0e3bef93c5c72a7258b5f1e30718e7d81f9b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net>
+Date: Mon, 2 Mar 2020 12:17:09 +0000
+Subject: [PATCH 1/2] build: allow passing multiple libs to pkg_config
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Sometimes it's necessary to pass multiple library names to pkg-config,
+e.g. the brotli shared libraries can be pulled in with
+ pkg-config libbrotlienc libbrotlidec
+
+Update the code to handle both, strings (as used so far), and lists
+of strings.
+
+Signed-off-by: André Draszik <git@andred.net>
+---
+Upstream-Status: Submitted [https://github.com/nodejs/node/pull/32046]
+ configure.py | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/configure.py b/configure.py
+index beb08df088..e3f78f2fed 100755
+--- a/configure.py
++++ b/configure.py
+@@ -680,7 +680,11 @@ def pkg_config(pkg):
+ retval = ()
+ for flag in ['--libs-only-l', '--cflags-only-I',
+ '--libs-only-L', '--modversion']:
+- args += [flag, pkg]
++ args += [flag]
++ if isinstance(pkg, list):
++ args += pkg
++ else:
++ args += [pkg]
+ try:
+ proc = subprocess.Popen(shlex.split(pkg_config) + args,
+ stdout=subprocess.PIPE)
+--
+2.25.0
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-binaries.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-binaries.patch
new file mode 100644
index 000000000..b5142dc9c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-binaries.patch
@@ -0,0 +1,71 @@
+From 6c3ac20477a4bac643088f24df3c042e627fafa9 Mon Sep 17 00:00:00 2001
+From: Guillaume Burel <guillaume.burel@stormshield.eu>
+Date: Fri, 3 Jan 2020 11:25:54 +0100
+Subject: [PATCH] Using native binaries
+
+---
+ node.gyp | 4 ++--
+ tools/v8_gypfiles/v8.gyp | 11 ++++-------
+ 2 files changed, 6 insertions(+), 9 deletions(-)
+
+diff --git a/node.gyp b/node.gyp
+index 8f4dc518..d9389190 100644
+--- a/node.gyp
++++ b/node.gyp
+@@ -446,7 +446,7 @@
+ '<(SHARED_INTERMEDIATE_DIR)/node_code_cache.cc',
+ ],
+ 'action': [
+- '<@(_inputs)',
++ 'mkcodecache',
+ '<@(_outputs)',
+ ],
+ },
+@@ -471,7 +471,7 @@
+ '<(SHARED_INTERMEDIATE_DIR)/node_snapshot.cc',
+ ],
+ 'action': [
+- '<@(_inputs)',
++ 'node_mksnapshot',
+ '<@(_outputs)',
+ ],
+ },
+diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp
+index a506a67d..c91f7dde 100644
+--- a/tools/v8_gypfiles/v8.gyp
++++ b/tools/v8_gypfiles/v8.gyp
+@@ -140,7 +140,8 @@
+ '<@(torque_outputs)',
+ ],
+ 'action': [
+- '<@(_inputs)',
++ 'torque',
++ '<@(torque_files)',
+ '-o', '<(torque_output_root)/torque-generated',
+ '-v8-root', '<(V8_ROOT)'
+ ],
+@@ -247,9 +248,7 @@
+ '<(generate_bytecode_builtins_list_output)',
+ ],
+ 'action': [
+- 'python',
+- '<(V8_ROOT)/tools/run.py',
+- '<@(_inputs)',
++ 'bytecode_builtins_list_generator',
+ '<@(_outputs)',
+ ],
+ },
+@@ -1396,9 +1395,7 @@
+ '<(SHARED_INTERMEDIATE_DIR)/src/regexp/special-case.cc',
+ ],
+ 'action': [
+- 'python',
+- '<(V8_ROOT)/tools/run.py',
+- '<@(_inputs)',
++ 'gen-regexp-special-case',
+ '<@(_outputs)',
+ ],
+ },
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-torque.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-torque.patch
deleted file mode 100644
index e9035f9eb..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-torque.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 4bbee5e3d58bc4911999f3ec2cc5aab8ded6717b Mon Sep 17 00:00:00 2001
-From: "Winker Matthias (TT-CA/ENG1)" <Matthias.Winker@de.bosch.com>
-Date: Tue, 11 Dec 2018 10:44:29 +0100
-Subject: [PATCH] Using native torque
-
----
- deps/v8/gypfiles/v8.gyp | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/deps/v8/gypfiles/v8.gyp b/deps/v8/gypfiles/v8.gyp
-index 8c78f02255..434168844e 100644
---- a/deps/v8/gypfiles/v8.gyp
-+++ b/deps/v8/gypfiles/v8.gyp
-@@ -2831,7 +2831,6 @@
- {
- 'action_name': 'run_torque',
- 'inputs': [ # Order matters.
-- '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)',
- '../src/builtins/base.tq',
- '../src/builtins/array.tq',
- '../src/builtins/typed-array.tq',
-@@ -2845,7 +2844,10 @@
- '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-typed-array-from-dsl-gen.cc',
- '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-typed-array-from-dsl-gen.h',
- ],
-- 'action': ['<@(_inputs)', '-o', '<(SHARED_INTERMEDIATE_DIR)/torque-generated'],
-+ 'action': [
-+ 'torque',
-+ '<@(_inputs)',
-+ '-o', '<(SHARED_INTERMEDIATE_DIR)/torque-generated'],
- },
- ],
- }, # torque
---
-2.19.2
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-build-allow-use-of-system-installed-brotli.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-build-allow-use-of-system-installed-brotli.patch
new file mode 100644
index 000000000..fc038f3aa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-build-allow-use-of-system-installed-brotli.patch
@@ -0,0 +1,66 @@
+From f0f927feee8cb1fb173835d5c3f6beb6bf7d5e54 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net>
+Date: Mon, 2 Mar 2020 12:17:35 +0000
+Subject: [PATCH 2/2] build: allow use of system-installed brotli
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+brotli is available as a shared library since 2016, so it makes sense
+to allow its use as a system-installed version.
+
+Some of the infrastructure was in place already (node.gyp and
+node.gypi), but some bits in the configure script here were missing.
+
+Add them, keeping the default as before, to use the bundled version.
+
+Refs: https://github.com/google/brotli/pull/421
+Signed-off-by: André Draszik <git@andred.net>
+---
+Upstream-Status: Submitted [https://github.com/nodejs/node/pull/32046]
+ configure.py | 22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+diff --git a/configure.py b/configure.py
+index e3f78f2fed..0190e31b41 100755
+--- a/configure.py
++++ b/configure.py
+@@ -301,6 +301,27 @@ shared_optgroup.add_option('--shared-zlib-libpath',
+ dest='shared_zlib_libpath',
+ help='a directory to search for the shared zlib DLL')
+
++shared_optgroup.add_option('--shared-brotli',
++ action='store_true',
++ dest='shared_brotli',
++ help='link to a shared brotli DLL instead of static linking')
++
++shared_optgroup.add_option('--shared-brotli-includes',
++ action='store',
++ dest='shared_brotli_includes',
++ help='directory containing brotli header files')
++
++shared_optgroup.add_option('--shared-brotli-libname',
++ action='store',
++ dest='shared_brotli_libname',
++ default='brotlidec,brotlienc',
++ help='alternative lib name to link to [default: %default]')
++
++shared_optgroup.add_option('--shared-brotli-libpath',
++ action='store',
++ dest='shared_brotli_libpath',
++ help='a directory to search for the shared brotli DLL')
++
+ shared_optgroup.add_option('--shared-cares',
+ action='store_true',
+ dest='shared_cares',
+@@ -1692,6 +1713,7 @@ configure_napi(output)
+ configure_library('zlib', output)
+ configure_library('http_parser', output)
+ configure_library('libuv', output)
++configure_library('brotli', output, pkgname=['libbrotlidec', 'libbrotlienc'])
+ configure_library('cares', output, pkgname='libcares')
+ configure_library('nghttp2', output, pkgname='libnghttp2')
+ configure_v8(output)
+--
+2.25.0
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0003-Install-both-binaries-and-use-libdir.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0003-Install-both-binaries-and-use-libdir.patch
index 7aa70fec9..599f742b2 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0003-Install-both-binaries-and-use-libdir.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0003-Install-both-binaries-and-use-libdir.patch
@@ -15,17 +15,16 @@ Stolen from [1]
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
-
---
configure.py | 7 +++++++
tools/install.py | 31 ++++++++++++++-----------------
2 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/configure.py b/configure.py
-index cfd4207..eb26f7d 100755
+index 20cce214db..e2d78a2a51 100755
--- a/configure.py
+++ b/configure.py
-@@ -552,6 +552,12 @@ parser.add_option('--shared',
+@@ -559,6 +559,12 @@ parser.add_option('--shared',
help='compile shared library for embedding node in another project. ' +
'(This mode is not officially supported for regular applications)')
@@ -38,19 +37,19 @@ index cfd4207..eb26f7d 100755
parser.add_option('--without-v8-platform',
action='store_true',
dest='without_v8_platform',
-@@ -1095,6 +1101,7 @@ def configure_node(o):
- if options.code_cache_path:
- o['variables']['node_code_cache_path'] = options.code_cache_path
+@@ -1103,6 +1109,7 @@ def configure_node(o):
+ if o['variables']['want_separate_host_toolset'] == 0:
+ o['variables']['node_code_cache'] = 'yes' # For testing
o['variables']['node_shared'] = b(options.shared)
+ o['variables']['libdir'] = options.libdir
node_module_version = getmoduleversion.get_version()
if sys.platform == 'darwin':
diff --git a/tools/install.py b/tools/install.py
-index 028c32e..bf443c4 100755
+index 655802980a..fe4723bf15 100755
--- a/tools/install.py
+++ b/tools/install.py
-@@ -117,26 +117,23 @@ def subdir_files(path, dest, action):
+@@ -121,26 +121,23 @@ def subdir_files(path, dest, action):
def files(action):
is_windows = sys.platform == 'win32'
@@ -92,5 +91,5 @@ index 028c32e..bf443c4 100755
if 'true' == variables.get('node_use_dtrace'):
action(['out/Release/node.d'], 'lib/dtrace/node.d')
--
-2.23.0
+2.20.1
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0004-Make-compatibility-with-gcc-4.8.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0004-Make-compatibility-with-gcc-4.8.patch
deleted file mode 100644
index 925c085e9..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0004-Make-compatibility-with-gcc-4.8.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-Implement function as wrapper for std::make_unique
-method to be compatible with gcc < 4.9 .
-"error::make_unique is not a member of 'std'"
-
-Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
-
-diff -Naur node-v10.15.1/src/cares_wrap.cc node-v10.15.1/src/cares_wrap.cc
---- node-v10.15.1/src/cares_wrap.cc 2019-01-29 08:20:50.000000000 +0100
-+++ node-v10.15.1/src/cares_wrap.cc 2019-02-21 16:22:25.489131665 +0100
-@@ -52,6 +52,16 @@
- # define AI_V4MAPPED 0
- #endif
-
-+#ifndef __cpp_lib_make_unique
-+namespace std {
-+ /// make_unique implementation
-+ template<typename T, typename... Args>
-+ std::unique_ptr<T> make_unique(Args&&... args) {
-+ return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
-+ }
-+}
-+#endif
-+
- namespace node {
- namespace cares_wrap {
-
-diff -Naur node-v10.15.1/src/inspector_agent.cc node-v10.15.1/src/inspector_agent.cc
---- node-v10.15.1/src/inspector_agent.cc 2019-01-29 08:20:50.000000000 +0100
-+++ node-v10.15.1/src/inspector_agent.cc 2019-02-21 16:22:09.000185992 +0100
-@@ -24,6 +24,16 @@
- #include <pthread.h>
- #endif // __POSIX__
-
-+#ifndef __cpp_lib_make_unique
-+namespace std {
-+ /// make_unique implementation
-+ template<typename T, typename... Args>
-+ std::unique_ptr<T> make_unique(Args&&... args) {
-+ return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
-+ }
-+}
-+#endif
-+
- namespace node {
- namespace inspector {
- namespace {
-
-diff --git a/src/inspector/main_thread_interface.cc b/src/inspector/main_thread_interface.cc
-index e374c0fd70..05d7d8c60f 100644
---- a/src/inspector/main_thread_interface.cc
-+++ b/src/inspector/main_thread_interface.cc
-@@ -6,6 +6,16 @@
- #include <functional>
- #include <unicode/unistr.h>
-
-+#ifndef __cpp_lib_make_unique
-+namespace std {
-+ /// make_unique implementation
-+ template<typename T, typename... Args>
-+ std::unique_ptr<T> make_unique(Args&&... args) {
-+ return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
-+ }
-+}
-+#endif
-+
- namespace node {
- namespace inspector {
- namespace {
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0007-v8-don-t-override-ARM-CFLAGS.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0004-v8-don-t-override-ARM-CFLAGS.patch
index eb2cbfb8b..97ed972ce 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0007-v8-don-t-override-ARM-CFLAGS.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0004-v8-don-t-override-ARM-CFLAGS.patch
@@ -24,14 +24,14 @@ problems have been noted during compilation or runtime.
Upstream-Status: Inappropriate [oe-specific]
Signed-off-by: André Draszik <git@andred.net>
---
- deps/v8/gypfiles/toolchain.gypi | 52 ++-------------------------------
+ tools/v8_gypfiles/toolchain.gypi | 52 ++------------------------------
1 file changed, 2 insertions(+), 50 deletions(-)
-diff --git a/deps/v8/gypfiles/toolchain.gypi b/deps/v8/gypfiles/toolchain.gypi
-index 910a212..1390b15 100644
---- a/deps/v8/gypfiles/toolchain.gypi
-+++ b/deps/v8/gypfiles/toolchain.gypi
-@@ -199,31 +199,7 @@
+diff --git a/tools/v8_gypfiles/toolchain.gypi b/tools/v8_gypfiles/toolchain.gypi
+index 264b3e478e..0b41848145 100644
+--- a/tools/v8_gypfiles/toolchain.gypi
++++ b/tools/v8_gypfiles/toolchain.gypi
+@@ -211,31 +211,7 @@
'target_conditions': [
['_toolset=="host"', {
'conditions': [
@@ -64,7 +64,7 @@ index 910a212..1390b15 100644
# Host not built with an Arm CXX compiler (simulator build).
'conditions': [
[ 'arm_float_abi=="hard"', {
-@@ -242,31 +218,7 @@
+@@ -254,31 +230,7 @@
}], # _toolset=="host"
['_toolset=="target"', {
'conditions': [
@@ -98,5 +98,5 @@ index 910a212..1390b15 100644
'conditions': [
[ 'arm_float_abi=="hard"', {
--
-2.23.0.rc1
+2.20.1
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0005-Link-atomic-library.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0005-Link-atomic-library.patch
deleted file mode 100644
index 66ff18b4a..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0005-Link-atomic-library.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Link atomic library to fix missing undefined referrences
-like "undefined reference to `__atomic_fetch_add_8'"
-
-Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-
-diff -Naur node-v10.15.1/deps/v8/gypfiles/v8.gyp node-v10.15.1/deps/v8/gypfiles/v8.gyp
---- node-v10.15.1/deps/v8/gypfiles/v8.gyp 2019-02-13 09:02:21.000000000 +0100
-+++ node-v10.15.1/deps/v8/gypfiles/v8.gyp 2019-02-15 21:27:11.755679660 +0100
-@@ -452,6 +452,11 @@
- '<(DEPTH)',
- '<(SHARED_INTERMEDIATE_DIR)'
- ],
-+ 'link_settings': {
-+ 'libraries': [
-+ '-latomic'
-+ ],
-+ },
- 'sources': [
- '<@(inspector_all_sources)',
- '../include//v8-inspector-protocol.h',
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch
new file mode 100644
index 000000000..529381842
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch
@@ -0,0 +1,18 @@
+
+https://github.com/v8/v8/commit/878ccb33bd3cf0e6dc018ff8d15843f585ac07be
+
+did some automated cleanups but it missed big-endian code.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/deps/v8/src/runtime/runtime-utils.h
++++ b/deps/v8/src/runtime/runtime-utils.h
+@@ -126,7 +126,7 @@ static inline ObjectPair MakePair(Object
+ #if defined(V8_TARGET_LITTLE_ENDIAN)
+ return x.ptr() | (static_cast<ObjectPair>(y.ptr()) << 32);
+ #elif defined(V8_TARGET_BIG_ENDIAN)
+- return y->ptr() | (static_cast<ObjectPair>(x->ptr()) << 32);
++ return y.ptr() | (static_cast<ObjectPair>(x.ptr()) << 32);
+ #else
+ #error Unknown endianness
+ #endif
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/mips-warnings.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/mips-warnings.patch
new file mode 100644
index 000000000..1a773f23d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/mips-warnings.patch
@@ -0,0 +1,19 @@
+Add explicit static cast to fix narrowing warning
+
+Fixes
+deps/v8/src/codegen/mips/assembler-mips.cc:3556:44: error: non-constant-expression cannot be narrowed from type 'int' to 'size_t' (aka 'unsigned int') in initializer list [-Wc++11-narrowing]
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/deps/v8/src/codegen/mips/assembler-mips.cc
++++ b/deps/v8/src/codegen/mips/assembler-mips.cc
+@@ -3553,7 +3553,7 @@ void Assembler::GrowBuffer() {
+ reloc_info_writer.last_pc() + pc_delta);
+
+ // Relocate runtime entries.
+- Vector<byte> instructions{buffer_start_, pc_offset()};
++ Vector<byte> instructions{buffer_start_, static_cast<size_t>(pc_offset())};
+ Vector<const byte> reloc_info{reloc_info_writer.pos(), reloc_size};
+ for (RelocIterator it(instructions, reloc_info, 0); !it.done(); it.next()) {
+ RelocInfo::Mode rmode = it.rinfo()->rmode();
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.17.0.bb b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb
index 71a47636b..d468fb3ff 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.17.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb
@@ -1,12 +1,12 @@
DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
HOMEPAGE = "http://nodejs.org"
LICENSE = "MIT & BSD & Artistic-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=be980eb7ccafe287cb438076a65e888c"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=be4d5107c64dc3d7c57e3797e1a0674b"
DEPENDS = "openssl"
DEPENDS_append_class-target = " nodejs-native"
-inherit pkgconfig pythonnative
+inherit pkgconfig python3native
COMPATIBLE_MACHINE_armv4 = "(!.*armv4).*"
COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*"
@@ -18,16 +18,18 @@ COMPATIBLE_HOST_riscv32 = "null"
SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
file://0001-Disable-running-gyp-files-for-bundled-deps.patch \
file://0003-Install-both-binaries-and-use-libdir.patch \
- file://0004-Make-compatibility-with-gcc-4.8.patch \
- file://0007-v8-don-t-override-ARM-CFLAGS.patch \
+ file://0004-v8-don-t-override-ARM-CFLAGS.patch \
+ file://big-endian.patch \
+ file://0001-build-allow-passing-multiple-libs-to-pkg_config.patch \
+ file://0002-build-allow-use-of-system-installed-brotli.patch \
+ file://mips-warnings.patch \
"
SRC_URI_append_class-target = " \
- file://0002-Using-native-torque.patch \
- file://0005-Link-atomic-library.patch \
+ file://0002-Using-native-binaries.patch \
"
-SRC_URI[md5sum] = "d5a56d0abf764a91f627f0690cd4b9f3"
-SRC_URI[sha256sum] = "412667d76bd5273c07cb69c215998109fd5bb35c874654f93e6a0132d666c58e"
+SRC_URI[md5sum] = "1c78a75f5c95321f533ecccca695e814"
+SRC_URI[sha256sum] = "877b4b842318b0e09bc754faf7343f2f097f0fc4f88ab9ae57cf9944e88e7adb"
S = "${WORKDIR}/node-v${PV}"
@@ -52,9 +54,9 @@ ARCHFLAGS_arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '-
GYP_DEFINES_append_mipsel = " mips_arch_variant='r1' "
ARCHFLAGS ?= ""
-PACKAGECONFIG ??= "ares icu libuv zlib"
+PACKAGECONFIG ??= "ares brotli icu libuv zlib"
PACKAGECONFIG[ares] = "--shared-cares,,c-ares"
-PACKAGECONFIG[gyp] = ",,gyp-py2-native"
+PACKAGECONFIG[brotli] = "--shared-brotli,,brotli"
PACKAGECONFIG[icu] = "--with-intl=system-icu,--without-intl,icu"
PACKAGECONFIG[libuv] = "--shared-libuv,,libuv"
PACKAGECONFIG[nghttp2] = "--shared-nghttp2,,nghttp2"
@@ -83,8 +85,8 @@ python do_unpack() {
shutil.rmtree(d.getVar('S') + '/deps/openssl', True)
if 'ares' in d.getVar('PACKAGECONFIG'):
shutil.rmtree(d.getVar('S') + '/deps/cares', True)
- if 'gyp' in d.getVar('PACKAGECONFIG'):
- shutil.rmtree(d.getVar('S') + '/tools/gyp', True)
+ if 'brotli' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/brotli', True)
if 'libuv' in d.getVar('PACKAGECONFIG'):
shutil.rmtree(d.getVar('S') + '/deps/uv', True)
if 'nghttp2' in d.getVar('PACKAGECONFIG'):
@@ -98,7 +100,9 @@ do_configure () {
export LD="${CXX}"
GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES
# $TARGET_ARCH settings don't match --dest-cpu settings
- ./configure --prefix=${prefix} --without-snapshot --shared-openssl \
+ python3 configure.py --prefix=${prefix} --cross-compiling --without-snapshot --shared-openssl \
+ --without-dtrace \
+ --without-etw \
--dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH'), d)}" \
--dest-os=linux \
--libdir=${D}${libdir} \
@@ -113,6 +117,10 @@ do_compile () {
do_install () {
oe_runmake install DESTDIR=${D}
+
+ # wasn't updated since 2009 and is the only thing requiring python2 in runtime
+ # ERROR: nodejs-12.14.1-r0 do_package_qa: QA Issue: /usr/lib/node_modules/npm/node_modules/node-gyp/gyp/samples/samples contained in package nodejs-npm requires /usr/bin/python, but no providers found in RDEPENDS_nodejs-npm? [file-rdeps]
+ rm -f ${D}${exec_prefix}/lib/node_modules/npm/node_modules/node-gyp/gyp/samples/samples
}
do_install_append_class-native() {
@@ -129,9 +137,15 @@ do_install_append_class-native() {
# npm-cli.js continues to use old shebang
sed "1s^.*^#\!/usr/bin/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
- # Install the native torque to provide it within sysroot for the target compilation
+ # Install the native binaries to provide it within sysroot for the target compilation
install -d ${D}${bindir}
install -m 0755 ${S}/out/Release/torque ${D}${bindir}/torque
+ install -m 0755 ${S}/out/Release/bytecode_builtins_list_generator ${D}${bindir}/bytecode_builtins_list_generator
+ if ${@bb.utils.contains('PACKAGECONFIG','icu','true','false',d)}; then
+ install -m 0755 ${S}/out/Release/gen-regexp-special-case ${D}${bindir}/gen-regexp-special-case
+ fi
+ install -m 0755 ${S}/out/Release/mkcodecache ${D}${bindir}/mkcodecache
+ install -m 0755 ${S}/out/Release/node_mksnapshot ${D}${bindir}/node_mksnapshot
}
do_install_append_class-target() {
@@ -140,11 +154,10 @@ do_install_append_class-target() {
PACKAGES =+ "${PN}-npm"
FILES_${PN}-npm = "${exec_prefix}/lib/node_modules ${bindir}/npm ${bindir}/npx"
-RDEPENDS_${PN}-npm = "bash python-core python-shell python-datetime python-subprocess python-textutils \
- python-compiler python-misc python-multiprocessing"
+RDEPENDS_${PN}-npm = "bash python3-core python3-shell python3-datetime \
+ python3-misc python3-multiprocessing"
PACKAGES =+ "${PN}-systemtap"
FILES_${PN}-systemtap = "${datadir}/systemtap"
-
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/octave/octave_4.4.1.bb b/meta-openembedded/meta-oe/recipes-devtools/octave/octave_4.4.1.bb
index 71d24504f..ec3e8258a 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/octave/octave_4.4.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/octave/octave_4.4.1.bb
@@ -7,11 +7,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
DEPENDS = "gperf-native texinfo lapack pcre readline"
-inherit autotools pkgconfig texinfo gettext
+inherit autotools pkgconfig texinfo gettext mime-xdg
EXTRA_OECONF = "--disable-java --disable-docs"
-SRC_URI = "${GNU_MIRROR}/octave/${PN}-${PV}.tar.gz \
+SRC_URI = "${GNU_MIRROR}/octave/${BPN}-${PV}.tar.gz \
file://fix-blas-library-integer-size.patch \
"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb b/meta-openembedded/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb
new file mode 100644
index 000000000..107d5a8b7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Simple program to read & write to a pci device from userspace"
+HOMEPAGE = "https://github.com/billfarrow/pcimem"
+BUGTRACKER = "https://github.com/billfarrow/pcimem/issues"
+SECTION = "devel"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+COMPATIBLE_HOST = "(x86_64|aarch64|arm)"
+
+SRCREV = "09724edb1783a98da2b7ae53c5aaa87493aabc9b"
+SRC_URI = "git://github.com/billfarrow/pcimem.git "
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ install -D -m 0755 ${B}/pcimem ${D}${bindir}/pcimem
+}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.642.bb b/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.643.bb
index 7532b3fa2..75fad46bf 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.642.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.643.bb
@@ -10,8 +10,8 @@ LICENSE = "Artistic-1.0 | GPL-1.0+"
LIC_FILES_CHKSUM = "file://LICENSE;md5=10982c7148e0a012c0fd80534522f5c5"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-${PV}.tar.gz"
-SRC_URI[md5sum] = "f2ba18b5cea1c8cb322a62be0a847f3d"
-SRC_URI[sha256sum] = "3f2025023a56286cebd15cb495e36ccd9b456c3cc229bf2ce1f69e9ebfc27f5d"
+SRC_URI[md5sum] = "352f80b1e23769c116082a90905d7398"
+SRC_URI[sha256sum] = "8a2b993db560a2c373c174ee976a51027dd780ec766ae17620c20393d2e836fa"
S = "${WORKDIR}/DBI-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl_1.12.bb b/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl_1.14.bb
index b1a95e577..1ab21d1dc 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl_1.12.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl_1.14.bb
@@ -5,8 +5,8 @@ LIC_FILES_CHKSUM = "file://META.yml;beginline=11;endline=12;md5=b2562f94907eeb42
SRC_URI = "http://www.cpan.org/modules/by-module/IO/IO-Tty-${PV}.tar.gz"
-SRC_URI[md5sum] = "11695a1a516b3bd1b90ce75ff0ce3e6d"
-SRC_URI[sha256sum] = "a2ef8770d3309178203f8c8ac25e623e63cf76e97830fd3be280ade1a555290d"
+SRC_URI[md5sum] = "70bcec4b1b19838ed209fb96a13f3e89"
+SRC_URI[sha256sum] = "51f3e4e311128bdb2c6a15f02c51376cb852ccf9df9bebe8dfbb5f9561eb95b5"
S = "${WORKDIR}/IO-Tty-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/libjson-perl_4.02000.bb b/meta-openembedded/meta-oe/recipes-devtools/perl/libjson-perl_4.02000.bb
new file mode 100644
index 000000000..4e5a8a6ff
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/perl/libjson-perl_4.02000.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Perl module to decode/encode json files"
+DESCRIPTION = "This package contains the JSON.pm module with friends. \
+The module implements JSON encode/decode."
+
+HOMEPAGE = "https://metacpan.org/pod/JSON"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;beginline=1171;endline=1176;md5=3be2cb8159d094768e67386c453e8bbe"
+
+DEPENDS += "perl"
+
+SRC_URI = "git://github.com/makamaka/JSON.git;protocol=https"
+
+SRCREV = "42a6324df654e92419512cee80c0b49155d9e56d"
+
+S = "${WORKDIR}/git"
+
+inherit cpan
+
+RDEPENDS_${PN} += "perl"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/libperlio-gzip-perl_0.20.bb b/meta-openembedded/meta-oe/recipes-devtools/perl/libperlio-gzip-perl_0.20.bb
new file mode 100644
index 000000000..ffe7a7d99
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/perl/libperlio-gzip-perl_0.20.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Perl module to manipulate and access gzip files"
+DESCRIPTION = "This package contains the gzip.pm module with friends. \
+The module implements perlio layer for gzip."
+
+HOMEPAGE = "https://metacpan.org/pod/PerlIO::gzip"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;beginline=55;endline=61;md5=bc3da2dec1fbea59ac91172c5e0eb837"
+
+DEPENDS += "perl"
+
+SRC_URI = "https://cpan.metacpan.org/authors/id/N/NW/NWCLARK/PerlIO-gzip-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "0393eae5d0b23df6cf40ed44af7d711c"
+SRC_URI[sha256sum] = "4848679a3f201e3f3b0c5f6f9526e602af52923ffa471a2a3657db786bd3bdc5"
+
+S = "${WORKDIR}/PerlIO-gzip-${PV}"
+
+EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
+
+inherit cpan
+
+do_compile() {
+ export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
+ cpan_do_compile
+}
+
+RDEPENDS_${PN} += "perl perl-module-perlio"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-Use-pkg-config-for-libxml2-detection.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-Use-pkg-config-for-libxml2-detection.patch
deleted file mode 100644
index ccc6d4ede..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-Use-pkg-config-for-libxml2-detection.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Use pkg-config for libxml2 detection.
-
-xml2-config does not work. Use pkgconfig to set CPPFLAGS and LIBS.
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.in | 15 ++-------------
- 1 file changed, 2 insertions(+), 13 deletions(-)
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -2481,8 +2481,8 @@ AC_DEFUN([PHP_SETUP_LIBXML], [
- LIBXML_VERSION=`expr [$]1 \* 1000000 + [$]2 \* 1000 + [$]3`
- if test "$LIBXML_VERSION" -ge "2006011"; then
- found_libxml=yes
-- LIBXML_LIBS=`$XML2_CONFIG --libs`
-- LIBXML_INCS=`$XML2_CONFIG --cflags`
-+ LIBXML_LIBS=`pkg-config --libs libxml-2.0`
-+ LIBXML_INCS=`pkg-config --cflags libxml-2.0`
- else
- AC_MSG_ERROR([libxml2 version 2.6.11 or greater required.])
- fi
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-skip-binconfig-check-for-libxml.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-skip-binconfig-check-for-libxml.patch
deleted file mode 100644
index 15329261b..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-skip-binconfig-check-for-libxml.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From a2d146b8dd9d02f523d1e205d79792626a71dec3 Mon Sep 17 00:00:00 2001
-From: Anuj Mittal <anuj.mittal@intel.com>
-Date: Mon, 2 Apr 2018 15:27:09 +0800
-Subject: [PATCH] acinclude.m4: skip binconfig check for libxml
-
-We want libxml flags to be picked up using pkg-config instead of the
-xml2-config file.
-
-Upstream-Status: Inappropriate [OE-specific]
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-
----
- acinclude.m4 | 29 -----------------------------
- 1 file changed, 29 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index d42d708..d32766a 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -2525,35 +2525,6 @@ dnl
- AC_DEFUN([PHP_SETUP_LIBXML], [
- found_libxml=no
-
-- dnl First try to find xml2-config
-- AC_CACHE_CHECK([for xml2-config path], ac_cv_php_xml2_config_path,
-- [
-- for i in $PHP_LIBXML_DIR /usr/local /usr; do
-- if test -x "$i/bin/xml2-config"; then
-- ac_cv_php_xml2_config_path="$i/bin/xml2-config"
-- break
-- fi
-- done
-- ])
--
-- if test -x "$ac_cv_php_xml2_config_path"; then
-- XML2_CONFIG="$ac_cv_php_xml2_config_path"
-- libxml_full_version=`$XML2_CONFIG --version`
-- ac_IFS=$IFS
-- IFS="."
-- set $libxml_full_version
-- IFS=$ac_IFS
-- LIBXML_VERSION=`expr [$]1 \* 1000000 + [$]2 \* 1000 + [$]3`
-- if test "$LIBXML_VERSION" -ge "2006011"; then
-- found_libxml=yes
-- LIBXML_LIBS=`$XML2_CONFIG --libs`
-- LIBXML_INCS=`$XML2_CONFIG --cflags`
-- else
-- AC_MSG_ERROR([libxml2 version 2.6.11 or greater required.])
-- fi
-- fi
--
-- dnl If xml2-config fails, try pkg-config
- if test "$found_libxml" = "no"; then
- if test -z "$PKG_CONFIG"; then
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-configure.ac-don-t-include-build-libtool.m4.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-configure.ac-don-t-include-build-libtool.m4.patch
new file mode 100644
index 000000000..2861366a6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-configure.ac-don-t-include-build-libtool.m4.patch
@@ -0,0 +1,30 @@
+From f5a34e771532b8433f307b679500c26af328ba35 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Fri, 17 Apr 2020 15:01:57 +0800
+Subject: [PATCH] configure.ac: don't include build/libtool.m4
+
+we delete build/libtool.m4 before do_configure,
+we will use libtool.m4 under ACLOCALDIR
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ configure.ac | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 06c6a27..f85144e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -6,7 +6,6 @@ dnl ----------------------------------------------------------------------------
+ m4_include([build/ax_check_compile_flag.m4])
+ m4_include([build/ax_func_which_gethostbyname_r.m4])
+ m4_include([build/ax_gcc_func_attribute.m4])
+-m4_include([build/libtool.m4])
+ m4_include([build/php_cxx_compile_stdcxx.m4])
+ m4_include([build/php.m4])
+ m4_include([build/pkg.m4])
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-main-php_ini.c-build-empty-php_load_zend_extension_c.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-main-php_ini.c-build-empty-php_load_zend_extension_c.patch
deleted file mode 100644
index fce9738f5..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-main-php_ini.c-build-empty-php_load_zend_extension_c.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 2842aa2a078eb1cad55540b61e7edf111395150d Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
-Date: Mon, 26 Feb 2018 19:30:55 +0100
-Subject: [PATCH] main/php_ini.c: build empty php_load_zend_extension_cb() when
- !HAVE_LIBDL
-
-Commit 0782a7fc6314c8bd3cbfd57f12d0479bf9cc8dc7 ("Fixed bug #74866
-extension_dir = "./ext" now use current directory for base") modified
-the php_load_zend_extension_cb() function to use php_load_shlib(), and
-pass a handle to the newly introduced zend_load_extension_handle()
-function instead of passing the extension path to
-zend_load_extension().
-
-While doing so, it introduced a call to php_load_shlib() from code
-that is built even when HAVE_LIBDL is not defined. However,
-php_load_shlib() is not implemented when HAVE_LIBDL is not defined,
-for obvious reasons.
-
-It turns out that zend_load_extension_handle() anyway doesn't do
-anything when ZEND_EXTENSIONS_SUPPORT is defined to 0, and
-ZEND_EXTENSIONS_SUPPORT is not defined when HAVE_LIBDL is not defined
-(Zend/zend_portability.h).
-
-Fixes the following build failure when building on a system that
-doesn't have libdl:
-
-main/php_ini.o: In function `php_load_zend_extension_cb':
-php_ini.c:(.text+0x478): undefined reference to `php_load_shlib'
-php_ini.c:(.text+0x4b0): undefined reference to `php_load_shlib'
-collect2: error: ld returned 1 exit status
-
-Upstream-Status: Backport [http://git.php.net/?p=php-src.git;a=commit;h=2842aa2a078eb1cad55540b61e7edf111395150d]
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- main/php_ini.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/main/php_ini.c b/main/php_ini.c
-index ba58eb1..fca263e 100644
---- a/main/php_ini.c
-+++ b/main/php_ini.c
-@@ -350,6 +350,7 @@ static void php_load_php_extension_cb(void *arg)
-
- /* {{{ php_load_zend_extension_cb
- */
-+#ifdef HAVE_LIBDL
- static void php_load_zend_extension_cb(void *arg)
- {
- char *filename = *((char **) arg);
-@@ -409,6 +410,9 @@ static void php_load_zend_extension_cb(void *arg)
- efree(libpath);
- }
- }
-+#else
-+static void php_load_zend_extension_cb(void *arg) { }
-+#endif
- /* }}} */
-
- /* {{{ php_init_config
---
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch
index 34f433f40..ee0d5edcd 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch
@@ -1,30 +1,27 @@
-From 8de5ba69d20d049b8ca983a9470c7303142ec0b3 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Sun, 28 Apr 2019 16:55:13 +0800
-Subject: [PATCH] From fb139d9707dabe1684b472a08a6eb5761ede4a3a Mon Sep 17
- 00:00:00 2001 From: Changqing Li <changqing.li@windriver.com> Date: Tue, 12
- Feb 2019 14:56:16 +0800 Subject: [PATCH] opcache/config.m4: enable opcache
+opcache/config.m4: enable opcache
-We can't use AC_TRY_RUN to run programs in a cross compile environment. Set
-the variables directly instead since we know that we'd be running on latest
+We can't use AC_TRY_RUN to run programs in a cross compile environment.
+Set
+the variables directly instead since we know that we'd be running on
+latest
enough linux kernel.
Upstream-Status: Inappropriate [Configuration]
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-update patch to version 7.3.4
+update patch to version 7.4.4
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
- ext/opcache/config.m4 | 312 +-------------------------------------------------
- 1 file changed, 6 insertions(+), 306 deletions(-)
+ ext/opcache/config.m4 | 194 +-------------------------------------------------
+ 1 file changed, 3 insertions(+), 191 deletions(-)
diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4
-index 4810217..22c3d61 100644
+index 6c40caf..84ddf1e 100644
--- a/ext/opcache/config.m4
+++ b/ext/opcache/config.m4
-@@ -27,319 +27,19 @@ if test "$PHP_OPCACHE" != "no"; then
- AC_CHECK_HEADERS([unistd.h sys/uio.h])
+@@ -23,201 +23,13 @@ if test "$PHP_OPCACHE" != "no"; then
+ AC_CHECK_FUNCS([mprotect])
AC_MSG_CHECKING(for sysvipc shared memory support)
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
@@ -95,9 +92,8 @@ index 4810217..22c3d61 100644
- AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
- msg=yes],[msg=no],[msg=no])
- AC_MSG_RESULT([$msg])
--
+ AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
-+
+
AC_MSG_CHECKING(for mmap() using MAP_ANON shared memory support)
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <sys/types.h>
@@ -114,7 +110,8 @@ index 4810217..22c3d61 100644
-#ifndef MAP_FAILED
-# define MAP_FAILED ((void*)-1)
-#endif
--
++ AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
+
-int main() {
- pid_t pid;
- int status;
@@ -149,64 +146,8 @@ index 4810217..22c3d61 100644
- AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
- msg=yes],[msg=no],[msg=no])
- AC_MSG_RESULT([$msg])
-+ AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
-
- AC_MSG_CHECKING(for mmap() using /dev/zero shared memory support)
-- AC_RUN_IFELSE([AC_LANG_SOURCE([[
--#include <sys/types.h>
--#include <sys/wait.h>
--#include <sys/mman.h>
--#include <sys/stat.h>
--#include <fcntl.h>
--#include <unistd.h>
--#include <string.h>
--
--#ifndef MAP_FAILED
--# define MAP_FAILED ((void*)-1)
--#endif
--
--int main() {
-- pid_t pid;
-- int status;
-- int fd;
-- char *shm;
--
-- fd = open("/dev/zero", O_RDWR, S_IRUSR | S_IWUSR);
-- if (fd == -1) {
-- return 1;
-- }
--
-- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-- if (shm == MAP_FAILED) {
-- return 2;
-- }
--
-- strcpy(shm, "hello");
-
-- pid = fork();
-- if (pid < 0) {
-- return 5;
-- } else if (pid == 0) {
-- strcpy(shm, "bye");
-- return 6;
-- }
-- if (wait(&status) != pid) {
-- return 7;
-- }
-- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
-- return 8;
-- }
-- if (strcmp(shm, "bye") != 0) {
-- return 9;
-- }
-- return 0;
--}
--]])],[dnl
-- AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
-- msg=yes],[msg=no],[msg=no])
-- AC_MSG_RESULT([$msg])
-+ AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
-
+- PHP_CHECK_FUNC_LIB(shm_open, rt)
AC_MSG_CHECKING(for mmap() using shm_open() shared memory support)
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <sys/types.h>
@@ -230,7 +171,7 @@ index 4810217..22c3d61 100644
- char *shm;
- char tmpname[4096];
-
-- sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
+- sprintf(tmpname,"/opcache.test.shm.%dXXXXXX", getpid());
- if (mktemp(tmpname) == NULL) {
- return 1;
- }
@@ -273,80 +214,15 @@ index 4810217..22c3d61 100644
-}
-]])],[dnl
- AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
-- msg=yes],[msg=no],[msg=no])
-- AC_MSG_RESULT([$msg])
+- AC_MSG_RESULT([yes])
+- PHP_CHECK_LIBRARY(rt, shm_unlink, [PHP_ADD_LIBRARY(rt,1,OPCACHE_SHARED_LIBADD)])
+- ],[
+- AC_MSG_RESULT([no])
+- ],[
+- AC_MSG_RESULT([no])
+- ])
+ AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
- AC_MSG_CHECKING(for mmap() using regular file shared memory support)
-- AC_RUN_IFELSE([AC_LANG_SOURCE([[
--#include <sys/types.h>
--#include <sys/wait.h>
--#include <sys/mman.h>
--#include <sys/stat.h>
--#include <fcntl.h>
--#include <unistd.h>
--#include <string.h>
--#include <stdlib.h>
--#include <stdio.h>
--
--#ifndef MAP_FAILED
--# define MAP_FAILED ((void*)-1)
--#endif
--
--int main() {
-- pid_t pid;
-- int status;
-- int fd;
-- char *shm;
-- char tmpname[4096];
--
-- sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
-- if (mktemp(tmpname) == NULL) {
-- return 1;
-- }
-- fd = open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
-- if (fd == -1) {
-- return 2;
-- }
-- if (ftruncate(fd, 4096) < 0) {
-- close(fd);
-- unlink(tmpname);
-- return 3;
-- }
--
-- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-- if (shm == MAP_FAILED) {
-- return 4;
-- }
-- unlink(tmpname);
-- close(fd);
--
-- strcpy(shm, "hello");
--
-- pid = fork();
-- if (pid < 0) {
-- return 5;
-- } else if (pid == 0) {
-- strcpy(shm, "bye");
-- return 6;
-- }
-- if (wait(&status) != pid) {
-- return 7;
-- }
-- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
-- return 8;
-- }
-- if (strcmp(shm, "bye") != 0) {
-- return 9;
-- }
-- return 0;
--}
--]])],[dnl
-- AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
-- msg=yes],[msg=no],[msg=no])
-- AC_MSG_RESULT([$msg])
-+ AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
-
PHP_NEW_EXTENSION(opcache,
ZendAccelerator.c \
--
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php-don-t-use-broken-wrapper-for-mkdir.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php-don-t-use-broken-wrapper-for-mkdir.patch
index 2f7d58155..d68737366 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php-don-t-use-broken-wrapper-for-mkdir.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php-don-t-use-broken-wrapper-for-mkdir.patch
@@ -4,17 +4,20 @@ Date: Thu, 3 Nov 2011 14:27:15 +0100
Subject: [PATCH 2/8] php: don't use broken wrapper for mkdir
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+
+update patch to version 7.4.4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
Upstream-Status: Inappropriate
- Makefile.global | 2 +-
+ build/Makefile.global | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/Makefile.global b/Makefile.global
+diff --git a/build/Makefile.global b/build/Makefile.global
index ff858c2..ae554b4 100644
---- a/Makefile.global
-+++ b/Makefile.global
+--- a/build/Makefile.global
++++ b/build/Makefile.global
@@ -1,4 +1,4 @@
-mkinstalldirs = $(top_srcdir)/build/shtool mkdir -p
+mkinstalldirs = mkdir -p
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php.m4-don-t-unset-cache-variables.patch
index 51dbe269c..0d721ec50 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php.m4-don-t-unset-cache-variables.patch
@@ -1,7 +1,4 @@
-From d2679c89c0b15b90e5360b4863258a7955e5f4e5 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Tue, 12 Feb 2019 15:59:19 +0800
-Subject: [PATCH] acinclude.m4: don't unset cache variables
+php.m4: don't unset cache variables
Unsetting prevents cache variable from being passed to configure.
@@ -9,17 +6,17 @@ Upstream-Status: Inappropriate [OE-specific]
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-update patch to version 7.3.2
+update this patch to 7.4.4, acinclude.m4 move to build/php.m4
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
- acinclude.m4 | 4 ----
+ build/php.m4 | 4 ----
1 file changed, 4 deletions(-)
-diff --git a/acinclude.m4 b/acinclude.m4
-index 25f900d..2641969 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -1921,8 +1921,6 @@ define([phpshift],[ifelse(index([$@],[,]),-1,,[substr([$@],incr(index([$@],[,]))
+diff --git a/build/php.m4 b/build/php.m4
+index 5c45d13..218ec47 100644
+--- a/build/php.m4
++++ b/build/php.m4
+@@ -1587,8 +1587,6 @@ dnl PHP_CHECK_FUNC_LIB
dnl
AC_DEFUN([PHP_CHECK_FUNC_LIB],[
ifelse($2,,:,[
@@ -28,8 +25,8 @@ index 25f900d..2641969 100644
unset found
AC_CHECK_LIB($2, $1, [found=yes], [
AC_CHECK_LIB($2, __$1, [found=yes], [found=no])
-@@ -1954,8 +1952,6 @@ dnl in the default libraries and as a fall back in the specified library.
- dnl Defines HAVE_func and HAVE_library if found and adds the library to LIBS.
+@@ -1620,8 +1618,6 @@ dnl and as a fall back in the specified library. Defines HAVE_func and
+ dnl HAVE_library if found and adds the library to LIBS.
dnl
AC_DEFUN([PHP_CHECK_FUNC],[
- unset ac_cv_func_$1
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0048-Use-pkg-config-for-FreeType2-detection.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0048-Use-pkg-config-for-FreeType2-detection.patch
deleted file mode 100644
index f36ddac26..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0048-Use-pkg-config-for-FreeType2-detection.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= <ondrej@sury.org>
-Date: Mon, 22 Oct 2018 06:54:31 +0000
-Subject: Use pkg-config for FreeType2 detection
-
----
- ext/gd/config.m4 | 30 +++++++++++++++++++-----------
- 1 file changed, 19 insertions(+), 11 deletions(-)
-
-diff --git a/ext/gd/config.m4 b/ext/gd/config.m4
-index 498d870..d28c6ae 100644
---- a/ext/gd/config.m4
-+++ b/ext/gd/config.m4
-@@ -184,21 +184,29 @@ AC_DEFUN([PHP_GD_XPM],[
- AC_DEFUN([PHP_GD_FREETYPE2],[
- if test "$PHP_FREETYPE_DIR" != "no"; then
-
-- for i in $PHP_FREETYPE_DIR /usr/local /usr; do
-- if test -f "$i/bin/freetype-config"; then
-- FREETYPE2_DIR=$i
-- FREETYPE2_CONFIG="$i/bin/freetype-config"
-- break
-+ if test -z "$PKG_CONFIG"; then
-+ AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-+ fi
-+ if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then
-+ FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2`
-+ FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2`
-+ else
-+ for i in $PHP_FREETYPE_DIR /usr/local /usr; do
-+ if test -f "$i/bin/freetype-config"; then
-+ FREETYPE2_DIR=$i
-+ FREETYPE2_CONFIG="$i/bin/freetype-config"
-+ break
-+ fi
-+ done
-+
-+ if test -z "$FREETYPE2_DIR"; then
-+ AC_MSG_ERROR([freetype-config not found.])
- fi
-- done
-
-- if test -z "$FREETYPE2_DIR"; then
-- AC_MSG_ERROR([freetype-config not found.])
-+ FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
-+ FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
- fi
-
-- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
-- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
--
- PHP_EVAL_INCLINE($FREETYPE2_CFLAGS)
- PHP_EVAL_LIBLINE($FREETYPE2_LIBS, GD_SHARED_LIBADD)
- AC_DEFINE(HAVE_LIBFREETYPE,1,[ ])
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/70_mod_php5.conf b/meta-openembedded/meta-oe/recipes-devtools/php/php/70_mod_php5.conf
deleted file mode 100644
index 1de6fb11a..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/70_mod_php5.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# vim: ft=apache sw=4 ts=4
-<IfDefine PHP5>
- # Load the module first
- <IfModule !sapi_apache2.c>
- LoadModule php5_module lib/apache2/modules/libphp5.so
- </IfModule>
-
- # Set it to handle the files
- AddHandler php5-script .php .phtml .php3 .php4 .php5
- AddType application/x-httpd-php-source .phps
- DirectoryIndex index.html index.html.var index.php index.phtml
-</IfDefine>
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/CVE-2019-6978.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/CVE-2019-6978.patch
deleted file mode 100644
index b7cdfd964..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/CVE-2019-6978.patch
+++ /dev/null
@@ -1,192 +0,0 @@
-From 089f7c0bc28d399b0420aa6ef058e4c1c120b2ae Mon Sep 17 00:00:00 2001
-From: "Christoph M. Becker" <cmbecker69@gmx.de>
-Date: Sat, 19 Jan 2019 10:35:39 +0100
-Subject: [PATCH] Sync with upstream
-
-Even though libgd/libgd#492 is not a relevant bug fix for PHP, since
-the binding doesn't use the `gdImage*Ptr()` functions at all, we're
-porting the fix to stay in sync here.
----
- ext/gd/libgd/gd_gif_out.c | 20 +++++++++++++++++---
- ext/gd/libgd/gd_jpeg.c | 17 ++++++++++++++---
- ext/gd/libgd/gd_wbmp.c | 18 +++++++++++++++---
- 3 files changed, 46 insertions(+), 9 deletions(-)
-
-Upstream-Status: Backport [http://git.php.net/?p=php-src.git;a=commit;h=089f7c0bc28d399b0420aa6ef058e4c1c120b2ae]
-CVE: CVE-2019-6978
-
-Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
-
-diff --git a/ext/gd/libgd/gd_gif_out.c b/ext/gd/libgd/gd_gif_out.c
-index 1f2a6b936a..2e1f38af70 100644
---- a/ext/gd/libgd/gd_gif_out.c
-+++ b/ext/gd/libgd/gd_gif_out.c
-@@ -97,12 +97,18 @@ static void cl_hash (register count_int chsize, GifCtx *ctx);
- static void char_init (GifCtx *ctx);
- static void char_out (int c, GifCtx *ctx);
- static void flush_char (GifCtx *ctx);
-+
-+static int _gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out);
-+
- void * gdImageGifPtr (gdImagePtr im, int *size)
- {
- void *rv;
- gdIOCtx *out = gdNewDynamicCtx (2048, NULL);
-- gdImageGifCtx (im, out);
-- rv = gdDPExtractData (out, size);
-+ if (!_gdImageGifCtx(im, out)) {
-+ rv = gdDPExtractData(out, size);
-+ } else {
-+ rv = NULL;
-+ }
- out->gd_free (out);
- return rv;
- }
-@@ -115,6 +121,12 @@ void gdImageGif (gdImagePtr im, FILE * outFile)
- }
-
- void gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)
-+{
-+ _gdImageGifCtx(im, out);
-+}
-+
-+/* returns 0 on success, 1 on failure */
-+static int _gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)
- {
- gdImagePtr pim = 0, tim = im;
- int interlace, BitsPerPixel;
-@@ -125,7 +137,7 @@ void gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)
- based temporary image. */
- pim = gdImageCreatePaletteFromTrueColor(im, 1, 256);
- if (!pim) {
-- return;
-+ return 1;
- }
- tim = pim;
- }
-@@ -138,6 +150,8 @@ void gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)
- /* Destroy palette based temporary image. */
- gdImageDestroy( pim);
- }
-+
-+ return 0;
- }
-
- static int
-diff --git a/ext/gd/libgd/gd_jpeg.c b/ext/gd/libgd/gd_jpeg.c
-index 8cf71fcbc9..ef46c4a22c 100644
---- a/ext/gd/libgd/gd_jpeg.c
-+++ b/ext/gd/libgd/gd_jpeg.c
-@@ -132,6 +132,7 @@ const char * gdJpegGetVersionString()
- }
- }
-
-+static int _gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality);
-
- /*
- * Write IM to OUTFILE as a JFIF-formatted JPEG image, using quality
-@@ -153,8 +154,11 @@ void *gdImageJpegPtr (gdImagePtr im, int *size, int quality)
- {
- void *rv;
- gdIOCtx *out = gdNewDynamicCtx (2048, NULL);
-- gdImageJpegCtx (im, out, quality);
-- rv = gdDPExtractData (out, size);
-+ if (!_gdImageJpegCtx(im, out, quality)) {
-+ rv = gdDPExtractData(out, size);
-+ } else {
-+ rv = NULL;
-+ }
- out->gd_free (out);
-
- return rv;
-@@ -163,6 +167,12 @@ void *gdImageJpegPtr (gdImagePtr im, int *size, int quality)
- void jpeg_gdIOCtx_dest (j_compress_ptr cinfo, gdIOCtx * outfile);
-
- void gdImageJpegCtx (gdImagePtr im, gdIOCtx * outfile, int quality)
-+{
-+ _gdImageJpegCtx(im, outfile, quality);
-+}
-+
-+/* returns 0 on success, 1 on failure */
-+static int _gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality)
- {
- struct jpeg_compress_struct cinfo;
- struct jpeg_error_mgr jerr;
-@@ -184,7 +194,7 @@ void gdImageJpegCtx (gdImagePtr im, gdIOCtx * outfile, int quality)
- if (row) {
- gdFree (row);
- }
-- return;
-+ return 1;
- }
-
- cinfo.err->error_exit = fatal_jpeg_error;
-@@ -277,6 +287,7 @@ void gdImageJpegCtx (gdImagePtr im, gdIOCtx * outfile, int quality)
- jpeg_finish_compress (&cinfo);
- jpeg_destroy_compress (&cinfo);
- gdFree (row);
-+ return 0;
- }
-
- gdImagePtr gdImageCreateFromJpeg (FILE * inFile)
-diff --git a/ext/gd/libgd/gd_wbmp.c b/ext/gd/libgd/gd_wbmp.c
-index 55ced3443d..fd9edad2ca 100644
---- a/ext/gd/libgd/gd_wbmp.c
-+++ b/ext/gd/libgd/gd_wbmp.c
-@@ -82,6 +82,7 @@ int gd_getin (void *in)
- return (gdGetC((gdIOCtx *) in));
- }
-
-+static int _gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out);
-
- /* gdImageWBMPCtx
- ** --------------
-@@ -93,6 +94,12 @@ int gd_getin (void *in)
- ** out: the stream where to write
- */
- void gdImageWBMPCtx (gdImagePtr image, int fg, gdIOCtx * out)
-+{
-+ _gdImageWBMPCtx(image, fg, out);
-+}
-+
-+/* returns 0 on success, 1 on failure */
-+static int _gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out)
- {
- int x, y, pos;
- Wbmp *wbmp;
-@@ -100,7 +107,7 @@ void gdImageWBMPCtx (gdImagePtr image, int fg, gdIOCtx * out)
- /* create the WBMP */
- if ((wbmp = createwbmp (gdImageSX (image), gdImageSY (image), WBMP_WHITE)) == NULL) {
- gd_error("Could not create WBMP");
-- return;
-+ return 1;
- }
-
- /* fill up the WBMP structure */
-@@ -116,7 +123,9 @@ void gdImageWBMPCtx (gdImagePtr image, int fg, gdIOCtx * out)
-
- /* write the WBMP to a gd file descriptor */
- if (writewbmp (wbmp, &gd_putout, out)) {
-+ freewbmp(wbmp);
- gd_error("Could not save WBMP");
-+ return 1;
- }
- /* des submitted this bugfix: gdFree the memory. */
- freewbmp(wbmp);
-@@ -204,8 +213,11 @@ void * gdImageWBMPPtr (gdImagePtr im, int *size, int fg)
- {
- void *rv;
- gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
-- gdImageWBMPCtx(im, fg, out);
-- rv = gdDPExtractData(out, size);
-+ if (!_gdImageWBMPCtx(im, fg, out)) {
-+ rv = gdDPExtractData(out, size);
-+ } else {
-+ rv = NULL;
-+ }
- out->gd_free(out);
-
- return rv;
---
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch
index ecf7d8720..9ec8a89b5 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch
@@ -1,32 +1,33 @@
-From 17cc5645f3acf943a5a06465d09d0ebcfea987bd Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Wed, 2 Nov 2011 16:54:57 +0100
-Subject: [PATCH] Upstream-Status: Pending
+Subject: [PATCH] From 17cc5645f3acf943a5a06465d09d0ebcfea987bd Mon Sep 17
+ 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Wed, 2 Nov
+ 2011 16:54:57 +0100 Subject: [PATCH] Upstream-Status: Pending
+update patch to version 7.4.4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
- acinclude.m4 | 3 ++-
+ build/php.m4 | 3 ++-
ext/iconv/config.m4 | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
-diff --git a/acinclude.m4 b/acinclude.m4
-index d32766a..ad5166e 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -2445,7 +2445,8 @@ AC_DEFUN([PHP_SETUP_ICONV], [
- dnl Check libc first if no path is provided in --with-iconv
- dnl
+diff --git a/build/php.m4 b/build/php.m4
+index 7392876..5c45d13 100644
+--- a/build/php.m4
++++ b/build/php.m4
+@@ -1950,7 +1950,8 @@ AC_DEFUN([PHP_SETUP_ICONV], [
+ echo > ext/iconv/php_iconv_supports_errno.h
+ dnl Check libc first if no path is provided in --with-iconv.
- if test "$PHP_ICONV" = "yes"; then
+ dnl must check against no, not against yes as PHP_ICONV can also include a path, which implies yes
+ if test "$PHP_ICONV" != "no"; then
- dnl Reset LIBS temporarily as it may have already been included
- dnl -liconv in.
+ dnl Reset LIBS temporarily as it may have already been included -liconv in.
LIBS_save="$LIBS"
+ LIBS=
diff --git a/ext/iconv/config.m4 b/ext/iconv/config.m4
-index 6a05697..973e750 100644
+index fe9b47a..b6b632f 100644
--- a/ext/iconv/config.m4
+++ b/ext/iconv/config.m4
-@@ -15,7 +15,7 @@ if test "$PHP_ICONV" != "no"; then
+@@ -14,7 +14,7 @@ if test "$PHP_ICONV" != "no"; then
if test "$iconv_avail" != "no"; then
if test -z "$ICONV_DIR"; then
@@ -35,3 +36,6 @@ index 6a05697..973e750 100644
if test -f "$i/include/iconv.h" || test -f "$i/include/giconv.h"; then
PHP_ICONV_PREFIX="$i"
break
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch
index 16359af9f..ebe5f6a93 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch
@@ -1,32 +1,19 @@
-From c084c8349d1780980e232cb28b60a109e3d89438 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Wed, 2 Nov 2011 16:54:57 +0100
-Subject: [PATCH] Upstream-Status: Pending
+Subject: [PATCH] From c084c8349d1780980e232cb28b60a109e3d89438 Mon Sep 17
+ 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Wed, 2 Nov
+ 2011 16:54:57 +0100 Subject: [PATCH] Upstream-Status: Pending
+update patch to version 7.4.4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
- acinclude.m4 | 2 +-
ext/imap/config.m4 | 10 ++--------
- 2 files changed, 3 insertions(+), 9 deletions(-)
+ 1 file changed, 2 insertions(+), 8 deletions(-)
-diff --git a/acinclude.m4 b/acinclude.m4
-index ad5166e..f6a55ec 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -2350,7 +2350,7 @@ AC_DEFUN([PHP_SETUP_OPENSSL],[
- PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl"
- fi
-
-- for i in $PHP_OPENSSL_DIR; do
-+ for i in $PHP_OPENSSL_DIR $PHP_OPENSSL_DIR/usr; do
- if test -r $i/include/openssl/evp.h; then
- OPENSSL_INCDIR=$i/include
- fi
diff --git a/ext/imap/config.m4 b/ext/imap/config.m4
-index badb6e2..8ff803c 100644
+index 5086a31..0e938bd 100644
--- a/ext/imap/config.m4
+++ b/ext/imap/config.m4
-@@ -109,7 +109,7 @@ if test "$PHP_IMAP" != "no"; then
- PHP_NEW_EXTENSION(imap, php_imap.c, $ext_shared)
+@@ -110,7 +110,7 @@ if test "$PHP_IMAP" != "no"; then
+ PHP_NEW_EXTENSION(imap, php_imap.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
AC_DEFINE(HAVE_IMAP,1,[ ])
- for i in $PHP_IMAP /usr/local /usr; do
@@ -34,7 +21,7 @@ index badb6e2..8ff803c 100644
IMAP_INC_CHK()
el[]IMAP_INC_CHK(/include/c-client)
el[]IMAP_INC_CHK(/include/imap)
-@@ -198,13 +198,7 @@ if test "$PHP_IMAP" != "no"; then
+@@ -199,13 +199,7 @@ if test "$PHP_IMAP" != "no"; then
AC_MSG_ERROR(Cannot find rfc822.h. Please check your c-client installation.)
fi
@@ -49,3 +36,6 @@ index badb6e2..8ff803c 100644
IMAP_LIB=$lib
IMAP_LIB_CHK($PHP_LIBDIR)
IMAP_LIB_CHK(c-client)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch
index 336cf0d62..eb73bc440 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch
@@ -1,24 +1,25 @@
-From 08962a56f69963e01892d98ca5b75de8354bd3f5 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Wed, 2 Nov 2011 16:54:57 +0100
-Subject: [PATCH] Fix phar packaging
+Subject: [PATCH] From 08962a56f69963e01892d98ca5b75de8354bd3f5 Mon Sep 17
+ 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Wed, 2 Nov
+ 2011 16:54:57 +0100 Subject: [PATCH] Fix phar packaging
Inherited from OE-Classic, with some additions to fix host paths leaking
into the target package.
Upstream-Status: Inappropriate [config]
+update patch to version 7.4.4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
ext/phar/Makefile.frag | 17 +++--------------
1 file changed, 3 insertions(+), 14 deletions(-)
diff --git a/ext/phar/Makefile.frag b/ext/phar/Makefile.frag
-index 0e3713f..22f7898 100644
+index 6442f33..6145412 100644
--- a/ext/phar/Makefile.frag
+++ b/ext/phar/Makefile.frag
@@ -10,20 +10,9 @@ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
- PHP_PHARCMD_SETTINGS = -n -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0 -d 'safe_mode=0'
+ PHP_PHARCMD_SETTINGS = -n -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0
PHP_PHARCMD_EXECUTABLE = ` \
- if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \
- $(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
@@ -34,9 +35,12 @@ index 0e3713f..22f7898 100644
- $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
- fi;`
-PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
-+ $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; `
++ $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; `
+
+PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
$(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc
-@test -d $(builddir)/phar || mkdir $(builddir)/phar
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch
index 80409000d..4aec4812f 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch
@@ -1,22 +1,26 @@
-From d251b5aa3d23803d016ca16818e2e1d2f2b70a02 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Wed, 2 Nov 2011 16:54:57 +0100
-Subject: [PATCH] Upstream-Status: Inappriate
+Subject: [PATCH] rom d251b5aa3d23803d016ca16818e2e1d2f2b70a02 Mon Sep 17
+ 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Wed, 2 Nov
+ 2011 16:54:57 +0100 Subject: [PATCH] Upstream-Status: Inappriate
+update patch to version 7.4.4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
sapi/cli/config.m4 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sapi/cli/config.m4 b/sapi/cli/config.m4
-index 2168151..20a81db 100644
+index 917d45f..aaf1e27 100644
--- a/sapi/cli/config.m4
+++ b/sapi/cli/config.m4
-@@ -50,7 +50,7 @@ if test "$PHP_CLI" != "no"; then
+@@ -47,7 +47,7 @@ if test "$PHP_CLI" != "no"; then
esac
- dnl Set executable for tests
+ dnl Set executable for tests.
- PHP_EXECUTABLE="\$(top_builddir)/\$(SAPI_CLI_PATH)"
+ PHP_EXECUTABLE="${PHP_NATIVE_DIR}/php"
PHP_SUBST(PHP_EXECUTABLE)
- dnl Expose to Makefile
+ dnl Expose to Makefile.
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.11.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.4.bb
index e7fb847fa..ff4c28e13 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.11.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.4.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.php.net"
SECTION = "console/network"
LICENSE = "PHP-3.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fb07bfc51f6d5e0c30b65d9701233b2e"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7e571b888d585b31f9ef5edcc647fa30"
BBCLASSEXTEND = "native"
DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native"
@@ -13,11 +13,9 @@ PHP_MAJOR_VERSION = "${@d.getVar('PV').split('.')[0]}"
SRC_URI = "http://php.net/distributions/php-${PV}.tar.bz2 \
file://0001-php-don-t-use-broken-wrapper-for-mkdir.patch \
- file://0001-acinclude.m4-don-t-unset-cache-variables.patch \
- file://0048-Use-pkg-config-for-FreeType2-detection.patch \
- file://0001-Use-pkg-config-for-libxml2-detection.patch \
file://debian-php-fixheader.patch \
- file://CVE-2019-6978.patch \
+ file://0001-configure.ac-don-t-include-build-libtool.m4.patch \
+ file://0001-php.m4-don-t-unset-cache-variables.patch \
"
SRC_URI_append_class-target = " \
@@ -34,10 +32,10 @@ SRC_URI_append_class-target = " \
file://xfail_two_bug_tests.patch \
"
S = "${WORKDIR}/php-${PV}"
-SRC_URI[md5sum] = "21b710b4126d4d54714de9693a6c7b0d"
-SRC_URI[sha256sum] = "92d1ff4b13c7093635f1ec338a5e6891ca99b10e65fbcadd527e5bb84d11b5e7"
+SRC_URI[md5sum] = "262c258a3b8b5699fcca89a64e58758c"
+SRC_URI[sha256sum] = "308e8f4182ec8a2767b0b1b8e1e7c69fb149b37cfb98ee4a37475e082fa9829f"
-inherit autotools pkgconfig pythonnative gettext
+inherit autotools pkgconfig python3native gettext
# phpize is not scanned for absolute paths by default (but php-config is).
#
@@ -55,7 +53,6 @@ COMMON_EXTRA_OECONF = "--enable-sockets \
--libdir=${PHP_LIBDIR} \
"
EXTRA_OECONF = "--enable-mbstring \
- --enable-wddx \
--enable-fpm \
--with-libdir=${baselib} \
--with-gettext=${STAGING_LIBDIR}/.. \
@@ -107,6 +104,7 @@ PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
PACKAGECONFIG[opcache] = "--enable-opcache,--disable-opcache"
PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
PACKAGECONFIG[valgrind] = "--with-valgrind=${STAGING_DIR_TARGET}/usr,--with-valgrind=no,valgrind"
+PACKAGECONFIG[mbregex] = "--enable-mbregex, --disable-mbregex, oniguruma"
export PHP_NATIVE_DIR = "${STAGING_BINDIR_NATIVE}"
export PHP_PEAR_PHP_BIN = "${STAGING_BINDIR_NATIVE}/php"
@@ -149,16 +147,12 @@ do_install_prepend_class-target() {
# fixme
do_install_append_class-target() {
install -d ${D}${sysconfdir}/
- if [ -d ${RECIPE_SYSROOT_NATIVE}${sysconfdir} ];then
- install -m 0644 ${RECIPE_SYSROOT_NATIVE}${sysconfdir}/pear.conf ${D}${sysconfdir}/
- fi
rm -rf ${D}/${TMPDIR}
rm -rf ${D}/.registry
rm -rf ${D}/.channels
rm -rf ${D}/.[a-z]*
rm -rf ${D}/var
rm -f ${D}/${sysconfdir}/php-fpm.conf.default
- sed -i 's:${STAGING_DIR_NATIVE}::g' ${D}${sysconfdir}/pear.conf
install -m 0644 ${WORKDIR}/php-fpm.conf ${D}/${sysconfdir}/php-fpm.conf
install -d ${D}/${sysconfdir}/apache2/conf.d
install -m 0644 ${WORKDIR}/php-fpm-apache.conf ${D}/${sysconfdir}/apache2/conf.d/php-fpm.conf
diff --git a/meta-openembedded/meta-oe/recipes-devtools/ply/ply_git.bb b/meta-openembedded/meta-oe/recipes-devtools/ply/ply_git.bb
new file mode 100644
index 000000000..7d693b36d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/ply/ply_git.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Ply: A light-weight dynamic tracer for eBPF"
+HOMEPAGE = "https://github.com/iovisor/ply"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS += "bison-native"
+
+SRC_URI = "git://github.com/iovisor/ply"
+SRCREV = "aa5b9ac31307ec1acece818be334ef801c802a12"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep
+
+COMPATIBLE_HOST = "(x86_64.*|aarch64.*|arm.*|powerpc.*)-linux"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.2.bb b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.3.bb
index b92f82dec..94c389357 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.2.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.3.bb
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=cb901168715f4782a2b06c3ddaefa558"
DEPENDS = "protobuf-native protobuf"
-SRCREV = "1390409f4ee4e26d0635310995b516eb702c3f9e"
+SRCREV = "f20a3fa131c275a0e795d99a28f94b4dbbb5af26"
SRC_URI = "git://github.com/protobuf-c/protobuf-c.git \
file://0001-avoid-race-condition.patch \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.10.1.bb b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.11.4.bb
index 58526f131..4d6c5b255 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.10.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.11.4.bb
@@ -10,9 +10,9 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=37b5762e07f0af8c74ce80a8bda4266b"
DEPENDS = "zlib"
DEPENDS_append_class-target = " protobuf-native"
-SRCREV = "d09d649aea36f02c03f8396ba39a8d4db8a607e4"
+SRCREV = "d0bfd5221182da1a7cc280f3337b5e41a89539cf"
-SRC_URI = "git://github.com/google/protobuf.git;branch=3.10.x \
+SRC_URI = "git://github.com/google/protobuf.git;branch=3.11.x \
file://run-ptest \
file://0001-protobuf-fix-configure-error.patch \
file://0001-Makefile.am-include-descriptor.cc-when-building-libp.patch \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.10.bb b/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.10.bb
index d48ad3751..69e66289c 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.10.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.10.bb
@@ -13,6 +13,8 @@ SRC_URI = "https://github.com/zeux/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
SRC_URI[md5sum] = "f97237e9908201c6d8536210747b66af"
SRC_URI[sha256sum] = "55f399fbb470942410d348584dc953bcaec926415d3462f471ef350f29b5870a"
+UPSTREAM_CHECK_URI = "https://github.com/zeux/${BPN}/releases"
+
inherit cmake
EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-cpuset_1.6.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python-cpuset_1.6.bb
deleted file mode 100644
index 1255a51f7..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/python/python-cpuset_1.6.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Cpuset is a Python application to make using the cpusets facilities in the Linux kernel easier"
-SECTION = "devel/python"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-S = "${WORKDIR}/git"
-SRCREV = "6c46d71a1c6ee711063153b9f7787280128f7252"
-SRC_URI = "git://github.com/lpechacek/cpuset.git;protocol=https;"
-
-inherit distutils
-
-RDEPENDS_${PN} = "\
- python-core \
- python-re \
- python-logging \
- python-textutils \
- python-unixadmin \
- "
diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-distutils-extra.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python-distutils-extra.bb
deleted file mode 100644
index eb84f7436..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/python/python-distutils-extra.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require python-distutils-extra.inc
-
-inherit setuptools
-
-RDEPENDS_${PN} = "\
- python-distutils \
-"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.3.0.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.3.0.bb
deleted file mode 100644
index 1636f7371..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.3.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "The concurrent.futures module provides a high-level interface for asynchronously executing callables."
-SECTION = "devel/python"
-LICENSE = "PSF"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=834d982f973c48b6d662b5944c5ab567"
-HOMEPAGE = "https://github.com/agronholm/pythonfutures"
-DEPENDS = "python"
-
-SRC_URI[md5sum] = "b43a39ae1475e3fd6940f2b4f7214675"
-SRC_URI[sha256sum] = "7e033af76a5e35f58e56da7a91e687706faf4e7bdfb2cbc3f2cca6b9bcda9794"
-
-inherit pypi setuptools
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-jsmin_2.2.2.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python-jsmin_2.2.2.bb
deleted file mode 100644
index d00d1e2a0..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/python/python-jsmin_2.2.2.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-DESCRIPTION = "JavaScript minifier."
-HOMEPAGE = "https://github.com/tikitu/jsmin/"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3a3301ce2ad647e172f4a1016c67324d"
-
-inherit setuptools pypi
-SRC_URI[md5sum] = "00e7a3179a4591aab2ee707b3214e2fd"
-SRC_URI[sha256sum] = "b6df99b2cd1c75d9d342e4335b535789b8da9107ec748212706ef7bbe5c2553b"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject/0001-python-pyobject-fix-install-dir.patch b/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject/0001-python-pyobject-fix-install-dir.patch
deleted file mode 100644
index 848cda5aa..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject/0001-python-pyobject-fix-install-dir.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From 8b4648d5bc50cb1c14961ed38bf97d5a693f5237 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Mon, 24 Jun 2019 14:51:52 +0800
-Subject: [PATCH] python-pyobject: fix the wrong install dir for python2
-
-* after upgrade to 3.32.1, pygobject switch to build with meson, and
- default python option is python3, switch to python2
-
-* default install dir get by python.install_sources and
-python.get_install_dir is get from python's sysconfig info,
-not like python3, for python2, the install dir include the basedir of
-recipe-sysroot-native, add stagedir option for user to config
-correct install dir.
-
-Upstream-Status: Inappropriate [oe-specific]
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- gi/meson.build | 7 +++----
- gi/overrides/meson.build | 4 ++--
- gi/repository/meson.build | 4 ++--
- meson.build | 4 +++-
- meson_options.txt | 1 +
- pygtkcompat/meson.build | 4 ++--
- 6 files changed, 13 insertions(+), 11 deletions(-)
-
-diff --git a/gi/meson.build b/gi/meson.build
-index c1afd68..249c23d 100644
---- a/gi/meson.build
-+++ b/gi/meson.build
-@@ -60,9 +60,8 @@ python_sources = [
- 'types.py',
- ]
-
--python.install_sources(python_sources,
-- pure : false,
-- subdir : 'gi'
-+install_data(python_sources,
-+ install_dir: join_paths(stagedir, 'gi')
- )
-
- # https://github.com/mesonbuild/meson/issues/4117
-@@ -76,7 +75,7 @@ giext = python.extension_module('_gi', sources,
- dependencies : [python_ext_dep, glib_dep, gi_dep, ffi_dep],
- include_directories: include_directories('..'),
- install: true,
-- subdir : 'gi',
-+ install_dir: join_paths(stagedir, 'gi'),
- c_args: pyext_c_args + main_c_args
- )
-
-diff --git a/gi/overrides/meson.build b/gi/overrides/meson.build
-index 6ff073f..964fef1 100644
---- a/gi/overrides/meson.build
-+++ b/gi/overrides/meson.build
-@@ -10,6 +10,6 @@ python_sources = [
- 'keysyms.py',
- '__init__.py']
-
--python.install_sources(python_sources,
-- subdir : join_paths('gi', 'overrides')
-+install_data(python_sources,
-+ install_dir: join_paths(stagedir, 'gi', 'overrides')
- )
-diff --git a/gi/repository/meson.build b/gi/repository/meson.build
-index fdc136b..fc88adf 100644
---- a/gi/repository/meson.build
-+++ b/gi/repository/meson.build
-@@ -1,5 +1,5 @@
- python_sources = ['__init__.py']
-
--python.install_sources(python_sources,
-- subdir : join_paths('gi', 'repository')
-+install_data(python_sources,
-+ install_dir: join_paths(stagedir, 'gi', 'repository')
- )
-diff --git a/meson.build b/meson.build
-index d27a005..ecd55d5 100644
---- a/meson.build
-+++ b/meson.build
-@@ -165,12 +165,14 @@ else
- py_version = pygobject_version
- endif
-
-+stagedir = get_option('stagedir')
-+
- pkginfo_conf = configuration_data()
- pkginfo_conf.set('VERSION', py_version)
- configure_file(input : 'PKG-INFO.in',
- output : 'PyGObject-@0@.egg-info'.format(py_version),
- configuration : pkginfo_conf,
-- install_dir : python.get_install_dir(pure : false))
-+ install_dir : stagedir)
-
- subdir('gi')
- subdir('pygtkcompat')
-diff --git a/meson_options.txt b/meson_options.txt
-index 5dd4cbc..21def16 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -1,3 +1,4 @@
- option('python', type : 'string', value : 'python3')
- option('pycairo', type : 'boolean', value : true, description : 'build with pycairo integration')
- option('tests', type : 'boolean', value : true, description : 'build unit tests')
-+option('stagedir', type : 'string', value : '')
-diff --git a/pygtkcompat/meson.build b/pygtkcompat/meson.build
-index 9e43c44..ef3322d 100644
---- a/pygtkcompat/meson.build
-+++ b/pygtkcompat/meson.build
-@@ -3,6 +3,6 @@ python_sources = [
- 'generictreemodel.py',
- 'pygtkcompat.py']
-
--python.install_sources(python_sources,
-- subdir : 'pygtkcompat'
-+install_data(python_sources,
-+ install_dir: join_paths(stagedir, 'pygtkcompat')
- )
---
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.34.0.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.34.0.bb
deleted file mode 100644
index 0cbd07f66..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.34.0.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "Python GObject bindings"
-HOMEPAGE = "http://www.pygtk.org/"
-SECTION = "devel/python"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
-
-GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase gobject-introspection distutils-base upstream-version-is-even
-
-DEPENDS += "python glib-2.0"
-
-SRCNAME = "pygobject"
-SRC_URI = " \
- http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.xz \
- file://0001-python-pyobject-fix-install-dir.patch \
-"
-
-SRC_URI[md5sum] = "ca1dc4f31c1d6d283758e8f315a88ab6"
-SRC_URI[sha256sum] = "87e2c9aa785f352ef111dcc5f63df9b85cf6e05e52ff04f803ffbebdacf5271a"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-UNKNOWN_CONFIGURE_WHITELIST = "introspection"
-
-PACKAGECONFIG ??= "stagedir"
-
-PACKAGECONFIG[cairo] = "-Dpycairo=true,-Dpycairo=false, cairo python-pycairo, python-pycairo"
-PACKAGECONFIG[tests] = "-Dtests=true, -Dtests=false, , "
-PACKAGECONFIG[python] = "-Dpython=python3, -Dpython=python2, , "
-PACKAGECONFIG[stagedir] = "-Dstagedir=${PYTHON_SITEPACKAGES_DIR}, -Dstagedir="", , "
-
-BBCLASSEXTEND = "native"
-RDEPENDS_${PN} = "python-pkgutil"
-RDEPENDS_${PN}_class-native = ""
-
-do_install_append() {
- # Remove files that clash with python3-pygobject; their content is same
- rm -r ${D}${includedir}/pygobject-3.0/pygobject.h ${D}${libdir}/pkgconfig
-}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-pytoml.inc b/meta-openembedded/meta-oe/recipes-devtools/python/python-pytoml.inc
deleted file mode 100644
index 180531d75..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/python/python-pytoml.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "A TOML-0.4.0 parser/writer for Python"
-HOMEPAGE = "https://pypi.python.org/pypi/pytoml/"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=cfff423699bdaef24331933ac4f56078"
-
-SRC_URI[md5sum] = "e59dd36a559dd2a876e4c149c69e947b"
-SRC_URI[sha256sum] = "8eecf7c8d0adcff3b375b09fe403407aa9b645c499e5ab8cac670ac4a35f61e7"
-
-inherit pypi
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-pytoml_0.1.21.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python-pytoml_0.1.21.bb
deleted file mode 100644
index 88fa95317..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/python/python-pytoml_0.1.21.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-pytoml.inc
diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-six_1.13.0.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python-six_1.13.0.bb
deleted file mode 100644
index af26e83d6..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/python/python-six_1.13.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require recipes-devtools/python/python-six.inc
diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-which_1.1.0.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python-which_1.1.0.bb
deleted file mode 100644
index 901fdc763..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/python/python-which_1.1.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "which.py -- a portable GNU which replacement"
-HOMEPAGE = "http://code.google.com/p/which/"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=030b09798681482b9ad12ac47be496ea"
-
-inherit setuptools pypi python-dir
-
-SRCREV = "425bdeeb2d87c36e2313dc4b8d69ff2bb5a02ee9"
-PYPI_SRC_URI = "git://github.com/trentm/which"
-
-S = "${WORKDIR}/git"
-
-do_install_append() {
- rmdir -p --ignore-fail-on-non-empty ${D}${STAGING_BINDIR_NATIVE}
- rmdir -p --ignore-fail-on-non-empty ${D}${datadir}
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.19.bb b/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.19.bb
deleted file mode 100644
index 3da15b842..000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.19.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require sip.inc
-
-DEPENDS = "python"
-
-inherit python-dir pythonnative
-
-PACKAGES += "python-sip"
-
-FILES_python-sip = "${libdir}/${PYTHON_DIR}/site-packages/"
-FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/.debug"
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.9.3.bb b/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.9.4.bb
index dba607c15..cfe461b8d 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.9.3.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.9.4.bb
@@ -10,8 +10,8 @@ DEPENDS_append_libc-musl = " argp-standalone"
inherit autotools
-# v0.9.3
-SRCREV = "e77780e7524c0a97f25313b205837191bbe9712a"
+# v0.9.4
+SRCREV = "5e422c0ec87b41d14e9ce8527983406718ef64e0"
SRC_URI = "git://github.com/namhyung/${BPN} \
"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb b/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb
index dc4fbf7f5..53856263f 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb
@@ -13,7 +13,7 @@ SRC_URI = "git://github.com/yasm/yasm.git"
S = "${WORKDIR}/git"
-inherit autotools gettext pythonnative
+inherit autotools gettext python3native
CACHED_CONFIGUREVARS = "CCLD_FOR_BUILD='${CC_FOR_BUILD}'"
diff --git a/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.16.bb b/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.16.bb
index 1b0af5549..db90f06f4 100644
--- a/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.16.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.16.bb
@@ -29,7 +29,7 @@ DEPENDS = "curl \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk+ libnotify xcb-util libxscrnsaver', '', d)} \
nettle \
"
-SRCREV = "a432e1ccbf864f99c7b29a1645de38056915f944"
+SRCREV = "e0e033af9fca3cca84a3417ea6531ae25be73a7a"
BRANCH = "client_release/7/${PV}"
SRC_URI = "git://github.com/BOINC/boinc;protocol=https;branch=${BRANCH} \
file://boinc-AM_CONDITIONAL.patch \
@@ -73,15 +73,16 @@ do_compile_prepend () {
sed -i -e 's|^sys_lib_dlsearch_path_spec=.*|sys_lib_dlsearch_path_spec=""|g' ${B}/${TARGET_SYS}-libtool
sed -i -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' ${B}/${TARGET_SYS}-libtool
}
+
do_install_append() {
if [ -e ${D}${nonarch_libdir}/systemd/system/boinc-client.service ]; then
- install -d ${D}${systemd_system_unitdir}
+ install -d ${D}${systemd_system_unitdir}
mv \
${D}${nonarch_libdir}/systemd/system/boinc-client.service \
${D}${systemd_system_unitdir}/boinc-client.service
rmdir --ignore-fail-on-non-empty ${D}${nonarch_libdir}/systemd/system \
- ${D}${nonarch_libdir}/systemd \
- ${D}${nonarch_libdir}
+ ${D}${nonarch_libdir}/systemd \
+ ${D}${nonarch_libdir}
fi
}
diff --git a/meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.7.bb b/meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.7.bb
index e4e454bda..70dbcaffb 100644
--- a/meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.7.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.7.bb
@@ -18,3 +18,5 @@ do_install_append () {
mv -v "${lib}" "$(echo ${lib} | sed s/-static//)"
done
}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20191125.bb b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20200330.bb
index a4e57f5c1..975311c92 100644
--- a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20191125.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20200330.bb
@@ -4,8 +4,8 @@
# Setting to PD as this is what the upstream has it as.
LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=3eb7c635434fafe23ef30fc263e63b2f"
+LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=262857ec5923f073fa06a1f1812225ea"
require byacc.inc
-SRC_URI[md5sum] = "6745a4fbf0723c4c9280fc3e568b3d1b"
-SRC_URI[sha256sum] = "071c2ebe36afaa8448b80e893473a681e63a3b8a4ed636c0d675780a02411cde"
+SRC_URI[md5sum] = "decf6e6b82ea2efae6bbad32d7777da8"
+SRC_URI[sha256sum] = "e099e2dd8a684d739ac6b9a0e43d468314a5bc34fd21466502d120b18df51fb0"
diff --git a/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles/python3.patch b/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles/python3.patch
new file mode 100644
index 000000000..a6f670126
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles/python3.patch
@@ -0,0 +1,16 @@
+--- a/modules/packages/apt_get
++++ b/modules/packages/apt_get
+@@ -1,4 +1,4 @@
+-#!/var/cfengine/bin/python
++#!/var/cfengine/bin/python3
+
+ import sys
+ import os
+--- a/modules/packages/apt_get.in
++++ b/modules/packages/apt_get.in
+@@ -1,4 +1,4 @@
+-#!@bindir@/python
++#!@bindir@/python3
+
+ import sys
+ import os
diff --git a/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.12.0.bb b/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.15.0.bb
index dda6af9c9..35ac85598 100644
--- a/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.12.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.15.0.bb
@@ -20,10 +20,11 @@ HOMEPAGE = "http://cfengine.com"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=9f76426f9ef8c6f6739fadd21d817a4f"
-SRC_URI = "https://cfengine-package-repos.s3.amazonaws.com/tarballs/${BP}.tar.gz"
-
-SRC_URI[md5sum] = "d59bd8c95620da816c382f749d425860"
-SRC_URI[sha256sum] = "1c50e3d8c702097e13a21258626d936d6ff2e6492e893dfe286ff0d6204d7a65"
+SRC_URI = "https://cfengine-package-repos.s3.amazonaws.com/tarballs/${BP}.tar.gz \
+ file://python3.patch \
+ "
+SRC_URI[md5sum] = "6d456fdd9bd24ff6617eeaa05efae602"
+SRC_URI[sha256sum] = "4a071c0c4ba7df9bad93144cff5fbc0566e5172afd66201072e3193b76c55a38"
inherit autotools
@@ -31,6 +32,10 @@ export EXPLICIT_VERSION="${PV}"
EXTRA_OECONF = "--prefix=${datadir}/cfengine"
+do_install_append() {
+ rm -rf ${D}${datadir}/cfengine/modules/packages/zypper ${D}${datadir}/cfengine/modules/packages/yum
+}
+
FILES_${PN} = "${datadir}/cfengine"
-RDEPENDS_${PN} += "python-core"
+RDEPENDS_${PN} += "python3-core"
diff --git a/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.12.0.bb b/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.15.0.bb
index 9d0123d8b..2d146bf88 100644
--- a/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.12.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.15.0.bb
@@ -11,18 +11,17 @@ its lifecycle. CFEngine takes systems from Build to Deploy, Manage and Audit."
HOMEPAGE = "http://cfengine.com"
LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f8b34828ab373d6b1bb4b0fc60a78494"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=233aa25e53983237cf0bd4c238af255f"
-DEPENDS = "attr tokyocabinet"
+DEPENDS = "attr tokyocabinet bison-native"
SRC_URI = "https://cfengine-package-repos.s3.amazonaws.com/tarballs/${BP}.tar.gz \
file://set-path-of-default-config-file.patch \
"
+SRC_URI[md5sum] = "d4dabfa46d8afa151be5610f184354e7"
+SRC_URI[sha256sum] = "fa53e137f850eb268a8e7ae4578b5db5dc383656341f5053dc1a353ed0288265"
-SRC_URI[md5sum] = "33ef12260db4b430352229f37f7cb0e5"
-SRC_URI[sha256sum] = "d71ba98a272390c6fa8bc20e8ea27f0050a0a72a3e6b206a4762b4646be332ec"
-
-inherit autotools systemd
+inherit autotools-brokensep systemd
export EXPLICIT_VERSION="${PV}"
@@ -67,6 +66,7 @@ EOF
install -m 0755 -D ${D}${sysconfdir}/init.d/cfengine3 ${D}${datadir}/${BPN}/cfengine3
sed -i -e 's#/etc/init.d#${datadir}/${BPN}#' ${D}${systemd_system_unitdir}/*.service
fi
+ rm -rf ${D}${datadir}/cfengine/modules/packages/zypper
}
RDEPENDS_${PN} += "${BPN}-masterfiles"
diff --git a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-Remove-including-sys-sysctl.h-on-glibc-based-systems.patch b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-Remove-including-sys-sysctl.h-on-glibc-based-systems.patch
index 3dee34cd0..7948788f9 100644
--- a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-Remove-including-sys-sysctl.h-on-glibc-based-systems.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-Remove-including-sys-sysctl.h-on-glibc-based-systems.patch
@@ -3,80 +3,29 @@ From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 27 Jul 2019 14:20:14 -0700
Subject: [PATCH] Remove including sys/sysctl.h on glibc based systems
-Glibc 2.30 has added deprecation notice and collectd detects it as warning [1]
+Glibc 2.30 has added deprecation notice and collectd detects it as
+warning [1]
Fixes
-sys/sysctl.h:21:2: error: "The <sys/sysctl.h> header is deprecated and will be removed." [-Werror,-W#warnings]
+sys/sysctl.h:21:2: error: "The <sys/sysctl.h> header is deprecated and
+will be removed." [-Werror,-W#warnings]
-[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=744e829637162bb7d5029632aacf341c64b86990
+[1]
+https://sourceware.org/git/?p=glibc.git;a=commit;h=744e829637162bb7d5029632aacf341c64b86990
-Upstream-Status: Submitted [https://github.com/collectd/collectd/pull/3234]
+Upstream-Status: Submitted
+[https://github.com/collectd/collectd/pull/3234]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- src/contextswitch.c | 2 +-
- src/memory.c | 2 +-
- src/swap.c | 2 +-
- src/uuid.c | 2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
+ src/processes.c | 2 +-
+ src/uptime.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
---- a/src/contextswitch.c
-+++ b/src/contextswitch.c
-@@ -26,7 +26,7 @@
- #include "common.h"
- #include "plugin.h"
-
--#ifdef HAVE_SYS_SYSCTL_H
-+#if defined(HAVE_SYS_SYSCTL_H) && !defined(__GLIBC__)
- #include <sys/sysctl.h>
- #endif
-
---- a/src/memory.c
-+++ b/src/memory.c
-@@ -28,7 +28,7 @@
- #include "common.h"
- #include "plugin.h"
-
--#ifdef HAVE_SYS_SYSCTL_H
-+#if defined(HAVE_SYS_SYSCTL_H) && !defined(__GLIBC__)
- #include <sys/sysctl.h>
- #endif
- #ifdef HAVE_SYS_VMMETER_H
---- a/src/swap.c
-+++ b/src/swap.c
-@@ -49,7 +49,7 @@
- #if HAVE_SYS_PARAM_H
- #include <sys/param.h>
- #endif
--#if HAVE_SYS_SYSCTL_H
-+#if defined(HAVE_SYS_SYSCTL_H) && !defined(__GLIBC__)
- #include <sys/sysctl.h>
- #endif
- #if HAVE_SYS_DKSTAT_H
---- a/src/uuid.c
-+++ b/src/uuid.c
-@@ -29,7 +29,7 @@
- #include "common.h"
- #include "plugin.h"
-
--#if HAVE_SYS_SYSCTL_H
-+#if defined(HAVE_SYS_SYSCTL_H) && !defined(__GLIBC__)
- #include <sys/sysctl.h>
- #endif
-
---- a/src/cpu.c
-+++ b/src/cpu.c
-@@ -60,7 +60,7 @@
-
- #if (defined(HAVE_SYSCTL) && HAVE_SYSCTL) || \
- (defined(HAVE_SYSCTLBYNAME) && HAVE_SYSCTLBYNAME)
--#ifdef HAVE_SYS_SYSCTL_H
-+#if defined(HAVE_SYS_SYSCTL_H) && !defined(__GLIBC__)
- #include <sys/sysctl.h>
- #endif
-
+diff --git a/src/processes.c b/src/processes.c
+index f83913a..9f71511 100644
--- a/src/processes.c
+++ b/src/processes.c
-@@ -82,7 +82,7 @@
+@@ -87,7 +87,7 @@
#if HAVE_MACH_VM_PROT_H
#include <mach/vm_prot.h>
#endif
@@ -85,6 +34,8 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
#include <sys/sysctl.h>
#endif
/* #endif HAVE_THREAD_INFO */
+diff --git a/src/uptime.c b/src/uptime.c
+index 0892bda..4b15150 100644
--- a/src/uptime.c
+++ b/src/uptime.c
@@ -33,7 +33,7 @@
@@ -96,3 +47,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
#include <sys/sysctl.h>
/* Using sysctl interface to retrieve the boot time on *BSD / Darwin / OS X
* systems */
+
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-conditionally-check-libvirt.patch b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-conditionally-check-libvirt.patch
deleted file mode 100644
index 5ee75cb4d..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-conditionally-check-libvirt.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 385bf1c2ec57942e17ee529e57eef0dcd99904e6 Mon Sep 17 00:00:00 2001
-From: Roy Li <rongqing.li@windriver.com>
-Date: Tue, 1 Sep 2015 17:00:33 +0800
-Subject: [PATCH] [PATCH] conditionally check libvirt
-
-Upstream-Statue: Pending
-
-check if libvirt is available only when a user wants to use libvirt
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
-
----
- configure.ac | 13 ++++++++-----
- 1 file changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 101d6f9f..a7eca97d 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -5758,11 +5758,14 @@ else
- with_libxml2="no (pkg-config doesn't know libxml-2.0)"
- fi
-
--$PKG_CONFIG --exists libvirt 2>/dev/null
--if test $? = 0; then
-- with_libvirt="yes"
--else
-- with_libvirt="no (pkg-config doesn't know libvirt)"
-+if test "x$enable_libvirt" = "xyes"; then
-+ $PKG_CONFIG --exists libvirt 2>/dev/null
-+ if test "$?" = "0"
-+ then
-+ with_libvirt="yes"
-+ else
-+ with_libvirt="no (pkg-config doesn't know libvirt)"
-+ fi
- fi
-
- if test "x$with_libxml2" = "xyes"; then
diff --git a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
index d2c726800..8d31e12f9 100644
--- a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
@@ -23,9 +23,9 @@ diff --git a/configure.ac b/configure.ac
index a7eca97d..560eb988 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -6794,6 +6794,7 @@ if test "x$enable_werror" != "xno"; then
- AM_CFLAGS="$AM_CFLAGS -Werror"
- AM_CXXFLAGS="$AM_CXXFLAGS -Werror"
+@@ -7101,6 +7101,7 @@ if test "x$GCC" = "xyes"; then
+ AM_CXXFLAGS="$AM_CXXFLAGS -Werror"
+ fi
fi
+AX_CHECK_COMPILE_FLAG([-Werror -Werror=format-truncation],[AM_CFLAGS="$AM_CFLAGS -Wno-error=format-truncation" AM_CXXFLAGS="$AM_CXXFLAGS -Wno-error=format-truncation"])
diff --git a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-fix-to-build-with-glibc-2.25.patch b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-fix-to-build-with-glibc-2.25.patch
index be942e5ef..1e140f975 100644
--- a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-fix-to-build-with-glibc-2.25.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-fix-to-build-with-glibc-2.25.patch
@@ -11,8 +11,8 @@ diff --git a/src/md.c b/src/md.c
index 3725f9a..202225b 100644
--- a/src/md.c
+++ b/src/md.c
-@@ -25,6 +25,7 @@
- #include "utils_ignorelist.h"
+@@ -26,6 +26,7 @@
+ #include "utils/ignorelist/ignorelist.h"
#include <sys/ioctl.h>
+#include <sys/sysmacros.h>
diff --git a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.8.1.bb b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.11.0.bb
index 0951ac076..a70e82e03 100644
--- a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.8.1.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.11.0.bb
@@ -9,17 +9,16 @@ SRC_URI = "http://collectd.org/files/collectd-${PV}.tar.bz2 \
file://collectd.init \
file://collectd.service \
file://no-gcrypt-badpath.patch \
- file://0001-conditionally-check-libvirt.patch \
file://0001-fix-to-build-with-glibc-2.25.patch \
file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch \
file://0005-Disable-new-gcc8-warnings.patch \
file://0006-libcollectdclient-Fix-string-overflow-errors.patch \
file://0001-Remove-including-sys-sysctl.h-on-glibc-based-systems.patch \
"
-SRC_URI[md5sum] = "bfce96c42cede5243028510bcc57c1e6"
-SRC_URI[sha256sum] = "e796fda27ce06377f491ad91aa286962a68c2b54076aa77a29673d53204453da"
+SRC_URI[md5sum] = "13b1c946f6684abe453e24b5cd80ec45"
+SRC_URI[sha256sum] = "37b10a806e34aa8570c1cafa6006c604796fae13cc2e1b3e630d33dcba9e5db2"
-inherit autotools pythonnative update-rc.d pkgconfig systemd
+inherit autotools python3native update-rc.d pkgconfig systemd
SYSTEMD_SERVICE_${PN} = "collectd.service"
diff --git a/meta-openembedded/meta-oe/recipes-extended/ddrescue/ddrescue_1.24.bb b/meta-openembedded/meta-oe/recipes-extended/ddrescue/ddrescue_1.25.bb
index 52bd11b1a..cf24354f2 100644
--- a/meta-openembedded/meta-oe/recipes-extended/ddrescue/ddrescue_1.24.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/ddrescue/ddrescue_1.25.bb
@@ -10,8 +10,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=76d6e300ffd8fb9d18bd9b136a9bba13 \
file://main_common.cc;beginline=5;endline=16;md5=3ec288b2676528cd2b069364e313016f"
SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.lz"
-SRC_URI[md5sum] = "8ac89f833c0df221723e33b447e230fe"
-SRC_URI[sha256sum] = "4b5d3feede70e3657ca6b3c7844f23131851cbb6af0cecc9721500f7d7021087"
+SRC_URI[md5sum] = "99fd7a28bf9953d88534c7ee9ab5bd2a"
+SRC_URI[sha256sum] = "ce538ebd26a09f45da67d3ad3f7431932428231ceec7a2d255f716fa231a1063"
# This isn't already added by base.bbclass
do_unpack[depends] += "lzip-native:do_populate_sysroot"
diff --git a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0002-Don-t-execute-processes-as-a-specific-user.patch b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0002-Don-t-execute-processes-as-a-specific-user.patch
new file mode 100644
index 000000000..181be25c7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0002-Don-t-execute-processes-as-a-specific-user.patch
@@ -0,0 +1,94 @@
+From bcca4c99394ba422d03a5e76f2a0023ef248824a Mon Sep 17 00:00:00 2001
+From: Andrei Gherzan <andrei.gherzan@windriver.com>
+Date: Tue, 18 Nov 2014 15:47:22 +0100
+Subject: [PATCH 2/4] Don't execute processes as a specific user.
+
+Upstream-Status: Inappropriate [Configuration Specific]
+Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com>
+---
+ systemd/dlt-adaptor-udp.service.cmake | 1 -
+ systemd/dlt-dbus.service.cmake | 1 -
+ systemd/dlt-example-user.service.cmake | 1 -
+ systemd/dlt-receive.service.cmake | 1 -
+ systemd/dlt-system.service.cmake | 1 -
+ systemd/dlt.service.cmake | 1 -
+ 6 files changed, 6 deletions(-)
+
+diff --git a/systemd/dlt-adaptor-udp.service.cmake b/systemd/dlt-adaptor-udp.service.cmake
+index 8dac1f2..ecf9f9e 100644
+--- a/systemd/dlt-adaptor-udp.service.cmake
++++ b/systemd/dlt-adaptor-udp.service.cmake
+@@ -21,9 +21,8 @@ Wants=dlt.service
+
+ [Service]
+ Type=simple
+-User=@DLT_USER@
+ ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-adaptor-udp -a @DLT_ADAPTOR_UDP_APPID@ -c @DLT_ADAPTOR_UDP_CTID@ -p @DLT_ADAPTOR_UDP_PORT@
+ LimitCORE=infinity
+
+ [Install]
+-WantedBy=multi-user.target
+\ No newline at end of file
++WantedBy=multi-user.target
+diff --git a/systemd/dlt-dbus.service.cmake b/systemd/dlt-dbus.service.cmake
+index 9baf3e9..74a7eac 100644
+--- a/systemd/dlt-dbus.service.cmake
++++ b/systemd/dlt-dbus.service.cmake
+@@ -20,7 +20,6 @@ Wants=dlt.service
+
+ [Service]
+ Type=simple
+-User=@DLT_USER@
+ ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-dbus
+ WatchdogSec=@DLT_WatchdogSec@
+ NotifyAccess=main
+diff --git a/systemd/dlt-example-user.service.cmake b/systemd/dlt-example-user.service.cmake
+index b665742..35009b0 100644
+--- a/systemd/dlt-example-user.service.cmake
++++ b/systemd/dlt-example-user.service.cmake
+@@ -21,6 +21,5 @@ Wants=dlt.service
+
+ [Service]
+ Type=simple
+-User=@DLT_USER@
+ ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-example-user "Hallo from GENIVI DLT example user application"
+-LimitCORE=infinity
+\ No newline at end of file
++LimitCORE=infinity
+diff --git a/systemd/dlt-receive.service.cmake b/systemd/dlt-receive.service.cmake
+index c07d447..8f88f00 100644
+--- a/systemd/dlt-receive.service.cmake
++++ b/systemd/dlt-receive.service.cmake
+@@ -22,6 +22,5 @@ Wants=dlt.service
+
+ [Service]
+ Type=simple
+-User=@DLT_USER@
+ ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-receive -o /tmp/dlt_receive_log.dlt localhost
+-LimitCORE=infinity
+\ No newline at end of file
++LimitCORE=infinity
+diff --git a/systemd/dlt-system.service.cmake b/systemd/dlt-system.service.cmake
+index 0e91f42..1a5b913 100755
+--- a/systemd/dlt-system.service.cmake
++++ b/systemd/dlt-system.service.cmake
+@@ -22,7 +22,6 @@ Wants=dlt.service
+
+ [Service]
+ Type=simple
+-User=@DLT_USER@
+ ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-system
+ WatchdogSec=@DLT_WatchdogSec@
+ NotifyAccess=main
+diff --git a/systemd/dlt.service.cmake b/systemd/dlt.service.cmake
+index 0b3ee2c..e4753a2 100755
+--- a/systemd/dlt.service.cmake
++++ b/systemd/dlt.service.cmake
+@@ -21,7 +21,6 @@ Documentation=man:dlt-daemon(1) man:dlt.conf(5)
+
+ [Service]
+ Type=simple
+-User=@DLT_USER@
+ ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-daemon
+ WatchdogSec=@DLT_WatchdogSec@
+ NotifyAccess=main
diff --git a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0004-Modify-systemd-config-directory.patch b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0004-Modify-systemd-config-directory.patch
new file mode 100644
index 000000000..ce028c0c5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0004-Modify-systemd-config-directory.patch
@@ -0,0 +1,24 @@
+From 9a5e655cf57301008cd61d53c8a410a7f397e650 Mon Sep 17 00:00:00 2001
+From: Andrei Gherzan <andrei.gherzan@windriver.com>
+Date: Tue, 18 Nov 2014 15:51:30 +0100
+Subject: [PATCH 4/4] Modify systemd config directory
+
+Upstream-Status: Inappropriate [Configuration Specific]
+Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com>
+---
+ systemd/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e6b44a2..0e885bf 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -201,7 +201,7 @@ if(WITH_SYSTEMD OR WITH_SYSTEMD_WATCHDOG OR WITH_SYSTEMD_JOURNAL)
+
+ set(systemd_SRCS ${PROJECT_SOURCE_DIR}/systemd/3rdparty/sd-daemon.c)
+
+- set(SYSTEMD_UNITDIR "${CMAKE_INSTALL_PREFIX}/lib/systemd/system" CACHE PATH
++ set(SYSTEMD_UNITDIR "/lib/systemd/system" CACHE PATH
+ "Set directory to install systemd unit files")
+
+ add_subdirectory(systemd)
diff --git a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/204.patch b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/204.patch
new file mode 100644
index 000000000..f0fc0bcb2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/204.patch
@@ -0,0 +1,148 @@
+Upstream-Status: Submitted [https://github.com/GENIVI/dlt-daemon/pull/204]
+From 92830aff6e91041f574753d78da758c62981d9a4 Mon Sep 17 00:00:00 2001
+From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Date: Sat, 25 Jan 2020 09:08:07 +0100
+Subject: [PATCH 1/3] dlt_user.h: fix build when musl is the libc
+ implementation, by adding a missing include for pthread_t reference:
+
+see https://errors.yoctoproject.org/Errors/Details/308000/ for details
+
+Thanks Khem Raj <raj.khem@gmail.com> for the report
+
+Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Signed-off-by: Gianfranco Costamagna <locutusofborg@debian.org>
+---
+ include/dlt/dlt_user.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/dlt/dlt_user.h b/include/dlt/dlt_user.h
+index 69cb854..766d349 100644
+--- a/include/dlt/dlt_user.h
++++ b/include/dlt/dlt_user.h
+@@ -74,6 +74,7 @@
+ \{
+ */
+ # include <mqueue.h>
++# include <pthread.h>
+
+ # if !defined (__WIN32__)
+ # include <semaphore.h>
+
+From 5f67aba02c12b7446e63ccc86285c13bc5c7a432 Mon Sep 17 00:00:00 2001
+From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Date: Sat, 25 Jan 2020 09:16:14 +0100
+Subject: [PATCH 2/3] dlt-test-init-free: fix build failure with strict
+ compiler flags, due to uint being undefined. This is actually an "int" type,
+ looking at the test implementation
+
+Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Signed-off-by: Gianfranco Costamagna <locutusofborg@debian.org>
+---
+ src/tests/dlt-test-init-free.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/tests/dlt-test-init-free.c b/src/tests/dlt-test-init-free.c
+index 96b5245..35b8803 100644
+--- a/src/tests/dlt-test-init-free.c
++++ b/src/tests/dlt-test-init-free.c
+@@ -32,7 +32,7 @@
+
+ void exec(const char *cmd, char *buffer, size_t length);
+ void printMemoryUsage();
+-char *occupyMemory(uint size);
++char *occupyMemory(int size);
+ void do_example_test();
+ void do_dlt_test();
+
+@@ -131,7 +131,7 @@ void printMemoryUsage()
+ printf("%s", result);
+ }
+
+-char *occupyMemory(uint size)
++char *occupyMemory(int size)
+ {
+ char *buf = (char *)malloc(size * sizeof(char));
+
+
+From c790d61fad382e5d3e648ee99904087eb9bc4a77 Mon Sep 17 00:00:00 2001
+From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Date: Sat, 25 Jan 2020 09:20:48 +0100
+Subject: [PATCH 3/3] sys/poll.h: deprecate old sys/poll.h include header, now
+ glibc/musl wants poll.h being included directly. This fixes a build failure
+ on musl systems with strict c hardening flags
+
+Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Signed-off-by: Gianfranco Costamagna <locutusofborg@debian.org>
+---
+ src/console/logstorage/dlt-logstorage-ctrl.c | 2 +-
+ src/daemon/dlt_daemon_event_handler.c | 2 +-
+ src/daemon/dlt_daemon_event_handler.h | 2 +-
+ src/daemon/dlt_daemon_event_handler_types.h | 2 +-
+ src/lib/dlt_user.c | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/console/logstorage/dlt-logstorage-ctrl.c b/src/console/logstorage/dlt-logstorage-ctrl.c
+index 525c137..6614f44 100644
+--- a/src/console/logstorage/dlt-logstorage-ctrl.c
++++ b/src/console/logstorage/dlt-logstorage-ctrl.c
+@@ -61,7 +61,7 @@
+ #include <string.h>
+ #include <getopt.h>
+
+-#include <sys/poll.h>
++#include <poll.h>
+
+ #if defined(__linux__)
+ # include "sd-daemon.h"
+diff --git a/src/daemon/dlt_daemon_event_handler.c b/src/daemon/dlt_daemon_event_handler.c
+index 1611f7b..0d463da 100644
+--- a/src/daemon/dlt_daemon_event_handler.c
++++ b/src/daemon/dlt_daemon_event_handler.c
+@@ -30,7 +30,7 @@
+ #include <string.h>
+ #include <errno.h>
+
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <syslog.h>
+
+ #include "dlt_common.h"
+diff --git a/src/daemon/dlt_daemon_event_handler.h b/src/daemon/dlt_daemon_event_handler.h
+index eb96101..bd550d3 100644
+--- a/src/daemon/dlt_daemon_event_handler.h
++++ b/src/daemon/dlt_daemon_event_handler.h
+@@ -25,7 +25,7 @@
+ * \file dlt_daemon_event_handler.h
+ */
+
+-#include <sys/poll.h>
++#include <poll.h>
+
+ #include "dlt_daemon_connection_types.h"
+ #include "dlt_daemon_event_handler_types.h"
+diff --git a/src/daemon/dlt_daemon_event_handler_types.h b/src/daemon/dlt_daemon_event_handler_types.h
+index 370e503..0b16d08 100644
+--- a/src/daemon/dlt_daemon_event_handler_types.h
++++ b/src/daemon/dlt_daemon_event_handler_types.h
+@@ -25,7 +25,7 @@
+ * \file dlt_daemon_event_handler_types.h
+ */
+
+-#include <sys/poll.h>
++#include <poll.h>
+
+ #include "dlt_daemon_connection_types.h"
+
+#diff --git a/src/lib/dlt_user.c b/src/lib/dlt_user.c
+#index ffa9b09..511f991 100644
+#--- a/src/lib/dlt_user.c
+#+++ b/src/lib/dlt_user.c
+#@@ -43,7 +43,7 @@
+# #include <errno.h>
+#
+# #include <sys/uio.h> /* writev() */
+#-#include <sys/poll.h>
+#+#include <poll.h>
+#
+# #include <limits.h>
+# #ifdef linux
diff --git a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.4.bb b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.4.bb
new file mode 100644
index 000000000..35c638bc7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.4.bb
@@ -0,0 +1,62 @@
+SUMMARY = "Diagnostic Log and Trace"
+DESCRIPTION = "This component provides a standardised log and trace interface, \
+based on the standardised protocol specified in the AUTOSAR standard 4.0 DLT. \
+This component can be used by GENIVI components and other applications as \
+logging facility providing: \
+- the DLT shared library \
+- the DLT daemon, including startup scripts \
+- the DLT daemon adaptors- the DLT client console utilities \
+- the DLT test applications"
+HOMEPAGE = "https://www.genivi.org/"
+SECTION = "console/utils"
+LICENSE = "MPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8184208060df880fe3137b93eb88aeea"
+
+DEPENDS = "zlib gzip-native"
+
+SRC_URI = "git://github.com/GENIVI/${BPN}.git;protocol=https \
+ file://0002-Don-t-execute-processes-as-a-specific-user.patch \
+ file://0004-Modify-systemd-config-directory.patch \
+ file://204.patch \
+"
+SRCREV = "14ea971be7e808b9c5099c7f404ed3cf341873c4"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES','systemd', d)}"
+# General options
+PACKAGECONFIG[dlt-examples] = "-DWITH_DLT_EXAMPLES=ON,-DWITH_DLT_EXAMPLES=OFF,,dlt-daemon-systemd"
+
+# Linux options
+PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF,systemd"
+PACKAGECONFIG[systemd-watchdog] = "-DWITH_SYSTEMD_WATCHDOG=ON,-DWITH_SYSTEMD_WATCHDOG=OFF,systemd,libsystemd"
+PACKAGECONFIG[systemd-journal] = "-DWITH_SYSTEMD_JOURNAL=ON,-DWITH_SYSTEMD_JOURNAL=OFF,systemd,libsystemd"
+PACKAGECONFIG[dlt-dbus] = "-DWITH_DLT_DBUS=ON,-DWITH_DLT_DBUS=OFF,dbus,dbus-lib"
+PACKAGECONFIG[udp-connection] = "-DWITH_UDP_CONNECTION=ON,-DWITH_UDP_CONNECTION=OFF"
+
+# Command line options
+PACKAGECONFIG[dlt-system] = "-DWITH_DLT_SYSTEM=ON,-DWITH_DLT_SYSTEM=OFF"
+PACKAGECONFIG[dlt-adaptor] = "-DWITH_DLT_ADAPTOR=ON,-DWITH_DLT_ADAPTOR=OFF,,dlt-daemon-systemd"
+PACKAGECONFIG[dlt-console] = "-DWITH_DLT_CONSOLE=ON,-DWITH_DLT_CONSOLE=OFF,,dlt-daemon-systemd"
+
+inherit autotools gettext cmake systemd
+
+EXTRA_OECMAKE += "-DSYSTEMD_UNITDIR=${systemd_system_unitdir}"
+
+PACKAGES += "${PN}-systemd"
+SYSTEMD_PACKAGES = "${PN} ${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = " ${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'dlt.service', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'dlt-system', 'dlt-system.service', '', d)}"
+SYSTEMD_AUTO_ENABLE_${PN} = "enable"
+SYSTEMD_SERVICE_${PN}-systemd = " \
+ ${@bb.utils.contains('PACKAGECONFIG', 'dlt-adaptor', 'dlt-adaptor-udp.service', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'dlt-examples', 'dlt-example-user.service', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'dlt-examples dlt-console', 'dlt-receive.service', '', d)} \
+"
+SYSTEMD_AUTO_ENABLE_${PN}-systemd = "disable"
+
+FILES_${PN}-doc += "${datadir}/dlt-filetransfer"
+
+do_install_append() {
+ rm -f ${D}${bindir}/dlt-test-*
+}
diff --git a/meta-openembedded/meta-oe/recipes-extended/figlet/figlet/0001-build-add-autotools-support-to-allow-easy-cross-comp.patch b/meta-openembedded/meta-oe/recipes-extended/figlet/figlet/0001-build-add-autotools-support-to-allow-easy-cross-comp.patch
new file mode 100644
index 000000000..4429a474d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/figlet/figlet/0001-build-add-autotools-support-to-allow-easy-cross-comp.patch
@@ -0,0 +1,252 @@
+From 902b022c03ad6769abe4d7e6fde1df7a883857ef Mon Sep 17 00:00:00 2001
+From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
+Date: Tue, 24 Mar 2020 14:44:54 +0100
+Subject: [PATCH] build: add autotools support to allow easy cross-compilation
+
+Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
+Upstream-Status: Inappropriate [upstream uses a custom Makefile and builds on
+ linux as well as Windows. I'm not sure autotools
+ would be preferred as a general solution but it
+ works well enough for yocto.]
+---
+ Makefile | 122 ---------------------------------------------------
+ Makefile.am | 67 ++++++++++++++++++++++++++++
+ configure.ac | 23 ++++++++++
+ 3 files changed, 90 insertions(+), 122 deletions(-)
+ delete mode 100644 Makefile
+ create mode 100644 Makefile.am
+ create mode 100644 configure.ac
+
+diff --git a/Makefile b/Makefile
+deleted file mode 100644
+index e92bcaf..0000000
+--- a/Makefile
++++ /dev/null
+@@ -1,122 +0,0 @@
+-# Makefile for figlet version 2.2.4 (26 Jan 2011)
+-# adapted from Makefile for figlet version 2.2.2 (05 July 2005)
+-# adapted from Makefile for figlet version 2.2 (15 Oct 1996)
+-# Copyright 1993, 1994,1995 Glenn Chappell and Ian Chai
+-# Copyright 1996, 1997, 1998, 1999, 2000, 2001 John Cowan
+-# Copyright 2002 Christiaan Keet
+-# Copyright 2011 Claudio Matsuoka
+-
+-# Please notice that to follow modern standards and ease third-party
+-# package creation, binaries are now installed under BINDIR, and DESTDIR
+-# is reserved for the installation pathname prefix.
+-#
+-# Please make sure BINDIR, MANDIR, DEFAULTFONTDIR and
+-# DEFAULTFONTFILE are defined to reflect the situation
+-# on your computer. See README for details.
+-
+-# Don't change this even if your shell is different. The only reason
+-# for changing this is if sh is not in the same place.
+-SHELL = /bin/sh
+-
+-# The C compiler and linker to use
+-CC = gcc
+-CFLAGS = -g -O2 -Wall -Wno-unused-value
+-LD = gcc
+-LDFLAGS =
+-
+-# Feature flags:
+-# define TLF_FONTS to use TOIlet TLF fonts
+-XCFLAGS = -DTLF_FONTS
+-
+-# Where to install files
+-prefix = /usr/local
+-
+-# Where the executables should be put
+-BINDIR = $(prefix)/bin
+-
+-# Where the man page should be put
+-MANDIR = $(prefix)/man
+-
+-# Where figlet will search first for fonts (the ".flf" files).
+-DEFAULTFONTDIR = $(prefix)/share/figlet
+-# Use this definition if you can't put things in $(prefix)/share/figlet
+-#DEFAULTFONTDIR = fonts
+-
+-# The filename of the font to be used if no other is specified,
+-# without suffix.(standard is recommended, but any other can be
+-# used). This font file should reside in the directory specified
+-# by DEFAULTFONTDIR.
+-DEFAULTFONTFILE = standard
+-
+-##
+-## END OF CONFIGURATION SECTION
+-##
+-
+-VERSION = 2.2.5
+-DIST = figlet-$(VERSION)
+-OBJS = figlet.o zipio.o crc.o inflate.o utf8.o
+-BINS = figlet chkfont figlist showfigfonts
+-MANUAL = figlet.6 chkfont.6 figlist.6 showfigfonts.6
+-DFILES = Makefile Makefile.tc $(MANUAL) $(OBJS:.o=.c) chkfont.c getopt.c \
+- figlist showfigfonts CHANGES FAQ README LICENSE figfont.txt \
+- crc.h inflate.h zipio.h utf8.h run-tests.sh figmagic
+-
+-.c.o:
+- $(CC) -c $(CFLAGS) $(XCFLAGS) -DDEFAULTFONTDIR=\"$(DEFAULTFONTDIR)\" \
+- -DDEFAULTFONTFILE=\"$(DEFAULTFONTFILE)\" -o $*.o $<
+-
+-all: $(BINS)
+-
+-figlet: $(OBJS)
+- $(LD) $(LDFLAGS) -o $@ $(OBJS)
+-
+-chkfont: chkfont.o
+- $(LD) $(LDFLAGS) -o $@ chkfont.o
+-
+-clean:
+- rm -f *.o *~ core figlet chkfont
+-
+-install: all
+- mkdir -p $(DESTDIR)$(BINDIR)
+- mkdir -p $(DESTDIR)$(MANDIR)/man6
+- mkdir -p $(DESTDIR)$(DEFAULTFONTDIR)
+- cp $(BINS) $(DESTDIR)$(BINDIR)
+- cp $(MANUAL) $(DESTDIR)$(MANDIR)/man6
+- cp fonts/*.flf $(DESTDIR)$(DEFAULTFONTDIR)
+- cp fonts/*.flc $(DESTDIR)$(DEFAULTFONTDIR)
+-
+-dist:
+- rm -Rf $(DIST) $(DIST).tar.gz
+- mkdir $(DIST)/
+- cp $(DFILES) $(DIST)/
+- mkdir $(DIST)/fonts
+- cp fonts/*.fl[fc] $(DIST)/fonts
+- mkdir $(DIST)/tests
+- cp tests/*txt tests/emboss.tlf $(DIST)/tests
+- tar cvf - $(DIST) | gzip -9c > $(DIST).tar.gz
+- rm -Rf $(DIST)
+- tar xf $(DIST).tar.gz
+- (cd $(DIST); make all check vercheck)
+- @rm -Rf $(DIST)
+- @echo
+- @ls -l $(DIST).tar.gz
+-
+-check:
+- @echo "Run tests in `pwd`"
+- @./run-tests.sh fonts
+- @echo
+-
+-vercheck:
+- @printf "Infocode: "; ./figlet -I1
+- @./figlet -v|sed -n '/Version/s/.*\(Version\)/\1/p'
+- @printf "README: "; head -1 < README|sed 's/.*) //'
+- @printf "FAQ: "; grep latest FAQ|sed 's/ and can.*//'
+- @grep -h "^\.TH" *.6
+-
+-$(OBJS) chkfont.o getopt.o: Makefile
+-chkfont.o: chkfont.c
+-crc.o: crc.c crc.h
+-figlet.o: figlet.c zipio.h
+-getopt.o: getopt.c
+-inflate.o: inflate.c inflate.h
+-zipio.o: zipio.c zipio.h inflate.h crc.h
+diff --git a/Makefile.am b/Makefile.am
+new file mode 100644
+index 0000000..7feb42c
+--- /dev/null
++++ b/Makefile.am
+@@ -0,0 +1,67 @@
++AM_CFLAGS = -include $(top_builddir)/config.h -Wall -Wextra -g
++
++bin_PROGRAMS = figlet chkfont
++dist_bin_SCRIPTS = figlist showfigfonts
++
++figlet_SOURCES = figlet.c zipio.c crc.c inflate.c utf8.c
++chkfont_SOURCES = chkfont.c
++
++fontdir = $(prefix)/share/figlet
++dist_font_DATA = \
++ fonts/646-ca2.flc \
++ fonts/646-fr.flc \
++ fonts/646-no.flc \
++ fonts/8859-4.flc \
++ fonts/bubble.flf \
++ fonts/lean.flf \
++ fonts/smscript.flf \
++ fonts/utf8.flc \
++ fonts/646-ca.flc \
++ fonts/646-gb.flc \
++ fonts/646-pt2.flc \
++ fonts/8859-5.flc \
++ fonts/digital.flf \
++ fonts/mini.flf \
++ fonts/smshadow.flf \
++ fonts/646-cn.flc \
++ fonts/646-hu.flc \
++ fonts/646-pt.flc \
++ fonts/8859-7.flc \
++ fonts/frango.flc \
++ fonts/mnemonic.flf \
++ fonts/smslant.flf \
++ fonts/646-cu.flc \
++ fonts/646-irv.flc \
++ fonts/646-se2.flc \
++ fonts/8859-8.flc \
++ fonts/hz.flc \
++ fonts/moscow.flc \
++ fonts/standard.flf \
++ fonts/646-de.flc \
++ fonts/646-it.flc \
++ fonts/646-se.flc \
++ fonts/8859-9.flc \
++ fonts/ilhebrew.flc \
++ fonts/script.flf \
++ fonts/term.flf \
++ fonts/646-dk.flc \
++ fonts/646-jp.flc \
++ fonts/646-yu.flc \
++ fonts/banner.flf \
++ fonts/ivrit.flf \
++ fonts/shadow.flf \
++ fonts/upper.flc \
++ fonts/646-es2.flc \
++ fonts/646-kr.flc \
++ fonts/8859-2.flc \
++ fonts/big.flf \
++ fonts/jis0201.flc \
++ fonts/slant.flf \
++ fonts/ushebrew.flc \
++ fonts/646-es.flc \
++ fonts/646-no2.flc \
++ fonts/8859-3.flc \
++ fonts/block.flf \
++ fonts/koi8r.flc \
++ fonts/small.flf \
++ fonts/uskata.flc
+diff --git a/configure.ac b/configure.ac
+new file mode 100644
+index 0000000..72154e2
+--- /dev/null
++++ b/configure.ac
+@@ -0,0 +1,23 @@
++AC_PREREQ(2.61)
++
++AC_INIT([figlet], 2.2.5)
++
++AC_CONFIG_AUX_DIR([autostuff])
++AC_CONFIG_MACRO_DIRS([m4])
++AM_INIT_AUTOMAKE([foreign subdir-objects])
++m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
++
++AC_CONFIG_SRCDIR([figlet.c])
++AC_CONFIG_HEADER([config.h])
++
++AC_DEFINE([DEFAULTFONTDIR], ["/usr/share/figlet"], [Default font directory])
++AC_DEFINE([DEFAULTFONTFILE], ["standard"], [Default font])
++
++AM_PROG_AR
++AC_PROG_CC
++AC_PROG_INSTALL
++AC_HEADER_STDC
++
++AC_CONFIG_FILES([Makefile])
++
++AC_OUTPUT
+--
+2.25.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/figlet/figlet_git.bb b/meta-openembedded/meta-oe/recipes-extended/figlet/figlet_git.bb
new file mode 100644
index 000000000..4611646b9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/figlet/figlet_git.bb
@@ -0,0 +1,15 @@
+SUMMARY = "FIGlet is a program that creates large characters out of ordinary screen characters"
+HOMEPAGE = "http://www.figlet.org/"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1688bcd97b27704f1afcac7336409857"
+
+SRC_URI = "git://github.com/cmatsuoka/figlet.git \
+ file://0001-build-add-autotools-support-to-allow-easy-cross-comp.patch"
+SRCREV = "5bbcd7383a8c3a531299b216b0c734e1495c6db3"
+S = "${WORKDIR}/git"
+PV = "2.2.5+git${SRCPV}"
+
+inherit autotools
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit_1.3.5.bb b/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit_1.3.5.bb
index d8cb8b5e8..06895a03a 100644
--- a/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit_1.3.5.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit_1.3.5.bb
@@ -43,6 +43,8 @@ EXTRA_OECMAKE += "-DFLB_SHARED_LIB=Off -DFLB_EXAMPLES=Off "
EXTRA_OECMAKE += "${@bb.utils.contains('DISTRO_FEATURES','systemd','-DFLB_SYSTEMD=On','',d)}"
+EXTRA_OECMAKE_append_riscv64 = " -DFLB_DEPS='atomic'"
+
# Kafka Output plugin (disabled by default): note that when
# enabling Kafka output plugin, the backend library librdkafka
# requires 'openssl' as a dependency.
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/0001-include-cups-ppd.h-for-missing-ppd-definitions.patch b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/0001-include-cups-ppd.h-for-missing-ppd-definitions.patch
deleted file mode 100644
index f259b5f05..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/0001-include-cups-ppd.h-for-missing-ppd-definitions.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 7ef9c040dd959105c16d4dc67e14f3bbea25e77f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 16 Dec 2016 19:51:19 +0000
-Subject: [PATCH] include cups/ppd.h for missing ppd definitions
-
-Fixes errors spotted by clang
-
-| prnt/hpcups/HPCupsFilter.cpp:365:18: error: use of undeclared identifier 'ppdFindAttr'
-| if (((attr = ppdFindAttr(m_ppd, "hpPrinterLanguage", NULL)) == NULL) ||
-| ^
-| prnt/hpcups/HPCupsFilter.cpp:368:13: error: use of undeclared identifier 'ppdClose'
-| ppdClose(m_ppd);
-| ^
-| prnt/hpcups/HPCupsFilter.cpp:444:9: error: use of undeclared identifier 'ppdClose'
-| ppdClose(m_ppd);
-| ^
-| prnt/hpcups/HPCupsFilter.cpp:497:13: error: use of undeclared identifier 'ppdOpenFile'
-| m_ppd = ppdOpenFile(getenv("PPD"));
-| ^
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- prnt/hpcups/HPCupsFilter.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/prnt/hpcups/HPCupsFilter.h b/prnt/hpcups/HPCupsFilter.h
-index 0431a7a..eb0cad6 100644
---- a/prnt/hpcups/HPCupsFilter.h
-+++ b/prnt/hpcups/HPCupsFilter.h
-@@ -37,6 +37,7 @@
- #include "Job.h"
-
- #include "dbuscomm.h"
-+#include <cups/ppd.h>
-
- #define DBITMAPFILEHEADER 14
- #define DBITMAPINFOHEADER 40
---
-1.9.1
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/configure.patch b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/configure.patch
deleted file mode 100644
index 31c005c60..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/configure.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Index: hplip-3.12.6/configure.in
-===================================================================
---- hplip-3.12.6.orig/configure.in 2014-07-16 20:03:51.310044196 +0000
-+++ hplip-3.12.6/configure.in 2014-07-18 07:53:31.589559192 +0000
-@@ -27,8 +27,7 @@
-
- #AC_PREREQ(2.59)
- AC_INIT([HP Linux Imaging and Printing], [3.12.6], [3.12.6], [hplip])
--#AM_INIT_AUTOMAKE([1.9 foreign])
--AM_INIT_AUTOMAKE
-+AM_INIT_AUTOMAKE([1.9 foreign])
- AC_DISABLE_STATIC
-
- # Checks for programs.
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/cups-1.6.patch b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/cups-1.6.patch
deleted file mode 100644
index 7df01aab3..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/cups-1.6.patch
+++ /dev/null
@@ -1,395 +0,0 @@
-Imported from gentoo:
-https://bugs.gentoo.org/show_bug.cgi?id=428672
-
-diff -Naur hplip-3.12.6_old/prnt/cupsext/cupsext.c hplip-3.12.6/prnt/cupsext/cupsext.c
---- hplip-3.12.6_old/prnt/cupsext/cupsext.c 2012-08-04 09:18:18.388330038 +0200
-+++ hplip-3.12.6/prnt/cupsext/cupsext.c 2012-08-04 09:18:27.855181327 +0200
-@@ -87,6 +87,46 @@
- #define PY_SSIZE_T_MIN INT_MIN
- #endif
-
-+#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
-+#define HAVE_CUPS_1_6 1
-+#endif
-+
-+#ifndef HAVE_CUPS_1_6
-+#define ippGetCount(attr) attr->num_values
-+#define ippGetGroupTag(attr) attr->group_tag
-+#define ippGetValueTag(attr) attr->value_tag
-+#define ippGetName(attr) attr->name
-+#define ippGetBoolean(attr, element) attr->values[element].boolean
-+#define ippGetInteger(attr, element) attr->values[element].integer
-+#define ippGetStatusCode(ipp) ipp->request.status.status_code
-+#define ippGetString(attr, element, language) attr->values[element].string.text
-+
-+static ipp_attribute_t * ippFirstAttribute( ipp_t *ipp )
-+{
-+ if (!ipp)
-+ return (NULL);
-+ return (ipp->current = ipp->attrs);
-+}
-+
-+static ipp_attribute_t * ippNextAttribute( ipp_t *ipp )
-+{
-+ if (!ipp || !ipp->current)
-+ return (NULL);
-+ return (ipp->current = ipp->current->next);
-+}
-+
-+static int ippSetOperation( ipp_t *ipp, ipp_op_t op )
-+{
-+ ipp->request.op.operation_id = op;
-+ return (1);
-+}
-+
-+static int ippSetRequestId( ipp_t *ipp, int request_id )
-+{
-+ ipp->request.any.request_id = request_id;
-+ return (1);
-+}
-+#endif
-
- int g_num_options = 0;
- cups_option_t * g_options;
-@@ -333,8 +373,8 @@
- request = ippNew();
- language = cupsLangDefault();
-
-- request->request.op.operation_id = CUPS_GET_PRINTERS;
-- request->request.any.request_id = 1;
-+ ippSetOperation( request, CUPS_GET_PRINTERS );
-+ ippSetRequestId ( request, 1);
-
- ippAddString( request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
- "attributes-charset", NULL, cupsLangEncoding( language ) );
-@@ -378,10 +418,10 @@
- ipp_pstate_t state;
- int i = 0;
-
-- for ( attr = response->attrs; attr != NULL; attr = attr->next )
-+ for ( attr = ippFirstAttribute( response ); attr != NULL; attr = ippNextAttribute( response ) )
- {
-- while ( attr != NULL && attr->group_tag != IPP_TAG_PRINTER )
-- attr = attr->next;
-+ while ( attr != NULL && ippGetGroupTag( attr ) != IPP_TAG_PRINTER )
-+ attr = ippNextAttribute( response );
-
- if ( attr == NULL )
- break;
-@@ -390,41 +430,41 @@
- state = IPP_PRINTER_IDLE;
- accepting = 0;
-
-- while ( attr != NULL && attr->group_tag == IPP_TAG_PRINTER )
-+ while ( attr != NULL && ippGetGroupTag( attr ) == IPP_TAG_PRINTER )
- {
-- if ( strcmp( attr->name, "printer-name" ) == 0 &&
-- attr->value_tag == IPP_TAG_NAME )
-- name = attr->values[ 0 ].string.text;
--
-- else if ( strcmp( attr->name, "device-uri" ) == 0 &&
-- attr->value_tag == IPP_TAG_URI )
-- device_uri = attr->values[ 0 ].string.text;
--
-- else if ( strcmp( attr->name, "printer-uri-supported" ) == 0 &&
-- attr->value_tag == IPP_TAG_URI )
-- printer_uri = attr->values[ 0 ].string.text;
--
-- else if ( strcmp( attr->name, "printer-info" ) == 0 &&
-- attr->value_tag == IPP_TAG_TEXT )
-- info = attr->values[ 0 ].string.text;
--
-- else if ( strcmp( attr->name, "printer-location" ) == 0 &&
-- attr->value_tag == IPP_TAG_TEXT )
-- location = attr->values[ 0 ].string.text;
--
-- else if ( strcmp( attr->name, "printer-make-and-model" ) == 0 &&
-- attr->value_tag == IPP_TAG_TEXT )
-- make_model = attr->values[ 0 ].string.text;
--
-- else if ( strcmp( attr->name, "printer-state" ) == 0 &&
-- attr->value_tag == IPP_TAG_ENUM )
-- state = ( ipp_pstate_t ) attr->values[ 0 ].integer;
--
-- else if (!strcmp(attr->name, "printer-is-accepting-jobs") &&
-- attr->value_tag == IPP_TAG_BOOLEAN)
-- accepting = attr->values[ 0 ].boolean;
-+ if ( strcmp( ippGetName( attr ), "printer-name" ) == 0 &&
-+ ippGetValueTag( attr ) == IPP_TAG_NAME )
-+ name = ippGetString( attr, 0, NULL );
-+
-+ else if ( strcmp( ippGetName( attr ), "device-uri" ) == 0 &&
-+ ippGetValueTag( attr ) == IPP_TAG_URI )
-+ device_uri = ippGetString( attr, 0, NULL );
-+
-+ else if ( strcmp( ippGetName( attr ), "printer-uri-supported" ) == 0 &&
-+ ippGetValueTag( attr ) == IPP_TAG_URI )
-+ printer_uri = ippGetString( attr, 0, NULL );
-+
-+ else if ( strcmp( ippGetName( attr ), "printer-info" ) == 0 &&
-+ ippGetValueTag( attr ) == IPP_TAG_TEXT )
-+ info = ippGetString( attr, 0, NULL );
-+
-+ else if ( strcmp( ippGetName( attr ), "printer-location" ) == 0 &&
-+ ippGetValueTag( attr ) == IPP_TAG_TEXT )
-+ location = ippGetString( attr, 0, NULL );
-+
-+ else if ( strcmp( ippGetName( attr ), "printer-make-and-model" ) == 0 &&
-+ ippGetValueTag( attr ) == IPP_TAG_TEXT )
-+ make_model = ippGetString( attr, 0, NULL );
-+
-+ else if ( strcmp( ippGetName( attr ), "printer-state" ) == 0 &&
-+ ippGetValueTag( attr ) == IPP_TAG_ENUM )
-+ state = ( ipp_pstate_t ) ippGetInteger( attr, 0 );
-+
-+ else if (!strcmp(ippGetName( attr ), "printer-is-accepting-jobs") &&
-+ ippGetValueTag( attr ) == IPP_TAG_BOOLEAN)
-+ accepting = ippGetBoolean( attr, 0 );
-
-- attr = attr->next;
-+ attr = ippNextAttribute( response );
- }
-
- if ( device_uri == NULL )
-@@ -522,8 +562,8 @@
- request = ippNew();
- language = cupsLangDefault();
-
-- request->request.op.operation_id = CUPS_ADD_PRINTER;
-- request->request.any.request_id = 1;
-+ ippSetOperation( request, CUPS_ADD_PRINTER );
-+ ippSetRequestId ( request, 1 );
-
- ippAddString( request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
- "attributes-charset", NULL, cupsLangEncoding( language ) );
-@@ -568,7 +608,7 @@
- }
- else
- {
-- status = response->request.status.status_code;
-+ status = ippGetStatusCode( response );
- //ippDelete( response );
- r = 1;
- }
-@@ -631,8 +671,8 @@
- */
- request = ippNew();
-
-- request->request.op.operation_id = CUPS_DELETE_PRINTER;
-- request->request.op.request_id = 1;
-+ ippSetOperation( request, CUPS_DELETE_PRINTER );
-+ ippSetRequestId ( request, 1 );
-
- language = cupsLangDefault();
-
-@@ -650,7 +690,7 @@
- */
- response = cupsDoRequest( http, request, "/admin/" );
-
-- if ( ( response != NULL ) && ( response->request.status.status_code <= IPP_OK_CONFLICT ) )
-+ if ( ( response != NULL ) && ( ippGetStatusCode( response ) <= IPP_OK_CONFLICT ) )
- {
- r = 1;
- }
-@@ -721,8 +761,8 @@
-
- request = ippNew();
-
-- request->request.op.operation_id = CUPS_SET_DEFAULT;
-- request->request.op.request_id = 1;
-+ ippSetOperation( request, CUPS_SET_DEFAULT );
-+ ippSetRequestId ( request, 1 );
-
- language = cupsLangDefault();
-
-@@ -743,7 +783,7 @@
-
- response = cupsDoRequest( http, request, "/admin/" );
-
-- if ( ( response != NULL ) && ( response->request.status.status_code <= IPP_OK_CONFLICT ) )
-+ if ( ( response != NULL ) && ( ippGetStatusCode( response ) <= IPP_OK_CONFLICT ) )
- {
- r = 1;
- }
-@@ -797,8 +837,8 @@
-
- request = ippNew();
-
-- request->request.op.operation_id = op;
-- request->request.op.request_id = 1;
-+ ippSetOperation( request, op );
-+ ippSetRequestId ( request, 1 );
-
- language = cupsLangDefault();
-
-@@ -822,7 +862,7 @@
-
- response = cupsDoRequest(http, request, "/admin/");
-
-- if (( response != NULL ) && (response->request.status.status_code <= IPP_OK_CONFLICT))
-+ if (( response != NULL ) && (ippGetStatusCode( response ) <= IPP_OK_CONFLICT))
- {
- r = 1;
- }
-@@ -837,7 +877,7 @@
- if ( response != NULL )
- ippDelete( response );
-
-- return Py_BuildValue( "i", r );;
-+ return Py_BuildValue( "i", r );
- }
-
-
-@@ -1116,8 +1156,8 @@
-
- request = ippNew();
-
-- request->request.op.operation_id = CUPS_GET_PPDS;
-- request->request.op.request_id = 1;
-+ ippSetOperation( request, CUPS_GET_PPDS );
-+ ippSetRequestId ( request, 1 );
-
- language = cupsLangDefault();
-
-@@ -1143,43 +1183,43 @@
- if ((response = cupsDoRequest(http, request, "/")) != NULL)
- {
-
-- for (attr = response->attrs; attr; attr = attr->next)
-+ for (attr = ippFirstAttribute( response ); attr; attr = ippNextAttribute( response ))
- {
- PyObject *dict;
- char *ppdname = NULL;
-
-- while (attr && attr->group_tag != IPP_TAG_PRINTER)
-- attr = attr->next;
-+ while (attr && ippGetGroupTag( attr ) != IPP_TAG_PRINTER)
-+ attr = ippNextAttribute( response );
-
- if (!attr)
- break;
-
- dict = PyDict_New ();
-
-- for (; attr && attr->group_tag == IPP_TAG_PRINTER; attr = attr->next)
-+ for (; attr && ippGetGroupTag( attr ) == IPP_TAG_PRINTER; attr = ippNextAttribute( response ))
- {
- PyObject *val = NULL;
-
-- if (!strcmp (attr->name, "ppd-name") && attr->value_tag == IPP_TAG_NAME)
-+ if (!strcmp (ippGetName( attr ), "ppd-name") && ippGetValueTag( attr ) == IPP_TAG_NAME)
- {
-- ppdname = attr->values[0].string.text;
-+ ppdname = ippGetString( attr, 0, NULL );
-
- //sprintf( buf, "print '%s'", ppdname);
- //PyRun_SimpleString( buf );
- }
-
-- else if (attr->value_tag == IPP_TAG_TEXT || attr->value_tag == IPP_TAG_NAME || attr->value_tag == IPP_TAG_KEYWORD)
-- //else if ((!strcmp (attr->name, "ppd-natural-language") && attr->value_tag == IPP_TAG_LANGUAGE) ||
-- // (!strcmp (attr->name, "ppd-make-and-model") && attr->value_tag == IPP_TAG_TEXT) ||
-- // (!strcmp (attr->name, "ppd-make") && attr->value_tag == IPP_TAG_TEXT) ||
-- // (!strcmp (attr->name, "ppd-device-id") && attr->value_tag == IPP_TAG_TEXT))
-+ else if (ippGetValueTag( attr ) == IPP_TAG_TEXT || ippGetValueTag( attr ) == IPP_TAG_NAME || ippGetValueTag( attr ) == IPP_TAG_KEYWORD)
-+ //else if ((!strcmp (ippGetName( attr ), "ppd-natural-language") && ippGetValueTag( attr ) == IPP_TAG_LANGUAGE) ||
-+ // (!strcmp (ippGetName( attr ), "ppd-make-and-model") && ippGetValueTag( attr ) == IPP_TAG_TEXT) ||
-+ // (!strcmp (ippGetName( attr ), "ppd-make") && ippGetValueTag( attr ) == IPP_TAG_TEXT) ||
-+ // (!strcmp (ippGetName( attr ), "ppd-device-id") && ippGetValueTag( attr ) == IPP_TAG_TEXT))
- {
-- val = PyObj_from_UTF8(attr->values[0].string.text);
-+ val = PyObj_from_UTF8(ippGetString( attr, 0, NULL ));
- }
-
- if (val)
- {
-- PyDict_SetItemString (dict, attr->name, val);
-+ PyDict_SetItemString (dict, ippGetName( attr ), val);
- Py_DECREF (val);
- }
- }
-diff -Naur hplip-3.12.6_old/scan/sane/hpaio.c hplip-3.12.6/scan/sane/hpaio.c
---- hplip-3.12.6_old/scan/sane/hpaio.c 2012-08-04 09:18:21.458389913 +0200
-+++ hplip-3.12.6/scan/sane/hpaio.c 2012-08-04 09:18:27.875181720 +0200
-@@ -47,6 +47,43 @@
- #define DEBUG_DECLARE_ONLY
- #include "sanei_debug.h"
-
-+#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
-+#define HAVE_CUPS_1_6 1
-+#endif
-+
-+#ifndef HAVE_CUPS_1_6
-+#define ippGetGroupTag(attr) attr->group_tag
-+#define ippGetValueTag(attr) attr->value_tag
-+#define ippGetName(attr) attr->name
-+#define ippGetString(attr, element, language) attr->values[element].string.text
-+
-+static ipp_attribute_t * ippFirstAttribute( ipp_t *ipp )
-+{
-+ if (!ipp)
-+ return (NULL);
-+ return (ipp->current = ipp->attrs);
-+}
-+
-+static ipp_attribute_t * ippNextAttribute( ipp_t *ipp )
-+{
-+ if (!ipp || !ipp->current)
-+ return (NULL);
-+ return (ipp->current = ipp->current->next);
-+}
-+
-+static int ippSetOperation( ipp_t *ipp, ipp_op_t op )
-+{
-+ ipp->request.op.operation_id = op;
-+ return (1);
-+}
-+
-+static int ippSetRequestId( ipp_t *ipp, int request_id )
-+{
-+ ipp->request.any.request_id = request_id;
-+ return (1);
-+}
-+#endif
-+
- static SANE_Device **DeviceList = NULL;
-
- static int AddDeviceList(char *uri, char *model, SANE_Device ***pd)
-@@ -186,8 +223,8 @@
- /* Assemble the IPP request */
- request = ippNew();
-
-- request->request.op.operation_id = CUPS_GET_PRINTERS;
-- request->request.any.request_id = 1;
-+ ippSetOperation( request, CUPS_GET_PRINTERS );
-+ ippSetRequestId( request, 1 );
-
- ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET, "attributes-charset", NULL, "utf-8");
- ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE, "attributes-natural-language", NULL, "en");
-@@ -197,20 +234,20 @@
- if ((response = cupsDoRequest(http, request, "/")) == NULL)
- goto bugout;
-
-- for (attr = response->attrs; attr != NULL; attr = attr->next)
-+ for (attr = ippFirstAttribute ( response ); attr != NULL; attr = ippNextAttribute( response ))
- {
- /* Skip leading attributes until we hit a printer. */
-- while (attr != NULL && attr->group_tag != IPP_TAG_PRINTER)
-- attr = attr->next;
-+ while (attr != NULL && ippGetGroupTag( attr ) != IPP_TAG_PRINTER)
-+ attr = ippNextAttribute( response );
-
- if (attr == NULL)
- break;
-
-- while (attr != NULL && attr->group_tag == IPP_TAG_PRINTER)
-+ while (attr != NULL && ippGetGroupTag( attr ) == IPP_TAG_PRINTER)
- {
-- if (strcmp(attr->name, "device-uri") == 0 && attr->value_tag == IPP_TAG_URI && AddCupsList(attr->values[0].string.text, printer) == 0)
-+ if (strcmp(ippGetName( attr ), "device-uri") == 0 && ippGetValueTag( attr ) == IPP_TAG_URI && AddCupsList(ippGetString( attr, 0, NULL ), printer) == 0)
- cnt++;
-- attr = attr->next;
-+ attr = ippNextAttribute( response );
- }
-
- if (attr == NULL)
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/fix-libusb-paths.patch b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/fix-libusb-paths.patch
deleted file mode 100644
index b347f831c..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/fix-libusb-paths.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-diff -rupN hplip-3.12.6_orig/configure.in hplip-3.12.6/configure.in
---- hplip-3.12.6_orig/configure.in 2012-06-18 20:44:24.000000000 +1000
-+++ hplip-3.12.6/configure.in 2012-08-16 13:40:07.259927650 +1000
-@@ -524,6 +524,8 @@ if test "$hpijs_only_build" = "no"; then
- AC_CHECK_HEADERS(usb.h, ,[AC_MSG_ERROR([cannot find libusb-devel support], 11)])
- else
- AC_CHECK_LIB([usb-1.0], [libusb_init], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libusb 1.0 support], 2)])
-+ LIBUSBINCLUDEROOT?="/usr/include/"
-+ AC_ARG_VAR(LIBUSBINCLUDEROOT, [path to libusb-1.0 folder])
- AC_CHECK_HEADERS(libusb-1.0/libusb.h, ,[AC_MSG_ERROR([cannot find libusb-1.0-devel support], 11)])
- fi
- fi
-diff -rupN hplip-3.12.6_orig/Makefile.am hplip-3.12.6/Makefile.am
---- hplip-3.12.6_orig/Makefile.am 2012-06-18 20:44:13.000000000 +1000
-+++ hplip-3.12.6/Makefile.am 2012-08-16 13:41:12.307932822 +1000
-@@ -72,7 +72,7 @@ libhpmud_la_SOURCES = io/hpmud/hpmud.c i
- io/hpmud/hpmud.h io/hpmud/hpmudi.h io/hpmud/list.h io/hpmud/mlc.h io/hpmud/pml.h io/hpmud/dot4.c \
- io/hpmud/dot4.h io/hpmud/jd.c io/hpmud/jd.h io/hpmud/pp.c io/hpmud/pp.h io/hpmud/musb.h io/hpmud/musb_libusb01.c
- else
--libhpmud_la_CFLAGS = -I/usr/include/libusb-1.0 -DMUDNAME=\"$(MUDNAME)\" -DCONFDIR=\"$(hplip_confdir)\"
-+libhpmud_la_CFLAGS = -I/$(LIBUSBINCLUDEROOT)/libusb-1.0 -DMUDNAME=\"$(MUDNAME)\" -DCONFDIR=\"$(hplip_confdir)\"
- libhpmud_la_SOURCES = io/hpmud/hpmud.c io/hpmud/mlc.c io/hpmud/model.c io/hpmud/pml.c \
- io/hpmud/hpmud.h io/hpmud/hpmudi.h io/hpmud/list.h io/hpmud/mlc.h io/hpmud/pml.h io/hpmud/dot4.c \
- io/hpmud/dot4.h io/hpmud/jd.c io/hpmud/jd.h io/hpmud/pp.c io/hpmud/pp.h io/hpmud/musb.h io/hpmud/musb.c
-@@ -286,7 +286,7 @@ hpmudext_la_LIBADD = libhpmud.la
- if LIBUSB01_BUILD
- hpmudext_la_CFLAGS = -I$(PYTHONINCLUDEDIR)
- else
--hpmudext_la_CFLAGS =-I/usr/include/libusb-1.0 -I$(PYTHONINCLUDEDIR)
-+hpmudext_la_CFLAGS =-I$(LIBUSBINCLUDEROOT)/libusb-1.0 -I$(PYTHONINCLUDEDIR)
- endif
-
- # ui (qt3)
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/setup-add-sleep-after-cups-reset.patch b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/setup-add-sleep-after-cups-reset.patch
deleted file mode 100644
index 0e1b6c4ed..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/setup-add-sleep-after-cups-reset.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
---- hplip-3.11.10/setup.py.orig 2011-10-02 14:06:19.000000000 +1100
-+++ hplip-3.11.10/setup.py 2012-02-29 08:21:39.167999938 +1100
-@@ -573,6 +573,7 @@
-
- log.debug("Restarting CUPS...")
- status, output = utils.run(restart_cups())
-+ time.sleep(3)
- log.debug("Restart CUPS returned: exit=%d output=%s" % (status, output))
-
- cups.setPasswordPrompt("You do not have permission to add a printer.")
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/030-replace_unsafe_memcpy_with_memmove.patch b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/030-replace_unsafe_memcpy_with_memmove.patch
new file mode 100644
index 000000000..2babb2b67
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/030-replace_unsafe_memcpy_with_memmove.patch
@@ -0,0 +1,15 @@
+https://bugs.launchpad.net/hplip/+bug/1672256
+
+memcpy should never be used with overlapping memory regions
+
+--- a/io/hpmud/musb.c
++++ b/io/hpmud/musb.c
+@@ -775,7 +775,7 @@ static int device_id(int fd, unsigned ch
+ len = size-1; /* leave byte for zero termination */
+ if (len > 2)
+ len -= 2;
+- memcpy(buffer, buffer+2, len); /* remove length */
++ memmove(buffer, buffer+2, len); /* remove length */
+ buffer[len]=0;
+ DBG("read actual device_id successfully fd=%d len=%d\n", fd, len);
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch
new file mode 100644
index 000000000..e020bd464
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch
@@ -0,0 +1,17 @@
+diff --git a/scan/sane/OrbliteScan/LinuxCommon.h b/scan/sane/OrbliteScan/LinuxCommon.h
+index 6605dd9..55c7110 100644
+--- a/scan/sane/OrbliteScan/LinuxCommon.h
++++ b/scan/sane/OrbliteScan/LinuxCommon.h
+@@ -18,10 +18,8 @@ typedef u_int32_t UInt32;
+ typedef int32_t SInt32;
+ //typedef unsigned long UInt32;
+ //typedef signed long SInt32;
+-typedef __S64_TYPE SInt64;
+-typedef __U64_TYPE UInt64;
+-typedef __S64_TYPE int64_t;
+-typedef __U64_TYPE uint64_t;
++typedef int64_t SInt64;
++typedef uint64_t UInt64;
+
+ //typedef unsigned long ULONG;
+ //typedef void* LPVOID;
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/600-fix.patch b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/600-fix.patch
new file mode 100644
index 000000000..91a5035ae
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/600-fix.patch
@@ -0,0 +1,10 @@
+--- a/configure.in
++++ b/configure.in
+@@ -254,7 +254,6 @@ if test "$class_driver" = "yes"; then
+ test `sh ./createPPD.sh -f` == 0
+ else
+ AC_MSG_RESULT(no)
+- test `sh ./createPPD.sh -q` == 0
+ fi
+ AM_CONDITIONAL(HPLIP_CLASS_DRIVER, test x$class_driver = xyes)
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/999-remove-lImageProcessor.patch b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/999-remove-lImageProcessor.patch
new file mode 100644
index 000000000..aee4ac50c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/999-remove-lImageProcessor.patch
@@ -0,0 +1,69 @@
+# ../bin/ld: cannot find -lImageProcessor
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -590,11 +590,10 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilte
+ prnt/hpcups/flate_colorspace.h prnt/hpcups/RunLenEncoding.h prnt/hpcups/common_defines.h \
+ prnt/hpcups/genPCLm.h \
+ common/utils.c common/utils.h prnt/hpcups/Hbpl1_Wrapper.cpp prnt/hpcups/genPCLm.cpp \
+- prnt/hpcups/genJPEGStrips.cpp prnt/hpcups/RunLenEncoding.cpp \
+- prnt/hpcups/ImageProcessor.h
++ prnt/hpcups/genJPEGStrips.cpp prnt/hpcups/RunLenEncoding.cpp
+
+ hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS)
+-hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lImageProcessor -lcups -lcupsimage -lz $(DBUS_LIBS)
++hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lcups -lcupsimage -lz $(DBUS_LIBS)
+ #else
+ #hpcupsdir = $(cupsfilterdir)
+ #hpcups_PROGRAMS = hpcups
+--- a/prnt/hpcups/HPCupsFilter.cpp
++++ b/prnt/hpcups/HPCupsFilter.cpp
+@@ -637,16 +637,10 @@ int HPCupsFilter::processRasterData(cups
+
+
+ sprintf(hpPreProcessedRasterFile, "%s/hp_%s_cups_SwapedPagesXXXXXX",CUPS_TMP_DIR, m_JA.user_name);
+- image_processor_t* imageProcessor = imageProcessorCreate();
+
+ while (cupsRasterReadHeader2(cups_raster, &cups_header))
+ {
+
+- IMAGE_PROCESSOR_ERROR result = imageProcessorStartPage(imageProcessor, &cups_header);
+- if (result != IPE_SUCCESS){
+- dbglog("DEBUG: imageProcessorStartPage failed result = %d\n", result);
+- }
+-
+ current_page_number++;
+
+ if (current_page_number == 1) {
+@@ -745,11 +739,6 @@ int HPCupsFilter::processRasterData(cups
+ color_raster = rgbRaster;
+ black_raster = kRaster;
+
+- result = imageProcessorProcessLine(imageProcessor, m_pPrinterBuffer, cups_header.cupsBytesPerLine);
+- if (result != IPE_SUCCESS){
+- dbglog("DEBUG: imageProcessorProcessLine failed result = %d\n", result);
+- }
+-
+
+ if ((y == 0) && !is_ljmono) {
+ //For ljmono, make sure that first line is not a blankRaster line.Otherwise printer
+@@ -780,11 +769,6 @@ int HPCupsFilter::processRasterData(cups
+ }
+ } // for() loop end
+
+- result = imageProcessorEndPage(imageProcessor);
+- if (result != IPE_SUCCESS){
+- dbglog("DEBUG: imageProcessorEndPage failed result = %d\n", result);
+- }
+-
+
+ m_Job.NewPage();
+ if (err != NO_ERROR) {
+@@ -800,8 +784,6 @@ int HPCupsFilter::processRasterData(cups
+ rgbRaster = NULL;
+ }
+
+- imageProcessorDestroy(imageProcessor);
+-
+ unlink(hpPreProcessedRasterFile);
+ return ret_status;
+ }
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/configure.patch b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/configure.patch
new file mode 100644
index 000000000..8fe77c5ed
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/configure.patch
@@ -0,0 +1,12 @@
+--- a/configure.in
++++ b/configure.in
+@@ -27,8 +27,7 @@
+
+ #AC_PREREQ(2.59)
+ AC_INIT([HP Linux Imaging and Printing], [3.19.12], [3.19.12], [hplip])
+-#AM_INIT_AUTOMAKE([1.9 foreign])
+-AM_INIT_AUTOMAKE
++AM_INIT_AUTOMAKE([foreign])
+ AC_DISABLE_STATIC
+
+ # Checks for programs.
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch
new file mode 100644
index 000000000..6aa1de0a8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch
@@ -0,0 +1,33 @@
+Upstream-Status: Inappropriate [configuration]
+
+--- a/configure.in
++++ b/configure.in
+@@ -599,6 +599,8 @@ if test "$class_driver" = "no" && test "
+ AC_CHECK_HEADERS(usb.h, ,[AC_MSG_ERROR([cannot find libusb-devel support], 11)])
+ else
+ AC_CHECK_LIB([usb-1.0], [libusb_init], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libusb 1.0 support], 2)])
++ LIBUSBINCLUDEROOT?="/usr/include/"
++ AC_ARG_VAR(LIBUSBINCLUDEROOT, [path to libusb-1.0 folder])
+ AC_CHECK_HEADERS(libusb-1.0/libusb.h, ,[AC_MSG_ERROR([cannot find libusb-1.0-devel support], 11)])
+ fi
+ fi
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -109,7 +109,7 @@ libhpmud_la_SOURCES += io/hpmud/musb_lib
+ libhpmud_la_LDFLAGS += -lusb
+ else
+ libhpmud_la_SOURCES += io/hpmud/musb.c
+-libhpmud_la_CFLAGS += -I/usr/include/libusb-1.0
++libhpmud_la_CFLAGS += -I$(LIBUSBINCLUDEROOT)/libusb-1.0
+ libhpmud_la_LDFLAGS += -lusb-1.0
+ endif
+
+@@ -362,7 +362,7 @@ hpmudext_la_CFLAGS += -Iprotocol/discove
+ endif
+
+ if !LIBUSB01_BUILD
+-hpmudext_la_CFLAGS +=-I/usr/include/libusb-1.0
++hpmudext_la_CFLAGS +=-I$(LIBUSBINCLUDEROOT)/libusb-1.0
+ endif
+ endif #!HPLIP_CLASS_DRIVER
+ # ui (qt3)
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/hplip-3.19.6-fix-return.patch b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/hplip-3.19.6-fix-return.patch
new file mode 100644
index 000000000..67546b07d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/hplip-3.19.6-fix-return.patch
@@ -0,0 +1,20 @@
+From 2fcd0e79b21ec6dbf975ad7d1b5697a78993e2f1 Mon Sep 17 00:00:00 2001
+From: David Valleau <valleau@chromium.org>
+Date: Wed, 14 Aug 2019 15:47:38 -0700
+Subject: [PATCH] Fixing invalid return in void function
+
+---
+ prnt/hpps/hppsfilter.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/prnt/hpps/hppsfilter.c
++++ b/prnt/hpps/hppsfilter.c
+@@ -104,7 +104,7 @@ static void open_tempbookletfile(char *m
+ if(ptempbooklet_file == NULL)
+ {
+ fprintf(stderr, "ERROR: Unable to open temp file %s\n", temp_filename);
+- return 1;
++ return;
+ }
+ chmod(temp_filename, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.12.6.bb b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.12.6.bb
deleted file mode 100644
index 77c995b57..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.12.6.bb
+++ /dev/null
@@ -1,75 +0,0 @@
-SUMMARY = "HP Linux Imaging and Printing"
-LICENSE="GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=442bb3cbbeeb60643a87325718b8a8ee"
-
-PR = "r1"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
- file://setup-add-sleep-after-cups-reset.patch \
- file://fix-libusb-paths.patch \
- file://cups-1.6.patch \
- file://configure.patch \
- file://0001-include-cups-ppd.h-for-missing-ppd-definitions.patch \
-"
-
-DEPENDS += "cups python libusb"
-
-inherit autotools-brokensep python-dir pythonnative pkgconfig
-
-export STAGING_INCDIR
-export STAGING_LIBDIR
-
-EXTRA_OECONF += "\
- LIBUSBINCLUDEROOT=${STAGING_INCDIR} \
- --disable-network-build \
- --disable-doc-build \
- --disable-pp-build \
- --disable-scan-build \
- --disable-gui-build \
- --disable-fax-build \
- --disable-policykit \
- --disable-qt4 \
- --disable-qt3 \
- --disable-dbus-build \
- --disable-foomatic-drv-install \
- --enable-foomatic-ppd-install \
- --enable-foomatic-rip-hplip-install \
- --with-cupsbackenddir=${libdir}/cups/backend \
- --with-cupsfilterdir=${libdir}/cups/filter \
-"
-
-PACKAGES += "${PN}-ppd ${PN}-cups ${PN}-backend ${PN}-filter ${PN}-hal"
-
-RDEPENDS_${PN} += " \
- python \
- python-syslog \
- python-pprint \
- python-compression \
- python-shell \
- python-xml \
- python-unixadmin \
- python-html \
- python-resource \
- python-terminal \
- python-subprocess\
-"
-RDEPENDS_${PN}-filter += "perl"
-
-# need to snag the debug file or OE will fail on backend package
-FILES_${PN}-dbg += "\
- ${libdir}/cups/backend/.debug \
- ${PYTHON_SITEPACKAGES_DIR}/.debug \
- ${libdir}/cups/filter/.debug "
-
-FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
-FILES_${PN}-ppd = "${datadir}/ppd"
-FILES_${PN}-cups = "${datadir}/cups"
-FILES_${PN}-backend = "${libdir}/cups/backend"
-FILES_${PN}-filter = "${libdir}/cups/filter"
-FILES_${PN}-hal = "${datadir}/hal"
-
-FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}/*.so"
-
-SRC_URI[md5sum] = "5303938e8630775ea6fb383af85775e5"
-SRC_URI[sha256sum] = "54578000792969adb583e75efeacb9c46ab69659ec7e9424de390613f3595775"
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.19.12.bb b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.19.12.bb
new file mode 100644
index 000000000..883a6ffe9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.19.12.bb
@@ -0,0 +1,88 @@
+SUMMARY = "HP Linux Imaging and Printing"
+LICENSE="GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=20f2c819499cc2063e9a7b07b408815c"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
+ file://configure.patch \
+ file://fix-libusb-paths.patch \
+ file://999-remove-lImageProcessor.patch \
+ file://600-fix.patch \
+ file://030-replace_unsafe_memcpy_with_memmove.patch \
+ file://050-fix-glibcisms.patch \
+ file://hplip-3.19.6-fix-return.patch \
+"
+SRC_URI[md5sum] = "d72bc77d791c150c2c22b84e9553bab3"
+SRC_URI[sha256sum] = "b7f398502fb659e0de8e54976237e3c6a64fec0b3c36054a515876f7b006b255"
+
+DEPENDS += "cups python3 libusb"
+
+inherit autotools-brokensep python3-dir python3native pkgconfig systemd
+
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+CFLAGS += "-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}"
+
+EXTRA_OECONF += "\
+ LIBUSBINCLUDEROOT=${STAGING_INCDIR} \
+ --enable-cups-ppd-install \
+ --disable-network-build \
+ --disable-doc-build \
+ --disable-pp-build \
+ --disable-scan-build \
+ --disable-gui-build \
+ --disable-fax-build \
+ --disable-policykit \
+ --disable-qt4 \
+ --disable-qt3 \
+ --disable-dbus-build \
+ --enable-foomatic-drv-install \
+ --disable-foomatic-ppd-install \
+ --disable-foomatic-rip-hplip-install \
+ --with-cupsbackenddir=${libdir}/cups/backend \
+ --with-cupsfilterdir=${libdir}/cups/filter \
+"
+
+EXTRA_OEMAKE = "rulessystemdir=${systemd_unitdir}/system/"
+
+do_install_append() {
+ rm -rf ${D}${datadir}/hplip/upgrade.py
+ rm -rf ${D}${datadir}/hplip/uninstall.py
+ sed -i -e "s|/usr/bin/env python|/usr/bin/env python3|g" ${D}${datadir}/hplip/*.py
+ sed -i -e "s|/usr/bin/python|/usr/bin/env python3|g" ${D}${datadir}/hplip/*.py
+}
+
+PACKAGES += "${PN}-ppd ${PN}-cups ${PN}-backend ${PN}-filter ${PN}-hal"
+
+RDEPENDS_${PN} += " \
+ python3\
+ python3-syslog \
+ python3-pprint \
+ python3-compression \
+ python3-shell \
+ python3-xml \
+ python3-unixadmin \
+ python3-html \
+ python3-resource \
+ python3-terminal \
+"
+RDEPENDS_${PN}-filter += "perl"
+
+# need to snag the debug file or OE will fail on backend package
+FILES_${PN}-dbg += "\
+ ${libdir}/cups/backend/.debug \
+ ${PYTHON_SITEPACKAGES_DIR}/.debug \
+ ${libdir}/cups/filter/.debug "
+
+FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
+FILES_${PN}-ppd = "${datadir}/ppd"
+FILES_${PN}-cups = "${datadir}/cups"
+FILES_${PN}-backend = "${libdir}/cups/backend"
+FILES_${PN}-filter = "${libdir}/cups/filter"
+FILES_${PN}-hal = "${datadir}/hal"
+
+FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}/*.so"
+
+SYSTEMD_SERVICE_${PN} = "hplip-printer@.service"
+
+CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-oe/recipes-extended/icewm/icewm_1.5.5.bb b/meta-openembedded/meta-oe/recipes-extended/icewm/icewm_1.6.5.bb
index fe6de008f..241a2b30f 100644
--- a/meta-openembedded/meta-oe/recipes-extended/icewm/icewm_1.5.5.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/icewm/icewm_1.6.5.bb
@@ -2,13 +2,14 @@ DESCRIPTION = "Ice Window Manager (IceWM)"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=4a26952467ef79a7efca4a9cf52d417b"
-SRC_URI = "https://github.com/ice-wm/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.xz \
+SRC_URI = "https://github.com/ice-wm/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.lz \
file://0001-configure.ac-skip-running-test-program-when-cross-co.patch \
"
-SRC_URI[md5sum] = "6eba94a7935a0531d2c14eeb1426aeef"
-SRC_URI[sha256sum] = "f1c1344b20a9e8635143f70ee27930b55f813c15ca61f84d77584d311b6ac027"
+SRC_URI[sha256sum] = "d41e6abf842ff3f8705a81d352be7c5b181c587549c183de0641c3820234a7b2"
-inherit autotools pkgconfig gettext perlnative features_check qemu
+UPSTREAM_CHECK_URI = "https://github.com/ice-wm/${BPN}/releases"
+
+inherit autotools pkgconfig gettext perlnative features_check qemu update-alternatives
REQUIRED_DISTRO_FEATURES = "x11"
EXTRA_OECONF += "--with-libdir=${datadir}/icewm \
@@ -18,7 +19,9 @@ EXTRA_OECONF += "--with-libdir=${datadir}/icewm \
--enable-xinerama \
--enable-shape"
-DEPENDS = "asciidoc-native fontconfig gdk-pixbuf libxft libxpm libxrandr libxinerama libice libsm libx11 libxext libxrender"
+DEPENDS = "asciidoc-native fontconfig gdk-pixbuf libxft libxpm libxrandr \
+ libxinerama libice libsm libx11 libxext libxrender libxcomposite libxdamage \
+ libxfixes"
DEPENDS_append = " qemu-native"
RDEPENDS_${PN} = "perl fribidi"
@@ -36,4 +39,8 @@ EOF
./qemuwrapper > src/preferences
}
+ALTERNATIVE_${PN} = "x-session-manager"
+ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/icewm-session"
+ALTERNATIVE_PRIORITY_${PN} = "100"
+
FILES_${PN} += "${datadir}/xsessions"
diff --git a/meta-openembedded/meta-oe/recipes-extended/indent/indent/0001-Fix-builds-with-recent-gettext.patch b/meta-openembedded/meta-oe/recipes-extended/indent/indent/0001-Fix-builds-with-recent-gettext.patch
index e48dfb33c..e9dadace0 100644
--- a/meta-openembedded/meta-oe/recipes-extended/indent/indent/0001-Fix-builds-with-recent-gettext.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/indent/indent/0001-Fix-builds-with-recent-gettext.patch
@@ -9,8 +9,6 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/Makefile.am b/Makefile.am
-index 548fea7..cf01c5e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,7 +1,7 @@
@@ -18,7 +16,17 @@ index 548fea7..cf01c5e 100644
AUTOMAKE_OPTIONS = no-texinfo.tex
-SUBDIRS = intl src doc po man
-+SUBDIRS = src doc po man
++SUBDIRS = src po man
BUILT_SOURCES =
+--- a/configure.ac
++++ b/configure.ac
+@@ -58,7 +58,6 @@ fi
+ AC_HEADER_DIRENT
+
+ AC_OUTPUT([
+- intl/Makefile
+ po/Makefile.in
+ Makefile
+ src/Makefile
diff --git a/meta-openembedded/meta-oe/recipes-extended/indent/indent_2.2.12.bb b/meta-openembedded/meta-oe/recipes-extended/indent/indent_2.2.12.bb
index f8d63d43c..90ba8a2e6 100644
--- a/meta-openembedded/meta-oe/recipes-extended/indent/indent_2.2.12.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/indent/indent_2.2.12.bb
@@ -9,6 +9,7 @@ Install the indent package if you are developing applications in C and \
you want a program to format your code."
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
DEPENDS = "virtual/gettext"
SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \
@@ -19,10 +20,8 @@ SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \
SRC_URI[md5sum] = "4764b6ac98f6654a35da117b8e5e8e14"
SRC_URI[sha256sum] = "e77d68c0211515459b8812118d606812e300097cfac0b4e9fb3472664263bb8b"
-inherit autotools gettext
-
-CFLAGS_class-native += " -Wno-error=unused-value"
+inherit autotools gettext texinfo
-FILES_${PN}-doc += "/usr/doc/indent/indent.html"
+CFLAGS_append_class-native = " -Wno-error=unused-value"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_0.6.bb b/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_0.6.bb
index b01d7f64e..3a597218d 100644
--- a/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_0.6.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_0.6.bb
@@ -4,24 +4,26 @@ DESCRIPTION = "iotop does for I/O usage what top(1) does for CPU usage. \
a table of current I/O usage by processes on the system."
HOMEPAGE = "http://guichaz.free.fr/iotop/"
-
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4"
-SRC_URI = "http://guichaz.free.fr/iotop/files/${BP}.tar.bz2"
-SRC_URI[md5sum] = "5ef9456b26d7694abf3101a72e1e0d1d"
-SRC_URI[sha256sum] = "3adea2a24eda49bbbaeb4e6ed2042355b441dbd7161e883067a02bfc8dcef75b"
+PV .= "+git${SRCPV}"
+
+SRCREV = "1bfb3bc70febb1ffb95146b6dcd65257228099a3"
+SRC_URI = "git://repo.or.cz/iotop.git"
+
+S = "${WORKDIR}/git"
UPSTREAM_CHECK_URI = "http://repo.or.cz/iotop.git/tags"
UPSTREAM_CHECK_REGEX = "iotop-(?P<pver>\d+(\.\d+)+)"
-inherit distutils
+inherit distutils3
do_install_append() {
rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/site.pyo || true
rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/site.py || true
}
-RDEPENDS_${PN} = "python-curses python-textutils \
- python-codecs python-ctypes python-pprint \
- python-shell python-subprocess python-core"
+RDEPENDS_${PN} = "python3-curses \
+ python3-codecs python3-ctypes python3-pprint \
+ python3-shell python3-core"
diff --git a/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb b/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
index f62cf6ba6..e6d5663f8 100644
--- a/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
@@ -6,7 +6,7 @@ implementations for many of the provider operations."
HOMEPAGE = "https://github.com/rnovacek/konkretcmpi"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=f673270bfc350d9ce1efc8724c6c1873"
-DEPENDS_append_class-target = " swig-native sblim-cmpi-devel python"
+DEPENDS_append_class-target = " swig-native sblim-cmpi-devel python3"
DEPENDS_append_class-native = " cmpi-bindings-native"
SRC_URI = "git://github.com/rnovacek/konkretcmpi.git \
@@ -34,6 +34,6 @@ PACKAGES =+ "${PN}-python"
RPROVIDES_${PN}-dbg += "${PN}-python-dbg"
-FILES_${PN}-python = "${libdir}/python2.7/site-packages/konkretmof.py* ${libdir}/python2.7/site-packages/_konkretmof.so"
+FILES_${PN}-python = "${libdir}/python*/site-packages/konkretmof.py* ${libdir}/python*/site-packages/_konkretmof.so"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libcec/libcec/0001-Enhance-reproducibility.patch b/meta-openembedded/meta-oe/recipes-extended/libcec/libcec/0001-Enhance-reproducibility.patch
new file mode 100644
index 000000000..f08887b88
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/libcec/libcec/0001-Enhance-reproducibility.patch
@@ -0,0 +1,33 @@
+From 240727d3142700af779ca6f5c4677419787bca28 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 28 Apr 2020 16:15:20 -0700
+Subject: [PATCH] Enhance reproducibility
+
+SetBuildInfo.cmake groks information from build system and emits that
+into sourcecode ( header file ) which is then compiled into binary, this
+string is build system dependent, therefore can cause reproducibility
+issues, here we set static string for LIB_INFO
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libcec/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libcec/CMakeLists.txt b/src/libcec/CMakeLists.txt
+index 19a070b..4b3c827 100644
+--- a/src/libcec/CMakeLists.txt
++++ b/src/libcec/CMakeLists.txt
+@@ -133,7 +133,7 @@ set(CEC_HEADERS devices/CECRecordingDevice.h
+ source_group("Header Files" FILES ${CEC_HEADERS})
+
+ # platform and device specific
+-include(cmake/SetBuildInfo.cmake)
++set(LIB_INFO "compiled on ${CMAKE_SYSTEM} ... ")
+ include(cmake/CheckPlatformSupport.cmake)
+
+ ## create project groups
+--
+2.26.2
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_git.bb b/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_git.bb
index 8d5a82455..39ceb489e 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_git.bb
@@ -2,18 +2,19 @@ SUMMARY = "USB CEC Adaptor communication Library"
HOMEPAGE = "http://libcec.pulse-eight.com/"
LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e61fd86f9c947b430126181da2c6c715"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b3a719e97f49e4841e90573f9b1a98ac"
DEPENDS = "p8platform udev ncurses swig-native python3"
DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libx11 libxrandr', '', d)}"
DEPENDS_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' userland', d)}"
-PV = "4.0.4"
+PV = "5.0.0"
-SRCREV = "3bbd4321618503d14008387a72fabb6743878831"
-SRC_URI = "git://github.com/Pulse-Eight/libcec.git \
+SRCREV = "43bc27fe7be491149e6f57d14110e02abdac2f24"
+SRC_URI = "git://github.com/Pulse-Eight/libcec.git;branch=release \
file://0001-CheckPlatformSupport.cmake-Do-not-hardcode-lib-path.patch \
+ file://0001-Enhance-reproducibility.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch b/meta-openembedded/meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch
new file mode 100644
index 000000000..5adc7d9fd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch
@@ -0,0 +1,181 @@
+From 82f98dcbc429bbe89a9837c533cbcbc02e77c790 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Tue, 28 Jun 2016 12:43:31 +0100
+Subject: [PATCH] idn: fix printf() format security warnings
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+| ../../libidn-1.32/src/idn.c: In function 'main':
+| ../../libidn-1.32/src/idn.c:172:7: error: format not a string literal and no format arguments [-Werror=format-security]
+| error (0, 0, _("only one of -s, -e, -d, -a, -u or -n can be specified"));
+| ^~~~~
+| ../../libidn-1.32/src/idn.c:187:5: error: format not a string literal and no format arguments [-Werror=format-security]
+| fprintf (stderr, _("Type each input string on a line by itself, "
+| ^~~~~~~
+| ../../libidn-1.32/src/idn.c:202:4: error: format not a string literal and no format arguments [-Werror=format-security]
+| error (EXIT_FAILURE, errno, _("input error"));
+| ^~~~~
+| ../../libidn-1.32/src/idn.c:220:8: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UTF-8 to UCS-4"));
+| ^
+| ../../libidn-1.32/src/idn.c:245:8: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UTF-8 to UCS-4"));
+| ^
+| ../../libidn-1.32/src/idn.c:281:6: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UTF-8 to UCS-4"));
+| ^
+| ../../libidn-1.32/src/idn.c:340:6: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UCS-4 to UTF-8"));
+| ^
+| ../../libidn-1.32/src/idn.c:364:6: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UCS-4 to UTF-8"));
+| ^
+| ../../libidn-1.32/src/idn.c:442:8: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UCS-4 to UTF-8"));
+| ^
+| ../../libidn-1.32/src/idn.c:498:6: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UTF-8 to UCS-4"));
+| ^
+| ../../libidn-1.32/src/idn.c:527:5: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UTF-8 to UCS-4"));
+| ^
+| ../../libidn-1.32/src/idn.c:540:6: error: format not a string literal and no format arguments [-Werror=format-security]
+| error (EXIT_FAILURE, 0, _("could not do NFKC normalization"));
+| ^~~~~
+| ../../libidn-1.32/src/idn.c:551:5: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UTF-8 to UCS-4"));
+| ^
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+---
+Upstream-Status: Pending
+
+ src/idn.c | 27 ++++++++++++++-------------
+ 1 file changed, 14 insertions(+), 13 deletions(-)
+
+diff --git a/src/idn.c b/src/idn.c
+index be1c7d1..68e4291 100644
+--- a/src/idn.c
++++ b/src/idn.c
+@@ -170,7 +170,7 @@ main (int argc, char *argv[])
+ (args_info.idna_to_unicode_given ? 1 : 0) +
+ (args_info.nfkc_given ? 1 : 0) != 1)
+ {
+- error (0, 0, _("only one of -s, -e, -d, -a, -u or -n can be specified"));
++ error (0, 0, "%s", _("only one of -s, -e, -d, -a, -u or -n can be specified"));
+ usage (EXIT_FAILURE);
+ }
+
+@@ -185,7 +185,7 @@ main (int argc, char *argv[])
+ if (!args_info.quiet_given
+ && args_info.inputs_num == 0
+ && isatty (fileno (stdin)))
+- fprintf (stderr, _("Type each input string on a line by itself, "
++ fprintf (stderr, "%s", _("Type each input string on a line by itself, "
+ "terminated by a newline character.\n"));
+
+ do
+@@ -197,7 +197,7 @@ main (int argc, char *argv[])
+ if (feof (stdin))
+ break;
+
+- error (EXIT_FAILURE, errno, _("input error"));
++ error (EXIT_FAILURE, errno, "%s", _("input error"));
+ }
+
+ if (strlen (line) > 0)
+@@ -215,7 +215,7 @@ main (int argc, char *argv[])
+ if (!q)
+ {
+ free (p);
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+ }
+
+@@ -240,7 +240,7 @@ main (int argc, char *argv[])
+ if (!q)
+ {
+ free (r);
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+ }
+
+@@ -277,7 +277,7 @@ main (int argc, char *argv[])
+ q = stringprep_utf8_to_ucs4 (p, -1, &len);
+ free (p);
+ if (!q)
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+
+ if (args_info.debug_given)
+@@ -336,7 +336,7 @@ main (int argc, char *argv[])
+ r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL);
+ free (q);
+ if (!r)
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UCS-4 to UTF-8"));
+
+ p = stringprep_utf8_to_locale (r);
+@@ -360,7 +360,7 @@ main (int argc, char *argv[])
+ q = stringprep_utf8_to_ucs4 (p, -1, NULL);
+ free (p);
+ if (!q)
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UCS-4 to UTF-8"));
+
+ if (args_info.debug_given)
+@@ -438,7 +438,7 @@ main (int argc, char *argv[])
+ if (!q)
+ {
+ free (p);
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UCS-4 to UTF-8"));
+ }
+
+@@ -494,7 +494,7 @@ main (int argc, char *argv[])
+ r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL);
+ free (q);
+ if (!r)
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+
+ p = stringprep_utf8_to_locale (r);
+@@ -523,7 +523,7 @@ main (int argc, char *argv[])
+ if (!q)
+ {
+ free (p);
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+ }
+
+@@ -537,7 +537,8 @@ main (int argc, char *argv[])
+ r = stringprep_utf8_nfkc_normalize (p, -1);
+ free (p);
+ if (!r)
+- error (EXIT_FAILURE, 0, _("could not do NFKC normalization"));
++ error (EXIT_FAILURE, 0, "%s",
++ _("could not do NFKC normalization"));
+
+ if (args_info.debug_given)
+ {
+@@ -547,7 +548,7 @@ main (int argc, char *argv[])
+ if (!q)
+ {
+ free (r);
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+ }
+
+--
+2.8.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch b/meta-openembedded/meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch
new file mode 100644
index 000000000..0863530f2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch
@@ -0,0 +1,23 @@
+Upstream-Status: Inappropriate [disable feature]
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+diff -Nurdd libidn-1.26/doc/Makefile.am libidn-1.26/doc/Makefile.am
+--- libidn-1.26/doc/Makefile.am 2012-09-18 11:25:45.000000000 +0300
++++ libidn-1.26/doc/Makefile.am 2013-02-08 07:41:24.591431462 +0200
+@@ -49,15 +49,9 @@
+
+ # Man pages.
+
+-dist_man_MANS = idn.1 $(gdoc_MANS)
++dist_man_MANS = $(gdoc_MANS)
+ MAINTAINERCLEANFILES = $(dist_man_MANS)
+
+-idn.1: $(top_srcdir)/src/idn.c $(top_srcdir)/src/idn.ggo \
+- $(top_srcdir)/configure.ac
+- $(HELP2MAN) \
+- --name="Internationalized Domain Names command line tool" \
+- --output=$@ $(top_builddir)/src/idn$(EXEEXT)
+-
+ # GDOC
+
+ GDOC_BIN = $(srcdir)/gdoc
diff --git a/meta-openembedded/meta-oe/recipes-extended/libidn/libidn_1.35.bb b/meta-openembedded/meta-oe/recipes-extended/libidn/libidn_1.35.bb
new file mode 100644
index 000000000..105740354
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/libidn/libidn_1.35.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Internationalized Domain Name support library"
+DESCRIPTION = "Implementation of the Stringprep, Punycode and IDNA specifications defined by the IETF Internationalized Domain Names (IDN) working group."
+HOMEPAGE = "http://www.gnu.org/software/libidn/"
+SECTION = "libs"
+LICENSE = "(LGPLv2.1+ | LGPLv3) & GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=df4be47940a91ee69556f5f71eed4aec \
+ file://COPYING.LESSERv2;md5=4fbd65380cdd255951079008b364516c \
+ file://COPYING.LESSERv3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYINGv3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://lib/idna.h;endline=21;md5=37cffad24807f446a24de3e7371f20b9 \
+ file://src/idn.c;endline=20;md5=09e97034a8877b3451cb65065fc2c06e"
+DEPENDS = "virtual/libiconv autoconf-archive"
+
+inherit pkgconfig autotools gettext texinfo gtk-doc
+
+SRC_URI = "${GNU_MIRROR}/libidn/${BPN}-${PV}.tar.gz \
+ file://dont-depend-on-help2man.patch \
+ file://0001-idn-format-security-warnings.patch \
+ "
+
+SRC_URI[md5sum] = "bef634141fe39326cb354b75e891fead"
+SRC_URI[sha256sum] = "f11af1005b46b7b15d057d7f107315a1ad46935c7fcdf243c16e46ec14f0fe1e"
+
+# command tool is under GPLv3+, while libidn itself is under LGPLv2.1+ or LGPLv3
+# so package command into a separate package
+PACKAGES =+ "idn"
+FILES_idn = "${bindir}/*"
+
+LICENSE_${PN} = "LGPLv2.1+ | LGPLv3"
+LICENSE_idn = "GPLv3+"
+
+EXTRA_OECONF = "--disable-csharp"
+
+do_install_append() {
+ rm -rf ${D}${datadir}/emacs
+}
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.1.0.bb b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.1.0.bb
index 48dec47a8..36659e752 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.1.0.bb
@@ -4,9 +4,9 @@ LICENSE = "GPLv2 & LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07 \
file://COPYING.LESSER;md5=6ab17b41640564434dda85c06b7124f7"
-DEPENDS = "libxml2 glib-2.0 swig python"
+DEPENDS = "libxml2 glib-2.0 swig python3"
-inherit autotools pkgconfig pythonnative
+inherit autotools pkgconfig python3native
SRCREV = "3df02d4d0e9008771e8622fdc10de8333b3f0d85"
SRC_URI = "git://github.com/libimobiledevice/libplist;protocol=https \
diff --git a/meta-openembedded/meta-oe/recipes-extended/libpwquality/files/add-missing-python-include-dir-for-cross.patch b/meta-openembedded/meta-oe/recipes-extended/libpwquality/files/add-missing-python-include-dir-for-cross.patch
index d12492f02..ec8672107 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libpwquality/files/add-missing-python-include-dir-for-cross.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/libpwquality/files/add-missing-python-include-dir-for-cross.patch
@@ -13,28 +13,23 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/python/Makefile.am b/python/Makefile.am
-index abc5cd3..e35ba71 100644
+index 1d00c0c..52816b2 100644
--- a/python/Makefile.am
+++ b/python/Makefile.am
-@@ -14,4 +14,4 @@ all-local:
- CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-lib=.
+@@ -14,7 +14,7 @@ all-local:
+ CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-base py$(PYTHONREV)
install-exec-local:
-- CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py install --prefix=${DESTDIR}${prefix}
-+ CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py install --prefix=${DESTDIR}${prefix} --install-lib=${DESTDIR}/${PYTHONSITEDIR}
+- CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-base py$(PYTHONREV) install --prefix=${DESTDIR}${prefix}
++ CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-base py$(PYTHONREV) install --prefix=${DESTDIR}${prefix} --install-lib=${DESTDIR}/${PYTHONSITEDIR}
+
+ clean-local:
+ rm -rf py$(PYTHONREV)
diff --git a/python/setup.py.in b/python/setup.py.in
-index 6457595..d3db0e5 100755
+index a741b91..6759a95 100755
--- a/python/setup.py.in
+++ b/python/setup.py.in
-@@ -6,6 +6,7 @@
-
- from distutils.core import setup, Extension
- from distutils.command.build_ext import build_ext as _build_ext
-+import os
-
- class build_ext(_build_ext):
- def genconstants(self, headerfile, outputfile):
-@@ -23,7 +24,7 @@ class build_ext(_build_ext):
+@@ -33,7 +33,7 @@ class sdist(_sdist):
pwqmodule = Extension('pwquality',
sources = ['pwquality.c'],
@@ -44,5 +39,5 @@ index 6457595..d3db0e5 100755
libraries = ['pwquality'])
--
-1.9.1
+2.17.1
diff --git a/meta-openembedded/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb b/meta-openembedded/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.2.bb
index 9fb25cdc7..24d2f7ec1 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.2.bb
@@ -9,8 +9,8 @@ SRC_URI = "https://github.com/${SRCNAME}/${SRCNAME}/releases/download/${SRCNAME}
file://add-missing-python-include-dir-for-cross.patch \
"
-SRC_URI[md5sum] = "b8defcc7280a90e9400d6689c93a279c"
-SRC_URI[sha256sum] = "1de6ff046cf2172d265a2cb6f8da439d894f3e4e8157b056c515515232fade6b"
+SRC_URI[md5sum] = "ae6e61fc33f5dac0de5e847eb7520d71"
+SRC_URI[sha256sum] = "5263e09ee62269c092f790ac159112aed3e66826a795e3afec85fdeac4281c8e"
UPSTREAM_CHECK_URI = "https://github.com/libpwquality/libpwquality/releases"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.5.bb b/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.5.bb
index 82503a168..cd4019666 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.5.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.5.bb
@@ -33,3 +33,5 @@ do_configure_prepend() {
( cd ${S}
${S}/autogen.sh )
}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.bb b/meta-openembedded/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.bb
index c61d7c99d..a081cb17a 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.bb
@@ -14,6 +14,8 @@ SRC_URI = "https://github.com/libstatgrab/libstatgrab/releases/download/LIBSTATG
SRC_URI[md5sum] = "5362b2ddbec54b3901e7d70c22cda249"
SRC_URI[sha256sum] = "5bf1906aff9ffc3eeacf32567270f4d819055d8386d98b9c8c05519012d5a196"
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+
# Perl5 is for tests only
EXTRA_OECONF = "--without-perl5 --with-mnttab=/proc/mounts"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.5.2.bb b/meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.6.1.bb
index 5d725bf36..41ad55298 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.5.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.6.1.bb
@@ -2,17 +2,18 @@ DESCRIPTION = "libzip is a C library for reading, creating, and modifying zip ar
HOMEPAGE = "https://libzip.org/"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=01f8b1b8da6403739094396e15b1e722"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e33bb117aa55f9aad3d28e29256f9919"
DEPENDS = "zlib bzip2"
PACKAGECONFIG[ssl] = "-DENABLE_OPENSSL=ON,-DENABLE_OPENSSL=OFF,openssl"
+PACKAGECONFIG[lzma] = "-DENABLE_LZMA=ON,-DENABLE_LZMA=OFF,xz"
-PACKAGECONFIG ?= "ssl"
+PACKAGECONFIG ?= "ssl lzma"
inherit cmake
SRC_URI = "https://libzip.org/download/libzip-${PV}.tar.xz"
-SRC_URI[md5sum] = "f9dd38d273bcdec5d3d1498fe6684f42"
-SRC_URI[sha256sum] = "b3de4d4bd49a01e0cab3507fc163f88e1651695b6b9cb25ad174dbe319d4a3b4"
+SRC_URI[md5sum] = "f9a228619aab2446addc9c9e0e2de149"
+SRC_URI[sha256sum] = "705dac7a671b3f440181481e607b0908129a9cf1ddfcba75d66436c0e7d33641"
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0004-do-not-use-autoconf-2.13-to-refresh-old.configure.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0004-do-not-use-autoconf-2.13-to-refresh-old.configure.patch
deleted file mode 100644
index 4cba79c5b..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0004-do-not-use-autoconf-2.13-to-refresh-old.configure.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From a46adb74b5ba5e17d676d31d70faca76c1381d15 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 12 Jul 2018 21:25:46 +0800
-Subject: [PATCH 4/5] do not use autoconf 2.13 to refresh old.configure
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- build/moz.configure/old.configure | 2 +-
- js/src/old-configure | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/build/moz.configure/old.configure b/build/moz.configure/old.configure
-index ece47f4..a73900f 100644
---- a/build/moz.configure/old.configure
-+++ b/build/moz.configure/old.configure
-@@ -83,7 +83,7 @@ def prepare_configure(old_configure, mozconfig, autoconf, build_env, shell,
- old_configure = os.path.join(old_configure_dir, 'js', 'src',
- os.path.basename(old_configure))
-
-- refresh = True
-+ refresh = False
- if exists(old_configure):
- mtime = getmtime(old_configure)
- aclocal = os.path.join(build_env.topsrcdir, 'build', 'autoconf',
-diff --git a/js/src/old-configure b/js/src/old-configure
-index 75b00e1..8a8ef52 100644
---- a/js/src/old-configure
-+++ b/js/src/old-configure
-@@ -619,7 +619,7 @@ if test -z "$srcdir"; then
- ac_prog=$0
- ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
-- srcdir=$ac_confdir
-+ srcdir="$ac_confdir/../../"
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
---
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/mraa/mraa/0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch b/meta-openembedded/meta-oe/recipes-extended/mraa/mraa/0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch
new file mode 100644
index 000000000..0cae02f06
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mraa/mraa/0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch
@@ -0,0 +1,35 @@
+From 5de183dc436bb647361ab641d891c113e6a7dadd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 8 Mar 2020 16:30:48 -0700
+Subject: [PATCH] cmake: Use a regular expression to match x86 architectures
+
+in OE we use i686 for qemux86 and this results in
+
+-- INFO - Target arch is i686
+CMake Error at CMakeLists.txt:191 (message):
+ Only x86, arm, mips, PERIPHERALMAN and mock platforms currently supported
+
+So using a wildcard helps in using any x86 arch
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 250d9106..fb642722 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -176,8 +176,7 @@ else ()
+ message (STATUS "INFO - Override arch is ${DETECTED_ARCH}")
+ endif()
+
+-if (DETECTED_ARCH STREQUAL "i586" OR DETECTED_ARCH STREQUAL "x86_64"
+- OR DETECTED_ARCH STREQUAL "i386")
++if (DETECTED_ARCH MATCHES "i?86" OR DETECTED_ARCH STREQUAL "x86_64")
+ set (X86PLAT ON)
+ elseif (DETECTED_ARCH MATCHES "arm.*" OR DETECTED_ARCH MATCHES "aarch64")
+ set (ARMPLAT ON)
+--
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb b/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb
index 6d42c6771..403d641ee 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb
@@ -3,12 +3,13 @@ HOMEPAGE = "https://github.com/intel-iot-devkit/mraa"
SECTION = "libs"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4b92a3b497d7943042a6db40c088c3f2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=91e7de50a8d3cf01057f318d72460acd"
-SRCREV = "967585c9ea0e1a8818d2172d2395d8502f6180a2"
-PV = "2.0.0+git${SRCPV}"
+SRCREV = "e15ce6fbc76148ba8835adc92196b0d0a3f245e7"
+PV = "2.1.0+git${SRCPV}"
-SRC_URI = "git://github.com/intel-iot-devkit/${BPN}.git;protocol=http \
+SRC_URI = "git://github.com/eclipse/${BPN}.git;protocol=http \
+ file://0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch \
"
S = "${WORKDIR}/git"
@@ -26,6 +27,8 @@ EXTRA_OECMAKE_append = " -DINSTALLTOOLS:BOOL=ON -DFIRMATA=ON -DCMAKE_SKIP_RPATH=
-DPYTHON_INCLUDE_DIR=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI} \
"
+CFLAGS += "-fcommon"
+
# Prepend mraa-utils to make sure bindir ends up in there
PACKAGES =+ "${PN}-utils"
@@ -60,3 +63,5 @@ RDEPENDS_node-${PN} += "nodejs"
### Include desired language bindings ###
PACKAGES =+ "${@bb.utils.contains('BINDINGS', 'nodejs', 'node-${PN}', '', d)}"
PACKAGES =+ "${@bb.utils.contains('BINDINGS', 'python', '${PYTHON_PN}-${PN}', '', d)}"
+
+TOOLCHAIN = "gcc"
diff --git a/meta-openembedded/meta-oe/recipes-extended/nana/nana_2.5.bb b/meta-openembedded/meta-oe/recipes-extended/nana/nana_2.5.bb
index 595852a9f..423500698 100644
--- a/meta-openembedded/meta-oe/recipes-extended/nana/nana_2.5.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/nana/nana_2.5.bb
@@ -15,7 +15,7 @@ LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=16aa57f3b7fdda870cee597275bd5d11"
-inherit autotools-brokensep pkgconfig
+inherit autotools-brokensep pkgconfig texinfo
EXTRA_OEMAKE = "DESTDIR=${D}"
diff --git a/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb b/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb
index 419b3ee6e..04f82d2bc 100644
--- a/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb
@@ -5,7 +5,7 @@ LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://../COPYING;md5=75859989545e37968a99b631ef42722e"
SECTION = "System/Management"
-inherit setuptools
+inherit ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "setuptools", "", d)}
DEPENDS = "python-native python-pywbem-native python-m2crypto python-pywbem"
@@ -17,10 +17,10 @@ SRC_URI[sha256sum] = "292b8f5f2250655a4add8183c529b73358bc980bd4f23cfa484a940953
S = "${WORKDIR}/${BP}/cli"
do_configure_prepend() {
- sed 's/@@VERSION@@/$(VERSION)/g' setup.py.skel >setup.py
+ sed 's/@@VERSION@@/$(VERSION)/g' ${S}/setup.py.skel > ${S}/setup.py
}
python() {
- if 'meta-python' not in d.getVar('BBFILE_COLLECTIONS').split():
- raise bb.parse.SkipRecipe('Requires meta-python to be present.')
+ if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('Requires meta-python2 to be present.')
}
diff --git a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2019.6.bb b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.3.bb
index bcf511b90..43021c534 100644
--- a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2019.6.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.3.bb
@@ -10,7 +10,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
DEPENDS = " \
glib-2.0 \
- gpgme \
e2fsprogs \
libcap \
zlib \
@@ -26,7 +25,7 @@ SRC_URI = " \
gitsm://github.com/ostreedev/ostree \
file://run-ptest \
"
-SRCREV = "43706202f7de2ce0c829a46caab350ae1656f6ad"
+SRCREV = "6ed48234ba579ff73eb128af237212b0a00f2057"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+\.\d+)"
@@ -36,11 +35,11 @@ inherit autotools bash-completion gobject-introspection gtk-doc manpages pkgconf
# Package configuration - match ostree defaults, but without rofiles-fuse
# otherwise we introduce a dependendency on meta-filesystems
-#
-# If running with ptest, both soup (for trivial-httpd) and xattr are required
PACKAGECONFIG ??= " \
${@bb.utils.filter('DISTRO_FEATURES', 'selinux smack', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd libmount', '', d)} \
+ glib \
+ gpgme \
soup \
"
@@ -49,6 +48,7 @@ PACKAGECONFIG ??= " \
PACKAGECONFIG_class-native ??= " \
${@bb.utils.filter('DISTRO_FEATURES', 'selinux smack', d)} \
builtin-grub2-mkconfig \
+ gpgme \
soup \
"
@@ -56,8 +56,10 @@ PACKAGECONFIG[avahi] = "--with-avahi, --without-avahi, avahi"
PACKAGECONFIG[builtin-grub2-mkconfig] = "--with-builtin-grub2-mkconfig, --without-builtin-grub2-mkconfig"
PACKAGECONFIG[curl] = "--with-curl, --without-curl, curl"
PACKAGECONFIG[dracut] = "--with-dracut, --without-dracut"
+PACKAGECONFIG[glib] = "--with-crypto=glib"
PACKAGECONFIG[gjs] = "ac_cv_path_GJS=${bindir}/gjs"
PACKAGECONFIG[gnutls] = "--with-crypto=gnutls, , gnutls"
+PACKAGECONFIG[gpgme] = "--with-gpgme, --without-gpgme, gpgme"
PACKAGECONFIG[libarchive] = "--with-libarchive, --without-libarchive, libarchive"
PACKAGECONFIG[libmount] = "--with-libmount, --without-libmount, util-linux"
PACKAGECONFIG[manpages] = "--enable-man, --disable-man, libxslt-native docbook-xsl-stylesheets-native"
@@ -144,9 +146,21 @@ RDEPENDS_${PN} = " \
RDEPENDS_${PN}-dracut = "bash"
RDEPENDS_${PN}-mkinitcpio = "bash"
RDEPENDS_${PN}_class-target = " \
- gnupg \
+ ${@bb.utils.contains('PACKAGECONFIG', 'gpgme', 'gnupg', '', d)} \
${PN}-switchroot \
"
+
+#
+# Note that to get ptest to pass you also need:
+#
+# xattr in DISTRO_FEATURES
+# static ostree-prepare-root (PACKAGECONFIG_append_pn-ostree = " static")
+# meta-python in your layers
+# overlayfs in your kernel (KERNEL_EXTRA_FEATURES += "features/overlayfs/overlayfs.scc")
+# busybox built statically
+# /var/tmp as a real filesystem (not a tmpfs)
+# Sufficient disk space (IMAGE_ROOTFS_SIZE = "524288") and RAM (QB_MEM = "-m 1024")
+#
RDEPENDS_${PN}-ptest += " \
attr \
bash \
@@ -157,7 +171,10 @@ RDEPENDS_${PN}-ptest += " \
grep \
python3-core \
python3-multiprocessing \
+ strace \
tar \
+ util-linux \
+ xz \
${PN}-trivial-httpd \
${@bb.utils.contains('BBFILE_COLLECTIONS', 'meta-python', 'python3-pyyaml', '', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'gjs', 'gjs', '', d)} \
@@ -165,7 +182,6 @@ RDEPENDS_${PN}-ptest += " \
RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils glibc-localedata-en-us"
RRECOMMENDS_${PN} += "kernel-module-overlay"
-RRECOMMENDS_${PN}-ptest += "strace"
SYSTEMD_SERVICE_${PN} = "ostree-remount.service ostree-finalize-staged.path"
SYSTEMD_SERVICE_${PN}-switchroot = "ostree-prepare-root.service"
diff --git a/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb b/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb
index 41b4d0d30..7871801b6 100644
--- a/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb
@@ -27,7 +27,7 @@ RDEPENDS_${PN} += "openssh-misc"
#
S = "${WORKDIR}/pam_ssh_agent_auth-${PV}"
-inherit autotools-brokensep
+inherit autotools-brokensep perlnative
# Avoid autoreconf. Override the --libexec oe_runconf specifies so that
# the module is put with the other pam modules. Because it cannot, in general,
diff --git a/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.8.1.bb b/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.8.3.bb
index 7333363ec..92741d817 100644
--- a/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.8.1.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.8.3.bb
@@ -1,9 +1,9 @@
DESCRIPTION="header-only library for creating parsers according to Parsing Expression Grammar"
HOMEPAGE="https://github.com/taocpp/PEGTL"
LICENSE="MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae77b0d903a788cb48f4f0926ffc468b"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6a5195f720a8d436a4148e0cb8660400"
-SRCREV = "7aff80da2ca4fcb0b47f32ba684ff2e1cd48c579"
+SRCREV = "47e878ad4fd72c91253c9d47b6f17e001ca2dfcf"
SRC_URI = "git://github.com/taocpp/PEGTL.git;protocol=https;branch=2.x \
"
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis/0001-src-Do-not-reset-FINAL_LIBS.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis/0001-src-Do-not-reset-FINAL_LIBS.patch
index 04af15dd8..b5c4133e3 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis/0001-src-Do-not-reset-FINAL_LIBS.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis/0001-src-Do-not-reset-FINAL_LIBS.patch
@@ -18,7 +18,7 @@ diff --git a/src/Makefile b/src/Makefile
index 7f7c625..c71dd3b 100644
--- a/src/Makefile
+++ b/src/Makefile
-@@ -66,7 +66,7 @@ endif
+@@ -75,7 +75,7 @@ endif
FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(REDIS_CFLAGS)
FINAL_LDFLAGS=$(LDFLAGS) $(REDIS_LDFLAGS) $(DEBUG)
@@ -26,7 +26,7 @@ index 7f7c625..c71dd3b 100644
+FINAL_LIBS+=-lm
DEBUG=-g -ggdb
- ifeq ($(uname_S),SunOS)
+ # Linux ARM needs -latomic at linking time
--
2.23.0
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis/0005-Mark-extern-definition-of-SDS_NOINIT-in-sds.h.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis/0005-Mark-extern-definition-of-SDS_NOINIT-in-sds.h.patch
deleted file mode 100644
index 4675687c3..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis/0005-Mark-extern-definition-of-SDS_NOINIT-in-sds.h.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 7f7f710c8821b7254baeaf945ca3ca263b9845e2 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 21 Dec 2019 11:17:50 -0800
-Subject: [PATCH] Mark extern definition of SDS_NOINIT in sds.h
-
-This helps avoiding multiple definition of this variable, its also
-defined globally in sds.c
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/sds.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/sds.h b/src/sds.h
-index 1bdb60d..adcc12c 100644
---- a/src/sds.h
-+++ b/src/sds.h
-@@ -34,7 +34,7 @@
- #define __SDS_H
-
- #define SDS_MAX_PREALLOC (1024*1024)
--const char *SDS_NOINIT;
-+extern const char *SDS_NOINIT;
-
- #include <sys/types.h>
- #include <stdarg.h>
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis_5.0.7.bb b/meta-openembedded/meta-oe/recipes-extended/redis/redis_5.0.9.bb
index b91575552..d04293369 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis_5.0.7.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis_5.0.9.bb
@@ -14,12 +14,11 @@ SRC_URI = "http://download.redis.io/releases/${BP}.tar.gz \
file://lua-update-Makefile-to-use-environment-build-setting.patch \
file://oe-use-libc-malloc.patch \
file://0001-src-Do-not-reset-FINAL_LIBS.patch \
- file://0005-Mark-extern-definition-of-SDS_NOINIT-in-sds.h.patch \
file://GNU_SOURCE.patch \
"
-SRC_URI[md5sum] = "612ec43075a888bc8b8a7dd8ccb2e0f7"
-SRC_URI[sha256sum] = "61db74eabf6801f057fd24b590232f2f337d422280fd19486eca03be87d3a82b"
+SRC_URI[md5sum] = "c94523c9f4ee662027ddf90575d0e058"
+SRC_URI[sha256sum] = "53d0ae164cd33536c3d4b720ae9a128ea6166ebf04ff1add3b85f1242090cb85"
inherit autotools-brokensep update-rc.d systemd useradd
diff --git a/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.2.bb b/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.2.bb
index b39ceda80..5662e6347 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.2.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "http://oss.oetiker.ch/rrdtool/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=39df84cfd8a5e18bf988f277f7946676"
-DEPENDS = "libpng zlib cairo pango glib-2.0 libxml2 groff-native python-setuptools-native"
+DEPENDS = "libpng zlib cairo pango glib-2.0 libxml2 groff-native python3-setuptools-native"
SRCREV = "56a83f4f52e6745cd4352f9ee008be3183a6dedf"
PV = "1.7.2"
@@ -15,7 +15,7 @@ SRC_URI = "\
S = "${WORKDIR}/git"
-inherit cpan autotools-brokensep gettext pythonnative python-dir systemd
+inherit cpan autotools-brokensep gettext python3native python3-dir systemd
BBCLASSEXTEND = "native"
@@ -24,7 +24,7 @@ SYSTEMD_SERVICE_rrdcached = "rrdcached.socket rrdcached.service"
EXTRA_AUTORECONF = "-I m4 --exclude=autopoint"
-PACKAGECONFIG ??= "python perl ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG ??= "perl ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
PACKAGECONFIG[python] = "--enable-python=yes \
am_cv_python_pythondir=${STAGING_LIBDIR}/python${PYTHON_BASEVERSION}/site-packages \
@@ -123,7 +123,7 @@ RDEPENDS_${PN}-perl = "perl perl-module-lib perl-module-getopt-long perl-module-
DESCRIPTION_${PN}-python = \
"The ${PN}-python package includes RRDtool bindings for python."
FILES_${PN}-python = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*"
-RDEPENDS_${PN}-python = "python"
+RDEPENDS_${PN}-python = "python3"
FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/RRDs/.debug \
${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug"
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.4.0.bb b/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.5.0.bb
index 16c63a752..a4663148c 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.5.0.bb
@@ -9,7 +9,7 @@ DEPENDS = "gmp nettle libidn zlib gnutls openssl"
SRC_URI = "git://github.com/rsyslog/librelp.git;protocol=https \
"
-SRCREV = "e96443dda3c080fa991decec26bc4ac98d24b9a2"
+SRCREV = "0beb2258e12e4131dc31e261078ea53d18f787d7"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/run-ptest b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/run-ptest
index 3770a7506..aa698d85c 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/run-ptest
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/run-ptest
@@ -1,3 +1,8 @@
#!/bin/sh
#
+set -e
+set -o pipefail
+
+SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
+cd ${SCRIPTPATH}
make -C tests -k check-TESTS
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2002.0.bb
index 02ac03eae..8605145eb 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2002.0.bb
@@ -29,8 +29,8 @@ SRC_URI_append_libc-musl = " \
file://0001-Include-sys-time-h.patch \
"
-SRC_URI[md5sum] = "154e33feb587216f2955050a8301104c"
-SRC_URI[sha256sum] = "e1f4776b1c62ad7220f4d624a89a96b0c3d4738006899356eaaef0f1f91ee104"
+SRC_URI[md5sum] = "fbe6d18205170e22bad470954d0dc874"
+SRC_URI[sha256sum] = "fe86c14d860da1202c76616feac0539ea5a40a4ad182d74b7d6d2419cc2381f8"
UPSTREAM_CHECK_URI = "https://github.com/rsyslog/rsyslog/releases"
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
@@ -77,6 +77,12 @@ PACKAGECONFIG[libdbi] = "--enable-libdbi,--disable-libdbi,libdbi,"
PACKAGECONFIG[mail] = "--enable-mail,--disable-mail,,"
PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind,"
+do_configure_prepend() {
+ sed -i -e 's|python |python3 |g' ${S}/tests/*.sh
+ sed -i -e 's|/usr/bin/env python|/usr/bin/env python3|g' ${S}/tests/*.py
+ sed -i -e 's|/usr/bin/env python|/usr/bin/env python3|g' ${S}/tests/testsuites/*.py
+}
+
TESTDIR = "tests"
do_compile_ptest() {
echo 'buildtest-TESTS: $(check_PROGRAMS)' >> ${TESTDIR}/Makefile
@@ -125,6 +131,8 @@ do_install_ptest() {
# fix the module load path with runtime/.libs
find ${D}${PTEST_PATH}/${TESTDIR} -name "*.conf" -o -name "*.sh" -o -name "*.c" | xargs \
sed -i -e 's:../plugins/.*/.libs/:../runtime/.libs/:g'
+ # fix the python3 path for tests/set-envar
+ sed -i -e s:${HOSTTOOLS_DIR}:${bindir}:g ${D}${PTEST_PATH}/tests/set-envvars
}
do_install_append() {
@@ -179,12 +187,14 @@ VALGRIND_linux-gnun32 = ''
# Disable for powerpc64 with musl
VALGRIND_libc-musl_powerpc64 = ''
+VALGRIND_libc-musl_powerpc64le = ''
# RISC-V support for valgrind is not there yet
VALGRIND_riscv64 = ""
+VALGRIND_riscv32 = ""
RDEPENDS_${PN}-ptest += "\
make diffutils gzip bash gawk coreutils procps \
- libgcc python-core python-io \
+ libgcc python3-core python3-io \
"
RRECOMMENDS_${PN}-ptest += "${TCLIBC}-dbg ${VALGRIND}"
diff --git a/meta-openembedded/meta-oe/recipes-extended/sigrok/libsigrok_0.5.2.bb b/meta-openembedded/meta-oe/recipes-extended/sigrok/libsigrok_0.5.2.bb
index 35e59d6d7..e8c36a81d 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sigrok/libsigrok_0.5.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/sigrok/libsigrok_0.5.2.bb
@@ -15,7 +15,7 @@ PACKAGECONFIG[hidapi] = "--with-libhidapi,--without-libhidapi,hidapi"
PACKAGECONFIG ??= "serialport ftdi usb"
-inherit autotools pkgconfig
+inherit autotools pkgconfig mime
SRC_URI = "http://sigrok.org/download/source/libsigrok/libsigrok-${PV}.tar.gz"
diff --git a/meta-openembedded/meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.1.bb b/meta-openembedded/meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.1.bb
index 2293f142b..369e2f6f4 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.1.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.1.bb
@@ -10,7 +10,7 @@ PACKAGECONFIG[decode] = "--with-libsigrokdecode,--without-libsigrokdecode,libsig
PACKAGECONFIG ??= "decode"
-inherit autotools pkgconfig
+inherit autotools pkgconfig mime-xdg
SRC_URI = "http://sigrok.org/download/source/sigrok-cli/sigrok-cli-${PV}.tar.gz"
SRC_URI[md5sum] = "3f45ce664bad529d8b3f78a61b017d75"
diff --git a/meta-openembedded/meta-oe/recipes-extended/snappy/snappy_1.1.7.bb b/meta-openembedded/meta-oe/recipes-extended/snappy/snappy_1.1.8.bb
index 9f37c5fc2..d6d1e4110 100644
--- a/meta-openembedded/meta-oe/recipes-extended/snappy/snappy_1.1.7.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/snappy/snappy_1.1.8.bb
@@ -10,10 +10,10 @@ compression ratio."
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=f62f3080324a97b3159a7a7e61812d0c"
-SRC_URI = "https://src.fedoraproject.org/repo/pkgs/snappy/snappy-1.1.7.tar.gz/sha512/32046f532606ba545a4e4825c0c66a19be449f2ca2ff760a6fa170a3603731479a7deadb683546e5f8b5033414c50f4a9a29f6d23b7a41f047e566e69eca7caf/snappy-1.1.7.tar.gz"
+SRC_URI = "https://src.fedoraproject.org/repo/pkgs/snappy/snappy-1.1.8.tar.gz/sha512/efe18ff1b3edda1b4b6cefcbc6da8119c05d63afdbf7a784f3490353c74dced76baed7b5f1aa34b99899729192b9d657c33c76de4b507a51553fa8001ae75c1c/snappy-1.1.8.tar.gz"
-SRC_URI[md5sum] = "ee9086291c9ae8deb4dac5e0b85bf54a"
-SRC_URI[sha256sum] = "3dfa02e873ff51a11ee02b9ca391807f0c8ea0529a4924afa645fbf97163f9d4"
+SRC_URI[md5sum] = "70e48cba7fecf289153d009791c9977f"
+SRC_URI[sha256sum] = "16b677f07832a612b0836178db7f374e414f94657c138e6993cbfc5dcc58651f"
inherit cmake pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils/0001-fix-include-to-find-SIOCGSTAMP-with-latest-kernel.patch b/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils/0001-fix-include-to-find-SIOCGSTAMP-with-latest-kernel.patch
deleted file mode 100644
index cbf3aee10..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils/0001-fix-include-to-find-SIOCGSTAMP-with-latest-kernel.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From 20981c8a328747f823b7eef68d0c2812b3eaed30 Mon Sep 17 00:00:00 2001
-From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-Date: Sun, 14 Jul 2019 21:50:43 +0200
-Subject: [PATCH] fix include to find SIOCGSTAMP with latest kernel
-
-In linux kernel commit 0768e17073dc527ccd18ed5f96ce85f9985e9115
-the asm-generic/sockios.h header no longer defines SIOCGSTAMP.
-Instead it provides only SIOCGSTAMP_OLD.
-
-The linux/sockios.h header now defines SIOCGSTAMP using either
-SIOCGSTAMP_OLD or SIOCGSTAMP_NEW as appropriate. This linux only
-header file is not pulled so we get a build failure.
-
-canlogserver.c: In function 'main':
-canlogserver.c:404:21: error: 'SIOCGSTAMP' undeclared (first use in this function); did you mean 'SIOCGRARP'?
- if (ioctl(s[i], SIOCGSTAMP, &tv) < 0)
- ^~~~~~~~~~
- SIOCGRARP
-canlogserver.c:404:21: note: each undeclared identifier is reported only once for each function it appears in
-
-Fixes:
- - http://autobuild.buildroot.org/results/363de7d9bf433be8bc47ba4ee52ae0bb80fa9021
-
-Upstream-Status: Backport [https://github.com/linux-can/can-utils/commit/e9590b1ca75d360eaf3211bebd86058214d48064]
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
----
- canlogserver.c | 1 +
- cansniffer.c | 1 +
- isotpdump.c | 1 +
- isotpperf.c | 1 +
- isotpsniffer.c | 1 +
- slcanpty.c | 1 +
- 6 files changed, 6 insertions(+)
-
-diff --git a/canlogserver.c b/canlogserver.c
-index e3350b7..f53165c 100644
---- a/canlogserver.c
-+++ b/canlogserver.c
-@@ -61,6 +61,7 @@
-
- #include <linux/can.h>
- #include <linux/can/raw.h>
-+#include <linux/sockios.h>
- #include <signal.h>
- #include <errno.h>
-
-diff --git a/cansniffer.c b/cansniffer.c
-index 7b0a3fa..bf7d72e 100644
---- a/cansniffer.c
-+++ b/cansniffer.c
-@@ -61,6 +61,7 @@
-
- #include <linux/can.h>
- #include <linux/can/bcm.h>
-+#include <linux/sockios.h>
-
- #include "terminal.h"
-
-diff --git a/isotpdump.c b/isotpdump.c
-index b2b650a..36d8af3 100644
---- a/isotpdump.c
-+++ b/isotpdump.c
-@@ -55,6 +55,7 @@
-
- #include <linux/can.h>
- #include <linux/can/raw.h>
-+#include <linux/sockios.h>
- #include "terminal.h"
-
- #define NO_CAN_ID 0xFFFFFFFFU
-diff --git a/isotpperf.c b/isotpperf.c
-index db3a2b7..5852a57 100644
---- a/isotpperf.c
-+++ b/isotpperf.c
-@@ -56,6 +56,7 @@
-
- #include <linux/can.h>
- #include <linux/can/raw.h>
-+#include <linux/sockios.h>
-
- #define NO_CAN_ID 0xFFFFFFFFU
- #define PERCENTRES 2 /* resolution in percent for bargraph */
-diff --git a/isotpsniffer.c b/isotpsniffer.c
-index f42e18b..d7a4c66 100644
---- a/isotpsniffer.c
-+++ b/isotpsniffer.c
-@@ -55,6 +55,7 @@
-
- #include <linux/can.h>
- #include <linux/can/isotp.h>
-+#include <linux/sockios.h>
- #include "terminal.h"
-
- #define NO_CAN_ID 0xFFFFFFFFU
-diff --git a/slcanpty.c b/slcanpty.c
-index 431ca68..7dfaf5c 100644
---- a/slcanpty.c
-+++ b/slcanpty.c
-@@ -40,6 +40,7 @@
-
- #include <linux/can.h>
- #include <linux/can/raw.h>
-+#include <linux/sockios.h>
-
- /* maximum rx buffer len: extended CAN frame with timestamp */
- #define SLC_MTU (sizeof("T1111222281122334455667788EA5F\r")+1)
diff --git a/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb b/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb
index db5055fed..519368817 100644
--- a/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb
@@ -1,18 +1,15 @@
SUMMARY = "Linux CAN network development utilities"
-DESCRIPTION = "Linux CAN network development"
LICENSE = "GPLv2 & BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://include/linux/can.h;endline=43;md5=390a2c9a3c5e3595a069ac1436553ee7"
+LIC_FILES_CHKSUM = "file://include/linux/can.h;endline=44;md5=a9e1169c6c9a114a61329e99f86fdd31"
DEPENDS = "libsocketcan"
-SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git;branch=master \
- file://0001-fix-include-to-find-SIOCGSTAMP-with-latest-kernel.patch \
- "
-SRCREV = "4c8fb05cb4d6ddcd67299008db54af423f86fd05"
+SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git"
-PV = "0.0+gitr${SRCPV}"
+SRCREV = "da65fdfe0d1986625ee00af0b56ae17ec132e700"
+
+PV = "2020.02.04"
S = "${WORKDIR}/git"
inherit autotools pkgconfig
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch b/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch
index 7d3f8a19d..cb8061157 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch
@@ -9,42 +9,41 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
userspace/libsinsp/utils.h | 2 +-
2 files changed, 4 insertions(+), 2 deletions(-)
-diff --git a/userspace/libsinsp/utils.cpp b/userspace/libsinsp/utils.cpp
-index 8f23f9c..c496a57 100644
--- a/userspace/libsinsp/utils.cpp
+++ b/userspace/libsinsp/utils.cpp
-@@ -21,7 +21,9 @@ along with sysdig. If not, see <http://www.gnu.org/licenses/>.
+@@ -22,7 +22,7 @@ limitations under the License.
#include <limits.h>
#include <stdlib.h>
#include <sys/time.h>
-+#ifdef __GLIBC__
+-#ifndef CYGWING_AGENT
++#if !defined(CYGWING_AGENT) || defined(__GLIBC__)
#include <execinfo.h>
-+#endif
+ #endif
#include <unistd.h>
- #include <sys/time.h>
- #include <netdb.h>
-@@ -741,7 +743,7 @@ uint64_t sinsp_utils::get_current_time_ns()
- return tv.tv_sec * (uint64_t) 1000000000 + tv.tv_usec * 1000;
- }
+@@ -780,6 +780,7 @@ bool sinsp_utils::glob_match(const char
--#ifndef _WIN32
-+#if defined(_WIN32) && defined(__GLIBC__)
+ #ifndef CYGWING_AGENT
+ #ifndef _WIN32
++#ifdef __GLIBC__
void sinsp_utils::bt(void)
{
static const char start[] = "BACKTRACE ------------";
-diff --git a/userspace/libsinsp/utils.h b/userspace/libsinsp/utils.h
-index 600d00b..4ab4650 100644
+@@ -801,6 +802,7 @@ void sinsp_utils::bt(void)
+
+ free(bt_syms);
+ }
++#endif // Glibc
+ #endif // _WIN32
+ #endif // CYGWING_AGENT
+
--- a/userspace/libsinsp/utils.h
+++ b/userspace/libsinsp/utils.h
-@@ -79,7 +79,7 @@ public:
+@@ -104,7 +104,7 @@ public:
- static uint64_t get_current_time_ns();
+ static bool glob_match(const char *pattern, const char *string);
-#ifndef _WIN32
+#if not defined(_WIN32) && defined(__GLIBC__)
//
// Print the call stack
//
---
-2.6.2
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-fix-build-with-LuaJIT-2.1-betas.patch b/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-fix-build-with-LuaJIT-2.1-betas.patch
new file mode 100644
index 000000000..71b0b8c8b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-fix-build-with-LuaJIT-2.1-betas.patch
@@ -0,0 +1,96 @@
+From ae82de664a6ba6ab2654adf9bed81f22b6fdc19d Mon Sep 17 00:00:00 2001
+From: Evgeni Golov <evgeni@golov.de>
+Date: Sun, 27 Aug 2017 13:51:19 +0200
+Subject: [PATCH] fix build with LuaJIT 2.1 betas
+
+LuaJIT 2.1 drops some compat symbols [1]. And while I think that this is
+wrong, as it breaks compatibility with Lua 5.1 [2], it is quite easy to
+adopt the code to work with both versions (2.0 and 2.1) of LuaJIT and
+remain Lua 5.1 compatible.
+
+[1] https://github.com/LuaJIT/LuaJIT/commit/dc320ca70f2c5bb3977b82853bcee6dad2523d01
+[2] https://github.com/LuaJIT/LuaJIT/issues/325
+
+Upstream-Status: Submitted [https://github.com/LuaJIT/LuaJIT/issues/325]
+Signed-off-by: Evgeni Golov <evgeni@golov.de>
+sysdig-CLA-1.0-signed-off-by: Evgeni Golov <evgeni@golov.de>
+---
+ CMakeLists.txt | 2 +-
+ userspace/libsinsp/chisel.cpp | 6 +++---
+ userspace/libsinsp/lua_parser.cpp | 2 +-
+ userspace/libsinsp/lua_parser_api.cpp | 2 +-
+ 4 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d7020493..33e524f5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -140,7 +140,7 @@ option(USE_BUNDLED_DEPS "Enable bundled dependencies instead of using the system
+ option(USE_BUNDLED_LUAJIT "Enable building of the bundled LuaJIT" ${USE_BUNDLED_DEPS})
+
+ if(NOT USE_BUNDLED_LUAJIT)
+- find_path(LUAJIT_INCLUDE luajit.h PATH_SUFFIXES luajit-2.0 luajit)
++ find_path(LUAJIT_INCLUDE luajit.h PATH_SUFFIXES luajit-2.1 luajit-2.0 luajit)
+ find_library(LUAJIT_LIB NAMES luajit luajit-5.1)
+ if(LUAJIT_INCLUDE AND LUAJIT_LIB)
+ message(STATUS "Found LuaJIT: include: ${LUAJIT_INCLUDE}, lib: ${LUAJIT_LIB}")
+diff --git a/userspace/libsinsp/chisel.cpp b/userspace/libsinsp/chisel.cpp
+index 0a6e3cf8..0c2e255a 100644
+--- a/userspace/libsinsp/chisel.cpp
++++ b/userspace/libsinsp/chisel.cpp
+@@ -98,7 +98,7 @@ void lua_stackdump(lua_State *L)
+ // Lua callbacks
+ ///////////////////////////////////////////////////////////////////////////////
+ #ifdef HAS_LUA_CHISELS
+-const static struct luaL_reg ll_sysdig [] =
++const static struct luaL_Reg ll_sysdig [] =
+ {
+ {"set_filter", &lua_cbacks::set_global_filter},
+ {"set_snaplen", &lua_cbacks::set_snaplen},
+@@ -134,7 +134,7 @@ const static struct luaL_reg ll_sysdig [] =
+ {NULL,NULL}
+ };
+
+-const static struct luaL_reg ll_chisel [] =
++const static struct luaL_Reg ll_chisel [] =
+ {
+ {"request_field", &lua_cbacks::request_field},
+ {"set_filter", &lua_cbacks::set_filter},
+@@ -146,7 +146,7 @@ const static struct luaL_reg ll_chisel [] =
+ {NULL,NULL}
+ };
+
+-const static struct luaL_reg ll_evt [] =
++const static struct luaL_Reg ll_evt [] =
+ {
+ {"field", &lua_cbacks::field},
+ {"get_num", &lua_cbacks::get_num},
+diff --git a/userspace/libsinsp/lua_parser.cpp b/userspace/libsinsp/lua_parser.cpp
+index 0e26617d..78810d96 100644
+--- a/userspace/libsinsp/lua_parser.cpp
++++ b/userspace/libsinsp/lua_parser.cpp
+@@ -32,7 +32,7 @@ extern "C" {
+ #include "lauxlib.h"
+ }
+
+-const static struct luaL_reg ll_filter [] =
++const static struct luaL_Reg ll_filter [] =
+ {
+ {"rel_expr", &lua_parser_cbacks::rel_expr},
+ {"bool_op", &lua_parser_cbacks::bool_op},
+diff --git a/userspace/libsinsp/lua_parser_api.cpp b/userspace/libsinsp/lua_parser_api.cpp
+index c89e9126..e0169fe1 100644
+--- a/userspace/libsinsp/lua_parser_api.cpp
++++ b/userspace/libsinsp/lua_parser_api.cpp
+@@ -266,7 +266,7 @@ int lua_parser_cbacks::rel_expr(lua_State *ls)
+ string err = "Got non-table as in-expression operand\n";
+ throw sinsp_exception("parser API error");
+ }
+- int n = luaL_getn(ls, 4); /* get size of table */
++ int n = (int)lua_objlen(ls, 4); /* get size of table */
+ for (i=1; i<=n; i++)
+ {
+ lua_rawgeti(ls, 4, i);
+--
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Port-to-build-with-lua-5.2.patch b/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Port-to-build-with-lua-5.2.patch
deleted file mode 100644
index 8fec0ca59..000000000
--- a/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Port-to-build-with-lua-5.2.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From c2782a6ca968190e221c25b0890600ba8cd43798 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 23 Oct 2015 00:23:15 -0700
-Subject: [PATCH] libsinsp: Port to build with lua >= 5.2
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- userspace/libsinsp/chisel.cpp | 40 +++++++++++++++++++++++++++++-----------
- 1 file changed, 29 insertions(+), 11 deletions(-)
-
-diff --git a/userspace/libsinsp/chisel.cpp b/userspace/libsinsp/chisel.cpp
-index 3cfbd8d..2db9348 100644
---- a/userspace/libsinsp/chisel.cpp
-+++ b/userspace/libsinsp/chisel.cpp
-@@ -94,7 +94,7 @@ void lua_stackdump(lua_State *L)
- // Lua callbacks
- ///////////////////////////////////////////////////////////////////////////////
- #ifdef HAS_LUA_CHISELS
--const static struct luaL_reg ll_sysdig [] =
-+const static struct luaL_Reg ll_sysdig [] =
- {
- {"set_filter", &lua_cbacks::set_global_filter},
- {"set_snaplen", &lua_cbacks::set_snaplen},
-@@ -120,7 +120,7 @@ const static struct luaL_reg ll_sysdig [] =
- {NULL,NULL}
- };
-
--const static struct luaL_reg ll_chisel [] =
-+const static struct luaL_Reg ll_chisel [] =
- {
- {"request_field", &lua_cbacks::request_field},
- {"set_filter", &lua_cbacks::set_filter},
-@@ -131,7 +131,7 @@ const static struct luaL_reg ll_chisel [] =
- {NULL,NULL}
- };
-
--const static struct luaL_reg ll_evt [] =
-+const static struct luaL_Reg ll_evt [] =
- {
- {"field", &lua_cbacks::field},
- {"get_num", &lua_cbacks::get_num},
-@@ -853,10 +853,28 @@ bool sinsp_chisel::parse_view_info(lua_State *ls, OUT chisel_desc* cd)
-
-
- #ifdef HAS_LUA_CHISELS
-+static void chisel_lua_registerlib(lua_State *L, const char *libname,
-+ const luaL_Reg *l, int ind)
-+{
-+#if LUA_VERSION_NUM >= 502
-+ if (libname)
-+ {
-+ lua_newtable(L);
-+ luaL_setfuncs(L, l, ind);
-+ lua_pushvalue(L, -1);
-+ lua_setglobal(L, libname);
-+ }
-+ else
-+ luaL_setfuncs(L, l, ind);
-+#else
-+ luaL_register(L, libname, l);
-+#endif
-+}
-+
- // Initializes a lua chisel
- bool sinsp_chisel::init_lua_chisel(chisel_desc &cd, string const &fpath)
- {
-- lua_State* ls = lua_open();
-+ lua_State* ls = luaL_newstate();
- if(ls == NULL)
- {
- return false;
-@@ -867,9 +885,9 @@ bool sinsp_chisel::init_lua_chisel(chisel_desc &cd, string const &fpath)
- //
- // Load our own lua libs
- //
-- luaL_openlib(ls, "sysdig", ll_sysdig, 0);
-- luaL_openlib(ls, "chisel", ll_chisel, 0);
-- luaL_openlib(ls, "evt", ll_evt, 0);
-+ chisel_lua_registerlib(ls, "sysdig", ll_sysdig, 0);
-+ chisel_lua_registerlib(ls, "chisel", ll_chisel, 0);
-+ chisel_lua_registerlib(ls, "evt", ll_evt, 0);
-
- //
- // Add our chisel paths to package.path
-@@ -1111,16 +1129,16 @@ void sinsp_chisel::load(string cmdstr)
- //
- // Open the script
- //
-- m_ls = lua_open();
-+ m_ls = luaL_newstate();
-
- luaL_openlibs(m_ls);
-
- //
- // Load our own lua libs
- //
-- luaL_openlib(m_ls, "sysdig", ll_sysdig, 0);
-- luaL_openlib(m_ls, "chisel", ll_chisel, 0);
-- luaL_openlib(m_ls, "evt", ll_evt, 0);
-+ chisel_lua_registerlib(m_ls, "sysdig", ll_sysdig, 0);
-+ chisel_lua_registerlib(m_ls, "chisel", ll_chisel, 0);
-+ chisel_lua_registerlib(m_ls, "evt", ll_evt, 0);
-
- //
- // Add our chisel paths to package.path
---
-2.6.2
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/aarch64.patch b/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/aarch64.patch
new file mode 100644
index 000000000..f16b0eca5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/aarch64.patch
@@ -0,0 +1,359 @@
+Check if legacy syscalls exist
+
+A lot of legacy syscalls are replaced with *at and are not implemented in newer
+architectures like aarch64
+
+Upstream-Status: Submitted [https://github.com/draios/sysdig/pull/1601]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/driver/syscall_table.c
++++ b/driver/syscall_table.c
+@@ -42,26 +42,46 @@ or GPL2.txt for full copies of the licen
+ * SYSCALL TABLE
+ */
+ const struct syscall_evt_pair g_syscall_table[SYSCALL_TABLE_SIZE] = {
++#ifdef __NR_open
+ [__NR_open - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_OPEN_E, PPME_SYSCALL_OPEN_X},
++#endif
++#ifdef __NR_creat
+ [__NR_creat - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_CREAT_E, PPME_SYSCALL_CREAT_X},
++#endif
+ [__NR_close - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_CLOSE_E, PPME_SYSCALL_CLOSE_X},
+ [__NR_brk - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_BRK_4_E, PPME_SYSCALL_BRK_4_X},
+ [__NR_read - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_READ_E, PPME_SYSCALL_READ_X},
+ [__NR_write - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_WRITE_E, PPME_SYSCALL_WRITE_X},
+ [__NR_execve - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_EXECVE_19_E, PPME_SYSCALL_EXECVE_19_X},
+ [__NR_clone - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_CLONE_20_E, PPME_SYSCALL_CLONE_20_X},
++#ifdef __NR_fork
+ [__NR_fork - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_FORK_20_E, PPME_SYSCALL_FORK_20_X},
++#endif
++#ifdef __NR_vfork
+ [__NR_vfork - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_VFORK_20_E, PPME_SYSCALL_VFORK_20_X},
++#endif
++#ifdef __NR_pipe
+ [__NR_pipe - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_PIPE_E, PPME_SYSCALL_PIPE_X},
++#endif
+ [__NR_pipe2 - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_PIPE_E, PPME_SYSCALL_PIPE_X},
++#ifdef __NR_eventfd
+ [__NR_eventfd - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_EVENTFD_E, PPME_SYSCALL_EVENTFD_X},
++#endif
+ [__NR_eventfd2 - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_EVENTFD_E, PPME_SYSCALL_EVENTFD_X},
+ [__NR_futex - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_FUTEX_E, PPME_SYSCALL_FUTEX_X},
++#ifdef __NR_stat
+ [__NR_stat - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_STAT_E, PPME_SYSCALL_STAT_X},
++#endif
++#ifdef __NR_lstat
+ [__NR_lstat - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_LSTAT_E, PPME_SYSCALL_LSTAT_X},
++#endif
+ [__NR_fstat - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_FSTAT_E, PPME_SYSCALL_FSTAT_X},
++#ifdef __NR_epoll_wait
+ [__NR_epoll_wait - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_EPOLLWAIT_E, PPME_SYSCALL_EPOLLWAIT_X},
++#endif
++#ifdef __NR_poll
+ [__NR_poll - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_POLL_E, PPME_SYSCALL_POLL_X},
++#endif
+ #ifdef __NR_select
+ [__NR_select - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_SELECT_E, PPME_SYSCALL_SELECT_X},
+ #endif
+@@ -70,13 +90,21 @@ const struct syscall_evt_pair g_syscall_
+ [__NR_getcwd - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_GETCWD_E, PPME_SYSCALL_GETCWD_X},
+ [__NR_chdir - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_CHDIR_E, PPME_SYSCALL_CHDIR_X},
+ [__NR_fchdir - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_FCHDIR_E, PPME_SYSCALL_FCHDIR_X},
++#ifdef __NR_mkdir
+ [__NR_mkdir - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_MKDIR_2_E, PPME_SYSCALL_MKDIR_2_X},
++#endif
++#ifdef __NR_rmdir
+ [__NR_rmdir - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_RMDIR_2_E, PPME_SYSCALL_RMDIR_2_X},
++#endif
+ [__NR_openat - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_OPENAT_2_E, PPME_SYSCALL_OPENAT_2_X},
+ [__NR_mkdirat - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_MKDIRAT_E, PPME_SYSCALL_MKDIRAT_X},
++#ifdef __NR_link
+ [__NR_link - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_LINK_2_E, PPME_SYSCALL_LINK_2_X},
++#endif
+ [__NR_linkat - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_LINKAT_2_E, PPME_SYSCALL_LINKAT_2_X},
++#ifdef __NR_unlink
+ [__NR_unlink - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_UNLINK_2_E, PPME_SYSCALL_UNLINK_2_X},
++#endif
+ [__NR_unlinkat - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_UNLINKAT_2_E, PPME_SYSCALL_UNLINKAT_2_X},
+ [__NR_pread64 - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_PREAD_E, PPME_SYSCALL_PREAD_X},
+ [__NR_pwrite64 - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_PWRITE_E, PPME_SYSCALL_PWRITE_X},
+@@ -85,16 +113,22 @@ const struct syscall_evt_pair g_syscall_
+ [__NR_preadv - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_PREADV_E, PPME_SYSCALL_PREADV_X},
+ [__NR_pwritev - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_PWRITEV_E, PPME_SYSCALL_PWRITEV_X},
+ [__NR_dup - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_DUP_E, PPME_SYSCALL_DUP_X},
++#ifdef __NR_dup2
+ [__NR_dup2 - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_DUP_E, PPME_SYSCALL_DUP_X},
++#endif
+ [__NR_dup3 - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_DUP_E, PPME_SYSCALL_DUP_X},
++#ifdef __NR_signalfd
+ [__NR_signalfd - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_SIGNALFD_E, PPME_SYSCALL_SIGNALFD_X},
++#endif
+ [__NR_signalfd4 - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_SIGNALFD_E, PPME_SYSCALL_SIGNALFD_X},
+ [__NR_kill - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_KILL_E, PPME_SYSCALL_KILL_X},
+ [__NR_tkill - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_TKILL_E, PPME_SYSCALL_TKILL_X},
+ [__NR_tgkill - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_TGKILL_E, PPME_SYSCALL_TGKILL_X},
+ [__NR_nanosleep - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_NANOSLEEP_E, PPME_SYSCALL_NANOSLEEP_X},
+ [__NR_timerfd_create - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_TIMERFD_CREATE_E, PPME_SYSCALL_TIMERFD_CREATE_X},
++#ifdef __NR_inotify_init
+ [__NR_inotify_init - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_INOTIFY_INIT_E, PPME_SYSCALL_INOTIFY_INIT_X},
++#endif
+ [__NR_inotify_init1 - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_INOTIFY_INIT_E, PPME_SYSCALL_INOTIFY_INIT_X},
+ [__NR_fchmodat - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_FCHMODAT_E, PPME_SYSCALL_FCHMODAT_X},
+ [__NR_fchmod - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_FCHMOD_E, PPME_SYSCALL_FCHMOD_X},
+@@ -114,14 +148,22 @@ const struct syscall_evt_pair g_syscall_
+ #endif
+ /* [__NR_old_select - SYSCALL_TABLE_ID0] = {UF_USED, PPME_GENERIC_E, PPME_GENERIC_X}, */
+ [__NR_pselect6 - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
++#ifdef __NR_epoll_create
+ [__NR_epoll_create - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
++#endif
+ [__NR_epoll_ctl - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
++#ifdef __NR_uselib
+ [__NR_uselib - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
++#endif
+ [__NR_sched_setparam - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
+ [__NR_sched_getparam - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
+ [__NR_syslog - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
++#ifdef __NR_chmod
+ [__NR_chmod - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_CHMOD_E, PPME_SYSCALL_CHMOD_X},
++#endif
++#ifdef __NR_lchown
+ [__NR_lchown - SYSCALL_TABLE_ID0] = {UF_USED, PPME_GENERIC_E, PPME_GENERIC_X},
++#endif
+ #ifdef __NR_utime
+ [__NR_utime - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
+ #endif
+@@ -131,8 +173,9 @@ const struct syscall_evt_pair g_syscall_
+ #ifdef __NR_alarm
+ [__NR_alarm - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
+ #endif
++#ifdef __NR_pause
+ [__NR_pause - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
+-
++#endif
+ #ifndef __NR_socketcall
+ [__NR_socket - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SOCKET_SOCKET_E, PPME_SOCKET_SOCKET_X},
+ [__NR_bind - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SOCKET_BIND_E, PPME_SOCKET_BIND_X},
+@@ -184,9 +227,13 @@ const struct syscall_evt_pair g_syscall_
+ [__NR_process_vm_writev - SYSCALL_TABLE_ID0] = {UF_USED, PPME_GENERIC_E, PPME_GENERIC_X},
+ #endif
+
++#ifdef __NR_rename
+ [__NR_rename - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_RENAME_E, PPME_SYSCALL_RENAME_X},
++#endif
+ [__NR_renameat - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_RENAMEAT_E, PPME_SYSCALL_RENAMEAT_X},
++#ifdef __NR_symlink
+ [__NR_symlink - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_SYMLINK_E, PPME_SYSCALL_SYMLINK_X},
++#endif
+ [__NR_symlinkat - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_SYMLINKAT_E, PPME_SYSCALL_SYMLINKAT_X},
+ [__NR_sendfile - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_SENDFILE_E, PPME_SYSCALL_SENDFILE_X},
+ #ifdef __NR_sendfile64
+@@ -255,7 +302,9 @@ const struct syscall_evt_pair g_syscall_
+ #ifdef __NR_getresgid32
+ [__NR_getresgid32 - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_GETRESGID_E, PPME_SYSCALL_GETRESGID_X },
+ #endif
++#ifdef __NR_getdents
+ [__NR_getdents - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_GETDENTS_E, PPME_SYSCALL_GETDENTS_X},
++#endif
+ [__NR_getdents64 - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_GETDENTS64_E, PPME_SYSCALL_GETDENTS64_X},
+ #ifdef __NR_setns
+ [__NR_setns - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_SETNS_E, PPME_SYSCALL_SETNS_X},
+@@ -298,19 +347,33 @@ const enum ppm_syscall_code g_syscall_co
+ [__NR_exit - SYSCALL_TABLE_ID0] = PPM_SC_EXIT,
+ [__NR_read - SYSCALL_TABLE_ID0] = PPM_SC_READ,
+ [__NR_write - SYSCALL_TABLE_ID0] = PPM_SC_WRITE,
++#ifdef __NR_open
+ [__NR_open - SYSCALL_TABLE_ID0] = PPM_SC_OPEN,
++#endif
+ [__NR_close - SYSCALL_TABLE_ID0] = PPM_SC_CLOSE,
++#ifdef __NR_creat
+ [__NR_creat - SYSCALL_TABLE_ID0] = PPM_SC_CREAT,
++#endif
++#ifdef __NR_link
+ [__NR_link - SYSCALL_TABLE_ID0] = PPM_SC_LINK,
++#endif
++#ifdef __NR_unlink
+ [__NR_unlink - SYSCALL_TABLE_ID0] = PPM_SC_UNLINK,
++#endif
+ [__NR_chdir - SYSCALL_TABLE_ID0] = PPM_SC_CHDIR,
+ #ifdef __NR_time
+ [__NR_time - SYSCALL_TABLE_ID0] = PPM_SC_TIME,
+ #endif
++#ifdef __NR_mknod
+ [__NR_mknod - SYSCALL_TABLE_ID0] = PPM_SC_MKNOD,
++#endif
++#ifdef __NR_chmod
+ [__NR_chmod - SYSCALL_TABLE_ID0] = PPM_SC_CHMOD,
++#endif
+ /* [__NR_lchown16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_LCHOWN16, */
++#ifdef __NR_stat
+ [__NR_stat - SYSCALL_TABLE_ID0] = PPM_SC_STAT,
++#endif
+ [__NR_lseek - SYSCALL_TABLE_ID0] = PPM_SC_LSEEK,
+ [__NR_getpid - SYSCALL_TABLE_ID0] = PPM_SC_GETPID,
+ [__NR_mount - SYSCALL_TABLE_ID0] = PPM_SC_MOUNT,
+@@ -322,17 +385,27 @@ const enum ppm_syscall_code g_syscall_co
+ [__NR_alarm - SYSCALL_TABLE_ID0] = PPM_SC_ALARM,
+ #endif
+ [__NR_fstat - SYSCALL_TABLE_ID0] = PPM_SC_FSTAT,
++#ifdef __NR_pause
+ [__NR_pause - SYSCALL_TABLE_ID0] = PPM_SC_PAUSE,
++#endif
+ #ifdef __NR_utime
+ [__NR_utime - SYSCALL_TABLE_ID0] = PPM_SC_UTIME,
+ #endif
+ [__NR_sync - SYSCALL_TABLE_ID0] = PPM_SC_SYNC,
+ [__NR_kill - SYSCALL_TABLE_ID0] = PPM_SC_KILL,
++#ifdef __NR_rename
+ [__NR_rename - SYSCALL_TABLE_ID0] = PPM_SC_RENAME,
++#endif
++#ifdef __NR_mkdir
+ [__NR_mkdir - SYSCALL_TABLE_ID0] = PPM_SC_MKDIR,
++#endif
++#ifdef __NR_rmdir
+ [__NR_rmdir - SYSCALL_TABLE_ID0] = PPM_SC_RMDIR,
++#endif
+ [__NR_dup - SYSCALL_TABLE_ID0] = PPM_SC_DUP,
++#ifdef __NR_pipe
+ [__NR_pipe - SYSCALL_TABLE_ID0] = PPM_SC_PIPE,
++#endif
+ [__NR_times - SYSCALL_TABLE_ID0] = PPM_SC_TIMES,
+ [__NR_brk - SYSCALL_TABLE_ID0] = PPM_SC_BRK,
+ /* [__NR_setgid16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_SETGID16, */
+@@ -345,10 +418,16 @@ const enum ppm_syscall_code g_syscall_co
+ [__NR_setpgid - SYSCALL_TABLE_ID0] = PPM_SC_SETPGID,
+ [__NR_umask - SYSCALL_TABLE_ID0] = PPM_SC_UMASK,
+ [__NR_chroot - SYSCALL_TABLE_ID0] = PPM_SC_CHROOT,
++#ifdef __NR_ustat
+ [__NR_ustat - SYSCALL_TABLE_ID0] = PPM_SC_USTAT,
++#endif
++#ifdef __NR_dup2
+ [__NR_dup2 - SYSCALL_TABLE_ID0] = PPM_SC_DUP2,
++#endif
+ [__NR_getppid - SYSCALL_TABLE_ID0] = PPM_SC_GETPPID,
++#ifdef __NR_getpgrp
+ [__NR_getpgrp - SYSCALL_TABLE_ID0] = PPM_SC_GETPGRP,
++#endif
+ [__NR_setsid - SYSCALL_TABLE_ID0] = PPM_SC_SETSID,
+ [__NR_sethostname - SYSCALL_TABLE_ID0] = PPM_SC_SETHOSTNAME,
+ [__NR_setrlimit - SYSCALL_TABLE_ID0] = PPM_SC_SETRLIMIT,
+@@ -359,10 +438,18 @@ const enum ppm_syscall_code g_syscall_co
+ /* [__NR_getgroups16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_GETGROUPS16, */
+ /* [__NR_setgroups16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_SETGROUPS16, */
+ /* [__NR_old_select - SYSCALL_TABLE_ID0] = PPM_SC_NR_OLD_SELECT, */
++#ifdef __NR_symlink
+ [__NR_symlink - SYSCALL_TABLE_ID0] = PPM_SC_SYMLINK,
++#endif
++#ifdef __NR_lstat
+ [__NR_lstat - SYSCALL_TABLE_ID0] = PPM_SC_LSTAT,
++#endif
++#ifdef __NR_readlink
+ [__NR_readlink - SYSCALL_TABLE_ID0] = PPM_SC_READLINK,
++#endif
++#ifdef __NR_uselib
+ [__NR_uselib - SYSCALL_TABLE_ID0] = PPM_SC_USELIB,
++#endif
+ [__NR_swapon - SYSCALL_TABLE_ID0] = PPM_SC_SWAPON,
+ [__NR_reboot - SYSCALL_TABLE_ID0] = PPM_SC_REBOOT,
+ /* [__NR_old_readdir - SYSCALL_TABLE_ID0] = PPM_SC_NR_OLD_READDIR, */
+@@ -399,12 +486,16 @@ const enum ppm_syscall_code g_syscall_co
+ [__NR_delete_module - SYSCALL_TABLE_ID0] = PPM_SC_DELETE_MODULE,
+ [__NR_getpgid - SYSCALL_TABLE_ID0] = PPM_SC_GETPGID,
+ [__NR_fchdir - SYSCALL_TABLE_ID0] = PPM_SC_FCHDIR,
++#ifdef __NR_sysfs
+ [__NR_sysfs - SYSCALL_TABLE_ID0] = PPM_SC_SYSFS,
++#endif
+ [__NR_personality - SYSCALL_TABLE_ID0] = PPM_SC_PERSONALITY,
+ /* [__NR_setfsuid16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_SETFSUID16, */
+ /* [__NR_setfsgid16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_SETFSGID16, */
+ /* [__NR_llseek - SYSCALL_TABLE_ID0] = PPM_SC_NR_LLSEEK, */
++#ifdef __NR_getdents
+ [__NR_getdents - SYSCALL_TABLE_ID0] = PPM_SC_GETDENTS,
++#endif
+ #ifdef __NR_select
+ [__NR_select - SYSCALL_TABLE_ID0] = PPM_SC_SELECT,
+ #endif
+@@ -431,7 +522,9 @@ const enum ppm_syscall_code g_syscall_co
+ [__NR_mremap - SYSCALL_TABLE_ID0] = PPM_SC_MREMAP,
+ /* [__NR_setresuid16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_SETRESUID16, */
+ /* [__NR_getresuid16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_GETRESUID16, */
++#ifdef __NR_poll
+ [__NR_poll - SYSCALL_TABLE_ID0] = PPM_SC_POLL,
++#endif
+ /* [__NR_setresgid16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_SETRESGID16, */
+ /* [__NR_getresgid16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_GETRESGID16, */
+ [__NR_prctl - SYSCALL_TABLE_ID0] = PPM_SC_PRCTL,
+@@ -453,13 +546,17 @@ const enum ppm_syscall_code g_syscall_co
+ [__NR_getrlimit - SYSCALL_TABLE_ID0] = PPM_SC_GETRLIMIT,
+ #endif
+ /* [__NR_mmap_pgoff - SYSCALL_TABLE_ID0] = PPM_SC_NR_MMAP_PGOFF, */
++#ifdef __NR_lchown
+ [__NR_lchown - SYSCALL_TABLE_ID0] = PPM_SC_LCHOWN,
++#endif
+ [__NR_setreuid - SYSCALL_TABLE_ID0] = PPM_SC_SETREUID,
+ [__NR_setregid - SYSCALL_TABLE_ID0] = PPM_SC_SETREGID,
+ [__NR_getgroups - SYSCALL_TABLE_ID0] = PPM_SC_GETGROUPS,
+ [__NR_setgroups - SYSCALL_TABLE_ID0] = PPM_SC_SETGROUPS,
+ [__NR_fchown - SYSCALL_TABLE_ID0] = PPM_SC_FCHOWN,
++#ifdef __NR_chown
+ [__NR_chown - SYSCALL_TABLE_ID0] = PPM_SC_CHOWN,
++#endif
+ [__NR_setfsuid - SYSCALL_TABLE_ID0] = PPM_SC_SETFSUID,
+ [__NR_setfsgid - SYSCALL_TABLE_ID0] = PPM_SC_SETFSGID,
+ [__NR_pivot_root - SYSCALL_TABLE_ID0] = PPM_SC_PIVOT_ROOT,
+@@ -494,9 +591,13 @@ const enum ppm_syscall_code g_syscall_co
+ [__NR_io_submit - SYSCALL_TABLE_ID0] = PPM_SC_IO_SUBMIT,
+ [__NR_io_cancel - SYSCALL_TABLE_ID0] = PPM_SC_IO_CANCEL,
+ [__NR_exit_group - SYSCALL_TABLE_ID0] = PPM_SC_EXIT_GROUP,
++#ifdef __NR_epoll_create
+ [__NR_epoll_create - SYSCALL_TABLE_ID0] = PPM_SC_EPOLL_CREATE,
++#endif
+ [__NR_epoll_ctl - SYSCALL_TABLE_ID0] = PPM_SC_EPOLL_CTL,
++#ifdef __NR_epoll_wait
+ [__NR_epoll_wait - SYSCALL_TABLE_ID0] = PPM_SC_EPOLL_WAIT,
++#endif
+ [__NR_remap_file_pages - SYSCALL_TABLE_ID0] = PPM_SC_REMAP_FILE_PAGES,
+ [__NR_set_tid_address - SYSCALL_TABLE_ID0] = PPM_SC_SET_TID_ADDRESS,
+ [__NR_timer_create - SYSCALL_TABLE_ID0] = PPM_SC_TIMER_CREATE,
+@@ -509,7 +610,9 @@ const enum ppm_syscall_code g_syscall_co
+ [__NR_clock_getres - SYSCALL_TABLE_ID0] = PPM_SC_CLOCK_GETRES,
+ [__NR_clock_nanosleep - SYSCALL_TABLE_ID0] = PPM_SC_CLOCK_NANOSLEEP,
+ [__NR_tgkill - SYSCALL_TABLE_ID0] = PPM_SC_TGKILL,
++#ifdef __NR_utimes
+ [__NR_utimes - SYSCALL_TABLE_ID0] = PPM_SC_UTIMES,
++#endif
+ [__NR_mq_open - SYSCALL_TABLE_ID0] = PPM_SC_MQ_OPEN,
+ [__NR_mq_unlink - SYSCALL_TABLE_ID0] = PPM_SC_MQ_UNLINK,
+ [__NR_mq_timedsend - SYSCALL_TABLE_ID0] = PPM_SC_MQ_TIMEDSEND,
+@@ -523,14 +626,18 @@ const enum ppm_syscall_code g_syscall_co
+ [__NR_keyctl - SYSCALL_TABLE_ID0] = PPM_SC_KEYCTL,
+ [__NR_ioprio_set - SYSCALL_TABLE_ID0] = PPM_SC_IOPRIO_SET,
+ [__NR_ioprio_get - SYSCALL_TABLE_ID0] = PPM_SC_IOPRIO_GET,
++#ifdef __NR_inotify_init
+ [__NR_inotify_init - SYSCALL_TABLE_ID0] = PPM_SC_INOTIFY_INIT,
++#endif
+ [__NR_inotify_add_watch - SYSCALL_TABLE_ID0] = PPM_SC_INOTIFY_ADD_WATCH,
+ [__NR_inotify_rm_watch - SYSCALL_TABLE_ID0] = PPM_SC_INOTIFY_RM_WATCH,
+ [__NR_openat - SYSCALL_TABLE_ID0] = PPM_SC_OPENAT,
+ [__NR_mkdirat - SYSCALL_TABLE_ID0] = PPM_SC_MKDIRAT,
+ [__NR_mknodat - SYSCALL_TABLE_ID0] = PPM_SC_MKNODAT,
+ [__NR_fchownat - SYSCALL_TABLE_ID0] = PPM_SC_FCHOWNAT,
++#ifdef __NR_futimesat
+ [__NR_futimesat - SYSCALL_TABLE_ID0] = PPM_SC_FUTIMESAT,
++#endif
+ [__NR_unlinkat - SYSCALL_TABLE_ID0] = PPM_SC_UNLINKAT,
+ [__NR_renameat - SYSCALL_TABLE_ID0] = PPM_SC_RENAMEAT,
+ [__NR_linkat - SYSCALL_TABLE_ID0] = PPM_SC_LINKAT,
+@@ -551,9 +658,13 @@ const enum ppm_syscall_code g_syscall_co
+ #endif
+ [__NR_epoll_pwait - SYSCALL_TABLE_ID0] = PPM_SC_EPOLL_PWAIT,
+ [__NR_utimensat - SYSCALL_TABLE_ID0] = PPM_SC_UTIMENSAT,
++#ifdef __NR_signalfd
+ [__NR_signalfd - SYSCALL_TABLE_ID0] = PPM_SC_SIGNALFD,
++#endif
+ [__NR_timerfd_create - SYSCALL_TABLE_ID0] = PPM_SC_TIMERFD_CREATE,
++#ifdef __NR_eventfd
+ [__NR_eventfd - SYSCALL_TABLE_ID0] = PPM_SC_EVENTFD,
++#endif
+ [__NR_timerfd_settime - SYSCALL_TABLE_ID0] = PPM_SC_TIMERFD_SETTIME,
+ [__NR_timerfd_gettime - SYSCALL_TABLE_ID0] = PPM_SC_TIMERFD_GETTIME,
+ [__NR_signalfd4 - SYSCALL_TABLE_ID0] = PPM_SC_SIGNALFD4,
diff --git a/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/fix-uint64-const.patch b/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/fix-uint64-const.patch
new file mode 100644
index 000000000..5c756294b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/fix-uint64-const.patch
@@ -0,0 +1,16 @@
+Fix x86 build
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/userspace/libsinsp/cgroup_limits.cpp
++++ b/userspace/libsinsp/cgroup_limits.cpp
+@@ -9,7 +9,7 @@ namespace {
+ // This reports extremely large values (e.g. almost-but-not-quite 9EiB as set by k8s) as unlimited.
+ // Note: we use the same maximum value for cpu shares/quotas as well; the typical values are much lower
+ // and so should never exceed CGROUP_VAL_MAX either
+-constexpr const int64_t CGROUP_VAL_MAX = (1UL << 42u) - 1;
++constexpr const int64_t CGROUP_VAL_MAX = (1ULL << 42u) - 1;
+
+ /**
+ * \brief Read a single int64_t value from cgroupfs
diff --git a/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig_git.bb b/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig_git.bb
index 4f58281f9..04a022af4 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig_git.bb
@@ -3,39 +3,52 @@ DESCRIPTION = "Sysdig is open source, system-level exploration: capture \
system state and activity from a running Linux instance, then save, \
filter and analyze."
HOMEPAGE = "http://www.sysdig.org/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+LICENSE = "Apache-2.0 & (MIT | GPL-2.0)"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f8fee3d59797546cffab04f3b88b2d44"
inherit cmake pkgconfig
-OECMAKE_GENERATOR = "Unix Makefiles"
+#OECMAKE_GENERATOR = "Unix Makefiles"
+JIT ?= "jit"
+JIT_mipsarchn32 = ""
+JIT_mipsarchn64 = ""
+JIT_riscv64 = ""
+JIT_riscv32 = ""
-DEPENDS = "luajit zlib ncurses"
+DEPENDS += "lua${JIT} zlib c-ares grpc-native grpc curl ncurses jsoncpp tbb jq openssl elfutils protobuf protobuf-native jq-native"
RDEPENDS_${PN} = "bash"
-SRC_URI = "git://github.com/draios/sysdig.git;branch=master \
- file://0001-libsinsp-Port-to-build-with-lua-5.2.patch \
+SRC_URI = "git://github.com/draios/sysdig.git;branch=dev \
+ file://0001-fix-build-with-LuaJIT-2.1-betas.patch \
file://0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch \
+ file://fix-uint64-const.patch \
+ file://aarch64.patch \
"
-SRCREV = "85d16f33a82a17f87ccdbc088749271c71d87013"
-PV = "0.1.102+git${SRCPV}"
+SRCREV = "8daeef8da752c5f07f439391bc20c5948eb11470"
+PV = "0.26.6"
S = "${WORKDIR}/git"
-DIR_ETC="/etc"
-EXTRA_OECMAKE = ' -DUSE_BUNDLED_LUAJIT="OFF" \
- -DUSE_BUNDLED_ZLIB="OFF" \
- -DBUILD_DRIVER="OFF" \
- -DUSE_BUNDLED_NCURSES="OFF" \
- -DDIR_ETC="${DIR_ETC}" \
- '
+EXTRA_OECMAKE = "\
+ -DBUILD_DRIVER=OFF \
+ -DUSE_BUNDLED_DEPS=OFF \
+ -DUSE_BUNDLED_B64=ON \
+ -DCREATE_TEST_TARGETS=OFF \
+ -DDIR_ETC=${sysconfdir} \
+ -DLUA_INCLUDE_DIR=${STAGING_INCDIR}/luajit-2.1 \
+ -DLUA_LIBRARY=libluajit-5.1.so \
+"
FILES_${PN} += " \
${DIR_ETC}/* \
${datadir}/zsh/* \
${prefix}/src/* \
"
-
-# luajit not supported on Aarch64
-COMPATIBLE_HOST = "^(?!aarch64).*"
-
+# Use getaddrinfo_a is a GNU extension in libsinsp
+# It should be fixed in sysdig, until then disable
+# on musl
+# Something like this https://code.videolan.org/ePirat/vlc/-/commit/01fd9fe4c7f6c5558f7345f38abf0152e17853ab is needed to fix it
+COMPATIBLE_HOST_libc-musl = "null"
+COMPATIBLE_HOST_mips = "null"
+COMPATIBLE_HOST_riscv64 = "null"
+COMPATIBLE_HOST_riscv32 = "null"
diff --git a/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_2.6.bb b/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_2.6.bb
index fba5156f6..17c2fbab2 100644
--- a/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_2.6.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_2.6.bb
@@ -11,6 +11,8 @@ SRC_URI = "https://github.com/tmux/tmux/releases/download/${PV}/tmux-${PV}.tar.g
SRC_URI[md5sum] = "d541ff392249f94c4f3635793556f827"
SRC_URI[sha256sum] = "b17cd170a94d7b58c0698752e1f4f263ab6dc47425230df7e53a6435cc7cd7e8"
+UPSTREAM_CHECK_URI = "https://github.com/tmux/tmux/releases"
+
inherit autotools pkgconfig
PACKAGECONFIG ??= ""
diff --git a/meta-openembedded/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb b/meta-openembedded/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb
index 24df750e0..38ce4f557 100644
--- a/meta-openembedded/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb
@@ -11,7 +11,7 @@ SRC_URI = "git://github.com/wertarbyte/${BPN}.git;branch=debian"
S = "${WORKDIR}/git"
-inherit autotools-brokensep pkgconfig update-rc.d systemd
+inherit autotools-brokensep pkgconfig perlnative update-rc.d systemd
PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}"
PACKAGECONFIG[systemd] = ",,systemd"
diff --git a/meta-openembedded/meta-oe/recipes-extended/upm/upm/0001-cmake-Disable-using-Wno-maybe-uninitialized.patch b/meta-openembedded/meta-oe/recipes-extended/upm/upm/0001-cmake-Disable-using-Wno-maybe-uninitialized.patch
new file mode 100644
index 000000000..2f581855f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/upm/upm/0001-cmake-Disable-using-Wno-maybe-uninitialized.patch
@@ -0,0 +1,37 @@
+From 169f62770f63a43b15d4d4c82336fd57c8467cfe Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 4 Apr 2020 21:43:51 -0700
+Subject: [PATCH] cmake: Disable using -Wno-maybe-uninitialized
+
+This warning causes clang builds to fail because this is not a
+recognised warning with clang
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -6,7 +6,6 @@
+ set (SWIG_CXX_DISABLE_WARNINGS -Wno-error
+ -Wno-delete-non-virtual-dtor
+ -Wno-unused-function
+- -Wno-maybe-uninitialized
+ -Wno-strict-aliasing)
+
+ # If building under android, make sure swig gets an ANDROID flag
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -115,8 +115,7 @@ endif (WERROR)
+ upm_add_compile_flags(C ${C_CXX_WARNING_FLAGS}
+ -Winit-self
+ -Wimplicit
+- -Wsign-compare
+- -Wmissing-parameter-type)
++ -Wsign-compare)
+
+ # Set CXX compiler warning flags at top-level scope and emit a warning about
+ # unsupported flags
diff --git a/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb b/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb
index 6db8f8825..5b3585c14 100644
--- a/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb
@@ -10,11 +10,12 @@ DEPENDS = "libjpeg-turbo mraa"
SRCREV = "5cf20df96c6b35c19d5b871ba4e319e96b4df72d"
PV = "2.0.0+git${SRCPV}"
-SRC_URI = "git://github.com/intel-iot-devkit/${BPN}.git;protocol=http \
+SRC_URI = "git://github.com/eclipse/${BPN}.git;protocol=http \
file://0001-CMakeLists.txt-Use-SWIG_SUPPORT_FILES-to-find-the-li.patch \
file://0001-Use-stdint-types.patch \
file://0001-initialize-local-variables-before-use.patch \
file://0001-cmake-Disable-Wno-misleading-indentation-with-clang-.patch \
+ file://0001-cmake-Disable-using-Wno-maybe-uninitialized.patch \
"
SRC_URI_append_toolchain-clang_x86 = " file://0001-nmea_gps-Link-with-latomic.patch "
@@ -26,6 +27,8 @@ COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
inherit distutils3-base cmake pkgconfig
+EXTRA_OECMAKE += "-UPYTHON_EXECUTABLE -DWERROR=off"
+
# override this in local.conf to get needed bindings.
# BINDINGS_pn-upm="python"
# will result in only the python bindings being built/packaged.
diff --git a/meta-openembedded/meta-oe/recipes-extended/wxwidgets/wxwidgets_git.bb b/meta-openembedded/meta-oe/recipes-extended/wxwidgets/wxwidgets_git.bb
new file mode 100644
index 000000000..06337b79c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/wxwidgets/wxwidgets_git.bb
@@ -0,0 +1,82 @@
+SUMMARY = "Cross-Plattform GUI Library"
+DESCRIPTIOM = "wxWidgets is a free and open source cross-platform C++ framework for writing advanced GUI applications using native controls."
+HOMEPAGE = "https://www.wxwidgets.org/"
+BUGTRACKER = "https://trac.wxwidgets.org/"
+
+# wxWidgets licence is a modified version of LGPL explicitly allowing not
+# distributing the sources of an application using the library even in the
+# case of static linking.
+LICENSE = "wxWidgets"
+LIC_FILES_CHKSUM = "file://docs/licence.txt;md5=981f50a934828620b08f44d75db557c6"
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt', 'cmake_qt5', 'cmake', d)}
+inherit features_check lib_package
+
+# All toolkit-configs except 'no_gui' require x11 explicitly (see toolkit.cmake)
+REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG', 'no_gui', '', 'x11', d)}"
+
+DEPENDS += " \
+ jpeg \
+ libpng \
+ tiff \
+"
+
+SRC_URI = "git://github.com/wxWidgets/wxWidgets.git"
+PV = "3.1.3"
+SRCREV= "8a40d23b27ed1c80b5a2ca9f7e8461df4fbc1a31"
+S = "${WORKDIR}/git"
+
+# These can be either 'builtin' or 'sys' and builtin means cloned soures are
+# build. So these cannot be PACKAGECONFIGs and let's use libs where we can (see
+# DEPENDS)
+EXTRA_OECMAKE += " \
+ -DwxUSE_LIBJPEG=sys \
+ -DwxUSE_LIBPNG=sys \
+ -DwxUSE_LIBTIFF=sys \
+ -DwxUSE_REGEX=builtin \
+"
+EXTRA_OECMAKE_append_libc-musl = " \
+ -DHAVE_LOCALE_T=OFF \
+"
+
+PACKAGECONFIG ?= "gtk"
+
+# Note on toolkit-PACKAGECONFIGs: select exactly one of 'no_gui' / 'gtk' / 'qt'
+PACKAGECONFIG[no_gui] = "-DwxUSE_GUI=OFF,,,,,qt gtk"
+PACKAGECONFIG[gtk] = "-DwxBUILD_TOOLKIT=gtk3 -DwxUSE_GUI=ON,,gtk+3,,,no_gui qt"
+PACKAGECONFIG[qt] = "-DwxBUILD_TOOLKIT=qt -DwxUSE_GUI=ON,,qtbase,,,no_gui gtk"
+python () {
+ pkgconfig = d.getVar('PACKAGECONFIG')
+ if (not 'no_gui' in pkgconfig) and (not 'gtk' in pkgconfig) and (not 'qt' in pkgconfig):
+ bb.error("PACKAGECONFIG must select a toolkit. Add one of no_gui / gtk / qt!")
+}
+
+# Notes on other PACKAGECONFIGs:
+# * 'no_gui' overrides some configs below so they are marked as conflicting
+# with 'no_gui' to avoid surprises
+# * qt+gstreamer is broken due to incorrect references on glib-2.0 -> mark
+# as conflicting
+# * wxUSE_LIBGNOMEVFS is for gtk2 (see init.cmake) which we don't support
+# -> no gvfs PACKAGECONFIG
+# * libmspack is in meta-security
+PACKAGECONFIG[gstreamer] = "-DwxUSE_MEDIACTRL=ON,-DwxUSE_MEDIACTRL=OFF,gstreamer1.0-plugins-base,,,no_gui qt"
+PACKAGECONFIG[libsecret] = "-DwxUSE_SECRETSTORE=ON,-DwxUSE_SECRETSTORE=OFF,libsecret,,,no_gui"
+PACKAGECONFIG[lzma] = "-DwxUSE_LIBLZMA=ON,-DwxUSE_LIBLZMA=OFF,xz"
+PACKAGECONFIG[mspack] = "-DwxUSE_LIBMSPACK=ON,-DwxUSE_LIBMSPACK=OFF,libmspack"
+PACKAGECONFIG[sdl_audio] = "-DwxUSE_LIBSDL=ON,-DwxUSE_LIBSDL=OFF,libsdl2"
+PACKAGECONFIG[webkit] = "-DwxUSE_WEBVIEW_WEBKIT=ON,-DwxUSE_WEBVIEW_WEBKIT=OFF,webkitgtk,,,no_gui"
+
+do_install_append() {
+ # do not ship bindir if empty
+ rmdir --ignore-fail-on-non-empty ${D}${bindir}
+}
+
+# lib names are not canonical
+FILES_SOLIBSDEV = ""
+
+FILES_${PN} += " \
+ ${libdir}/libwx_*.so \
+ ${libdir}/wx/ \
+"
+
+FILES_${PN}-dev += "${libdir}/wx/include/"
diff --git a/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime_3.2.5.bb b/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime_3.2.6.bb
index 568083bf3..9d1bb7d04 100644
--- a/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime_3.2.5.bb
+++ b/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime_3.2.6.bb
@@ -9,8 +9,8 @@ inherit gnomebase gobject-introspection
SRC_URI += "file://iconv-detect.h \
file://nodolt.patch"
-SRC_URI[archive.md5sum] = "98970e3995e67ac3f23827ff52308f9e"
-SRC_URI[archive.sha256sum] = "fb7556501f85c3bf3e65fdd82697cbc4fa4b55dccd33ad14239ce0197e78ba59"
+SRC_URI[archive.md5sum] = "656548dc431004d1ebf95e5d0bb4b9c8"
+SRC_URI[archive.sha256sum] = "abff194c7c4802fba2e233890d09dde8bf7170c3ad5e13000601c8d5b3c44717"
export ac_cv_have_iconv_detect_h="yes"
do_configure_append = "cp ${WORKDIR}/iconv-detect.h ${S}"
diff --git a/meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.24.1.bb b/meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.25.3.bb
index 6c8e0e0bf..57419a427 100644
--- a/meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.24.1.bb
+++ b/meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.25.3.bb
@@ -10,8 +10,8 @@ GTKDOC_MESON_OPTION = "gtk_doc"
inherit gnomebase gobject-introspection gtk-doc gtk-icon-cache
-SRC_URI[archive.md5sum] = "bbecf334a7333d0a5d4d655ba38be9b4"
-SRC_URI[archive.sha256sum] = "9c3acf7a567cbb4f8bf62b096e013f12c3911cc850c3fa9900cbd5aa4f6ec284"
+SRC_URI[archive.md5sum] = "08bfff8f9688cf630dcb0f950617661f"
+SRC_URI[archive.sha256sum] = "1c9bbb29740c29cd6e1dd0c9964722ff08cd5e6f68f1b5c135bc391a6ce97639"
PACKAGECONFIG[python3] = "-Dpython3=true,-Dpython3=false,python3-pygobject"
diff --git a/meta-openembedded/meta-oe/recipes-gnome/pyxdg/pyxdg_0.26.bb b/meta-openembedded/meta-oe/recipes-gnome/pyxdg/pyxdg_0.26.bb
index 0128a7c22..a957c1d67 100644
--- a/meta-openembedded/meta-oe/recipes-gnome/pyxdg/pyxdg_0.26.bb
+++ b/meta-openembedded/meta-oe/recipes-gnome/pyxdg/pyxdg_0.26.bb
@@ -7,6 +7,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=f30a9716ef3762e3467a2f62bf790f0a"
SRCREV = "7db14dcf4c4305c3859a2d9fcf9f5da2db328330"
SRC_URI = "git://anongit.freedesktop.org/xdg/pyxdg"
-inherit distutils
+inherit distutils3
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/babl/babl_0.1.62.bb b/meta-openembedded/meta-oe/recipes-graphics/babl/babl_0.1.62.bb
deleted file mode 100644
index 4a7dbcab3..000000000
--- a/meta-openembedded/meta-oe/recipes-graphics/babl/babl_0.1.62.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Babl is a dynamic, any to any, pixel format conversion library"
-LICENSE = "LGPL-3.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6"
-
-inherit gnomebase
-
-SRC_URI = "http://ftp.gimp.org/pub/${BPN}/0.1/${BP}.tar.bz2"
-SRC_URI[md5sum] = "28fa9d43549378ceebe2871d7721dd46"
-SRC_URI[sha256sum] = "dc279f174edbcb08821cf37e4ab0bc02e6949369b00b150c759a6c24bfd3f510"
-
-FILES_${PN} += "${libdir}/babl-*/*.so"
-FILES_${PN}-dev += "${libdir}/babl-*/*.la"
-FILES_${PN}-dbg += "${libdir}/babl-*/.debug/"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch b/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
index 46d4dbde4..6a7b1bf31 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
+++ b/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
@@ -9,12 +9,12 @@ Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 7c66b39..1489ef6 100644
+index 230c87b..e699e83 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -19,7 +19,7 @@ else(NOT SPHINX_EXECUTABLE-NOTFOUND)
- message(STATUS "Could NOT find sphinx-build.")
- endif(NOT SPHINX_EXECUTABLE-NOTFOUND)
+@@ -19,7 +19,7 @@ else(SPHINX_EXECUTABLE STREQUAL "SPHINX_EXECUTABLE-NOTFOUND")
+ message(STATUS "Found sphinx-build: ${SPHINX_EXECUTABLE}")
+ endif(SPHINX_EXECUTABLE STREQUAL "SPHINX_EXECUTABLE-NOTFOUND")
-execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(), end='')" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
+#execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(), end='')" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
@@ -22,5 +22,5 @@ index 7c66b39..1489ef6 100644
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import sys; sys.stdout.write('%s.%s' % (sys.version_info.major, sys.version_info.minor))" OUTPUT_VARIABLE PYTHON_MAJOR_DOT_MINOR_VERSION)
message(STATUS "Python install dir is ${PYTHON_INSTALL_DIR}")
--
-2.7.4
+2.17.1
diff --git a/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Run-python-scripts-using-env.patch b/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Run-python-scripts-using-env.patch
deleted file mode 100644
index 75b6b8fd9..000000000
--- a/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Run-python-scripts-using-env.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 15d0afcfa4868b7b072b3434bac0064617d61f99 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Tue, 19 Dec 2017 14:53:14 +0900
-Subject: [PATCH] Run python scripts using env
-
-Otherwise the build tools hardcode the python path into them.
-
-Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
----
- bin/dnfdragora | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/bin/dnfdragora b/bin/dnfdragora
-index b8e0550..cd80f7f 100755
---- a/bin/dnfdragora
-+++ b/bin/dnfdragora
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/env python3
- # vim: set et ts=4 sw=4:
- # Copyright 2016-2017 Angelo Naselli <anaselli@linux.it>
- #
---
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch b/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch
index 90ce1d0ac..bef471189 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch
+++ b/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch
@@ -3,7 +3,8 @@ From: Lei Maohui <leimaohui@cn.fujitsu.com>
Date: Tue, 19 Dec 2017 11:15:29 +0900
Subject: [PATCH] To fix error when do_package
-QA Issue: nativesdk-dnfdragora: Files/directories were installed but not shipped in any package:
+QA Issue: nativesdk-dnfdragora: Files/directories were installed but not
+shipped in any package:
/etc
/etc/dnfdragora
/etc/dnfdragora/dnfdragora.yaml
@@ -14,18 +15,18 @@ Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 7c66b39..a5659f7 100644
+index 230c87b..1b8d800 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -52,7 +52,7 @@ endif(ENABLE_COMPS)
+@@ -68,7 +68,7 @@ endif(ENABLE_COMPS)
set(CMAKE_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX}/bin")
set(CMAKE_INSTALL_DATAROOTDIR "${CMAKE_INSTALL_PREFIX}/share")
set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale")
--set(CMAKE_INSTALL_FULL_SYSCONFDIR "/etc")
-+set(CMAKE_INSTALL_FULL_SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/../etc")
+-set(CMAKE_INSTALL_FULL_SYSCONFDIR "/etc" CACHE PATH "sysconfig directory (default /etc)")
++set(CMAKE_INSTALL_FULL_SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/../etc" CACHE PATH "sysconfig directory (default /etc)")
# Configure files
configure_file(${CMAKE_SOURCE_DIR}/etc/dnfdragora.yaml.in ${CMAKE_BINARY_DIR}/etc/dnfdragora.yaml @ONLY)
--
-2.7.4
+2.17.1
diff --git a/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch b/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch
index 88bb63416..c8b105ea3 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch
+++ b/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch
@@ -9,17 +9,17 @@ Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
1 file changed, 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 7c66b39..fc32750 100644
+index 230c87b..1624998 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -65,7 +65,6 @@ endif(GETTEXT_FOUND)
+@@ -81,7 +81,6 @@ endif(GETTEXT_FOUND)
# Build and install the man-pages
- if(NOT SPHINX_EXECUTABLE-NOTFOUND)
+ if(NOT SPHINX_EXECUTABLE STREQUAL "SPHINX_EXECUTABLE-NOTFOUND")
- add_subdirectory(man)
- endif(NOT SPHINX_EXECUTABLE-NOTFOUND)
+ endif(NOT SPHINX_EXECUTABLE STREQUAL "SPHINX_EXECUTABLE-NOTFOUND")
# Installing application code
--
-2.7.4
+2.17.1
diff --git a/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb b/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb
index 9cd1efb8e..007385101 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb
@@ -7,15 +7,14 @@ SRC_URI = "git://github.com/manatools/dnfdragora.git \
file://0001-disable-build-manpages.patch \
file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
file://0001-To-fix-error-when-do_package.patch \
- file://0001-Run-python-scripts-using-env.patch \
"
-PV = "1.0.1+git${SRCPV}"
-SRCREV = "4fef4ce889b8e4fa03191d414f63bfd50796152a"
+PV = "1.1.2+git${SRCPV}"
+SRCREV = "19e123132cfd4efd860e5204261c3c228bfe80a8"
S = "${WORKDIR}/git"
-inherit cmake gettext pkgconfig python3-dir python3native distutils3-base
+inherit cmake gettext pkgconfig python3-dir python3native distutils3-base mime-xdg
DEPENDS += "dnf python3 "
#DEPENDS_class-nativesdk += "nativesdk-python3"
@@ -27,4 +26,7 @@ EXTRA_OECMAKE = " -DWITH_MAN=OFF -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR}
BBCLASSEXTEND = "nativesdk"
-FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}/ ${datadir}/ ${bindir}/ ${sysconfdir}/dnfdragora "
+FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}/ ${datadir}/ ${bindir}/ ${sysconfdir}/dnfdragora ${sysconfdir}/xdg"
+
+PNBLACKLIST[dnfdragora] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build correctly without package_rpm in PACKAGE_CLASSES', d)}"
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fbgrab/fbgrab_1.3.bb b/meta-openembedded/meta-oe/recipes-graphics/fbgrab/fbgrab_1.3.3.bb
index e12bc094d..e3dff9191 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/fbgrab/fbgrab_1.3.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/fbgrab/fbgrab_1.3.3.bb
@@ -1,15 +1,15 @@
SUMMARY = "FBGrab is a framebuffer screenshot program"
-HOMEPAGE = "http://fbgrab.monells.se/"
+HOMEPAGE = "https://github.com/GunnarMonell/fbgrab"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a"
SECTION = "console/utils"
DEPENDS = "libpng zlib"
-SRC_URI = "http://fbgrab.monells.se/${BP}.tar.gz"
+SRC_URI = "git://github.com/GunnarMonell/fbgrab.git;protocol=https"
-inherit autotools-brokensep
+SRCREV = "b179e2a42b8a5d72516b9c8d91713c9025cf6044"
+S = "${WORKDIR}/git"
-SRC_URI[md5sum] = "7d8c24081c681dfbba21f2934c1ac656"
-SRC_URI[sha256sum] = "5fab478cbf8731fbacefaa76236a8f8b38ccff920c53b3a8253bc35509fba8ed"
+inherit autotools-brokensep
do_configure_prepend() {
sed -i 's|$(DESTDIR)/usr/man/|$(DESTDIR)${mandir}/|g' ${S}/Makefile
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20190801.bb b/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20190801.bb
index b84806fd6..1863f95f0 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20190801.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20190801.bb
@@ -6,10 +6,10 @@ LIC_FILES_CHKSUM = " \
file://LICENSE;md5=d042f3d2a8fd7208b704a499168e3c89 \
"
-DEPENDS = "glib-2.0 pango giflib tiff libxml2 jpeg libtool uthash gettext-native"
+DEPENDS = "python3 glib-2.0 pango giflib tiff libxml2 jpeg libtool uthash gettext-native"
DEPENDS_append_class-target = " libxi"
-inherit autotools pkgconfig python3native features_check gettext gtk-icon-cache mime
+inherit autotools pkgconfig python3native features_check gettext gtk-icon-cache mime mime-xdg
REQUIRED_DISTRO_FEATURES_append_class-target = " x11"
@@ -20,9 +20,12 @@ SRC_URI = "git://github.com/${BPN}/${BPN}.git \
"
S = "${WORKDIR}/git"
-EXTRA_OECONF += "--without-libuninameslist"
+EXTRA_OECONF += "--without-libuninameslist --enable-python-scripting --enable-python-extension"
EXTRA_OECONF_append_class-native = " with_x=no"
+LDFLAGS += "-lpython${PYTHON_BASEVERSION}${PYTHON_ABI}"
+BUILD_LDFLAGS += "-lpython${PYTHON_BASEVERSION}${PYTHON_ABI}"
+
#do_configure_prepend() {
# uthash sources are expected in uthash/src
# mkdir -p ${S}/uthash/src
diff --git a/meta-openembedded/meta-oe/recipes-graphics/freeglut/freeglut_3.0.0.bb b/meta-openembedded/meta-oe/recipes-graphics/freeglut/freeglut_3.2.1.bb
index 3b540bb78..851641c08 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/freeglut/freeglut_3.0.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/freeglut/freeglut_3.2.1.bb
@@ -4,8 +4,8 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=89c0b58a3e01ce3d8254c9f59e78adfb"
SRC_URI = "https://sourceforge.net/projects/${BPN}/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "90c3ca4dd9d51cf32276bc5344ec9754"
-SRC_URI[sha256sum] = "2a43be8515b01ea82bcfa17d29ae0d40bd128342f0930cd1f375f1ff999f76a2"
+SRC_URI[md5sum] = "cd5c670c1086358598a6d4a9d166949d"
+SRC_URI[sha256sum] = "d4000e02102acaf259998c870e25214739d1f16f67f99cb35e4f46841399da68"
inherit cmake features_check
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm_2.6.9.bb b/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm_2.6.9.bb
index d1ba48203..51f5a4eca 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm_2.6.9.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm_2.6.9.bb
@@ -40,7 +40,7 @@ SRCREV = "88eab6dc16da6e5dd25fe97fbb56b96ef0d58657"
S = "${WORKDIR}/git"
-inherit autotools gettext update-alternatives pkgconfig pythonnative perlnative features_check
+inherit autotools gettext update-alternatives pkgconfig python3native perlnative features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch b/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch
deleted file mode 100644
index d145b625f..000000000
--- a/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Index: gegl-0.2.0/configure.ac
-===================================================================
---- gegl-0.2.0.orig/configure.ac 2012-04-02 21:56:49.000000000 +0000
-+++ gegl-0.2.0/configure.ac 2014-07-17 21:34:15.312546602 +0000
-@@ -765,15 +765,7 @@
-
- have_sdl="no"
- if test "x$with_sdl" != "xno"; then
-- AC_PATH_PROG(SDL_CONFIG, sdl-config, no)
-- if test "$SDL_CONFIG" = "no"; then
-- have_sdl="no (SDL library not found)"
-- AC_MSG_RESULT([*** Check for SDL library failed.])
-- else
-- have_sdl="yes"
-- SDL_CFLAGS=`$SDL_CONFIG --cflags`
-- SDL_LIBS=`$SDL_CONFIG --libs`
-- fi
-+ PKG_CHECK_MODULES([SDL], [sdl], [have_sdl="yes"], [have_sdl="no (SDL library not found)"])
- fi
-
- AM_CONDITIONAL(HAVE_SDL, test "$have_sdl" = "yes")
diff --git a/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb b/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb
deleted file mode 100644
index 0db0f793d..000000000
--- a/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "GEGL (Generic Graphics Library) is a graph based image processing framework"
-LICENSE = "LGPL-3.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-DEPENDS = "babl librsvg glib-2.0 gtk+ pango cairo expat zlib libpng jpeg virtual/libsdl json-glib intltool-native"
-
-EXTRA_OECONF = "--disable-docs"
-
-inherit features_check gnomebase vala gobject-introspection
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[jasper] = "--with-jasper,--without-jasper,jasper"
-PACKAGECONFIG[avformat] = "--with-libavformat,--without-libavformat,libav"
-PACKAGECONFIG[lcms] = "--with-lcms,--without-lcms,lcms"
-PACKAGECONFIG[tiff] = "--with-libtiff,--without-libtiff,tiff"
-PACKAGECONFIG[webp] = "--with-webp,--without-webp,webp"
-
-SRC_URI = "http://ftp.gimp.org/pub/${BPN}/0.3/${BP}.tar.bz2 \
- file://pkgconfig.patch "
-SRC_URI[md5sum] = "6e5c6f229261478dc436a38c84405b2a"
-SRC_URI[sha256sum] = "d7858ef26ede136d14e3de188a9e9c0de7707061a9fb96d7d615fab4958491fb"
-
-LDFLAGS += "-lm"
-
-# There are a couple of non-symlink .so files installed into libdir, which need to go into main package
-FILES_${PN}_append = " ${libdir}/gegl-0.3/*.so ${libdir}/gegl-0.3/*.json ${libdir}/libgegl-npd-0.3.so ${libdir}/libgegl-sc-0.3.so"
-FILES_${PN}-dev_append = " ${libdir}/gegl-0.3/*.la ${libdir}/libgegl-0.3.so"
-FILES_${PN}-dev_remove = "${libdir}/lib*.so"
-
-# Fails to build with thumb-1 (qemuarm)
-# gegl-0.2.0/operations/common/matting-global.c: In function 'matting_process':
-# gegl-0.2.0/operations/common/matting-global.c:463:1: internal compiler error: in patch_jump_insn, at cfgrtl.c:1275
-ARM_INSTRUCTION_SET = "arm"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch b/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch
deleted file mode 100644
index fecd0121c..000000000
--- a/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 72ad76841d87e857428693d812a961935284ac62 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Thu, 12 Feb 2015 15:57:47 +0100
-Subject: [PATCH] configure-ac: do not check for freetype-config
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-freetype-config is not allowed in our environment - see also binconfig-disabled
-
-Upstream-Status: inappropriate [OE specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- configure.ac | 7 -------
- 1 file changed, 7 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 26812b6..abec714 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -647,13 +647,6 @@ if test "x$fontconfig_ok" = xno; then
- fi
-
-
--AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
--if test "x$FREETYPE_CONFIG" != "xno" ; then
-- AC_MSG_CHECKING([for freetype libraries])
-- FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
-- AC_MSG_RESULT($FREETYPE_LIBS)
--fi
--AC_SUBST(FREETYPE_LIBS)
-
-
- ##########################################
---
-1.9.3
-
diff --git a/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch b/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch
deleted file mode 100644
index 7da78e205..000000000
--- a/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From e1c8f4b8323e3965271a93529eab5774c1a7083c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 29 Jun 2017 10:32:14 -0700
-Subject: [PATCH 3/3] Fix use of gegl API
-
-newer version of gegl does not define GEGL_IS_PARAM_SPEC_MULTILINE
-
-| core/libappcore.a(gimpparamspecs-duplicate.o): In function `gimp_param_spec_duplicate':
-| /usr/src/debug/gimp/2.8.22-r0/gimp-2.8.22/app/core/../../../../../../../../../workspace/sources/gimp/app/core/gimpparamspecs-duplicate.c:70: undefined reference to `GEGL_IS_PARAM_SPEC_MULTILINE'
-| collect2: error: ld returned 1 exit status
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- app/core/gimpparamspecs-duplicate.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/app/core/gimpparamspecs-duplicate.c b/app/core/gimpparamspecs-duplicate.c
-index c0b7426..2efaf23 100644
---- a/app/core/gimpparamspecs-duplicate.c
-+++ b/app/core/gimpparamspecs-duplicate.c
-@@ -67,7 +67,7 @@ gimp_param_spec_duplicate (GParamSpec *pspec)
- spec->default_value,
- pspec->flags);
-
-- if (GEGL_IS_PARAM_SPEC_MULTILINE (pspec))
-+ if (gegl_param_spec_get_property_key(pspec, "multiline"))
- {
- g_param_spec_set_qdata (new, multiline_quark,
- GINT_TO_POINTER (TRUE));
---
-2.13.2
-
diff --git a/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch b/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch
deleted file mode 100644
index b71bf329e..000000000
--- a/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-Bump acceptable versions of babl and gegl.
-
-Patch is taken from debian:
-https://packages.debian.org/stretch/gimp
-
-Upstream-Status: Inappropriate [OE specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-diff --git a/app/sanity.c b/app/sanity.c
-index febddfb..85fea55 100644
---- a/app/sanity.c
-+++ b/app/sanity.c
-@@ -351,7 +351,7 @@ sanity_check_babl (void)
-
- #define BABL_REQUIRED_MAJOR 0
- #define BABL_REQUIRED_MINOR 1
--#define BABL_REQUIRED_MICRO 10
-+#define BABL_REQUIRED_MICRO 12
-
- babl_get_version (&babl_major_version,
- &babl_minor_version,
-@@ -388,7 +388,7 @@ sanity_check_gegl (void)
- gint gegl_micro_version;
-
- #define GEGL_REQUIRED_MAJOR 0
--#define GEGL_REQUIRED_MINOR 2
-+#define GEGL_REQUIRED_MINOR 3
- #define GEGL_REQUIRED_MICRO 0
-
- gegl_get_version (&gegl_major_version,
-diff --git a/configure.ac b/configure.ac
-index 26812b6..4252fe9 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -40,8 +40,8 @@ m4_define([gimp_stable],
- m4_define([gimp_full_name], [GNU Image Manipulation Program])
-
- # required versions of other packages
--m4_define([babl_required_version], [0.1.10])
--m4_define([gegl_required_version], [0.2.0])
-+m4_define([babl_required_version], [0.1.12])
-+m4_define([gegl_required_version], [0.3.0])
- m4_define([glib_required_version], [2.30.2])
- m4_define([atk_required_version], [2.2.0])
- m4_define([gtk_required_version], [2.24.10])
-@@ -519,7 +519,7 @@ AC_SUBST(ISO_CODES_LOCALEDIR)
- ###############################
-
- PKG_CHECK_MODULES(BABL, babl >= babl_required_version)
--PKG_CHECK_MODULES(GEGL, gegl-0.2 >= gegl_required_version)
-+PKG_CHECK_MODULES(GEGL, gegl-0.3 >= gegl_required_version)
- PKG_CHECK_MODULES(ATK, atk >= atk_required_version)
-
- AM_PATH_GLIB_2_0(glib_required_version, :,
diff --git a/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb b/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb
deleted file mode 100644
index 024534508..000000000
--- a/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-SUMMARY = "The GIMP is the GNU Image Manipulation Program"
-HOMEPAGE = "http://www.gimp.org"
-SECTION = "x11/graphics"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-DEPENDS = " \
- gdk-pixbuf-native \
- intltool-native \
- libxslt-native \
- dbus-glib \
- gtk+ \
- babl \
- gegl \
- jpeg \
- libpng \
- libexif \
- tiff \
- lcms \
- poppler \
- jasper \
- bzip2 \
- libgudev \
- libmng \
-"
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxmu libxpm', '', d)}"
-
-inherit features_check gnomebase gtk-icon-cache gtk-doc
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "http://ftp.gimp.org/pub/gimp/v2.8/gimp-${PV}.tar.bz2 \
- file://0001-configure-ac-do-not-check-for-freetype-config.patch \
- file://bump_Babl-GEGL_versions.patch \
- file://0003-Fix-use-of-gegl-API.patch \
- "
-SRC_URI[md5sum] = "7e4fd7a53b1d3c32dff642ab1a94b44d"
-SRC_URI[sha256sum] = "9187a35cc52b110d78124d7b27b68a68ade14a794c2721314bac6134d2a5638a"
-
-EXTRA_OECONF = "--disable-python \
- --without-webkit \
- --without-wmf"
-
-do_configure_append() {
- find ${B} -name Makefile | xargs sed -i s:'-I$(includedir)':'-I.':g
- find ${B} -name Makefile | xargs sed -i s:'-I/usr/include':'-I${STAGING_INCDIR}':g
-}
-
-CFLAGS += "-fPIC"
-
-FILES_${PN}-dbg += "${libdir}/gimp/2.0/*/.debug"
-FILES_${PN} += "${datadir}/appdata"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.23.bb b/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.24.bb
index a3bdf9cea..9d9b0c78c 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.23.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.24.bb
@@ -14,8 +14,8 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/libgphoto2-${PV}.tar.bz2;name=libgphoto2
file://0001-configure.ac-remove-AM_PO_SUBDIRS.patch \
"
-SRC_URI[libgphoto2.md5sum] = "bf052ce815e607dc781c5b0f3c5ca5c0"
-SRC_URI[libgphoto2.sha256sum] = "d8af23364aa40fd8607f7e073df74e7ace05582f4ba13f1724d12d3c97e8852d"
+SRC_URI[libgphoto2.md5sum] = "063632d839b71698e99da0ccd19bc9f6"
+SRC_URI[libgphoto2.sha256sum] = "fd3c578769f0fa389c1e68120f224bd98477aa3d82d16b82746c1266c0d4fb31"
inherit autotools pkgconfig gettext lib_package
@@ -34,7 +34,7 @@ do_configure_append() {
do_install_append() {
install -d ${D}${sysconfdir}/udev/rules.d/
- install -m 0755 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
+ install -m 0644 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
}
PACKAGES =+ "libgphotoport libgphoto2-camlibs"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.40.1.bb b/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.40.1.bb
index 176cf4498..12ecb9909 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.40.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.40.1.bb
@@ -66,8 +66,8 @@ FILES_${PN}-perl += "${libdir}/perl5/*/vendor_perl/ ${libdir}/graphviz/perl/"
FILES_${PN}-demo += "${datadir}/graphviz/demo/"
RDEPENDS_${PN}-perl += "perl"
-RDEPENDS_${PN}-python += "python"
-RDEPENDS_${PN}-demo += "python perl"
+RDEPENDS_${PN}-python += "python3"
+RDEPENDS_${PN}-demo += "python3 perl"
INSANE_SKIP_${PN}-perl = "dev-so"
INSANE_SKIP_${PN}-python = "dev-so"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.103.bb b/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.104.bb
index 286d9aa6a..6c06c30aa 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.103.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.104.bb
@@ -7,12 +7,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
SRC_URI = "http://gtkwave.sourceforge.net/${BP}.tar.gz"
-SRC_URI[md5sum] = "5a9a5913f9a02a333b2b23626f153fd7"
-SRC_URI[sha256sum] = "c325abf7cf26c53309a67c0ecaaf196774fa982a717a102c599ac8a516eeeaf7"
+SRC_URI[md5sum] = "23879689ecf7e2cdd2cd5a91c5c601da"
+SRC_URI[sha256sum] = "d20dd1a9307b908439c68122a9f81d3ff434a6bfa5439f0cb01398fec650894f"
-inherit pkgconfig autotools gettext texinfo
-DEPENDS = "tcl tk gperf-native bzip2 xz pango zlib gtk+ gdk-pixbuf glib-2.0"
-RDEPENDS_${PN} = "tk-lib"
+inherit pkgconfig autotools gettext texinfo mime mime-xdg
+DEPENDS += "tcl tk gperf-native bzip2 xz pango zlib gtk+ gdk-pixbuf glib-2.0"
+RDEPENDS_${PN} += "tk-lib"
# depends on gtk+ which has this restriction
inherit features_check
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.12.bb b/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.12.bb
index 22fc83a64..dfdf82458 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.12.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.12.bb
@@ -17,7 +17,6 @@ PACKAGECONFIG ??= " \
pthread \
${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '',d)} \
- sasl \
sdl \
websockets \
zlib \
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_2.52.0.bb b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_2.52.0.bb
index dae5c342d..1a376a469 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_2.52.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_2.52.0.bb
@@ -25,8 +25,10 @@ do_configure_prepend () {
git checkout bootstrap.sh
sed -i "s#/usr#${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" bootstrap.sh
./bootstrap.sh
- mkdir -p ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/
- cp ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib/libyui.so* ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/
+ if [ -e ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib/libyui.so ]; then
+ mkdir -p ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/
+ cp ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib/libyui.so* ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/
+ fi
cd -
sed -i -e "s#\${YPREFIX}#\${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${S}/CMakeLists.txt
sed -i -e "s#/usr#${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${PKG_CONFIG_SYSROOT_DIR}${libdir}/cmake/libyui/LibyuiLibraryDepends-release.cmake
diff --git a/meta-openembedded/meta-oe/recipes-graphics/openbox/files/0001-openbox-xdg-autostart-convert-to-python3.patch b/meta-openembedded/meta-oe/recipes-graphics/openbox/files/0001-openbox-xdg-autostart-convert-to-python3.patch
new file mode 100644
index 000000000..5ebeb0169
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/openbox/files/0001-openbox-xdg-autostart-convert-to-python3.patch
@@ -0,0 +1,138 @@
+From b7de9cff2a9578dd92d191241c28437cd6bbb595 Mon Sep 17 00:00:00 2001
+From: Max Krummenacher <max.krummenacher@toradex.com>
+Date: Sun, 2 Feb 2020 14:39:21 +0000
+Subject: [PATCH] openbox-xdg-autostart: convert to python3
+
+Upstream-Status: Pending
+
+Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
+---
+ data/autostart/openbox-xdg-autostart | 72 ++++++++++++++--------------
+ 1 file changed, 36 insertions(+), 36 deletions(-)
+
+diff --git a/data/autostart/openbox-xdg-autostart b/data/autostart/openbox-xdg-autostart
+index 04a17a1..52d763f 100755
+--- a/data/autostart/openbox-xdg-autostart
++++ b/data/autostart/openbox-xdg-autostart
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ # openbox-xdg-autostart runs things based on the XDG autostart specification
+ # Copyright (C) 2008 Dana Jansens
+@@ -28,9 +28,9 @@ try:
+ from xdg.DesktopEntry import DesktopEntry
+ from xdg.Exceptions import ParsingError
+ except ImportError:
+- print
+- print >>sys.stderr, "ERROR:", ME, "requires PyXDG to be installed"
+- print
++ print()
++ print("ERROR:", ME, "requires PyXDG to be installed", file=sys.stderr)
++ print()
+ sys.exit(1)
+
+ def main(argv=sys.argv):
+@@ -51,7 +51,7 @@ def main(argv=sys.argv):
+ try:
+ autofile = AutostartFile(path)
+ except ParsingError:
+- print "Invalid .desktop file: " + path
++ print("Invalid .desktop file: " + path)
+ else:
+ if not autofile in files:
+ files.append(autofile)
+@@ -99,9 +99,9 @@ class AutostartFile:
+
+ def _alert(self, str, info=False):
+ if info:
+- print "\t ", str
++ print("\t ", str)
+ else:
+- print "\t*", str
++ print("\t*", str)
+
+ def _showInEnvironment(self, envs, verbose=False):
+ default = not self.de.getOnlyShowIn()
+@@ -146,14 +146,14 @@ class AutostartFile:
+
+ def display(self, envs):
+ if self._shouldRun(envs):
+- print "[*] " + self.de.getName()
++ print("[*] " + self.de.getName())
+ else:
+- print "[ ] " + self.de.getName()
++ print("[ ] " + self.de.getName())
+ self._alert("File: " + self.path, info=True)
+ if self.de.getExec():
+ self._alert("Executes: " + self.de.getExec(), info=True)
+ self._shouldRun(envs, True)
+- print
++ print()
+
+ def run(self, envs):
+ here = os.getcwd()
+@@ -165,34 +165,34 @@ class AutostartFile:
+ os.chdir(here)
+
+ def show_help():
+- print "Usage:", ME, "[OPTION]... [ENVIRONMENT]..."
+- print
+- print "This tool will run xdg autostart .desktop files"
+- print
+- print "OPTIONS"
+- print " --list Show a list of the files which would be run"
+- print " Files which would be run are marked with an asterix"
+- print " symbol [*]. For files which would not be run,"
+- print " information is given for why they are excluded"
+- print " --help Show this help and exit"
+- print " --version Show version and copyright information"
+- print
+- print "ENVIRONMENT specifies a list of environments for which to run autostart"
+- print "applications. If none are specified, only applications which do not "
+- print "limit themselves to certain environments will be run."
+- print
+- print "ENVIRONMENT can be one or more of:"
+- print " GNOME Gnome Desktop"
+- print " KDE KDE Desktop"
+- print " ROX ROX Desktop"
+- print " XFCE XFCE Desktop"
+- print " Old Legacy systems"
+- print
++ print("Usage:", ME, "[OPTION]... [ENVIRONMENT]...")
++ print()
++ print("This tool will run xdg autostart .desktop files")
++ print()
++ print("OPTIONS")
++ print(" --list Show a list of the files which would be run")
++ print(" Files which would be run are marked with an asterix")
++ print(" symbol [*]. For files which would not be run,")
++ print(" information is given for why they are excluded")
++ print(" --help Show this help and exit")
++ print(" --version Show version and copyright information")
++ print()
++ print("ENVIRONMENT specifies a list of environments for which to run autostart")
++ print("applications. If none are specified, only applications which do not ")
++ print("limit themselves to certain environments will be run.")
++ print()
++ print("ENVIRONMENT can be one or more of:")
++ print(" GNOME Gnome Desktop")
++ print(" KDE KDE Desktop")
++ print(" ROX ROX Desktop")
++ print(" XFCE XFCE Desktop")
++ print(" Old Legacy systems")
++ print()
+
+ def show_version():
+- print ME, VERSION
+- print "Copyright (c) 2008 Dana Jansens"
+- print
++ print(ME, VERSION)
++ print("Copyright (c) 2008 Dana Jansens")
++ print()
+
+ if __name__ == "__main__":
+ sys.exit(main())
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb b/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
index 33f34e428..e269a264f 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
@@ -7,6 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
SRC_URI = " \
http://icculus.org/openbox/releases/openbox-${PV}.tar.gz \
file://0001-Makefile.am-avoid-race-when-creating-autostart-direc.patch \
+ file://0001-openbox-xdg-autostart-convert-to-python3.patch \
"
SRC_URI[md5sum] = "b72794996c6a3ad94634727b95f9d204"
@@ -54,4 +55,4 @@ FILES_${PN}-gnome += " \
FILES_${PN}-config += "${sysconfdir}"
-RDEPENDS_${PN} += "${PN}-core ${PN}-config ${PN}-theme-clearlooks python python-shell pyxdg"
+RDEPENDS_${PN} += "${PN}-core ${PN}-config ${PN}-theme-clearlooks python3 python3-shell pyxdg"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/CVE-2020-6851.patch b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/CVE-2020-6851.patch
new file mode 100644
index 000000000..9f2fc901f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/CVE-2020-6851.patch
@@ -0,0 +1,32 @@
+From 024b8407392cb0b82b04b58ed256094ed5799e04 Mon Sep 17 00:00:00 2001
+From: Even Rouault <even.rouault@spatialys.com>
+Date: Sat, 11 Jan 2020 01:51:19 +0100
+Subject: [PATCH] opj_j2k_update_image_dimensions(): reject images whose
+ coordinates are beyond INT_MAX (fixes #1228)
+
+---
+ src/lib/openjp2/j2k.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c
+index 14f6ff41..922550eb 100644
+--- a/src/lib/openjp2/j2k.c
++++ b/src/lib/openjp2/j2k.c
+@@ -9236,6 +9236,14 @@ static OPJ_BOOL opj_j2k_update_image_dim
+ l_img_comp = p_image->comps;
+ for (it_comp = 0; it_comp < p_image->numcomps; ++it_comp) {
+ OPJ_INT32 l_h, l_w;
++ if (p_image->x0 > (OPJ_UINT32)INT_MAX ||
++ p_image->y0 > (OPJ_UINT32)INT_MAX ||
++ p_image->x1 > (OPJ_UINT32)INT_MAX ||
++ p_image->y1 > (OPJ_UINT32)INT_MAX) {
++ opj_event_msg(p_manager, EVT_ERROR,
++ "Image coordinates above INT_MAX are not supported\n");
++ return OPJ_FALSE;
++ }
+
+ l_img_comp->x0 = (OPJ_UINT32)opj_int_ceildiv((OPJ_INT32)p_image->x0,
+ (OPJ_INT32)l_img_comp->dx);
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/CVE-2020-8112.patch b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/CVE-2020-8112.patch
new file mode 100644
index 000000000..cb250530e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/CVE-2020-8112.patch
@@ -0,0 +1,46 @@
+From 05f9b91e60debda0e83977e5e63b2e66486f7074 Mon Sep 17 00:00:00 2001
+From: Even Rouault <even.rouault@spatialys.com>
+Date: Thu, 30 Jan 2020 00:59:57 +0100
+Subject: [PATCH] opj_tcd_init_tile(): avoid integer overflow
+
+That could lead to later assertion failures.
+
+Fixes #1231 / CVE-2020-8112
+---
+ src/lib/openjp2/tcd.c | 20 ++++++++++++++++++--
+ 1 file changed, 18 insertions(+), 2 deletions(-)
+
+diff --git a/src/lib/openjp2/tcd.c b/src/lib/openjp2/tcd.c
+index deecc4df..aa419030 100644
+--- a/src/lib/openjp2/tcd.c
++++ b/src/lib/openjp2/tcd.c
+@@ -905,8 +905,24 @@ static INLINE OPJ_BOOL opj_tcd_init_tile(opj_tcd_t *p_tcd, OPJ_UINT32 p_tile_no,
+ /* p. 64, B.6, ISO/IEC FDIS15444-1 : 2000 (18 august 2000) */
+ l_tl_prc_x_start = opj_int_floordivpow2(l_res->x0, (OPJ_INT32)l_pdx) << l_pdx;
+ l_tl_prc_y_start = opj_int_floordivpow2(l_res->y0, (OPJ_INT32)l_pdy) << l_pdy;
+- l_br_prc_x_end = opj_int_ceildivpow2(l_res->x1, (OPJ_INT32)l_pdx) << l_pdx;
+- l_br_prc_y_end = opj_int_ceildivpow2(l_res->y1, (OPJ_INT32)l_pdy) << l_pdy;
++ {
++ OPJ_UINT32 tmp = ((OPJ_UINT32)opj_int_ceildivpow2(l_res->x1,
++ (OPJ_INT32)l_pdx)) << l_pdx;
++ if (tmp > (OPJ_UINT32)INT_MAX) {
++ opj_event_msg(manager, EVT_ERROR, "Integer overflow\n");
++ return OPJ_FALSE;
++ }
++ l_br_prc_x_end = (OPJ_INT32)tmp;
++ }
++ {
++ OPJ_UINT32 tmp = ((OPJ_UINT32)opj_int_ceildivpow2(l_res->y1,
++ (OPJ_INT32)l_pdy)) << l_pdy;
++ if (tmp > (OPJ_UINT32)INT_MAX) {
++ opj_event_msg(manager, EVT_ERROR, "Integer overflow\n");
++ return OPJ_FALSE;
++ }
++ l_br_prc_y_end = (OPJ_INT32)tmp;
++ }
+ /*fprintf(stderr, "\t\t\tprc_x_start=%d, prc_y_start=%d, br_prc_x_end=%d, br_prc_y_end=%d \n", l_tl_prc_x_start, l_tl_prc_y_start, l_br_prc_x_end ,l_br_prc_y_end );*/
+
+ l_res->pw = (l_res->x0 == l_res->x1) ? 0U : (OPJ_UINT32)((
+--
+2.20.1
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.1.bb b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.1.bb
index ffd4099b4..42011efa9 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.1.bb
@@ -8,6 +8,8 @@ DEPENDS = "libpng tiff lcms zlib"
SRC_URI = " \
git://github.com/uclouvain/openjpeg.git \
file://0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch \
+ file://CVE-2020-6851.patch \
+ file://CVE-2020-8112.patch \
"
SRCREV = "57096325457f96d8cd07bd3af04fe81d7a2ba788"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.42.0.bb b/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.42.1.bb
index 35e71ab42..57d9ff982 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.42.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.42.1.bb
@@ -9,8 +9,8 @@ DEPENDS = "mm-common cairomm glibmm pango"
SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/pangomm/${SHRT_VER}/pangomm-${PV}.tar.xz"
-SRC_URI[md5sum] = "6cffedf2225c4e72645a7d757fb5b832"
-SRC_URI[sha256sum] = "ca6da067ff93a6445780c0b4b226eb84f484ab104b8391fb744a45cbc7edbf56"
+SRC_URI[md5sum] = "339c48dd92ebd3a9911b231708f7a819"
+SRC_URI[sha256sum] = "14bf04939930870d5cfa96860ed953ad2ce07c3fd8713add4a1bfe585589f40f"
inherit features_check autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.5.bb b/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.7.bb
index 5f81e841d..6ea632d06 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.5.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.7.bb
@@ -2,9 +2,9 @@ SUMMARY = "RenderDoc recipe providing renderdoccmd"
DESCRIPTION = "RenderDoc is a frame-capture based graphics debugger"
HOMEPAGE = "https://github.com/baldurk/renderdoc"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=9753b1b4fba3261c27d1ce5c1acef667"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=df7ea9e196efc7014c124747a0ef9772"
-SRCREV = "a94f238e37cfe2f142093eb8e5da7775abaa88c6"
+SRCREV = "a56af589d94dc851809fd5344d0ae441da70c1f2"
SRC_URI = "git://github.com/baldurk/${BPN}.git;protocol=http;branch=v1.x \
file://0001-renderdoc-use-xxd-instead-of-cross-compiling-shim-bi.patch \
file://0001-Remove-glslang-pool_allocator-setAllocator.patch \
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.10.1.bb b/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.10.1.bb
index 16937792e..f97c2b2d6 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.10.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.10.1.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.tigervnc.com/"
LICENSE = "GPLv2+"
SECTION = "x11/utils"
DEPENDS = "xserver-xorg gnutls jpeg libxtst gettext-native fltk"
-RDEPENDS_${PN} = "chkconfig coreutils hicolor-icon-theme perl"
+RDEPENDS_${PN} = "coreutils hicolor-icon-theme perl"
LIC_FILES_CHKSUM = "file://LICENCE.TXT;md5=75b02c2872421380bbd47781d2bd75d3"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib/0001-Fix-build-error-with-input_event_sec-for-old-kernel.patch b/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib/0001-Fix-build-error-with-input_event_sec-for-old-kernel.patch
new file mode 100644
index 000000000..ea8a9e565
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib/0001-Fix-build-error-with-input_event_sec-for-old-kernel.patch
@@ -0,0 +1,30 @@
+From 050bf24c16e95f63a76e13156346a072035d45b4 Mon Sep 17 00:00:00 2001
+From: Evan Harvey <evanwork1234@gmail.com>
+Date: Thu, 19 Mar 2020 01:32:03 -0700
+Subject: [PATCH] Fix build error with input_event_sec for old kernel
+
+Upstream-Status: Backport [https://github.com/libts/tslib/commit/050bf24c16e95f63a76e13156346a072035d45b4]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/ts_uinput.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/tools/ts_uinput.c b/tools/ts_uinput.c
+index 1832a07..9c40bb3 100644
+--- a/tools/ts_uinput.c
++++ b/tools/ts_uinput.c
+@@ -51,6 +51,11 @@
+ #include <linux/fb.h>
+ #endif
+
++#ifndef input_event_sec
++#define input_event_sec time.tv_sec
++#define input_event_usec time.tv_usec
++#endif
++
+ #define RESET "\033[0m"
+ #define RED "\033[31m"
+ #define GREEN "\033[32m"
+--
+2.26.2
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.21.bb b/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.21.bb
index bb28ee410..76c423144 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.21.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.21.bb
@@ -15,6 +15,7 @@ LIC_FILES_CHKSUM = "\
SRC_URI = "https://github.com/kergoth/tslib/releases/download/${PV}/tslib-${PV}.tar.xz;downloadfilename=tslib-${PV}.tar.xz \
file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \
+ file://0001-Fix-build-error-with-input_event_sec-for-old-kernel.patch \
file://ts.conf \
file://tslib.sh \
"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.1.bb
index bd552c08a..4df0c3afb 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.1.bb
@@ -3,7 +3,7 @@ require ttf.inc
SUMMARY = "Hunky fonts - TTF Version"
HOMEPAGE = "http://sourceforge.net/projects/hunkyfonts"
LICENSE = "LGPL-2.1+"
-LIC_FILES_CHKSUM = "file://../LICENSE;md5=7fbc338309ac38fefcd64b04bb903e34"
+LIC_FILES_CHKSUM = "file://../COPYRIGHT.TXT;md5=70d34478e38b1ad9995079f9921f9ef7"
PR = "r7"
SRC_URI = "${SOURCEFORGE_MIRROR}/hunkyfonts/hunkyfonts-${PV}.tar.bz2"
@@ -16,5 +16,5 @@ FONT_PACKAGES = "ttf-hunky-sans ttf-hunky-serif"
FILES_ttf-hunky-sans = "${datadir}/fonts/truetype/HunkySans*.ttf"
FILES_ttf-hunky-serif = "${datadir}/fonts/truetype/HunkySerif*.ttf"
-SRC_URI[md5sum] = "36444795a356fb8a56c63b2840729bab"
-SRC_URI[sha256sum] = "e0b1849c545b6af276407d93025c73094dd74fc259b07c1d91594fdbb9a0b829"
+SRC_URI[md5sum] = "b933312967842e5737b5415fa22d682a"
+SRC_URI[sha256sum] = "3fc528737ccd12ec3c09c4a91447d241d3c5bceeeb4d24b7f2c29b15c9735328"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb
index 20041bb7b..bf32fedc3 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb
@@ -14,7 +14,7 @@ FILES_${PN} = "${datadir}/fonts/truetype/Inconsolata.ttf \
${datadir}/doc/ttf-inconsolata/*"
do_configure() {
- mv ${WORKDIR}/Inconsolata.otf ${S}/Inconsolata.ttf
+ cp -fr ${WORKDIR}/Inconsolata.otf ${S}/Inconsolata.ttf
}
do_install_append() {
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.bb
index f9679d606..0af0e91d6 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.bb
@@ -15,7 +15,7 @@ S = "${WORKDIR}/git"
FONT_PACKAGES = "${PN}"
FILES_${PN} = "${datadir}"
-inherit pythonnative
+inherit python3native
do_compile() {
cd ${S}; make ttf;
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb
new file mode 100644
index 000000000..e74f7a7f6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb
@@ -0,0 +1,19 @@
+require ttf.inc
+
+SUMMARY = "Google noto emoji font pack"
+HOMEPAGE = "https://github.com/googlefonts/noto-emoji"
+LICENSE = "OFL-1.1"
+LIC_FILES_CHKSUM = "file://fonts/LICENSE;md5=55719faa0112708e946b820b24b14097"
+
+SRC_URI = "git://github.com/googlefonts/noto-emoji;protocol=https"
+SRCREV = "833a43d03246a9325e748a2d783006454d76ff66"
+
+PACKAGES = "${PN}-color ${PN}-regular"
+FONT_PACKAGES = "${PN}-color ${PN}-regular"
+
+S = "${WORKDIR}/git"
+
+FILES_${PN}-color = "${datadir}/fonts/truetype/NotoColorEmoji.ttf"
+FILES_${PN}-regular = "${datadir}/fonts/truetype/NotoEmoji-Regular.ttf"
+
+do_compile[noexec] = "1"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb b/meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb
index aeae071dc..259c64052 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb
@@ -7,7 +7,7 @@ DEPENDS = "virtual/libx11 libxtst"
PR = "r1"
-inherit features_check pkgconfig
+inherit features_check pkgconfig perlnative
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_351.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_353.bb
index 40ee555db..6de704d0b 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_351.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_353.bb
@@ -2,14 +2,14 @@ require recipes-graphics/xorg-app/xorg-app-common.inc
SUMMARY = "xterm is the standard terminal emulator for the X Window System"
DEPENDS = "libxaw xorgproto libxext libxau libxinerama libxpm ncurses"
-LIC_FILES_CHKSUM = "file://xterm.h;beginline=3;endline=31;md5=c7faceb872d90115e7c0ad90e90c390d"
+LIC_FILES_CHKSUM = "file://xterm.h;beginline=3;endline=31;md5=996b1ce0584c0747b17b57654cc81e8e"
SRC_URI = "http://invisible-mirror.net/archives/${BPN}/${BP}.tgz \
file://0001-Add-configure-time-check-for-setsid.patch \
"
-SRC_URI[md5sum] = "a07edfbee2e2f4c6a9ddbf834fa4bbec"
-SRC_URI[sha256sum] = "760a8a10221c9c9744afd86db87c7ad95bbf9be4f5f525fecf39125f0d2a6e16"
+SRC_URI[md5sum] = "247c30ebfa44623f3a2d100e0cae5c7f"
+SRC_URI[sha256sum] = "e521d3ee9def61f5d5c911afc74dd5c3a56ce147c7071c74023ea24cac9bb768"
PACKAGECONFIG ?= ""
PACKAGECONFIG[xft] = "--enable-freetype,--disable-freetype,libxft fontconfig freetype-native"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/xcb-util-cursor_0.1.3.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/xcb-util-cursor_0.1.3.bb
new file mode 100644
index 000000000..f935edd6f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/xcb-util-cursor_0.1.3.bb
@@ -0,0 +1,11 @@
+require recipes-graphics/xorg-lib/xcb-util.inc
+
+SUMMARY = "XCB port of libXcursor"
+
+DEPENDS += "xcb-util xcb-util-renderutil xcb-util-image"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ce469b61c70ff8d7cce0547476891974"
+
+SRC_URI[md5sum] = "6ac3b17cba51aaaa36ba035a53527214"
+SRC_URI[sha256sum] = "05a10a0706a1a789a078be297b5fb663f66a71fb7f7f1b99658264c35926394f"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/yad/yad_5.0.bb b/meta-openembedded/meta-oe/recipes-graphics/yad/yad_6.0.bb
index e53c04bbc..3760a37d3 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/yad/yad_5.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/yad/yad_6.0.bb
@@ -6,9 +6,11 @@ LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
SRC_URI = "git://github.com/v1cont/yad.git"
-SRCREV = "c8eac89cc20d915cb5ed185f423091a291c8af24"
+SRCREV = "a5b1a7a3867bc7dffbbc539f586f301687b6ec02"
-inherit autotools gsettings
+inherit autotools gsettings features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
DEPENDS = "gtk+3 glib-2.0-native intltool-native"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.7.bb b/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.8.bb
index 8098d096e..834c92cc4 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.7.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.8.bb
@@ -10,7 +10,7 @@ SECTION = "devel"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING3;md5=d32239bcb673463ab874e80d47fae504"
-DEPENDS = "zlib readline coreutils-native"
+DEPENDS = "zlib readline coreutils-native ncurses-native"
S = "${WORKDIR}/git"
SRC_URI = "git://github.com/crash-utility/${BPN}.git \
@@ -26,7 +26,7 @@ SRC_URI = "git://github.com/crash-utility/${BPN}.git \
file://0002-crash-fix-build-error-unknown-type-name-gdb_fpregset.patch \
file://0003-crash-detect-the-sysroot-s-glibc-header-file.patch \
"
-SRCREV = "5b0e3777ccbb571678791903e93446ccd0aba03a"
+SRCREV = "24f4801f8c8871a2e3e660fe9fa8fdd86bb29876"
SRC_URI[gdb.md5sum] = "a9836707337e5f7bf76a009a8904f470"
SRC_URI[gdb.sha256sum] = "8070389a5dcc104eb0be483d582729f98ed4d761ad19cedd3f17b5d2502faa36"
@@ -38,8 +38,12 @@ inherit gettext
BBCLASSEXTEND = "native cross"
TARGET_CC_ARCH_append = " ${SELECTED_OPTIMIZATION}"
-# crash 7.1.3 and before don't support mips64
-COMPATIBLE_HOST = "^(?!mips64).*"
+# crash 7.1.3 and before don't support mips64/riscv64
+COMPATIBLE_HOST_riscv64 = "null"
+COMPATIBLE_HOST_riscv32 = "null"
+COMPATIBLE_HOST_mipsarchn64 = "null"
+COMPATIBLE_HOST_mipsarchn32 = "null"
+
EXTRA_OEMAKE = 'RPMPKG="${PV}" \
GDB_TARGET="${TARGET_SYS}" \
@@ -49,9 +53,7 @@ EXTRA_OEMAKE = 'RPMPKG="${PV}" \
'
EXTRA_OEMAKE_class-cross = 'RPMPKG="${PV}" \
- GDB_TARGET="${BUILD_SYS} \
- \${GDB_CONF_FLAGS} \
- --target=${TARGET_SYS}" \
+ GDB_TARGET="${BUILD_SYS} --target=${TARGET_SYS}" \
GDB_HOST="${BUILD_SYS}" \
GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
'
@@ -59,10 +61,6 @@ EXTRA_OEMAKE_class-cross = 'RPMPKG="${PV}" \
EXTRA_OEMAKE_append_class-native = " LDFLAGS='${BUILD_LDFLAGS}'"
EXTRA_OEMAKE_append_class-cross = " LDFLAGS='${BUILD_LDFLAGS}'"
-REMOVE_M32 = "sed -i -e 's/#define TARGET_CFLAGS_ARM_ON_X86_64.*/#define TARGET_CFLAGS_ARM_ON_X86_64\t\"TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64\"/g' ${S}/configure.c"
-
-REMOVE_M32_class-cross = ""
-
do_configure() {
:
}
@@ -79,7 +77,7 @@ do_compile_prepend() {
esac
sed -i s/FORCE_DEFINE_ARCH/"${ARCH}"/g ${S}/configure.c
- ${REMOVE_M32}
+ sed -i -e 's/#define TARGET_CFLAGS_ARM_ON_X86_64.*/#define TARGET_CFLAGS_ARM_ON_X86_64\t\"TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64\"/g' ${S}/configure.c
sed -i 's/&gt;/>/g' ${S}/Makefile
}
diff --git a/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-fru-Fix-buffer-overflow-in-ipmi_spd_print_fru.patch b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-fru-Fix-buffer-overflow-in-ipmi_spd_print_fru.patch
new file mode 100644
index 000000000..eadfb7ead
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-fru-Fix-buffer-overflow-in-ipmi_spd_print_fru.patch
@@ -0,0 +1,53 @@
+From 24aed93efb30a8f557aedc2f03b6ccec758ccbf4 Mon Sep 17 00:00:00 2001
+From: Chrostoper Ertl <chertl@microsoft.com>
+Date: Thu, 28 Nov 2019 16:44:18 +0000
+Subject: [PATCH 1/5] fru: Fix buffer overflow in ipmi_spd_print_fru
+
+Partial fix for CVE-2020-5208, see
+https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp
+
+The `ipmi_spd_print_fru` function has a similar issue as the one fixed
+by the previous commit in `read_fru_area_section`. An initial request is
+made to get the `fru.size`, which is used as the size for the allocation
+of `spd_data`. Inside a loop, further requests are performed to get the
+copy sizes which are not checked before being used as the size for a
+copy into the buffer.
+
+Upstream-Status: Backport[https://github.com/ipmitool/ipmitool/commit/840fb1cbb4fb365cb9797300e3374d4faefcdb10]
+CVE: CVE-2020-5208
+
+Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
+---
+ lib/dimm_spd.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/lib/dimm_spd.c b/lib/dimm_spd.c
+index 91ae117..4c9c21d 100644
+--- a/lib/dimm_spd.c
++++ b/lib/dimm_spd.c
+@@ -1014,7 +1014,7 @@ ipmi_spd_print_fru(struct ipmi_intf * intf, uint8_t id)
+ struct ipmi_rq req;
+ struct fru_info fru;
+ uint8_t *spd_data, msg_data[4];
+- int len, offset;
++ uint32_t len, offset;
+
+ msg_data[0] = id;
+
+@@ -1091,6 +1091,13 @@ ipmi_spd_print_fru(struct ipmi_intf * intf, uint8_t id)
+ }
+
+ len = rsp->data[0];
++ if(rsp->data_len < 1
++ || len > rsp->data_len - 1
++ || len > fru.size - offset)
++ {
++ printf(" Not enough buffer size");
++ return -1;
++ }
+ memcpy(&spd_data[offset], rsp->data + 1, len);
+ offset += len;
+ } while (offset < fru.size);
+--
+1.9.1
+
diff --git a/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-fru-Fix-buffer-overflow-vulnerabilities.patch b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-fru-Fix-buffer-overflow-vulnerabilities.patch
new file mode 100644
index 000000000..b65e3ef1a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-fru-Fix-buffer-overflow-vulnerabilities.patch
@@ -0,0 +1,133 @@
+From e824c23316ae50beb7f7488f2055ac65e8b341f2 Mon Sep 17 00:00:00 2001
+From: Chrostoper Ertl <chertl@microsoft.com>
+Date: Thu, 28 Nov 2019 16:33:59 +0000
+Subject: [PATCH] fru: Fix buffer overflow vulnerabilities
+
+Partial fix for CVE-2020-5208, see
+https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp
+
+The `read_fru_area_section` function only performs size validation of
+requested read size, and falsely assumes that the IPMI message will not
+respond with more than the requested amount of data; it uses the
+unvalidated response size to copy into `frubuf`. If the response is
+larger than the request, this can result in overflowing the buffer.
+
+The same issue affects the `read_fru_area` function.
+
+Upstream-Status: Backport[https://github.com/ipmitool/ipmitool/commit/e824c23316ae50beb7f7488f2055ac65e8b341f2]
+CVE: CVE-2020-5208
+
+Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
+---
+ lib/ipmi_fru.c | 33 +++++++++++++++++++++++++++++++--
+ 1 file changed, 31 insertions(+), 2 deletions(-)
+
+diff --git a/lib/ipmi_fru.c b/lib/ipmi_fru.c
+index c2a139d..2e323ff 100644
+--- a/lib/ipmi_fru.c
++++ b/lib/ipmi_fru.c
+@@ -663,7 +663,10 @@ int
+ read_fru_area(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
+ uint32_t offset, uint32_t length, uint8_t *frubuf)
+ {
+- uint32_t off = offset, tmp, finish;
++ uint32_t off = offset;
++ uint32_t tmp;
++ uint32_t finish;
++ uint32_t size_left_in_buffer;
+ struct ipmi_rs * rsp;
+ struct ipmi_rq req;
+ uint8_t msg_data[4];
+@@ -676,10 +679,12 @@ read_fru_area(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
+
+ finish = offset + length;
+ if (finish > fru->size) {
++ memset(frubuf + fru->size, 0, length - fru->size);
+ finish = fru->size;
+ lprintf(LOG_NOTICE, "Read FRU Area length %d too large, "
+ "Adjusting to %d",
+ offset + length, finish - offset);
++ length = finish - offset;
+ }
+
+ memset(&req, 0, sizeof(req));
+@@ -715,6 +720,7 @@ read_fru_area(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
+ }
+ }
+
++ size_left_in_buffer = length;
+ do {
+ tmp = fru->access ? off >> 1 : off;
+ msg_data[0] = id;
+@@ -756,9 +762,18 @@ read_fru_area(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
+ }
+
+ tmp = fru->access ? rsp->data[0] << 1 : rsp->data[0];
++ if(rsp->data_len < 1
++ || tmp > rsp->data_len - 1
++ || tmp > size_left_in_buffer)
++ {
++ printf(" Not enough buffer size");
++ return -1;
++ }
++
+ memcpy(frubuf, rsp->data + 1, tmp);
+ off += tmp;
+ frubuf += tmp;
++ size_left_in_buffer -= tmp;
+ /* sometimes the size returned in the Info command
+ * is too large. return 0 so higher level function
+ * still attempts to parse what was returned */
+@@ -791,7 +806,9 @@ read_fru_area_section(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
+ uint32_t offset, uint32_t length, uint8_t *frubuf)
+ {
+ static uint32_t fru_data_rqst_size = 20;
+- uint32_t off = offset, tmp, finish;
++ uint32_t off = offset;
++ uint32_t tmp, finish;
++ uint32_t size_left_in_buffer;
+ struct ipmi_rs * rsp;
+ struct ipmi_rq req;
+ uint8_t msg_data[4];
+@@ -804,10 +821,12 @@ read_fru_area_section(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
+
+ finish = offset + length;
+ if (finish > fru->size) {
++ memset(frubuf + fru->size, 0, length - fru->size);
+ finish = fru->size;
+ lprintf(LOG_NOTICE, "Read FRU Area length %d too large, "
+ "Adjusting to %d",
+ offset + length, finish - offset);
++ length = finish - offset;
+ }
+
+ memset(&req, 0, sizeof(req));
+@@ -822,6 +841,8 @@ read_fru_area_section(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
+ if (fru->access && fru_data_rqst_size > 16)
+ #endif
+ fru_data_rqst_size = 16;
++
++ size_left_in_buffer = length;
+ do {
+ tmp = fru->access ? off >> 1 : off;
+ msg_data[0] = id;
+@@ -853,8 +874,16 @@ read_fru_area_section(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
+ }
+
+ tmp = fru->access ? rsp->data[0] << 1 : rsp->data[0];
++ if(rsp->data_len < 1
++ || tmp > rsp->data_len - 1
++ || tmp > size_left_in_buffer)
++ {
++ printf(" Not enough buffer size");
++ return -1;
++ }
+ memcpy((frubuf + off)-offset, rsp->data + 1, tmp);
+ off += tmp;
++ size_left_in_buffer -= tmp;
+
+ /* sometimes the size returned in the Info command
+ * is too large. return 0 so higher level function
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0002-session-Fix-buffer-overflow-in-ipmi_get_session_info.patch b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0002-session-Fix-buffer-overflow-in-ipmi_get_session_info.patch
new file mode 100644
index 000000000..b8742b1a8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0002-session-Fix-buffer-overflow-in-ipmi_get_session_info.patch
@@ -0,0 +1,53 @@
+From 81144cfba131b4ddbfcf9c530274b23bfc7e0ea8 Mon Sep 17 00:00:00 2001
+From: Chrostoper Ertl <chertl@microsoft.com>
+Date: Thu, 28 Nov 2019 16:51:49 +0000
+Subject: [PATCH 2/5] session: Fix buffer overflow in ipmi_get_session_info
+
+Partial fix for CVE-2020-5208, see
+https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp
+
+The `ipmi_get_session_info` function does not properly check the
+response `data_len`, which is used as a copy size, allowing stack buffer
+overflow.
+
+Upstream-Status: Backport[https://github.com/ipmitool/ipmitool/commit/41d7026946fafbd4d1ec0bcaca3ea30a6e8eed22]
+CVE: CVE-2020-5208
+
+Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
+---
+ lib/ipmi_session.c | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/lib/ipmi_session.c b/lib/ipmi_session.c
+index 4855bc4..71bef4c 100644
+--- a/lib/ipmi_session.c
++++ b/lib/ipmi_session.c
+@@ -319,8 +319,10 @@ ipmi_get_session_info(struct ipmi_intf * intf,
+ }
+ else
+ {
+- memcpy(&session_info, rsp->data, rsp->data_len);
+- print_session_info(&session_info, rsp->data_len);
++ memcpy(&session_info, rsp->data,
++ __min(rsp->data_len, sizeof(session_info)));
++ print_session_info(&session_info,
++ __min(rsp->data_len, sizeof(session_info)));
+ }
+ break;
+
+@@ -351,8 +353,10 @@ ipmi_get_session_info(struct ipmi_intf * intf,
+ break;
+ }
+
+- memcpy(&session_info, rsp->data, rsp->data_len);
+- print_session_info(&session_info, rsp->data_len);
++ memcpy(&session_info, rsp->data,
++ __min(rsp->data_len, sizeof(session_info)));
++ print_session_info(&session_info,
++ __min(rsp->data_len, sizeof(session_info)));
+
+ } while (i <= session_info.session_slot_count);
+ break;
+--
+1.9.1
+
diff --git a/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0003-channel-Fix-buffer-overflow.patch b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0003-channel-Fix-buffer-overflow.patch
new file mode 100644
index 000000000..deebd356a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0003-channel-Fix-buffer-overflow.patch
@@ -0,0 +1,69 @@
+From 5057761e30e3a7682edab60f98f631616392ddc6 Mon Sep 17 00:00:00 2001
+From: Chrostoper Ertl <chertl@microsoft.com>
+Date: Thu, 28 Nov 2019 16:56:38 +0000
+Subject: [PATCH 3/3] channel: Fix buffer overflow
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Partial fix for CVE-2020-5208, see
+https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp
+
+The `ipmi_get_channel_cipher_suites` function does not properly check
+the final response’s `data_len`, which can lead to stack buffer overflow
+on the final copy.
+
+Upstream-Status: Backport[https://github.com/ipmitool/ipmitool/commit/9452be87181a6e83cfcc768b3ed8321763db50e4]
+CVE: CVE-2020-5208
+
+[Make some changes to apply it]
+Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
+---
+ include/ipmitool/ipmi_channel.h | 2 ++
+ lib/ipmi_channel.c | 10 ++++++++--
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/include/ipmitool/ipmi_channel.h b/include/ipmitool/ipmi_channel.h
+index b138c26..d7cce5e 100644
+--- a/include/ipmitool/ipmi_channel.h
++++ b/include/ipmitool/ipmi_channel.h
+@@ -77,6 +77,8 @@ struct channel_access_t {
+ uint8_t user_level_auth;
+ };
+
++#define MAX_CIPHER_SUITE_DATA_LEN 0x10
++
+ /*
+ * The Get Authentication Capabilities response structure
+ * From table 22-15 of the IPMI v2.0 spec
+diff --git a/lib/ipmi_channel.c b/lib/ipmi_channel.c
+index fab2e54..76ecdcd 100644
+--- a/lib/ipmi_channel.c
++++ b/lib/ipmi_channel.c
+@@ -378,7 +378,10 @@ ipmi_get_channel_cipher_suites(struct ipmi_intf *intf, const char *payload_type,
+ lprintf(LOG_ERR, "Unable to Get Channel Cipher Suites");
+ return -1;
+ }
+- if (rsp->ccode > 0) {
++ if (rsp->ccode
++ || rsp->data_len < 1
++ || rsp->data_len > sizeof(uint8_t) + MAX_CIPHER_SUITE_DATA_LEN)
++ {
+ lprintf(LOG_ERR, "Get Channel Cipher Suites failed: %s",
+ val2str(rsp->ccode, completion_code_vals));
+ return -1;
+@@ -413,7 +416,10 @@ ipmi_get_channel_cipher_suites(struct ipmi_intf *intf, const char *payload_type,
+ lprintf(LOG_ERR, "Unable to Get Channel Cipher Suites");
+ return -1;
+ }
+- if (rsp->ccode > 0) {
++ if (rsp->ccode
++ || rsp->data_len < 1
++ || rsp->data_len > sizeof(uint8_t) + MAX_CIPHER_SUITE_DATA_LEN)
++ {
+ lprintf(LOG_ERR, "Get Channel Cipher Suites failed: %s",
+ val2str(rsp->ccode, completion_code_vals));
+ return -1;
+--
+2.18.1
+
diff --git a/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0004-lanp-Fix-buffer-overflows-in-get_lan_param_select.patch b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0004-lanp-Fix-buffer-overflows-in-get_lan_param_select.patch
new file mode 100644
index 000000000..b5ce9e92e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0004-lanp-Fix-buffer-overflows-in-get_lan_param_select.patch
@@ -0,0 +1,94 @@
+From e6aa6076f65e71544bd6450d20d943d7baaccb9f Mon Sep 17 00:00:00 2001
+From: Chrostoper Ertl <chertl@microsoft.com>
+Date: Thu, 28 Nov 2019 17:06:39 +0000
+Subject: [PATCH 4/5] lanp: Fix buffer overflows in get_lan_param_select
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Partial fix for CVE-2020-5208, see
+https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp
+
+The `get_lan_param_select` function is missing a validation check on the
+response’s `data_len`, which it then returns to caller functions, where
+stack buffer overflow can occur.
+
+Upstream-Status: Backport[https://github.com/ipmitool/ipmitool/commit/d45572d71e70840e0d4c50bf48218492b79c1a10]
+CVE: CVE-2020-5208
+
+[Make some changes to apply it]
+Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
+---
+ lib/ipmi_lanp.c | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/lib/ipmi_lanp.c b/lib/ipmi_lanp.c
+index 060e753..dee21ee 100644
+--- a/lib/ipmi_lanp.c
++++ b/lib/ipmi_lanp.c
+@@ -1917,7 +1917,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert,
+ if (p == NULL) {
+ return (-1);
+ }
+- memcpy(data, p->data, p->data_len);
++ memcpy(data, p->data, __min(p->data_len, sizeof(data)));
+ /* set new ipaddr */
+ memcpy(data+3, temp, 4);
+ printf("Setting LAN Alert %d IP Address to %d.%d.%d.%d\n", alert,
+@@ -1932,7 +1932,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert,
+ if (p == NULL) {
+ return (-1);
+ }
+- memcpy(data, p->data, p->data_len);
++ memcpy(data, p->data, __min(p->data_len, sizeof(data)));
+ /* set new macaddr */
+ memcpy(data+7, temp, 6);
+ printf("Setting LAN Alert %d MAC Address to "
+@@ -1947,7 +1947,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert,
+ if (p == NULL) {
+ return (-1);
+ }
+- memcpy(data, p->data, p->data_len);
++ memcpy(data, p->data, __min(p->data_len, sizeof(data)));
+
+ if (strncasecmp(argv[1], "def", 3) == 0 ||
+ strncasecmp(argv[1], "default", 7) == 0) {
+@@ -1973,7 +1973,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert,
+ if (p == NULL) {
+ return (-1);
+ }
+- memcpy(data, p->data, p->data_len);
++ memcpy(data, p->data, __min(p->data_len, sizeof(data)));
+
+ if (strncasecmp(argv[1], "on", 2) == 0 ||
+ strncasecmp(argv[1], "yes", 3) == 0) {
+@@ -1998,7 +1998,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert,
+ if (p == NULL) {
+ return (-1);
+ }
+- memcpy(data, p->data, p->data_len);
++ memcpy(data, p->data, __min(p->data_len, sizeof(data)));
+
+ if (strncasecmp(argv[1], "pet", 3) == 0) {
+ printf("Setting LAN Alert %d destination to PET Trap\n", alert);
+@@ -2026,7 +2026,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert,
+ if (p == NULL) {
+ return (-1);
+ }
+- memcpy(data, p->data, p->data_len);
++ memcpy(data, p->data, __min(p->data_len, sizeof(data)));
+
+ if (str2uchar(argv[1], &data[2]) != 0) {
+ lprintf(LOG_ERR, "Invalid time: %s", argv[1]);
+@@ -2042,7 +2042,7 @@ ipmi_lan_alert_set(struct ipmi_intf * intf, uint8_t chan, uint8_t alert,
+ if (p == NULL) {
+ return (-1);
+ }
+- memcpy(data, p->data, p->data_len);
++ memcpy(data, p->data, __min(p->data_len, sizeof(data)));
+
+ if (str2uchar(argv[1], &data[3]) != 0) {
+ lprintf(LOG_ERR, "Invalid retry: %s", argv[1]);
+--
+1.9.1
+
diff --git a/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0005-fru-sdr-Fix-id_string-buffer-overflows.patch b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0005-fru-sdr-Fix-id_string-buffer-overflows.patch
new file mode 100644
index 000000000..cf8b9254c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool/0005-fru-sdr-Fix-id_string-buffer-overflows.patch
@@ -0,0 +1,142 @@
+From 26e64ca78ae844c5ceedde89531e2924d7d4594c Mon Sep 17 00:00:00 2001
+From: Chrostoper Ertl <chertl@microsoft.com>
+Date: Thu, 28 Nov 2019 17:13:45 +0000
+Subject: [PATCH 5/5] fru, sdr: Fix id_string buffer overflows
+
+Final part of the fixes for CVE-2020-5208, see
+https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp
+
+9 variants of stack buffer overflow when parsing `id_string` field of
+SDR records returned from `CMD_GET_SDR` command.
+
+SDR record structs have an `id_code` field, and an `id_string` `char`
+array.
+
+The length of `id_string` is calculated as `(id_code & 0x1f) + 1`,
+which can be larger than expected 16 characters (if `id_code = 0xff`,
+then length will be `(0xff & 0x1f) + 1 = 32`).
+
+In numerous places, this can cause stack buffer overflow when copying
+into fixed buffer of size `17` bytes from this calculated length.
+
+Upstream-Status: Backport[https://github.com/ipmitool/ipmitool/commit/7ccea283dd62a05a320c1921e3d8d71a87772637]
+CVE: CVE-2020-5208
+
+Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
+---
+ lib/ipmi_fru.c | 2 +-
+ lib/ipmi_sdr.c | 40 ++++++++++++++++++++++++----------------
+ 2 files changed, 25 insertions(+), 17 deletions(-)
+
+diff --git a/lib/ipmi_fru.c b/lib/ipmi_fru.c
+index b71ea23..1decea2 100644
+--- a/lib/ipmi_fru.c
++++ b/lib/ipmi_fru.c
+@@ -3038,7 +3038,7 @@ ipmi_fru_print(struct ipmi_intf * intf, struct sdr_record_fru_locator * fru)
+ return 0;
+
+ memset(desc, 0, sizeof(desc));
+- memcpy(desc, fru->id_string, fru->id_code & 0x01f);
++ memcpy(desc, fru->id_string, __min(fru->id_code & 0x01f, sizeof(desc)));
+ desc[fru->id_code & 0x01f] = 0;
+ printf("FRU Device Description : %s (ID %d)\n", desc, fru->device_id);
+
+diff --git a/lib/ipmi_sdr.c b/lib/ipmi_sdr.c
+index fa7b082..175a86f 100644
+--- a/lib/ipmi_sdr.c
++++ b/lib/ipmi_sdr.c
+@@ -2113,7 +2113,7 @@ ipmi_sdr_print_sensor_eventonly(struct ipmi_intf *intf,
+ return -1;
+
+ memset(desc, 0, sizeof (desc));
+- snprintf(desc, (sensor->id_code & 0x1f) + 1, "%s", sensor->id_string);
++ snprintf(desc, sizeof(desc), "%.*s", (sensor->id_code & 0x1f) + 1, sensor->id_string);
+
+ if (verbose) {
+ printf("Sensor ID : %s (0x%x)\n",
+@@ -2164,7 +2164,7 @@ ipmi_sdr_print_sensor_mc_locator(struct ipmi_intf *intf,
+ return -1;
+
+ memset(desc, 0, sizeof (desc));
+- snprintf(desc, (mc->id_code & 0x1f) + 1, "%s", mc->id_string);
++ snprintf(desc, sizeof(desc), "%.*s", (mc->id_code & 0x1f) + 1, mc->id_string);
+
+ if (verbose == 0) {
+ if (csv_output)
+@@ -2257,7 +2257,7 @@ ipmi_sdr_print_sensor_generic_locator(struct ipmi_intf *intf,
+ char desc[17];
+
+ memset(desc, 0, sizeof (desc));
+- snprintf(desc, (dev->id_code & 0x1f) + 1, "%s", dev->id_string);
++ snprintf(desc, sizeof(desc), "%.*s", (dev->id_code & 0x1f) + 1, dev->id_string);
+
+ if (!verbose) {
+ if (csv_output)
+@@ -2314,7 +2314,7 @@ ipmi_sdr_print_sensor_fru_locator(struct ipmi_intf *intf,
+ char desc[17];
+
+ memset(desc, 0, sizeof (desc));
+- snprintf(desc, (fru->id_code & 0x1f) + 1, "%s", fru->id_string);
++ snprintf(desc, sizeof(desc), "%.*s", (fru->id_code & 0x1f) + 1, fru->id_string);
+
+ if (!verbose) {
+ if (csv_output)
+@@ -2518,35 +2518,43 @@ ipmi_sdr_print_name_from_rawentry(struct ipmi_intf *intf,uint16_t id,
+
+ int rc =0;
+ char desc[17];
++ const char *id_string;
++ uint8_t id_code;
+ memset(desc, ' ', sizeof (desc));
+
+ switch ( type) {
+ case SDR_RECORD_TYPE_FULL_SENSOR:
+ record.full = (struct sdr_record_full_sensor *) raw;
+- snprintf(desc, (record.full->id_code & 0x1f) +1, "%s",
+- (const char *)record.full->id_string);
++ id_code = record.full->id_code;
++ id_string = record.full->id_string;
+ break;
++
+ case SDR_RECORD_TYPE_COMPACT_SENSOR:
+ record.compact = (struct sdr_record_compact_sensor *) raw ;
+- snprintf(desc, (record.compact->id_code & 0x1f) +1, "%s",
+- (const char *)record.compact->id_string);
++ id_code = record.compact->id_code;
++ id_string = record.compact->id_string;
+ break;
++
+ case SDR_RECORD_TYPE_EVENTONLY_SENSOR:
+ record.eventonly = (struct sdr_record_eventonly_sensor *) raw ;
+- snprintf(desc, (record.eventonly->id_code & 0x1f) +1, "%s",
+- (const char *)record.eventonly->id_string);
+- break;
++ id_code = record.eventonly->id_code;
++ id_string = record.eventonly->id_string;
++ break;
++
+ case SDR_RECORD_TYPE_MC_DEVICE_LOCATOR:
+ record.mcloc = (struct sdr_record_mc_locator *) raw ;
+- snprintf(desc, (record.mcloc->id_code & 0x1f) +1, "%s",
+- (const char *)record.mcloc->id_string);
++ id_code = record.mcloc->id_code;
++ id_string = record.mcloc->id_string;
+ break;
++
+ default:
+ rc = -1;
+- break;
+- }
++ }
++ if (!rc) {
++ snprintf(desc, sizeof(desc), "%.*s", (id_code & 0x1f) + 1, id_string);
++ }
+
+- lprintf(LOG_INFO, "ID: 0x%04x , NAME: %-16s", id, desc);
++ lprintf(LOG_INFO, "ID: 0x%04x , NAME: %-16s", id, desc);
+ return rc;
+ }
+
+--
+1.9.1
+
diff --git a/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
index b7f1aa914..3de9a92a7 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
@@ -24,6 +24,12 @@ DEPENDS = "openssl readline ncurses"
SRC_URI = "${SOURCEFORGE_MIRROR}/ipmitool/ipmitool-${PV}.tar.bz2 \
file://0001-Migrate-to-openssl-1.1.patch \
+ file://0001-fru-Fix-buffer-overflow-vulnerabilities.patch \
+ file://0001-fru-Fix-buffer-overflow-in-ipmi_spd_print_fru.patch \
+ file://0002-session-Fix-buffer-overflow-in-ipmi_get_session_info.patch \
+ file://0003-channel-Fix-buffer-overflow.patch \
+ file://0004-lanp-Fix-buffer-overflows-in-get_lan_param_select.patch \
+ file://0005-fru-sdr-Fix-id_string-buffer-overflows.patch \
"
SRC_URI[md5sum] = "bab7ea104c7b85529c3ef65c54427aa3"
SRC_URI[sha256sum] = "0c1ba3b1555edefb7c32ae8cd6a3e04322056bc087918f07189eeedfc8b81e01"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch b/meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch
new file mode 100644
index 000000000..78c05ef32
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch
@@ -0,0 +1,25 @@
+From da668e5bf1a721797361ab866d09913ee8e157c4 Mon Sep 17 00:00:00 2001
+From: Jeremy Puhlman <jpuhlman@mvista.com>
+Date: Sat, 22 Feb 2020 04:37:04 +0000
+Subject: [PATCH] Prevent access times from changing resulting gzip md5sum
+
+Upstream-Status: Pending
+https://github.com/ipmitool/ipmitool/pull/186
+---
+ doc/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/doc/Makefile.am b/doc/Makefile.am
+index b792762..2c52ce6 100644
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -59,5 +59,5 @@ install:
+ ${INSTALL_DATA_SH} iuser.8 ${manto}
+ ${INSTALL_DATA_SH} iseltime.8 ${manto}
+ ${INSTALL_DATA_SH} bmclanpet.mib ${datato}
+- cd ${manto}; gzip -f *.8
++ cd ${manto}; gzip -nf *.8
+
+--
+2.13.3
+
diff --git a/meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb b/meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb
index 3e2634028..d0f3688a2 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb
@@ -21,6 +21,7 @@ PARALLEL_MAKE = ""
SRC_URI = "${SOURCEFORGE_MIRROR}/ipmiutil/ipmiutil-${PV}.tar.gz \
file://fix_systemd_path.patch \
+ file://0001-Prevent-access-times-from-changing-resulting-gzip-md.patch \
"
SRC_URI[md5sum] = "292d6df25cad678bb27e5c8cdc6748f9"
SRC_URI[sha256sum] = "58ccdbd5755d7dd72478756715af09e9c73330dfad2b91dbf03d2ac504b301a3"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb b/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
index 02c56bee6..3687c267e 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
@@ -18,11 +18,16 @@ SRC_URI += "file://run-ptest \
# we will append other kernel selftest in the future
# bpf was added in 4.10 with: https://github.com/torvalds/linux/commit/5aa5bd14c5f8660c64ceedf14a549781be47e53d
# if you have older kernel than that you need to remove it from PACKAGECONFIG
-PACKAGECONFIG ??= "bpf vm"
+PACKAGECONFIG ??= "bpf firmware vm"
PACKAGECONFIG_remove_x86 = "bpf"
PACKAGECONFIG_remove_arm = "bpf"
+# host ptrace.h is used to compile BPF target but mips ptrace.h is needed
+# progs/loop1.c:21:9: error: incomplete definition of type 'struct user_pt_regs'
+# m = PT_REGS_RC(ctx);
+PACKAGECONFIG_remove_qemumips = "bpf"
PACKAGECONFIG[bpf] = ",,elfutils libcap libcap-ng rsync-native,"
+PACKAGECONFIG[firmware] = ",,libcap, bash"
PACKAGECONFIG[vm] = ",,libcap,libgcc bash"
do_patch[depends] += "virtual/kernel:do_shared_workdir"
@@ -32,7 +37,7 @@ inherit linux-kernel-base kernel-arch ptest
S = "${WORKDIR}/${BP}"
TEST_LIST = "\
- ${@bb.utils.filter('PACKAGECONFIG', 'bpf vm', d)} \
+ ${@bb.utils.filter('PACKAGECONFIG', 'bpf firmware vm', d)} \
rtc \
"
@@ -40,7 +45,7 @@ EXTRA_OEMAKE = '\
CROSS_COMPILE=${TARGET_PREFIX} \
ARCH=${ARCH} \
CC="${CC}" \
- CLANG="clang -fno-stack-protector" \
+ CLANG="clang -fno-stack-protector -target ${TARGET_ARCH} ${TOOLCHAIN_OPTIONS}" \
AR="${AR}" \
LD="${LD}" \
DESTDIR="${D}" \
@@ -55,10 +60,13 @@ KERNEL_SELFTEST_SRC ?= "Makefile \
"
do_compile() {
+ if [ ${@bb.utils.contains('PACKAGECONFIG', 'bpf', 'True', 'False', d)} = 'True' ]; then
if [ ${@bb.utils.contains('DEPENDS', 'clang-native', 'True', 'False', d)} = 'False' ]; then
bbwarn "clang >= 6.0 with bpf support is needed with kernel 4.18+ so
either install it and add it to HOSTTOOLS, or add clang-native from meta-clang to dependency"
fi
+ fi
+
for i in ${TEST_LIST}
do
oe_runmake -C ${S}/tools/testing/selftests/${i}
diff --git a/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch b/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch
index 603a1475a..0cc368413 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch
+++ b/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch
@@ -48,10 +48,10 @@ index 39933fc..c0258a2 100755
--skip-cleanup)
echo "Skipping cleanup"
SKIPCLEANUP=1
-@@ -571,7 +576,7 @@ fi
+@@ -613,7 +613,7 @@ fi
# Don't check external file.
- # shellcheck disable=SC1091
- source /etc/os-release
+ # shellcheck disable=SC1090
+ [[ -f "$RELEASE_FILE" ]] && source "$RELEASE_FILE"
-DISTRO="$ID"
+DISTRO="${DISTRO:-${ID}}"
if [[ "$DISTRO" = fedora ]] || [[ "$DISTRO" = rhel ]] || [[ "$DISTRO" = ol ]] || [[ "$DISTRO" = centos ]]; then
diff --git a/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch_git.bb b/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch_git.bb
index 6326a2538..ba3983e6f 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch_git.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch_git.bb
@@ -2,9 +2,9 @@ require kpatch.inc
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-SRCREV = "2a29bc7dea9a7da12705c7b50315eee1acdd9156"
+SRCREV = "0c3c21930895f6582a5c9d9d797f7e11ff41ffb2"
-PV = "0.8.0"
+PV = "0.9.1"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/libpfm/libpfm4_4.10.1.bb b/meta-openembedded/meta-oe/recipes-kernel/libpfm/libpfm4_4.10.1.bb
index 9b43b4a97..ff56d4804 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/libpfm/libpfm4_4.10.1.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/libpfm/libpfm4_4.10.1.bb
@@ -23,6 +23,7 @@ UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/perfmon2/files/libpfm4/"
EXTRA_OEMAKE = "DESTDIR=\"${D}\" PREFIX=\"${prefix}\" LIBDIR=\"${libdir}\" LDCONFIG=\"true\""
EXTRA_OEMAKE_append_powerpc = " ARCH=\"powerpc\""
EXTRA_OEMAKE_append_powerpc64 = " ARCH=\"powerpc\" BITMODE=\"64\""
+EXTRA_OEMAKE_append_powerpc64le = " ARCH=\"powerpc\" BITMODE=\"64\""
S = "${WORKDIR}/libpfm-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch
index c0f82f321..ff093a72b 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch
+++ b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch
@@ -83,7 +83,7 @@ index 1fdb628..5dce589 100644
OBJ_PART=$(patsubst %.c,%.o,$(SRC_PART))
@@ -52,17 +53,17 @@ OBJ_ARCH=$(patsubst %.c,%.o,$(SRC_ARCH))
- LIBS = -ldw -lbz2 -lebl -ldl -lelf -lz
+ LIBS = -ldw -lbz2 -ldl -lelf -lz
ifneq ($(LINKTYPE), dynamic)
-LIBS := -static $(LIBS)
+LIBS := $(LIBS)
@@ -102,7 +102,7 @@ index 1fdb628..5dce589 100644
endif
LIBS := -lpthread $(LIBS)
-@@ -82,14 +83,14 @@ LIBS := $(LIBS) $(call try-run,\
+@@ -87,14 +88,14 @@ LIBS := $(LIBS) $(call try-run,\
all: makedumpfile
$(OBJ_PART): $(SRC_PART)
@@ -119,7 +119,7 @@ index 1fdb628..5dce589 100644
echo .TH MAKEDUMPFILE 8 \"$(DATE)\" \"makedumpfile v$(VERSION)\" \"Linux System Administrator\'s Manual\" > temp.8
grep -v "^.TH MAKEDUMPFILE 8" $(VPATH)makedumpfile.8 >> temp.8
mv temp.8 makedumpfile.8
-@@ -100,7 +101,7 @@ makedumpfile: $(SRC_BASE) $(OBJ_PART) $(OBJ_ARCH)
+@@ -105,7 +106,7 @@ makedumpfile: $(SRC_BASE) $(OBJ_PART) $(OBJ_ARCH)
gzip -c ./makedumpfile.conf.5 > ./makedumpfile.conf.5.gz
eppic_makedumpfile.so: extension_eppic.c
diff --git a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0003-build-Delete-libebl-from-required-libraries-during-l.patch b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0003-build-Delete-libebl-from-required-libraries-during-l.patch
deleted file mode 100644
index 40956434d..000000000
--- a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0003-build-Delete-libebl-from-required-libraries-during-l.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 460851c15e807d1a2515dfb985423f8a6624f4aa Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 8 Jan 2020 19:14:19 -0800
-Subject: [PATCH 3/3] build: Delete libebl from required libraries during link
-
-This is a static library from elfutils, which is not made available when
-static archives are disabled, this can result in link failures e.g.
-
-aarch64-yoe-linux-musl/9.2.0/ld: cannot find -lebl
-collect2: error: ld returned 1 exit status
-Makefile:93: recipe for target 'makedumpfile' failed
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 5dce589..c3a4054 100644
---- a/Makefile
-+++ b/Makefile
-@@ -51,7 +51,7 @@ OBJ_PART=$(patsubst %.c,%.o,$(SRC_PART))
- SRC_ARCH = arch/arm.c arch/arm64.c arch/x86.c arch/x86_64.c arch/ia64.c arch/ppc64.c arch/s390x.c arch/ppc.c arch/sparc64.c
- OBJ_ARCH=$(patsubst %.c,%.o,$(SRC_ARCH))
-
--LIBS = -ldw -lbz2 -lebl -ldl -lelf -lz
-+LIBS = -ldw -lbz2 -ldl -lelf -lz
- ifneq ($(LINKTYPE), dynamic)
- LIBS := $(LIBS)
- endif
---
-2.24.1
-
diff --git a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.6.bb b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.7.bb
index 6924e39d6..8d1676a4c 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.6.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.7.bb
@@ -24,10 +24,9 @@ SRC_URI = "\
${SOURCEFORGE_MIRROR}/makedumpfile/${BPN}-${PV}.tar.gz \
file://0001-makedumpfile-replace-hardcode-CFLAGS.patch \
file://0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch \
- file://0003-build-Delete-libebl-from-required-libraries-during-l.patch \
"
-SRC_URI[md5sum] = "6fd632b97ad78d9a0a3b0f0989094064"
-SRC_URI[sha256sum] = "d007eec05cb14f0155f2d06a0d4dc70d321dbb2aec65fccdce953145c8230324"
+SRC_URI[md5sum] = "808ef840ca49ca6bfde77c097cf429f5"
+SRC_URI[sha256sum] = "e702fbdf62b4cd829a76e46f3e24eb3fc7501918b85ebdcd8baef4f53d6ee2c8"
UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/makedumpfile/files/makedumpfile/"
UPSTREAM_CHECK_REGEX = "makedumpfile/(?P<pver>\d+(\.\d+)+)/"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc
index a9ee775d4..0e1e2ed8c 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc
+++ b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc
@@ -25,6 +25,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
file://root-home-dir.patch \
file://0001-Add-rmb-definition-for-NIOS2-architecture.patch \
file://0001-replace-sym_iterator-0-with-sym_iterator.patch \
+ file://0001-Use-new-bfd-APIs-from-2.34.patch \
"
UPSTREAM_CHECK_REGEX = "oprofile-(?P<pver>\d+(\.\d+)+)/"
UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/oprofile/files/oprofile/"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-Use-new-bfd-APIs-from-2.34.patch b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-Use-new-bfd-APIs-from-2.34.patch
new file mode 100644
index 000000000..faf56d116
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-Use-new-bfd-APIs-from-2.34.patch
@@ -0,0 +1,79 @@
+From 34745fb066a266ae6bbb15d08466d4d2cb6a2110 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 20 Feb 2020 08:11:04 -0800
+Subject: [PATCH] Use new bfd APIs from 2.34+
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libutil++/bfd_support.cpp | 10 +++++-----
+ opjitconv/create_bfd.c | 6 +++---
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/libutil++/bfd_support.cpp b/libutil++/bfd_support.cpp
+index fa904839..e53a1530 100644
+--- a/libutil++/bfd_support.cpp
++++ b/libutil++/bfd_support.cpp
+@@ -137,7 +137,7 @@ static bool get_build_id(bfd * ibfd, unsigned char * build_id)
+ }
+ }
+
+- bfd_size_type buildid_sect_size = bfd_section_size(ibfd, sect);
++ bfd_size_type buildid_sect_size = bfd_section_size(sect);
+ char * contents = (char *) xmalloc(buildid_sect_size);
+ errno = 0;
+ if (!bfd_get_section_contents(ibfd, sect,
+@@ -188,7 +188,7 @@ bool get_debug_link_info(bfd * ibfd, string & filename, unsigned long & crc32)
+ if (sect == NULL)
+ return false;
+
+- bfd_size_type debuglink_size = bfd_section_size(ibfd, sect);
++ bfd_size_type debuglink_size = bfd_section_size(sect);
+ char * contents = (char *) xmalloc(debuglink_size);
+ cverb << vbfd
+ << ".gnu_debuglink section has size " << debuglink_size << endl;
+@@ -346,7 +346,7 @@ void fixup_linenr(bfd * abfd, asection * section, asymbol ** syms,
+ // first restrict the search on a sensible range of vma, 16 is
+ // an intuitive value based on epilog code look
+ size_t max_search = 16;
+- size_t section_size = bfd_section_size(abfd, section);
++ size_t section_size = bfd_section_size(section);
+ if (pc + max_search > section_size)
+ max_search = section_size - pc;
+
+@@ -819,10 +819,10 @@ find_nearest_line(bfd_info const & b, op_bfd_symbol const & sym,
+ else
+ pc = (sym.value() + offset) - sym.filepos();
+
+- if ((bfd_get_section_flags(abfd, section) & SEC_ALLOC) == 0)
++ if ((bfd_section_flags(section) & SEC_ALLOC) == 0)
+ goto fail;
+
+- if (pc >= bfd_section_size(abfd, section))
++ if (pc >= bfd_section_size(section))
+ goto fail;
+
+ ret = bfd_find_nearest_line(abfd, section, syms, pc, &cfilename,
+diff --git a/opjitconv/create_bfd.c b/opjitconv/create_bfd.c
+index 48db143b..5c0e9152 100644
+--- a/opjitconv/create_bfd.c
++++ b/opjitconv/create_bfd.c
+@@ -86,12 +86,12 @@ asection * create_section(bfd * abfd, char const * section_name,
+ bfd_perror("bfd_make_section");
+ goto error;
+ }
+- bfd_set_section_vma(abfd, section, vma);
+- if (bfd_set_section_size(abfd, section, size) == FALSE) {
++ bfd_set_section_vma(section, vma);
++ if (bfd_set_section_size(section, size) == FALSE) {
+ bfd_perror("bfd_set_section_size");
+ goto error;
+ }
+- if (bfd_set_section_flags(abfd, section, flags) == FALSE) {
++ if (bfd_set_section_flags(section, flags) == FALSE) {
+ bfd_perror("bfd_set_section_flags");
+ goto error;
+ }
+--
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.3.0.bb b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.3.0.bb
index 4e5b6ca33..8242a835f 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.3.0.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.3.0.bb
@@ -1,6 +1,10 @@
require oprofile.inc
+COMPATIBLE_HOST_riscv64 = "null"
+COMPATIBLE_HOST_riscv32 = "null"
+
DEPENDS_append_powerpc64 = " libpfm4"
+DEPENDS_append_powerpc64le = " libpfm4"
SRC_URI[md5sum] = "bd998df5521ebedae31e71cd3fb6200b"
SRC_URI[sha256sum] = "95ded8bde1ec39922f0af015981a67aec63e025a501e4dc04cd65d38f73647e6"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb b/meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb
index 63a9fa88e..a1378866a 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb
@@ -12,11 +12,22 @@ SRC_URI = "git://github.com/intel/pm-graph.git \
"
S = "${WORKDIR}/git"
+# Apart from the listed RDEPENDS, analyze-suspend depends on some features
+# provided by the kernel. These options are:
+# - CONFIG_PM_DEBUG=y
+# - CONFIG_PM_SLEEP_DEBUG=y
+# - CONFIG_FTRACE=y
+# - CONFIG_FUNCTION_TRACER=y
+# - CONFIG_FUNCTION_GRAPH_TRACER=y
+
COMPATIBLE_HOST='(i.86|x86_64).*'
EXTRA_OEMAKE = "PREFIX=${prefix} DESTDIR=${D} BASELIB=${baselib}"
do_install() {
oe_runmake install
+ install -Dm 0755 ${S}/analyze_suspend.py ${D}${bindir}/analyze_suspend.py
}
RDEPENDS_${PN} += "python3-core python3-threading python3-datetime python3-compression"
+RPROVIDES_${PN} = "analyze-suspend"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/spidev-test/spidev-test.bb b/meta-openembedded/meta-oe/recipes-kernel/spidev-test/spidev-test.bb
new file mode 100644
index 000000000..662630291
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/spidev-test/spidev-test.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Test SPI devices"
+DESCRIPTION = "SPI testing utility using the spidev driver"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
+PROVIDES = "virtual/spidev-test"
+
+inherit bash-completion kernelsrc kernel-arch
+
+do_populate_lic[depends] += "virtual/kernel:do_patch"
+
+EXTRA_OEMAKE = "-C ${S}/tools/spi O=${B} CROSS=${TARGET_PREFIX} CC="${CC}" LD="${LD}" AR=${AR} ARCH=${ARCH}"
+
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake DESTDIR=${D} install
+}
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+python do_package_prepend() {
+ d.setVar('PKGV', d.getVar("KERNEL_VERSION", True).split("-")[0])
+}
+
+B = "${WORKDIR}/${BPN}-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/turbostat/turbostat_3.4.bb b/meta-openembedded/meta-oe/recipes-kernel/turbostat/turbostat_3.4.bb
index 5f6588de5..60040a47a 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/turbostat/turbostat_3.4.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/turbostat/turbostat_3.4.bb
@@ -21,7 +21,7 @@ SRC_URI += "\
"
PACKAGE_ARCH = "${MACHINE_ARCH}"
-DEPENDS = "virtual/kernel"
+DEPENDS = "libcap"
# This looks in S, so we better make sure there's
# something in the directory.
@@ -30,25 +30,28 @@ do_populate_lic[depends] = "${PN}:do_configure"
EXTRA_OEMAKE = '\
- CC="${CC}" \
- 'CFLAGS=-Wall -I${STAGING_KERNEL_DIR}/arch/x86/include/uapi ${LDFLAGS}' \
+ CC="${CC}" 'CFLAGS=-Wall ${LDFLAGS}' \
'
# If we build under STAGING_KERNEL_DIR, source will not be put
# into the dbg rpm. STAGING_KERNEL_DIR will exist by the time
# do_configure() is invoked so we can safely copy from it.
#
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
do_configure_prepend() {
mkdir -p ${S}
cp -r ${STAGING_KERNEL_DIR}/arch/x86/include/asm/msr-index.h ${S}
cp -r ${STAGING_KERNEL_DIR}/arch/x86/include/asm/intel-family.h ${S}
cp -r ${STAGING_KERNEL_DIR}/include/linux/bits.h ${S}
+ cp -r ${STAGING_KERNEL_DIR}/include/linux/const.h ${S}
cp -r ${STAGING_KERNEL_DIR}/tools/power/x86/turbostat/* ${S}
cp -r ${WORKDIR}/COPYING ${S}
}
do_compile() {
sed -i 's#<linux/bits.h>#"bits.h"#' msr-index.h
+ sed -i 's#<linux/const.h>#"const.h"#' bits.h
+ sed -i -e 's#<uapi/linux/const.h>#<linux/const.h>#' -e 's#_LINUX_CONST_H#_LINUX_CONST_H_KERNEL#' const.h
sed -i 's#MSRHEADER#"msr-index.h"#' turbostat.c
sed -i 's#INTEL_FAMILY_HEADER#"intel-family.h"#' turbostat.c
sed -i 's#\$(CC) \$(CFLAGS) \$< -o \$(BUILD_OUTPUT)/\$@#\$(CC) \$(CFLAGS) \$(LDFLAGS) \$< -o \$(BUILD_OUTPUT)/\$@#' Makefile
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb b/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb
index 9d311608e..21fa0bda1 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb
@@ -21,6 +21,7 @@ inherit autotools
# patches maintained by quilt. So manually apply them before applying other local
# patches. Also remove all temp files before leaving, because do_patch() will pop
# up all previously applied patches in the start
+do_patch[depends] += "quilt-native:do_populate_sysroot"
id3lib_do_patch() {
cd ${S}
# it's important that we only pop the existing patches when they've
@@ -33,14 +34,14 @@ id3lib_do_patch() {
# the test inside which we operate
QUILT_PATCHES=${S}/patches quilt pop -a
fi
- if [ -d ${S}/.pc-id3lib ]; then
+ if [ -d ${S}/.pc-${BPN} ]; then
rm -rf ${S}/.pc
- mv ${S}/.pc-id3lib ${S}/.pc
+ mv ${S}/.pc-${BPN} ${S}/.pc
QUILT_PATCHES=${S}/debian/patches quilt pop -a
rm -rf ${S}/.pc ${S}/debian
fi
QUILT_PATCHES=${S}/debian/patches quilt push -a
- mv ${S}/.pc ${S}/.pc-id3lib
+ mv ${S}/.pc ${S}/.pc-${BPN}
}
do_unpack[cleandirs] += "${S}"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_6.0.2.bb b/meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_6.1.1.bb
index 2ca74f6da..65f5b6adf 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_6.0.2.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_6.1.1.bb
@@ -4,8 +4,8 @@ LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=64e753fa7d1ca31632bc383da3b57c27"
SRC_URI = "http://download.videolan.org/pub/videolan/libdvdread/${PV}/libdvdread-${PV}.tar.bz2"
-SRC_URI[md5sum] = "49990935174bf6b2fa501e789c578135"
-SRC_URI[sha256sum] = "f91401af213b219cdde24b46c50a57f29301feb7f965678f1d7ed4632cc6feb0"
+SRC_URI[md5sum] = "09c7423568fb679279fd2a2bc6b10b6e"
+SRC_URI[sha256sum] = "3e357309a17c5be3731385b9eabda6b7e3fa010f46022a06f104553bf8e21796"
inherit autotools lib_package binconfig pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
deleted file mode 100644
index c327c45e6..000000000
--- a/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
+++ /dev/null
@@ -1,82 +0,0 @@
-SUMMARY = "Open Source multimedia player"
-DESCRIPTION = "mpv is a fork of mplayer2 and MPlayer. It shares some features with the former projects while introducing many more."
-SECTION = "multimedia"
-HOMEPAGE = "http://www.mpv.io/"
-DEPENDS = "zlib ffmpeg jpeg virtual/libx11 xsp libxv \
- libxscrnsaver libv4l libxinerama \
-"
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=91f1cb870c1cc2d31351a4d2595441cb"
-
-# While this item does not require it, it depends on ffmpeg which does
-LICENSE_FLAGS = "commercial"
-
-SRCREV_mpv = "4db82f04502cbcd20d9a975df9dfde91d8c389e3"
-SRC_URI = " \
- git://github.com/mpv-player/mpv;name=mpv \
- http://www.freehackers.org/~tnagy/release/waf-1.8.12;name=waf;downloadfilename=waf;subdir=git \
-"
-SRC_URI[waf.md5sum] = "cef4ee82206b1843db082d0b0506bf71"
-SRC_URI[waf.sha256sum] = "01bf2beab2106d1558800c8709bc2c8e496d3da4a2ca343fe091f22fca60c98b"
-
-S = "${WORKDIR}/git"
-
-inherit waf pkgconfig pythonnative features_check
-
-LUA ?= "lua"
-LUA_mips64 = ""
-LUA_aarch64 = ""
-LUA_powerpc64 = ""
-LUA_powerpc = ""
-
-# Note: both lua and libass are required to get on-screen-display (controls)
-PACKAGECONFIG ??= " \
- ${LUA} \
- libass \
- ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
-"
-
-PACKAGECONFIG_remove_aarch64 = "lua"
-PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm"
-PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/mesa"
-PACKAGECONFIG[lua] = "--enable-lua,--disable-lua,lua luajit"
-PACKAGECONFIG[libass] = "--enable-libass,--disable-libass,libass"
-PACKAGECONFIG[libarchive] = "--enable-libarchive,--disable-libarchive,libarchive"
-PACKAGECONFIG[jack] = "--enable-jack, --disable-jack, jack"
-PACKAGECONFIG[vaapi] = "--enable-vaapi, --disable-vaapi,libva"
-PACKAGECONFIG[vdpau] = "--enable-vdpau, --disable-vdpau,libvdpau"
-PACKAGECONFIG[wayland] = "--enable-wayland, --disable-wayland,wayland libxkbcommon"
-
-SIMPLE_TARGET_SYS = "${@'${TARGET_SYS}'.replace('${TARGET_VENDOR}', '')}"
-
-EXTRA_OECONF = " \
- --prefix=${prefix} \
- --target=${SIMPLE_TARGET_SYS} \
- --confdir=${sysconfdir} \
- --datadir=${datadir} \
- --disable-manpage-build \
- --disable-gl \
- --disable-libsmbclient \
- --disable-encoding \
- --disable-libbluray \
- --disable-dvdread \
- --disable-dvdnav \
- --disable-cdda \
- --disable-uchardet \
- --disable-rubberband \
- --disable-lcms2 \
- --disable-vapoursynth \
- --disable-vapoursynth-lazy \
- ${PACKAGECONFIG_CONFARGS} \
-"
-
-adjust_waf_perms() {
- chmod +x ${S}/waf
-}
-
-do_patch[postfuncs] += "adjust_waf_perms"
-
-FILES_${PN} += "${datadir}/icons"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb
new file mode 100644
index 000000000..f7b0f30fb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb
@@ -0,0 +1,117 @@
+SUMMARY = "Open Source multimedia player"
+DESCRIPTION = "mpv is a fork of mplayer2 and MPlayer. It shares some features with the former projects while introducing many more."
+SECTION = "multimedia"
+HOMEPAGE = "http://www.mpv.io/"
+
+DEPENDS = "zlib ffmpeg jpeg libv4l"
+
+DEPENDS += " \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' virtual/libx11 xsp libxv libxscrnsaver libxinerama', '', d)} \
+"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=91f1cb870c1cc2d31351a4d2595441cb"
+
+# While this item does not require it, it depends on ffmpeg which does
+LICENSE_FLAGS = "commercial"
+
+SRCREV_mpv = "70b991749df389bcc0a4e145b5687233a03b4ed7"
+SRC_URI = " \
+ git://github.com/mpv-player/mpv;name=mpv \
+"
+
+S = "${WORKDIR}/git"
+
+inherit waf pkgconfig features_check mime-xdg
+
+LUA ?= "lua"
+LUA_mips64 = ""
+LUA_aarch64 = ""
+LUA_powerpc64 = ""
+LUA_powerpc64le = ""
+LUA_riscv64 = ""
+LUA_riscv32 = ""
+LUA_powerpc = ""
+
+# Note: both lua and libass are required to get on-screen-display (controls)
+PACKAGECONFIG ??= " \
+ ${LUA} \
+ libass \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)} \
+"
+
+PACKAGECONFIG_remove_aarch64 = "lua"
+PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11"
+PACKAGECONFIG[xv] = "--enable-xv,--disable-xv,libxv"
+PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl"
+PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,"
+PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm"
+PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/libgbm"
+PACKAGECONFIG[lua] = "--enable-lua,--disable-lua,lua luajit"
+PACKAGECONFIG[libass] = "--enable-libass,--disable-libass,libass"
+PACKAGECONFIG[libarchive] = "--enable-libarchive,--disable-libarchive,libarchive"
+PACKAGECONFIG[jack] = "--enable-jack, --disable-jack, jack"
+PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva"
+PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
+PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland wayland-native libxkbcommon"
+
+python __anonymous() {
+ packageconfig = (d.getVar("PACKAGECONFIG") or "").split()
+ extras = []
+ if "x11" in packageconfig and "opengl" in packageconfig:
+ extras.append(" --enable-gl-x11")
+ if "x11" in packageconfig and "egl" in packageconfig:
+ extras.append(" --enable-egl-x11")
+ if "egl" in packageconfig and "drm" in packageconfig:
+ extras.append(" --enable-egl-drm")
+ if "vaapi" in packageconfig and "x11" in packageconfig:
+ extras.append(" --enable-vaapi-x11")
+ if "vaapi" in packageconfig and "drm" in packageconfig:
+ extras.append(" --enable-vaapi-drm")
+ if "vaapi" in packageconfig and "x11" in packageconfig and "egl" in packageconfig:
+ extras.append(" --enable-vaapi-x-egl")
+ if "vdpau" in packageconfig and "opengl" in packageconfig and "x11" in packageconfig:
+ extras.append(" --enable-vdpau-gl-x11")
+ if "wayland" in packageconfig and "opengl" in packageconfig:
+ extras.append(" --enable-gl-wayland")
+ if "wayland" in packageconfig and "vaapi" in packageconfig:
+ extras.append(" --enable-vaapi-wayland")
+ if extras:
+ d.appendVar("EXTRA_OECONF", "".join(extras))
+}
+
+SIMPLE_TARGET_SYS = "${@'${TARGET_SYS}'.replace('${TARGET_VENDOR}', '')}"
+
+EXTRA_OECONF = " \
+ --prefix=${prefix} \
+ --target=${SIMPLE_TARGET_SYS} \
+ --confdir=${sysconfdir} \
+ --datadir=${datadir} \
+ --disable-manpage-build \
+ --disable-libsmbclient \
+ --disable-libbluray \
+ --disable-dvdnav \
+ --disable-cdda \
+ --disable-uchardet \
+ --disable-rubberband \
+ --disable-lcms2 \
+ --disable-vapoursynth \
+ ${PACKAGECONFIG_CONFARGS} \
+"
+
+do_patch[postfuncs] += "get_waf"
+
+get_waf() {
+ cd ${S}
+ ./bootstrap.py
+ sed -i -e 's|/usr/bin/env python|/usr/bin/env python3|g' ${S}/waf
+ cd -
+}
+
+FILES_${PN} += " \
+ ${datadir}/icons \
+ ${datadir}/zsh \
+ ${datadir}/bash-completion \
+ "
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/pipewire/pipewire-0.2_git.bb b/meta-openembedded/meta-oe/recipes-multimedia/pipewire/pipewire-0.2_git.bb
new file mode 100644
index 000000000..bcb3015f8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-multimedia/pipewire/pipewire-0.2_git.bb
@@ -0,0 +1,65 @@
+SUMMARY = "Multimedia processing server for Linux"
+AUTHOR = "Wim Taymans <wtaymans@redhat.com>"
+HOMEPAGE = "https://pipewire.org"
+SECTION = "multimedia"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE;md5=d8153c6e65986f862a0550ca74a3ed73 \
+ file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+"
+DEPENDS = "alsa-lib dbus udev"
+SRCREV = "14c11c0fe4d366bad4cfecdee97b6652ff9ed63d"
+PV = "0.2.7"
+
+SRC_URI = "git://github.com/PipeWire/pipewire"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig systemd manpages
+
+PACKAGECONFIG ??= "\
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+ gstreamer \
+"
+
+PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd"
+PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxml-parser-perl-native"
+
+PACKAGES =+ "\
+ ${PN}-spa-plugins \
+ ${PN}-alsa \
+ ${PN}-config \
+ gstreamer1.0-${PN} \
+ lib${PN} \
+ lib${PN}-modules \
+"
+
+RDEPENDS_lib${PN} += "lib${PN}-modules ${PN}-spa-plugins"
+
+FILES_${PN} = "\
+ ${sysconfdir}/pipewire/pipewire.conf \
+ ${bindir}/pipewire* \
+ ${systemd_user_unitdir}/* \
+"
+FILES_lib${PN} = "\
+ ${libdir}/libpipewire-*.so.* \
+"
+FILES_lib${PN}-modules = "\
+ ${libdir}/pipewire-*/* \
+"
+FILES_${PN}-spa-plugins = "\
+ ${bindir}/spa-* \
+ ${libdir}/spa/* \
+"
+FILES_${PN}-alsa = "\
+ ${libdir}/alsa-lib/* \
+ ${datadir}/alsa/alsa.conf.d/50-pipewire.conf \
+"
+FILES_gstreamer1.0-${PN} = "\
+ ${libdir}/gstreamer-1.0/* \
+"
+
+CONFFILES_${PN} = "\
+ ${sysconfdir}/pipewire/pipewire.conf \
+"
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/pipewire/pipewire_git.bb b/meta-openembedded/meta-oe/recipes-multimedia/pipewire/pipewire_git.bb
index bcb3015f8..1a415c13c 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/pipewire/pipewire_git.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/pipewire/pipewire_git.bb
@@ -2,14 +2,14 @@ SUMMARY = "Multimedia processing server for Linux"
AUTHOR = "Wim Taymans <wtaymans@redhat.com>"
HOMEPAGE = "https://pipewire.org"
SECTION = "multimedia"
-LICENSE = "LGPL-2.1"
+LICENSE = "MIT"
LIC_FILES_CHKSUM = " \
- file://LICENSE;md5=d8153c6e65986f862a0550ca74a3ed73 \
- file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+ file://LICENSE;md5=e2c0b7d86d04e716a3c4c9ab34260e69 \
+ file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a \
"
DEPENDS = "alsa-lib dbus udev"
-SRCREV = "14c11c0fe4d366bad4cfecdee97b6652ff9ed63d"
-PV = "0.2.7"
+SRCREV = "74a1632f0720886d5b3b6c23ee8fcd6c03ca7aac"
+PV = "0.3.1"
SRC_URI = "git://github.com/PipeWire/pipewire"
@@ -18,13 +18,21 @@ S = "${WORKDIR}/git"
inherit meson pkgconfig systemd manpages
PACKAGECONFIG ??= "\
- ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
- gstreamer \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio systemd vulkan', d)} \
+ jack gstreamer \
"
-PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd"
-PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[bluez] = "-Dbluez5=true,-Dbluez5=false,bluez5 sbc"
+PACKAGECONFIG[jack] = "-Djack=true,-Djack=false,jack"
+PACKAGECONFIG[gstreamer] = "-Dgstreamer=true,-Dgstreamer=false,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base"
PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxml-parser-perl-native"
+PACKAGECONFIG[pulseaudio] = "-Dpipewire-pulseaudio=true,-Dpipewire-pulseaudio=false,pulseaudio"
+PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd"
+PACKAGECONFIG[vulkan] = "-Dvulkan=true,-Dvulkan=false,vulkan-loader"
+
+LDFLAGS_append_mipsarch = " -latomic"
+LDFLAGS_append_x86 = " -latomic"
PACKAGES =+ "\
${PN}-spa-plugins \
@@ -33,28 +41,31 @@ PACKAGES =+ "\
gstreamer1.0-${PN} \
lib${PN} \
lib${PN}-modules \
+ lib${PN}-jack \
"
RDEPENDS_lib${PN} += "lib${PN}-modules ${PN}-spa-plugins"
FILES_${PN} = "\
${sysconfdir}/pipewire/pipewire.conf \
+ ${bindir}/pw-* \
${bindir}/pipewire* \
${systemd_user_unitdir}/* \
"
FILES_lib${PN} = "\
${libdir}/libpipewire-*.so.* \
+ ${libdir}/libjack-*.so.* \
+ ${libdir}/libpulse-*.so.* \
"
FILES_lib${PN}-modules = "\
${libdir}/pipewire-*/* \
"
FILES_${PN}-spa-plugins = "\
${bindir}/spa-* \
- ${libdir}/spa/* \
+ ${libdir}/spa-*/* \
"
FILES_${PN}-alsa = "\
${libdir}/alsa-lib/* \
- ${datadir}/alsa/alsa.conf.d/50-pipewire.conf \
"
FILES_gstreamer1.0-${PN} = "\
${libdir}/gstreamer-1.0/* \
diff --git a/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb b/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb
index 9fdbbf254..f74ebda5f 100644
--- a/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb
+++ b/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb
@@ -2,7 +2,7 @@ SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices"
SECTION = "console/network"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=01764c35ae34d9521944bb6ab312af53"
-DEPENDS = "dbus ncurses python python3 pps-tools"
+DEPENDS = "dbus ncurses python3 pps-tools"
PROVIDES = "virtual/gpsd"
SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \
@@ -12,7 +12,7 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \
SRC_URI[md5sum] = "b3bf88706794eb8e5f2c2543bf7ba87b"
SRC_URI[sha256sum] = "27dd24d45b2ac69baab7933da2bf6ae5fb0be90130f67e753c110a3477155f39"
-inherit scons update-rc.d python-dir pythonnative systemd update-alternatives
+inherit scons update-rc.d python3-dir python3native systemd update-alternatives
INITSCRIPT_PACKAGES = "gpsd-conf"
INITSCRIPT_NAME = "gpsd"
@@ -84,7 +84,7 @@ do_install_append() {
install -m 0644 ${S}/systemd/${BPN}.socket ${D}${systemd_unitdir}/system/${BPN}.socket
}
-PACKAGES =+ "libgps libgpsd python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils"
+PACKAGES =+ "libgps libgpsd python3-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils"
RPROVIDES_${PN}-dbg += "python-pygps-dbg"
@@ -114,17 +114,17 @@ FILES_gpsd-gpsctl = "${bindir}/gpsctl"
SUMMARY_gps-utils = "Utils used for simulating, monitoring,... a GPS"
# Python files are required for gps/fake, required for gpsfake.
FILES_gps-utils = "${bindir}/* ${libdir}/gps/*.py ${libdir}/gps/*.so"
-RDEPENDS_gps-utils = "python-pygps"
-
-SUMMARY_python-pygps = "Python bindings to gpsd"
-FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/* ${libdir}/gps/*.py ${libdir}/*.egg-info"
-RDEPENDS_python-pygps = " \
- python-core \
- python-io \
- python-threading \
- python-terminal \
+RDEPENDS_gps-utils = "python3-pygps"
+
+SUMMARY_python3-pygps = "Python bindings to gpsd"
+FILES_python3-pygps = "${PYTHON_SITEPACKAGES_DIR}/* ${libdir}/gps/*.py ${libdir}/*.egg-info"
+RDEPENDS_python3-pygps = " \
+ python3-core \
+ python3-io \
+ python3-threading \
+ python3-terminal \
gpsd \
- python-json"
+ python3-json"
RPROVIDES_${PN} += "${PN}-systemd"
RREPLACES_${PN} += "${PN}-systemd"
diff --git a/meta-openembedded/meta-oe/recipes-navigation/proj/proj_6.2.0.bb b/meta-openembedded/meta-oe/recipes-navigation/proj/proj_7.0.0.bb
index fa269d01b..44674244e 100644
--- a/meta-openembedded/meta-oe/recipes-navigation/proj/proj_6.2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-navigation/proj/proj_7.0.0.bb
@@ -6,11 +6,14 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=74d9aaec5fa0cd734341e8c4dc91b608"
SRC_URI = "http://download.osgeo.org/${BPN}/${BP}.tar.gz"
-SRC_URI[md5sum] = "5cde556545828beaffbe50b1bb038480"
-SRC_URI[sha256sum] = "b300c0f872f632ad7f8eb60725edbf14f0f8f52db740a3ab23e7b94f1cd22a50"
+SRC_URI[sha256sum] = "ee0e14c1bd2f9429b1a28999240304c0342ed739ebaea3d4ff44c585b1097be8"
-DEPENDS = "sqlite3 sqlite3-native"
+DEPENDS = "sqlite3 sqlite3-native tiff"
inherit autotools pkgconfig lib_package
+PACKAGECONFIG ?= "curl"
+
+PACKAGECONFIG[curl] = ",--without-curl,curl"
+
FILES_${PN} += "${datadir}/proj"
diff --git a/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters_1.26.2.bb b/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters_1.26.2.bb
deleted file mode 100644
index d76ef0901..000000000
--- a/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters_1.26.2.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-include cups-filters.inc
-
-SRC_URI[md5sum] = "970095596bf2b8cfe91ac91c0b51297a"
-SRC_URI[sha256sum] = "0069aef1358522f1901a64749ec753d28a2d6a832758bce58ffcd722b28c0e66"
diff --git a/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters_1.27.2.bb b/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters_1.27.2.bb
new file mode 100644
index 000000000..35c4a929b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-printing/cups/cups-filters_1.27.2.bb
@@ -0,0 +1,4 @@
+include cups-filters.inc
+
+SRC_URI[md5sum] = "90ebcae31f2eabd802236408646b1dd9"
+SRC_URI[sha256sum] = "174a2a5c919bf88c63ced692a2170add6c2cd70ff06c49bcea32e9cf56960492"
diff --git a/meta-openembedded/meta-oe/recipes-security/nmap/files/0001-Make-ndiff-support-python3.patch b/meta-openembedded/meta-oe/recipes-security/nmap/files/0001-Make-ndiff-support-python3.patch
new file mode 100644
index 000000000..2ca18b0ef
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-security/nmap/files/0001-Make-ndiff-support-python3.patch
@@ -0,0 +1,1720 @@
+From bbbf474b2ebdbdac4d557e3351210f3fe2175c33 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Fri, 14 Feb 2020 10:09:55 +0000
+Subject: [PATCH] Make ndiff support python3
+
+Backport a patch from debian to make ndiff support
+python3.
+
+Refer to https://sources.debian.org/data/main/n/nmap/7.80+dfsg1-2/debian/patches/0004-Python3-port-of-ndiff.patch
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ Makefile.in | 12 +-
+ ndiff/ndiff.py | 495 +++++++++++++++++-----------------
+ ndiff/ndifftest.py | 94 +++----
+ ndiff/scripts/ndiff | 14 +-
+ ndiff/setup.py | 34 +--
+ ndiff/test-scans/anonymize.py | 18 +-
+ 6 files changed, 333 insertions(+), 334 deletions(-)
+ mode change 100644 => 100755 ndiff/setup.py
+
+diff --git a/Makefile.in b/Makefile.in
+index eee8863..32f86ba 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -35,6 +35,7 @@ ZENMAPDIR = @ZENMAPDIR@
+ NDIFFDIR = @NDIFFDIR@
+ NPINGDIR = @NPINGDIR@
+ PYTHON = @PYTHON@
++PYTHON3 = /usr/bin/env python3
+ DEFS = @DEFS@ -DNMAP_PLATFORM=\"$(NMAP_PLATFORM)\" -DNMAPDATADIR=\"$(nmapdatadir)\"
+ # With GCC, add extra security checks to source code.
+ # http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html
+@@ -260,7 +261,7 @@ clean-zenmap:
+ rm -f $(ZENMAPDIR)/zenmapCore/Name.pyc
+
+ clean-ndiff:
+- -cd $(NDIFFDIR) && $(PYTHON) setup.py clean --all
++ -cd $(NDIFFDIR) && $(PYTHON3) setup.py clean --all
+
+ clean-nping:
+ -cd $(NPINGDIR) && $(MAKE) clean
+@@ -368,6 +369,7 @@ tests/check_dns: $(OBJS)
+ # this as the location of the interpreter whenever we're not doing a
+ # local installation.
+ DEFAULT_PYTHON_PATH = /usr/bin/env python
++DEFAULT_PYTHON3_PATH = /usr/bin/env python3
+
+ build-zenmap: $(ZENMAPDIR)/setup.py $(ZENMAPDIR)/zenmapCore/Version.py
+ # When DESTDIR is defined, assume we're building an executable
+@@ -388,13 +390,13 @@ install-zenmap: $(ZENMAPDIR)/setup.py
+ ln -sf zenmap $(DESTDIR)$(bindir)/xnmap
+
+ build-ndiff:
+- cd $(NDIFFDIR) && $(PYTHON) setup.py build $(if $(DESTDIR),--executable "$(DEFAULT_PYTHON_PATH)")
++ cd $(NDIFFDIR) && $(PYTHON3) setup.py build $(if $(DESTDIR),--executable "$(DEFAULT_PYTHON3_PATH)")
+
+ build-nping: $(NPINGDIR)/Makefile build-nbase build-nsock build-netutil $(NPINGDIR)/nping.h @DNET_BUILD@ @PCAP_BUILD@
+ @cd $(NPINGDIR) && $(MAKE)
+
+ install-ndiff:
+- cd $(NDIFFDIR) && $(PYTHON) setup.py install --prefix "$(prefix)" --install-lib="${PYTHON_SITEPACKAGES_DIR}" $(if $(DESTDIR),--root "$(DESTDIR)")
++ cd $(NDIFFDIR) && $(PYTHON3) setup.py install --prefix "$(prefix)" --install-lib="${PYTHON_SITEPACKAGES_DIR}" $(if $(DESTDIR),--root "$(DESTDIR)")
+
+ NSE_FILES = scripts/script.db scripts/*.nse
+ NSE_LIB_LUA_FILES = nselib/*.lua nselib/*.luadoc
+@@ -443,7 +445,7 @@ uninstall-zenmap:
+ rm -f $(DESTDIR)$(bindir)/xnmap
+
+ uninstall-ndiff:
+- cd $(NDIFFDIR) && $(PYTHON) setup.py uninstall
++ cd $(NDIFFDIR) && $(PYTHON3) setup.py uninstall
+
+ uninstall-ncat:
+ @cd $(NCATDIR) && $(MAKE) uninstall
+@@ -458,7 +460,7 @@ check-ncat:
+ @cd $(NCATDIR) && $(MAKE) check
+
+ check-ndiff:
+- @cd $(NDIFFDIR) && $(PYTHON) ndifftest.py
++ @cd $(NDIFFDIR) && $(PYTHON3) ndifftest.py
+
+ check-nsock:
+ @cd $(NSOCKDIR)/src && $(MAKE) check
+diff --git a/ndiff/ndiff.py b/ndiff/ndiff.py
+index 043273f..abbd1c5 100755
+--- a/ndiff/ndiff.py
++++ b/ndiff/ndiff.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ # Ndiff
+ #
+@@ -26,11 +26,11 @@ xml.__path__ = [x for x in xml.__path__ if "_xmlplus" not in x]
+ import xml.sax
+ import xml.sax.saxutils
+ import xml.dom.minidom
+-from StringIO import StringIO
++from io import StringIO
+
+ verbose = False
+
+-NDIFF_XML_VERSION = u"1"
++NDIFF_XML_VERSION = "1"
+
+
+ class OverrideEntityResolver(xml.sax.handler.EntityResolver):
+@@ -78,35 +78,35 @@ class Scan(object):
+ def write_nmaprun_open(self, writer):
+ attrs = {}
+ if self.scanner is not None:
+- attrs[u"scanner"] = self.scanner
++ attrs["scanner"] = self.scanner
+ if self.args is not None:
+- attrs[u"args"] = self.args
++ attrs["args"] = self.args
+ if self.start_date is not None:
+- attrs[u"start"] = "%d" % time.mktime(self.start_date.timetuple())
+- attrs[u"startstr"] = self.start_date.strftime(
++ attrs["start"] = "%d" % time.mktime(self.start_date.timetuple())
++ attrs["startstr"] = self.start_date.strftime(
+ "%a %b %d %H:%M:%S %Y")
+ if self.version is not None:
+- attrs[u"version"] = self.version
+- writer.startElement(u"nmaprun", attrs)
++ attrs["version"] = self.version
++ writer.startElement("nmaprun", attrs)
+
+ def write_nmaprun_close(self, writer):
+- writer.endElement(u"nmaprun")
++ writer.endElement("nmaprun")
+
+ def nmaprun_to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+- elem = document.createElement(u"nmaprun")
++ elem = document.createElement("nmaprun")
+ if self.scanner is not None:
+- elem.setAttribute(u"scanner", self.scanner)
++ elem.setAttribute("scanner", self.scanner)
+ if self.args is not None:
+- elem.setAttribute(u"args", self.args)
++ elem.setAttribute("args", self.args)
+ if self.start_date is not None:
+ elem.setAttribute(
+- u"start", "%d" % time.mktime(self.start_date.timetuple()))
++ "start", "%d" % time.mktime(self.start_date.timetuple()))
+ elem.setAttribute(
+- u"startstr",
++ "startstr",
+ self.start_date.strftime("%a %b %d %H:%M:%S %Y"))
+ if self.version is not None:
+- elem.setAttribute(u"version", self.version)
++ elem.setAttribute("version", self.version)
+ frag.appendChild(elem)
+ return frag
+
+@@ -136,17 +136,17 @@ class Host(object):
+
+ def format_name(self):
+ """Return a human-readable identifier for this host."""
+- address_s = u", ".join(a.s for a in sorted(self.addresses))
+- hostname_s = u", ".join(sorted(self.hostnames))
++ address_s = ", ".join(a.s for a in sorted(self.addresses))
++ hostname_s = ", ".join(sorted(self.hostnames))
+ if len(hostname_s) > 0:
+ if len(address_s) > 0:
+- return u"%s (%s)" % (hostname_s, address_s)
++ return "%s (%s)" % (hostname_s, address_s)
+ else:
+ return hostname_s
+ elif len(address_s) > 0:
+ return address_s
+ else:
+- return u"<no name>"
++ return "<no name>"
+
+ def add_port(self, port):
+ self.ports[port.spec] = port
+@@ -163,46 +163,46 @@ class Host(object):
+ return state is None or state in self.extraports
+
+ def extraports_string(self):
+- list = [(count, state) for (state, count) in self.extraports.items()]
++ locallist = [(count, state) for (state, count) in list(self.extraports.items())]
+ # Reverse-sort by count.
+- list.sort(reverse=True)
+- return u", ".join(
+- [u"%d %s ports" % (count, state) for (count, state) in list])
++ locallist.sort(reverse=True)
++ return ", ".join(
++ ["%d %s ports" % (count, state) for (count, state) in locallist])
+
+ def state_to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+ if self.state is not None:
+- elem = document.createElement(u"status")
+- elem.setAttribute(u"state", self.state)
++ elem = document.createElement("status")
++ elem.setAttribute("state", self.state)
+ frag.appendChild(elem)
+ return frag
+
+ def hostname_to_dom_fragment(self, document, hostname):
+ frag = document.createDocumentFragment()
+- elem = document.createElement(u"hostname")
+- elem.setAttribute(u"name", hostname)
++ elem = document.createElement("hostname")
++ elem.setAttribute("name", hostname)
+ frag.appendChild(elem)
+ return frag
+
+ def extraports_to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+- for state, count in self.extraports.items():
+- elem = document.createElement(u"extraports")
+- elem.setAttribute(u"state", state)
+- elem.setAttribute(u"count", unicode(count))
++ for state, count in list(self.extraports.items()):
++ elem = document.createElement("extraports")
++ elem.setAttribute("state", state)
++ elem.setAttribute("count", str(count))
+ frag.appendChild(elem)
+ return frag
+
+ def os_to_dom_fragment(self, document, os):
+ frag = document.createDocumentFragment()
+- elem = document.createElement(u"osmatch")
+- elem.setAttribute(u"name", os)
++ elem = document.createElement("osmatch")
++ elem.setAttribute("name", os)
+ frag.appendChild(elem)
+ return frag
+
+ def to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+- elem = document.createElement(u"host")
++ elem = document.createElement("host")
+
+ if self.state is not None:
+ elem.appendChild(self.state_to_dom_fragment(document))
+@@ -211,13 +211,13 @@ class Host(object):
+ elem.appendChild(addr.to_dom_fragment(document))
+
+ if len(self.hostnames) > 0:
+- hostnames_elem = document.createElement(u"hostnames")
++ hostnames_elem = document.createElement("hostnames")
+ for hostname in self.hostnames:
+ hostnames_elem.appendChild(
+ self.hostname_to_dom_fragment(document, hostname))
+ elem.appendChild(hostnames_elem)
+
+- ports_elem = document.createElement(u"ports")
++ ports_elem = document.createElement("ports")
+ ports_elem.appendChild(self.extraports_to_dom_fragment(document))
+ for port in sorted(self.ports.values()):
+ if not self.is_extraports(port.state):
+@@ -226,13 +226,13 @@ class Host(object):
+ elem.appendChild(ports_elem)
+
+ if len(self.os) > 0:
+- os_elem = document.createElement(u"os")
++ os_elem = document.createElement("os")
+ for os in self.os:
+ os_elem.appendChild(self.os_to_dom_fragment(document, os))
+ elem.appendChild(os_elem)
+
+ if len(self.script_results) > 0:
+- hostscript_elem = document.createElement(u"hostscript")
++ hostscript_elem = document.createElement("hostscript")
+ for sr in self.script_results:
+ hostscript_elem.appendChild(sr.to_dom_fragment(document))
+ elem.appendChild(hostscript_elem)
+@@ -246,7 +246,7 @@ class Address(object):
+ self.s = s
+
+ def __eq__(self, other):
+- return self.__cmp__(other) == 0
++ return self.sort_key() == other.sort_key()
+
+ def __ne__(self, other):
+ return not self.__eq__(other)
+@@ -254,8 +254,8 @@ class Address(object):
+ def __hash__(self):
+ return hash(self.sort_key())
+
+- def __cmp__(self, other):
+- return cmp(self.sort_key(), other.sort_key())
++ def __lt__(self, other):
++ return self.sort_key() < other.sort_key()
+
+ def __str__(self):
+ return str(self.s)
+@@ -264,21 +264,21 @@ class Address(object):
+ return self.s
+
+ def new(type, s):
+- if type == u"ipv4":
++ if type == "ipv4":
+ return IPv4Address(s)
+- elif type == u"ipv6":
++ elif type == "ipv6":
+ return IPv6Address(s)
+- elif type == u"mac":
++ elif type == "mac":
+ return MACAddress(s)
+ else:
+- raise ValueError(u"Unknown address type %s." % type)
++ raise ValueError("Unknown address type %s." % type)
+ new = staticmethod(new)
+
+ def to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+- elem = document.createElement(u"address")
+- elem.setAttribute(u"addr", self.s)
+- elem.setAttribute(u"addrtype", self.type)
++ elem = document.createElement("address")
++ elem.setAttribute("addr", self.s)
++ elem.setAttribute("addrtype", self.type)
+ frag.appendChild(elem)
+ return frag
+
+@@ -287,21 +287,21 @@ class Address(object):
+
+
+ class IPv4Address(Address):
+- type = property(lambda self: u"ipv4")
++ type = property(lambda self: "ipv4")
+
+ def sort_key(self):
+ return (0, self.s)
+
+
+ class IPv6Address(Address):
+- type = property(lambda self: u"ipv6")
++ type = property(lambda self: "ipv6")
+
+ def sort_key(self):
+ return (1, self.s)
+
+
+ class MACAddress(Address):
+- type = property(lambda self: u"mac")
++ type = property(lambda self: "mac")
+
+ def sort_key(self):
+ return (2, self.s)
+@@ -320,28 +320,25 @@ class Port(object):
+
+ def state_string(self):
+ if self.state is None:
+- return u"unknown"
++ return "unknown"
+ else:
+- return unicode(self.state)
++ return str(self.state)
+
+ def spec_string(self):
+- return u"%d/%s" % self.spec
++ return "%d/%s" % self.spec
+
+- def __cmp__(self, other):
+- d = cmp(self.spec, other.spec)
+- if d != 0:
+- return d
+- return cmp((self.spec, self.service, self.script_results),
+- (other.spec, other.service, other.script_results))
++ def __lt__(self, other):
++ return (self.spec, self.service, self.script_results) < (
++ other.spec, other.service, other.script_results)
+
+ def to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+- elem = document.createElement(u"port")
+- elem.setAttribute(u"portid", unicode(self.spec[0]))
+- elem.setAttribute(u"protocol", self.spec[1])
++ elem = document.createElement("port")
++ elem.setAttribute("portid", str(self.spec[0]))
++ elem.setAttribute("protocol", self.spec[1])
+ if self.state is not None:
+- state_elem = document.createElement(u"state")
+- state_elem.setAttribute(u"state", self.state)
++ state_elem = document.createElement("state")
++ state_elem.setAttribute("state", self.state)
+ elem.appendChild(state_elem)
+ elem.appendChild(self.service.to_dom_fragment(document))
+ for sr in self.script_results:
+@@ -385,7 +382,7 @@ class Service(object):
+ if len(parts) == 0:
+ return None
+ else:
+- return u"/".join(parts)
++ return "/".join(parts)
+
+ def version_string(self):
+ """Get a string like in the VERSION column of Nmap output."""
+@@ -395,17 +392,17 @@ class Service(object):
+ if self.version is not None:
+ parts.append(self.version)
+ if self.extrainfo is not None:
+- parts.append(u"(%s)" % self.extrainfo)
++ parts.append("(%s)" % self.extrainfo)
+
+ if len(parts) == 0:
+ return None
+ else:
+- return u" ".join(parts)
++ return " ".join(parts)
+
+ def to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+- elem = document.createElement(u"service")
+- for attr in (u"name", u"product", u"version", u"extrainfo", u"tunnel"):
++ elem = document.createElement("service")
++ for attr in ("name", "product", "version", "extrainfo", "tunnel"):
+ v = getattr(self, attr)
+ if v is None:
+ continue
+@@ -435,53 +432,53 @@ class ScriptResult(object):
+ result = []
+ lines = self.output.splitlines()
+ if len(lines) > 0:
+- lines[0] = self.id + u": " + lines[0]
++ lines[0] = self.id + ": " + lines[0]
+ for line in lines[:-1]:
+- result.append(u"| " + line)
++ result.append("| " + line)
+ if len(lines) > 0:
+- result.append(u"|_ " + lines[-1])
++ result.append("|_ " + lines[-1])
+ return result
+
+ def to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+- elem = document.createElement(u"script")
+- elem.setAttribute(u"id", self.id)
+- elem.setAttribute(u"output", self.output)
++ elem = document.createElement("script")
++ elem.setAttribute("id", self.id)
++ elem.setAttribute("output", self.output)
+ frag.appendChild(elem)
+ return frag
+
+
+ def format_banner(scan):
+ """Format a startup banner more or less like Nmap does."""
+- scanner = u"Nmap"
+- if scan.scanner is not None and scan.scanner != u"nmap":
++ scanner = "Nmap"
++ if scan.scanner is not None and scan.scanner != "nmap":
+ scanner = scan.scanner
+ parts = [scanner]
+ if scan.version is not None:
+ parts.append(scan.version)
+- parts.append(u"scan")
++ parts.append("scan")
+ if scan.start_date is not None:
+- parts.append(u"initiated %s" % scan.start_date.strftime(
++ parts.append("initiated %s" % scan.start_date.strftime(
+ "%a %b %d %H:%M:%S %Y"))
+ if scan.args is not None:
+- parts.append(u"as: %s" % scan.args)
+- return u" ".join(parts)
++ parts.append("as: %s" % scan.args)
++ return " ".join(parts)
+
+
+ def print_script_result_diffs_text(title, script_results_a, script_results_b,
+ script_result_diffs, f=sys.stdout):
+- table = Table(u"*")
++ table = Table("*")
+ for sr_diff in script_result_diffs:
+ sr_diff.append_to_port_table(table)
+ if len(table) > 0:
+- print >> f
++ print(file=f)
+ if len(script_results_b) == 0:
+- print >> f, u"-%s:" % title
++ print("-%s:" % title, file=f)
+ elif len(script_results_a) == 0:
+- print >> f, u"+%s:" % title
++ print("+%s:" % title, file=f)
+ else:
+- print >> f, u" %s:" % title
+- print >> f, table
++ print(" %s:" % title, file=f)
++ print(table, file=f)
+
+
+ def script_result_diffs_to_dom_fragment(elem, script_results_a,
+@@ -489,13 +486,13 @@ def script_result_diffs_to_dom_fragment(elem, script_results_a,
+ if len(script_results_a) == 0 and len(script_results_b) == 0:
+ return document.createDocumentFragment()
+ elif len(script_results_b) == 0:
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ for sr in script_results_a:
+ elem.appendChild(sr.to_dom_fragment(document))
+ a_elem.appendChild(elem)
+ return a_elem
+ elif len(script_results_a) == 0:
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ for sr in script_results_b:
+ elem.appendChild(sr.to_dom_fragment(document))
+ b_elem.appendChild(elem)
+@@ -581,10 +578,10 @@ class ScanDiffText(ScanDiff):
+ banner_a = format_banner(self.scan_a)
+ banner_b = format_banner(self.scan_b)
+ if banner_a != banner_b:
+- print >> self.f, u"-%s" % banner_a
+- print >> self.f, u"+%s" % banner_b
++ print("-%s" % banner_a, file=self.f)
++ print("+%s" % banner_b, file=self.f)
+ elif verbose:
+- print >> self.f, u" %s" % banner_a
++ print(" %s" % banner_a, file=self.f)
+
+ def output_pre_scripts(self, pre_script_result_diffs):
+ print_script_result_diffs_text("Pre-scan script results",
+@@ -597,7 +594,7 @@ class ScanDiffText(ScanDiff):
+ post_script_result_diffs, self.f)
+
+ def output_host_diff(self, h_diff):
+- print >> self.f
++ print(file=self.f)
+ h_diff.print_text(self.f)
+
+ def output_ending(self):
+@@ -622,8 +619,8 @@ class ScanDiffXML(ScanDiff):
+
+ def output_beginning(self):
+ self.writer.startDocument()
+- self.writer.startElement(u"nmapdiff", {u"version": NDIFF_XML_VERSION})
+- self.writer.startElement(u"scandiff", {})
++ self.writer.startElement("nmapdiff", {"version": NDIFF_XML_VERSION})
++ self.writer.startElement("scandiff", {})
+
+ if self.nmaprun_differs():
+ self.writer.frag_a(
+@@ -636,7 +633,7 @@ class ScanDiffXML(ScanDiff):
+
+ def output_pre_scripts(self, pre_script_result_diffs):
+ if len(pre_script_result_diffs) > 0 or verbose:
+- prescript_elem = self.document.createElement(u"prescript")
++ prescript_elem = self.document.createElement("prescript")
+ frag = script_result_diffs_to_dom_fragment(
+ prescript_elem, self.scan_a.pre_script_results,
+ self.scan_b.pre_script_results, pre_script_result_diffs,
+@@ -646,7 +643,7 @@ class ScanDiffXML(ScanDiff):
+
+ def output_post_scripts(self, post_script_result_diffs):
+ if len(post_script_result_diffs) > 0 or verbose:
+- postscript_elem = self.document.createElement(u"postscript")
++ postscript_elem = self.document.createElement("postscript")
+ frag = script_result_diffs_to_dom_fragment(
+ postscript_elem, self.scan_a.post_script_results,
+ self.scan_b.post_script_results, post_script_result_diffs,
+@@ -660,8 +657,8 @@ class ScanDiffXML(ScanDiff):
+ frag.unlink()
+
+ def output_ending(self):
+- self.writer.endElement(u"scandiff")
+- self.writer.endElement(u"nmapdiff")
++ self.writer.endElement("scandiff")
++ self.writer.endElement("nmapdiff")
+ self.writer.endDocument()
+
+
+@@ -719,9 +716,9 @@ class HostDiff(object):
+ self.cost += os_cost
+
+ extraports_a = tuple((count, state)
+- for (state, count) in self.host_a.extraports.items())
++ for (state, count) in list(self.host_a.extraports.items()))
+ extraports_b = tuple((count, state)
+- for (state, count) in self.host_b.extraports.items())
++ for (state, count) in list(self.host_b.extraports.items()))
+ if extraports_a != extraports_b:
+ self.extraports_changed = True
+ self.cost += 1
+@@ -747,69 +744,69 @@ class HostDiff(object):
+ # Names and addresses.
+ if self.id_changed:
+ if host_a.state is not None:
+- print >> f, u"-%s:" % host_a.format_name()
++ print("-%s:" % host_a.format_name(), file=f)
+ if self.host_b.state is not None:
+- print >> f, u"+%s:" % host_b.format_name()
++ print("+%s:" % host_b.format_name(), file=f)
+ else:
+- print >> f, u" %s:" % host_a.format_name()
++ print(" %s:" % host_a.format_name(), file=f)
+
+ # State.
+ if self.state_changed:
+ if host_a.state is not None:
+- print >> f, u"-Host is %s." % host_a.state
++ print("-Host is %s." % host_a.state, file=f)
+ if host_b.state is not None:
+- print >> f, u"+Host is %s." % host_b.state
++ print("+Host is %s." % host_b.state, file=f)
+ elif verbose:
+- print >> f, u" Host is %s." % host_b.state
++ print(" Host is %s." % host_b.state, file=f)
+
+ # Extraports.
+ if self.extraports_changed:
+ if len(host_a.extraports) > 0:
+- print >> f, u"-Not shown: %s" % host_a.extraports_string()
++ print("-Not shown: %s" % host_a.extraports_string(), file=f)
+ if len(host_b.extraports) > 0:
+- print >> f, u"+Not shown: %s" % host_b.extraports_string()
++ print("+Not shown: %s" % host_b.extraports_string(), file=f)
+ elif verbose:
+ if len(host_a.extraports) > 0:
+- print >> f, u" Not shown: %s" % host_a.extraports_string()
++ print(" Not shown: %s" % host_a.extraports_string(), file=f)
+
+ # Port table.
+- port_table = Table(u"** * * *")
++ port_table = Table("** * * *")
+ if host_a.state is None:
+- mark = u"+"
++ mark = "+"
+ elif host_b.state is None:
+- mark = u"-"
++ mark = "-"
+ else:
+- mark = u" "
+- port_table.append((mark, u"PORT", u"STATE", u"SERVICE", u"VERSION"))
++ mark = " "
++ port_table.append((mark, "PORT", "STATE", "SERVICE", "VERSION"))
+
+ for port in self.ports:
+ port_diff = self.port_diffs[port]
+ port_diff.append_to_port_table(port_table, host_a, host_b)
+
+ if len(port_table) > 1:
+- print >> f, port_table
++ print(port_table, file=f)
+
+ # OS changes.
+ if self.os_changed or verbose:
+ if len(host_a.os) > 0:
+ if len(host_b.os) > 0:
+- print >> f, u" OS details:"
++ print(" OS details:", file=f)
+ else:
+- print >> f, u"-OS details:"
++ print("-OS details:", file=f)
+ elif len(host_b.os) > 0:
+- print >> f, u"+OS details:"
++ print("+OS details:", file=f)
+ # os_diffs is a list of 5-tuples returned by
+ # difflib.SequenceMatcher.
+ for op, i1, i2, j1, j2 in self.os_diffs:
+ if op == "replace" or op == "delete":
+ for i in range(i1, i2):
+- print >> f, "- %s" % host_a.os[i]
++ print("- %s" % host_a.os[i], file=f)
+ if op == "replace" or op == "insert":
+ for i in range(j1, j2):
+- print >> f, "+ %s" % host_b.os[i]
++ print("+ %s" % host_b.os[i], file=f)
+ if op == "equal":
+ for i in range(i1, i2):
+- print >> f, " %s" % host_a.os[i]
++ print(" %s" % host_a.os[i], file=f)
+
+ print_script_result_diffs_text("Host script results",
+ host_a.script_results, host_b.script_results,
+@@ -820,32 +817,32 @@ class HostDiff(object):
+ host_b = self.host_b
+
+ frag = document.createDocumentFragment()
+- hostdiff_elem = document.createElement(u"hostdiff")
++ hostdiff_elem = document.createElement("hostdiff")
+ frag.appendChild(hostdiff_elem)
+
+ if host_a.state is None or host_b.state is None:
+ # The host is missing in one scan. Output the whole thing.
+ if host_a.state is not None:
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ a_elem.appendChild(host_a.to_dom_fragment(document))
+ hostdiff_elem.appendChild(a_elem)
+ elif host_b.state is not None:
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ b_elem.appendChild(host_b.to_dom_fragment(document))
+ hostdiff_elem.appendChild(b_elem)
+ return frag
+
+- host_elem = document.createElement(u"host")
++ host_elem = document.createElement("host")
+
+ # State.
+ if host_a.state == host_b.state:
+ if verbose:
+ host_elem.appendChild(host_a.state_to_dom_fragment(document))
+ else:
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ a_elem.appendChild(host_a.state_to_dom_fragment(document))
+ host_elem.appendChild(a_elem)
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ b_elem.appendChild(host_b.state_to_dom_fragment(document))
+ host_elem.appendChild(b_elem)
+
+@@ -854,31 +851,31 @@ class HostDiff(object):
+ addrset_b = set(host_b.addresses)
+ for addr in sorted(addrset_a.intersection(addrset_b)):
+ host_elem.appendChild(addr.to_dom_fragment(document))
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ for addr in sorted(addrset_a - addrset_b):
+ a_elem.appendChild(addr.to_dom_fragment(document))
+ if a_elem.hasChildNodes():
+ host_elem.appendChild(a_elem)
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ for addr in sorted(addrset_b - addrset_a):
+ b_elem.appendChild(addr.to_dom_fragment(document))
+ if b_elem.hasChildNodes():
+ host_elem.appendChild(b_elem)
+
+ # Host names.
+- hostnames_elem = document.createElement(u"hostnames")
++ hostnames_elem = document.createElement("hostnames")
+ hostnameset_a = set(host_a.hostnames)
+ hostnameset_b = set(host_b.hostnames)
+ for hostname in sorted(hostnameset_a.intersection(hostnameset_b)):
+ hostnames_elem.appendChild(
+ host_a.hostname_to_dom_fragment(document, hostname))
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ for hostname in sorted(hostnameset_a - hostnameset_b):
+ a_elem.appendChild(
+ host_a.hostname_to_dom_fragment(document, hostname))
+ if a_elem.hasChildNodes():
+ hostnames_elem.appendChild(a_elem)
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ for hostname in sorted(hostnameset_b - hostnameset_a):
+ b_elem.appendChild(
+ host_b.hostname_to_dom_fragment(document, hostname))
+@@ -887,15 +884,15 @@ class HostDiff(object):
+ if hostnames_elem.hasChildNodes():
+ host_elem.appendChild(hostnames_elem)
+
+- ports_elem = document.createElement(u"ports")
++ ports_elem = document.createElement("ports")
+ # Extraports.
+ if host_a.extraports == host_b.extraports:
+ ports_elem.appendChild(host_a.extraports_to_dom_fragment(document))
+ else:
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ a_elem.appendChild(host_a.extraports_to_dom_fragment(document))
+ ports_elem.appendChild(a_elem)
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ b_elem.appendChild(host_b.extraports_to_dom_fragment(document))
+ ports_elem.appendChild(b_elem)
+ # Port list.
+@@ -911,18 +908,18 @@ class HostDiff(object):
+
+ # OS changes.
+ if self.os_changed or verbose:
+- os_elem = document.createElement(u"os")
++ os_elem = document.createElement("os")
+ # os_diffs is a list of 5-tuples returned by
+ # difflib.SequenceMatcher.
+ for op, i1, i2, j1, j2 in self.os_diffs:
+ if op == "replace" or op == "delete":
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ for i in range(i1, i2):
+ a_elem.appendChild(host_a.os_to_dom_fragment(
+ document, host_a.os[i]))
+ os_elem.appendChild(a_elem)
+ if op == "replace" or op == "insert":
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ for i in range(j1, j2):
+ b_elem.appendChild(host_b.os_to_dom_fragment(
+ document, host_b.os[i]))
+@@ -936,7 +933,7 @@ class HostDiff(object):
+
+ # Host script changes.
+ if len(self.script_result_diffs) > 0 or verbose:
+- hostscript_elem = document.createElement(u"hostscript")
++ hostscript_elem = document.createElement("hostscript")
+ host_elem.appendChild(script_result_diffs_to_dom_fragment(
+ hostscript_elem, host_a.script_results,
+ host_b.script_results, self.script_result_diffs,
+@@ -989,38 +986,38 @@ class PortDiff(object):
+ self.port_b.service.version_string()]
+ if a_columns == b_columns:
+ if verbose or self.script_result_diffs > 0:
+- table.append([u" "] + a_columns)
++ table.append([" "] + a_columns)
+ else:
+ if not host_a.is_extraports(self.port_a.state):
+- table.append([u"-"] + a_columns)
++ table.append(["-"] + a_columns)
+ if not host_b.is_extraports(self.port_b.state):
+- table.append([u"+"] + b_columns)
++ table.append(["+"] + b_columns)
+
+ for sr_diff in self.script_result_diffs:
+ sr_diff.append_to_port_table(table)
+
+ def to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+- portdiff_elem = document.createElement(u"portdiff")
++ portdiff_elem = document.createElement("portdiff")
+ frag.appendChild(portdiff_elem)
+ if (self.port_a.spec == self.port_b.spec and
+ self.port_a.state == self.port_b.state):
+- port_elem = document.createElement(u"port")
+- port_elem.setAttribute(u"portid", unicode(self.port_a.spec[0]))
+- port_elem.setAttribute(u"protocol", self.port_a.spec[1])
++ port_elem = document.createElement("port")
++ port_elem.setAttribute("portid", str(self.port_a.spec[0]))
++ port_elem.setAttribute("protocol", self.port_a.spec[1])
+ if self.port_a.state is not None:
+- state_elem = document.createElement(u"state")
+- state_elem.setAttribute(u"state", self.port_a.state)
++ state_elem = document.createElement("state")
++ state_elem.setAttribute("state", self.port_a.state)
+ port_elem.appendChild(state_elem)
+ if self.port_a.service == self.port_b.service:
+ port_elem.appendChild(
+ self.port_a.service.to_dom_fragment(document))
+ else:
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ a_elem.appendChild(
+ self.port_a.service.to_dom_fragment(document))
+ port_elem.appendChild(a_elem)
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ b_elem.appendChild(
+ self.port_b.service.to_dom_fragment(document))
+ port_elem.appendChild(b_elem)
+@@ -1028,10 +1025,10 @@ class PortDiff(object):
+ port_elem.appendChild(sr_diff.to_dom_fragment(document))
+ portdiff_elem.appendChild(port_elem)
+ else:
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ a_elem.appendChild(self.port_a.to_dom_fragment(document))
+ portdiff_elem.appendChild(a_elem)
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ b_elem.appendChild(self.port_b.to_dom_fragment(document))
+ portdiff_elem.appendChild(b_elem)
+
+@@ -1086,13 +1083,13 @@ class ScriptResultDiff(object):
+ for op, i1, i2, j1, j2 in diffs.get_opcodes():
+ if op == "replace" or op == "delete":
+ for k in range(i1, i2):
+- table.append_raw(u"-" + a_lines[k])
++ table.append_raw("-" + a_lines[k])
+ if op == "replace" or op == "insert":
+ for k in range(j1, j2):
+- table.append_raw(u"+" + b_lines[k])
++ table.append_raw("+" + b_lines[k])
+ if op == "equal":
+ for k in range(i1, i2):
+- table.append_raw(u" " + a_lines[k])
++ table.append_raw(" " + a_lines[k])
+
+ def to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+@@ -1102,11 +1099,11 @@ class ScriptResultDiff(object):
+ frag.appendChild(self.sr_a.to_dom_fragment(document))
+ else:
+ if self.sr_a is not None:
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ a_elem.appendChild(self.sr_a.to_dom_fragment(document))
+ frag.appendChild(a_elem)
+ if self.sr_b is not None:
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ b_elem.appendChild(self.sr_b.to_dom_fragment(document))
+ frag.appendChild(b_elem)
+ return frag
+@@ -1120,7 +1117,7 @@ class Table(object):
+ copied to the output."""
+ self.widths = []
+ self.rows = []
+- self.prefix = u""
++ self.prefix = ""
+ self.padding = []
+ j = 0
+ while j < len(template) and template[j] != "*":
+@@ -1145,7 +1142,7 @@ class Table(object):
+
+ for i in range(len(row)):
+ if row[i] is None:
+- s = u""
++ s = ""
+ else:
+ s = str(row[i])
+ if i == len(self.widths):
+@@ -1167,7 +1164,7 @@ class Table(object):
+ for row in self.rows:
+ parts = [self.prefix]
+ i = 0
+- if isinstance(row, basestring):
++ if isinstance(row, str):
+ # A raw string.
+ lines.append(row)
+ else:
+@@ -1176,13 +1173,13 @@ class Table(object):
+ if i < len(self.padding):
+ parts.append(self.padding[i])
+ i += 1
+- lines.append(u"".join(parts).rstrip())
+- return u"\n".join(lines)
++ lines.append("".join(parts).rstrip())
++ return "\n".join(lines)
+
+
+ def warn(str):
+ """Print a warning to stderr."""
+- print >> sys.stderr, str
++ print(str, file=sys.stderr)
+
+
+ class NmapContentHandler(xml.sax.handler.ContentHandler):
+@@ -1200,22 +1197,22 @@ class NmapContentHandler(xml.sax.handler.ContentHandler):
+ self.current_port = None
+
+ self._start_elem_handlers = {
+- u"nmaprun": self._start_nmaprun,
+- u"host": self._start_host,
+- u"status": self._start_status,
+- u"address": self._start_address,
+- u"hostname": self._start_hostname,
+- u"extraports": self._start_extraports,
+- u"port": self._start_port,
+- u"state": self._start_state,
+- u"service": self._start_service,
+- u"script": self._start_script,
+- u"osmatch": self._start_osmatch,
+- u"finished": self._start_finished,
++ "nmaprun": self._start_nmaprun,
++ "host": self._start_host,
++ "status": self._start_status,
++ "address": self._start_address,
++ "hostname": self._start_hostname,
++ "extraports": self._start_extraports,
++ "port": self._start_port,
++ "state": self._start_state,
++ "service": self._start_service,
++ "script": self._start_script,
++ "osmatch": self._start_osmatch,
++ "finished": self._start_finished,
+ }
+ self._end_elem_handlers = {
+- u'host': self._end_host,
+- u'port': self._end_port,
++ 'host': self._end_host,
++ 'port': self._end_port,
+ }
+
+ def parent_element(self):
+@@ -1245,68 +1242,68 @@ class NmapContentHandler(xml.sax.handler.ContentHandler):
+ def _start_nmaprun(self, name, attrs):
+ assert self.parent_element() is None
+ if "start" in attrs:
+- start_timestamp = int(attrs.get(u"start"))
++ start_timestamp = int(attrs.get("start"))
+ self.scan.start_date = datetime.datetime.fromtimestamp(
+ start_timestamp)
+- self.scan.scanner = attrs.get(u"scanner")
+- self.scan.args = attrs.get(u"args")
+- self.scan.version = attrs.get(u"version")
++ self.scan.scanner = attrs.get("scanner")
++ self.scan.args = attrs.get("args")
++ self.scan.version = attrs.get("version")
+
+ def _start_host(self, name, attrs):
+- assert self.parent_element() == u"nmaprun"
++ assert self.parent_element() == "nmaprun"
+ self.current_host = Host()
+ self.scan.hosts.append(self.current_host)
+
+ def _start_status(self, name, attrs):
+- assert self.parent_element() == u"host"
++ assert self.parent_element() == "host"
+ assert self.current_host is not None
+- state = attrs.get(u"state")
++ state = attrs.get("state")
+ if state is None:
+ warn(u'%s element of host %s is missing the "state" attribute; '
+- 'assuming \unknown\.' % (
++ r'assuming \unknown\.' % (
+ name, self.current_host.format_name()))
+ return
+ self.current_host.state = state
+
+ def _start_address(self, name, attrs):
+- assert self.parent_element() == u"host"
++ assert self.parent_element() == "host"
+ assert self.current_host is not None
+- addr = attrs.get(u"addr")
++ addr = attrs.get("addr")
+ if addr is None:
+- warn(u'%s element of host %s is missing the "addr" '
++ warn('%s element of host %s is missing the "addr" '
+ 'attribute; skipping.' % (
+ name, self.current_host.format_name()))
+ return
+- addrtype = attrs.get(u"addrtype", u"ipv4")
++ addrtype = attrs.get("addrtype", "ipv4")
+ self.current_host.add_address(Address.new(addrtype, addr))
+
+ def _start_hostname(self, name, attrs):
+- assert self.parent_element() == u"hostnames"
++ assert self.parent_element() == "hostnames"
+ assert self.current_host is not None
+- hostname = attrs.get(u"name")
++ hostname = attrs.get("name")
+ if hostname is None:
+- warn(u'%s element of host %s is missing the "name" '
++ warn('%s element of host %s is missing the "name" '
+ 'attribute; skipping.' % (
+ name, self.current_host.format_name()))
+ return
+ self.current_host.add_hostname(hostname)
+
+ def _start_extraports(self, name, attrs):
+- assert self.parent_element() == u"ports"
++ assert self.parent_element() == "ports"
+ assert self.current_host is not None
+- state = attrs.get(u"state")
++ state = attrs.get("state")
+ if state is None:
+- warn(u'%s element of host %s is missing the "state" '
++ warn('%s element of host %s is missing the "state" '
+ 'attribute; assuming "unknown".' % (
+ name, self.current_host.format_name()))
+ state = None
+ if state in self.current_host.extraports:
+- warn(u'Duplicate extraports state "%s" in host %s.' % (
++ warn('Duplicate extraports state "%s" in host %s.' % (
+ state, self.current_host.format_name()))
+
+- count = attrs.get(u"count")
++ count = attrs.get("count")
+ if count is None:
+- warn(u'%s element of host %s is missing the "count" '
++ warn('%s element of host %s is missing the "count" '
+ 'attribute; assuming 0.' % (
+ name, self.current_host.format_name()))
+ count = 0
+@@ -1314,99 +1311,99 @@ class NmapContentHandler(xml.sax.handler.ContentHandler):
+ try:
+ count = int(count)
+ except ValueError:
+- warn(u"Can't convert extraports count \"%s\" "
++ warn("Can't convert extraports count \"%s\" "
+ "to an integer in host %s; assuming 0." % (
+- attrs[u"count"], self.current_host.format_name()))
++ attrs["count"], self.current_host.format_name()))
+ count = 0
+ self.current_host.extraports[state] = count
+
+ def _start_port(self, name, attrs):
+- assert self.parent_element() == u"ports"
++ assert self.parent_element() == "ports"
+ assert self.current_host is not None
+- portid_str = attrs.get(u"portid")
++ portid_str = attrs.get("portid")
+ if portid_str is None:
+- warn(u'%s element of host %s missing the "portid" '
++ warn('%s element of host %s missing the "portid" '
+ 'attribute; skipping.' % (
+ name, self.current_host.format_name()))
+ return
+ try:
+ portid = int(portid_str)
+ except ValueError:
+- warn(u"Can't convert portid \"%s\" to an integer "
++ warn("Can't convert portid \"%s\" to an integer "
+ "in host %s; skipping port." % (
+ portid_str, self.current_host.format_name()))
+ return
+- protocol = attrs.get(u"protocol")
++ protocol = attrs.get("protocol")
+ if protocol is None:
+- warn(u'%s element of host %s missing the "protocol" '
++ warn('%s element of host %s missing the "protocol" '
+ 'attribute; skipping.' % (
+ name, self.current_host.format_name()))
+ return
+ self.current_port = Port((portid, protocol))
+
+ def _start_state(self, name, attrs):
+- assert self.parent_element() == u"port"
++ assert self.parent_element() == "port"
+ assert self.current_host is not None
+ if self.current_port is None:
+ return
+ if "state" not in attrs:
+- warn(u'%s element of port %s is missing the "state" '
++ warn('%s element of port %s is missing the "state" '
+ 'attribute; assuming "unknown".' % (
+ name, self.current_port.spec_string()))
+ return
+- self.current_port.state = attrs[u"state"]
++ self.current_port.state = attrs["state"]
+ self.current_host.add_port(self.current_port)
+
+ def _start_service(self, name, attrs):
+- assert self.parent_element() == u"port"
++ assert self.parent_element() == "port"
+ assert self.current_host is not None
+ if self.current_port is None:
+ return
+- self.current_port.service.name = attrs.get(u"name")
+- self.current_port.service.product = attrs.get(u"product")
+- self.current_port.service.version = attrs.get(u"version")
+- self.current_port.service.extrainfo = attrs.get(u"extrainfo")
+- self.current_port.service.tunnel = attrs.get(u"tunnel")
++ self.current_port.service.name = attrs.get("name")
++ self.current_port.service.product = attrs.get("product")
++ self.current_port.service.version = attrs.get("version")
++ self.current_port.service.extrainfo = attrs.get("extrainfo")
++ self.current_port.service.tunnel = attrs.get("tunnel")
+
+ def _start_script(self, name, attrs):
+ result = ScriptResult()
+- result.id = attrs.get(u"id")
++ result.id = attrs.get("id")
+ if result.id is None:
+- warn(u'%s element missing the "id" attribute; skipping.' % name)
++ warn('%s element missing the "id" attribute; skipping.' % name)
+ return
+
+- result.output = attrs.get(u"output")
++ result.output = attrs.get("output")
+ if result.output is None:
+- warn(u'%s element missing the "output" attribute; skipping.'
++ warn('%s element missing the "output" attribute; skipping.'
+ % name)
+ return
+- if self.parent_element() == u"prescript":
++ if self.parent_element() == "prescript":
+ self.scan.pre_script_results.append(result)
+- elif self.parent_element() == u"postscript":
++ elif self.parent_element() == "postscript":
+ self.scan.post_script_results.append(result)
+- elif self.parent_element() == u"hostscript":
++ elif self.parent_element() == "hostscript":
+ self.current_host.script_results.append(result)
+- elif self.parent_element() == u"port":
++ elif self.parent_element() == "port":
+ self.current_port.script_results.append(result)
+ else:
+- warn(u"%s element not inside prescript, postscript, hostscript, "
++ warn("%s element not inside prescript, postscript, hostscript, "
+ "or port element; ignoring." % name)
+ return
+
+ def _start_osmatch(self, name, attrs):
+- assert self.parent_element() == u"os"
++ assert self.parent_element() == "os"
+ assert self.current_host is not None
+ if "name" not in attrs:
+- warn(u'%s element of host %s is missing the "name" '
++ warn('%s element of host %s is missing the "name" '
+ 'attribute; skipping.' % (
+ name, self.current_host.format_name()))
+ return
+- self.current_host.os.append(attrs[u"name"])
++ self.current_host.os.append(attrs["name"])
+
+ def _start_finished(self, name, attrs):
+- assert self.parent_element() == u"runstats"
++ assert self.parent_element() == "runstats"
+ if "time" in attrs:
+- end_timestamp = int(attrs.get(u"time"))
++ end_timestamp = int(attrs.get("time"))
+ self.scan.end_date = datetime.datetime.fromtimestamp(end_timestamp)
+
+ def _end_host(self, name):
+@@ -1425,23 +1422,23 @@ class XMLWriter (xml.sax.saxutils.XMLGenerator):
+
+ def frag(self, frag):
+ for node in frag.childNodes:
+- node.writexml(self.f, newl=u"\n")
++ node.writexml(self.f, newl="\n")
+
+ def frag_a(self, frag):
+- self.startElement(u"a", {})
++ self.startElement("a", {})
+ for node in frag.childNodes:
+- node.writexml(self.f, newl=u"\n")
+- self.endElement(u"a")
++ node.writexml(self.f, newl="\n")
++ self.endElement("a")
+
+ def frag_b(self, frag):
+- self.startElement(u"b", {})
++ self.startElement("b", {})
+ for node in frag.childNodes:
+- node.writexml(self.f, newl=u"\n")
+- self.endElement(u"b")
++ node.writexml(self.f, newl="\n")
++ self.endElement("b")
+
+
+ def usage():
+- print u"""\
++ print("""\
+ Usage: %s [option] FILE1 FILE2
+ Compare two Nmap XML files and display a list of their differences.
+ Differences include host state changes, port state changes, and changes to
+@@ -1451,7 +1448,7 @@ service and OS detection.
+ -v, --verbose also show hosts and ports that haven't changed.
+ --text display output in text format (default)
+ --xml display output in XML format\
+-""" % sys.argv[0]
++""" % sys.argv[0])
+
+ EXIT_EQUAL = 0
+ EXIT_DIFFERENT = 1
+@@ -1459,8 +1456,8 @@ EXIT_ERROR = 2
+
+
+ def usage_error(msg):
+- print >> sys.stderr, u"%s: %s" % (sys.argv[0], msg)
+- print >> sys.stderr, u"Try '%s -h' for help." % sys.argv[0]
++ print("%s: %s" % (sys.argv[0], msg), file=sys.stderr)
++ print("Try '%s -h' for help." % sys.argv[0], file=sys.stderr)
+ sys.exit(EXIT_ERROR)
+
+
+@@ -1471,7 +1468,7 @@ def main():
+ try:
+ opts, input_filenames = getopt.gnu_getopt(
+ sys.argv[1:], "hv", ["help", "text", "verbose", "xml"])
+- except getopt.GetoptError, e:
++ except getopt.GetoptError as e:
+ usage_error(e.msg)
+ for o, a in opts:
+ if o == "-h" or o == "--help":
+@@ -1481,15 +1478,15 @@ def main():
+ verbose = True
+ elif o == "--text":
+ if output_format is not None and output_format != "text":
+- usage_error(u"contradictory output format options.")
++ usage_error("contradictory output format options.")
+ output_format = "text"
+ elif o == "--xml":
+ if output_format is not None and output_format != "xml":
+- usage_error(u"contradictory output format options.")
++ usage_error("contradictory output format options.")
+ output_format = "xml"
+
+ if len(input_filenames) != 2:
+- usage_error(u"need exactly two input filenames.")
++ usage_error("need exactly two input filenames.")
+
+ if output_format is None:
+ output_format = "text"
+@@ -1502,8 +1499,8 @@ def main():
+ scan_a.load_from_file(filename_a)
+ scan_b = Scan()
+ scan_b.load_from_file(filename_b)
+- except IOError, e:
+- print >> sys.stderr, u"Can't open file: %s" % str(e)
++ except IOError as e:
++ print("Can't open file: %s" % str(e), file=sys.stderr)
+ sys.exit(EXIT_ERROR)
+
+ if output_format == "text":
+diff --git a/ndiff/ndifftest.py b/ndiff/ndifftest.py
+index 2fa4ae0..27fc525 100755
+--- a/ndiff/ndifftest.py
++++ b/ndiff/ndifftest.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ # Unit tests for Ndiff.
+
+@@ -22,7 +22,7 @@ for x in dir(ndiff):
+ sys.dont_write_bytecode = dont_write_bytecode
+ del dont_write_bytecode
+
+-import StringIO
++import io
+
+
+ class scan_test(unittest.TestCase):
+@@ -52,7 +52,7 @@ class scan_test(unittest.TestCase):
+ scan.load_from_file("test-scans/single.xml")
+ host = scan.hosts[0]
+ self.assertEqual(len(host.ports), 5)
+- self.assertEqual(host.extraports.items(), [("filtered", 95)])
++ self.assertEqual(list(host.extraports.items()), [("filtered", 95)])
+
+ def test_extraports_multi(self):
+ """Test that the correct number of known ports is returned when there
+@@ -68,9 +68,9 @@ class scan_test(unittest.TestCase):
+ """Test that nmaprun information is recorded."""
+ scan = Scan()
+ scan.load_from_file("test-scans/empty.xml")
+- self.assertEqual(scan.scanner, u"nmap")
+- self.assertEqual(scan.version, u"4.90RC2")
+- self.assertEqual(scan.args, u"nmap -oX empty.xml -p 1-100")
++ self.assertEqual(scan.scanner, "nmap")
++ self.assertEqual(scan.version, "4.90RC2")
++ self.assertEqual(scan.args, "nmap -oX empty.xml -p 1-100")
+
+ def test_addresses(self):
+ """Test that addresses are recorded."""
+@@ -84,7 +84,7 @@ class scan_test(unittest.TestCase):
+ scan = Scan()
+ scan.load_from_file("test-scans/simple.xml")
+ host = scan.hosts[0]
+- self.assertEqual(host.hostnames, [u"scanme.nmap.org"])
++ self.assertEqual(host.hostnames, ["scanme.nmap.org"])
+
+ def test_os(self):
+ """Test that OS information is recorded."""
+@@ -99,7 +99,7 @@ class scan_test(unittest.TestCase):
+ scan.load_from_file("test-scans/complex.xml")
+ host = scan.hosts[0]
+ self.assertTrue(len(host.script_results) > 0)
+- self.assertTrue(len(host.ports[(22, u"tcp")].script_results) > 0)
++ self.assertTrue(len(host.ports[(22, "tcp")].script_results) > 0)
+
+ # This test is commented out because Nmap XML doesn't store any information
+ # about down hosts, not even the fact that they are down. Recovering the list
+@@ -128,16 +128,16 @@ class host_test(unittest.TestCase):
+
+ def test_format_name(self):
+ h = Host()
+- self.assertTrue(isinstance(h.format_name(), basestring))
+- h.add_address(IPv4Address(u"127.0.0.1"))
+- self.assertTrue(u"127.0.0.1" in h.format_name())
++ self.assertTrue(isinstance(h.format_name(), str))
++ h.add_address(IPv4Address("127.0.0.1"))
++ self.assertTrue("127.0.0.1" in h.format_name())
+ h.add_address(IPv6Address("::1"))
+- self.assertTrue(u"127.0.0.1" in h.format_name())
+- self.assertTrue(u"::1" in h.format_name())
+- h.add_hostname(u"localhost")
+- self.assertTrue(u"127.0.0.1" in h.format_name())
+- self.assertTrue(u"::1" in h.format_name())
+- self.assertTrue(u"localhost" in h.format_name())
++ self.assertTrue("127.0.0.1" in h.format_name())
++ self.assertTrue("::1" in h.format_name())
++ h.add_hostname("localhost")
++ self.assertTrue("127.0.0.1" in h.format_name())
++ self.assertTrue("::1" in h.format_name())
++ self.assertTrue("localhost" in h.format_name())
+
+ def test_empty_get_port(self):
+ h = Host()
+@@ -197,8 +197,8 @@ class host_test(unittest.TestCase):
+ h = s.hosts[0]
+ self.assertEqual(len(h.ports), 5)
+ self.assertEqual(len(h.extraports), 1)
+- self.assertEqual(h.extraports.keys()[0], u"filtered")
+- self.assertEqual(h.extraports.values()[0], 95)
++ self.assertEqual(list(h.extraports.keys())[0], "filtered")
++ self.assertEqual(list(h.extraports.values())[0], 95)
+ self.assertEqual(h.state, "up")
+
+
+@@ -241,13 +241,13 @@ class port_test(unittest.TestCase):
+ """Test the Port class."""
+ def test_spec_string(self):
+ p = Port((10, "tcp"))
+- self.assertEqual(p.spec_string(), u"10/tcp")
++ self.assertEqual(p.spec_string(), "10/tcp")
+ p = Port((100, "ip"))
+- self.assertEqual(p.spec_string(), u"100/ip")
++ self.assertEqual(p.spec_string(), "100/ip")
+
+ def test_state_string(self):
+ p = Port((10, "tcp"))
+- self.assertEqual(p.state_string(), u"unknown")
++ self.assertEqual(p.state_string(), "unknown")
+
+
+ class service_test(unittest.TestCase):
+@@ -255,47 +255,47 @@ class service_test(unittest.TestCase):
+ def test_compare(self):
+ """Test that services with the same contents compare equal."""
+ a = Service()
+- a.name = u"ftp"
+- a.product = u"FooBar FTP"
+- a.version = u"1.1.1"
+- a.tunnel = u"ssl"
++ a.name = "ftp"
++ a.product = "FooBar FTP"
++ a.version = "1.1.1"
++ a.tunnel = "ssl"
+ self.assertEqual(a, a)
+ b = Service()
+- b.name = u"ftp"
+- b.product = u"FooBar FTP"
+- b.version = u"1.1.1"
+- b.tunnel = u"ssl"
++ b.name = "ftp"
++ b.product = "FooBar FTP"
++ b.version = "1.1.1"
++ b.tunnel = "ssl"
+ self.assertEqual(a, b)
+- b.name = u"http"
++ b.name = "http"
+ self.assertNotEqual(a, b)
+ c = Service()
+ self.assertNotEqual(a, c)
+
+ def test_tunnel(self):
+ serv = Service()
+- serv.name = u"http"
+- serv.tunnel = u"ssl"
+- self.assertEqual(serv.name_string(), u"ssl/http")
++ serv.name = "http"
++ serv.tunnel = "ssl"
++ self.assertEqual(serv.name_string(), "ssl/http")
+
+ def test_version_string(self):
+ serv = Service()
+- serv.product = u"FooBar"
++ serv.product = "FooBar"
+ self.assertTrue(len(serv.version_string()) > 0)
+ serv = Service()
+- serv.version = u"1.2.3"
++ serv.version = "1.2.3"
+ self.assertTrue(len(serv.version_string()) > 0)
+ serv = Service()
+- serv.extrainfo = u"misconfigured"
++ serv.extrainfo = "misconfigured"
+ self.assertTrue(len(serv.version_string()) > 0)
+ serv = Service()
+- serv.product = u"FooBar"
+- serv.version = u"1.2.3"
++ serv.product = "FooBar"
++ serv.version = "1.2.3"
+ # Must match Nmap output.
+ self.assertEqual(serv.version_string(),
+- u"%s %s" % (serv.product, serv.version))
+- serv.extrainfo = u"misconfigured"
++ "%s %s" % (serv.product, serv.version))
++ serv.extrainfo = "misconfigured"
+ self.assertEqual(serv.version_string(),
+- u"%s %s (%s)" % (serv.product, serv.version, serv.extrainfo))
++ "%s %s (%s)" % (serv.product, serv.version, serv.extrainfo))
+
+
+ class ScanDiffSub(ScanDiff):
+@@ -703,7 +703,7 @@ class scan_diff_xml_test(unittest.TestCase):
+ a.load_from_file("test-scans/empty.xml")
+ b = Scan()
+ b.load_from_file("test-scans/simple.xml")
+- f = StringIO.StringIO()
++ f = io.StringIO()
+ self.scan_diff = ScanDiffXML(a, b, f)
+ self.scan_diff.output()
+ self.xml = f.getvalue()
+@@ -712,8 +712,8 @@ class scan_diff_xml_test(unittest.TestCase):
+ def test_well_formed(self):
+ try:
+ document = xml.dom.minidom.parseString(self.xml)
+- except Exception, e:
+- self.fail(u"Parsing XML diff output caused the exception: %s"
++ except Exception as e:
++ self.fail("Parsing XML diff output caused the exception: %s"
+ % str(e))
+
+
+@@ -739,8 +739,8 @@ def host_apply_diff(host, diff):
+ host.os = diff.host_b.os[:]
+
+ if diff.extraports_changed:
+- for state in host.extraports.keys():
+- for port in host.ports.values():
++ for state in list(host.extraports.keys()):
++ for port in list(host.ports.values()):
+ if port.state == state:
+ del host.ports[port.spec]
+ host.extraports = diff.host_b.extraports.copy()
+diff --git a/ndiff/scripts/ndiff b/ndiff/scripts/ndiff
+index 8517c07..4671e73 100755
+--- a/ndiff/scripts/ndiff
++++ b/ndiff/scripts/ndiff
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ # Ndiff
+ #
+@@ -67,15 +67,15 @@ if INSTALL_LIB is not None and is_secure_dir(INSTALL_LIB):
+
+ try:
+ import ndiff
+-except ImportError, e:
+- print >> sys.stderr, """\
++except ImportError as e:
++ print("""\
+ Could not import the ndiff module: %s.
+-I checked in these directories:""" % repr(e.message)
++I checked in these directories:""" % repr(e), file=sys.stderr)
+ for dir in sys.path:
+- print >> sys.stderr, " %s" % dir
+- print >> sys.stderr, """\
++ print(" %s" % dir, file=sys.stderr)
++ print("""\
+ If you installed Ndiff in another directory, you may have to add the
+-modules directory to the PYTHONPATH environment variable."""
++modules directory to the PYTHONPATH environment variable.""", file=sys.stderr)
+ sys.exit(1)
+
+ import ndiff
+diff --git a/ndiff/setup.py b/ndiff/setup.py
+old mode 100644
+new mode 100755
+index b5e254c..c49bcf3
+--- a/ndiff/setup.py
++++ b/ndiff/setup.py
+@@ -94,7 +94,7 @@ class checked_install(distutils.command.install.install):
+ self.saved_prefix = sys.prefix
+ try:
+ distutils.command.install.install.finalize_options(self)
+- except distutils.errors.DistutilsPlatformError, e:
++ except distutils.errors.DistutilsPlatformError as e:
+ raise distutils.errors.DistutilsPlatformError(str(e) + """
+ Installing your distribution's python-dev package may solve this problem.""")
+
+@@ -155,13 +155,13 @@ Installing your distribution's python-dev package may solve this problem.""")
+ #!/usr/bin/env python
+ import errno, os, os.path, sys
+
+-print 'Uninstall %(name)s'
++print('Uninstall %(name)s')
+
+ answer = raw_input('Are you sure that you want to uninstall '
+ '%(name)s (yes/no) ')
+
+ if answer != 'yes' and answer != 'y':
+- print 'Not uninstalling.'
++ print('Not uninstalling.')
+ sys.exit(0)
+
+ """ % {'name': APP_NAME}
+@@ -177,8 +177,8 @@ if answer != 'yes' and answer != 'y':
+ # This should never happen (everything gets installed
+ # inside the root), but if it does, be safe and don't
+ # delete anything.
+- uninstaller += ("print '%s was not installed inside "
+- "the root %s; skipping.'\n" % (output, self.root))
++ uninstaller += ("print('%s was not installed inside "
++ "the root %s; skipping.')\n" % (output, self.root))
+ continue
+ output = path_strip_prefix(output, self.root)
+ assert os.path.isabs(output)
+@@ -202,24 +202,24 @@ for path in INSTALLED_FILES:
+ dirs.append(path)
+ # Delete the files.
+ for file in files:
+- print "Removing '%s'." % file
++ print("Removing '%s'." % file)
+ try:
+ os.remove(file)
+- except OSError, e:
+- print >> sys.stderr, ' Error: %s.' % str(e)
++ except OSError as e:
++ print(' Error: %s.' % str(e), file=sys.stderr)
+ # Delete the directories. First reverse-sort the normalized paths by
+ # length so that child directories are deleted before their parents.
+ dirs = [os.path.normpath(dir) for dir in dirs]
+ dirs.sort(key = len, reverse = True)
+ for dir in dirs:
+ try:
+- print "Removing the directory '%s'." % dir
++ print("Removing the directory '%s'." % dir)
+ os.rmdir(dir)
+- except OSError, e:
++ except OSError as e:
+ if e.errno == errno.ENOTEMPTY:
+- print "Directory '%s' not empty; not removing." % dir
++ print("Directory '%s' not empty; not removing." % dir)
+ else:
+- print >> sys.stderr, str(e)
++ print(str(e), file=sys.stderr)
+ """
+
+ uninstaller_file = open(uninstaller_filename, 'w')
+@@ -227,7 +227,7 @@ for dir in dirs:
+ uninstaller_file.close()
+
+ # Set exec bit for uninstaller
+- mode = ((os.stat(uninstaller_filename)[ST_MODE]) | 0555) & 07777
++ mode = ((os.stat(uninstaller_filename)[ST_MODE]) | 0o555) & 0o7777
+ os.chmod(uninstaller_filename, mode)
+
+ def write_installed_files(self):
+@@ -242,7 +242,7 @@ for dir in dirs:
+ try:
+ for output in self.get_installed_files():
+ assert "\n" not in output
+- print >> f, output
++ print(output, file=f)
+ finally:
+ f.close()
+
+@@ -266,7 +266,7 @@ class my_uninstall(distutils.cmd.Command):
+ # Read the list of installed files.
+ try:
+ f = open(INSTALLED_FILES_NAME, "r")
+- except IOError, e:
++ except IOError as e:
+ if e.errno == errno.ENOENT:
+ log.error("Couldn't open the installation record '%s'. "
+ "Have you installed yet?" % INSTALLED_FILES_NAME)
+@@ -289,7 +289,7 @@ class my_uninstall(distutils.cmd.Command):
+ try:
+ if not self.dry_run:
+ os.remove(file)
+- except OSError, e:
++ except OSError as e:
+ log.error(str(e))
+ # Delete the directories. First reverse-sort the normalized paths by
+ # length so that child directories are deleted before their parents.
+@@ -300,7 +300,7 @@ class my_uninstall(distutils.cmd.Command):
+ log.info("Removing the directory '%s'." % dir)
+ if not self.dry_run:
+ os.rmdir(dir)
+- except OSError, e:
++ except OSError as e:
+ if e.errno == errno.ENOTEMPTY:
+ log.info("Directory '%s' not empty; not removing." % dir)
+ else:
+diff --git a/ndiff/test-scans/anonymize.py b/ndiff/test-scans/anonymize.py
+index 9ba612a..fd251fe 100755
+--- a/ndiff/test-scans/anonymize.py
++++ b/ndiff/test-scans/anonymize.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ # Anonymize an Nmap XML file, replacing host name and IP addresses with random
+ # anonymous ones. Anonymized names will be consistent between runs of the
+@@ -20,20 +20,20 @@ r = random.Random()
+
+
+ def hash(s):
+- digest = hashlib.sha512(s).hexdigest()
++ digest = hashlib.sha512(s.encode()).hexdigest()
+ return int(digest, 16)
+
+
+ def anonymize_mac_address(addr):
+ r.seed(hash(addr))
+ nums = (0, 0, 0) + tuple(r.randrange(256) for i in range(3))
+- return u":".join(u"%02X" % x for x in nums)
++ return ":".join("%02X" % x for x in nums)
+
+
+ def anonymize_ipv4_address(addr):
+ r.seed(hash(addr))
+ nums = (10,) + tuple(r.randrange(256) for i in range(3))
+- return u".".join(unicode(x) for x in nums)
++ return ".".join(str(x) for x in nums)
+
+
+ def anonymize_ipv6_address(addr):
+@@ -41,7 +41,7 @@ def anonymize_ipv6_address(addr):
+ # RFC 4193.
+ nums = (0xFD00 + r.randrange(256),)
+ nums = nums + tuple(r.randrange(65536) for i in range(7))
+- return u":".join("%04X" % x for x in nums)
++ return ":".join("%04X" % x for x in nums)
+
+ # Maps to memoize address and host name conversions.
+ hostname_map = {}
+@@ -54,11 +54,11 @@ def anonymize_hostname(name):
+ LETTERS = "acbdefghijklmnopqrstuvwxyz"
+ r.seed(hash(name))
+ length = r.randrange(5, 10)
+- prefix = u"".join(r.sample(LETTERS, length))
++ prefix = "".join(r.sample(LETTERS, length))
+ num = r.randrange(1000)
+- hostname_map[name] = u"%s-%d.example.com" % (prefix, num)
++ hostname_map[name] = "%s-%d.example.com" % (prefix, num)
+ if VERBOSE:
+- print >> sys.stderr, "Replace %s with %s" % (name, hostname_map[name])
++ print("Replace %s with %s" % (name, hostname_map[name]), file=sys.stderr)
+ return hostname_map[name]
+
+ mac_re = re.compile(r'\b([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}\b')
+@@ -78,7 +78,7 @@ def anonymize_address(addr):
+ else:
+ assert False
+ if VERBOSE:
+- print >> sys.stderr, "Replace %s with %s" % (addr, address_map[addr])
++ print("Replace %s with %s" % (addr, address_map[addr]), file=sys.stderr)
+ return address_map[addr]
+
+
+--
+2.24.1
+
diff --git a/meta-openembedded/meta-oe/recipes-security/nmap/files/0001-configure.ac-make-ndiff-depend-on-python3.patch b/meta-openembedded/meta-oe/recipes-security/nmap/files/0001-configure.ac-make-ndiff-depend-on-python3.patch
new file mode 100644
index 000000000..c43ff9f4d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-security/nmap/files/0001-configure.ac-make-ndiff-depend-on-python3.patch
@@ -0,0 +1,48 @@
+From 562893e665a6c9e1b60c8b3242bab6fe78318b3b Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Fri, 14 Feb 2020 08:19:54 +0000
+Subject: [PATCH] configure.ac: make ndiff depend on python3
+
+Python 2 ceased being maintained on the 1st January 2020.
+We've already removed all users of it from oe-core, so
+let ndiff depend on python3.
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ .../nmap/7.80-r0/nmap-7.80/configure.ac | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 9d2fff8..5ffdd55 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -237,16 +237,21 @@ if test $HAVE_PYTHON && test "x${PYTHON_VERSION%%.*}" = "x2"; then
+ HAVE_PYTHON2=true
+ fi
+
++HAVE_PYTHON3=false
++if test $HAVE_PYTHON && test "x${PYTHON_VERSION%%.*}" = "x3"; then
++ HAVE_PYTHON3=true
++fi
++
+ NDIFFDIR=ndiff
+
+ # Do they want Ndiff?
+ AC_ARG_WITH(ndiff, AC_HELP_STRING([--without-ndiff], [Skip installation of the Ndiff utility]), [], [with_ndiff=check])
+-if $HAVE_PYTHON2 ; then : ;
++if $HAVE_PYTHON3 ; then : ;
+ else
+ if test "$with_ndiff" = "check" ; then
+- AC_MSG_WARN([Not building Ndiff because Python 2.x with x>=4 was not found])
++ AC_MSG_WARN([Not building Ndiff because Python3 was not found])
+ elif test "$with_ndiff" = "yes"; then
+- AC_MSG_FAILURE([--with-ndiff requires Python 2.x with x>=4])
++ AC_MSG_FAILURE([--with-ndiff requires Python3])
+ fi
+ with_ndiff=no
+ fi
+--
+2.24.1
+
diff --git a/meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.80.bb b/meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.80.bb
index f24194da7..c76d2324e 100644
--- a/meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.80.bb
+++ b/meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.80.bb
@@ -10,12 +10,14 @@ SRC_URI = "http://nmap.org/dist/${BP}.tar.bz2 \
file://nmap-replace-shtool-mkdir-with-coreutils-mkdir-command.patch \
file://0001-Include-time.h-header-to-pass-clang-compilation.patch \
file://0002-Fix-building-with-libc.patch \
+ file://0001-Make-ndiff-support-python3.patch \
+ file://0001-configure.ac-make-ndiff-depend-on-python3.patch \
"
SRC_URI[md5sum] = "d37b75b06d1d40f27b76d60db420a1f5"
SRC_URI[sha256sum] = "fcfa5a0e42099e12e4bf7a68ebe6fde05553383a682e816a7ec9256ab4773faa"
-inherit autotools-brokensep pkgconfig pythonnative
+inherit autotools-brokensep pkgconfig python3native
PACKAGECONFIG ?= "ncat nping ndiff pcap"
@@ -28,7 +30,7 @@ PACKAGECONFIG[libz] = "--with-libz=${STAGING_LIBDIR}/.., --without-libz, zlib, z
#disable/enable packages
PACKAGECONFIG[nping] = ",--without-nping,"
PACKAGECONFIG[ncat] = ",--without-ncat,"
-PACKAGECONFIG[ndiff] = ",--without-ndiff,python"
+PACKAGECONFIG[ndiff] = "--with-ndiff=yes,--without-ndiff,python3"
PACKAGECONFIG[update] = ",--without-nmap-update,"
EXTRA_OECONF = "--with-libdnet=included --with-liblinear=included --without-subversion --with-liblua=included"
@@ -47,6 +49,12 @@ do_configure() {
oe_runconf
}
+do_install_append() {
+ if [ -f "${D}${bindir}/ndiff" ]; then
+ sed -i 's@^#!.*$@#!/usr/bin/env python3@g' ${D}${bindir}/ndiff
+ fi
+}
+
FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR} ${datadir}/ncat"
-RDEPENDS_${PN} = "python"
+RDEPENDS_${PN} += "python3-core"
diff --git a/meta-openembedded/meta-oe/recipes-shells/mksh/mksh_57.bb b/meta-openembedded/meta-oe/recipes-shells/mksh/mksh_58.bb
index 7e9c18ed2..a9940f88a 100644
--- a/meta-openembedded/meta-oe/recipes-shells/mksh/mksh_57.bb
+++ b/meta-openembedded/meta-oe/recipes-shells/mksh/mksh_58.bb
@@ -7,10 +7,10 @@ LIC_FILES_CHKSUM = "file://main.c;beginline=6;endline=26;md5=0651e575e39d1a3e884
file://strlcpy.c;beginline=1;endline=17;md5=d953f28f0c43ee29e238ec9bc15df2a0 \
"
-SRC_URI = "http://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R57.tgz"
+SRC_URI = "http://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R58.tgz"
-SRC_URI[md5sum] = "4d2686535252ea6a57bdec531498239a"
-SRC_URI[sha256sum] = "3d101154182d52ae54ef26e1360c95bc89c929d28859d378cc1c84f3439dbe75"
+SRC_URI[md5sum] = "6922a3e2228de2f0e78ff25398ccf8df"
+SRC_URI[sha256sum] = "608beb7b71870b23309ba1da8ca828da0e4540f2b9bd981eb39e04f8b7fc678c"
inherit update-alternatives
diff --git a/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.21.00.bb b/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.22.02.bb
index 278ab0458..b30c3434e 100644
--- a/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.21.00.bb
+++ b/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.22.02.bb
@@ -9,12 +9,12 @@ LIC_FILES_CHKSUM = "file://Copyright;md5=575cf2715c3bf894e1f79aec1d4eaaf5"
SECTION = "base"
DEPENDS = "ncurses virtual/crypt gettext-native"
SRC_URI = " \
- http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/${BP}.tar.gz \
+ https://astron.com/pub/${BPN}/${BP}.tar.gz \
file://0001-Enable-system-malloc-on-all-linux.patch \
file://0002-Add-debian-csh-scripts.patch \
"
-SRC_URI[md5sum] = "5bd5f11515cc5cca927777fa92f9d4b9"
-SRC_URI[sha256sum] = "c438325448371f59b12a4c93bfd3f6982e6f79f8c5aef4bc83aac8f62766e972"
+SRC_URI[md5sum] = "f34909eab33733aecc05d27adc82277b"
+SRC_URI[sha256sum] = "ed287158ca1b00ba477e8ea57bac53609838ebcfd05fcb05ca95021b7ebe885b"
EXTRA_OEMAKE += "CC_FOR_GETHOST='${BUILD_CC}'"
inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-Allow-avro-C-to-be-built-on-musl-based-systems.patch b/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-Allow-avro-C-to-be-built-on-musl-based-systems.patch
deleted file mode 100644
index 8964d6b72..000000000
--- a/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-Allow-avro-C-to-be-built-on-musl-based-systems.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 9b39a985bcd6cd34f0820f3680f145d46c0e56bd Mon Sep 17 00:00:00 2001
-From: Titouan Christophe <titouan.christophe@railnova.eu>
-Date: Sun, 8 Dec 2019 01:55:59 +0100
-Subject: [PATCH] Allow avro C to be built on musl based systems.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The type `ssize_t` is defined in sys/types.h, and nowhere else
-in the musl standard C library, so it should be included for the
-compilation to succeed.
-
-This fixes several errors like:
-
- In file included from src/generic.c:29:0:
- src/generic.c: In function ‘avro_generic_value_new’:
- src/avro_generic_internal.h:63:39:
- error: ‘ssize_t’ undeclared (first use in this function);
- did you mean ‘size_t’?
-
-Upstream-Status: Backport
-Signed-off-by: Titouan Christophe <titouan.christophe@railnova.eu>
----
- lang/c/src/avro_generic_internal.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/lang/c/src/avro_generic_internal.h b/lang/c/src/avro_generic_internal.h
-index 709403c03..9843ed652 100644
---- a/lang/c/src/avro_generic_internal.h
-+++ b/lang/c/src/avro_generic_internal.h
-@@ -24,6 +24,8 @@ extern "C" {
- #define CLOSE_EXTERN
- #endif
-
-+#include <sys/types.h>
-+
- #include "avro/generic.h"
- #include "avro/schema.h"
- #include "avro/value.h"
---
-2.24.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.9.1.bb b/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.9.2.bb
index 8954c9802..0642179fb 100644
--- a/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.9.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.9.2.bb
@@ -8,9 +8,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=6d502b41f76179fc84e536236f359cae"
DEPENDS = "jansson zlib xz"
BRANCH = "branch-1.9"
-SRCREV = "89218262cde62e98fcb3778b86cd3f03056c54f3"
+SRCREV = "bf20128ca6138a830b2ea13e0490f3df6b035639"
SRC_URI = "git://github.com/apache/avro;branch=${BRANCH} \
- file://0001-Allow-avro-C-to-be-built-on-musl-based-systems.patch;patchdir=../../ \
file://0001-cmake-Use-GNUInstallDirs-instead-of-hard-coded-paths.patch;patchdir=../../ \
"
diff --git a/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_8.0.4.bb b/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_8.0.4.bb
index f4ea17378..407de2138 100644
--- a/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_8.0.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_8.0.4.bb
@@ -28,8 +28,6 @@ SRC_URI = "git://github.com/ivmai/bdwgc.git;branch=release-8_0"
S = "${WORKDIR}/git"
-ARM_INSTRUCTION_SET = "arm"
-
inherit autotools pkgconfig
EXTRA_OECONF += "--enable-cpluscplus"
diff --git a/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares/0001-fix-configure-error-mv-libcares.pc.cmakein-to-libcar.patch b/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares/0001-fix-configure-error-mv-libcares.pc.cmakein-to-libcar.patch
new file mode 100644
index 000000000..8f15f8424
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares/0001-fix-configure-error-mv-libcares.pc.cmakein-to-libcar.patch
@@ -0,0 +1,27 @@
+From f2f1e134bf5d9d0789942848e03006af8d926cf8 Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@cn.fujitsu.com>
+Date: Tue, 17 Mar 2020 12:53:35 +0800
+Subject: [PATCH] fix configure error : mv libcares.pc.cmakein to
+ libcares.pc.cmake
+
+Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3a5878d..c2e5740 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -563,7 +563,7 @@ IF (CARES_STATIC)
+ ENDIF()
+
+ # Write ares_config.h configuration file. This is used only for the build.
+-CONFIGURE_FILE (libcares.pc.cmakein ${PROJECT_BINARY_DIR}/libcares.pc @ONLY)
++CONFIGURE_FILE (libcares.pc.cmake ${PROJECT_BINARY_DIR}/libcares.pc @ONLY)
+
+
+
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch b/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch
new file mode 100644
index 000000000..0eb7e4bbb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch
@@ -0,0 +1,84 @@
+From 12414304245cce6ef0e8b9547949be5109845353 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 24 Jul 2018 13:33:33 +0800
+Subject: [PATCH] cmake: Install libcares.pc
+
+Prepare and install libcares.pc file during cmake build, so libraries
+using pkg-config to find libcares will not fail.
+
+Signed-off-by: Alexey Firago <alexey_firago@mentor.com>
+
+update to 1.14.0, fix patch warning
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ CMakeLists.txt | 28 +++++++++++++++++++++++-----
+ 1 file changed, 23 insertions(+), 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fd123e1..3a5878d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -214,22 +214,25 @@ ADD_DEFINITIONS(${SYSFLAGS})
+
+
+ # Tell C-Ares about libraries to depend on
++# Also pass these libraries to pkg-config file
++SET(CARES_PRIVATE_LIBS_LIST)
+ IF (HAVE_LIBRESOLV)
+- LIST (APPEND CARES_DEPENDENT_LIBS resolv)
++ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lresolv")
+ ENDIF ()
+ IF (HAVE_LIBNSL)
+- LIST (APPEND CARES_DEPENDENT_LIBS nsl)
++ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lnsl")
+ ENDIF ()
+ IF (HAVE_LIBSOCKET)
+- LIST (APPEND CARES_DEPENDENT_LIBS socket)
++ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lsocket")
+ ENDIF ()
+ IF (HAVE_LIBRT)
+- LIST (APPEND CARES_DEPENDENT_LIBS rt)
++ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lrt")
+ ENDIF ()
+ IF (WIN32)
+- LIST (APPEND CARES_DEPENDENT_LIBS ws2_32 Advapi32)
++ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lws2_32")
+ ENDIF ()
+
++string (REPLACE ";" " " CARES_PRIVATE_LIBS "${CARES_PRIVATE_LIBS_LIST}")
+
+ # When checking for symbols, we need to make sure we set the proper
+ # headers, libraries, and definitions for the detection to work properly
+@@ -554,6 +557,15 @@ CONFIGURE_FILE (ares_build.h.cmake ${PROJECT_BINARY_DIR}/ares_build.h)
+ # Write ares_config.h configuration file. This is used only for the build.
+ CONFIGURE_FILE (ares_config.h.cmake ${PROJECT_BINARY_DIR}/ares_config.h)
+
++# Pass required CFLAGS to pkg-config in case of static library
++IF (CARES_STATIC)
++ SET (CPPFLAG_CARES_STATICLIB "-DCARES_STATICLIB")
++ENDIF()
++
++# Write ares_config.h configuration file. This is used only for the build.
++CONFIGURE_FILE (libcares.pc.cmakein ${PROJECT_BINARY_DIR}/libcares.pc @ONLY)
++
++
+
+ # TRANSFORM_MAKEFILE_INC
+ #
+@@ -728,6 +740,12 @@ IF (CARES_INSTALL)
+ INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcares.pc" COMPONENT Devel DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
+ ENDIF ()
+
++# pkg-config file
++IF (CARES_INSTALL)
++ SET (PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
++ INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcares.pc" DESTINATION ${PKGCONFIG_INSTALL_DIR})
++ENDIF ()
++
+ # Legacy chain-building variables (provided for compatibility with old code).
+ # Don't use these, external code should be updated to refer to the aliases directly (e.g., Cares::cares).
+ SET (CARES_FOUND 1 CACHE INTERNAL "CARES LIBRARY FOUND")
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares_1.16.0.bb b/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares_1.16.0.bb
new file mode 100644
index 000000000..e235b9b95
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares_1.16.0.bb
@@ -0,0 +1,27 @@
+# Copyright (c) 2012-2014 LG Electronics, Inc.
+SUMMARY = "c-ares is a C library that resolves names asynchronously."
+HOMEPAGE = "http://daniel.haxx.se/projects/c-ares/"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=fb997454c8d62aa6a47f07a8cd48b006"
+
+PV = "1.16.0+gitr${SRCPV}"
+
+SRC_URI = "\
+ git://github.com/c-ares/c-ares.git \
+ file://cmake-install-libcares.pc.patch \
+ file://0001-fix-configure-error-mv-libcares.pc.cmakein-to-libcar.patch \
+"
+SRCREV = "077a587dccbe2f0d8a1987fbd3525333705c2249"
+
+UPSTREAM_CHECK_GITTAGREGEX = "cares-(?P<pver>\d+_(\d_?)+)"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+PACKAGES =+ "${PN}-utils"
+
+FILES_${PN}-utils = "${bindir}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb
index da1a2a36f..22b9d0bb9 100644
--- a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb
@@ -12,6 +12,9 @@ inherit autotools pkgconfig
SRC_URI = "https://launchpad.net/${BPN}/trunk/v${PV}/+download/${BPN}-${PV}.tar.gz \
file://pessimizing-move.patch"
+
+UPSTREAM_CHECK_URI = "https://launchpad.net/frame/trunk"
+
SRC_URI[md5sum] = "02baa941091c5d198cd1623b3ad36e68"
SRC_URI[sha256sum] = "cfb9ab52cdccd926f1822a457264d0014c7eb9f4600a72626063dd073b26256f"
diff --git a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
index 9362a5c11..b9858d279 100644
--- a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
+++ b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
@@ -23,6 +23,9 @@ SRC_URI = "https://launchpad.net/${BPN}/trunk/${PV}/+download/${BPN}-${PV}.tar.x
file://fix-indentation-for-gcc6.patch \
file://0001-libgeis-Compare-the-first-character-of-string-to-nul.patch \
"
+
+UPSTREAM_CHECK_URI = "https://launchpad.net/geis/trunk"
+
SRC_URI[md5sum] = "2ff9d76a3ea5794516bb02c9d1924faf"
SRC_URI[sha256sum] = "8a60f5683852094038904e690d23cc5a90a980fc52da67f0f28890baa25c70eb"
diff --git a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb
index 22fd0f48e..e1d377725 100644
--- a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb
@@ -13,6 +13,9 @@ inherit autotools pkgconfig
DEPENDS = "frame"
CXXFLAGS_append_toolchain-clang = " -Wno-pessimizing-move"
SRC_URI = "https://launchpad.net/${BPN}/trunk/${PV}/+download/${BPN}-${PV}.tar.bz2"
+
+UPSTREAM_CHECK_URI = "https://launchpad.net/grail/trunk"
+
SRC_URI[md5sum] = "0df1b3ec6167920f310e2effe6e2ad44"
SRC_URI[sha256sum] = "5eed1f650f042481daa3a2de5e7d43261fe343b2a1b1e240f3b7fc26572c9df3"
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch
index 5232e2a1d..e108e0279 100644
--- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch
@@ -54,7 +54,7 @@ Index: cpprest/Release/tests/functional/websockets/client/authentication_tests.c
===================================================================
--- cpprest.orig/Release/tests/functional/websockets/client/authentication_tests.cpp
+++ cpprest/Release/tests/functional/websockets/client/authentication_tests.cpp
-@@ -93,6 +93,7 @@
+@@ -93,6 +93,7 @@ SUITE(authentication_tests)
return false;
}
@@ -62,46 +62,15 @@ Index: cpprest/Release/tests/functional/websockets/client/authentication_tests.c
TEST(ssl_test)
{
websocket_client client;
-@@ -127,6 +128,7 @@
+@@ -127,6 +128,7 @@ SUITE(authentication_tests)
throw;
}
}
+ */
- // These tests are specific to our websocketpp based implementation.
- #if !defined(__cplusplus_winrt)
-@@ -159,12 +161,14 @@
- }
- }
-
-+ /*
- // Test specifically for server SignalR team hit interesting cases with.
- TEST(sni_with_older_server_test)
- {
- websocket_client client;
- sni_test_impl(client);
- }
-+ */
-
- // WinRT doesn't expose option for disabling.
- // No stable server is available to reliably test this.
-@@ -194,6 +198,7 @@
- }
- }
-
-+ /*
- // Winrt doesn't allow explicitly setting server host for SNI.
- TEST(sni_explicit_hostname)
- {
-@@ -204,6 +209,7 @@
- websocket_client client(config);
- sni_test_impl(client);
- }
-+ */
-
void handshake_error_test_impl(const ::utility::string_t& host)
{
-@@ -225,11 +231,11 @@
+@@ -148,11 +150,11 @@ SUITE(authentication_tests)
}
}
@@ -114,13 +83,13 @@ Index: cpprest/Release/tests/functional/websockets/client/authentication_tests.c
- TEST(cert_expired) { handshake_error_test_impl(U("wss://expired.badssl.com/")); }
+ //TEST(cert_expired) { handshake_error_test_impl(U("wss://expired.badssl.com/")); }
- #endif
+ } // SUITE(authentication_tests)
Index: cpprest/Release/tests/functional/http/client/connections_and_errors.cpp
===================================================================
--- cpprest.orig/Release/tests/functional/http/client/connections_and_errors.cpp
+++ cpprest/Release/tests/functional/http/client/connections_and_errors.cpp
-@@ -406,6 +406,7 @@
+@@ -408,6 +408,7 @@
}
#endif
@@ -128,7 +97,7 @@ Index: cpprest/Release/tests/functional/http/client/connections_and_errors.cpp
// Try to connect to a server on a closed port and cancel the operation.
TEST_FIXTURE(uri_address, cancel_bad_port)
{
-@@ -437,6 +438,7 @@
+@@ -439,6 +440,7 @@
VERIFY_THROWS_HTTP_ERROR_CODE(t.get(), std::errc::operation_canceled);
}
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.14.bb b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.15.bb
index 11c8eab55..dee5ae256 100644
--- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.14.bb
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.15.bb
@@ -11,8 +11,8 @@ SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=maste
file://disable-float-tests.patch \
file://disable-outside-tests.patch "
-# tag 2.10.14
-SRCREV= "6f602bee67b088a299d7901534af3bce6334ab38"
+# tag 2.10.15
+SRCREV= "b94bc32ff84e815ba44c567f6fe4af5f5f6b3048"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-native-Fix-a-warning.patch b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-native-Fix-a-warning.patch
deleted file mode 100644
index 8d9577d5f..000000000
--- a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-native-Fix-a-warning.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From a43a3327ccd4b06a3bcf0c87d518a97c6b39ac02 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Sat, 6 Aug 2016 02:09:53 +0900
-Subject: [PATCH] daemontools: Fix a warning
-
-To fix the warning as following:
-
-WARNING: daemontools-native-0.76-r0 do_populate_sysroot: File '/build-poky/tmp/sysroots/x86_64-linux/usr/bin/chkshsgr' from daemontools-native was already stripped, this will prevent future debugging!
-
-Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
----
- src/conf-ld | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/conf-ld b/src/conf-ld
-index 59a0de7..1d0518a 100644
---- a/src/conf-ld
-+++ b/src/conf-ld
-@@ -1,3 +1,3 @@
--gcc -s
-+gcc
-
- This will be used to link .o files into an executable.
---
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch
index f164c2d10..9c07d758a 100644
--- a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch
+++ b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch
@@ -30,7 +30,7 @@ diff -Nurp daemontools-0.76.orig/src/Makefile daemontools-0.76/src/Makefile
hasshsgr.h: chkshsgr choose compile hasshsgr.h1 hasshsgr.h2 load \
tryshsgr.c warn-shsgr
- ./chkshsgr || ( cat warn-shsgr; exit 1 )
-+ chkshsgr || ( cat warn-shsgr; exit 1 )
++ echo "Warning: We can not run test on cross target. - ignoring ./chkshsgr || ( cat warn-shsgr; exit 1 )"
./choose clr tryshsgr hasshsgr.h1 hasshsgr.h2 > hasshsgr.h
haswaitp.h: choose compile haswaitp.h1 haswaitp.h2 load trywaitp.c
@@ -39,7 +39,7 @@ diff -Nurp daemontools-0.76.orig/src/Makefile daemontools-0.76/src/Makefile
readproctitle rts.tests setlock setuidgid softlimit supervise svc \
svok svscan svscanboot svstat tai64n tai64nlocal
- env - /bin/sh rts.tests 2>&1 | cat -v > rts
-+ echo "Warning: We can not run test on cross target."
++ echo "Warning: We can not run test on cross target. - ignoring env - /bin/sh rts.tests 2>&1 | cat -v > rts"
scan_ulong.o: compile scan.h scan_ulong.c
./compile scan_ulong.c
diff --git a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
index 35251cb8d..f0c5f7d7d 100644
--- a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
+++ b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
@@ -16,21 +16,16 @@ LIC_FILES_CHKSUM = "file://src/prot.c;beginline=1;endline=1;md5=96964cadf07e8f8c
LICENSE = "PD"
SRC_URI = "http://cr.yp.to/daemontools/${BPN}-${PV}.tar.gz \
- file://0001-error.h-include-errno.h-instead-of-extern-int.diff \
- file://0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff "
-
-SRC_URI_append_class-target = "file://cross-compile.patch \
- file://0001-daemontools-Fix-QA-Issue.patch "
-
-SRC_URI_append_class-native = "file://0001-daemontools-native-Fix-a-warning.patch "
+ file://0001-error.h-include-errno.h-instead-of-extern-int.diff \
+ file://0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff \
+ file://cross-compile.patch \
+ file://0001-daemontools-Fix-QA-Issue.patch \
+"
SRC_URI[md5sum] = "1871af2453d6e464034968a0fbcb2bfc"
SRC_URI[sha256sum] = "a55535012b2be7a52dcd9eccabb9a198b13be50d0384143bd3b32b8710df4c1f"
-S = "${WORKDIR}/admin/${BPN}-${PV}"
-
-DEPENDS += "daemontools-native"
-DEPENDS_class-native = ""
+S = "${WORKDIR}/admin/${BP}"
do_compile() {
./package/compile
@@ -40,12 +35,10 @@ do_install() {
install -d ${D}/${bindir}
}
-do_install_append_class-native() {
- install -m 755 ${S}/compile/chkshsgr ${D}/${bindir}
-}
-
do_install_append_class-target() {
install -m755 ${S}/command/* ${D}/${bindir}
}
-BBCLASSEXTEND = "native"
+inherit update-alternatives
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE_${PN} = "svc svok"
diff --git a/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.4.bb b/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.4.bb
index 8eb715740..2e37dd72e 100644
--- a/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.4.bb
@@ -19,4 +19,4 @@ do_install() {
oe_runmake 'DESTDIR=${D}' install
}
-RDEPENDS_${PN} += "python-core python-misc python-resource python-shell python-unixadmin"
+RDEPENDS_${PN} += "python3-core python3-misc python3-resource python3-shell python3-unixadmin"
diff --git a/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb b/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb
index 6b23bbf78..8ca574014 100644
--- a/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=e7732a9290ea1e4b034fdc15cf49968d \
DEPENDS = "jpeg libexif"
SRC_URI = "git://github.com/mattes/epeg.git"
-SRCREV = "337f55346425fbf2d283e794b702318ef2a74bcb"
+SRCREV = "9a175cd67eaa61fe45413d8da82da72936567047"
S = "${WORKDIR}/git"
inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb b/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb
index 0d033f361..09344cf7d 100644
--- a/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb
+++ b/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb
@@ -2,7 +2,7 @@ require ${BPN}.inc
DEPENDS = "alsa-lib zlib jpeg libpng libxext libxft"
-inherit features_check binconfig lib_package gtk-icon-cache mime
+inherit features_check binconfig lib_package gtk-icon-cache mime mime-xdg
REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI += " \
diff --git a/meta-openembedded/meta-oe/recipes-support/fmt/fmt_6.0.0.bb b/meta-openembedded/meta-oe/recipes-support/fmt/fmt_6.2.0.bb
index c35c77b12..05dc94a99 100644
--- a/meta-openembedded/meta-oe/recipes-support/fmt/fmt_6.0.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/fmt/fmt_6.2.0.bb
@@ -5,7 +5,7 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=af88d758f75f3c5c48a967501f24384b"
SRC_URI += "git://github.com/fmtlib/fmt"
-SRCREV = "7512a55aa3ae309587ca89668ef9ec4074a51a1f"
+SRCREV = "9bdd1596cef1b57b9556f8bef32dc4a32322ef3e"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb
index 373c4979f..7cafbb799 100644
--- a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb
@@ -10,11 +10,12 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
inherit pkgconfig cmake gitpkgv
+PE = "1"
PV = "2.0.0+gitr${SRCPV}"
PKGV = "${GITPKGVTAG}"
-# 2.0.0-rc4
-SRCREV = "e21b72c95f857817b4b32b5ef5406355c005a9e8"
+# 2.0.0 release
+SRCREV = "5ab2bed8749747b8e4b2ed431fd102bc726be684"
SRC_URI = "git://github.com/FreeRDP/FreeRDP.git \
file://winpr-makecert-Build-with-install-RPATH.patch \
"
@@ -39,7 +40,7 @@ PACKAGECONFIG ??= " \
X11_DEPS = "virtual/libx11 libxinerama libxext libxcursor libxv libxi libxrender libxfixes libxdamage libxrandr libxkbfile"
PACKAGECONFIG[x11] = "-DWITH_X11=ON -DWITH_XINERAMA=ON -DWITH_XEXT=ON -DWITH_XCURSOR=ON -DWITH_XV=ON -DWITH_XI=ON -DWITH_XRENDER=ON -DWITH_XFIXES=ON -DWITH_XDAMAGE=ON -DWITH_XRANDR=ON -DWITH_XKBFILE=ON,-DWITH_X11=OFF,${X11_DEPS}"
-PACKAGECONFIG[wayland] = "-DWITH_WAYLAND=ON,-DWITH_WAYLAND=OFF,wayland"
+PACKAGECONFIG[wayland] = "-DWITH_WAYLAND=ON,-DWITH_WAYLAND=OFF,wayland wayland-native"
PACKAGECONFIG[directfb] = "-DWITH_DIRECTFB=ON,-DWITH_DIRECTFB=OFF,directfb"
PACKAGECONFIG[pam] = "-DWITH_PAM=ON,-DWITH_PAM=OFF,libpam"
PACKAGECONFIG[pulseaudio] = "-DWITH_PULSEAUDIO=ON,-DWITH_PULSEAUDIO=OFF,pulseaudio"
diff --git a/meta-openembedded/meta-oe/recipes-support/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch b/meta-openembedded/meta-oe/recipes-support/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch
deleted file mode 100644
index c377b370e..000000000
--- a/meta-openembedded/meta-oe/recipes-support/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 85c7694a5cf34597909bdd1ca6931b0f99904c2e Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Tue, 19 Jun 2018 00:40:49 -0700
-Subject: [PATCH] annotate.c/gdft.c: Replace strncpy with memccpy to fix
- -Wstringop-truncation.
-
-Fixed for gcc8:
-git/src/gdft.c:1699:2: error: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation]
-
-Upstream-Status: Submitted [https://github.com/libgd/libgd/pull/442]
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- src/annotate.c | 2 +-
- src/gdft.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/annotate.c b/src/annotate.c
-index 00aaf49..17df813 100644
---- a/src/annotate.c
-+++ b/src/annotate.c
-@@ -104,7 +104,7 @@ int main(int argc, char *argv[])
- fprintf(stderr, "Font maximum length is 1024, %d given\n", font_len);
- goto badLine;
- }
-- strncpy(font, st, font_len);
-+ memcpy(font, st, font_len);
- }
- } else if(!strcmp(st, "align")) {
- char *st = strtok(0, " \t\r\n");
-diff --git a/src/gdft.c b/src/gdft.c
-index 9fa8295..81dbe41 100644
---- a/src/gdft.c
-+++ b/src/gdft.c
-@@ -1696,7 +1696,7 @@ static char * font_path(char **fontpath, char *name_list)
- gdFree(path);
- return "could not alloc full list of fonts";
- }
-- strncpy(fontlist, name_list, name_list_len);
-+ memcpy(fontlist, name_list, name_list_len);
- fontlist[name_list_len] = 0;
-
- /*
---
-2.10.2
-
diff --git a/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2018-1000222.patch b/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2018-1000222.patch
deleted file mode 100644
index 25924d1aa..000000000
--- a/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2018-1000222.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 4b1e18a00ce7c4b7e6919c3b3109a034393b805a Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Sat, 14 Jul 2018 13:54:08 -0400
-Subject: [PATCH] bmp: check return value in gdImageBmpPtr
-
-Closes #447.
-
-(cherry picked from commit ac16bdf2d41724b5a65255d4c28fb0ec46bc42f5)
-
-Upstream-Status: Backport [https://github.com/libgd/libgd/commit/4b1e18a00ce7c4b7e6919c3b3109a034393b805a]
-CVE: CVE-2018-1000222
-Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
----
- src/gd_bmp.c | 17 ++++++++++++++---
- 1 file changed, 14 insertions(+), 3 deletions(-)
-
-diff --git a/src/gd_bmp.c b/src/gd_bmp.c
-index ccafdcd..d625da1 100644
---- a/src/gd_bmp.c
-+++ b/src/gd_bmp.c
-@@ -48,6 +48,8 @@ static int bmp_read_4bit(gdImagePtr im, gdIOCtxPtr infile, bmp_info_t *info, bmp
- static int bmp_read_8bit(gdImagePtr im, gdIOCtxPtr infile, bmp_info_t *info, bmp_hdr_t *header);
- static int bmp_read_rle(gdImagePtr im, gdIOCtxPtr infile, bmp_info_t *info);
-
-+static int _gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression);
-+
- #define BMP_DEBUG(s)
-
- static int gdBMPPutWord(gdIOCtx *out, int w)
-@@ -88,8 +90,10 @@ BGD_DECLARE(void *) gdImageBmpPtr(gdImagePtr im, int *size, int compression)
- void *rv;
- gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
- if (out == NULL) return NULL;
-- gdImageBmpCtx(im, out, compression);
-- rv = gdDPExtractData(out, size);
-+ if (!_gdImageBmpCtx(im, out, compression))
-+ rv = gdDPExtractData(out, size);
-+ else
-+ rv = NULL;
- out->gd_free(out);
- return rv;
- }
-@@ -142,6 +146,11 @@ BGD_DECLARE(void) gdImageBmp(gdImagePtr im, FILE *outFile, int compression)
- compression - whether to apply RLE or not.
- */
- BGD_DECLARE(void) gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression)
-+{
-+ _gdImageBmpCtx(im, out, compression);
-+}
-+
-+static int _gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression)
- {
- int bitmap_size = 0, info_size, total_size, padding;
- int i, row, xpos, pixel;
-@@ -149,6 +158,7 @@ BGD_DECLARE(void) gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression)
- unsigned char *uncompressed_row = NULL, *uncompressed_row_start = NULL;
- FILE *tmpfile_for_compression = NULL;
- gdIOCtxPtr out_original = NULL;
-+ int ret = 1;
-
- /* No compression if its true colour or we don't support seek */
- if (im->trueColor) {
-@@ -326,6 +336,7 @@ BGD_DECLARE(void) gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression)
- out_original = NULL;
- }
-
-+ ret = 0;
- cleanup:
- if (tmpfile_for_compression) {
- #ifdef _WIN32
-@@ -339,7 +350,7 @@ cleanup:
- if (out_original) {
- out_original->gd_free(out_original);
- }
-- return;
-+ return ret;
- }
-
- static int compress_row(unsigned char *row, int length)
---
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2019-6978.patch b/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2019-6978.patch
deleted file mode 100644
index 9beb23e83..000000000
--- a/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2019-6978.patch
+++ /dev/null
@@ -1,299 +0,0 @@
-From 553702980ae89c83f2d6e254d62cf82e204956d0 Mon Sep 17 00:00:00 2001
-From: "Christoph M. Becker" <cmbecker69@gmx.de>
-Date: Thu, 17 Jan 2019 11:54:55 +0100
-Subject: [PATCH] Fix #492: Potential double-free in gdImage*Ptr()
-
-Whenever `gdImage*Ptr()` calls `gdImage*Ctx()` and the latter fails, we
-must not call `gdDPExtractData()`; otherwise a double-free would
-happen. Since `gdImage*Ctx()` are void functions, and we can't change
-that for BC reasons, we're introducing static helpers which are used
-internally.
-
-We're adding a regression test for `gdImageJpegPtr()`, but not for
-`gdImageGifPtr()` and `gdImageWbmpPtr()` since we don't know how to
-trigger failure of the respective `gdImage*Ctx()` calls.
-
-This potential security issue has been reported by Solmaz Salimi (aka.
-Rooney).
----
- src/gd_gif_out.c | 18 +++++++++++++++---
- src/gd_jpeg.c | 20 ++++++++++++++++----
- src/gd_wbmp.c | 21 ++++++++++++++++++---
- tests/jpeg/.gitignore | 1 +
- tests/jpeg/CMakeLists.txt | 1 +
- tests/jpeg/Makemodule.am | 3 ++-
- tests/jpeg/jpeg_ptr_double_free.c | 31 +++++++++++++++++++++++++++++++
- 7 files changed, 84 insertions(+), 11 deletions(-)
- create mode 100644 tests/jpeg/jpeg_ptr_double_free.c
-
-Upstream-Status: Backport [https://github.com/libgd/libgd/commit/553702980ae89c83f2d6e254d62cf82e204956d0]
-CVE: CVE-2019-6978
-
-Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
-
-
-diff --git a/src/gd_gif_out.c b/src/gd_gif_out.c
-index 298a581..d5a9534 100644
---- a/src/gd_gif_out.c
-+++ b/src/gd_gif_out.c
-@@ -99,6 +99,7 @@ static void char_init(GifCtx *ctx);
- static void char_out(int c, GifCtx *ctx);
- static void flush_char(GifCtx *ctx);
-
-+static int _gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out);
-
-
-
-@@ -131,8 +132,11 @@ BGD_DECLARE(void *) gdImageGifPtr(gdImagePtr im, int *size)
- void *rv;
- gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
- if (out == NULL) return NULL;
-- gdImageGifCtx(im, out);
-- rv = gdDPExtractData(out, size);
-+ if (!_gdImageGifCtx(im, out)) {
-+ rv = gdDPExtractData(out, size);
-+ } else {
-+ rv = NULL;
-+ }
- out->gd_free(out);
- return rv;
- }
-@@ -220,6 +224,12 @@ BGD_DECLARE(void) gdImageGif(gdImagePtr im, FILE *outFile)
-
- */
- BGD_DECLARE(void) gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)
-+{
-+ _gdImageGifCtx(im, out);
-+}
-+
-+/* returns 0 on success, 1 on failure */
-+static int _gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)
- {
- gdImagePtr pim = 0, tim = im;
- int interlace, BitsPerPixel;
-@@ -231,7 +241,7 @@ BGD_DECLARE(void) gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)
- based temporary image. */
- pim = gdImageCreatePaletteFromTrueColor(im, 1, 256);
- if(!pim) {
-- return;
-+ return 1;
- }
- tim = pim;
- }
-@@ -247,6 +257,8 @@ BGD_DECLARE(void) gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)
- /* Destroy palette based temporary image. */
- gdImageDestroy( pim);
- }
-+
-+ return 0;
- }
-
-
-diff --git a/src/gd_jpeg.c b/src/gd_jpeg.c
-index fc05842..96ef430 100644
---- a/src/gd_jpeg.c
-+++ b/src/gd_jpeg.c
-@@ -117,6 +117,8 @@ static void fatal_jpeg_error(j_common_ptr cinfo)
- exit(99);
- }
-
-+static int _gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality);
-+
- /*
- * Write IM to OUTFILE as a JFIF-formatted JPEG image, using quality
- * QUALITY. If QUALITY is in the range 0-100, increasing values
-@@ -231,8 +233,11 @@ BGD_DECLARE(void *) gdImageJpegPtr(gdImagePtr im, int *size, int quality)
- void *rv;
- gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
- if (out == NULL) return NULL;
-- gdImageJpegCtx(im, out, quality);
-- rv = gdDPExtractData(out, size);
-+ if (!_gdImageJpegCtx(im, out, quality)) {
-+ rv = gdDPExtractData(out, size);
-+ } else {
-+ rv = NULL;
-+ }
- out->gd_free(out);
- return rv;
- }
-@@ -253,6 +258,12 @@ void jpeg_gdIOCtx_dest(j_compress_ptr cinfo, gdIOCtx *outfile);
-
- */
- BGD_DECLARE(void) gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality)
-+{
-+ _gdImageJpegCtx(im, outfile, quality);
-+}
-+
-+/* returns 0 on success, 1 on failure */
-+static int _gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality)
- {
- struct jpeg_compress_struct cinfo;
- struct jpeg_error_mgr jerr;
-@@ -287,7 +298,7 @@ BGD_DECLARE(void) gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality)
- if(row) {
- gdFree(row);
- }
-- return;
-+ return 1;
- }
-
- cinfo.err->emit_message = jpeg_emit_message;
-@@ -328,7 +339,7 @@ BGD_DECLARE(void) gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality)
- if(row == 0) {
- gd_error("gd-jpeg: error: unable to allocate JPEG row structure: gdCalloc returns NULL\n");
- jpeg_destroy_compress(&cinfo);
-- return;
-+ return 1;
- }
-
- rowptr[0] = row;
-@@ -405,6 +416,7 @@ BGD_DECLARE(void) gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality)
- jpeg_finish_compress(&cinfo);
- jpeg_destroy_compress(&cinfo);
- gdFree(row);
-+ return 0;
- }
-
-
-diff --git a/src/gd_wbmp.c b/src/gd_wbmp.c
-index f19a1c9..a49bdbe 100644
---- a/src/gd_wbmp.c
-+++ b/src/gd_wbmp.c
-@@ -88,6 +88,8 @@ int gd_getin(void *in)
- return (gdGetC((gdIOCtx *)in));
- }
-
-+static int _gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out);
-+
- /*
- Function: gdImageWBMPCtx
-
-@@ -100,6 +102,12 @@ int gd_getin(void *in)
- out - the stream where to write
- */
- BGD_DECLARE(void) gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out)
-+{
-+ _gdImageWBMPCtx(image, fg, out);
-+}
-+
-+/* returns 0 on success, 1 on failure */
-+static int _gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out)
- {
- int x, y, pos;
- Wbmp *wbmp;
-@@ -107,7 +115,7 @@ BGD_DECLARE(void) gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out)
- /* create the WBMP */
- if((wbmp = createwbmp(gdImageSX(image), gdImageSY(image), WBMP_WHITE)) == NULL) {
- gd_error("Could not create WBMP\n");
-- return;
-+ return 1;
- }
-
- /* fill up the WBMP structure */
-@@ -123,11 +131,15 @@ BGD_DECLARE(void) gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out)
-
- /* write the WBMP to a gd file descriptor */
- if(writewbmp(wbmp, &gd_putout, out)) {
-+ freewbmp(wbmp);
- gd_error("Could not save WBMP\n");
-+ return 1;
- }
-
- /* des submitted this bugfix: gdFree the memory. */
- freewbmp(wbmp);
-+
-+ return 0;
- }
-
- /*
-@@ -271,8 +283,11 @@ BGD_DECLARE(void *) gdImageWBMPPtr(gdImagePtr im, int *size, int fg)
- void *rv;
- gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
- if (out == NULL) return NULL;
-- gdImageWBMPCtx(im, fg, out);
-- rv = gdDPExtractData(out, size);
-+ if (!_gdImageWBMPCtx(im, fg, out)) {
-+ rv = gdDPExtractData(out, size);
-+ } else {
-+ rv = NULL;
-+ }
- out->gd_free(out);
- return rv;
- }
-diff --git a/tests/jpeg/.gitignore b/tests/jpeg/.gitignore
-index c28aa87..13bcf04 100644
---- a/tests/jpeg/.gitignore
-+++ b/tests/jpeg/.gitignore
-@@ -3,5 +3,6 @@
- /jpeg_empty_file
- /jpeg_im2im
- /jpeg_null
-+/jpeg_ptr_double_free
- /jpeg_read
- /jpeg_resolution
-diff --git a/tests/jpeg/CMakeLists.txt b/tests/jpeg/CMakeLists.txt
-index 19964b0..a8d8162 100644
---- a/tests/jpeg/CMakeLists.txt
-+++ b/tests/jpeg/CMakeLists.txt
-@@ -2,6 +2,7 @@ IF(JPEG_FOUND)
- LIST(APPEND TESTS_FILES
- jpeg_empty_file
- jpeg_im2im
-+ jpeg_ptr_double_free
- jpeg_null
- )
-
-diff --git a/tests/jpeg/Makemodule.am b/tests/jpeg/Makemodule.am
-index 7e5d317..b89e169 100644
---- a/tests/jpeg/Makemodule.am
-+++ b/tests/jpeg/Makemodule.am
-@@ -2,7 +2,8 @@ if HAVE_LIBJPEG
- libgd_test_programs += \
- jpeg/jpeg_empty_file \
- jpeg/jpeg_im2im \
-- jpeg/jpeg_null
-+ jpeg/jpeg_null \
-+ jpeg/jpeg_ptr_double_free
-
- if HAVE_LIBPNG
- libgd_test_programs += \
-diff --git a/tests/jpeg/jpeg_ptr_double_free.c b/tests/jpeg/jpeg_ptr_double_free.c
-new file mode 100644
-index 0000000..df5a510
---- /dev/null
-+++ b/tests/jpeg/jpeg_ptr_double_free.c
-@@ -0,0 +1,31 @@
-+/**
-+ * Test that failure to convert to JPEG returns NULL
-+ *
-+ * We are creating an image, set its width to zero, and pass this image to
-+ * `gdImageJpegPtr()` which is supposed to fail, and as such should return NULL.
-+ *
-+ * See also <https://github.com/libgd/libgd/issues/381>
-+ */
-+
-+
-+#include "gd.h"
-+#include "gdtest.h"
-+
-+
-+int main()
-+{
-+ gdImagePtr src, dst;
-+ int size;
-+
-+ src = gdImageCreateTrueColor(1, 10);
-+ gdTestAssert(src != NULL);
-+
-+ src->sx = 0; /* this hack forces gdImageJpegPtr() to fail */
-+
-+ dst = gdImageJpegPtr(src, &size, 0);
-+ gdTestAssert(dst == NULL);
-+
-+ gdImageDestroy(src);
-+
-+ return gdNumFailures();
-+}
---
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb b/meta-openembedded/meta-oe/recipes-support/gd/gd_2.3.0.bb
index 35f9bb251..eec8a05ae 100644
--- a/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gd/gd_2.3.0.bb
@@ -5,21 +5,18 @@ images, and flood fills, and to write out the result as a PNG or JPEG file. \
This is particularly useful in Web applications, where PNG and JPEG are two \
of the formats accepted for inline images by most browsers. Note that gd is not \
a paint program."
-HOMEPAGE = "http://libgd.bitbucket.org/"
+HOMEPAGE = "http://libgd.github.io/"
SECTION = "libs"
LICENSE = "GD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=07384b3aa2e0d39afca0d6c40286f545"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8e5bc8627b9494741c905d65238c66b7"
DEPENDS = "freetype libpng jpeg zlib tiff"
-SRC_URI = "git://github.com/libgd/libgd.git;branch=GD-2.2 \
- file://0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch \
- file://CVE-2018-1000222.patch \
- file://CVE-2019-6978.patch \
+SRC_URI = "git://github.com/libgd/libgd.git;branch=master \
"
-SRCREV = "8255231b68889597d04d451a72438ab92a405aba"
+SRCREV = "b079fa06223c3ab862c8f0eea58a968727971988"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/gengetopt/gengetopt_2.23.bb b/meta-openembedded/meta-oe/recipes-support/gengetopt/gengetopt_2.23.bb
new file mode 100644
index 000000000..118e3c50c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gengetopt/gengetopt_2.23.bb
@@ -0,0 +1,16 @@
+SUMMARY = "skeleton main.c generator"
+DESCRIPTION = "Gengetopt is a tool to write command line option parsing code for C programs."
+SECTION = "utils"
+HOMEPAGE = "https://www.gnu.org/software/gengetopt/gengetopt.html"
+
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ff95bfe019feaf92f524b73dd79e76eb"
+
+SRC_URI = "${GNU_MIRROR}/gengetopt/${BPN}-${PV}.tar.xz"
+
+SRC_URI[md5sum] = "ea165d618640dbdecb42ae4491337965"
+SRC_URI[sha256sum] = "b941aec9011864978dd7fdeb052b1943535824169d2aa2b0e7eae9ab807584ac"
+
+inherit autotools texinfo
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb b/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb
index 70eef7205..9a8332836 100644
--- a/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb
@@ -6,8 +6,6 @@ HOMEPAGE = "https://github.com/google/glog"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=dc9db360e0bbd4e46672f3fd91dd6c4b"
-DEPENDS = "libunwind"
-
SRC_URI = " \
git://github.com/google/glog.git;nobranch=1 \
file://0001-Rework-CMake-glog-VERSION-management.patch \
@@ -21,6 +19,9 @@ S = "${WORKDIR}/git"
inherit cmake
-RDEPENDS_${PN} += "libunwind"
+PACKAGECONFIG ?= "shared unwind"
+PACKAGECONFIG_remove_riscv64 = "unwind"
+PACKAGECONFIG_remove_riscv32 = "unwind"
-EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON"
+PACKAGECONFIG[unwind] = "-DWITH_UNWIND=ON,-DWITH_UNWIND=OFF,libunwind,libunwind"
+PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF,,"
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
index 49d5c2167..cb4ead317 100644
--- a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
@@ -6,26 +6,12 @@ Subject: [PATCH] fix build with musl libc
Patch from https://github.com/gperftools/gperftools/pull/765/
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---
- configure.ac | 1 +
- src/malloc_hook_mmap_linux.h | 8 ++++++--
- 2 files changed, 7 insertions(+), 2 deletions(-)
+ src/malloc_hook_mmap_linux.h | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
-diff --git a/configure.ac b/configure.ac
-index 497103e..f9efc3e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -188,6 +188,7 @@ AC_HEADER_STDC
- AC_CHECK_TYPES([__int64]) # defined in some windows platforms
- AC_CHECK_TYPES([struct mallinfo],,, [#include <malloc.h>])
- AC_CHECK_TYPES([Elf32_Versym],,, [#include <elf.h>]) # for vdso_support.h
-+AC_CHECK_FUNCS(__sbrk) # for intercepting glibc memory allocator
- AC_CHECK_FUNCS(sbrk) # for tcmalloc to get memory
- AC_CHECK_FUNCS(geteuid) # for turning off services when run as root
- AC_CHECK_FUNCS(fork) # for the pthread_atfork setup
diff --git a/src/malloc_hook_mmap_linux.h b/src/malloc_hook_mmap_linux.h
-index 2f6116f..0605855 100755
+index e2efb05..66b3110 100644
--- a/src/malloc_hook_mmap_linux.h
+++ b/src/malloc_hook_mmap_linux.h
@@ -46,6 +46,10 @@
@@ -39,7 +25,7 @@ index 2f6116f..0605855 100755
// The x86-32 case and the x86-64 case differ:
// 32b has a mmap2() syscall, 64b does not.
// 64b and 32b have different calling conventions for mmap().
-@@ -168,7 +172,7 @@ extern "C" void* mmap64(void *start, size_t length, int prot, int flags,
+@@ -175,7 +179,7 @@ extern "C" void* mmap64(void *start, size_t length, int prot, int flags,
return result;
}
@@ -48,12 +34,6 @@ index 2f6116f..0605855 100755
extern "C" void* mmap(void *start, size_t length, int prot, int flags,
int fd, off_t offset) __THROW {
-@@ -206,7 +210,7 @@ extern "C" void* mremap(void* old_addr, size_t old_size, size_t new_size,
- return result;
- }
-
--#ifndef __UCLIBC__
-+#if HAVE___SBRK
- // libc's version:
- extern "C" void* __sbrk(intptr_t increment);
-
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.90.bb
index ee34acec2..b7b783931 100644
--- a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.90.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/gperftools/gperftools"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a"
-SRCREV = "9608fa3bcf8020d35f59fbf70cd3cbe4b015b972"
+SRCREV = "db7aa547abb5abdd558587a15502584cbc825438"
SRC_URI = "git://github.com/gperftools/gperftools \
file://0001-Support-Atomic-ops-on-clang.patch \
file://0001-fix-build-with-musl-libc.patch \
@@ -20,6 +20,9 @@ S = "${WORKDIR}/git"
# do_page_fault(): sending SIGSEGV to ls for invalid read access from 00000008
# Segmentation fault (core dumped)
COMPATIBLE_HOST_mipsarch = "null"
+COMPATIBLE_HOST_riscv64 = "null"
+COMPATIBLE_HOST_riscv32 = "null"
+
# Disable thumb1
# {standard input}: Assembler messages:
# {standard input}:434: Error: lo register required -- `ldr pc,[sp]'
@@ -29,6 +32,8 @@ ARM_INSTRUCTION_SET_toolchain-clang_arm = "arm"
PACKAGECONFIG ?= "libunwind static"
PACKAGECONFIG_remove_arm_libc-musl = "libunwind"
+PACKAGECONFIG_remove_riscv64 = "libunwind"
+PACKAGECONFIG_remove_riscv32 = "libunwind"
PACKAGECONFIG[libunwind] = "--enable-libunwind,--disable-libunwind,libunwind"
PACKAGECONFIG[static] = "--enable-static,--disable-static,"
diff --git a/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb b/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
index 7034d3385..3800d147f 100644
--- a/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
@@ -21,7 +21,7 @@ SRC_URI = "git://github.com/telmich/gpm;protocol=git \
S = "${WORKDIR}/git"
-inherit autotools-brokensep update-rc.d systemd
+inherit autotools-brokensep update-rc.d systemd texinfo
INITSCRIPT_NAME = "gpm"
INITSCRIPT_PARAMS = "defaults"
diff --git a/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.95.bb b/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.100.bb
index 22a049892..0b4eac889 100644
--- a/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.95.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.100.bb
@@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4f40a941379143186f9602242c3fb729 \
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}2/${BPN}_${PV}.zip \
"
-SRC_URI[md5sum] = "88031646018d60857f21246962d10011"
-SRC_URI[sha256sum] = "fe07aa152cd946ef8ebd3f87653f14c1d38efe7c6e6fce8c6f773c4814f79baf"
+SRC_URI[md5sum] = "f0fc5394286753eff657cf62b46d024b"
+SRC_URI[sha256sum] = "11b4f99d28392e3e1aeb29bfd006a4f1f40e7fdd7a3f3444ee69014d415f09f2"
inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
index e20bec5d8..5f3e3f686 100644
--- a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
@@ -5,8 +5,8 @@ SECTION = "System/Base"
LICENSE = "GPL-2.0+"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57"
-PV = "0.330"
-SRCREV = "335f72f8ed4ad0cf335526d3c6c4701f7e58f45b"
+PV = "0.333"
+SRCREV = "2de52be0d00015fa6cde70bb845fa9b86cf6f420"
SRC_URI = "git://github.com/vcrhonek/${BPN}.git"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb b/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
index 0903e90d7..986984d1f 100644
--- a/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
@@ -13,7 +13,7 @@ SRC_URI = "git://github.com/meduketto/iksemel.git;protocol=https \
S = "${WORKDIR}/git"
-inherit autotools pkgconfig lib_package
+inherit autotools pkgconfig lib_package texinfo
# TLS support requires either openssl or gnutls (if both are enabled openssl will be used).
PACKAGECONFIG ?= "gnutls"
diff --git a/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb b/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb
index 87b1142e0..227e2a7b7 100644
--- a/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb
@@ -12,6 +12,8 @@ SRCREV = "c858aff8c31fa63ef4d1e0176c10e5928cde9a23"
SRC_URI = "git://github.com/OSSystems/inih.git \
"
+UPSTREAM_CHECK_COMMITS = "1"
+
S = "${WORKDIR}/git"
inherit gitpkgv cmake
diff --git a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/0001-Makefile.am-add-build-rule-for-README.patch b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/0001-Makefile.am-add-build-rule-for-README.patch
new file mode 100644
index 000000000..2c7cd9970
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/0001-Makefile.am-add-build-rule-for-README.patch
@@ -0,0 +1,46 @@
+From 22bff509e2a0e5640994bc92ded62c383d99bc37 Mon Sep 17 00:00:00 2001
+From: Pierre-Jean Texier <pjtexier@koncepto.io>
+Date: Mon, 24 Feb 2020 21:44:45 +0100
+Subject: [PATCH] Makefile.am: add build rule for README
+
+Fixes:
+
+| configure.ac:17: installing 'config/config.sub'
+| configure.ac:16: installing 'config/install-sh'
+| configure.ac:16: installing 'config/missing'
+| Makefile.am: error: required file './README' not found
+| libinotifytools/src/Makefile.am: installing 'config/depcomp'
+
+Upstream-Status: Submitted [https://github.com/inotify-tools/inotify-tools/pull/111]
+
+Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
+---
+ Makefile.am | 2 ++
+ autogen.sh | 1 -
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 56e4531..d08c8fe 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,6 +2,8 @@ ACLOCAL_AMFLAGS = -I m4
+
+ SUBDIRS = libinotifytools src man
+
++README: README.md
++
+ dist-hook:
+ # Automake official documentation states that dist-hook should assume files
+ # are not writable.
+diff --git a/autogen.sh b/autogen.sh
+index 48eb21d..31572c2 100755
+--- a/autogen.sh
++++ b/autogen.sh
+@@ -1,4 +1,3 @@
+ #!/bin/sh
+
+-cp README.md README
+ autoreconf --install "$@" || exit 1
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch
deleted file mode 100644
index 89b890dda..000000000
--- a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-inotify-tools: fix __NR_inotify_add_watch system call number on _MIPS_SIM_ABI64
-
-The correct value should be the same as defined in
-linux/arch/mips/include/uapi/asm/unistd.h
-
-Upstream-Status: Summitted [https://github.com/rvoicilas/inotify-tools/pull/71]
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- libinotifytools/src/inotifytools/inotify-nosys.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libinotifytools/src/inotifytools/inotify-nosys.h b/libinotifytools/src/inotifytools/inotify-nosys.h
-index db76b2c..5f7b11b 100644
---- a/libinotifytools/src/inotifytools/inotify-nosys.h
-+++ b/libinotifytools/src/inotifytools/inotify-nosys.h
-@@ -100,8 +100,8 @@ struct inotify_event {
- # endif
- # if _MIPS_SIM == _MIPS_SIM_ABI64
- # define __NR_inotify_init (__NR_Linux + 243)
--# define __NR_inotify_add_watch (__NR_Linux + 243)
--# define __NR_inotify_rm_watch (__NR_Linux + 243)
-+# define __NR_inotify_add_watch (__NR_Linux + 244)
-+# define __NR_inotify_rm_watch (__NR_Linux + 245)
- # endif
- # if _MIPS_SIM == _MIPS_SIM_NABI32
- # define __NR_inotify_init (__NR_Linux + 247)
---
-1.7.10.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
index 05ca4b4ad..f42abeb2b 100644
--- a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
@@ -5,12 +5,12 @@ SECTION = "console/devel"
LICENSE = "GPL-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=ac6c26e52aea428ee7f56dc2c56424c6"
-SRCREV = "e203934e46784bb34c213078423ba1678e0c4936"
-PV = "3.20.1"
+SRCREV = "cfa93aa19f81d85b63cd64da30c7499890d4c07d"
+PV = "3.20.2.2"
SRC_URI = "git://github.com/rvoicilas/${BPN} \
- file://inotify-nosys-fix-system-call-number.patch \
- "
+ file://0001-Makefile.am-add-build-rule-for-README.patch \
+ "
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch b/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch
deleted file mode 100644
index 19a858bd7..000000000
--- a/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 335ef14fc801c9dfbe7e5692dc71cfbe72049d2b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Sun, 27 Oct 2019 16:38:52 +0100
-Subject: [PATCH] Native: Don't use build time hardcoded python binary path.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This is same patch as used for target build except that we do not use the
-'-S' and '-s' option because '-S' is relatively young [1] and elder build-host
-don't support it [2]
-
-[1] https://github.com/coreutils/coreutils/commit/668306ed86c8c79b0af0db8b9c882654ebb66db2#diff-83d9d52b1f12ac589739ab1334ae4f30
-[2] https://errors.yoctoproject.org/Errors/Details/274743/
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- itstool.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/itstool.in b/itstool.in
-index e64cd34..05d264f 100755
---- a/itstool.in
-+++ b/itstool.in
-@@ -1,4 +1,4 @@
--#!@PYTHON@ -s
-+#!/usr/bin/env python3
- #
- # Copyright (c) 2010-2018 Shaun McCance <shaunm@gnome.org>
- #
---
-2.21.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch b/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch
deleted file mode 100644
index b91105330..000000000
--- a/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From cd9b56224895576125e91cca317ace8a80f3eb77 Mon Sep 17 00:00:00 2001
-From: Piotr Tworek <tworaz@tworaz.net>
-Date: Sat, 27 Jul 2019 10:19:11 +0200
-Subject: [PATCH] Don't use build time hardcoded python binary path.
-
-This path obviously won't work on target since they refer to build
-machine directory structure. Native builds will also fail if local.conf
-has INHERIT+=rm_work. Instread of hardcoding path to python binary use
-whatever is found in PATH first. This should also allow the tool to use
-python3 binary provided in recipe-sysroot-native.
-
-Upstream-Status: Inappropriate [OE specific]
----
- itstool.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/itstool.in b/itstool.in
-index b3c0033..7df2476 100755
---- a/itstool.in
-+++ b/itstool.in
-@@ -1,4 +1,4 @@
--#!@PYTHON@ -s
-+#!/usr/bin/env -S python3 -s
- #
- # Copyright (c) 2010-2018 Shaun McCance <shaunm@gnome.org>
- #
---
-2.21.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.6.bb b/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.6.bb
deleted file mode 100644
index 8290c5e58..000000000
--- a/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.6.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "ITS Tool allows you to translate your XML documents with PO files"
-HOMEPAGE = "http://itstool.org/"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59c57b95fd7d0e9e238ebbc7ad47c5a5"
-
-inherit autotools python3native
-
-DEPENDS = "libxml2-native"
-
-SRC_URI = "http://files.itstool.org/${BPN}/${BPN}-${PV}.tar.bz2"
-SRC_URI_append_class-native = " file://0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch"
-SRC_URI_append_class-target = " file://0002-Don-t-use-build-time-hardcoded-python-binary-path.patch"
-
-SRC_URI[md5sum] = "4306eeba4f4aee6b393d14f9c3c57ca1"
-SRC_URI[sha256sum] = "6233cc22726a9a5a83664bf67d1af79549a298c23185d926c3677afa917b92a9"
-
-BBCLASSEXTEND = "native"
-
-RDEPENDS_${PN} += "libxml2-python"
-RDEPENDS_${PN}_class-native = ""
diff --git a/meta-openembedded/meta-oe/recipes-support/joe/joe_4.6.bb b/meta-openembedded/meta-oe/recipes-support/joe/joe_4.6.bb
index b79e028f3..674736a68 100644
--- a/meta-openembedded/meta-oe/recipes-support/joe/joe_4.6.bb
+++ b/meta-openembedded/meta-oe/recipes-support/joe/joe_4.6.bb
@@ -9,7 +9,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/joe-editor/joe-${PV}.tar.gz"
PACKAGECONFIG ??= "curses"
PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses,ncurses-terminfo"
-inherit autotools-brokensep
+inherit autotools-brokensep mime-xdg
SRC_URI[md5sum] = "9017484e6116830d846678b625ea5c43"
SRC_URI[sha256sum] = "495a0a61f26404070fe8a719d80406dc7f337623788e445b92a9f6de512ab9de"
diff --git a/meta-openembedded/meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch b/meta-openembedded/meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch
new file mode 100644
index 000000000..9ac0770f9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch
@@ -0,0 +1,898 @@
+From ec3e1f411c332cbc2f2bc7ab7e2175ebf918b37a Mon Sep 17 00:00:00 2001
+From: Peter Oberparleiter <oberpar@linux.ibm.com>
+Date: Fri, 24 May 2019 16:56:52 +0200
+Subject: [PATCH 1/2] geninfo: Add intermediate text format support
+
+This change adds support for parsing the output of gcov's intermediate
+text file format as implemented by GCC versions 5 to 8. The use of the
+gcov intermediate format should increase processing speed. It also
+provides branch coverage data when using the --initial command line
+option.
+
+Users can control whether geninfo uses the intermediate format via the
+geninfo_intermediate configuration file option. Valid values are:
+
+ 0: Use normal text format
+ 1: Use intermediate format
+ auto: Use intermediate format if available. This is the default.
+
+Signed-off-by: Peter Oberparleiter <oberpar@linux.ibm.com>
+---
+ bin/geninfo | 567 ++++++++++++++++++++++++++++++++++++++++++++-------
+ lcovrc | 3 +
+ man/lcovrc.5 | 24 +++
+ 3 files changed, 521 insertions(+), 73 deletions(-)
+
+Upstream-Status: Backport
+Download URL: https://github.com/linux-test-project/lcov/commit/ebfeb3e179e450c69c3532f98cd5ea1fbf6ccba7
+
+diff --git a/bin/geninfo b/bin/geninfo
+index f41eaec..0276666 100755
+--- a/bin/geninfo
++++ b/bin/geninfo
+@@ -54,6 +54,8 @@ use warnings;
+ use File::Basename;
+ use File::Spec::Functions qw /abs2rel catdir file_name_is_absolute splitdir
+ splitpath catpath/;
++use File::Temp qw(tempfile tempdir);
++use File::Copy qw(copy);
+ use Getopt::Long;
+ use Digest::MD5 qw(md5_base64);
+ use Cwd qw/abs_path/;
+@@ -163,13 +165,13 @@ sub solve_relative_path($$);
+ sub read_gcov_header($);
+ sub read_gcov_file($);
+ sub info(@);
++sub process_intermediate($$$);
+ sub map_llvm_version($);
+ sub version_to_str($);
+ sub get_gcov_version();
+ sub system_no_output($@);
+ sub read_config($);
+ sub apply_config($);
+-sub get_exclusion_data($);
+ sub apply_exclusion_data($$);
+ sub process_graphfile($$);
+ sub filter_fn_name($);
+@@ -264,6 +266,8 @@ our $gcno_split_crc;
+ our $func_coverage = 1;
+ our $br_coverage = 0;
+ our $rc_auto_base = 1;
++our $rc_intermediate = "auto";
++our $intermediate;
+ our $excl_line = "LCOV_EXCL_LINE";
+ our $excl_br_line = "LCOV_EXCL_BR_LINE";
+
+@@ -331,6 +335,7 @@ if ($config || %opt_rc)
+ "geninfo_compat" => \$opt_compat,
+ "geninfo_adjust_src_path" => \$rc_adjust_src_path,
+ "geninfo_auto_base" => \$rc_auto_base,
++ "geninfo_intermediate" => \$rc_intermediate,
+ "lcov_function_coverage" => \$func_coverage,
+ "lcov_branch_coverage" => \$br_coverage,
+ "lcov_excl_line" => \$excl_line,
+@@ -460,15 +465,38 @@ if (system_no_output(3, $gcov_tool, "--help") == -1)
+ }
+
+ ($gcov_version, $gcov_version_string) = get_gcov_version();
++$gcov_caps = get_gcov_capabilities();
++
++# Determine intermediate mode
++if ($rc_intermediate eq "0") {
++ $intermediate = 0;
++} elsif ($rc_intermediate eq "1") {
++ $intermediate = 1;
++} elsif (lc($rc_intermediate) eq "auto") {
++ # Use intermediate format if supported by gcov
++ $intermediate = $gcov_caps->{'intermediate-format'} ? 1 : 0;
++} else {
++ die("ERROR: invalid value for geninfo_intermediate: ".
++ "'$rc_intermediate'\n");
++}
++
++if ($intermediate) {
++ info("Using intermediate gcov format\n");
++ if ($opt_derive_func_data) {
++ warn("WARNING: --derive-func-data is not compatible with ".
++ "intermediate format - ignoring\n");
++ $opt_derive_func_data = 0;
++ }
++}
+
+ # Determine gcov options
+-$gcov_caps = get_gcov_capabilities();
+ push(@gcov_options, "-b") if ($gcov_caps->{'branch-probabilities'} &&
+ ($br_coverage || $func_coverage));
+ push(@gcov_options, "-c") if ($gcov_caps->{'branch-counts'} &&
+ $br_coverage);
+ push(@gcov_options, "-a") if ($gcov_caps->{'all-blocks'} &&
+- $opt_gcov_all_blocks && $br_coverage);
++ $opt_gcov_all_blocks && $br_coverage &&
++ !$intermediate);
+ if ($gcov_caps->{'hash-filenames'})
+ {
+ push(@gcov_options, "-x");
+@@ -599,7 +627,7 @@ foreach my $entry (@data_directory) {
+ gen_info($entry);
+ }
+
+-if ($initial && $br_coverage) {
++if ($initial && $br_coverage && !$intermediate) {
+ warn("Note: --initial does not generate branch coverage ".
+ "data\n");
+ }
+@@ -768,6 +796,7 @@ sub gen_info($)
+ my $prefix;
+ my $type;
+ my $ext;
++ my $tempdir;
+
+ if ($initial) {
+ $type = "graph";
+@@ -798,16 +827,22 @@ sub gen_info($)
+ $prefix = "";
+ }
+
++ $tempdir = tempdir(CLEANUP => 1);
++
+ # Process all files in list
+ foreach $file (@file_list) {
+ # Process file
+- if ($initial) {
++ if ($intermediate) {
++ process_intermediate($file, $prefix, $tempdir);
++ } elsif ($initial) {
+ process_graphfile($file, $prefix);
+ } else {
+ process_dafile($file, $prefix);
+ }
+ }
+
++ unlink($tempdir);
++
+ # Report whether files were excluded.
+ if (%excluded_files) {
+ info("Excluded data for %d files due to include/exclude options\n",
+@@ -1058,10 +1093,12 @@ sub process_dafile($$)
+
+ # Try to find base directory automatically if requested by user
+ if ($rc_auto_base) {
+- $base_dir = find_base_from_graph($base_dir, $instr, $graph);
++ $base_dir = find_base_from_source($base_dir,
++ [ keys(%{$instr}), keys(%{$graph}) ]);
+ }
+
+- ($instr, $graph) = adjust_graph_filenames($base_dir, $instr, $graph);
++ adjust_source_filenames($instr, $base_dir);
++ adjust_source_filenames($graph, $base_dir);
+
+ # Set $object_dir to real location of object files. This may differ
+ # from $da_dir if the graph file is just a link to the "real" object
+@@ -2017,6 +2054,299 @@ sub read_gcov_file($)
+ }
+
+
++#
++# read_intermediate_text(gcov_filename, data)
++#
++# Read gcov intermediate text format in GCOV_FILENAME and add the resulting
++# data to DATA in the following format:
++#
++# data: source_filename -> file_data
++# file_data: concatenated lines of intermediate text data
++#
++
++sub read_intermediate_text($$)
++{
++ my ($gcov_filename, $data) = @_;
++ my $fd;
++ my $filename;
++
++ open($fd, "<", $gcov_filename) or
++ die("ERROR: Could not read $gcov_filename: $!\n");
++ while (my $line = <$fd>) {
++ if ($line =~ /^file:(.*)$/) {
++ $filename = $1;
++ chomp($filename);
++ } elsif (defined($filename)) {
++ $data->{$filename} .= $line;
++ }
++ }
++ close($fd);
++}
++
++
++#
++# intermediate_text_to_info(fd, data, srcdata)
++#
++# Write DATA in info format to file descriptor FD.
++#
++# data: filename -> file_data:
++# file_data: concatenated lines of intermediate text data
++#
++# srcdata: filename -> [ excl, brexcl, checksums ]
++# excl: lineno -> 1 for all lines for which to exclude all data
++# brexcl: lineno -> 1 for all lines for which to exclude branch data
++# checksums: lineno -> source code checksum
++#
++# Note: To simplify processing, gcov data is not combined here, that is counts
++# that appear multiple times for the same lines/branches are not added.
++# This is done by lcov/genhtml when reading the data files.
++#
++
++sub intermediate_text_to_info($$$)
++{
++ my ($fd, $data, $srcdata) = @_;
++ my $branch_num = 0;
++ my $c;
++
++ return if (!%{$data});
++
++ print($fd "TN:$test_name\n");
++ for my $filename (keys(%{$data})) {
++ my ($excl, $brexcl, $checksums);
++
++ if (defined($srcdata->{$filename})) {
++ ($excl, $brexcl, $checksums) = @{$srcdata->{$filename}};
++ }
++
++ print($fd "SF:$filename\n");
++ for my $line (split(/\n/, $data->{$filename})) {
++ if ($line =~ /^lcount:(\d+),(\d+),?/) {
++ # lcount:<line>,<count>
++ # lcount:<line>,<count>,<has_unexecuted_blocks>
++ if ($checksum && exists($checksums->{$1})) {
++ $c = ",".$checksums->{$1};
++ } else {
++ $c = "";
++ }
++ print($fd "DA:$1,$2$c\n") if (!$excl->{$1});
++
++ # Intermediate text format does not provide
++ # branch numbers, and the same branch may appear
++ # multiple times on the same line (e.g. in
++ # template instances). Synthesize a branch
++ # number based on the assumptions:
++ # a) the order of branches is fixed across
++ # instances
++ # b) an instance starts with an lcount line
++ $branch_num = 0;
++ } elsif ($line =~ /^function:(\d+),(\d+),([^,]+)$/) {
++ next if (!$func_coverage || $excl->{$1});
++
++ # function:<line>,<count>,<name>
++ print($fd "FN:$1,$3\n");
++ print($fd "FNDA:$2,$3\n");
++ } elsif ($line =~ /^function:(\d+),\d+,(\d+),([^,]+)$/) {
++ next if (!$func_coverage || $excl->{$1});
++
++ # function:<start_line>,<end_line>,<count>,
++ # <name>
++ print($fd "FN:$1,$3\n");
++ print($fd "FNDA:$2,$3\n");
++ } elsif ($line =~ /^branch:(\d+),(taken|nottaken|notexec)/) {
++ next if (!$br_coverage || $excl->{$1} ||
++ $brexcl->{$1});
++
++ # branch:<line>,taken|nottaken|notexec
++ if ($2 eq "taken") {
++ $c = 1;
++ } elsif ($2 eq "nottaken") {
++ $c = 0;
++ } else {
++ $c = "-";
++ }
++ print($fd "BRDA:$1,0,$branch_num,$c\n");
++ $branch_num++;
++ }
++ }
++ print($fd "end_of_record\n");
++ }
++}
++
++
++sub get_output_fd($$)
++{
++ my ($outfile, $file) = @_;
++ my $fd;
++
++ if (!defined($outfile)) {
++ open($fd, ">", "$file.info") or
++ die("ERROR: Cannot create file $file.info: $!\n");
++ } elsif ($outfile eq "-") {
++ open($fd, ">&STDOUT") or
++ die("ERROR: Cannot duplicate stdout: $!\n");
++ } else {
++ open($fd, ">>", $outfile) or
++ die("ERROR: Cannot write to file $outfile: $!\n");
++ }
++
++ return $fd;
++}
++
++
++#
++# print_gcov_warnings(stderr_file, is_graph, map)
++#
++# Print GCOV warnings in file STDERR_FILE to STDERR. If IS_GRAPH is non-zero,
++# suppress warnings about missing as these are expected. Replace keys found
++# in MAP with their values.
++#
++
++sub print_gcov_warnings($$$)
++{
++ my ($stderr_file, $is_graph, $map) = @_;
++ my $fd;
++
++ if (!open($fd, "<", $stderr_file)) {
++ warn("WARNING: Could not open GCOV stderr file ".
++ "$stderr_file: $!\n");
++ return;
++ }
++ while (my $line = <$fd>) {
++ next if ($is_graph && $line =~ /cannot open data file/);
++
++ for my $key (keys(%{$map})) {
++ $line =~ s/\Q$key\E/$map->{$key}/g;
++ }
++
++ print(STDERR $line);
++ }
++ close($fd);
++}
++
++
++#
++# process_intermediate(file, dir, tempdir)
++#
++# Create output for a single file (either a data file or a graph file) using
++# gcov's intermediate option.
++#
++
++sub process_intermediate($$$)
++{
++ my ($file, $dir, $tempdir) = @_;
++ my ($fdir, $fbase, $fext);
++ my $data_file;
++ my $errmsg;
++ my %data;
++ my $fd;
++ my $base;
++ my $srcdata;
++ my $is_graph = 0;
++ my ($out, $err, $rc);
++
++ info("Processing %s\n", abs2rel($file, $dir));
++
++ $file = solve_relative_path($cwd, $file);
++ ($fdir, $fbase, $fext) = split_filename($file);
++
++ $is_graph = 1 if (".$fext" eq $graph_file_extension);
++
++ if ($is_graph) {
++ # Process graph file - copy to temp directory to prevent
++ # accidental processing of associated data file
++ $data_file = "$tempdir/$fbase$graph_file_extension";
++ if (!copy($file, $data_file)) {
++ $errmsg = "ERROR: Could not copy file $file";
++ goto err;
++ }
++ } else {
++ # Process data file in place
++ $data_file = $file;
++ }
++
++ # Change directory
++ if (!chdir($tempdir)) {
++ $errmsg = "Could not change to directory $tempdir: $!";
++ goto err;
++ }
++
++ # Run gcov on data file
++ ($out, $err, $rc) = system_no_output(1 + 2 + 4, $gcov_tool,
++ $data_file, @gcov_options, "-i");
++ defined($out) && unlink($out);
++ if (defined($err)) {
++ print_gcov_warnings($err, $is_graph, {
++ $data_file => $file,
++ });
++ unlink($err);
++ }
++ if ($rc) {
++ $errmsg = "GCOV failed for $file";
++ goto err;
++ }
++
++ if ($is_graph) {
++ # Remove graph file copy
++ unlink($data_file);
++ }
++
++ # Parse resulting file(s)
++ for my $gcov_filename (glob("*.gcov")) {
++ read_intermediate_text($gcov_filename, \%data);
++ unlink($gcov_filename);
++ }
++
++ if (!%data) {
++ warn("WARNING: GCOV did not produce any data for $file\n");
++ return;
++ }
++
++ # Determine base directory
++ if (defined($base_directory)) {
++ $base = $base_directory;
++ } else {
++ $base = $fdir;
++
++ if (is_compat($COMPAT_MODE_LIBTOOL)) {
++ # Avoid files from .libs dirs
++ $base =~ s/\.libs$//;
++ }
++
++ # Try to find base directory automatically if requested by user
++ if ($rc_auto_base) {
++ $base = find_base_from_source($base, [ keys(%data) ]);
++ }
++ }
++
++ # Apply base file name to relative source files
++ adjust_source_filenames(\%data, $base);
++
++ # Remove excluded source files
++ filter_source_files(\%data);
++
++ # Get data on exclusion markers and checksums if requested
++ if (!$no_markers || $checksum) {
++ $srcdata = get_all_source_data(keys(%data));
++ }
++
++ # Generate output
++ $fd = get_output_fd($output_filename, $file);
++ intermediate_text_to_info($fd, \%data, $srcdata);
++ close($fd);
++
++ chdir($cwd);
++
++ return;
++
++err:
++ if ($ignore[$ERROR_GCOV]) {
++ warn("WARNING: $errmsg!\n");
++ } else {
++ die("ERROR: $errmsg!\n")
++ }
++}
++
++
+ # Map LLVM versions to the version of GCC gcov which they emulate.
+
+ sub map_llvm_version($)
+@@ -2151,8 +2481,12 @@ sub int_handler()
+ #
+ # MODE & 1: suppress STDOUT
+ # MODE & 2: suppress STDERR
++# MODE & 4: redirect to temporary files instead of suppressing
+ #
+-# Return 0 on success, non-zero otherwise.
++# Return (stdout, stderr, rc):
++# stdout: path to tempfile containing stdout or undef
++# stderr: path to tempfile containing stderr or undef
++# 0 on success, non-zero otherwise
+ #
+
+ sub system_no_output($@)
+@@ -2161,14 +2495,31 @@ sub system_no_output($@)
+ my $result;
+ local *OLD_STDERR;
+ local *OLD_STDOUT;
++ my $stdout_file;
++ my $stderr_file;
++ my $fd;
+
+ # Save old stdout and stderr handles
+ ($mode & 1) && open(OLD_STDOUT, ">>&", "STDOUT");
+ ($mode & 2) && open(OLD_STDERR, ">>&", "STDERR");
+
+- # Redirect to /dev/null
+- ($mode & 1) && open(STDOUT, ">", "/dev/null");
+- ($mode & 2) && open(STDERR, ">", "/dev/null");
++ if ($mode & 4) {
++ # Redirect to temporary files
++ if ($mode & 1) {
++ ($fd, $stdout_file) = tempfile(UNLINK => 1);
++ open(STDOUT, ">", $stdout_file) || warn("$!\n");
++ close($fd);
++ }
++ if ($mode & 2) {
++ ($fd, $stderr_file) = tempfile(UNLINK => 1);
++ open(STDERR, ">", $stderr_file) || warn("$!\n");
++ close($fd);
++ }
++ } else {
++ # Redirect to /dev/null
++ ($mode & 1) && open(STDOUT, ">", "/dev/null");
++ ($mode & 2) && open(STDERR, ">", "/dev/null");
++ }
+
+ debug("system(".join(' ', @_).")\n");
+ system(@_);
+@@ -2181,8 +2532,18 @@ sub system_no_output($@)
+ # Restore old handles
+ ($mode & 1) && open(STDOUT, ">>&", "OLD_STDOUT");
+ ($mode & 2) && open(STDERR, ">>&", "OLD_STDERR");
++
++ # Remove empty output files
++ if (defined($stdout_file) && -z $stdout_file) {
++ unlink($stdout_file);
++ $stdout_file = undef;
++ }
++ if (defined($stderr_file) && -z $stderr_file) {
++ unlink($stderr_file);
++ $stderr_file = undef;
++ }
+
+- return $result;
++ return ($stdout_file, $stderr_file, $result);
+ }
+
+
+@@ -2260,23 +2621,28 @@ sub apply_config($)
+
+
+ #
+-# get_exclusion_data(filename)
++# get_source_data(filename)
+ #
+-# Scan specified source code file for exclusion markers and return
+-# linenumber -> 1
+-# for all lines which should be excluded.
++# Scan specified source code file for exclusion markers and checksums. Return
++# ( excl, brexcl, checksums ) where
++# excl: lineno -> 1 for all lines for which to exclude all data
++# brexcl: lineno -> 1 for all lines for which to exclude branch data
++# checksums: lineno -> source code checksum
+ #
+
+-sub get_exclusion_data($)
++sub get_source_data($)
+ {
+ my ($filename) = @_;
+ my %list;
+ my $flag = 0;
++ my %brdata;
++ my $brflag = 0;
++ my %checksums;
+ local *HANDLE;
+
+ if (!open(HANDLE, "<", $filename)) {
+ warn("WARNING: could not open $filename\n");
+- return undef;
++ return;
+ }
+ while (<HANDLE>) {
+ if (/$EXCL_STOP/) {
+@@ -2287,14 +2653,62 @@ sub get_exclusion_data($)
+ if (/$excl_line/ || $flag) {
+ $list{$.} = 1;
+ }
++ if (/$EXCL_BR_STOP/) {
++ $brflag = 0;
++ } elsif (/$EXCL_BR_START/) {
++ $brflag = 1;
++ }
++ if (/$excl_br_line/ || $brflag) {
++ $brdata{$.} = 1;
++ }
++ if ($checksum) {
++ chomp();
++ $checksums{$.} = md5_base64($_);
++ }
+ }
+ close(HANDLE);
+
+- if ($flag) {
++ if ($flag || $brflag) {
+ warn("WARNING: unterminated exclusion section in $filename\n");
+ }
+
+- return \%list;
++ return (\%list, \%brdata, \%checksums);
++}
++
++
++#
++# get_all_source_data(filenames)
++#
++# Scan specified source code files for exclusion markers and return
++# filename -> [ excl, brexcl, checksums ]
++# excl: lineno -> 1 for all lines for which to exclude all data
++# brexcl: lineno -> 1 for all lines for which to exclude branch data
++# checksums: lineno -> source code checksum
++#
++
++sub get_all_source_data(@)
++{
++ my @filenames = @_;
++ my %data;
++ my $failed = 0;
++
++ for my $filename (@filenames) {
++ my @d;
++ next if (exists($data{$filename}));
++
++ @d = get_source_data($filename);
++ if (@d) {
++ $data{$filename} = [ @d ];
++ } else {
++ $failed = 1;
++ }
++ }
++
++ if ($failed) {
++ warn("WARNING: some exclusion markers may be ignored\n");
++ }
++
++ return \%data;
+ }
+
+
+@@ -2318,35 +2732,17 @@ sub apply_exclusion_data($$)
+ {
+ my ($instr, $graph) = @_;
+ my $filename;
+- my %excl_data;
+- my $excl_read_failed = 0;
++ my $excl_data;
+
+- # Collect exclusion marker data
+- foreach $filename (sort_uniq_lex(keys(%{$graph}), keys(%{$instr}))) {
+- my $excl = get_exclusion_data($filename);
+-
+- # Skip and note if file could not be read
+- if (!defined($excl)) {
+- $excl_read_failed = 1;
+- next;
+- }
+-
+- # Add to collection if there are markers
+- $excl_data{$filename} = $excl if (keys(%{$excl}) > 0);
+- }
+-
+- # Warn if not all source files could be read
+- if ($excl_read_failed) {
+- warn("WARNING: some exclusion markers may be ignored\n");
+- }
++ ($excl_data) = get_all_source_data(keys(%{$graph}), keys(%{$instr}));
+
+ # Skip if no markers were found
+- return ($instr, $graph) if (keys(%excl_data) == 0);
++ return ($instr, $graph) if (!%$excl_data);
+
+ # Apply exclusion marker data to graph
+- foreach $filename (keys(%excl_data)) {
++ foreach $filename (keys(%$excl_data)) {
+ my $function_data = $graph->{$filename};
+- my $excl = $excl_data{$filename};
++ my $excl = $excl_data->{$filename}->[0];
+ my $function;
+
+ next if (!defined($function_data));
+@@ -2384,9 +2780,9 @@ sub apply_exclusion_data($$)
+ }
+
+ # Apply exclusion marker data to instr
+- foreach $filename (keys(%excl_data)) {
++ foreach $filename (keys(%$excl_data)) {
+ my $line_data = $instr->{$filename};
+- my $excl = $excl_data{$filename};
++ my $excl = $excl_data->{$filename}->[0];
+ my $line;
+ my @new_data;
+
+@@ -2468,10 +2864,12 @@ sub process_graphfile($$)
+
+ # Try to find base directory automatically if requested by user
+ if ($rc_auto_base) {
+- $base_dir = find_base_from_graph($base_dir, $instr, $graph);
++ $base_dir = find_base_from_source($base_dir,
++ [ keys(%{$instr}), keys(%{$graph}) ]);
+ }
+
+- ($instr, $graph) = adjust_graph_filenames($base_dir, $instr, $graph);
++ adjust_source_filenames($instr, $base_dir);
++ adjust_source_filenames($graph, $base_dir);
+
+ if (!$no_markers) {
+ # Apply exclusion marker data to graph file data
+@@ -2767,11 +3165,11 @@ sub parent_dir($)
+ }
+
+ #
+-# find_base_from_graph(base_dir, instr, graph)
++# find_base_from_source(base_dir, source_files)
+ #
+-# Try to determine the base directory of the graph file specified by INSTR
+-# and GRAPH. The base directory is the base for all relative filenames in
+-# the graph file. It is defined by the current working directory at time
++# Try to determine the base directory of the object file built from
++# SOURCE_FILES. The base directory is the base for all relative filenames in
++# the gcov data. It is defined by the current working directory at time
+ # of compiling the source file.
+ #
+ # This function implements a heuristic which relies on the following
+@@ -2781,16 +3179,16 @@ sub parent_dir($)
+ # - files by the same name are not present in multiple parent directories
+ #
+
+-sub find_base_from_graph($$$)
++sub find_base_from_source($$)
+ {
+- my ($base_dir, $instr, $graph) = @_;
++ my ($base_dir, $source_files) = @_;
+ my $old_base;
+ my $best_miss;
+ my $best_base;
+ my %rel_files;
+
+ # Determine list of relative paths
+- foreach my $filename (keys(%{$instr}), keys(%{$graph})) {
++ foreach my $filename (@$source_files) {
+ next if (file_name_is_absolute($filename));
+
+ $rel_files{$filename} = 1;
+@@ -2829,17 +3227,17 @@ sub find_base_from_graph($$$)
+ }
+
+ #
+-# adjust_graph_filenames(base_dir, instr, graph)
++# adjust_source_filenames(hash, base_dir)
+ #
+-# Make relative paths in INSTR and GRAPH absolute and apply
+-# geninfo_adjust_src_path setting to graph file data.
++# Transform all keys of HASH to absolute form and apply requested
++# transformations.
+ #
+
+-sub adjust_graph_filenames($$$)
++sub adjust_source_filenames($$$)
+ {
+- my ($base_dir, $instr, $graph) = @_;
++ my ($hash, $base_dir) = @_;
+
+- foreach my $filename (keys(%{$instr})) {
++ foreach my $filename (keys(%{$hash})) {
+ my $old_filename = $filename;
+
+ # Convert to absolute canonical form
+@@ -2851,28 +3249,50 @@ sub adjust_graph_filenames($$$)
+ }
+
+ if ($filename ne $old_filename) {
+- $instr->{$filename} = delete($instr->{$old_filename});
++ $hash->{$filename} = delete($hash->{$old_filename});
+ }
+ }
++}
+
+- foreach my $filename (keys(%{$graph})) {
+- my $old_filename = $filename;
+
+- # Make absolute
+- # Convert to absolute canonical form
+- $filename = solve_relative_path($base_dir, $filename);
++#
++# filter_source_files(hash)
++#
++# Remove unwanted source file data from HASH.
++#
+
+- # Apply adjustment
+- if (defined($adjust_src_pattern)) {
+- $filename =~ s/$adjust_src_pattern/$adjust_src_replace/g;
++sub filter_source_files($)
++{
++ my ($hash) = @_;
++
++ foreach my $filename (keys(%{$hash})) {
++ # Skip external files if requested
++ goto del if (!$opt_external && is_external($filename));
++
++ # Apply include patterns
++ if (@include_patterns) {
++ my $keep;
++
++ foreach my $pattern (@include_patterns) {
++ if ($filename =~ (/^$pattern$/)) {
++ $keep = 1;
++ last;
++ }
++ }
++ goto del if (!$keep);
+ }
+
+- if ($filename ne $old_filename) {
+- $graph->{$filename} = delete($graph->{$old_filename});
++ # Apply exclude patterns
++ foreach my $pattern (@exclude_patterns) {
++ goto del if ($filename =~ (/^$pattern$/));
+ }
+- }
++ next;
+
+- return ($instr, $graph);
++del:
++ # Remove file data
++ delete($hash->{$filename});
++ $excluded_files{$filename} = 1;
++ }
+ }
+
+ #
+@@ -3784,6 +4204,7 @@ sub get_gcov_capabilities()
+ 'c' => 'branch-counts',
+ 'f' => 'function-summaries',
+ 'h' => 'help',
++ 'i' => 'intermediate-format',
+ 'l' => 'long-file-names',
+ 'n' => 'no-output',
+ 'o' => 'object-directory',
+diff --git a/lcovrc b/lcovrc
+index 40f364f..bd4bc3b 100644
+--- a/lcovrc
++++ b/lcovrc
+@@ -134,6 +134,9 @@ genhtml_desc_html=0
+ # when collecting coverage data.
+ geninfo_auto_base = 1
+
++# Use gcov intermediate format? Valid values are 0, 1, auto
++geninfo_intermediate = auto
++
+ # Directory containing gcov kernel files
+ # lcov_gcov_dir = /proc/gcov
+
+diff --git a/man/lcovrc.5 b/man/lcovrc.5
+index f20d273..bf0ce7a 100644
+--- a/man/lcovrc.5
++++ b/man/lcovrc.5
+@@ -223,6 +223,11 @@ geninfo_compat_libtool = 0
+ geninfo_auto_base = 1
+ .br
+
++# Use gcov intermediate format? Valid values are 0, 1, auto
++.br
++geninfo_intermediate = auto
++.br
++
+ # Directory containing gcov kernel files
+ .br
+ lcov_gcov_dir = /proc/gcov
+@@ -789,6 +794,25 @@ located, and in addition, is different between files of the same project.
+ Default is 1.
+ .PP
+
++.BR geninfo_intermediate " ="
++.IR 0 | 1 | auto
++.IP
++Specify whether to use gcov intermediate format
++.br
++
++Use this option to control whether geninfo should use the gcov intermediate
++format while collecting coverage data. The use of the gcov intermediate format
++should increase processing speed. It also provides branch coverage data when
++using the \-\-initial command line option.
++.br
++
++Valid values are 0 for off, 1 for on, and "auto" to let geninfo automatically
++use immediate format when supported by gcov.
++.br
++
++Default is "auto".
++.PP
++
+ .BR lcov_gcov_dir " ="
+ .I path_to_kernel_coverage_data
+ .IP
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch b/meta-openembedded/meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch
new file mode 100644
index 000000000..7b180635c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch
@@ -0,0 +1,247 @@
+From e13b2b6f8443da660cafa0679c3b16240843ce9f Mon Sep 17 00:00:00 2001
+From: Peter Oberparleiter <oberpar@linux.ibm.com>
+Date: Fri, 24 May 2019 17:16:56 +0200
+Subject: [PATCH 2/2] geninfo: Add intermediate JSON format support
+
+This change adds support for parsing the output of gcov's intermediate
+JSON file format as implemented by GCC version 9.
+
+Note: The way that the intermediate file format support is implemented
+in geninfo removes the need to parse .gcno files directly. Since geninfo
+does not include support for parsing GCC 9 .gcno files, using the
+intermediate format is the only option for geninfo to collect coverage
+data generated by GCC version 9.
+
+Signed-off-by: Peter Oberparleiter <oberpar@linux.ibm.com>
+---
+ bin/geninfo | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 160 insertions(+), 2 deletions(-)
+
+Upstream-Status: Backport
+Download URL: https://github.com/linux-test-project/lcov/commit/75fbae1cfc5027f818a0bb865bf6f96fab3202da
+
+diff --git a/bin/geninfo b/bin/geninfo
+index 0276666..cceb782 100755
+--- a/bin/geninfo
++++ b/bin/geninfo
+@@ -59,6 +59,9 @@ use File::Copy qw(copy);
+ use Getopt::Long;
+ use Digest::MD5 qw(md5_base64);
+ use Cwd qw/abs_path/;
++use PerlIO::gzip;
++use JSON qw(decode_json);
++
+ if( $^O eq "msys" )
+ {
+ require File::Spec::Win32;
+@@ -474,7 +477,8 @@ if ($rc_intermediate eq "0") {
+ $intermediate = 1;
+ } elsif (lc($rc_intermediate) eq "auto") {
+ # Use intermediate format if supported by gcov
+- $intermediate = $gcov_caps->{'intermediate-format'} ? 1 : 0;
++ $intermediate = ($gcov_caps->{'intermediate-format'} ||
++ $gcov_caps->{'json-format'}) ? 1 : 0;
+ } else {
+ die("ERROR: invalid value for geninfo_intermediate: ".
+ "'$rc_intermediate'\n");
+@@ -2084,6 +2088,48 @@ sub read_intermediate_text($$)
+ }
+
+
++#
++# read_intermediate_json(gcov_filename, data, basedir_ref)
++#
++# Read gcov intermediate JSON format in GCOV_FILENAME and add the resulting
++# data to DATA in the following format:
++#
++# data: source_filename -> file_data
++# file_data: GCOV JSON data for file
++#
++# Also store the value for current_working_directory to BASEDIR_REF.
++#
++
++sub read_intermediate_json($$$)
++{
++ my ($gcov_filename, $data, $basedir_ref) = @_;
++ my $fd;
++ my $text;
++ my $json;
++
++ open($fd, "<:gzip", $gcov_filename) or
++ die("ERROR: Could not read $gcov_filename: $!\n");
++ local $/;
++ $text = <$fd>;
++ close($fd);
++
++ $json = decode_json($text);
++ if (!defined($json) || !exists($json->{"files"}) ||
++ ref($json->{"files"} ne "ARRAY")) {
++ die("ERROR: Unrecognized JSON output format in ".
++ "$gcov_filename\n");
++ }
++
++ $$basedir_ref = $json->{"current_working_directory"};
++
++ for my $file (@{$json->{"files"}}) {
++ my $filename = $file->{"file"};
++
++ $data->{$filename} = $file;
++ }
++}
++
++
+ #
+ # intermediate_text_to_info(fd, data, srcdata)
+ #
+@@ -2173,6 +2219,104 @@ sub intermediate_text_to_info($$$)
+ }
+
+
++#
++# intermediate_json_to_info(fd, data, srcdata)
++#
++# Write DATA in info format to file descriptor FD.
++#
++# data: filename -> file_data:
++# file_data: GCOV JSON data for file
++#
++# srcdata: filename -> [ excl, brexcl, checksums ]
++# excl: lineno -> 1 for all lines for which to exclude all data
++# brexcl: lineno -> 1 for all lines for which to exclude branch data
++# checksums: lineno -> source code checksum
++#
++# Note: To simplify processing, gcov data is not combined here, that is counts
++# that appear multiple times for the same lines/branches are not added.
++# This is done by lcov/genhtml when reading the data files.
++#
++
++sub intermediate_json_to_info($$$)
++{
++ my ($fd, $data, $srcdata) = @_;
++ my $branch_num = 0;
++
++ return if (!%{$data});
++
++ print($fd "TN:$test_name\n");
++ for my $filename (keys(%{$data})) {
++ my ($excl, $brexcl, $checksums);
++ my $file_data = $data->{$filename};
++
++ if (defined($srcdata->{$filename})) {
++ ($excl, $brexcl, $checksums) = @{$srcdata->{$filename}};
++ }
++
++ print($fd "SF:$filename\n");
++
++ # Function data
++ if ($func_coverage) {
++ for my $d (@{$file_data->{"functions"}}) {
++ my $line = $d->{"start_line"};
++ my $count = $d->{"execution_count"};
++ my $name = $d->{"name"};
++
++ next if (!defined($line) || !defined($count) ||
++ !defined($name) || $excl->{$line});
++
++ print($fd "FN:$line,$name\n");
++ print($fd "FNDA:$count,$name\n");
++ }
++ }
++
++ # Line data
++ for my $d (@{$file_data->{"lines"}}) {
++ my $line = $d->{"line_number"};
++ my $count = $d->{"count"};
++ my $c;
++ my $branches = $d->{"branches"};
++ my $unexec = $d->{"unexecuted_block"};
++
++ next if (!defined($line) || !defined($count) ||
++ $excl->{$line});
++
++ if (defined($unexec) && $unexec && $count == 0) {
++ $unexec = 1;
++ } else {
++ $unexec = 0;
++ }
++
++ if ($checksum && exists($checksums->{$line})) {
++ $c = ",".$checksums->{$line};
++ } else {
++ $c = "";
++ }
++ print($fd "DA:$line,$count$c\n");
++
++ $branch_num = 0;
++ # Branch data
++ if ($br_coverage && !$brexcl->{$line}) {
++ for my $b (@$branches) {
++ my $brcount = $b->{"count"};
++
++ if (!defined($brcount) || $unexec) {
++ $brcount = "-";
++ }
++ print($fd "BRDA:$line,0,$branch_num,".
++ "$brcount\n");
++
++ $branch_num++;
++ }
++ }
++
++ }
++
++ print($fd "end_of_record\n");
++ }
++}
++
++
+ sub get_output_fd($$)
+ {
+ my ($outfile, $file) = @_;
+@@ -2243,6 +2387,8 @@ sub process_intermediate($$$)
+ my $srcdata;
+ my $is_graph = 0;
+ my ($out, $err, $rc);
++ my $json_basedir;
++ my $json_format;
+
+ info("Processing %s\n", abs2rel($file, $dir));
+
+@@ -2296,6 +2442,12 @@ sub process_intermediate($$$)
+ unlink($gcov_filename);
+ }
+
++ for my $gcov_filename (glob("*.gcov.json.gz")) {
++ read_intermediate_json($gcov_filename, \%data, \$json_basedir);
++ unlink($gcov_filename);
++ $json_format = 1;
++ }
++
+ if (!%data) {
+ warn("WARNING: GCOV did not produce any data for $file\n");
+ return;
+@@ -2304,6 +2456,8 @@ sub process_intermediate($$$)
+ # Determine base directory
+ if (defined($base_directory)) {
+ $base = $base_directory;
++ } elsif (defined($json_basedir)) {
++ $base = $json_basedir;
+ } else {
+ $base = $fdir;
+
+@@ -2331,7 +2485,11 @@ sub process_intermediate($$$)
+
+ # Generate output
+ $fd = get_output_fd($output_filename, $file);
+- intermediate_text_to_info($fd, \%data, $srcdata);
++ if ($json_format) {
++ intermediate_json_to_info($fd, \%data, $srcdata);
++ } else {
++ intermediate_text_to_info($fd, \%data, $srcdata);
++ }
+ close($fd);
+
+ chdir($cwd);
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb b/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb
index 26e797aa6..14718184b 100755
--- a/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb
@@ -10,6 +10,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
RDEPENDS_${PN} += " \
gcov \
+ gcov-symlinks \
+ libjson-perl \
+ libperlio-gzip-perl \
perl \
perl-module-filehandle \
perl-module-getopt-std \
@@ -19,6 +22,7 @@ RDEPENDS_${PN} += " \
perl-module-cwd \
perl-module-errno \
perl-module-file-basename \
+ perl-module-file-copy \
perl-module-file-find \
perl-module-file-path \
perl-module-file-spec \
@@ -42,7 +46,11 @@ RDEPENDS_${PN} += " \
perl-module-tie-hash \
"
-SRC_URI = "http://downloads.sourceforge.net/ltp/${BP}.tar.gz"
+SRC_URI = " \
+ http://downloads.sourceforge.net/ltp/${BP}.tar.gz \
+ file://0001-geninfo-Add-intermediate-text-format-support.patch \
+ file://0002-geninfo-Add-intermediate-JSON-format-support.patch \
+ "
SRC_URI[md5sum] = "0220d01753469f83921f8f41ae5054c1"
SRC_URI[sha256sum] = "14995699187440e0ae4da57fe3a64adc0a3c5cf14feab971f8db38fb7d8f071a"
@@ -51,3 +59,4 @@ do_install() {
oe_runmake install PREFIX=${D}${prefix} CFG_DIR=${D}${sysconfdir}
}
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.1.bb b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.2.bb
index 1a5c1848b..a954499c6 100644
--- a/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.2.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
S = "${WORKDIR}/git"
B = "${S}"
-SRCREV = "9ecc1042109528051983261ffd491d45e7c471e1"
+SRCREV = "e64e752a28a4a41b0a43cba3bedf9571c22af807"
SRC_URI = "git://github.com/rhinstaller/libbytesize;branch=master"
inherit gettext autotools python3native
diff --git a/meta-openembedded/meta-oe/recipes-support/libcanberra/files/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch b/meta-openembedded/meta-oe/recipes-support/libcanberra/files/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch
new file mode 100644
index 000000000..ba6fa2c64
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libcanberra/files/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch
@@ -0,0 +1,63 @@
+From c0620e432650e81062c1967cc669829dbd29b310 Mon Sep 17 00:00:00 2001
+From: Michael Meeks <michael.meeks@suse.com>
+Date: Fri, 9 Nov 2012 16:16:40 +0000
+Subject: [PATCH] gtk: Don't assume all GdkDisplays are GdkX11Displays:
+ broadway/wayland
+
+---
+ src/canberra-gtk-module.c | 15 +++++++++++++++
+ src/canberra-gtk.c | 5 +++++
+ 2 files changed, 20 insertions(+)
+
+--- a/src/canberra-gtk-module.c
++++ b/src/canberra-gtk-module.c
+@@ -307,6 +307,11 @@ static gint window_get_desktop(GdkDispla
+ guchar *data = NULL;
+ gint ret = -1;
+
++#ifdef GDK_IS_X11_DISPLAY
++ if (!GDK_IS_X11_DISPLAY(d))
++ return 0;
++#endif
++
+ if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w),
+ gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"),
+ 0, G_MAXLONG, False, XA_CARDINAL, &type_return,
+@@ -335,6 +340,11 @@ static gint display_get_desktop(GdkDispl
+ guchar *data = NULL;
+ gint ret = -1;
+
++#ifdef GDK_IS_X11_DISPLAY
++ if (!GDK_IS_X11_DISPLAY(d))
++ return 0;
++#endif
++
+ if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), DefaultRootWindow(GDK_DISPLAY_XDISPLAY(d)),
+ gdk_x11_get_xatom_by_name_for_display(d, "_NET_CURRENT_DESKTOP"),
+ 0, G_MAXLONG, False, XA_CARDINAL, &type_return,
+@@ -365,6 +375,11 @@ static gboolean window_is_xembed(GdkDisp
+ gboolean ret = FALSE;
+ Atom xembed;
+
++#ifdef GDK_IS_X11_DISPLAY
++ if (!GDK_IS_X11_DISPLAY(d))
++ return FALSE;
++#endif
++
+ /* Gnome Panel applets are XEMBED windows. We need to make sure we
+ * ignore them */
+
+--- a/src/canberra-gtk.c
++++ b/src/canberra-gtk.c
+@@ -185,6 +185,11 @@ static gint window_get_desktop(GdkDispla
+ guchar *data = NULL;
+ gint ret = -1;
+
++#ifdef GDK_IS_X11_DISPLAY
++ if (!GDK_IS_X11_DISPLAY(d))
++ return 0;
++#endif
++
+ if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w),
+ gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"),
+ 0, G_MAXLONG, False, XA_CARDINAL, &type_return,
diff --git a/meta-openembedded/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb b/meta-openembedded/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb
index 72c93abe1..1495051d7 100644
--- a/meta-openembedded/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb
@@ -11,6 +11,7 @@ inherit autotools gtk-doc
SRC_URI = " \
http://0pointer.de/lennart/projects/${BPN}/${BPN}-${PV}.tar.xz \
file://0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch \
+ file://0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch \
"
SRC_URI[md5sum] = "34cb7e4430afaf6f447c4ebdb9b42072"
SRC_URI[sha256sum] = "c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72"
diff --git a/meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.2.2.bb b/meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.3.0.bb
index 365b40b17..6fc5881c5 100644
--- a/meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.2.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.3.0.bb
@@ -6,7 +6,7 @@ SECTION = "libs"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e612690af2f575dfd02e2e91443cea23"
-SRCREV = "51cbda5f30e56c801c07fe3d3aba5d7fb9e6cca4"
+SRCREV = "02eace19a99ce3cd564ca4e379753d69af08c2c8"
SRC_URI = "git://github.com/USCiLab/cereal.git"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.1.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.3.bb
index 0391deb86..a6320da8e 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.3.bb
@@ -2,8 +2,8 @@ require libgpiod.inc
DEPENDS += "autoconf-archive-native"
-SRC_URI[md5sum] = "585b4bb431f99c4ba9b3ee58b9d494c1"
-SRC_URI[sha256sum] = "21ae8fd1f8dafc2eb2ba50e652390cf533d21351419a7426255895cb52e21b1c"
+SRC_URI[md5sum] = "d4826720a8de13379436f9c207237bc0"
+SRC_URI[sha256sum] = "0ad080d1eb89c422cf13001293ffa72869ca13028e85dab5f6b3ba90f88da46d"
# enable cxx bindings
PACKAGECONFIG ?= "cxx"
diff --git a/meta-openembedded/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch b/meta-openembedded/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch
new file mode 100644
index 000000000..332be1b3f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch
@@ -0,0 +1,52 @@
+Backport from Fedora Project.
+https://src.fedoraproject.org/rpms/libharu
+
+Fix the install destination of some files.
+
+Upstream-Status: inappropriate
+
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+
+diff -urp libharu-RELEASE_2_3_0/CMakeLists.txt libharu-RELEASE_2_3_0_cmake/CMakeLists.txt
+--- libharu-RELEASE_2_3_0/CMakeLists.txt 2013-10-30 20:11:59.000000000 +0700
++++ libharu-RELEASE_2_3_0_cmake/CMakeLists.txt 2017-06-01 15:56:06.533552795 +0700
+@@ -25,7 +25,7 @@ endif(MSVC)
+
+ # information about libharu
+ set(LIBHPDF_MAJOR 2)
+-set(LIBHPDF_MINOR 2)
++set(LIBHPDF_MINOR 3)
+ set(LIBHPDF_PATCH 0)
+ set(LIBHPDF_VERSION ${LIBHPDF_MAJOR}.${LIBHPDF_MINOR}.${LIBHPDF_PATCH})
+ set(LIBHPDF_DESCRIPTION "libHaru is a free, cross platform, open source library for generating PDF files.")
+@@ -210,9 +210,9 @@ set(
+ install(FILES ${haru_HDRS} DESTINATION include)
+
+ # install various files
+-install(FILES README CHANGES INSTALL DESTINATION .)
++install(FILES README CHANGES INSTALL DESTINATION ${SHARE_INSTALL_PREFIX}/libharu)
+ if(NOT DEVPAK)
+- install(DIRECTORY if DESTINATION .)
++ install(DIRECTORY if DESTINATION ${SHARE_INSTALL_PREFIX}/libharu)
+ endif(NOT DEVPAK)
+ if(DEVPAK)
+ install(FILES ${CMAKE_BINARY_DIR}/libharu.DevPackage DESTINATION .)
+diff -urp libharu-RELEASE_2_3_0/src/CMakeLists.txt libharu-RELEASE_2_3_0_cmake/src/CMakeLists.txt
+--- libharu-RELEASE_2_3_0/src/CMakeLists.txt 2013-10-30 20:11:59.000000000 +0700
++++ libharu-RELEASE_2_3_0_cmake/src/CMakeLists.txt 2017-06-01 16:08:45.425105746 +0700
+@@ -90,11 +90,13 @@ if(LIBHPDF_SHARED)
+ target_link_libraries(${LIBHPDF_NAME} ${ADDITIONAL_LIBRARIES})
+ if(WIN32 AND NOT CYGWIN)
+ set_target_properties(${LIBHPDF_NAME} PROPERTIES DEFINE_SYMBOL HPDF_DLL_MAKE)
++ else(WIN32 AND NOT CYGWIN)
++ set_target_properties(${LIBHPDF_NAME} PROPERTIES SOVERSION ${LIBHPDF_VERSION})
+ endif(WIN32 AND NOT CYGWIN)
+ install(
+ TARGETS ${LIBHPDF_NAME}
+- ARCHIVE DESTINATION lib
+- LIBRARY DESTINATION lib
++ ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
++ LIBRARY DESTINATION ${LIB_INSTALL_DIR}
+ RUNTIME DESTINATION bin
+ )
+ endif(LIBHPDF_SHARED)
diff --git a/meta-openembedded/meta-oe/recipes-support/libharu/libharu_2.3.0.bb b/meta-openembedded/meta-oe/recipes-support/libharu/libharu_2.3.0.bb
new file mode 100644
index 000000000..2d1a37c42
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libharu/libharu_2.3.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "free PDF library"
+HOMEPAGE = "http://libharu.org"
+DESCRIPTION = "libHaru is a library for generating PDF files. \
+ It is free, open source, written in ANSI C and cross platform. "
+
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://README;md5=3ee6bc1f64d9cc7907f44840c8e50cb1"
+
+SRC_URI = "git://github.com/libharu/libharu.git;branch=2_3 \
+ file://libharu-RELEASE_2_3_0_cmake.patch \
+ "
+
+SRCREV = "4ae1d5f4c84459f130bf1b1ef4c5c330af8eca5d"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+DEPENDS += "libpng zlib"
+
+do_install_append() {
+ mkdir -p ${D}/${datadir}/libharu
+ mv ${D}/libharu ${D}/${datadir}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
index b53ba4647..f83d9c922 100644
--- a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
@@ -4,11 +4,11 @@ SECTION = "libs"
LICENSE = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"
-# v0.18 + a single commit fixing the build
-SRCREV = "5090603d01779bb1717fb0c50953330e8770550f"
-PV = "0.18+git${SRCPV}"
+SRCREV = "5f5af2e417129ad8f4e05fc5c1b730f0694dca12"
+PV = "0.19+git${SRCPV}"
SRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.69.bb b/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.70.bb
index 4daeaf75b..94976d2e9 100644
--- a/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.69.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.70.bb
@@ -8,8 +8,8 @@ DEPENDS = "file"
SRC_URI = "${GNU_MIRROR}/libmicrohttpd/${BPN}-${PV}.tar.gz \
"
-SRC_URI[md5sum] = "3ce03db1f10007517cecf05e040069af"
-SRC_URI[sha256sum] = "fb9b6b148b787493e637d3083588711e65cbcb726fa02cee2cd543c5de27e37e"
+SRC_URI[md5sum] = "dcd6045ecb4ea18c120afedccbd1da74"
+SRC_URI[sha256sum] = "90d0a3d396f96f9bc41eb0f7e8187796049285fabef82604acd4879590977307"
inherit autotools lib_package pkgconfig gettext
diff --git a/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch b/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch
new file mode 100644
index 000000000..50cd4d427
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch
@@ -0,0 +1,67 @@
+From 64fd25af5fea3a3c9c12122a2fd0fab3cd420f72 Mon Sep 17 00:00:00 2001
+From: asmitk01-in <asmitk01@in.ibm.com>
+Date: Wed, 5 Feb 2020 00:14:42 -0600
+Subject: [PATCH] libmimetic: Removing test directory from the Makefile
+
+The test directory is removed as there were errors (relocation errors)
+since the shared object files of libc++ and libc were not taken from the
+sysroot path but from the system's library path where the required
+version of the .so is not present.
+
+The files 'mimetic/codec/other_codecs.h' and 'mimetic/contenttype.cxx'
+contains changes that resolves errors when compiling on target system
+aarch64-yoe-linux-musl.
+
+Signed-off-by: asmitk01-in <asmitk01@in.ibm.com>
+Change-Id: I1822b36ad4a1fa5e7b165d8cac3a6e96aca11c35
+---
+ Makefile.am | 2 +-
+ mimetic/codec/other_codecs.h | 4 ++++
+ mimetic/contenttype.cxx | 4 ++++
+ 3 files changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 634bd4c..c7cbae7 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,6 +1,6 @@
+ MAINTAINERCLEANFILES = Makefile Makefile.in config.cache
+ EXTRA_DIST=LICENSE m4
+-SUBDIRS = mimetic doc examples test win32
++SUBDIRS = mimetic doc examples win32
+ INCLUDES=-I$(top_srcdir)
+ ACLOCAL_AMFLAGS=-I m4
+
+diff --git a/mimetic/codec/other_codecs.h b/mimetic/codec/other_codecs.h
+index c4ccf3f..0fc88fd 100644
+--- a/mimetic/codec/other_codecs.h
++++ b/mimetic/codec/other_codecs.h
+@@ -8,6 +8,10 @@
+ #define _MIMETIC_CODEC_OTHER_CODECS_H_
+ #include <mimetic/codec/codec_base.h>
+
++#ifndef __GLIBC__
++ typedef unsigned int uint;
++#endif
++
+ namespace mimetic
+ {
+
+diff --git a/mimetic/contenttype.cxx b/mimetic/contenttype.cxx
+index 522082d..0577d44 100644
+--- a/mimetic/contenttype.cxx
++++ b/mimetic/contenttype.cxx
+@@ -13,6 +13,10 @@
+ #include <mimetic/tokenizer.h>
+ #include <mimetic/utils.h>
+
++#ifndef __GLIBC__
++ typedef unsigned int uint;
++#endif
++
+ namespace mimetic
+ {
+ using namespace std;
+--
+2.9.3
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic/0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch b/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic/0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch
new file mode 100644
index 000000000..c7c8d62aa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic/0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch
@@ -0,0 +1,49 @@
+From f8ab2b1aaa37f6ba9d527a99cb37b6ac2171e122 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 14 Feb 2020 17:03:12 -0800
+Subject: [PATCH] mimetic: Check for MMAP_FAILED return from mmap()
+
+Avoids using greater than zero comparision on pointers
+
+Fixes
+mimetic/os/mmfile.cxx:60:14: error: ordered comparison between pointer and zero ('char *' and 'int')
+
+if(m_beg > 0)
+~~~~ ^ ~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ mimetic/os/mmfile.cxx | 16 +++++++---------
+ 1 file changed, 7 insertions(+), 9 deletions(-)
+
+diff --git a/mimetic/os/mmfile.cxx b/mimetic/os/mmfile.cxx
+index dfc95b7..ed4ff55 100644
+--- a/mimetic/os/mmfile.cxx
++++ b/mimetic/os/mmfile.cxx
+@@ -57,15 +57,13 @@ bool MMFile::open(int mode)
+ bool MMFile::map()
+ {
+ m_beg = (char*) mmap(0, m_st.st_size, PROT_READ, MAP_SHARED,m_fd,0);
+- if(m_beg > 0)
+- {
+- m_end = m_beg + m_st.st_size;
+- #if HAVE_MADVISE
+- madvise(m_beg, m_st.st_size, MADV_SEQUENTIAL);
+- #endif
+- return true;
+- }
+- return false;
++ if(m_beg == MAP_FAILED)
++ return false;
++ m_end = m_beg + m_st.st_size;
++ #if HAVE_MADVISE
++ madvise(m_beg, m_st.st_size, MADV_SEQUENTIAL);
++ #endif
++ return true;
+ }
+
+ MMFile::~MMFile()
+--
+2.25.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb b/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb
new file mode 100644
index 000000000..590c4ebc2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb
@@ -0,0 +1,24 @@
+# Released under the MIT license.
+
+SUMMARY = "Mimetic Library for multi-part parsing"
+DESCRIPTION = "Email library (MIME) written in C++ designed to be easy to use and integrate but yet fast and efficient."
+AUTHOR = "Stefano Barbato <stefano@codesink.org>"
+HOMEPAGE = "http://www.codesink.org/mimetic_mime_library.html"
+BUGTRACKER = "https://github.com/LadislavSopko/mimetic/issues"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b49da7df0ca479ef01ff7f2d799eabee"
+
+SRCREV = "50486af99b4f9b35522d7b3de40b6ce107505279"
+SRC_URI += "git://github.com/LadislavSopko/mimetic/ \
+ file://0001-libmimetic-Removing-test-directory-from-the-Makefile.patch \
+ file://0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch \
+ "
+
+UPSTREAM_CHECK_COMMITS = "1"
+
+S = "${WORKDIR}/git"
+
+CXXFLAGS += "-Wno-narrowing"
+
+inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb
index 655db4907..7fe0640d9 100644
--- a/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb
@@ -12,6 +12,8 @@ DEPENDS = "libtool openssl"
SRC_URI = "git://github.com/OpenSC/libp11.git"
SRCREV = "973d31f3f58d5549ddd8b1f822ce8f72186f9d68"
+UPSTREAM_CHECK_GITTAGREGEX = "libp11-(?P<pver>\d+(\.\d+)+)"
+
S = "${WORKDIR}/git"
inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.2.1.bb b/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.3.0.bb
index c2f28fed2..e9d34ee66 100644
--- a/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.3.0.bb
@@ -5,7 +5,7 @@ LICENSE = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
SRC_URI = "git://github.com/librsync/librsync.git"
-SRCREV = "5917692418657dc78c9cbde3a8db4c85f25b9c8d"
+SRCREV = "028d9432d05ba4b75239e0ba35bcb36fbfc17e35"
S = "${WORKDIR}/git"
DEPENDS = "popt"
diff --git a/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.4.bb b/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.9.bb
index 6040ec959..39ed8a8fb 100644
--- a/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.9.bb
@@ -2,12 +2,12 @@ SUMMARY = "Multiplatform C library implementing the SSHv2 and SSHv1 protocol"
HOMEPAGE = "http://www.libssh.org"
SECTION = "libs"
LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=388a4fb1dea8ceae0be78ba9b01fc139"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dabb4958b830e5df11d2b0ed8ea255a0"
DEPENDS = "zlib openssl libgcrypt"
SRC_URI = "git://git.libssh.org/projects/libssh.git;branch=stable-0.8"
-SRCREV = "789df0b7d0c7abd6b85db9fc5247e146e3d4ddba"
+SRCREV = "04685a74df9ce1db1bc116a83a0da78b4f4fa1f8"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-use-python3-interpreter.patch b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-use-python3-interpreter.patch
new file mode 100644
index 000000000..e27e4f329
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-use-python3-interpreter.patch
@@ -0,0 +1,28 @@
+From 571c141b434dff13494c6a3afe621f63a8e610e9 Mon Sep 17 00:00:00 2001
+From: Andrey Zhizhikin <andrey.z@gmail.com>
+Date: Mon, 27 Jan 2020 14:29:34 +0000
+Subject: [PATCH] team_basic_test.py: use python3 interpreter
+
+Use python3 since python2 is EOL and has been removed from several
+distributions.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
+---
+ scripts/team_basic_test.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/team_basic_test.py b/scripts/team_basic_test.py
+index b05be9e..ad980e8 100755
+--- a/scripts/team_basic_test.py
++++ b/scripts/team_basic_test.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+ """
+ Basic test.
+
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest
index 4ba5acf05..b5c6f4ebb 100644
--- a/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest
+++ b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-python $(dirname $0)/team_basic_test.py
+python3 $(dirname $0)/team_basic_test.py
diff --git a/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.29.bb b/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.30.bb
index 821ca1938..9cd02b0c0 100644
--- a/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.29.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.30.bb
@@ -11,9 +11,10 @@ SRC_URI = "git://github.com/jpirko/libteam \
file://0001-include-sys-select.h-for-fd_set-definition.patch \
file://0002-teamd-Re-adjust-include-header-order.patch \
file://0001-team_basic_test.py-disable-RedHat-specific-test.patch \
+ file://0001-team_basic_test.py-use-python3-interpreter.patch \
file://run-ptest \
"
-SRCREV = "e897f02bf2403d4859a99e090e34ea768b4c0540"
+SRCREV = "471fb50d206e5a3f2eef9e4247329b51edc5c493"
S = "${WORKDIR}/git"
@@ -32,7 +33,7 @@ FILES_${PN}-utils = "${bindir}/bond2team \
"
RDEPENDS_${PN}-utils = "bash"
-RDEPENDS_${PN}-ptest = "python"
+RDEPENDS_${PN}-ptest = "python3-core"
do_install_ptest() {
install ${S}/scripts/team_basic_test.py ${D}${PTEST_PATH}/
diff --git a/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.1.0.bb b/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_8.0.0.bb
index 9e197a918..a2491cf9e 100644
--- a/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_8.0.0.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=135624eef03e1f1101b9ba9ac9b5fffd"
SRC_URI = "git://github.com/leethomason/tinyxml2.git"
-SRCREV = "9c740e8d2341bd46dbe8e87053cdb4d931971967"
+SRCREV = "bf15233ad88390461f6ab0dbcf046cce643c5fcb"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb b/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
index ea54e7552..0fb4a6e51 100644
--- a/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
@@ -12,7 +12,7 @@ SRC_URI = "git://github.com/Datera/lio-utils.git \
SRCREV = "0ac9091c1ff7a52d5435a4f4449e82637142e06e"
S = "${WORKDIR}/git"
-inherit distutils
+inherit ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "distutils", "", d)}
EXTRA_OEMAKE += "DESTDIR=${D}"
@@ -64,3 +64,10 @@ FILES_${PN} += "${sbindir}/* /etc/init.d/* /etc/target/*"
# http://errors.yoctoproject.org/Errors/Details/184712/
# python-native/python: can't open file 'setup.py': [Errno 2] No such file or directory
CLEANBROKEN = "1"
+
+python() {
+ if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('Requires meta-python2 to be present.')
+}
+
+
diff --git a/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb b/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.3.bb
index 19b94466b..c6f9404d6 100644
--- a/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.3.bb
@@ -3,12 +3,11 @@ HOMEPAGE = "http://sourceforge.net/projects/log4cpp/"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
-PRC = "rc5"
-SRC_URI = "http://downloads.sourceforge.net/${BPN}/${BP}${PRC}.tar.gz \
+SRC_URI = "http://downloads.sourceforge.net/${BPN}/${BP}.tar.gz \
file://fix-pc.patch;striplevel=2 \
"
-SRC_URI[md5sum] = "58b4591a2f3e7ef3d5e3e7cfb3a81a62"
-SRC_URI[sha256sum] = "a611d99a20af6676c60219762771c0bfac90f4879bbde70038ece75338b588ec"
+SRC_URI[md5sum] = "b9e2cee932da987212f2c74b767b4d8b"
+SRC_URI[sha256sum] = "2cbbea55a5d6895c9f0116a9a9ce3afb86df383cd05c9d6c1a4238e5e5c8f51d"
S = "${WORKDIR}/${BPN}"
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test/0001-gcov_merge.py-scov_merge.py-switch-to-python3.patch b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test/0001-gcov_merge.py-scov_merge.py-switch-to-python3.patch
new file mode 100644
index 000000000..969bfc17c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test/0001-gcov_merge.py-scov_merge.py-switch-to-python3.patch
@@ -0,0 +1,110 @@
+From 430982376a544bbccaef5006fab94bbc2f1d1711 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Mon, 13 Apr 2020 07:12:44 +0000
+Subject: [PATCH] gcov_merge.py/scov_merge.py: switch to python3
+
+Make gcov_merge.py and scov_merge.py port to python3.
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ tools/scripts/gcov_merge.py | 12 ++++++------
+ tools/scripts/scov_merge.py | 12 ++++++------
+ 2 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/tools/scripts/gcov_merge.py b/tools/scripts/gcov_merge.py
+index 0ac9bed..9f1cb8c 100644
+--- a/tools/scripts/gcov_merge.py
++++ b/tools/scripts/gcov_merge.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # Merge gcov graph from several test cases. This can be used to check
+ # the coverage of several test cases.
+@@ -11,7 +11,7 @@
+ import sys
+
+ def die(str):
+- print str
++ print(str)
+ sys.exit(-1)
+
+ def die_on(cond, str):
+@@ -55,11 +55,11 @@ def merge(gcls1, gcls2):
+ gcl1.merge(gcl2)
+
+ def gcov_merge(fns, of):
+- f = file(fns[0])
++ f = open(fns[0])
+ gcls_base = parse(f)
+
+ for fn in fns[1:]:
+- f = file(fn)
++ f = open(fn)
+ gcls = parse(f)
+ merge(gcls_base, gcls)
+
+@@ -67,10 +67,10 @@ def gcov_merge(fns, of):
+ gcl.write(of)
+
+ def usage():
+- print 'Usage: %s <gcov graph files>' % (sys.argv[0])
++ print('Usage: %s <gcov graph files>' % (sys.argv[0]))
+
+ if __name__ == '__main__':
+ if len(sys.argv) <= 1:
+ usage()
+- exit -1
++ sys.exit(-1)
+ gcov_merge(sys.argv[1:], sys.stdout)
+diff --git a/tools/scripts/scov_merge.py b/tools/scripts/scov_merge.py
+index f83b922..bbcf760 100644
+--- a/tools/scripts/scov_merge.py
++++ b/tools/scripts/scov_merge.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # Merge mce serverity coverage file from several test cases. This can
+ # be used to check the coverage of several test cases.
+@@ -11,7 +11,7 @@
+ import sys
+
+ def die(str):
+- print str
++ print(str)
+ sys.exit(-1)
+
+ def die_on(cond, str):
+@@ -47,11 +47,11 @@ def merge(gcls1, gcls2):
+ gcl1.merge(gcl2)
+
+ def scov_merge(fns, of):
+- f = file(fns[0])
++ f = open(fns[0])
+ gcls_base = parse(f)
+
+ for fn in fns[1:]:
+- f = file(fn)
++ f = open(fn)
+ gcls = parse(f)
+ merge(gcls_base, gcls)
+
+@@ -59,10 +59,10 @@ def scov_merge(fns, of):
+ gcl.write(of)
+
+ def usage():
+- print 'Usage: %s <severities coverage files>' % (sys.argv[0])
++ print('Usage: %s <severities coverage files>' % (sys.argv[0]))
+
+ if __name__ == '__main__':
+ if len(sys.argv) <= 1:
+ usage()
+- exit -1
++ sys.exit(-1)
+ scov_merge(sys.argv[1:], sys.stdout)
+--
+2.24.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb
index 007b3944a..35fb94470 100644
--- a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb
@@ -12,6 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-test.git;protocol=git \
file://makefile-remove-ldflags.patch \
+ file://0001-gcov_merge.py-scov_merge.py-switch-to-python3.patch \
"
SRCREV = "7643baf6c3919b3d727e6ba6c2e545dc6a653307"
PV = "20190917+git${SRCPV}"
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_166.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_168.bb
index 3b4ea1f67..e2ef6ea58 100644
--- a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_166.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_168.bb
@@ -9,7 +9,7 @@ SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git;protocol=http;
file://run-ptest \
"
-SRCREV = "ee90ff20ce6a4d5e016aa249ce8b37f359f9fda4"
+SRCREV = "078d593b8b0c7d44afdd439aacfad6682913038f"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://README.md;md5=74bb47b9a68850cb398665cf78b31de6"
diff --git a/meta-openembedded/meta-oe/recipes-support/monit/monit/monit b/meta-openembedded/meta-oe/recipes-support/monit/monit/monit
new file mode 100644
index 000000000..394704e06
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/monit/monit/monit
@@ -0,0 +1,42 @@
+#! /bin/sh
+#
+# This is an init script for openembedded
+# Copy it to /etc/init.d/monit and type
+# > update-rc.d monit defaults 89
+#
+monit=/usr/bin/monit
+pidfile=/var/run/monit.pid
+monit_args="-c /etc/monitrc"
+
+test -x "$monit" || exit 0
+
+case "$1" in
+ start)
+ echo -n "Starting Monit"
+ start-stop-daemon --start --quiet --exec $monit -- $monit_args
+ RETVAL=$?
+ echo "."
+ ;;
+ stop)
+ echo -n "Stopping Monit"
+ start-stop-daemon --stop --quiet --pidfile $pidfile
+ RETVAL=$?
+ echo "."
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ RETVAL=$?
+ ;;
+ status)
+ $monit $monit_args status
+ RETVAL=$?
+ echo "."
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|status}"
+ exit 1
+esac
+
+exit $RETVAL
+
diff --git a/meta-openembedded/meta-oe/recipes-support/monit/monit/monitrc b/meta-openembedded/meta-oe/recipes-support/monit/monit/monitrc
new file mode 100644
index 000000000..f8d6a4388
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/monit/monit/monitrc
@@ -0,0 +1,44 @@
+###############################################################################
+## Monit control file
+###############################################################################
+##
+## Comments begin with a '#' and extend through the end of the line. Keywords
+## are case insensitive. All path's MUST BE FULLY QUALIFIED, starting with '/'.
+##
+## Below you will find examples of some frequently used statements. For
+## information about the control file and a complete list of statements and
+## options, please have a look in the Monit manual.
+##
+##
+###############################################################################
+## Global section
+###############################################################################
+##
+## Start Monit in the background (run as a daemon):
+#
+set daemon 30 # check services at 30 seconds intervals
+# with start delay 240 # optional: delay the first check by 4-minutes (by
+# # default Monit check immediately after Monit start)
+#
+#
+## Set syslog logging. If you want to log to a standalone log file instead,
+## specify the full path to the log file
+#
+set log syslog
+
+set httpd port 2812
+ allow 0.0.0.0/0 # allow localhost to connect to the server and
+ allow admin:monit # require user 'admin' with password 'monit'
+ #with ssl { # enable SSL/TLS and set path to server certificate
+ # pemfile: /etc/ssl/certs/monit.pem
+ #}
+
+###############################################################################
+## Includes
+###############################################################################
+##
+## It is possible to include additional configuration parts from other files or
+## directories.
+#
+include /etc/monit.d/*
+
diff --git a/meta-openembedded/meta-oe/recipes-support/monit/monit_5.26.0.bb b/meta-openembedded/meta-oe/recipes-support/monit/monit_5.26.0.bb
new file mode 100644
index 000000000..a954682d6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/monit/monit_5.26.0.bb
@@ -0,0 +1,53 @@
+DESCRIPTION = "Monit is a free open source utility for managing and monitoring, \
+processes, programs, files, directories and filesystems on a UNIX system. \
+Monit conducts automatic maintenance and repair and can execute meaningful \
+causal actions in error situations."
+
+HOMEPAGE = "http://mmonit.com/monit/"
+
+LICENSE = "AGPL-3.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ea116a7defaf0e93b3bb73b2a34a3f51 \
+ file://libmonit/COPYING;md5=2405f1c59ed1bf3714cebdb40162ce92"
+
+SRC_URI = " \
+ https://mmonit.com/monit/dist/monit-${PV}.tar.gz \
+ file://monit \
+ file://monitrc \
+"
+
+SRC_URI[md5sum] = "9f7dc65e902c103e4c5891354994c3df"
+SRC_URI[sha256sum] = "87fc4568a3af9a2be89040efb169e3a2e47b262f99e78d5ddde99dd89f02f3c2"
+
+DEPENDS = "zlib bison-native libnsl2 flex-native openssl virtual/crypt"
+
+inherit autotools-brokensep systemd update-rc.d
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
+PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam"
+
+EXTRA_OECONF = "\
+ libmonit_cv_setjmp_available=no \
+ libmonit_cv_vsnprintf_c99_conformant=no \
+ --with-ssl-lib-dir=${STAGING_LIBDIR} \
+ --with-ssl-incl-dir=${STAGING_INCDIR} \
+"
+
+SYSTEMD_SERVICE_${PN} = "monit.service"
+SYSTEMD_AUTO_ENABLE = "enable"
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME_${PN} = "monit"
+INITSCRIPT_PARAMS_${PN} = "defaults 89"
+
+do_install_append() {
+
+ # Configuration file
+ install -Dm 0600 ${WORKDIR}/monitrc ${D}${sysconfdir}/monitrc
+
+ # SystemD
+ install -Dm 0644 ${S}/system/startup/monit.service.in ${D}${systemd_system_unitdir}/monit.service
+ sed -i -e 's,@prefix@,${exec_prefix},g' ${D}${systemd_unitdir}/system/monit.service
+
+ # SysV
+ install -Dm 0755 ${WORKDIR}/monit ${D}${sysconfdir}/init.d/monit
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/nano/nano_4.4.bb b/meta-openembedded/meta-oe/recipes-support/nano/nano_4.9.2.bb
index 18121be06..2b236ba1e 100644
--- a/meta-openembedded/meta-oe/recipes-support/nano/nano_4.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/nano/nano_4.9.2.bb
@@ -12,8 +12,10 @@ RDEPENDS_${PN} = "ncurses-terminfo-base"
PV_MAJOR = "${@d.getVar('PV').split('.')[0]}"
SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz"
-SRC_URI[md5sum] = "9650dd3eb0adbab6aaa748a6f1398ccb"
-SRC_URI[sha256sum] = "2af222e0354848ffaa3af31b5cd0a77917e9cb7742cd073d762f3c32f0f582c7"
+SRC_URI[md5sum] = "10df0100ebf4aa7bb4806428c11751eb"
+SRC_URI[sha256sum] = "d8a25eea942ecee2d57b8e037eb4b28f030f818b78773b8fcb994ed5835d2ef6"
+
+UPSTREAM_CHECK_URI = "https://ftp.gnu.org/gnu/nano"
inherit autotools gettext pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch
new file mode 100644
index 000000000..d2b9bf642
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch
@@ -0,0 +1,35 @@
+From 147f3c2acbd96d44025cec11800ded0282327764 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 18 Sep 2017 17:22:43 -0700
+Subject: [PATCH] md: Fix build with musl
+
+The MIPS specific header <sgidefs.h> is not provided by musl
+linux kernel headers provide <asm/sgidefs.h> which has same definitions
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ pr/include/md/_linux.cfg | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/pr/include/md/_linux.cfg
++++ b/pr/include/md/_linux.cfg
+@@ -499,7 +499,7 @@
+ #elif defined(__mips__)
+
+ /* For _ABI64 */
+-#include <sgidefs.h>
++#include <asm/sgidefs.h>
+
+ #ifdef __MIPSEB__
+ #define IS_BIG_ENDIAN 1
+@@ -511,7 +511,7 @@
+ #error "Unknown MIPS endianness."
+ #endif
+
+-#if _MIPS_SIM == _ABI64
++#if _MIPS_SIM == _MIPS_SIM_ABI64
+
+ #define IS_64
+
diff --git a/meta-openembedded/meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch
new file mode 100644
index 000000000..3a04d426a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch
@@ -0,0 +1,102 @@
+From 95bda64fb4cf1825fea745e918cfe8202843f0ba Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex@denx.de>
+Date: Sat, 30 Jan 2016 07:18:02 +0100
+Subject: [PATCH] Add nios2 support
+
+Add support for the nios2 CPU.
+
+Signed-off-by: Marek Vasut <marex@denx.de>
+Upstream-Status: Submitted [ https://bugzilla.mozilla.org/show_bug.cgi?id=1244421 ]
+---
+ nspr/pr/include/md/_linux.cfg | 45 +++++++++++++++++++++++++++++++++++++++++++
+ nspr/pr/include/md/_linux.h | 14 ++++++++++++++
+ 2 files changed, 59 insertions(+)
+
+Index: nspr/pr/include/md/_linux.cfg
+===================================================================
+--- nspr.orig/pr/include/md/_linux.cfg
++++ nspr/pr/include/md/_linux.cfg
+@@ -975,6 +975,51 @@
+ #define PR_BYTES_PER_WORD_LOG2 2
+ #define PR_BYTES_PER_DWORD_LOG2 3
+
++#elif defined(__nios2__)
++
++#define IS_LITTLE_ENDIAN 1
++#undef IS_BIG_ENDIAN
++
++#define PR_BYTES_PER_BYTE 1
++#define PR_BYTES_PER_SHORT 2
++#define PR_BYTES_PER_INT 4
++#define PR_BYTES_PER_INT64 8
++#define PR_BYTES_PER_LONG 4
++#define PR_BYTES_PER_FLOAT 4
++#define PR_BYTES_PER_DOUBLE 8
++#define PR_BYTES_PER_WORD 4
++#define PR_BYTES_PER_DWORD 8
++
++#define PR_BITS_PER_BYTE 8
++#define PR_BITS_PER_SHORT 16
++#define PR_BITS_PER_INT 32
++#define PR_BITS_PER_INT64 64
++#define PR_BITS_PER_LONG 32
++#define PR_BITS_PER_FLOAT 32
++#define PR_BITS_PER_DOUBLE 64
++#define PR_BITS_PER_WORD 32
++
++#define PR_BITS_PER_BYTE_LOG2 3
++#define PR_BITS_PER_SHORT_LOG2 4
++#define PR_BITS_PER_INT_LOG2 5
++#define PR_BITS_PER_INT64_LOG2 6
++#define PR_BITS_PER_LONG_LOG2 5
++#define PR_BITS_PER_FLOAT_LOG2 5
++#define PR_BITS_PER_DOUBLE_LOG2 6
++#define PR_BITS_PER_WORD_LOG2 5
++
++#define PR_ALIGN_OF_SHORT 2
++#define PR_ALIGN_OF_INT 4
++#define PR_ALIGN_OF_LONG 4
++#define PR_ALIGN_OF_INT64 4
++#define PR_ALIGN_OF_FLOAT 4
++#define PR_ALIGN_OF_DOUBLE 4
++#define PR_ALIGN_OF_POINTER 4
++#define PR_ALIGN_OF_WORD 4
++
++#define PR_BYTES_PER_WORD_LOG2 2
++#define PR_BYTES_PER_DWORD_LOG2 3
++
+ #elif defined(__or1k__)
+
+ #undef IS_LITTLE_ENDIAN
+Index: nspr/pr/include/md/_linux.h
+===================================================================
+--- nspr.orig/pr/include/md/_linux.h
++++ nspr/pr/include/md/_linux.h
+@@ -55,6 +55,8 @@
+ #define _PR_SI_ARCHITECTURE "avr32"
+ #elif defined(__m32r__)
+ #define _PR_SI_ARCHITECTURE "m32r"
++#elif defined(__nios2__)
++#define _PR_SI_ARCHITECTURE "nios2"
+ #elif defined(__or1k__)
+ #define _PR_SI_ARCHITECTURE "or1k"
+ #elif defined(__riscv) && (__riscv_xlen == 32)
+@@ -129,6 +131,18 @@ extern PRInt32 _PR_x86_64_AtomicSet(PRIn
+ #define _MD_ATOMIC_SET _PR_x86_64_AtomicSet
+ #endif
+
++#if defined(__nios2__)
++#if defined(__GNUC__)
++/* Use GCC built-in functions */
++#define _PR_HAVE_ATOMIC_OPS
++#define _MD_INIT_ATOMIC()
++#define _MD_ATOMIC_INCREMENT(ptr) __sync_add_and_fetch(ptr, 1)
++#define _MD_ATOMIC_DECREMENT(ptr) __sync_sub_and_fetch(ptr, 1)
++#define _MD_ATOMIC_ADD(ptr, i) __sync_add_and_fetch(ptr, i)
++#define _MD_ATOMIC_SET(ptr, nv) __sync_lock_test_and_set(ptr, nv)
++#endif
++#endif
++
+ #if defined(__or1k__)
+ #if defined(__GNUC__)
+ /* Use GCC built-in functions */
diff --git a/meta-openembedded/meta-oe/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch
new file mode 100644
index 000000000..90fe45f34
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch
@@ -0,0 +1,103 @@
+From 8a592e4ead4ed6befe6044da3dd2dc7523c33905 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <Mingli.Yu@windriver.com>
+Date: Fri, 16 Nov 2018 13:52:49 +0800
+Subject: [PATCH] Makefile.in: remove _BUILD_STRING and _BUILD_TIME
+
+Remove _BUILD_STRING and _BUILD_TIME to avoid
+adding timestamp to _pl_bld.h which can result
+in adding timestamp in library file such as
+libnspr4.so.
+ $ readelf --wide --decompress --hex-dump=.rodata libnspr4.so
+ [snip]
+ 0x00004000 32303138 2d31312d 31352030 353a3439 2018-11-15 05:49
+ [snip]
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+---
+ lib/ds/Makefile.in | 8 +-------
+ lib/libc/src/Makefile.in | 8 +-------
+ lib/prstreams/Makefile.in | 8 +-------
+ pr/src/Makefile.in | 8 +-------
+ 4 files changed, 4 insertions(+), 28 deletions(-)
+
+diff --git a/lib/ds/Makefile.in b/lib/ds/Makefile.in
+index e737791..b578476 100644
+--- a/lib/ds/Makefile.in
++++ b/lib/ds/Makefile.in
+@@ -114,13 +114,7 @@ GARBAGE += $(TINC)
+
+ $(TINC):
+ @$(MAKE_OBJDIR)
+- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
+- @if test ! -z "$(SH_NOW)"; then \
+- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
+- else \
+- true; \
+- fi
+- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
++ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
+
+
+ $(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
+diff --git a/lib/libc/src/Makefile.in b/lib/libc/src/Makefile.in
+index e8a6d9f..978ed28 100644
+--- a/lib/libc/src/Makefile.in
++++ b/lib/libc/src/Makefile.in
+@@ -116,13 +116,7 @@ GARBAGE += $(TINC)
+
+ $(TINC):
+ @$(MAKE_OBJDIR)
+- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
+- @if test ! -z "$(SH_NOW)"; then \
+- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
+- else \
+- true; \
+- fi
+- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
++ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
+
+
+ $(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
+diff --git a/lib/prstreams/Makefile.in b/lib/prstreams/Makefile.in
+index aeb2944..f318097 100644
+--- a/lib/prstreams/Makefile.in
++++ b/lib/prstreams/Makefile.in
+@@ -116,13 +116,7 @@ endif
+
+ $(TINC):
+ @$(MAKE_OBJDIR)
+- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
+- @if test ! -z "$(SH_NOW)"; then \
+- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
+- else \
+- true; \
+- fi
+- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
++ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
+
+
+ $(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
+diff --git a/pr/src/Makefile.in b/pr/src/Makefile.in
+index 19c5a69..b4ac31c 100644
+--- a/pr/src/Makefile.in
++++ b/pr/src/Makefile.in
+@@ -326,13 +326,7 @@ GARBAGE += $(TINC)
+
+ $(TINC):
+ @$(MAKE_OBJDIR)
+- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
+- @if test ! -z "$(SH_NOW)"; then \
+- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
+- else \
+- true; \
+- fi
+- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
++ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
+
+
+ $(OBJDIR)/prvrsion.$(OBJ_SUFFIX): prvrsion.c $(TINC)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/nspr/nspr/fix-build-on-x86_64.patch b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/fix-build-on-x86_64.patch
new file mode 100644
index 000000000..f12acc854
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/fix-build-on-x86_64.patch
@@ -0,0 +1,52 @@
+Fix build failure on x86_64
+
+When the target_cpu is x86_64, we should assume that the pkg uses 64bit,
+only if USE_N32 is set, we can assume that the pkg uses 32bit. It used a
+opposite logic before.
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+
+Upstream-Status: Pending
+---
+ configure.in | 12 ++++++------
+ 1 files changed, 6 insertions(+), 6 deletions(-)
+
+Index: nspr/configure.in
+===================================================================
+--- nspr.orig/configure.in
++++ nspr/configure.in
+@@ -1875,28 +1875,24 @@ tools are selected during the Xcode/Deve
+ PR_MD_ASFILES=os_Linux_ia64.s
+ ;;
+ x86_64)
+- if test -n "$USE_64"; then
+- PR_MD_ASFILES=os_Linux_x86_64.s
+- elif test -n "$USE_X32"; then
++ if test -n "$USE_X32"; then
++ AC_DEFINE(i386)
+ PR_MD_ASFILES=os_Linux_x86_64.s
+ CC="$CC -mx32"
+ CXX="$CXX -mx32"
+ else
+- AC_DEFINE(i386)
+- PR_MD_ASFILES=os_Linux_x86.s
+- CC="$CC -m32"
+- CXX="$CXX -m32"
++ PR_MD_ASFILES=os_Linux_x86_64.s
+ fi
+ ;;
+ ppc|powerpc)
+ PR_MD_ASFILES=os_Linux_ppc.s
+ ;;
+ powerpc64)
+- if test -n "$USE_64"; then
++ if test -n "$USE_N32"; then
++ PR_MD_ASFILES=os_Linux_ppc.s
++ else
+ CC="$CC -m64"
+ CXX="$CXX -m64"
+- else
+- PR_MD_ASFILES=os_Linux_ppc.s
+ fi
+ ;;
+ esac
diff --git a/meta-openembedded/meta-oe/recipes-support/nspr/nspr/nspr.pc.in b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/nspr.pc.in
new file mode 100644
index 000000000..1f15d19cf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/nspr.pc.in
@@ -0,0 +1,11 @@
+os_libs=-lpthread -ldl
+prefix=OEPREFIX
+exec_prefix=OEEXECPREFIX
+libdir=OELIBDIR
+includedir=OEINCDIR
+
+Name: NSPR
+Description: The Netscape Portable Runtime
+Version: NSPRVERSION
+Libs: -L${libdir} -lplds4 -lplc4 -lnspr4 -lpthread -ldl
+Cflags: -I${includedir}/nspr
diff --git a/meta-openembedded/meta-oe/recipes-support/nspr/nspr/remove-rpath-from-tests.patch b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/remove-rpath-from-tests.patch
new file mode 100644
index 000000000..7ba59ed64
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/remove-rpath-from-tests.patch
@@ -0,0 +1,26 @@
+Author: Andrei Gherzan <andrei@gherzan.ro>
+Date: Thu Feb 9 00:03:38 2012 +0200
+
+Avoid QA warnings by removing hardcoded rpath from binaries.
+
+[...]
+WARNING: QA Issue: package nspr contains bad RPATH {builddir}/tmp/work/armv5te-poky-linux-gnueabi/nspr-4.8.9-r1/nspr-4.8.9/mozilla/nsprpub/pr/tests/../../dist/lib
+in file {builddir}/tmp/work/armv5te-poky-linux-gnueabi/nspr-4.8.9-r1/packages-split/nspr/usr/lib/nspr/tests/multiwait
+[...]
+
+Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
+Upstream-Status: Pending
+
+Index: nspr/pr/tests/Makefile.in
+===================================================================
+--- nspr.orig/pr/tests/Makefile.in
++++ nspr/pr/tests/Makefile.in
+@@ -316,7 +316,7 @@ ifeq ($(OS_ARCH), SunOS)
+ endif # SunOS
+
+ ifeq (,$(filter-out Linux GNU GNU_%,$(OS_ARCH)))
+- LDOPTS += -Xlinker -rpath $(ABSOLUTE_LIB_DIR)
++ LDOPTS += -Xlinker
+ ifeq ($(USE_PTHREADS),1)
+ EXTRA_LIBS = -lpthread
+ endif
diff --git a/meta-openembedded/meta-oe/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch
new file mode 100644
index 000000000..bde715c5d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch
@@ -0,0 +1,19 @@
+the $srcdir is not defined at the time of gnu-configurize.
+
+Upstream-Status: Inappropriate [OE-Core specific]
+
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
+
+Index: nspr/configure.in
+===================================================================
+--- nspr.orig/configure.in
++++ nspr/configure.in
+@@ -8,7 +8,7 @@ AC_PREREQ(2.61)
+ AC_INIT
+ AC_CONFIG_SRCDIR([pr/include/nspr.h])
+
+-AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
++AC_CONFIG_AUX_DIR(build/autoconf)
+ AC_CANONICAL_TARGET
+
+ dnl ========================================================
diff --git a/meta-openembedded/meta-oe/recipes-support/nspr/nspr_4.25.bb b/meta-openembedded/meta-oe/recipes-support/nspr/nspr_4.25.bb
new file mode 100644
index 000000000..1de26e1ee
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nspr/nspr_4.25.bb
@@ -0,0 +1,197 @@
+SUMMARY = "Netscape Portable Runtime Library"
+HOMEPAGE = "http://www.mozilla.org/projects/nspr/"
+LICENSE = "GPL-2.0 | MPL-2.0 | LGPL-2.1"
+LIC_FILES_CHKSUM = "file://configure.in;beginline=3;endline=6;md5=90c2fdee38e45d6302abcfe475c8b5c5 \
+ file://Makefile.in;beginline=4;endline=38;md5=beda1dbb98a515f557d3e58ef06bca99"
+SECTION = "libs/network"
+
+SRC_URI = "http://ftp.mozilla.org/pub/nspr/releases/v${PV}/src/nspr-${PV}.tar.gz \
+ file://remove-rpath-from-tests.patch \
+ file://fix-build-on-x86_64.patch \
+ file://remove-srcdir-from-configure-in.patch \
+ file://0002-Add-nios2-support.patch \
+ file://0001-md-Fix-build-with-musl.patch \
+ file://Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch \
+ file://nspr.pc.in \
+"
+
+CACHED_CONFIGUREVARS_append_libc-musl = " CFLAGS='${CFLAGS} -D_PR_POLL_AVAILABLE \
+ -D_PR_HAVE_OFF64_T -D_PR_INET6 -D_PR_HAVE_INET_NTOP \
+ -D_PR_HAVE_GETHOSTBYNAME2 -D_PR_HAVE_GETADDRINFO \
+ -D_PR_INET6_PROBE -DNO_DLOPEN_NULL'"
+
+UPSTREAM_CHECK_URI = "http://ftp.mozilla.org/pub/nspr/releases/"
+UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+)/"
+
+SRC_URI[md5sum] = "4ca4d75a424f30fcdc766296bb103d17"
+SRC_URI[sha256sum] = "0bc309be21f91da4474c56df90415101c7f0c7c7cab2943cd943cd7896985256"
+
+CVE_PRODUCT = "netscape_portable_runtime"
+
+S = "${WORKDIR}/nspr-${PV}/nspr"
+
+RDEPENDS_${PN}-dev += "perl"
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+TESTS = " \
+ accept \
+ acceptread \
+ acceptreademu \
+ affinity \
+ alarm \
+ anonfm \
+ atomic \
+ attach \
+ bigfile \
+ cleanup \
+ cltsrv \
+ concur \
+ cvar \
+ cvar2 \
+ dlltest \
+ dtoa \
+ errcodes \
+ exit \
+ fdcach \
+ fileio \
+ foreign \
+ formattm \
+ fsync \
+ gethost \
+ getproto \
+ i2l \
+ initclk \
+ inrval \
+ instrumt \
+ intrio \
+ intrupt \
+ io_timeout \
+ ioconthr \
+ join \
+ joinkk \
+ joinku \
+ joinuk \
+ joinuu \
+ layer \
+ lazyinit \
+ libfilename \
+ lltest \
+ lock \
+ lockfile \
+ logfile \
+ logger \
+ many_cv \
+ multiwait \
+ nameshm1 \
+ nblayer \
+ nonblock \
+ ntioto \
+ ntoh \
+ op_2long \
+ op_excl \
+ op_filnf \
+ op_filok \
+ op_nofil \
+ parent \
+ parsetm \
+ peek \
+ perf \
+ pipeping \
+ pipeping2 \
+ pipeself \
+ poll_nm \
+ poll_to \
+ pollable \
+ prftest \
+ primblok \
+ provider \
+ prpollml \
+ ranfile \
+ randseed \
+ reinit \
+ rwlocktest \
+ sel_spd \
+ selct_er \
+ selct_nm \
+ selct_to \
+ selintr \
+ sema \
+ semaerr \
+ semaping \
+ sendzlf \
+ server_test \
+ servr_kk \
+ servr_uk \
+ servr_ku \
+ servr_uu \
+ short_thread \
+ sigpipe \
+ socket \
+ sockopt \
+ sockping \
+ sprintf \
+ stack \
+ stdio \
+ str2addr \
+ strod \
+ switch \
+ system \
+ testbit \
+ testfile \
+ threads \
+ timemac \
+ timetest \
+ tpd \
+ udpsrv \
+ vercheck \
+ version \
+ writev \
+ xnotify \
+ zerolen"
+
+inherit autotools multilib_script
+
+MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/nspr-config"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+
+# Do not install nspr in usr/include, but in usr/include/nspr, the
+# preferred path upstream.
+EXTRA_OECONF += "--includedir=${includedir}/nspr"
+
+do_compile_prepend() {
+ oe_runmake CROSS_COMPILE=1 CFLAGS="-DXP_UNIX ${BUILD_CFLAGS}" LDFLAGS="" CC="${BUILD_CC}" -C config export
+}
+
+do_compile_append() {
+ oe_runmake -C pr/tests
+}
+
+do_install_append() {
+ install -D ${WORKDIR}/nspr.pc.in ${D}${libdir}/pkgconfig/nspr.pc
+ sed -i \
+ -e 's:NSPRVERSION:${PV}:g' \
+ -e 's:OEPREFIX:${prefix}:g' \
+ -e 's:OELIBDIR:${libdir}:g' \
+ -e 's:OEINCDIR:${includedir}:g' \
+ -e 's:OEEXECPREFIX:${exec_prefix}:g' \
+ ${D}${libdir}/pkgconfig/nspr.pc
+
+ mkdir -p ${D}${libdir}/nspr/tests
+ install -m 0755 ${S}/pr/tests/runtests.pl ${D}${libdir}/nspr/tests
+ install -m 0755 ${S}/pr/tests/runtests.sh ${D}${libdir}/nspr/tests
+ cd ${B}/pr/tests
+ install -m 0755 ${TESTS} ${D}${libdir}/nspr/tests
+
+ # delete compile-et.pl and perr.properties from ${bindir} because these are
+ # only used to generate prerr.c and prerr.h files from prerr.et at compile
+ # time
+ rm ${D}${bindir}/compile-et.pl ${D}${bindir}/prerr.properties
+}
+
+FILES_${PN} = "${libdir}/lib*.so"
+FILES_${PN}-dev = "${bindir}/* ${libdir}/nspr/tests/* ${libdir}/pkgconfig \
+ ${includedir}/* ${datadir}/aclocal/* "
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
new file mode 100644
index 000000000..c380c1449
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
@@ -0,0 +1,52 @@
+From 5595e9651aca39af945931c73eb524a0f8bd130d Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 18 Dec 2019 12:29:50 +0100
+Subject: [PATCH] freebl: add a configure option to disable ARM HW crypto
+
+Not all current hardware supports it, particularly anything
+prior to armv8 does not.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ nss/lib/freebl/Makefile | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/nss/lib/freebl/Makefile
++++ b/nss/lib/freebl/Makefile
+@@ -125,6 +125,9 @@ else
+ DEFINES += -DNSS_X86
+ endif
+ endif
++
++ifdef NSS_USE_ARM_HW_CRYPTO
++ DEFINES += -DNSS_USE_ARM_HW_CRYPTO
+ ifeq ($(CPU_ARCH),aarch64)
+ DEFINES += -DUSE_HW_AES
+ EXTRA_SRCS += aes-armv8.c gcm-aarch64.c
+@@ -146,6 +149,7 @@ ifeq ($(CPU_ARCH),arm)
+ endif
+ endif
+ endif
++endif
+
+ ifeq ($(OS_TARGET),OSF1)
+ DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_NO_MP_WORD
+--- a/nss/lib/freebl/gcm.c
++++ b/nss/lib/freebl/gcm.c
+@@ -17,6 +17,7 @@
+
+ #include <limits.h>
+
++#ifdef NSS_USE_ARM_HW_CRYPTO
+ /* old gcc doesn't support some poly64x2_t intrinsic */
+ #if defined(__aarch64__) && defined(IS_LITTLE_ENDIAN) && \
+ (defined(__clang__) || defined(__GNUC__) && __GNUC__ > 6)
+@@ -25,6 +26,7 @@
+ /* We don't test on big endian platform, so disable this on big endian. */
+ #define USE_ARM_GCM
+ #endif
++#endif
+
+ /* Forward declarations */
+ SECStatus gcm_HashInit_hw(gcmHashContext *ghash);
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch
new file mode 100644
index 000000000..d5403397e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch
@@ -0,0 +1,48 @@
+From 0cf47ee432cc26a706864fcc09b2c3adc342a679 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 22 Feb 2017 11:36:11 +0200
+Subject: [PATCH] nss: fix support cross compiling
+
+Let some make variables be assigned from outside makefile.
+
+Upstream-Status: Inappropriate [configuration]
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ nss/coreconf/arch.mk | 2 +-
+ nss/lib/freebl/Makefile | 6 ++++++
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/nss/coreconf/arch.mk b/nss/coreconf/arch.mk
+index 06c276f..9c1eb51 100644
+--- a/nss/coreconf/arch.mk
++++ b/nss/coreconf/arch.mk
+@@ -30,7 +30,7 @@ OS_TEST := $(shell uname -m)
+ ifeq ($(OS_TEST),i86pc)
+ OS_RELEASE := $(shell uname -r)_$(OS_TEST)
+ else
+- OS_RELEASE := $(shell uname -r)
++ OS_RELEASE ?= $(shell uname -r)
+ endif
+
+ #
+diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile
+index 0ce1425..ebeb411 100644
+--- a/nss/lib/freebl/Makefile
++++ b/nss/lib/freebl/Makefile
+@@ -36,6 +36,12 @@ ifdef USE_64
+ DEFINES += -DNSS_USE_64
+ endif
+
++ifeq ($(OS_TEST),mips)
++ifndef USE_64
++ DEFINES += -DNS_PTR_LE_32
++endif
++endif
++
+ ifdef USE_ABI32_FPU
+ DEFINES += -DNSS_USE_ABI32_FPU
+ endif
+--
+2.11.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/blank-cert9.db b/meta-openembedded/meta-oe/recipes-support/nss/nss/blank-cert9.db
new file mode 100644
index 000000000..7d4bcf258
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/blank-cert9.db
Binary files differ
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/blank-key4.db b/meta-openembedded/meta-oe/recipes-support/nss/nss/blank-key4.db
new file mode 100644
index 000000000..d47f08d04
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/blank-key4.db
Binary files differ
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch
new file mode 100644
index 000000000..de812d27b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch
@@ -0,0 +1,33 @@
+clang 3.9 add this warning to rightly flag undefined
+behavior, we relegate this to be just a warning instead
+of error and keep the behavior as it was. Right fix would
+be to not pass enum to the function with variadic arguments
+as last named argument
+
+Fixes errors like
+ocsp.c:2220:22: error: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Werror,-Wvarargs]
+ va_start(ap, responseType0);
+ ^
+ocsp.c:2200:43: note: parameter of type 'SECOidTag' is declared here
+ SECOidTag responseType0, ...)
+
+see
+https://www.securecoding.cert.org/confluence/display/cplusplus/EXP58-CPP.+Pass+an+object+of+the+correct+type+to+va_start
+for more details
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: nss-3.37.1/nss/coreconf/Werror.mk
+===================================================================
+--- nss-3.37.1.orig/nss/coreconf/Werror.mk
++++ nss-3.37.1/nss/coreconf/Werror.mk
+@@ -56,7 +56,7 @@ ifndef WARNING_CFLAGS
+ ifdef CC_IS_CLANG
+ # -Qunused-arguments : clang objects to arguments that it doesn't understand
+ # and fixing this would require rearchitecture
+- WARNING_CFLAGS += -Qunused-arguments
++ WARNING_CFLAGS += -Qunused-arguments -Wno-error=varargs
+ # -Wno-parentheses-equality : because clang warns about macro expansions
+ WARNING_CFLAGS += $(call disable_warning,parentheses-equality)
+ ifdef BUILD_OPT
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch
new file mode 100644
index 000000000..547594d5b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch
@@ -0,0 +1,110 @@
+nss: fix incorrect shebang of perl
+
+Replace incorrect shebang of perl with `#!/usr/bin/env perl'.
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Upstream-Status: Pending
+---
+ nss/cmd/smimetools/smime | 2 +-
+ nss/coreconf/cpdist.pl | 2 +-
+ nss/coreconf/import.pl | 2 +-
+ nss/coreconf/jniregen.pl | 2 +-
+ nss/coreconf/outofdate.pl | 2 +-
+ nss/coreconf/release.pl | 2 +-
+ nss/coreconf/version.pl | 2 +-
+ nss/tests/clean_tbx | 2 +-
+ nss/tests/path_uniq | 2 +-
+ 9 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/nss/cmd/smimetools/smime b/nss/cmd/smimetools/smime
+--- a/nss/cmd/smimetools/smime
++++ b/nss/cmd/smimetools/smime
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/perl
++#!/usr/bin/env perl
+
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+diff --git a/nss/coreconf/cpdist.pl b/nss/coreconf/cpdist.pl
+index 800edfb..652187f 100755
+--- a/nss/coreconf/cpdist.pl
++++ b/nss/coreconf/cpdist.pl
+@@ -1,4 +1,4 @@
+-#! /usr/local/bin/perl
++#!/usr/bin/env perl
+ #
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+diff --git a/nss/coreconf/import.pl b/nss/coreconf/import.pl
+index dd2d177..428eaa5 100755
+--- a/nss/coreconf/import.pl
++++ b/nss/coreconf/import.pl
+@@ -1,4 +1,4 @@
+-#! /usr/local/bin/perl
++#!/usr/bin/env perl
+ #
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+diff --git a/nss/coreconf/jniregen.pl b/nss/coreconf/jniregen.pl
+index 2039180..5f4f69c 100755
+--- a/nss/coreconf/jniregen.pl
++++ b/nss/coreconf/jniregen.pl
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/perl
++#!/usr/bin/env perl
+ #
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+diff --git a/nss/coreconf/outofdate.pl b/nss/coreconf/outofdate.pl
+index 33d80bb..01fc097 100755
+--- a/nss/coreconf/outofdate.pl
++++ b/nss/coreconf/outofdate.pl
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/perl
++#!/usr/bin/env perl
+ #
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+diff --git a/nss/coreconf/release.pl b/nss/coreconf/release.pl
+index 7cde19d..b5df2f6 100755
+--- a/nss/coreconf/release.pl
++++ b/nss/coreconf/release.pl
+@@ -1,4 +1,4 @@
+-#! /usr/local/bin/perl
++#!/usr/bin/env perl
+ #
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+diff --git a/nss/coreconf/version.pl b/nss/coreconf/version.pl
+index d2a4942..79359fe 100644
+--- a/nss/coreconf/version.pl
++++ b/nss/coreconf/version.pl
+@@ -1,4 +1,4 @@
+-#!/usr/sbin/perl
++#!/usr/bin/env perl
+ #
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+diff --git a/nss/tests/clean_tbx b/nss/tests/clean_tbx
+index 4de9555..a7def9f 100755
+--- a/nss/tests/clean_tbx
++++ b/nss/tests/clean_tbx
+@@ -1,4 +1,4 @@
+-#! /bin/perl
++#!/usr/bin/env perl
+
+ #######################################################################
+ #
+diff --git a/nss/tests/path_uniq b/nss/tests/path_uniq
+index f29f60a..08fbffa 100755
+--- a/nss/tests/path_uniq
++++ b/nss/tests/path_uniq
+@@ -1,4 +1,4 @@
+-#! /bin/perl
++#!/usr/bin/env perl
+
+ ########################################################################
+ #
+--
+1.8.1.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
new file mode 100644
index 000000000..43c09d13e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
@@ -0,0 +1,36 @@
+Fix nss multilib build on openSUSE 11.x 32bit
+
+While building lib64-nss on openSUSE 11.x 32bit, the nsinstall will
+fail with error:
+
+* nsinstall.c:1:0: sorry, unimplemented: 64-bit mode not compiled
+
+It caused by the '-m64' option which passed to host gcc.
+
+The nsinstall was built first while nss starting to build, it only runs
+on host to install built files, it doesn't need any cross-compling or
+multilib build options. Just clean the ARCHFLAG and LDFLAGS to fix this
+error.
+
+Upstream-Status: Pending
+
+Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+===================================================
+Index: nss-3.24/nss/coreconf/nsinstall/Makefile
+===================================================================
+--- nss-3.24.orig/nss/coreconf/nsinstall/Makefile
++++ nss-3.24/nss/coreconf/nsinstall/Makefile
+@@ -18,6 +18,13 @@ INTERNAL_TOOLS = 1
+
+ include $(DEPTH)/coreconf/config.mk
+
++# nsinstall is unfit for cross-compiling/multilib-build since it was
++# always run on local host to install built files. This change intends
++# to clean the '-m64' from ARCHFLAG and LDFLAGS.
++ARCHFLAG =
++LDFLAGS =
++# CFLAGS =
++
+ ifeq (,$(filter-out OS2 WIN%,$(OS_TARGET)))
+ PROGRAM =
+ else
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch
new file mode 100644
index 000000000..7661dc93a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch
@@ -0,0 +1,26 @@
+nss:no rpath for cross compiling
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Upstream-Status: Inappropriate [configuration]
+---
+ nss/cmd/platlibs.mk | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/nss/cmd/platlibs.mk b/nss/cmd/platlibs.mk
+--- a/nss/cmd/platlibs.mk
++++ b/nss/cmd/platlibs.mk
+@@ -18,9 +18,9 @@ endif
+
+ ifeq ($(OS_ARCH), Linux)
+ ifeq ($(USE_64), 1)
+-EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:/opt/sun/private/lib64:$$ORIGIN/../lib'
++#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:/opt/sun/private/lib64:$$ORIGIN/../lib'
+ else
+-EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib:/opt/sun/private/lib'
++#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib:/opt/sun/private/lib'
+ endif
+ endif
+
+--
+1.8.1.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/nss.pc.in b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss.pc.in
new file mode 100644
index 000000000..402b4ecb3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss.pc.in
@@ -0,0 +1,11 @@
+prefix=OEPREFIX
+exec_prefix=OEEXECPREFIX
+libdir=OELIBDIR
+includedir=OEINCDIR
+
+Name: NSS
+Description: Network Security Services
+Version: %NSS_VERSION%
+Requires: nspr >= %NSPR_VERSION%
+Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lsoftokn3 -lnssutil3
+Cflags: -IOEINCDIR
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch
new file mode 100644
index 000000000..3a817faaa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch
@@ -0,0 +1,23 @@
+nss does not build on mips with clang because wrong types are used?
+
+pqg.c:339:16: error: comparison of constant 18446744073709551615 with expression of type 'unsigned long' is always true [-Werror,-Wtautological-constant-out-of-range-compare]
+ if (addend < MP_DIGIT_MAX) {
+ ~~~~~~ ^ ~~~~~~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+Index: nss-3.37.1/nss/lib/freebl/pqg.c
+===================================================================
+--- nss-3.37.1.orig/nss/lib/freebl/pqg.c
++++ nss-3.37.1/nss/lib/freebl/pqg.c
+@@ -326,8 +326,8 @@ generate_h_candidate(SECItem *hit, mp_in
+
+ static SECStatus
+ addToSeed(const SECItem *seed,
+- unsigned long addend,
+- int seedlen, /* g in 186-1 */
++ unsigned long long addend,
++ int seedlen, /* g in 186-1 */
+ SECItem *seedout)
+ {
+ mp_int s, sum, modulus, tmp;
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/riscv.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/riscv.patch
new file mode 100644
index 000000000..aef91a7c3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/riscv.patch
@@ -0,0 +1,36 @@
+Enable uint128 on riscv64
+
+Fixes
+| verified/kremlin/kremlib/dist/minimal/LowStar_Endianness.h:29:37: error: 'load128_be' declared 'static' but never defined [-Werror=unused-function]
+| 29 | inline static FStar_UInt128_uint128 load128_be(uint8_t *x0);
+| | ^~~~~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/nss/lib/freebl/verified/kremlin/include/kremlin/internal/types.h
++++ b/nss/lib/freebl/verified/kremlin/include/kremlin/internal/types.h
+@@ -56,7 +56,8 @@ typedef const char *Prims_string;
+ #include <emmintrin.h>
+ typedef __m128i FStar_UInt128_uint128;
+ #elif !defined(KRML_VERIFIED_UINT128) && !defined(_MSC_VER) && \
+- (defined(__x86_64__) || defined(__x86_64) || defined(__aarch64__))
++ (defined(__x86_64__) || defined(__x86_64) || defined(__aarch64__) || \
++ (defined(__riscv) && __riscv_xlen == 64))
+ typedef unsigned __int128 FStar_UInt128_uint128;
+ #else
+ typedef struct FStar_UInt128_uint128_s {
+--- a/nss/lib/freebl/verified/kremlin/kremlib/dist/minimal/fstar_uint128_gcc64.h
++++ b/nss/lib/freebl/verified/kremlin/kremlib/dist/minimal/fstar_uint128_gcc64.h
+@@ -23,9 +23,10 @@
+ #include "FStar_UInt128.h"
+ #include "FStar_UInt_8_16_32_64.h"
+ #include "LowStar_Endianness.h"
+-
++#include <stdint.h>
+ #if !defined(KRML_VERIFIED_UINT128) && !defined(_MSC_VER) && \
+- (defined(__x86_64__) || defined(__x86_64) || defined(__aarch64__))
++ (defined(__x86_64__) || defined(__x86_64) || defined(__aarch64__) || \
++ (defined(__riscv) && __riscv_xlen == 64))
+
+ /* GCC + using native unsigned __int128 support */
+
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/signlibs.sh b/meta-openembedded/meta-oe/recipes-support/nss/nss/signlibs.sh
new file mode 100644
index 000000000..a74e499f8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/signlibs.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# signlibs.sh
+#
+# (c)2010 Wind River Systems, Inc.
+#
+# regenerates the .chk files for the NSS libraries that require it
+# since the ones that are built have incorrect checksums that were
+# calculated on the host where they really need to be done on the
+# target
+
+CHK_FILES=`ls /lib*/*.chk /usr/lib*/*.chk 2>/dev/null`
+SIGN_BINARY=`which shlibsign`
+for I in $CHK_FILES
+do
+ DN=`dirname $I`
+ BN=`basename $I .chk`
+ FN=$DN/$BN.so
+ $SIGN_BINARY -i $FN
+done
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/system-pkcs11.txt b/meta-openembedded/meta-oe/recipes-support/nss/nss/system-pkcs11.txt
new file mode 100644
index 000000000..1a264e9cc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/system-pkcs11.txt
@@ -0,0 +1,5 @@
+library=
+name=NSS Internal PKCS #11 Module
+parameters=configdir='sql:/etc/pki/nssdb' certPrefix='' keyPrefix='' secmod='secmod.db' flags= updatedir='' updateCertPrefix='' updateKeyPrefix='' updateid='' updateTokenDescription=''
+NSS=Flags=internal,critical trustOrder=75 cipherOrder=100 slotParams=(1={slotFlags=[ECC,RSA,DSA,DH,RC2,RC4,DES,RANDOM,SHA1,MD5,MD2,SSL,TLS,AES,Camellia,SEED,SHA256,SHA512] askpw=any timeout=30})
+
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss_3.51.1.bb b/meta-openembedded/meta-oe/recipes-support/nss/nss_3.51.1.bb
new file mode 100644
index 000000000..001124011
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss_3.51.1.bb
@@ -0,0 +1,274 @@
+SUMMARY = "Mozilla's SSL and TLS implementation"
+DESCRIPTION = "Network Security Services (NSS) is a set of libraries \
+designed to support cross-platform development of \
+security-enabled client and server applications. \
+Applications built with NSS can support SSL v2 and v3, \
+TLS, PKCS 5, PKCS 7, PKCS 11, PKCS 12, S/MIME, X.509 \
+v3 certificates, and other security standards."
+HOMEPAGE = "http://www.mozilla.org/projects/security/pki/nss/"
+SECTION = "libs"
+
+DEPENDS = "sqlite3 nspr zlib nss-native"
+DEPENDS_class-native = "sqlite3-native nspr-native zlib-native"
+
+LICENSE = "MPL-2.0 | (MPL-2.0 & GPL-2.0+) | (MPL-2.0 & LGPL-2.1+)"
+
+LIC_FILES_CHKSUM = "file://nss/COPYING;md5=3b1e88e1b9c0b5a4b2881d46cce06a18 \
+ file://nss/lib/freebl/mpi/doc/LICENSE;md5=491f158d09d948466afce85d6f1fe18f \
+ file://nss/lib/freebl/mpi/doc/LICENSE-MPL;md5=5d425c8f3157dbf212db2ec53d9e5132"
+
+VERSION_DIR = "${@d.getVar('BP').upper().replace('-', '_').replace('.', '_') + '_RTM'}"
+
+SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${VERSION_DIR}/src/${BP}.tar.gz \
+ file://nss.pc.in \
+ file://signlibs.sh \
+ file://0001-nss-fix-support-cross-compiling.patch \
+ file://nss-no-rpath-for-cross-compiling.patch \
+ file://nss-fix-incorrect-shebang-of-perl.patch \
+ file://disable-Wvarargs-with-clang.patch \
+ file://pqg.c-ULL_addend.patch \
+ file://blank-cert9.db \
+ file://blank-key4.db \
+ file://system-pkcs11.txt \
+ file://nss-fix-nsinstall-build.patch \
+ file://0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch \
+ file://riscv.patch \
+ "
+
+SRC_URI[md5sum] = "6acaf1ddff69306ae30a908881c6f233"
+SRC_URI[sha256sum] = "085c5eaceef040eddea639e2e068e70f0e368f840327a678ef74ae3d6c15ca78"
+
+UPSTREAM_CHECK_URI = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases"
+UPSTREAM_CHECK_REGEX = "NSS_(?P<pver>.+)_release_notes"
+
+inherit siteinfo
+
+TD = "${S}/tentative-dist"
+TDS = "${S}/tentative-dist-staging"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_configure_prepend_libc-musl () {
+ sed -i -e '/-DHAVE_SYS_CDEFS_H/d' ${S}/nss/lib/dbm/config/config.mk
+}
+
+do_compile_prepend_class-native() {
+ export NSPR_INCLUDE_DIR=${STAGING_INCDIR_NATIVE}/nspr
+ export NSPR_LIB_DIR=${STAGING_LIBDIR_NATIVE}
+ export NSS_ENABLE_WERROR=0
+}
+
+do_compile_prepend_class-nativesdk() {
+ export LDFLAGS=""
+}
+
+do_compile_prepend_class-native() {
+ # Need to set RPATH so that chrpath will do its job correctly
+ RPATH="-Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_BASE_LIBDIR_NATIVE}"
+}
+
+do_compile() {
+ export NSPR_INCLUDE_DIR=${STAGING_INCDIR}/nspr
+
+ export CROSS_COMPILE=1
+ export NATIVE_CC="${BUILD_CC}"
+ # Additional defines needed on Centos 7
+ export NATIVE_FLAGS="${BUILD_CFLAGS} -DLINUX -Dlinux"
+ export BUILD_OPT=1
+
+ export FREEBL_NO_DEPEND=1
+ export FREEBL_LOWHASH=1
+
+ export LIBDIR=${libdir}
+ export MOZILLA_CLIENT=1
+ export NS_USE_GCC=1
+ export NSS_USE_SYSTEM_SQLITE=1
+ export NSS_ENABLE_ECC=1
+
+ ${@bb.utils.contains("TUNE_FEATURES", "crypto", "export NSS_USE_ARM_HW_CRYPTO=1", "", d)}
+
+ export OS_RELEASE=3.4
+ export OS_TARGET=Linux
+ export OS_ARCH=Linux
+
+ if [ "${TARGET_ARCH}" = "powerpc" ]; then
+ OS_TEST=ppc
+ elif [ "${TARGET_ARCH}" = "powerpc64" ]; then
+ OS_TEST=ppc64
+ elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
+ OS_TEST=mips
+ elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then
+ OS_TEST="aarch64"
+ else
+ OS_TEST="${TARGET_ARCH}"
+ fi
+
+ if [ "${SITEINFO_BITS}" = "64" ]; then
+ export USE_64=1
+ elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
+ export USE_X32=1
+ fi
+
+ export NSS_DISABLE_GTESTS=1
+
+ # We can modify CC in the environment, but if we set it via an
+ # argument to make, nsinstall, a host program, will also build with it!
+ #
+ # nss pretty much does its own thing with CFLAGS, so we put them into CC.
+ # Optimization will get clobbered, but most of the stuff will survive.
+ # The motivation for this is to point to the correct place for debug
+ # source files and CFLAGS does that. Nothing uses CCC.
+ #
+ export CC="${CC} ${CFLAGS}"
+ make -C ./nss CCC="${CXX} -g" \
+ OS_TEST=${OS_TEST} \
+ RPATH="${RPATH}"
+}
+
+do_compile[vardepsexclude] += "SITEINFO_BITS"
+
+do_install_prepend_class-nativesdk() {
+ export LDFLAGS=""
+}
+
+do_install() {
+ export CROSS_COMPILE=1
+ export NATIVE_CC="${BUILD_CC}"
+ export BUILD_OPT=1
+
+ export FREEBL_NO_DEPEND=1
+
+ export LIBDIR=${libdir}
+ export MOZILLA_CLIENT=1
+ export NS_USE_GCC=1
+ export NSS_USE_SYSTEM_SQLITE=1
+ export NSS_ENABLE_ECC=1
+
+ export OS_RELEASE=3.4
+ export OS_TARGET=Linux
+ export OS_ARCH=Linux
+
+ if [ "${TARGET_ARCH}" = "powerpc" ]; then
+ OS_TEST=ppc
+ elif [ "${TARGET_ARCH}" = "powerpc64" ]; then
+ OS_TEST=ppc64
+ elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
+ OS_TEST=mips
+ elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then
+ CPU_ARCH=aarch64
+ OS_TEST="aarch64"
+ else
+ OS_TEST="${TARGET_ARCH}"
+ fi
+ if [ "${SITEINFO_BITS}" = "64" ]; then
+ export USE_64=1
+ elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
+ export USE_X32=1
+ fi
+
+ export NSS_DISABLE_GTESTS=1
+
+ make -C ./nss \
+ CCC="${CXX}" \
+ OS_TEST=${OS_TEST} \
+ SOURCE_LIB_DIR="${TD}/${libdir}" \
+ SOURCE_BIN_DIR="${TD}/${bindir}" \
+ install
+
+ install -d ${D}/${libdir}/
+ for file in ${S}/dist/*.OBJ/lib/*.so; do
+ echo "Installing `basename $file`..."
+ cp $file ${D}/${libdir}/
+ done
+
+ for shared_lib in ${TD}/${libdir}/*.so.*; do
+ if [ -f $shared_lib ]; then
+ cp $shared_lib ${D}/${libdir}
+ ln -sf $(basename $shared_lib) ${D}/${libdir}/$(basename $shared_lib .1oe)
+ fi
+ done
+ for shared_lib in ${TD}/${libdir}/*.so; do
+ if [ -f $shared_lib -a ! -e ${D}/${libdir}/$shared_lib ]; then
+ cp $shared_lib ${D}/${libdir}
+ fi
+ done
+
+ install -d ${D}/${includedir}/nss3
+ install -m 644 -t ${D}/${includedir}/nss3 dist/public/nss/*
+
+ install -d ${D}/${bindir}
+ for binary in ${TD}/${bindir}/*; do
+ install -m 755 -t ${D}/${bindir} $binary
+ done
+}
+
+do_install[vardepsexclude] += "SITEINFO_BITS"
+
+do_install_append() {
+ # Create empty .chk files for the NSS libraries at build time. They could
+ # be regenerated at target's boot time.
+ for file in libsoftokn3.chk libfreebl3.chk libnssdbm3.chk; do
+ touch ${D}/${libdir}/$file
+ chmod 755 ${D}/${libdir}/$file
+ done
+ install -D -m 755 ${WORKDIR}/signlibs.sh ${D}/${bindir}/signlibs.sh
+
+ install -d ${D}${libdir}/pkgconfig/
+ sed 's/%NSS_VERSION%/${PV}/' ${WORKDIR}/nss.pc.in | sed 's/%NSPR_VERSION%/4.9.2/' > ${D}${libdir}/pkgconfig/nss.pc
+ sed -i s:OEPREFIX:${prefix}:g ${D}${libdir}/pkgconfig/nss.pc
+ sed -i s:OEEXECPREFIX:${exec_prefix}:g ${D}${libdir}/pkgconfig/nss.pc
+ sed -i s:OELIBDIR:${libdir}:g ${D}${libdir}/pkgconfig/nss.pc
+ sed -i s:OEINCDIR:${includedir}/nss3:g ${D}${libdir}/pkgconfig/nss.pc
+}
+
+do_install_append_class-target() {
+ # It used to call certutil to create a blank certificate with empty password at
+ # build time, but the checksum of key4.db changes every time when certutil is called.
+ # It causes non-determinism issue, so provide databases with a blank certificate
+ # which are originally from output of nss in qemux86-64 build. You can get these
+ # databases by:
+ # certutil -N -d sql:/database/path/ --empty-password
+ install -d ${D}${sysconfdir}/pki/nssdb/
+ install -m 0644 ${WORKDIR}/blank-cert9.db ${D}${sysconfdir}/pki/nssdb/cert9.db
+ install -m 0644 ${WORKDIR}/blank-key4.db ${D}${sysconfdir}/pki/nssdb/key4.db
+ install -m 0644 ${WORKDIR}/system-pkcs11.txt ${D}${sysconfdir}/pki/nssdb/pkcs11.txt
+}
+
+PACKAGE_WRITE_DEPS += "nss-native"
+pkg_postinst_${PN} () {
+ if [ -n "$D" ]; then
+ for I in $D${libdir}/lib*.chk; do
+ DN=`dirname $I`
+ BN=`basename $I .chk`
+ FN=$DN/$BN.so
+ shlibsign -i $FN
+ if [ $? -ne 0 ]; then
+ exit 1
+ fi
+ done
+ else
+ signlibs.sh
+ fi
+}
+
+PACKAGES =+ "${PN}-smime"
+FILES_${PN}-smime = "\
+ ${bindir}/smime \
+"
+
+FILES_${PN} = "\
+ ${sysconfdir} \
+ ${bindir} \
+ ${libdir}/lib*.chk \
+ ${libdir}/lib*.so \
+ "
+
+FILES_${PN}-dev = "\
+ ${libdir}/nss \
+ ${libdir}/pkgconfig/* \
+ ${includedir}/* \
+ "
+
+RDEPENDS_${PN}-smime = "perl"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/onig/onig_6.9.4.bb b/meta-openembedded/meta-oe/recipes-support/onig/onig_6.9.4.bb
index cfa86f04c..50d9f5235 100644
--- a/meta-openembedded/meta-oe/recipes-support/onig/onig_6.9.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/onig/onig_6.9.4.bb
@@ -28,5 +28,6 @@ do_compile_ptest() {
}
do_install_ptest() {
- install -Dm0755 -t ${D}${PTEST_PATH}/tests/ ${B}/test/.libs/*
+ mkdir -p ${D}${PTEST_PATH}/tests
+ install -m 0755 -t ${D}${PTEST_PATH}/tests/ ${B}/test/.libs/*
}
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch
deleted file mode 100644
index 35e46465a..000000000
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
-
-slapd depends on ICU if it was built first.
-
-Upstream-Status: inappropiate [embedded specific]
----
- configure.in | 8 --------
- 1 file changed, 8 deletions(-)
-
---- openldap-2.4.23.orig/configure.in
-+++ openldap-2.4.23/configure.in
-@@ -2045,18 +2045,10 @@ if test $ol_enable_ndb != no ; then
- SLAPD_LIBS="$SLAPD_LIBS \$(SLAPD_NDB_LIBS)"
- fi
- fi
-
- dnl ----------------------------------------------------------------
--dnl International Components for Unicode
--OL_ICU
--if test "$ol_icu" = no ; then
-- AC_MSG_WARN([ICU not available])
--else
-- ICU_LIBS="$ol_icu"
--fi
--dnl ----------------------------------------------------------------
- dnl
- dnl Check for Cyrus SASL
- dnl
- WITH_SASL=no
- ol_link_sasl=no
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.48.bb b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.49.bb
index ecc219d35..670c704e6 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.48.bb
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.49.bb
@@ -7,7 +7,7 @@ HOMEPAGE = "http://www.OpenLDAP.org/license.html"
# basically BSD. opensource.org does not record this license
# at present (so it is apparently not OSI certified).
LICENSE = "OpenLDAP"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=ad914c35f97b468f421f8ac0f3d821f4 \
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=5391b559d23a2237bdb21e7a62dae7c3 \
file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972 \
"
SECTION = "libs"
@@ -16,7 +16,6 @@ LDAP_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
SRC_URI = "http://www.openldap.org/software/download/OpenLDAP/openldap-release/${BP}.tgz \
file://openldap-m4-pthread.patch \
- file://kill-icu.patch \
file://openldap-2.4.28-gnutls-gcrypt.patch \
file://use-urandom.patch \
file://initscript \
@@ -26,8 +25,8 @@ SRC_URI = "http://www.openldap.org/software/download/OpenLDAP/openldap-release/$
file://remove-user-host-pwd-from-version.patch \
"
-SRC_URI[md5sum] = "0729a0711fe096831dedc159e0bbe73f"
-SRC_URI[sha256sum] = "d9523ffcab5cd14b709fcf3cb4d04e8bc76bb8970113255f372bc74954c6074d"
+SRC_URI[md5sum] = "2a47a6bb4319357ea7b032c45283e79e"
+SRC_URI[sha256sum] = "e3b117944b4180f23befe87d0dcf47f29de775befbc469dcf4ac3dab3311e56e"
DEPENDS = "util-linux groff-native"
diff --git a/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite/0001-pcsc-spy-use-python3-only.patch b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite/0001-pcsc-spy-use-python3-only.patch
new file mode 100644
index 000000000..3e7b0adda
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite/0001-pcsc-spy-use-python3-only.patch
@@ -0,0 +1,43 @@
+From 75dd98876951d86890ceb30be521de57fd31e3c7 Mon Sep 17 00:00:00 2001
+From: Andrey Zhizhikin <andrey.z@gmail.com>
+Date: Mon, 27 Jan 2020 13:27:12 +0000
+Subject: [PATCH] pcsc-spy: use python3 only
+
+Python2 has been EOL and most distributions would not provide any
+support for it anymore. Since Python3 is available in all distributions
+now, switch pcsc-spy to use it exclusively.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
+---
+ src/spy/pcsc-spy | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
+
+diff --git a/src/spy/pcsc-spy b/src/spy/pcsc-spy
+index 85222c6..965138e 100755
+--- a/src/spy/pcsc-spy
++++ b/src/spy/pcsc-spy
+@@ -1,4 +1,4 @@
+-#! /usr/bin/python
++#!/usr/bin/env python3
+
+ """
+ # Display PC/SC functions arguments
+@@ -22,12 +22,7 @@ from __future__ import print_function
+ import os
+ import signal
+ import time
+-try:
+- # for Python3
+- from queue import Queue
+-except ImportError:
+- # for Python2
+- from Queue import Queue
++from queue import Queue
+ from threading import Thread
+ from operator import attrgetter
+
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.26.bb b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.26.bb
index 5e6084656..91d77ac93 100644
--- a/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.26.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.26.bb
@@ -10,11 +10,14 @@ LICENSE_${PN}-spy = "GPLv3+"
LICENSE_${PN}-spy-dev = "GPLv3+"
LIC_FILES_CHKSUM = "file://COPYING;md5=628c01ba985ecfa21677f5ee2d5202f6"
-SRC_URI = "https://pcsclite.apdu.fr/files/${BP}.tar.bz2"
+SRC_URI = "\
+ https://pcsclite.apdu.fr/files/${BP}.tar.bz2 \
+ file://0001-pcsc-spy-use-python3-only.patch \
+"
SRC_URI[md5sum] = "9d36882998449daceec267c68a21ff0d"
SRC_URI[sha256sum] = "3eb7be7d6ef618c0a444316cf5c1f2f9d7227aedba7a192f389fe3e7c0dfbbd9"
-inherit autotools systemd pkgconfig
+inherit autotools systemd pkgconfig perlnative
EXTRA_OECONF = " \
--disable-libusb \
@@ -50,6 +53,6 @@ RPROVIDES_${PN} += "${PN}-systemd"
RREPLACES_${PN} += "${PN}-systemd"
RCONFLICTS_${PN} += "${PN}-systemd"
SYSTEMD_SERVICE_${PN} = "pcscd.socket"
-RDEPENDS_${PN}-spy +="python"
+RDEPENDS_${PN}-spy +="python3"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.4.bb b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.4.bb
index f1dabcd01..fcd521975 100644
--- a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.4.bb
@@ -16,6 +16,8 @@ SRC_URI = " \
"
SRCREV = "b95393dcc3640807838e8323b4e600e54d2e8116"
+UPSTREAM_CHECK_GITTAGREGEX = "poco-(?P<pver>\d+(\.\d+)+)"
+
S = "${WORKDIR}/git"
inherit cmake ptest
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.84.0.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.86.1.bb
index 5153868b6..a6067e634 100644
--- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.84.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.86.1.bb
@@ -7,14 +7,14 @@ SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.xz \
file://0001-Do-not-overwrite-all-our-build-flags.patch \
file://basename-include.patch \
"
-SRC_URI[md5sum] = "e14a8aca8809908ad4364c32c17bcb92"
-SRC_URI[sha256sum] = "c7a130da743b38a548f7a21fe5940506fb1949f4ebdd3209f0e5b302fa139731"
+SRC_URI[md5sum] = "2a638739f29e82a0a57b633ea39c87f3"
+SRC_URI[sha256sum] = "af630a277c8e194c31339c5446241834aed6ed3d4b4dc7080311e51c66257f6c"
DEPENDS = "fontconfig zlib cairo lcms glib-2.0"
inherit cmake pkgconfig gobject-introspection
-PACKAGECONFIG ??= "jpeg openjpeg png tiff nss ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'qt5', '', d)}"
+PACKAGECONFIG ??= "jpeg openjpeg png tiff nss splash"
PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON -DENABLE_DCTDECODER=libjpeg,-DWITH_JPEG=OFF -DENABLE_DCTDECODER=none,jpeg"
PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng"
PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff"
@@ -22,6 +22,7 @@ PACKAGECONFIG[curl] = "-DENABLE_LIBCURL=ON,-DENABLE_LIBCURL=OFF,curl"
PACKAGECONFIG[openjpeg] = "-DENABLE_LIBOPENJPEG=openjpeg2,-DENABLE_LIBOPENJPEG=none,openjpeg"
PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON,-DENABLE_QT5=OFF,qtbase qttools-native"
PACKAGECONFIG[nss] = "-DWITH_NSS3=ON,-DWITH_NSS3=OFF,nss"
+PACKAGECONFIG[splash] = "-DENABLE_SPLASH=ON,-DENABLE_SPLASH=OFF,boost"
# surprise - did not expect this to work :)
inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)}
diff --git a/meta-openembedded/meta-oe/recipes-support/pv/pv_1.6.6.bb b/meta-openembedded/meta-oe/recipes-support/pv/pv_1.6.6.bb
index 9649555b8..0eef82b2c 100644
--- a/meta-openembedded/meta-oe/recipes-support/pv/pv_1.6.6.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pv/pv_1.6.6.bb
@@ -7,6 +7,9 @@ SRC_URI = "http://www.ivarch.com/programs/sources/${BP}.tar.bz2"
SRC_URI[md5sum] = "ff3564fddcc2b9bd4a9c1d143aba4b4c"
SRC_URI[sha256sum] = "608ef935f7a377e1439c181c4fc188d247da10d51a19ef79bcdee5043b0973f1"
+UPSTREAM_CHECK_URI = "http://www.ivarch.com/programs/pv.shtml"
+UPSTREAM_CHECK_REGEX = "pv-(?P<pver>\d+(\.\d+)+).tar.bz2"
+
inherit autotools
LDEMULATION_mipsarchn32 = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', 'elf32btsmipn32', 'elf32ltsmipn32', d)}"
diff --git a/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.3.6.bb b/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.3.6.bb
index 14fbc94b2..5b663489f 100644
--- a/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.3.6.bb
+++ b/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.3.6.bb
@@ -3,10 +3,8 @@ HOMEPAGE = "https://remmina.org"
SECTION = "Support"
LICENSE = "GPLv2 & openssl"
LIC_FILES_CHKSUM = "file://LICENSE;md5=dab7215512044d49037272ce1ac4ea8f file://LICENSE.OpenSSL;md5=c1eb3cee0a4dea27503c531267a69769"
-DEPENDS += "openssl freerdp gtk+3 gdk-pixbuf atk libgcrypt avahi-ui libsodium libssh vte json-glib libsoup-2.4 libvncserver libsecret"
+DEPENDS += "openssl freerdp gtk+3 gdk-pixbuf atk libgcrypt avahi-ui libsodium libssh vte json-glib libsoup-2.4 libvncserver libsecret libxkbfile"
-DEPENDS_append_x86 = " spice spice-protocol"
-DEPENDS_append_x86-64 = " spice spice-protocol"
DEPENDS_append_libc-musl = " libexecinfo"
LDFLAGS_append_libc-musl = " -lexecinfo"
@@ -18,16 +16,10 @@ SRC_URI[sha256sum] = "fbed745438bb0c21467b60cbd67c8148a9289b5ebc7482d06db443bea5
S = "${WORKDIR}/Remmina-v${PV}"
-inherit cmake features_check
-
-# depends on avahi-ui with this restriction
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-EXTRA_OECMAKE += "-DWITH_APPINDICATOR=OFF -DWITH_GETTEXT=OFF -DWITH_TRANSLATIONS=OFF -DWITH_SPICE=OFF"
-
-EXTRA_OECMAKE_append_x86 = " -DWITH_SPICE=ON"
-EXTRA_OECMAKE_append_x86-64 = " -DWITH_SPICE=ON"
+inherit cmake features_check mime-xdg
+REQUIRED_DISTRO_FEATURES = "x11"
+EXTRA_OECMAKE += "-DWITH_APPINDICATOR=OFF -DWITH_GETTEXT=OFF -DWITH_TRANSLATIONS=OFF"
do_install_append(){
# We dont need the extra stuff form other desktop environments
@@ -36,6 +28,8 @@ do_install_append(){
rm -rf ${D}/${datadir}/gnome-session
}
+PACKAGECONFIG[spice] = "-DWITH_SPICE=ON, -DWITH_SPICE=OFF, spice spice-protocol"
+
RDEPENDS_${PN} = "bash"
FILES_${PN}_append = " ${datadir}/icons/hicolor/*"
diff --git a/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb b/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
index aefe3627e..efe95b101 100644
--- a/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
@@ -29,7 +29,7 @@ SRC_URI = "git://github.com/DrHyde/${BPN};branch=master;protocol=git \
S = "${WORKDIR}/git"
-inherit autotools
+inherit autotools perlnative
# Fix rsnapshot.conf.default:
# don't inject the host path into target configs.
diff --git a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch b/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch
deleted file mode 100644
index 4e6c25041..000000000
--- a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From fd244ae648789591f0fb79e74d2b8f6c5b15d6e8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 6 Aug 2019 00:47:14 +0000
-Subject: [PATCH] ppt.c: Do not include sys/io.h
-
-newer versions of glibc has removed it
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- ppt.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/ppt.c b/ppt.c
-index 0bae2d0..0ef279f 100644
---- a/ppt.c
-+++ b/ppt.c
-@@ -5,7 +5,6 @@
- #else
- #include <unistd.h>
- #include <stdlib.h>
--#include <sys/io.h>
- #include <linux/parport.h>
- #include <linux/ppdev.h>
- #include <sys/ioctl.h>
---
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb b/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb
deleted file mode 100644
index 255754d5d..000000000
--- a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "A user-space tool to show and modify the state of GPIOs on the S3c24xx platform"
-SECTION = "console/utils"
-AUTHOR = "Werner Almesberger <werner@openmoko.org>"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://gpio.c;endline=12;md5=cfb91c686857b2e60852b4925d90a3e1"
-SRCREV = "4949"
-PV = "1.0+svnr${SRCPV}"
-PR = "r2"
-
-SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http"
-S = "${WORKDIR}/gpio"
-
-CLEANBROKEN = "1"
-
-do_compile() {
- ${CC} ${CFLAGS} ${LDFLAGS} -o ${PN} gpio.c
-}
-
-do_install() {
- install -d ${D}${sbindir}
- install -m 0755 ${PN} ${D}${sbindir}
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb b/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb
deleted file mode 100644
index 976a4f15e..000000000
--- a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "A user-space tool to show and modify the state of GPIOs on the S3c64xx platform"
-SECTION = "console/utils"
-AUTHOR = "Werner Almesberger <werner@openmoko.org>"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://gpio-s3c6410.c;endline=12;md5=060cda1be945ad9194593f11d56d55c7"
-SRCREV = "4949"
-PV = "1.0+svnr${SRCPV}"
-
-SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http"
-S = "${WORKDIR}/gpio"
-
-CLEANBROKEN = "1"
-
-do_compile() {
- ${CC} ${CFLAGS} ${LDFLAGS} -o ${PN} gpio-s3c6410.c
-}
-
-do_install() {
- install -d ${D}${sbindir}
- install -m 0755 ${PN} ${D}${sbindir}
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb b/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb
deleted file mode 100644
index 3a5172eec..000000000
--- a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "JTAG utility to interface w/ a S3C2410 device"
-SECTION = "devel"
-AUTHOR = "Harald Welte <laforge@openmoko.org>"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://parport.c;endline=19;md5=b5681091b0fd8c5f7068835c441bf0c8"
-SRCREV = "4268"
-PV = "0.1+svnr${SRCPV}"
-PR = "r1"
-
-SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=sjf2410-linux;protocol=http \
- file://0001-ppt.c-Do-not-include-sys-io.h.patch \
- "
-S = "${WORKDIR}/sjf2410-linux"
-
-inherit native deploy
-
-CFLAGS += "-DLINUX_PPDEV"
-
-do_compile() {
- oe_runmake
-}
-
-do_install() {
- install -d ${D}/${bindir}
- install -m 0755 sjf2410 ${D}/${bindir}
-}
-
-do_deploy() {
- install -m 0755 sjf2410 ${DEPLOYDIR}/sjf2410-${PV}
-}
-
-addtask deploy before do_build after do_install
-
-do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}"
-# cleandirs should possibly be in deploy.bbclass but we need it
-do_deploy[cleandirs] = "${DEPLOYDIR}"
-# clear stamp-extra-info since MACHINE_ARCH is normally put there by
-# deploy.bbclass
-do_deploy[stamp-extra-info] = ""
-
diff --git a/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb b/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb
index 044c0c7fc..3c7a55cc3 100644
--- a/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb
@@ -7,8 +7,8 @@ DEPENDS = "libsass"
inherit autotools pkgconfig
SRC_URI = "git://github.com/sass/sassc.git"
-SRCREV = "aa6d5c635ea8faf44d542a23aaf85d27e5777d48"
+SRCREV = "46748216ba0b60545e814c07846ca10c9fefc5b6"
S = "${WORKDIR}/git"
-PV = "3.5.0"
+PV = "3.6.1"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch b/meta-openembedded/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch
index 3fd85d9e2..f58091ad7 100644
--- a/meta-openembedded/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch
+++ b/meta-openembedded/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch
@@ -17,13 +17,13 @@ diff --git a/src/Makefile.am b/src/Makefile.am
index 61dd9f8..42c911f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
-@@ -41,7 +41,7 @@ sglib_SOURCES = ../lib/sg_lib.c \
+@@ -53,7 +53,7 @@ sglib_SOURCES = ../lib/sg_lib.c \
../lib/sg_pt_common.c
if HAVE_SGUTILS
-INCLUDES = -I/scsi
+INCLUDES = -I=@includedir@/scsi
- sdparm_LDADD = @GETOPT_O_FILES@ @os_libs@ @SGUTILS_LIBS@
+ sdparm_LDADD = @GETOPT_O_FILES@ @SGUTILS_LIBS@
sdparm_DEPENDENCIES = @GETOPT_O_FILES@
else
--
diff --git a/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb b/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.11.bb
index c09b495be..7fc87db2b 100644
--- a/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.11.bb
@@ -5,7 +5,7 @@ HOMEPAGE = "http://sg.danny.cz/sg/sdparm.html"
SECTION = "console/utils"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=ecab6c36b7ba82c675581dd0afde36f7 \
- file://lib/BSD_LICENSE;md5=1d52f4a66f1e0ed96776bf354ab7a2ed"
+ file://lib/BSD_LICENSE;md5=12cde17a04c30dece2752f36b7192c64"
DEPENDS="sg3-utils"
SRC_URI = "http://sg.danny.cz/sg/p/${BPN}-${PV}.tgz \
file://make-sysroot-work.patch \
@@ -17,8 +17,8 @@ UPSTREAM_CHECK_REGEX = "sdparm-(?P<pver>\d+(\.\d+)+)\.tgz"
PACKAGES =+ "${PN}-scripts"
RDEPENDS_${PN}-scripts += "bash ${PN}"
-SRC_URI[md5sum] = "bdae64375376ce8fe4bf9521c1db858f"
-SRC_URI[sha256sum] = "1ea1ed1bb1ee2aef62392618fa42da9ed027d5e655f174525c39235778292ab3"
+SRC_URI[md5sum] = "cd998d1c12a4ec11652d0af580f06b4d"
+SRC_URI[sha256sum] = "432fdbfe90f0c51640291faf7602489b0ae56dfb96d0c02ed02308792adc7fb0"
inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.44.bb b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.45.bb
index 4909035b3..22995b773 100644
--- a/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.44.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.45.bb
@@ -14,8 +14,8 @@ MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc"
UPSTREAM_CHECK_REGEX = "sg3_utils-(?P<pver>\d+(\.\d+)+)\.tgz"
-SRC_URI[md5sum] = "c11d2b3ca4cc2fd01796473e5330afed"
-SRC_URI[sha256sum] = "8dae684d22e71b11353a48b16c95597af90f0cbe9bbd57f98d7f5544da5cae7b"
+SRC_URI[md5sum] = "2e71d7cd925dcc48acb24afaaaac7990"
+SRC_URI[sha256sum] = "0b87c971af52af7cebebcce343eac6bd3d73febb3c72af9ce41a4552f1605a61"
inherit autotools-brokensep
diff --git a/meta-openembedded/meta-oe/recipes-support/span-lite/span-lite_git.bb b/meta-openembedded/meta-oe/recipes-support/span-lite/span-lite_git.bb
new file mode 100644
index 000000000..96ec829b7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/span-lite/span-lite_git.bb
@@ -0,0 +1,12 @@
+SUMMARY = "single-file header-only version of a C++20-like span for C++98, C++11 and later"
+HOMEPAGE = "https://github.com/martinmoene/span-lite"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
+
+SRC_URI += "git://github.com/martinmoene/span-lite"
+SRCREV = "e03d1166ccc8481d993dc02aae703966301a5e6e"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+inherit ptest
diff --git a/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.3.1.bb b/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb
index 91e3f67c2..39629cce0 100644
--- a/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.3.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/gabime/spdlog/wiki"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-SRCREV = "a7148b718ea2fabb8387cb90aee9bf448da63e65"
+SRCREV = "cf6f1dd01e660d5865d68bf5fa78f6376b89470a"
SRC_URI = "git://github.com/gabime/spdlog.git;protocol=git;branch=v1.x;"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/srecord/srecord_1.64.bb b/meta-openembedded/meta-oe/recipes-support/srecord/srecord_1.64.bb
index d3488df2c..4c34fa1bc 100644
--- a/meta-openembedded/meta-oe/recipes-support/srecord/srecord_1.64.bb
+++ b/meta-openembedded/meta-oe/recipes-support/srecord/srecord_1.64.bb
@@ -11,6 +11,8 @@ SRC_URI = " \
SRC_URI[md5sum] = "4de4a7497472d7972645c2af91313769"
SRC_URI[sha256sum] = "49a4418733c508c03ad79a29e95acec9a2fbc4c7306131d2a8f5ef32012e67e2"
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/srecord/files/releases"
+
DEPENDS = "libtool-native boost groff-native"
inherit autotools-brokensep
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
index 965abf722..6a8627672 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
@@ -1,4 +1,4 @@
-@version: 3.19
+@version: 3.24
#
# Syslog-ng configuration file, compatible with default Debian syslogd
# installation. Originally written by anonymous (I can't find his name)
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
index 2b39b8c1f..32b98610d 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
@@ -1,4 +1,4 @@
-@version: 3.19
+@version: 3.24
#
# Syslog-ng configuration file, compatible with default Debian syslogd
# installation. Originally written by anonymous (I can't find his name)
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
index 8e5368953..ff6d9d26a 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
@@ -73,26 +73,26 @@ do_configure_prepend() {
}
do_install_append() {
- install -d ${D}/${sysconfdir}/${BPN}
- install -d ${D}/${sysconfdir}/init.d
- install -m 755 ${WORKDIR}/initscript ${D}/${sysconfdir}/init.d/syslog
+ install -d ${D}${sysconfdir}/${BPN}
+ install -d ${D}${sysconfdir}/init.d
+ install -m 755 ${WORKDIR}/initscript ${D}${sysconfdir}/init.d/syslog
- install -d ${D}/${sysconfdir}/default/volatiles/
- install -m 755 ${WORKDIR}/volatiles.03_syslog-ng ${D}/${sysconfdir}/default/volatiles/03_syslog-ng
- install -d ${D}/${sysconfdir}/tmpfiles.d/
- install -m 755 ${WORKDIR}/syslog-ng-tmp.conf ${D}/${sysconfdir}/tmpfiles.d/syslog-ng.conf
+ install -d ${D}${sysconfdir}/default/volatiles/
+ install -m 644 ${WORKDIR}/volatiles.03_syslog-ng ${D}${sysconfdir}/default/volatiles/03_syslog-ng
+ install -d ${D}${sysconfdir}/tmpfiles.d/
+ install -m 644 ${WORKDIR}/syslog-ng-tmp.conf ${D}${sysconfdir}/tmpfiles.d/syslog-ng.conf
- install -d ${D}/${localstatedir}/lib/${BPN}
+ install -d ${D}${localstatedir}/lib/${BPN}
# Remove /var/run as it is created on startup
rm -rf ${D}${localstatedir}/run
# support for systemd
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install ${WORKDIR}/syslog-ng.conf.systemd ${D}${sysconfdir}/${BPN}/${BPN}.conf
+ install -m 644 ${WORKDIR}/syslog-ng.conf.systemd ${D}${sysconfdir}/${BPN}/${BPN}.conf
install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${S}/contrib/systemd/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@.service
- install -m 0644 ${S}/contrib/systemd/${BPN}@default ${D}${sysconfdir}/default/${BPN}@default
+ install -m 644 ${S}/contrib/systemd/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@.service
+ install -m 644 ${S}/contrib/systemd/${BPN}@default ${D}${sysconfdir}/default/${BPN}@default
sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
@@ -101,7 +101,7 @@ do_install_append() {
install -d ${D}${systemd_unitdir}/system/multi-user.target.wants
ln -sf ../${BPN}@.service ${D}${systemd_unitdir}/system/multi-user.target.wants/${BPN}@default.service
else
- install ${WORKDIR}/syslog-ng.conf.sysvinit ${D}${sysconfdir}/${BPN}/${BPN}.conf
+ install -m 644 ${WORKDIR}/syslog-ng.conf.sysvinit ${D}${sysconfdir}/${BPN}/${BPN}.conf
fi
oe_multilib_header syslog-ng/syslog-ng-config.h
diff --git a/meta-openembedded/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb b/meta-openembedded/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb
index 26b4412f5..1ce3c8e44 100644
--- a/meta-openembedded/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb
@@ -6,7 +6,7 @@ SRC_URI = "https://fedorahosted.org/releases/s/y/${BPN}/${BP}.tar.bz2"
SRC_URI[md5sum] = "c267db0ee7a2131ba418399dc17f9e72"
SRC_URI[sha256sum] = "218c883e4e2bfcc82bfe07e785707b5c2ece28df772f2155fd044b9bb1614284"
-inherit python-dir gettext
+inherit python3-dir gettext
DEPENDS += "intltool-native gettext-native"
EXTRA_OEMAKE = " \
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0002-linux-Fix-gcc-version-check.patch b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0002-linux-Fix-gcc-version-check.patch
deleted file mode 100644
index 9824b61e9..000000000
--- a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0002-linux-Fix-gcc-version-check.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From aee098f1bf0511c6b5544de3170a9e8b51673b60 Mon Sep 17 00:00:00 2001
-From: Pierre Le Magourou <plemagourou@softbankrobotics.com>
-Date: Tue, 23 Jan 2018 15:25:50 +0100
-Subject: [PATCH] linux.gcc: Fix cross compilation error.
-
-When cross compiling on linux with gcc, the host gcc was used instead of
-the cross gcc to set compilation flags according to gcc version.
-
-When the cross gcc was in version 5.X and the host gcc in version 7.X,
-tbb was compiled with the -flifetime-dse=1 flag that does not exist on
-gcc 5.X.
----
- build/linux.gcc.inc | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/build/linux.gcc.inc b/build/linux.gcc.inc
-index 5c1889c..a4d6698 100644
---- a/build/linux.gcc.inc
-+++ b/build/linux.gcc.inc
-@@ -41,29 +41,29 @@ LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
- C_FLAGS = $(CPLUS_FLAGS)
-
- # gcc 4.2 and higher support OpenMP
--ifneq (,$(shell gcc -dumpversion | egrep "^(4\.[2-9]|[5-9])"))
-+ifneq (,$(shell $(CC) -dumpversion | egrep "^(4\.[2-9]|[5-9])"))
- OPENMP_FLAG = -fopenmp
- endif
-
- # gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them
--ifneq (,$(shell gcc -dumpversion | egrep "^(4\.[8-9]|[5-9])"))
-+ifneq (,$(shell $(CC) -dumpversion | egrep "^(4\.[8-9]|[5-9])"))
- RTM_KEY = -mrtm
- endif
-
- # gcc 4.0 and later have -Wextra that is used by some our customers.
--ifneq (,$(shell gcc -dumpversion | egrep "^([4-9])"))
-+ifneq (,$(shell $(CC) -dumpversion | egrep "^([4-9])"))
- TEST_WARNING_KEY += -Wextra
- endif
-
- # gcc 5.0 and later have -Wsuggest-override option
- # enable it via a pre-included header in order to limit to C++11 and above
--ifneq (,$(shell gcc -dumpversion | egrep "^([5-9])"))
-+ifneq (,$(shell $(CC) -dumpversion | egrep "^([5-9])"))
- INCLUDE_TEST_HEADERS = -include $(tbb_root)/src/test/harness_preload.h
- endif
-
- # gcc 6.0 and later have -flifetime-dse option that controls
- # elimination of stores done outside the object lifetime
--ifneq (,$(shell gcc -dumpversion | egrep "^([6-9])"))
-+ifneq (,$(shell $(CC) -dumpversion | egrep "^([6-9])"))
- # keep pre-contruction stores for zero initialization
- DSE_KEY = -flifetime-dse=1
- endif
---
-2.15.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/GLIBC-PREREQ-is-not-defined-on-musl.patch b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/GLIBC-PREREQ-is-not-defined-on-musl.patch
new file mode 100644
index 000000000..6f28f6f3a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/GLIBC-PREREQ-is-not-defined-on-musl.patch
@@ -0,0 +1,42 @@
+From 27956d4c5fb615098231cebfb8eef11057639d3c Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Sun, 8 Dec 2019 18:14:38 +0100
+Subject: [PATCH] src/tbbmalloc/proxy.cpp: __GLIBC_PREREQ is not defined on
+ musl
+
+Do not call __GLIBC_PREREQ if it is not defined otherwise build will
+fail on musl
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+
+Upstream-Status: Submitted [https://github.com/oneapi-src/oneTBB/pull/203]
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ src/tbbmalloc/proxy.cpp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/tbbmalloc/proxy.cpp b/src/tbbmalloc/proxy.cpp
+index d96ae7a0..709ae839 100644
+--- a/src/tbbmalloc/proxy.cpp
++++ b/src/tbbmalloc/proxy.cpp
+@@ -24,7 +24,8 @@
+ // of aligned_alloc as required by new C++ standard, this makes it hard to
+ // redefine aligned_alloc here. However, running on systems with new libc
+ // version, it still needs it to be redefined, thus tricking system headers
+-#if defined(__GLIBC_PREREQ) && !__GLIBC_PREREQ(2, 16) && _GLIBCXX_HAVE_ALIGNED_ALLOC
++#if defined(__GLIBC_PREREQ)
++#if !__GLIBC_PREREQ(2, 16) && _GLIBCXX_HAVE_ALIGNED_ALLOC
+ // tell <cstdlib> that there is no aligned_alloc
+ #undef _GLIBCXX_HAVE_ALIGNED_ALLOC
+ // trick <stdlib.h> to define another symbol instead
+@@ -32,7 +33,8 @@
+ // Fix the state and undefine the trick
+ #include <cstdlib>
+ #undef aligned_alloc
+-#endif // defined(__GLIBC_PREREQ)&&!__GLIBC_PREREQ(2, 16)&&_GLIBCXX_HAVE_ALIGNED_ALLOC
++#endif // defined(__GLIBC_PREREQ)
++#endif // !__GLIBC_PREREQ(2, 16)&&_GLIBCXX_HAVE_ALIGNED_ALLOC
+ #endif // __linux__ && !__ANDROID__
+
+ #include "proxy.h"
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch
index d54b307ee..36578543f 100644
--- a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch
@@ -1,39 +1,35 @@
Author: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
-
+
Upstream-Status: unsuitable
---
- build/linux.gcc.inc | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-Index: tbb2017_20170118oss/build/linux.gcc.inc
-===================================================================
---- tbb2017_20170118oss.orig/build/linux.gcc.inc
-+++ tbb2017_20170118oss/build/linux.gcc.inc
-@@ -32,8 +32,9 @@ DYLIB_KEY = -shared
- EXPORT_KEY = -Wl,--version-script,
- LIBDL = -ldl
+diff --git a/build/linux.clang.inc b/build/linux.clang.inc
+index fe9b5c98..b0dcd68b 100644
+--- a/build/linux.clang.inc
++++ b/build/linux.clang.inc
+@@ -12,8 +12,8 @@
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
--CPLUS = g++
--CONLY = gcc
-+CPLUS = $(CXX)
-+CONLY = $(CC)
-+CPLUS_FLAGS = $(CXXFLAGS)
- LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
- LIBS += -lpthread -lrt
- LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
-Index: tbb2017_20170118oss/build/linux.clang.inc
-===================================================================
---- tbb2017_20170118oss.orig/build/linux.clang.inc
-+++ tbb2017_20170118oss/build/linux.clang.inc
-@@ -31,8 +31,9 @@ DYLIB_KEY = -shared
- EXPORT_KEY = -Wl,--version-script,
- LIBDL = -ldl
+-CPLUS ?= clang++
+-CONLY ?= clang
++CPLUS ?= $(CXX)
++CONLY ?= $(CC)
+ COMPILE_ONLY = -c -MMD
+ PREPROC_ONLY = -E -x c++
+ INCLUDE_KEY = -I
+diff --git a/build/linux.gcc.inc b/build/linux.gcc.inc
+index d820c15d..62c76afd 100644
+--- a/build/linux.gcc.inc
++++ b/build/linux.gcc.inc
+@@ -12,8 +12,8 @@
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
--CPLUS = clang++
--CONLY = clang
-+CPLUS = $(CXX)
-+CONLY = $(CC)
-+CPLUS_FLAGS = $(CXXFLAGS)
- LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
- LIBS += -lpthread -lrt
- LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
+-CPLUS ?= g++
+-CONLY ?= gcc
++CPLUS ?= $(CXX)
++CONLY ?= $(CC)
+ COMPILE_ONLY = -c -MMD
+ PREPROC_ONLY = -E -x c++
+ INCLUDE_KEY = -I
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc
index 644b64fbf..4f9da1140 100644
--- a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc
@@ -5,7 +5,7 @@ includedir=${prefix}/include
Name: Threading Building Blocks
Description: Intel's parallelism library for C++
-URL: http://www.threadingbuildingblocks.org/
-Version: 3.0+r018
+URL: https://software.intel.com/en-us/tbb
+Version: 2020.2
Libs: -L${libdir} -ltbb
Cflags: -I${includedir}
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb b/meta-openembedded/meta-oe/recipes-support/tbb/tbb_2020.2.bb
index f87010401..2f9fd7f58 100644
--- a/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb_2020.2.bb
@@ -3,35 +3,37 @@ DESCRIPTION = "Parallelism library for C++ - runtime files \
performance without having to be a threading expert. It represents a \
higher-level, task-based parallelism that abstracts platform details \
and threading mechanism for performance and scalability."
-HOMEPAGE = "http://threadingbuildingblocks.org/"
+HOMEPAGE = "https://software.intel.com/en-us/tbb"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-PRDATE = "20170412"
-BRANCH = "tbb_2017"
-SRCREV = "a2cfdfe946933cbe38bffe1d8086ae36f06691a3"
-PV = "${PRDATE}+${SRCPV}"
-SRC_URI = "git://github.com/01org/tbb;branch=${BRANCH} \
+BRANCH = "tbb_2020"
+SRCREV = "60b7d0a78f8910976678ba63a19fdaee22c0ef65"
+SRC_URI = "git://github.com/oneapi-src/oneTBB.git;protocol=https;branch=${BRANCH} \
file://cross-compile.patch \
file://0001-mallinfo-is-glibc-specific-API-mark-it-so.patch \
- file://0002-linux-Fix-gcc-version-check.patch \
+ file://GLIBC-PREREQ-is-not-defined-on-musl.patch \
file://tbb.pc \
"
S = "${WORKDIR}/git"
+PE = "1"
COMPILER ?= "gcc"
COMPILER_toolchain-clang = "clang"
do_compile() {
- oe_runmake compiler=${COMPILER} arch=${HOST_ARCH} runtime=cc4
+ oe_runmake compiler=${COMPILER} arch=${HOST_ARCH}
}
do_install() {
- install -d ${D}${includedir} ${D}${libdir}/pkgconfig
+ install -d ${D}${includedir} ${D}${libdir}
rm ${S}/include/tbb/index.html -f
cp -R --no-dereference --preserve=mode,links -v ${S}/include/tbb ${D}${includedir}
- install -m 0755 ${B}/build/linux_*_release/lib*.so* ${D}${libdir}
- install -m 0644 ${WORKDIR}/tbb.pc ${D}${libdir}/pkgconfig
+ for f in ${B}/build/linux_*_release/lib*.so*
+ do
+ install -Dm 0755 $f ${D}${libdir}/
+ done
+ install -Dm 0644 ${WORKDIR}/tbb.pc ${D}${libdir}/pkgconfig/tbb.pc
}
# fails with thumb enabled:
@@ -41,5 +43,3 @@ do_install() {
# ...
# | make[1]: *** [concurrent_queue.o] Error 1
ARM_INSTRUCTION_SET = "arm"
-SECURITY_CFLAGS_append = " -fPIC"
-
diff --git a/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb b/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb
index c1136cd99..0366ad85a 100644
--- a/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb
+++ b/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb
@@ -13,6 +13,8 @@ SRC_URI_append_class-target = "\
SRC_URI[md5sum] = "01c7bd5d0d4f3a9f6f5befe6f57a470b"
SRC_URI[sha256sum] = "34599bbcc4e5ab87832370763e38be5100984a64237555e9234a1ea225a0fadc"
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+
DEPENDS = "anthy fontconfig libxft libxt glib-2.0 ncurses intltool libedit"
DEPENDS_append_class-target = " intltool-native gtk+ gtk+3 uim-native takao-fonts"
diff --git a/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.3.bb b/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.3.bb
index 8c28c9d93..da52bb5a3 100644
--- a/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.3.bb
@@ -8,6 +8,8 @@ SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${BP}/${BP}.tar.gz
SRC_URI[md5sum] = "9874b64f6f4ff656f3f69598e38f12b7"
SRC_URI[sha256sum] = "6cef39d6eaf1a48504ee0264ce85f078758057dafb1edd0a898183b55ff76014"
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+
inherit cmake
EXTRA_OECMAKE += "-DURIPARSER_BUILD_DOCS:BOOL=OFF -DURIPARSER_BUILD_TESTS:BOOL=OFF"
diff --git a/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170806.bb b/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20191128.bb
index 6abd94168..938c0f9c2 100644
--- a/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170806.bb
+++ b/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20191128.bb
@@ -7,8 +7,8 @@ inherit allarch
DEPENDS += "tcl-native"
SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2"
-SRC_URI[md5sum] = "fb50d15b52e909d742dd16f0a9882316"
-SRC_URI[sha256sum] = "ce413ef2a50e648e9c81bc3ea6110e7324a8bf981034fc9ec4467d3562563c2c"
+SRC_URI[md5sum] = "e8fce7eb949cbe16c61fb71bade4cc17"
+SRC_URI[sha256sum] = "3f039b60791c21c7cb15c7986cac89650f076dc274798fa242231b910785eaf9"
do_install() {
oe_runmake install DESTDIR=${D}
diff --git a/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.2.bb b/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.6.0.bb
index 33e40b36b..baad34090 100644
--- a/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.6.0.bb
@@ -1,12 +1,12 @@
SUMMARY = "A mode switching tool for controlling 'flip flop' (multiple device) USB gear"
LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+LIC_FILES_CHKSUM = "file://COPYING;md5=091556bd6d0154cd4c2d17a1bfc7380a"
DEPENDS = "libusb1"
SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2"
-SRC_URI[md5sum] = "16b9a8efa1bf8fbd7d5612757eae4f26"
-SRC_URI[sha256sum] = "abffac09c87eacd78e101545967dc25af7e989745b4276756d45dbf4008a2ea6"
+SRC_URI[md5sum] = "be73dcc84025794081a1d4d4e5a75e4c"
+SRC_URI[sha256sum] = "c215236e6bada6e659fc195a31d611ea298a4bdb4d57a0d68c553b56585f8ba3"
inherit pkgconfig systemd
diff --git a/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath/configure.patch b/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath/configure.patch
deleted file mode 100644
index 271e6a53a..000000000
--- a/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath/configure.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-Index: usbpath/configure.ac
-===================================================================
---- usbpath.orig/configure.ac 2014-07-17 20:40:26.000000000 +0000
-+++ usbpath/configure.ac 2014-07-18 07:01:40.933474420 +0000
-@@ -1,5 +1,5 @@
- AC_INIT([usbpath],[0.1])
--AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
-+AM_INIT_AUTOMAKE([foreign])
-
- AC_PROG_CC
- AC_PROG_RANLIB
diff --git a/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb b/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb
deleted file mode 100644
index 6c9cd049f..000000000
--- a/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Convert the physical locations of a USB device to/from its number"
-AUTHOR = "Werner Almesberger <werner@openmoko.org>"
-SECTION = "console/utils"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://usbpath.c;endline=20;md5=0aa8c7d2af9110c78a99fbf9a504dc3f"
-DEPENDS = "virtual/libusb0"
-DEPENDS_class-native = "virtual/libusb0-native"
-
-BBCLASSEXTEND = "native"
-
-SRCREV = "3172"
-PV = "0.0+svnr${SRCPV}"
-
-SRC_URI = "svn://svn.openmoko.org/trunk/src/host;module=usbpath;protocol=http \
- file://configure.patch"
-
-S = "${WORKDIR}/usbpath"
-
-inherit autotools pkgconfig
-
-RDEPENDS_${PN} += "perl"
diff --git a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
index 71bf57269..7cfd47043 100644
--- a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
+++ b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
@@ -12,8 +12,8 @@ Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/evemu-impl.h | 5 +++++
- src/evemu.c | 16 +++++++++-------
- 2 files changed, 14 insertions(+), 7 deletions(-)
+ src/evemu.c | 20 ++++++++++++--------
+ 2 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/src/evemu-impl.h b/src/evemu-impl.h
index acf2976..c08d861 100644
@@ -32,7 +32,7 @@ index acf2976..c08d861 100644
#define EVPLAY_NBYTES ((EVPLAY_NBITS + 7) / 8)
diff --git a/src/evemu.c b/src/evemu.c
-index 21187af..160c915 100644
+index 21187af..7489449 100644
--- a/src/evemu.c
+++ b/src/evemu.c
@@ -363,7 +363,7 @@ int evemu_read(struct evemu_device *dev, FILE *fp)
@@ -55,16 +55,19 @@ index 21187af..160c915 100644
ev->type = type;
ev->code = code;
ev->value = value;
-@@ -411,12 +411,14 @@ int evemu_read_event_realtime(FILE *fp, struct input_event *ev,
+@@ -410,13 +411,16 @@ int evemu_read_event_realtime(FILE *fp, struct input_event *ev,
+ return ret;
if (evtime) {
- if (!evtime->tv_sec)
+- if (!evtime->tv_sec)
- *evtime = ev->time;
- usec = 1000000L * (ev->time.tv_sec - evtime->tv_sec);
- usec += ev->time.tv_usec - evtime->tv_usec;
++ if (!evtime->tv_sec) {
+ evtime->tv_sec = ev->input_event_sec;
+ evtime->tv_usec = ev->input_event_usec;
-+ usec = 1000000L * (ev->input_event_sec - evtime->tv_sec);
++ }
++ usec = (ev->input_event_sec - evtime->tv_sec) * 1000000L;
+ usec += ev->input_event_usec - evtime->tv_usec;
if (usec > 500) {
usleep(usec);
diff --git a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
index 41d1cbfd9..7c5a73439 100644
--- a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
@@ -12,7 +12,7 @@ SRC_URI = "git://bitmath.org/git/evemu.git;protocol=http \
"
SRCREV = "9752b50e922572e4cd214ac45ed95e4ee410fe24"
-PV = "1.0.5+git${SRCPV}"
+PV = "1.0.6+git${SRCPV}"
S = "${WORKDIR}/git/"
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.2.bb b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.6.bb
index 62c2b509f..89b1ee11e 100644
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.6.bb
@@ -14,8 +14,8 @@ VBOX_NAME = "VirtualBox-${PV}"
SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
file://Makefile.utils \
"
-SRC_URI[md5sum] = "f4f42fd09857556b04b803fb99cc6905"
-SRC_URI[sha256sum] = "4326576e8428ea3626194fc82646347576e94c61f11d412a669fc8a10c2a1e67"
+SRC_URI[md5sum] = "fe6328d22dfb20ea372daa4b58b12374"
+SRC_URI[sha256sum] = "b031c30d770f28c5f884071ad933e8c1f83e65b93aaba03a4012077c1d90a54f"
S = "${WORKDIR}/vbox_module"
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Replace-make_shared-with-new-in-some-cases.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Replace-make_shared-with-new-in-some-cases.patch
deleted file mode 100644
index 0c8285df9..000000000
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Replace-make_shared-with-new-in-some-cases.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 080fc37949114184d4832f7acffe2613745833f3 Mon Sep 17 00:00:00 2001
-From: Stefan Floeren <42731906+stefan-floeren@users.noreply.github.com>
-Date: Tue, 16 Apr 2019 08:38:01 +0200
-Subject: [PATCH 1/2] Replace make_shared with new in some cases
-
-Replace make_shared for asio types that take a lib::ref as a parameter.
-This should fix the ASIO change (boostorg/asio@59066d8) for 1.70,
-while keeping it backwards compatible to older boost versions.
----
- websocketpp/transport/asio/connection.hpp | 7 ++++---
- websocketpp/transport/asio/endpoint.hpp | 3 +--
- websocketpp/transport/asio/security/none.hpp | 3 +--
- websocketpp/transport/asio/security/tls.hpp | 3 +--
- 4 files changed, 7 insertions(+), 9 deletions(-)
-
-diff --git a/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp
-index 60f88a7..1ccda8f 100644
---- a/websocketpp/transport/asio/connection.hpp
-+++ b/websocketpp/transport/asio/connection.hpp
-@@ -311,9 +311,10 @@ public:
- * needed.
- */
- timer_ptr set_timer(long duration, timer_handler callback) {
-- timer_ptr new_timer = lib::make_shared<lib::asio::steady_timer>(
-- lib::ref(*m_io_service),
-- lib::asio::milliseconds(duration)
-+ timer_ptr new_timer(
-+ new lib::asio::steady_timer(
-+ *m_io_service,
-+ lib::asio::milliseconds(duration))
- );
-
- if (config::enable_multithreading) {
-diff --git a/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp
-index ddab2c7..4b719a9 100644
---- a/websocketpp/transport/asio/endpoint.hpp
-+++ b/websocketpp/transport/asio/endpoint.hpp
-@@ -195,8 +195,7 @@ public:
-
- m_io_service = ptr;
- m_external_io_service = true;
-- m_acceptor = lib::make_shared<lib::asio::ip::tcp::acceptor>(
-- lib::ref(*m_io_service));
-+ m_acceptor.reset(new lib::asio::ip::tcp::acceptor(*m_io_service));
-
- m_state = READY;
- ec = lib::error_code();
-diff --git a/websocketpp/transport/asio/security/none.hpp b/websocketpp/transport/asio/security/none.hpp
-index 5c8293d..6c7d352 100644
---- a/websocketpp/transport/asio/security/none.hpp
-+++ b/websocketpp/transport/asio/security/none.hpp
-@@ -168,8 +168,7 @@ protected:
- return socket::make_error_code(socket::error::invalid_state);
- }
-
-- m_socket = lib::make_shared<lib::asio::ip::tcp::socket>(
-- lib::ref(*service));
-+ m_socket.reset(new lib::asio::ip::tcp::socket(*service));
-
- if (m_socket_init_handler) {
- m_socket_init_handler(m_hdl, *m_socket);
-diff --git a/websocketpp/transport/asio/security/tls.hpp b/websocketpp/transport/asio/security/tls.hpp
-index c76fd9a..04ac379 100644
---- a/websocketpp/transport/asio/security/tls.hpp
-+++ b/websocketpp/transport/asio/security/tls.hpp
-@@ -193,8 +193,7 @@ protected:
- if (!m_context) {
- return socket::make_error_code(socket::error::invalid_tls_context);
- }
-- m_socket = lib::make_shared<socket_type>(
-- _WEBSOCKETPP_REF(*service),lib::ref(*m_context));
-+ m_socket.reset(new socket_type(*service, *m_context));
-
- if (m_socket_init_handler) {
- m_socket_init_handler(m_hdl, get_socket());
---
-2.23.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0002-Fix-missed-entries-fix-testing.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0002-Fix-missed-entries-fix-testing.patch
deleted file mode 100644
index 962d08967..000000000
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0002-Fix-missed-entries-fix-testing.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 12ab603ca962e83591985a585451d33544d75d56 Mon Sep 17 00:00:00 2001
-From: Stefan Floeren <42731906+stefan-floeren@users.noreply.github.com>
-Date: Wed, 17 Apr 2019 10:06:18 +0000
-Subject: [PATCH 2/2] Fix missed entries; fix testing
-
----
- CMakeLists.txt | 2 +-
- websocketpp/transport/asio/connection.hpp | 3 +--
- websocketpp/transport/asio/endpoint.hpp | 7 ++-----
- 3 files changed, 4 insertions(+), 8 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 2786aba..951de97 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -202,7 +202,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
- endif ()
-
- if (NOT Boost_USE_STATIC_LIBS)
-- add_definitions (/DBOOST_TEST_DYN_LINK)
-+ add_definitions (-DBOOST_TEST_DYN_LINK)
- endif ()
-
- set (Boost_FIND_REQUIRED TRUE)
-diff --git a/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp
-index 1ccda8f..57dda74 100644
---- a/websocketpp/transport/asio/connection.hpp
-+++ b/websocketpp/transport/asio/connection.hpp
-@@ -462,8 +462,7 @@ protected:
- m_io_service = io_service;
-
- if (config::enable_multithreading) {
-- m_strand = lib::make_shared<lib::asio::io_service::strand>(
-- lib::ref(*io_service));
-+ m_strand.reset(new lib::asio::io_service::strand(*io_service));
- }
-
- lib::error_code ec = socket_con_type::init_asio(io_service, m_strand,
-diff --git a/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp
-index 4b719a9..94509ad 100644
---- a/websocketpp/transport/asio/endpoint.hpp
-+++ b/websocketpp/transport/asio/endpoint.hpp
-@@ -687,9 +687,7 @@ public:
- * @since 0.3.0
- */
- void start_perpetual() {
-- m_work = lib::make_shared<lib::asio::io_service::work>(
-- lib::ref(*m_io_service)
-- );
-+ m_work.reset(new lib::asio::io_service::work(*m_io_service));
- }
-
- /// Clears the endpoint's perpetual flag, allowing it to exit when empty
-@@ -853,8 +851,7 @@ protected:
-
- // Create a resolver
- if (!m_resolver) {
-- m_resolver = lib::make_shared<lib::asio::ip::tcp::resolver>(
-- lib::ref(*m_io_service));
-+ m_resolver.reset(new lib::asio::ip::tcp::resolver(*m_io_service));
- }
-
- tcon->set_uri(u);
---
-2.23.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/771.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/771.patch
deleted file mode 100644
index bc65efb7d..000000000
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/771.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 4bccfb04a264704ec9b80ba332ee1cf113ce7f1b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Wolfgang=20St=C3=B6ggl?= <c72578@yahoo.de>
-Date: Thu, 1 Nov 2018 20:58:10 +0100
-Subject: [PATCH] Update version number in CMakeLists.txt to 0.8.1
-
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 2786aba9..2d13117b 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -24,7 +24,7 @@ endif ()
- ############ Project name and version
- set (WEBSOCKETPP_MAJOR_VERSION 0)
- set (WEBSOCKETPP_MINOR_VERSION 8)
--set (WEBSOCKETPP_PATCH_VERSION 0)
-+set (WEBSOCKETPP_PATCH_VERSION 1)
- set (WEBSOCKETPP_VERSION ${WEBSOCKETPP_MAJOR_VERSION}.${WEBSOCKETPP_MINOR_VERSION}.${WEBSOCKETPP_PATCH_VERSION})
-
- if(POLICY CMP0048)
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/842.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/842.patch
deleted file mode 100644
index c3651e94a..000000000
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/842.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 7f7e2be01b4fa6580ce27f668e61adf37853ad67 Mon Sep 17 00:00:00 2001
-From: Schrijvers Luc <begasus@gmail.com>
-Date: Wed, 18 Sep 2019 11:35:43 +0200
-Subject: [PATCH] Fix "include" directory installation. the variable
- INSTALL_INCLUDE_DIR already exists, and defaults to include if not
- specificied otherwise. Using it allows people to customize the installation
- from outside, fixing issues with other OS like Haiku
-
-Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
-Signed-off-by: Gianfranco Costamagna <locutusofborg@debian.org>
----
- cmake/CMakeHelpers.cmake | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cmake/CMakeHelpers.cmake b/cmake/CMakeHelpers.cmake
-index 1478f4b..f603632 100644
---- a/cmake/CMakeHelpers.cmake
-+++ b/cmake/CMakeHelpers.cmake
-@@ -80,7 +80,7 @@ macro (final_target)
- endif ()
-
- install (DIRECTORY ${CMAKE_SOURCE_DIR}/${TARGET_NAME}
-- DESTINATION include/
-+ DESTINATION ${INSTALL_INCLUDE_DIR}/
- FILES_MATCHING PATTERN "*.hpp*")
- endmacro ()
-
---
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Correct-clang-compiler-flags.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-Correct-clang-compiler-flags.patch
index f1d037fae..7a99daf6b 100644
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Correct-clang-compiler-flags.patch
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-Correct-clang-compiler-flags.patch
@@ -18,7 +18,7 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2d13117..c17354a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -150,7 +150,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
+@@ -154,7 +154,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
endif()
set (WEBSOCKETPP_PLATFORM_TLS_LIBS ssl crypto)
set (WEBSOCKETPP_BOOST_LIBS system thread)
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-cmake-Use-GNUInstallDirs.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-cmake-Use-GNUInstallDirs.patch
index 0ef2e1237..0ef2e1237 100644
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-cmake-Use-GNUInstallDirs.patch
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-cmake-Use-GNUInstallDirs.patch
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/855.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/855.patch
index a1ee627b3..3245d941b 100644
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/855.patch
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/855.patch
@@ -12,7 +12,7 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2d13117b..9a46bc10 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -213,7 +213,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
+@@ -217,7 +217,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
set (Boost_USE_MULTITHREADED TRUE)
set (Boost_ADDITIONAL_VERSIONS "1.39.0" "1.40.0" "1.41.0" "1.42.0" "1.43.0" "1.44.0" "1.46.1") # todo: someone who knows better spesify these!
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/857.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/857.patch
index f221cd699..f221cd699 100644
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/857.patch
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/857.patch
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.2.bb
index af6d30a28..79a5ac5c4 100644
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.2.bb
@@ -7,11 +7,7 @@ LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=4d168d763c111f4ffc62249870e4e0ea"
DEPENDS = " ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'openssl boost zlib', '', d)} "
SRC_URI = "git://github.com/zaphoyd/websocketpp.git;protocol=https \
- file://0001-Replace-make_shared-with-new-in-some-cases.patch \
- file://0002-Fix-missed-entries-fix-testing.patch \
file://0001-cmake-Use-GNUInstallDirs.patch \
- file://842.patch \
- file://771.patch \
file://855.patch \
file://857.patch \
file://0001-Correct-clang-compiler-flags.patch \
@@ -25,8 +21,8 @@ RDEPENDS_${PN}-dev = ""
# to add this package to an SDK, since it isn't a reverse-dependency of anything, just use something like this:
# TOOLCHAIN_TARGET_TASK_append = " websocketpp-dev"
-# tag 0.8.1
-SRCREV= "c6d7e295bf5a0ab9b5f896720cc1a0e0fdc397a7"
+# tag 0.8.2
+SRCREV= "56123c87598f8b1dd471be83ca841ceae07f95ba"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch b/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch
deleted file mode 100644
index 90eff5bb0..000000000
--- a/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 0378cbb323c662a565f7f3de2dee3d8a646e7bd1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 27 Jun 2017 09:32:42 -0700
-Subject: [PATCH 1/2] makefile: Pass CFLAGS to compile
-
-Set CC if not already set
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- host/tools/wmiconfig/Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/host/tools/wmiconfig/Makefile b/host/tools/wmiconfig/Makefile
-index c6738c5..3253a7e 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,4 +1,4 @@
--CC :=$(ATH_CROSS_COMPILE_TYPE)gcc
-+CC ?= $(ATH_CROSS_COMPILE_TYPE)gcc
-
- all:
-- $(CC) -Wall -DUSER_KEYS -g $(LDFLAGS) -I../../include -I../../../include -I../../wlan/include -I../../os/linux/include wmiconfig.c -o wmiconfig
-+ $(CC) -Wall -DUSER_KEYS -g $(CFLAGS) $(LDFLAGS) -I../../include -I../../../include -I../../wlan/include -I../../os/linux/include wmiconfig.c -o wmiconfig
---
-2.13.2
-
diff --git a/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch b/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch
deleted file mode 100644
index f67f784c1..000000000
--- a/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch
+++ /dev/null
@@ -1,656 +0,0 @@
-From 909ebdde4ee2233d65de8fa01fde8e9a3bec12b7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 27 Jun 2017 09:33:26 -0700
-Subject: [PATCH 2/2] fix err() API to have format string
-
-Fixes errors with hardening flags
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- host/tools/wmiconfig/wmiconfig.c | 148 +++++++++++++++++++--------------------
- 1 file changed, 74 insertions(+), 74 deletions(-)
-
-diff --git a/host/tools/wmiconfig/wmiconfig.c b/host/tools/wmiconfig/wmiconfig.c
-index 21c9dcd..a6ec481 100644
---- a/wmiconfig.c
-+++ b/wmiconfig.c
-@@ -483,7 +483,7 @@ main (int argc, char **argv)
- strcpy(ifname, ethIf);
- s = socket(AF_INET, SOCK_DGRAM, 0);
- if (s < 0) {
-- err(1, "socket");
-+ err(1, "%s", "socket");
- }
-
- while (1) {
-@@ -1506,28 +1506,28 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)filterCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SETBSSFILTER, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_POWER_MODE:
- ifr.ifr_data = (void *)pwrCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SETPWR, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_PM_PARAMS:
- ifr.ifr_data = (void *)pmParamCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_PMPARAMS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_IBSS_PM_CAPS:
- ifr.ifr_data = (void *)adhocPmCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_IBSS_PM_CAPS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_ERROR_DETECTION:
-@@ -1535,7 +1535,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_HB_CHALLENGE_RESP:
-@@ -1543,7 +1543,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- #ifdef USER_KEYS
-@@ -1554,7 +1554,7 @@ main (int argc, char **argv)
-
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
-
- break;
-@@ -1575,7 +1575,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)sParamCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SETSCAN, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_VERSION:
-@@ -1586,7 +1586,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)revinfo;
- if (ioctl(s, AR6000_IOCTL_WMI_GETREV, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printf("Host Rev = 0x%x(%u.%u.%u.%u), Target Rev = 0x%x(%u.%u.%u.%u)\n",
- revinfo->host_ver,
-@@ -1606,14 +1606,14 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)listenCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SETLISTENINT, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BMISS_TIME:
- ifr.ifr_data = (void *)bmissCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_BMISS_TIME, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_RSSI_THRESHOLDS:
-@@ -1621,14 +1621,14 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_SNR_THRESHOLDS:
- ifr.ifr_data = (void *)snrThresholdParam;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_SNRTHRESHOLD, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_CLR_RSSISNR:
-@@ -1636,7 +1636,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_LQ_THRESHOLDS:
-@@ -1644,7 +1644,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_CHANNEL:
-@@ -1693,18 +1693,18 @@ main (int argc, char **argv)
-
- if (ioctl(s, AR6000_IOCTL_WMI_SET_CHANNELPARAMS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_SSID:
- if (index > MAX_PROBED_SSID_INDEX) {
- printf("num option for ssid command too large\n");
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- break;
- }
- if (strlen((char *)ssid) > sizeof (ssidCmd->ssid)) {
- printf("ssid name too large\n");
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- break;
- }
- ssidCmd->entryIndex = index;
-@@ -1722,7 +1722,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)ssidCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_PROBEDSSID, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BADAP:
-@@ -1735,7 +1735,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)badApCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_BADAP, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_CREATE_QOS:
-@@ -1794,7 +1794,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)crePStreamCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_CREATE_QOS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_TARGET_STATS:
-@@ -1807,7 +1807,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)&tgtStatsCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_GET_TARGET_STATS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printTargetStats(&(tgtStatsCmd.targetStats));
- break;
-@@ -1815,7 +1815,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)pBitMask;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_ERROR_REPORT_BITMASK, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_DELETE_QOS:
-@@ -1824,7 +1824,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)delPStreamCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_DELETE_QOS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_QOS_QUEUE:
-@@ -1840,7 +1840,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)getQosQueueCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_GET_QOS_QUEUE, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
-
- printf("Active TSIDs \n");
-@@ -1855,7 +1855,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)ieInfo;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_ASSOC_INFO, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_AC_PARAMS:
-@@ -1871,14 +1871,14 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)acParamsCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_ACCESS_PARAMS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_DISC_TIMEOUT:
- ifr.ifr_data = (void *)discCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_DISC_TIMEOUT, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_ADHOC_BSSID:
-@@ -1887,7 +1887,7 @@ main (int argc, char **argv)
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
- printf("fail to set adhoc bssid \n");
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_OPT_MODE:
-@@ -1895,7 +1895,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_OPT_SEND_FRAME:
-@@ -1903,7 +1903,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BEACON_INT:
-@@ -1911,7 +1911,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_VOICE_PKT_SIZE:
-@@ -1919,7 +1919,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_MAX_SP:
-@@ -1927,7 +1927,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_ROAM_TBL:
-@@ -1935,7 +1935,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_ROAM_CTRL:
-@@ -1943,7 +1943,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_POWERSAVE_TIMERS:
-@@ -1951,7 +1951,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_POWER_MODE:
-@@ -1959,7 +1959,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printf("Power mode is %s\n",
- (getPowerMode->powerMode == MAX_PERF_POWER) ? "maxperf" : "rec");
-@@ -1969,7 +1969,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_ROAM_DATA:
-@@ -1977,7 +1977,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BT_STATUS:
-@@ -1985,7 +1985,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BT_PARAMS:
-@@ -1993,7 +1993,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_RETRYLIMITS:
-@@ -2001,14 +2001,14 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_START_SCAN:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_STARTSCAN;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_FIX_RATES:
-@@ -2031,14 +2031,14 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_FIX_RATES:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_GETFIXRATES;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- } else {
- int i;
- printf("Fix rate set index:");
-@@ -2057,7 +2057,7 @@ main (int argc, char **argv)
- index--;
- setAuthMode->mode = atoi(argv[index]);
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_REASSOC_MODE:
-@@ -2067,42 +2067,42 @@ main (int argc, char **argv)
- index--;
- setReassocMode->mode = atoi(argv[index]);
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_LPREAMBLE:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_LPREAMBLE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_RTS:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_RTS;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_WMM:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_WMM;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_TXOP:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_TXOP;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case DIAG_READ:
- ((int *)buf)[0] = AR6000_XIOCTL_DIAG_READ;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printf("diagdata: 0x%x\n", *diagdata);
- break;
-@@ -2110,7 +2110,7 @@ main (int argc, char **argv)
- ((int *)buf)[0] = AR6000_XIOCTL_DIAG_WRITE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_RD:
-@@ -2118,7 +2118,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- else
- {
-@@ -2139,14 +2139,14 @@ main (int argc, char **argv)
- index--;
- setKeepAlive->keepaliveInterval = atoi(argv[index]);
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_KEEPALIVE:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_KEEPALIVE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printf("Keepalive interval is %d secs and AP is %s\n",
- getKeepAlive->keepaliveInterval, (getKeepAlive->configured ?
-@@ -2156,63 +2156,63 @@ main (int argc, char **argv)
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_APPIE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_MGMT_FRM_RX_FILTER:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_MGMT_FRM_RX_FILTER;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_DBGLOG_CFG_MODULE:
- ((int *)buf)[0] = AR6000_XIOCTL_DBGLOG_CFG_MODULE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_DBGLOG_GET_DEBUG_LOGS:
- ((int *)buf)[0] = AR6000_XIOCTL_DBGLOG_GET_DEBUG_LOGS;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_HOST_SLEEP_MODE:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_HOST_SLEEP_MODE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_WOW_MODE:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_WOW_MODE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_ADD_WOW_PATTERN:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_ADD_WOW_PATTERN;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_DEL_WOW_PATTERN:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_DEL_WOW_PATTERN;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_WOW_LIST:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_WOW_LIST;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case DIAG_DUMP_CHIP_MEM:
-@@ -2225,7 +2225,7 @@ main (int argc, char **argv)
- ((int *)buf)[0] = AR6000_XIOCTL_DIAG_READ;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printf("0x%04x:0x%04x\n", *diagaddr, *diagdata);
- }
-@@ -2237,21 +2237,21 @@ main (int argc, char **argv)
- index = optind - 1;
- *connectCtrlFlags = strtoul(argv[index], NULL, 0);
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case DUMP_HTC_CREDITS:
- ((int *)buf)[0] = AR6000_XIOCTL_DUMP_HTC_CREDIT_STATE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_AKMP_INFO:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_AKMP_PARAMS;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_PMKID_LIST:
-@@ -2259,7 +2259,7 @@ main (int argc, char **argv)
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_PMKID_LIST;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- } else {
- printf("No PMKIDs entered\n");
-@@ -2269,7 +2269,7 @@ main (int argc, char **argv)
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_PMKID_LIST;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BSS_PMKID_INFO:
-@@ -2277,7 +2277,7 @@ main (int argc, char **argv)
- iwr.u.data.length = sizeof(*pi_cmd);
- if (ioctl(s, IEEE80211_IOCTL_ADDPMKID, &iwr) < 0) {
- printf("ADDPMKID IOCTL Error\n");
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- default:
---
-2.13.2
-
diff --git a/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb b/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb
deleted file mode 100644
index c66572b1c..000000000
--- a/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Atheros 6K Wifi configuration utility"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://wmiconfig.c;endline=19;md5=4394a56bca1c5b2446c9f8e406c82911"
-SECTION = "console/network"
-SRCREV = "5394"
-PV = "0.0.0+svnr${SRCPV}"
-PR = "r2"
-
-SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=AR6kSDK.build_sw.18;protocol=http \
- file://0001-makefile-Pass-CFLAGS-to-compile.patch \
- file://0002-fix-err-API-to-have-format-string.patch \
- "
-S = "${WORKDIR}/AR6kSDK.build_sw.18/host/tools/wmiconfig"
-
-CLEANBROKEN = "1"
-
-EXTRA_OEMAKE = "-e MAKEFLAGS="
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install() {
- install -d ${D}${bindir}
- install -m 0755 wmiconfig ${D}${bindir}
-}
-
diff --git a/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/0001-nss-nspr-fix-for-multilib.patch b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/0001-nss-nspr-fix-for-multilib.patch
new file mode 100644
index 000000000..53c119765
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/0001-nss-nspr-fix-for-multilib.patch
@@ -0,0 +1,52 @@
+From 9ed3b4e628f9254d5c86006fe63c33a1eb02aee5 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Tue, 4 Feb 2020 23:39:49 -0800
+Subject: [PATCH] nss/nspr: fix for multilib
+
+Upstream-Status: Pending
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ configure.ac | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b46d97d..39f4318 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -920,24 +920,24 @@ fi
+ dnl Priority 1: User specifies the path to installation
+ if test "z$NSPR_FOUND" = "zno" -a "z$with_nspr" != "z" -a "z$with_nspr" != "zyes" ; then
+ AC_MSG_CHECKING(for nspr library installation in "$with_nspr" folder)
+- if test -f "$with_nspr/include/$NSPR_INCLUDE_MARKER" -a -f "$with_nspr/lib/$NSPR_LIB_MARKER" ; then
+- NSPR_INCLUDE_PATH="$with_nspr/include"
+- NSPR_LIB_PATH="$with_nspr/lib"
++ if test -f "$with_nspr/${includedir}/$NSPR_INCLUDE_MARKER" -a -f "$with_nspr/${libdir}/$NSPR_LIB_MARKER" ; then
++ NSPR_INCLUDE_PATH="$with_nspr/${includedir}"
++ NSPR_LIB_PATH="$with_nspr/${libdir}"
+ NSPR_FOUND="yes"
+ AC_MSG_RESULT([yes])
+ else
+- AC_MSG_ERROR([not found: "$with_nspr/include/$NSPR_INCLUDE_MARKER" and/or "$with_nspr/lib/$NSPR_LIB_MARKER" files don't exist), typo?])
++ AC_MSG_ERROR([not found: "$with_nspr/${includedir}/$NSPR_INCLUDE_MARKER" and/or "$with_nspr/${libdir}/$NSPR_LIB_MARKER" files don't exist), typo?])
+ fi
+ fi
+ if test "z$NSS_FOUND" = "zno" -a "z$with_nss" != "z" -a "z$with_nss" != "zyes" ; then
+ AC_MSG_CHECKING(for nss library installation in "$with_nss" folder)
+- if test -f "$with_nss/include/$NSS_INCLUDE_MARKER" -a -f "$with_nss/lib/$NSS_LIB_MARKER" ; then
+- NSS_INCLUDE_PATH="$with_nss/include"
+- NSS_LIB_PATH="$with_nss/lib"
++ if test -f "$with_nss/${includedir}/$NSS_INCLUDE_MARKER" -a -f "$with_nss/${libdir}/$NSS_LIB_MARKER" ; then
++ NSS_INCLUDE_PATH="$with_nss/${includedir}"
++ NSS_LIB_PATH="$with_nss/${libdir}"
+ NSS_FOUND="yes"
+ AC_MSG_RESULT([yes])
+ else
+- AC_MSG_ERROR([not found: "$with_nss/include/$NSS_INCLUDE_MARKER" and/or "$with_nss/lib/$NSS_LIB_MARKER" files don't exist), typo?])
++ AC_MSG_ERROR([not found: "$with_nss/${includedir}/$NSS_INCLUDE_MARKER" and/or "$with_nss/${libdir}/$NSS_LIB_MARKER" files don't exist), typo?])
+ fi
+ fi
+
+--
+2.21.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch
index 1cec47fca..1451ff564 100644
--- a/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch
+++ b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch
@@ -16,12 +16,8 @@ diff --git a/configure.ac b/configure.ac
index 951b3eb..1fdeb0f 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -866,10 +866,10 @@ MOZILLA_MIN_VERSION="1.4"
- NSS_CRYPTO_LIB="$XMLSEC_PACKAGE-nss"
- NSPR_PACKAGE=mozilla-nspr
- NSS_PACKAGE=mozilla-nss
--NSPR_INCLUDE_MARKER="nspr/nspr.h"
-+NSPR_INCLUDE_MARKER="nspr.h"
+@@ -866,7 +866,7 @@ MOZILLA_MIN_VERSION="1.4"
+ NSPR_INCLUDE_MARKER="nspr/nspr.h"
NSPR_LIB_MARKER="libnspr4$shrext"
NSPR_LIBS_LIST="-lnspr4 -lplds4 -lplc4"
-NSS_INCLUDE_MARKER="nss/nss.h"
@@ -29,39 +25,3 @@ index 951b3eb..1fdeb0f 100644
NSS_LIB_MARKER="libnss3$shrext"
NSS_LIBS_LIST="-lnss3 -lsmime3"
-@@ -898,24 +898,24 @@ fi
- dnl Priority 1: User specifies the path to installation
- if test "z$NSPR_FOUND" = "zno" -a "z$with_nspr" != "z" -a "z$with_nspr" != "zyes" ; then
- AC_MSG_CHECKING(for nspr library installation in "$with_nspr" folder)
-- if test -f "$with_nspr/include/$NSPR_INCLUDE_MARKER" -a -f "$with_nspr/lib/$NSPR_LIB_MARKER" ; then
-- NSPR_INCLUDE_PATH="$with_nspr/include"
-- NSPR_LIB_PATH="$with_nspr/lib"
-+ if test -f "$with_nspr/usr/include/$NSPR_INCLUDE_MARKER" -a -f "$with_nspr/${libdir}/$NSPR_LIB_MARKER" ; then
-+ NSPR_INCLUDE_PATH="$with_nspr/usr/include"
-+ NSPR_LIB_PATH="$with_nspr/${libdir}"
- NSPR_FOUND="yes"
- AC_MSG_RESULT([yes])
- else
-- AC_MSG_ERROR([not found: "$with_nspr/include/$NSPR_INCLUDE_MARKER" and/or "$with_nspr/lib/$NSPR_LIB_MARKER" files don't exist), typo?])
-+ AC_MSG_ERROR([not found: "$with_nspr/usr/include/$NSPR_INCLUDE_MARKER" and/or "$with_nspr/${libdir}/$NSPR_LIB_MARKER" files don't exist), typo?])
- fi
- fi
- if test "z$NSS_FOUND" = "zno" -a "z$with_nss" != "z" -a "z$with_nss" != "zyes" ; then
- AC_MSG_CHECKING(for nss library installation in "$with_nss" folder)
-- if test -f "$with_nss/include/$NSS_INCLUDE_MARKER" -a -f "$with_nss/lib/$NSS_LIB_MARKER" ; then
-- NSS_INCLUDE_PATH="$with_nss/include"
-- NSS_LIB_PATH="$with_nss/lib"
-+ if test -f "$with_nss/usr/include/$NSS_INCLUDE_MARKER" -a -f "$with_nss/${libdir}/$NSS_LIB_MARKER" ; then
-+ NSS_INCLUDE_PATH="$with_nss/usr/include/nss3"
-+ NSS_LIB_PATH="$with_nss/${libdir}"
- NSS_FOUND="yes"
- AC_MSG_RESULT([yes])
- else
-- AC_MSG_ERROR([not found: "$with_nss/include/$NSS_INCLUDE_MARKER" and/or "$with_nss/lib/$NSS_LIB_MARKER" files don't exist), typo?])
-+ AC_MSG_ERROR([not found: "$with_nss/usr/include/$NSS_INCLUDE_MARKER" and/or "$with_nss/${libdir}/$NSS_LIB_MARKER" files don't exist), typo?])
- fi
- fi
-
---
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.29.bb b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.30.bb
index 40c585ee1..20c7b2d37 100644
--- a/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.29.bb
+++ b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.30.bb
@@ -17,21 +17,22 @@ SRC_URI = "http://www.aleksey.com/xmlsec/download/${BP}.tar.gz \
file://change-finding-path-of-nss.patch \
file://makefile-ptest.patch \
file://xmlsec1-examples-allow-build-in-separate-dir.patch \
+ file://0001-nss-nspr-fix-for-multilib.patch \
file://run-ptest \
"
-SRC_URI[md5sum] = "4755621ff2a7150e208de6bd7decca10"
-SRC_URI[sha256sum] = "b1d1deba966019930f608d1f2b95c40ca3450f1393bcd3a3c001a8ba1d2839ab"
+SRC_URI[md5sum] = "b66ec21e0a0ac331afb4b1bc5c9ef966"
+SRC_URI[sha256sum] = "2d84360b03042178def1d9ff538acacaed2b3a27411db7b2874f1612ed71abc8"
inherit autotools-brokensep ptest pkgconfig
-CFLAGS += "-I${STAGING_INCDIR}/nspr4 -I${STAGING_INCDIR}/nss3"
-CPPFLAGS += "-I${STAGING_INCDIR}/nspr4 -I${STAGING_INCDIR}/nss3"
+#CFLAGS += "-I${STAGING_INCDIR}/nss3"
+#CPPFLAGS += "-I${STAGING_INCDIR}/nss3"
PACKAGECONFIG ??= "gnutls libgcrypt nss openssl des"
PACKAGECONFIG[gnutls] = ",,gnutls"
PACKAGECONFIG[libgcrypt] = ",,libgcrypt"
-PACKAGECONFIG[nss] = "--with-nss=${STAGING_LIBDIR}/../.. --with-nspr=${STAGING_LIBDIR}/../..,,nss nspr"
+PACKAGECONFIG[nss] = "--with-nss=${STAGING_DIR_HOST} --with-nspr=${STAGING_DIR_HOST},,nss nspr"
PACKAGECONFIG[openssl] = ",,openssl"
PACKAGECONFIG[des] = ",--disable-des,,"
diff --git a/meta-openembedded/meta-oe/recipes-support/xxhash/xxhash_0.7.3.bb b/meta-openembedded/meta-oe/recipes-support/xxhash/xxhash_0.7.3.bb
new file mode 100644
index 000000000..865adc5a1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xxhash/xxhash_0.7.3.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Extremely fast non-cryptographic hash algorithm"
+DESCRIPTION = "xxHash is an extremely fast non-cryptographic hash algorithm, \
+working at speeds close to RAM limits."
+HOMEPAGE = "http://www.xxhash.com/"
+LICENSE = "BSD-2-Clause & GPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=01a7eba4212ef1e882777a38585e7a9b"
+
+SRC_URI = "git://github.com/Cyan4973/xxHash.git"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+SRCREV = "d408e9b0606d07b1ddc5452ffc0ec8512211b174"
+
+S = "${WORKDIR}/git"
+
+do_compile () {
+ oe_runmake all
+}
+
+do_install () {
+ oe_runmake DESTDIR=${D} install
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk/0001-zck.h-fix-build-on-musl.patch b/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk/0001-zck.h-fix-build-on-musl.patch
new file mode 100644
index 000000000..64e0e8ed6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk/0001-zck.h-fix-build-on-musl.patch
@@ -0,0 +1,39 @@
+From 78247d478cec254bad27f4ed97b532f4f54bf1b0 Mon Sep 17 00:00:00 2001
+From: Pierre-Jean Texier <pjtexier@koncepto.io>
+Date: Thu, 23 Jan 2020 19:14:40 +0100
+Subject: [PATCH 1/2] zck.h: fix build on musl
+
+The ssize_t type requires the <sys/types.h> header. This fixes build with musl
+libc:
+
+include/zck.h:68:1: error: unknown type name 'ssize_t'; did you mean 'size_t'?
+ 68 | ssize_t zck_read(zckCtx *zck, char *dst, size_t dst_size)
+ | ^~~~~~~
+ | size_t
+include/zck.h:81:1: error: unknown type name 'ssize_t'; did you mean 'size_t'?
+ 81 | ssize_t zck_write(zckCtx *zck, const char *src, const size_t src_size)
+ | ^~~~~~~
+ | size_t
+
+Upstream-Status: Submitted [https://github.com/zchunk/zchunk/pull/23]
+
+Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
+---
+ include/zck.h.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/zck.h.in b/include/zck.h.in
+index 91d2557..b847576 100644
+--- a/include/zck.h.in
++++ b/include/zck.h.in
+@@ -5,6 +5,7 @@
+
+ #include <stdlib.h>
+ #include <stdbool.h>
++#include <sys/types.h>
+
+ typedef enum zck_hash {
+ ZCK_HASH_SHA1,
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk/0002-unzck-fix-build-with-musl-libc.patch b/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk/0002-unzck-fix-build-with-musl-libc.patch
new file mode 100644
index 000000000..a1c95bf36
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk/0002-unzck-fix-build-with-musl-libc.patch
@@ -0,0 +1,61 @@
+From 72c55e3da59eccdfea3778d11f83862b58af723d Mon Sep 17 00:00:00 2001
+From: Pierre-Jean Texier <pjtexier@koncepto.io>
+Date: Thu, 23 Jan 2020 22:42:40 +0100
+Subject: [PATCH 2/2] unzck: fix build with musl libc
+
+On musl libc "stdout" is a preprocessor macro whose expansion leads to
+compilation errors.
+
+Fixes:
+
+| In file included from ../git/src/unzck.c:31:
+| ../git/src/unzck.c: In function 'parse_opt':
+| ../git/src/unzck.c:78:24: error: expected identifier before '(' token
+| 78 | arguments->stdout = true;
+| | ^~~~~~
+| ../git/src/unzck.c: In function 'main':
+| ../git/src/unzck.c:141:20: error: expected identifier before '(' token
+| 141 | if(!(arguments.stdout)) {
+| | ^~~~~~
+
+Upstream-Status: Submitted [https://github.com/zchunk/zchunk/pull/23]
+
+Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
+---
+ src/unzck.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/unzck.c b/src/unzck.c
+index 8d6c62a..002492c 100644
+--- a/src/unzck.c
++++ b/src/unzck.c
+@@ -58,7 +58,7 @@ struct arguments {
+ char *args[1];
+ zck_log_type log_level;
+ bool dict;
+- bool stdout;
++ bool stdOut;
+ bool exit;
+ };
+
+@@ -75,7 +75,7 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state) {
+ arguments->log_level = ZCK_LOG_DDEBUG;
+ break;
+ case 'c':
+- arguments->stdout = true;
++ arguments->stdOut = true;
+ break;
+ case 'V':
+ version();
+@@ -138,7 +138,7 @@ int main (int argc, char *argv[]) {
+ snprintf(out_name + strlen(base_name) - 4, 7, ".zdict");
+
+ int dst_fd = STDOUT_FILENO;
+- if(!arguments.stdout) {
++ if(!arguments.stdOut) {
+ dst_fd = open(out_name, O_TRUNC | O_WRONLY | O_CREAT, 0666);
+ if(dst_fd < 0) {
+ dprintf(STDERR_FILENO, "Unable to open %s", out_name);
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk_1.1.5.bb b/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk_1.1.5.bb
new file mode 100644
index 000000000..f75412f49
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk_1.1.5.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "A file format designed for highly efficient deltas while maintaining good compression"
+AUTHOR = "Jonathan Dieter"
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cd6e590282010ce90a94ef25dd31410f"
+
+SRC_URI = " \
+ git://github.com/zchunk/zchunk.git;protocol=https \
+ file://0001-zck.h-fix-build-on-musl.patch \
+ file://0002-unzck-fix-build-with-musl-libc.patch \
+ "
+
+SRCREV = "c01bf12feede792982f165f52f4a6c573e3a8c17"
+S = "${WORKDIR}/git"
+
+DEPENDS = "\
+ curl \
+ zstd \
+ "
+
+DEPENDS_append_libc-musl = " argp-standalone"
+LDFLAGS_append_libc-musl = " -largp"
+
+inherit meson
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-test/cunit/cunit_2.1-3.bb b/meta-openembedded/meta-oe/recipes-test/cunit/cunit_2.1-3.bb
index 98f2cacf1..babf8048a 100644
--- a/meta-openembedded/meta-oe/recipes-test/cunit/cunit_2.1-3.bb
+++ b/meta-openembedded/meta-oe/recipes-test/cunit/cunit_2.1-3.bb
@@ -11,6 +11,8 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/project/cunit/CUnit/${PV}/CUnit-${PV}.tar.bz2 \
SRC_URI[md5sum] = "b5f1a9f6093869c070c6e4a9450cc10c"
SRC_URI[sha256sum] = "f5b29137f845bb08b77ec60584fdb728b4e58f1023e6f249a464efa49a40f214"
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/cunit/files/releases"
+
inherit autotools-brokensep remove-libtool
EXTRA_OECONF = "--enable-memtrace --enable-automated --enable-basic --enable-console"
diff --git a/meta-openembedded/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb b/meta-openembedded/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb
index 342fccf41..252eea366 100644
--- a/meta-openembedded/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb
+++ b/meta-openembedded/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb
@@ -10,7 +10,7 @@ SRC_URI[sha256sum] = "1c154fef91c65dbf1cd4519af7ade70a61d85a923b6e0c0b007dc7f489
S = "${WORKDIR}/cxxtest-${PV}/python"
-inherit distutils
+inherit distutils3
do_install_append() {
install -d ${D}${includedir}