diff options
author | Andrew Geissler <geissonator@yahoo.com> | 2020-04-13 21:39:40 +0300 |
---|---|---|
committer | Andrew Geissler <geissonator@yahoo.com> | 2020-05-05 16:30:44 +0300 |
commit | 82c905dc58a36aeae40b1b273a12f63fb1973cf4 (patch) | |
tree | 38caf00263451b5036435cdc36e035b25d32e623 /meta-openembedded/meta-oe | |
parent | 83ecb75644b3d677c274188f9ac0b2374d6f6925 (diff) | |
download | openbmc-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')
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/>/>/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 Binary files differnew file mode 100644 index 000000000..7d4bcf258 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/blank-cert9.db 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 Binary files differnew file mode 100644 index 000000000..d47f08d04 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/blank-key4.db 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} |