From raj.khem at gmail.com Sat Feb 1 03:57:15 2020 From: raj.khem at gmail.com (Khem Raj) Date: Fri, 31 Jan 2020 19:57:15 -0800 Subject: [oe] [meta-oe][PATCH 1/3] iwd: Update to 1.4 In-Reply-To: <20200131212057.1856967-1-robert.joslyn@redrectangle.org> References: <20200131212057.1856967-1-robert.joslyn@redrectangle.org> Message-ID: fails on musl/aarch64 https://errors.yoctoproject.org/Errors/Details/338733/ /usr/src/debug/iwd/1.4-r0/build/../git/src/wiphy.c:503: undefined reference to `rawmemchr' perhaps something like this will help avoid it https://github.com/linux-audit/audit-userspace/pull/25/commits/8f2a6788b78dd6b219545aacbd42e2f84df8c71a On Fri, Jan 31, 2020 at 1:47 PM Robert Joslyn wrote: > > dbus is not required to compile, but is expected at run time. Move it to > RDEPENDS. > > From upstream changelog: > > ver 1.4: > Fix issue with handling Crypto-Binding and invalid MACs. > Fix issue with handling change station error results. > Fix issue with handling DNS resolving installations. > > ver 1.3: > Fix issue with handling EAP-GTC and password requests. > Fix issue with handling Crypto-Binding TLV for PEAPv0. > Fix issue with handling key installation and PEAP Phase 2. > Fix issue with handling externally triggered scan requests. > Fix issue with handling RCPI calculation for RRM requests. > > ver 1.2: > Fix issue with handling scan requests while connecting. > Fix issue with handling scan duration for RRM requests. > Fix issue with handling parent TSF value for RRM requests. > > ver 1.1: > Fix issue with simple configuration support checks. > Fix issue with handling TLS tunnel and PEAPv0. > Add support for radio resource management. > > Signed-off-by: Robert Joslyn > --- > ...am-Avoid-redirection-of-input-and-output-fi.patch | 12 +++++------- > .../iwd/{iwd_1.0.bb => iwd_1.4.bb} | 6 ++++-- > 2 files changed, 9 insertions(+), 9 deletions(-) > rename meta-oe/recipes-connectivity/iwd/{iwd_1.0.bb => iwd_1.4.bb} (90%) > > diff --git a/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch b/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch > index 93ef007f8..80126a870 100644 > --- a/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch > +++ b/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch > @@ -1,4 +1,4 @@ > -From f2a2b9f445ab1e31fbb27a74744e9a2ededfce17 Mon Sep 17 00:00:00 2001 > +From 46fc0e197598579dc05e42f137e84f86a9b926e9 Mon Sep 17 00:00:00 2001 > From: Khem Raj > Date: Mon, 4 Nov 2019 16:38:04 -0800 > Subject: [PATCH] Makefile.am: Avoid redirection of input and output files > @@ -15,26 +15,24 @@ make[1]: *** [Makefile:3544: monitor/iwmon.1] Error 1 > Upstream-Status: Pending > > Signed-off-by: Khem Raj > + > --- > Makefile.am | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/Makefile.am b/Makefile.am > -index 823b7d02..1bd0005c 100644 > +index 8c69d9f4..35a25fc0 100644 > --- a/Makefile.am > +++ b/Makefile.am > -@@ -626,8 +626,9 @@ SED_PROCESS = $(AM_V_GEN)$(MKDIR_P) $(dir $@) && $(SED) \ > +@@ -629,8 +629,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 < $< > $@ > +- --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-oe/recipes-connectivity/iwd/iwd_1.0.bb b/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb > similarity index 90% > rename from meta-oe/recipes-connectivity/iwd/iwd_1.0.bb > rename to meta-oe/recipes-connectivity/iwd/iwd_1.4.bb > index cc34ca221..49fc45a74 100644 > --- a/meta-oe/recipes-connectivity/iwd/iwd_1.0.bb > +++ b/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb > @@ -4,12 +4,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" > > inherit autotools pkgconfig systemd python3native > > -DEPENDS = "ell readline dbus python3-docutils-native" > +DEPENDS = "ell readline 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" > +SRCREV = "860fa4697f349da7791ecf22ca76f9ac0e5de261" > S = "${WORKDIR}/git" > > PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" > @@ -32,6 +32,8 @@ FILES_${PN} += "${datadir}/dbus-1 ${nonarch_libdir}/modules-load.d ${systemd_uni > > SYSTEMD_SERVICE_${PN} = "iwd.service ${@bb.utils.contains('PACKAGECONFIG', 'wired', 'ead.service', '', d)}" > > +RDEPENDS_${PN} = "dbus" > + > RRECOMMENDS_${PN} = "\ > kernel-module-pkcs7-message \ > kernel-module-pkcs8-key-parser \ > -- > 2.24.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From robert.joslyn at redrectangle.org Sat Feb 1 07:39:01 2020 From: robert.joslyn at redrectangle.org (Robert Joslyn) Date: Fri, 31 Jan 2020 23:39:01 -0800 Subject: [oe] [meta-oe][PATCH 1/3] iwd: Update to 1.4 In-Reply-To: References: <20200131212057.1856967-1-robert.joslyn@redrectangle.org> Message-ID: <52a7d78cd25351c768a59b6211905aea19abeabe.camel@redrectangle.org> On Fri, 2020-01-31 at 19:57 -0800, Khem Raj wrote: > fails on musl/aarch64 > > https://errors.yoctoproject.org/Errors/Details/338733/ > > /usr/src/debug/iwd/1.4-r0/build/../git/src/wiphy.c:503: undefined > reference to `rawmemchr' > > perhaps something like this will help avoid it > > https://github.com/linux-audit/audit-userspace/pull/25/commits/8f2a6788b78dd6b219545aacbd42e2f84df8c71a > Should be able to replace rawmemchr with memchr (and a size of -1). I'll check with upstream to see if this is something they'll accept and then send a v2. Thanks, Robert > On Fri, Jan 31, 2020 at 1:47 PM Robert Joslyn > wrote: > > dbus is not required to compile, but is expected at run time. Move it > > to > > RDEPENDS. > > > > From upstream changelog: > > > > ver 1.4: > > Fix issue with handling Crypto-Binding and invalid MACs. > > Fix issue with handling change station error results. > > Fix issue with handling DNS resolving installations. > > > > ver 1.3: > > Fix issue with handling EAP-GTC and password requests. > > Fix issue with handling Crypto-Binding TLV for PEAPv0. > > Fix issue with handling key installation and PEAP Phase 2. > > Fix issue with handling externally triggered scan requests. > > Fix issue with handling RCPI calculation for RRM requests. > > > > ver 1.2: > > Fix issue with handling scan requests while connecting. > > Fix issue with handling scan duration for RRM requests. > > Fix issue with handling parent TSF value for RRM requests. > > > > ver 1.1: > > Fix issue with simple configuration support checks. > > Fix issue with handling TLS tunnel and PEAPv0. > > Add support for radio resource management. > > > > Signed-off-by: Robert Joslyn > > --- > > ...am-Avoid-redirection-of-input-and-output-fi.patch | 12 +++++---- > > --- > > .../iwd/{iwd_1.0.bb => iwd_1.4.bb} | 6 ++++-- > > 2 files changed, 9 insertions(+), 9 deletions(-) > > rename meta-oe/recipes-connectivity/iwd/{iwd_1.0.bb => iwd_1.4.bb} > > (90%) > > > > diff --git a/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am- > > Avoid-redirection-of-input-and-output-fi.patch b/meta-oe/recipes- > > connectivity/iwd/iwd/0001-Makefile.am-Avoid-redirection-of-input-and- > > output-fi.patch > > index 93ef007f8..80126a870 100644 > > --- a/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid- > > redirection-of-input-and-output-fi.patch > > +++ b/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid- > > redirection-of-input-and-output-fi.patch > > @@ -1,4 +1,4 @@ > > -From f2a2b9f445ab1e31fbb27a74744e9a2ededfce17 Mon Sep 17 00:00:00 > > 2001 > > +From 46fc0e197598579dc05e42f137e84f86a9b926e9 Mon Sep 17 00:00:00 > > 2001 > > From: Khem Raj > > Date: Mon, 4 Nov 2019 16:38:04 -0800 > > Subject: [PATCH] Makefile.am: Avoid redirection of input and output > > files > > @@ -15,26 +15,24 @@ make[1]: *** [Makefile:3544: monitor/iwmon.1] > > Error 1 > > Upstream-Status: Pending > > > > Signed-off-by: Khem Raj > > + > > --- > > Makefile.am | 5 +++-- > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > diff --git a/Makefile.am b/Makefile.am > > -index 823b7d02..1bd0005c 100644 > > +index 8c69d9f4..35a25fc0 100644 > > --- a/Makefile.am > > +++ b/Makefile.am > > -@@ -626,8 +626,9 @@ SED_PROCESS = $(AM_V_GEN)$(MKDIR_P) $(dir $@) && > > $(SED) \ > > +@@ -629,8 +629,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 < $< > $@ > > +- --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-oe/recipes-connectivity/iwd/iwd_1.0.bb b/meta- > > oe/recipes-connectivity/iwd/iwd_1.4.bb > > similarity index 90% > > rename from meta-oe/recipes-connectivity/iwd/iwd_1.0.bb > > rename to meta-oe/recipes-connectivity/iwd/iwd_1.4.bb > > index cc34ca221..49fc45a74 100644 > > --- a/meta-oe/recipes-connectivity/iwd/iwd_1.0.bb > > +++ b/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb > > @@ -4,12 +4,12 @@ LIC_FILES_CHKSUM = " > > file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" > > > > inherit autotools pkgconfig systemd python3native > > > > -DEPENDS = "ell readline dbus python3-docutils-native" > > +DEPENDS = "ell readline 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" > > +SRCREV = "860fa4697f349da7791ecf22ca76f9ac0e5de261" > > S = "${WORKDIR}/git" > > > > PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', > > d)}" > > @@ -32,6 +32,8 @@ FILES_${PN} += "${datadir}/dbus-1 > > ${nonarch_libdir}/modules-load.d ${systemd_uni > > > > SYSTEMD_SERVICE_${PN} = "iwd.service ${@bb.utils.contains('PACKAGECON > > FIG', 'wired', 'ead.service', '', d)}" > > > > +RDEPENDS_${PN} = "dbus" > > + > > RRECOMMENDS_${PN} = "\ > > kernel-module-pkcs7-message \ > > kernel-module-pkcs8-key-parser \ > > -- > > 2.24.1 > > > > -- > > _______________________________________________ > > Openembedded-devel mailing list > > Openembedded-devel at lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From alex.kiernan at gmail.com Sat Feb 1 15:25:42 2020 From: alex.kiernan at gmail.com (Alex Kiernan) Date: Sat, 1 Feb 2020 15:25:42 +0000 Subject: [oe] [meta-oe][PATCH 2/3] iwd: Add PACKAGECONFIG options In-Reply-To: <20200131212057.1856967-2-robert.joslyn@redrectangle.org> References: <20200131212057.1856967-1-robert.joslyn@redrectangle.org> <20200131212057.1856967-2-robert.joslyn@redrectangle.org> Message-ID: On Fri, Jan 31, 2020 at 9:45 PM Robert Joslyn wrote: > > Make it easier to disable optional client, monitor, and man page > components and their dependencies. A user may want to disable the client > to avoid the use of GPLv3 readline. > > Signed-off-by: Robert Joslyn > --- > meta-oe/recipes-connectivity/iwd/iwd_1.4.bb | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) > > diff --git a/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb b/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb > index 49fc45a74..a023c0d28 100644 > --- a/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb > +++ b/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb > @@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" > > inherit autotools pkgconfig systemd python3native > > -DEPENDS = "ell readline python3-docutils-native" > +DEPENDS = "ell" > > SRC_URI = "git://git.kernel.org/pub/scm/network/wireless/iwd.git \ > file://0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch \ > @@ -12,7 +12,15 @@ SRC_URI = "git://git.kernel.org/pub/scm/network/wireless/iwd.git \ > SRCREV = "860fa4697f349da7791ecf22ca76f9ac0e5de261" > S = "${WORKDIR}/git" > > -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" > +PACKAGECONFIG ??= " \ > + client \ > + monitor \ > + manual-pages \ > + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ > +" > +PACKAGECONFIG[client] = "--enable-client,--disable-client,readline" > +PACKAGECONFIG[monitor] = "--enable-monitor,--disable-monitor" > +PACKAGECONFIG[manual-pages] = "--enable-manual-pages,--disable-manual-pages,python3-docutils-native" If you make this PACKAGECONFIG[manpages], inherit manpages and drop it from the default PACKAGECONFIG you'll automatically get documentation driven by the api-documentation distro feature. Though at that possibly it should be a separate commit. Maybe just /manual-pages/manpages/ as that's a common name? > PACKAGECONFIG[wired] = "--enable-wired,--disable-wired" > PACKAGECONFIG[ofono] = "--enable-ofono,--disable-ofono" > PACKAGECONFIG[systemd] = "--with-systemd-unitdir=${systemd_system_unitdir},--disable-systemd-service,systemd" > @@ -26,6 +34,8 @@ do_configure_prepend () { > do_install_append() { > mkdir --parents ${D}${docdir}/${BPN} > install -m644 ${S}/doc/*.txt ${D}${docdir}/${BPN} > + # 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/" > -- > 2.24.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel -- Alex Kiernan From schnitzeltony at gmail.com Sat Feb 1 16:36:59 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sat, 1 Feb 2020 17:36:59 +0100 Subject: [oe] [PATCH 0/4] mozjs -> python3 / upgrades Message-ID: <20200201163703.4264-1-schnitzeltony@gmail.com> Mozjs was build / run tested with Raspi 32bit. For other targets issues might pop up - see what autobuilder says - will take care. Andreas M?ller (4): mozjs: port build to python3 poppler: upgrade 0.84.0 -> 0.84.0 xfce4-whiskermenu-plugin: upgrade 2.3.4 -> 2.3.5 thunar: upgrade 1.8.10 -> 1.8.12 .../mozjs/0001-Port-build-to-python3.patch | 6888 +++++++++++++++++ ...nclude-RequiredDefines.h-for-depend.patch} | 0 ...x-cross-compilation-on-i586-targets.patch} | 0 ...04-do-not-create-python-environment.patch} | 0 ....patch => 0005-fix-cannot-find-link.patch} | 0 ...ound-autoconf-2.13-detection-failed.patch} | 0 ... 0007-fix-do_compile-failed-on-mips.patch} | 0 ...ort.patch => 0008-add-riscv-support.patch} | 0 ...mozjs-fix-coredump-caused-by-getenv.patch} | 0 ...rflow.patch => 0010-format-overflow.patch} | 0 ... 0011-To-fix-build-error-on-arm32BE.patch} | 0 ...LIC_API.patch => 0012-JS_PUBLIC_API.patch} | 0 ...013-riscv-Disable-atomic-operations.patch} | 0 ... 0014-fallback-to-2011-C++-standard.patch} | 0 ...-compiling-failure-on-mips64-n32-bsp.patch | 0 .../0001-support-musl.patch} | 0 .../0002-js-Fix-build-with-musl.patch} | 0 .../recipes-extended/mozjs/mozjs_60.9.0.bb | 56 +- .../{poppler_0.84.0.bb => poppler_0.85.0.bb} | 4 +- ...4.bb => xfce4-whiskermenu-plugin_2.3.5.bb} | 4 +- .../{thunar_1.8.10.bb => thunar_1.8.12.bb} | 4 +- 21 files changed, 6923 insertions(+), 33 deletions(-) create mode 100644 meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch rename meta-oe/recipes-extended/mozjs/mozjs/{0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch => 0002-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0010-fix-cross-compilation-on-i586-targets.patch => 0003-fix-cross-compilation-on-i586-targets.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0001-do-not-create-python-environment.patch => 0004-do-not-create-python-environment.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0002-fix-cannot-find-link.patch => 0005-fix-cannot-find-link.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0003-workaround-autoconf-2.13-detection-failed.patch => 0006-workaround-autoconf-2.13-detection-failed.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0005-fix-do_compile-failed-on-mips.patch => 0007-fix-do_compile-failed-on-mips.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{add-riscv-support.patch => 0008-add-riscv-support.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0001-mozjs-fix-coredump-caused-by-getenv.patch => 0009-mozjs-fix-coredump-caused-by-getenv.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{format-overflow.patch => 0010-format-overflow.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0001-To-fix-build-error-on-arm32BE.patch => 0011-To-fix-build-error-on-arm32BE.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{JS_PUBLIC_API.patch => 0012-JS_PUBLIC_API.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0001-riscv-Disable-atomic-operations.patch => 0013-riscv-Disable-atomic-operations.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{fallback-to-2011-C++-standard.patch => 0014-fallback-to-2011-C++-standard.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{ => mipsarchn32}/0001-fix-compiling-failure-on-mips64-n32-bsp.patch (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0006-support-musl.patch => musl/0001-support-musl.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0001-js-Fix-build-with-musl.patch => musl/0002-js-Fix-build-with-musl.patch} (100%) rename meta-oe/recipes-support/poppler/{poppler_0.84.0.bb => poppler_0.85.0.bb} (93%) rename meta-xfce/recipes-panel-plugins/whiskermenu/{xfce4-whiskermenu-plugin_2.3.4.bb => xfce4-whiskermenu-plugin_2.3.5.bb} (66%) rename meta-xfce/recipes-xfce/thunar/{thunar_1.8.10.bb => thunar_1.8.12.bb} (84%) -- 2.21.0 From schnitzeltony at gmail.com Sat Feb 1 16:37:01 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sat, 1 Feb 2020 17:37:01 +0100 Subject: [oe] [PATCH 2/4] poppler: upgrade 0.84.0 -> 0.84.0 In-Reply-To: <20200201163703.4264-1-schnitzeltony@gmail.com> References: <20200201163703.4264-1-schnitzeltony@gmail.com> Message-ID: <20200201163703.4264-3-schnitzeltony@gmail.com> Release 0.85.0: core: * Fix case unsensitive search for Deseret and Osage. Issue #853 * Fix crash in unicodeToAscii7 * CairoOutputDev: make initialisation thread-safe * Fix crash on broken files. Issues #869, #870 * Internal code improvements qt5: * Fix FormField::name encoding * Accept UTF-16 uiNames for form fields * Fix search for "complex" characters * Allow to load document from QIODevice utils: * pdftoppm/pdftocairo: Fix -e/-o printing the wrong pages. Issue #873 * pdftohtml: Fix issue with the font size sometimes being huge glib: * make the frontend initialization thread safe. Signed-off-by: Andreas M?ller --- .../poppler/{poppler_0.84.0.bb => poppler_0.85.0.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-support/poppler/{poppler_0.84.0.bb => poppler_0.85.0.bb} (93%) diff --git a/meta-oe/recipes-support/poppler/poppler_0.84.0.bb b/meta-oe/recipes-support/poppler/poppler_0.85.0.bb similarity index 93% rename from meta-oe/recipes-support/poppler/poppler_0.84.0.bb rename to meta-oe/recipes-support/poppler/poppler_0.85.0.bb index 5153868b6..857b67ff9 100644 --- a/meta-oe/recipes-support/poppler/poppler_0.84.0.bb +++ b/meta-oe/recipes-support/poppler/poppler_0.85.0.bb @@ -7,8 +7,8 @@ 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] = "5315084523a4d73e9514f51eef78a332" +SRC_URI[sha256sum] = "2bc875eb323002ae6b287e09980473518e2b2ed6b5b7d2e1089e36a6cd00d94b" DEPENDS = "fontconfig zlib cairo lcms glib-2.0" -- 2.21.0 From schnitzeltony at gmail.com Sat Feb 1 16:37:02 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sat, 1 Feb 2020 17:37:02 +0100 Subject: [oe] [PATCH 3/4] xfce4-whiskermenu-plugin: upgrade 2.3.4 -> 2.3.5 In-Reply-To: <20200201163703.4264-1-schnitzeltony@gmail.com> References: <20200201163703.4264-1-schnitzeltony@gmail.com> Message-ID: <20200201163703.4264-4-schnitzeltony@gmail.com> Release notes for 2.3.5 ======================= - Fix saving unchanged plugin title. (bug #15403) - Fix sidebar scrollbar covering buttons. (bug #14730) - Fix categories remaining scrolled when hidden. - Fix incorrect alignment of commands next to search. - Fix incorrect fallback value for menu opacity. - Fix incorrect check when setting command. - Update documentation URL. (bug #16183) Signed-off-by: Andreas M?ller --- ...menu-plugin_2.3.4.bb => xfce4-whiskermenu-plugin_2.3.5.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-xfce/recipes-panel-plugins/whiskermenu/{xfce4-whiskermenu-plugin_2.3.4.bb => xfce4-whiskermenu-plugin_2.3.5.bb} (66%) diff --git a/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.4.bb b/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.5.bb similarity index 66% rename from meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.4.bb rename to meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.5.bb index 595e3c815..75b5a319a 100644 --- a/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.4.bb +++ b/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.5.bb @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" inherit xfce-panel-plugin cmake -SRC_URI[md5sum] = "ee9e378fae78b230a23b241cf727c84b" -SRC_URI[sha256sum] = "84d3de35695a023aab181f7a9b75f59029eb3b07c3e47a5e11e8bd79db62570e" +SRC_URI[md5sum] = "b5242d7922fa4253cc99c253efcff7cf" +SRC_URI[sha256sum] = "8f7134f4c1b5ff5290048c5b96b130e1238a286002cbe35255c2cd7d5a1ab6b4" RRECOMMENDS_${PN} += "menulibre" -- 2.21.0 From schnitzeltony at gmail.com Sat Feb 1 16:37:03 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sat, 1 Feb 2020 17:37:03 +0100 Subject: [oe] [PATCH 4/4] thunar: upgrade 1.8.10 -> 1.8.12 In-Reply-To: <20200201163703.4264-1-schnitzeltony@gmail.com> References: <20200201163703.4264-1-schnitzeltony@gmail.com> Message-ID: <20200201163703.4264-5-schnitzeltony@gmail.com> Release notes for 1.8.12 ======================== - NULL is the proper sentinel for g_object_new() (Bug #16310) - Drop timer on finalize (Bug #15305) - Store column width setting asynchronously and only once (Bug #15305) - When move to trash fails, ask whether to delete files (Bug #15975) - Ctrl+Mousewheel does not enlarge/shrink entries (for detailed list view) (Bug #15936) - Extra padding for Eject button when scrollbar is visible (Bug #15312) - Use standard icon instead of custom - Translation Updates: Albanian, Chinese (China), Chinese (Taiwan), Croatian, Czech, Dutch, French, Galician, Greek, Hungarian, Italian, Japanese, Norwegian Bokm?l, Portuguese, Portuguese (Brazil), Russian, Serbian, Slovak, Spanish, Swedish, Ukrainian Could not find announcemant for 1.8.11 Signed-off-by: Andreas M?ller --- .../thunar/{thunar_1.8.10.bb => thunar_1.8.12.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-xfce/recipes-xfce/thunar/{thunar_1.8.10.bb => thunar_1.8.12.bb} (84%) diff --git a/meta-xfce/recipes-xfce/thunar/thunar_1.8.10.bb b/meta-xfce/recipes-xfce/thunar/thunar_1.8.12.bb similarity index 84% rename from meta-xfce/recipes-xfce/thunar/thunar_1.8.10.bb rename to meta-xfce/recipes-xfce/thunar/thunar_1.8.12.bb index eb57daefc..0d2befd02 100644 --- a/meta-xfce/recipes-xfce/thunar/thunar_1.8.10.bb +++ b/meta-xfce/recipes-xfce/thunar/thunar_1.8.12.bb @@ -8,8 +8,8 @@ inherit xfce gobject-introspection features_check mime-xdg REQUIRED_DISTRO_FEATURES = "x11" -SRC_URI[md5sum] = "85c7394d82542d5a023f1f5baef109d8" -SRC_URI[sha256sum] = "3d448d81c0e49efbaa5ae6bf34ac3c88a614178a1127afaee6b3a1b5ee12e709" +SRC_URI[md5sum] = "bebd2d83ad2ed111b906c99b65fb32ed" +SRC_URI[sha256sum] = "29295bee0b1f5bfd525e37405e5d32b497ae539b15183dd14e6ca49e252225f8" PACKAGECONFIG ??= "" PACKAGECONFIG[pcre] = "--enable-pcre,--disable-pcre,libpcre" -- 2.21.0 From schnitzeltony at gmail.com Sat Feb 1 16:37:00 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sat, 1 Feb 2020 17:37:00 +0100 Subject: [oe] [PATCH 1/4] mozjs: port build to python3 In-Reply-To: <20200201163703.4264-1-schnitzeltony@gmail.com> References: <20200201163703.4264-1-schnitzeltony@gmail.com> Message-ID: <20200201163703.4264-2-schnitzeltony@gmail.com> While at it: * cleanup our patches * remove useless sed in do_configure Signed-off-by: Andreas M?ller --- .../mozjs/0001-Port-build-to-python3.patch | 6888 +++++++++++++++++ ...nclude-RequiredDefines.h-for-depend.patch} | 0 ...x-cross-compilation-on-i586-targets.patch} | 0 ...04-do-not-create-python-environment.patch} | 0 ....patch => 0005-fix-cannot-find-link.patch} | 0 ...ound-autoconf-2.13-detection-failed.patch} | 0 ... 0007-fix-do_compile-failed-on-mips.patch} | 0 ...ort.patch => 0008-add-riscv-support.patch} | 0 ...mozjs-fix-coredump-caused-by-getenv.patch} | 0 ...rflow.patch => 0010-format-overflow.patch} | 0 ... 0011-To-fix-build-error-on-arm32BE.patch} | 0 ...LIC_API.patch => 0012-JS_PUBLIC_API.patch} | 0 ...013-riscv-Disable-atomic-operations.patch} | 0 ... 0014-fallback-to-2011-C++-standard.patch} | 0 ...-compiling-failure-on-mips64-n32-bsp.patch | 0 .../0001-support-musl.patch} | 0 .../0002-js-Fix-build-with-musl.patch} | 0 .../recipes-extended/mozjs/mozjs_60.9.0.bb | 56 +- 18 files changed, 6917 insertions(+), 27 deletions(-) create mode 100644 meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch rename meta-oe/recipes-extended/mozjs/mozjs/{0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch => 0002-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0010-fix-cross-compilation-on-i586-targets.patch => 0003-fix-cross-compilation-on-i586-targets.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0001-do-not-create-python-environment.patch => 0004-do-not-create-python-environment.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0002-fix-cannot-find-link.patch => 0005-fix-cannot-find-link.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0003-workaround-autoconf-2.13-detection-failed.patch => 0006-workaround-autoconf-2.13-detection-failed.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0005-fix-do_compile-failed-on-mips.patch => 0007-fix-do_compile-failed-on-mips.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{add-riscv-support.patch => 0008-add-riscv-support.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0001-mozjs-fix-coredump-caused-by-getenv.patch => 0009-mozjs-fix-coredump-caused-by-getenv.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{format-overflow.patch => 0010-format-overflow.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0001-To-fix-build-error-on-arm32BE.patch => 0011-To-fix-build-error-on-arm32BE.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{JS_PUBLIC_API.patch => 0012-JS_PUBLIC_API.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0001-riscv-Disable-atomic-operations.patch => 0013-riscv-Disable-atomic-operations.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{fallback-to-2011-C++-standard.patch => 0014-fallback-to-2011-C++-standard.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{ => mipsarchn32}/0001-fix-compiling-failure-on-mips64-n32-bsp.patch (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0006-support-musl.patch => musl/0001-support-musl.patch} (100%) rename meta-oe/recipes-extended/mozjs/mozjs/{0001-js-Fix-build-with-musl.patch => musl/0002-js-Fix-build-with-musl.patch} (100%) diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch b/meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch new file mode 100644 index 000000000..695dd97f6 --- /dev/null +++ b/meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch @@ -0,0 +1,6888 @@ +From 33a373ba41d978af60c2f0230bcba6ad27357ec8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +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 +--- + 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 | 16 +- + 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 <./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', + ) +- at imports(_from='__builtin__', _import='compile') +- at imports(_from='__builtin__', _import='open') ++ at imports(_from='builtins', _import='compile') ++ at 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): + ) + + +- at imports(_from='__builtin__', _import='open') ++ at 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') +- at imports(_from='__builtin__', _import='sorted') ++ at 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') +- at imports(_from='__builtin__', _import='min') ++ at imports(_from='builtins', _import='min') + def pgo_flags(compiler): + if compiler.type in ('gcc', 'clang'): + return namespace( +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. + + +- at 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') +- at imports(_from='__builtin__', _import='WindowsError') ++ at 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') +- at imports(_from='__builtin__', _import='ValueError') ++ at 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') +- at imports(_from='__builtin__', _import='sorted') +- at imports(_from='__builtin__', _import='WindowsError') ++ at imports(_from='builtins', _import='sorted') ++ at 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) +- at imports(_from='__builtin__', _import='sorted') ++ at 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') +- at imports(_from='__builtin__', _import='sorted') ++ at 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'(?` 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('" % (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('= 6 # https://bugzilla.redhat.com/show_bug.cgi?id=1328045 @@ -82,7 +85,7 @@ do_configure() { export SHELL="/bin/sh" cd ${S} # Add mozjs python-modules necessary - PYTHONPATH="$PYTHONPATH:${S}/config:${S}/build" + 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 @@ -96,7 +99,6 @@ do_configure() { cd ${S}/js/src autoconf213 --macrodir=${STAGING_DATADIR_NATIVE}/autoconf213 old-configure.in > old-configure - sed -i 's:refresh = True:refresh = False:g' ${S}/build/moz.configure/old.configure cd ${B} ${S}/js/src/configure ${EXTRA_OECONF} -- 2.21.0 From randy.macleod at windriver.com Sat Feb 1 17:14:32 2020 From: randy.macleod at windriver.com (Randy MacLeod) Date: Sat, 1 Feb 2020 12:14:32 -0500 Subject: [oe] [PATCH 2/4] poppler: upgrade 0.84.0 -> 0.84.0 In-Reply-To: <20200201163703.4264-3-schnitzeltony@gmail.com> References: <20200201163703.4264-1-schnitzeltony@gmail.com> <20200201163703.4264-3-schnitzeltony@gmail.com> Message-ID: <11ab5995-8055-2b57-caa9-93cabab79be7@windriver.com> Typo: Re: [oe] [PATCH 2/4] poppler: upgrade 0.84.0 -> 0.84.0 should be: Re: [oe] [PATCH 2/4] poppler: upgrade 0.84.0 -> 0.85.0 Thanks, ../Randy On 2/1/20 11:37 AM, Andreas M?ller wrote: > Release 0.85.0: > core: > * Fix case unsensitive search for Deseret and Osage. Issue #853 > * Fix crash in unicodeToAscii7 > * CairoOutputDev: make initialisation thread-safe > * Fix crash on broken files. Issues #869, #870 > * Internal code improvements > > qt5: > * Fix FormField::name encoding > * Accept UTF-16 uiNames for form fields > * Fix search for "complex" characters > * Allow to load document from QIODevice > > utils: > * pdftoppm/pdftocairo: Fix -e/-o printing the wrong pages. Issue #873 > * pdftohtml: Fix issue with the font size sometimes being huge > > glib: > * make the frontend initialization thread safe. > > Signed-off-by: Andreas M?ller > --- > .../poppler/{poppler_0.84.0.bb => poppler_0.85.0.bb} | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > rename meta-oe/recipes-support/poppler/{poppler_0.84.0.bb => poppler_0.85.0.bb} (93%) > > diff --git a/meta-oe/recipes-support/poppler/poppler_0.84.0.bb b/meta-oe/recipes-support/poppler/poppler_0.85.0.bb > similarity index 93% > rename from meta-oe/recipes-support/poppler/poppler_0.84.0.bb > rename to meta-oe/recipes-support/poppler/poppler_0.85.0.bb > index 5153868b6..857b67ff9 100644 > --- a/meta-oe/recipes-support/poppler/poppler_0.84.0.bb > +++ b/meta-oe/recipes-support/poppler/poppler_0.85.0.bb > @@ -7,8 +7,8 @@ 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] = "5315084523a4d73e9514f51eef78a332" > +SRC_URI[sha256sum] = "2bc875eb323002ae6b287e09980473518e2b2ed6b5b7d2e1089e36a6cd00d94b" > > DEPENDS = "fontconfig zlib cairo lcms glib-2.0" > -- # Randy MacLeod # Wind River Linux From raj.khem at gmail.com Sat Feb 1 17:25:33 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sat, 1 Feb 2020 09:25:33 -0800 Subject: [oe] [PATCH 2/4] poppler: upgrade 0.84.0 -> 0.84.0 In-Reply-To: <11ab5995-8055-2b57-caa9-93cabab79be7@windriver.com> References: <20200201163703.4264-1-schnitzeltony@gmail.com> <20200201163703.4264-3-schnitzeltony@gmail.com> <11ab5995-8055-2b57-caa9-93cabab79be7@windriver.com> Message-ID: I have fixed it already locally. On Sat, Feb 1, 2020 at 9:23 AM Randy MacLeod wrote: > > Typo: > > Re: [oe] [PATCH 2/4] poppler: upgrade 0.84.0 -> 0.84.0 > should be: > Re: [oe] [PATCH 2/4] poppler: upgrade 0.84.0 -> 0.85.0 > > Thanks, > ../Randy > > > On 2/1/20 11:37 AM, Andreas M?ller wrote: > > Release 0.85.0: > > core: > > * Fix case unsensitive search for Deseret and Osage. Issue #853 > > * Fix crash in unicodeToAscii7 > > * CairoOutputDev: make initialisation thread-safe > > * Fix crash on broken files. Issues #869, #870 > > * Internal code improvements > > > > qt5: > > * Fix FormField::name encoding > > * Accept UTF-16 uiNames for form fields > > * Fix search for "complex" characters > > * Allow to load document from QIODevice > > > > utils: > > * pdftoppm/pdftocairo: Fix -e/-o printing the wrong pages. Issue #873 > > * pdftohtml: Fix issue with the font size sometimes being huge > > > > glib: > > * make the frontend initialization thread safe. > > > > Signed-off-by: Andreas M?ller > > --- > > .../poppler/{poppler_0.84.0.bb => poppler_0.85.0.bb} | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > rename meta-oe/recipes-support/poppler/{poppler_0.84.0.bb => poppler_0.85.0.bb} (93%) > > > > diff --git a/meta-oe/recipes-support/poppler/poppler_0.84.0.bb b/meta-oe/recipes-support/poppler/poppler_0.85.0.bb > > similarity index 93% > > rename from meta-oe/recipes-support/poppler/poppler_0.84.0.bb > > rename to meta-oe/recipes-support/poppler/poppler_0.85.0.bb > > index 5153868b6..857b67ff9 100644 > > --- a/meta-oe/recipes-support/poppler/poppler_0.84.0.bb > > +++ b/meta-oe/recipes-support/poppler/poppler_0.85.0.bb > > @@ -7,8 +7,8 @@ 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] = "5315084523a4d73e9514f51eef78a332" > > +SRC_URI[sha256sum] = "2bc875eb323002ae6b287e09980473518e2b2ed6b5b7d2e1089e36a6cd00d94b" > > > > DEPENDS = "fontconfig zlib cairo lcms glib-2.0" > > > > > -- > # Randy MacLeod > # Wind River Linux > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From schnitzeltony at gmail.com Sat Feb 1 17:28:40 2020 From: schnitzeltony at gmail.com (=?UTF-8?Q?Andreas_M=C3=BCller?=) Date: Sat, 1 Feb 2020 18:28:40 +0100 Subject: [oe] [PATCH 2/4] poppler: upgrade 0.84.0 -> 0.84.0 In-Reply-To: References: <20200201163703.4264-1-schnitzeltony@gmail.com> <20200201163703.4264-3-schnitzeltony@gmail.com> <11ab5995-8055-2b57-caa9-93cabab79be7@windriver.com> Message-ID: On Sat, Feb 1, 2020 at 6:26 PM Khem Raj wrote: > > I have fixed it already locally. Thanks > > On Sat, Feb 1, 2020 at 9:23 AM Randy MacLeod > wrote: > > > > Typo: > > > > Re: [oe] [PATCH 2/4] poppler: upgrade 0.84.0 -> 0.84.0 > > should be: > > Re: [oe] [PATCH 2/4] poppler: upgrade 0.84.0 -> 0.85.0 LOL I have at least on like this in my series' > > > > Thanks, > > ../Randy > > > > > > On 2/1/20 11:37 AM, Andreas M?ller wrote: > > > Release 0.85.0: > > > core: > > > * Fix case unsensitive search for Deseret and Osage. Issue #853 > > > * Fix crash in unicodeToAscii7 > > > * CairoOutputDev: make initialisation thread-safe > > > * Fix crash on broken files. Issues #869, #870 > > > * Internal code improvements > > > > > > qt5: > > > * Fix FormField::name encoding > > > * Accept UTF-16 uiNames for form fields > > > * Fix search for "complex" characters > > > * Allow to load document from QIODevice > > > > > > utils: > > > * pdftoppm/pdftocairo: Fix -e/-o printing the wrong pages. Issue #873 > > > * pdftohtml: Fix issue with the font size sometimes being huge > > > > > > glib: > > > * make the frontend initialization thread safe. > > > > > > Signed-off-by: Andreas M?ller > > > --- > > > .../poppler/{poppler_0.84.0.bb => poppler_0.85.0.bb} | 4 ++-- > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > rename meta-oe/recipes-support/poppler/{poppler_0.84.0.bb => poppler_0.85.0.bb} (93%) > > > > > > diff --git a/meta-oe/recipes-support/poppler/poppler_0.84.0.bb b/meta-oe/recipes-support/poppler/poppler_0.85.0.bb > > > similarity index 93% > > > rename from meta-oe/recipes-support/poppler/poppler_0.84.0.bb > > > rename to meta-oe/recipes-support/poppler/poppler_0.85.0.bb > > > index 5153868b6..857b67ff9 100644 > > > --- a/meta-oe/recipes-support/poppler/poppler_0.84.0.bb > > > +++ b/meta-oe/recipes-support/poppler/poppler_0.85.0.bb > > > @@ -7,8 +7,8 @@ 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] = "5315084523a4d73e9514f51eef78a332" > > > +SRC_URI[sha256sum] = "2bc875eb323002ae6b287e09980473518e2b2ed6b5b7d2e1089e36a6cd00d94b" > > > > > > DEPENDS = "fontconfig zlib cairo lcms glib-2.0" > > > > > > > > > -- > > # Randy MacLeod > > # Wind River Linux > > > > -- > > _______________________________________________ > > Openembedded-devel mailing list > > Openembedded-devel at lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From raj.khem at gmail.com Sat Feb 1 17:49:55 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sat, 1 Feb 2020 09:49:55 -0800 Subject: [oe] [PATCH 1/4] mozjs: port build to python3 In-Reply-To: <20200201163703.4264-2-schnitzeltony@gmail.com> References: <20200201163703.4264-1-schnitzeltony@gmail.com> <20200201163703.4264-2-schnitzeltony@gmail.com> Message-ID: <9f2e4677-9acd-f0d7-2eda-140b954ae58f@gmail.com> Andreas Thanks a bunch for doing this work. This is a significant patch to support deprecating py2, I have put it through CI lets see what we find Cheers -Khem On 2/1/20 8:37 AM, Andreas M?ller wrote: > While at it: > > * cleanup our patches > * remove useless sed in do_configure > > Signed-off-by: Andreas M?ller > --- > .../mozjs/0001-Port-build-to-python3.patch | 6888 +++++++++++++++++ > ...nclude-RequiredDefines.h-for-depend.patch} | 0 > ...x-cross-compilation-on-i586-targets.patch} | 0 > ...04-do-not-create-python-environment.patch} | 0 > ....patch => 0005-fix-cannot-find-link.patch} | 0 > ...ound-autoconf-2.13-detection-failed.patch} | 0 > ... 0007-fix-do_compile-failed-on-mips.patch} | 0 > ...ort.patch => 0008-add-riscv-support.patch} | 0 > ...mozjs-fix-coredump-caused-by-getenv.patch} | 0 > ...rflow.patch => 0010-format-overflow.patch} | 0 > ... 0011-To-fix-build-error-on-arm32BE.patch} | 0 > ...LIC_API.patch => 0012-JS_PUBLIC_API.patch} | 0 > ...013-riscv-Disable-atomic-operations.patch} | 0 > ... 0014-fallback-to-2011-C++-standard.patch} | 0 > ...-compiling-failure-on-mips64-n32-bsp.patch | 0 > .../0001-support-musl.patch} | 0 > .../0002-js-Fix-build-with-musl.patch} | 0 > .../recipes-extended/mozjs/mozjs_60.9.0.bb | 56 +- > 18 files changed, 6917 insertions(+), 27 deletions(-) > create mode 100644 meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch > rename meta-oe/recipes-extended/mozjs/mozjs/{0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch => 0002-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch} (100%) > rename meta-oe/recipes-extended/mozjs/mozjs/{0010-fix-cross-compilation-on-i586-targets.patch => 0003-fix-cross-compilation-on-i586-targets.patch} (100%) > rename meta-oe/recipes-extended/mozjs/mozjs/{0001-do-not-create-python-environment.patch => 0004-do-not-create-python-environment.patch} (100%) > rename meta-oe/recipes-extended/mozjs/mozjs/{0002-fix-cannot-find-link.patch => 0005-fix-cannot-find-link.patch} (100%) > rename meta-oe/recipes-extended/mozjs/mozjs/{0003-workaround-autoconf-2.13-detection-failed.patch => 0006-workaround-autoconf-2.13-detection-failed.patch} (100%) > rename meta-oe/recipes-extended/mozjs/mozjs/{0005-fix-do_compile-failed-on-mips.patch => 0007-fix-do_compile-failed-on-mips.patch} (100%) > rename meta-oe/recipes-extended/mozjs/mozjs/{add-riscv-support.patch => 0008-add-riscv-support.patch} (100%) > rename meta-oe/recipes-extended/mozjs/mozjs/{0001-mozjs-fix-coredump-caused-by-getenv.patch => 0009-mozjs-fix-coredump-caused-by-getenv.patch} (100%) > rename meta-oe/recipes-extended/mozjs/mozjs/{format-overflow.patch => 0010-format-overflow.patch} (100%) > rename meta-oe/recipes-extended/mozjs/mozjs/{0001-To-fix-build-error-on-arm32BE.patch => 0011-To-fix-build-error-on-arm32BE.patch} (100%) > rename meta-oe/recipes-extended/mozjs/mozjs/{JS_PUBLIC_API.patch => 0012-JS_PUBLIC_API.patch} (100%) > rename meta-oe/recipes-extended/mozjs/mozjs/{0001-riscv-Disable-atomic-operations.patch => 0013-riscv-Disable-atomic-operations.patch} (100%) > rename meta-oe/recipes-extended/mozjs/mozjs/{fallback-to-2011-C++-standard.patch => 0014-fallback-to-2011-C++-standard.patch} (100%) > rename meta-oe/recipes-extended/mozjs/mozjs/{ => mipsarchn32}/0001-fix-compiling-failure-on-mips64-n32-bsp.patch (100%) > rename meta-oe/recipes-extended/mozjs/mozjs/{0006-support-musl.patch => musl/0001-support-musl.patch} (100%) > rename meta-oe/recipes-extended/mozjs/mozjs/{0001-js-Fix-build-with-musl.patch => musl/0002-js-Fix-build-with-musl.patch} (100%) > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch b/meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch > new file mode 100644 > index 000000000..695dd97f6 > --- /dev/null > +++ b/meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch > @@ -0,0 +1,6888 @@ > +From 33a373ba41d978af60c2f0230bcba6ad27357ec8 Mon Sep 17 00:00:00 2001 > +From: =?UTF-8?q?Andreas=20M=C3=BCller?= > +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 > +--- > + 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 | 16 +- > + 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 < + > +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') > +- at imports(_from='__builtin__', _import='ValueError') > ++ at 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') > +- at imports(_from='__builtin__', _import='open') > ++ at 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 > +- at imports(_from='__builtin__', _import='Exception') > ++ at 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') > +- at imports(_from='__builtin__', _import='open') > ++ at 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') > +- at imports(_from='__builtin__', _import='Exception') > ++ at 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') > +- at imports(_from='__builtin__', _import='KeyError') > +- at imports(_from='__builtin__', _import='ValueError') > ++ at imports(_from='builtins', _import='KeyError') > ++ at 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') > +- at imports(_from='__builtin__', _import='open') > ++ at 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) > +- at imports(_from='__builtin__', _import='open') > +- at imports(_from='__builtin__', _import='print') > +- at imports(_from='__builtin__', _import='sorted') > ++ at imports(_from='builtins', _import='open') > ++ at imports(_from='builtins', _import='print') > ++ at 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', > + ) > +- at imports(_from='__builtin__', _import='compile') > +- at imports(_from='__builtin__', _import='open') > ++ at imports(_from='builtins', _import='compile') > ++ at 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): > + ) > + > + > +- at imports(_from='__builtin__', _import='open') > ++ at 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') > +- at imports(_from='__builtin__', _import='sorted') > ++ at 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') > +- at imports(_from='__builtin__', _import='min') > ++ at imports(_from='builtins', _import='min') > + def pgo_flags(compiler): > + if compiler.type in ('gcc', 'clang'): > + return namespace( > +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. > + > + > +- at 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') > +- at imports(_from='__builtin__', _import='WindowsError') > ++ at 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') > +- at imports(_from='__builtin__', _import='ValueError') > ++ at 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') > +- at imports(_from='__builtin__', _import='sorted') > +- at imports(_from='__builtin__', _import='WindowsError') > ++ at imports(_from='builtins', _import='sorted') > ++ at 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) > +- at imports(_from='__builtin__', _import='sorted') > ++ at 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') > +- at imports(_from='__builtin__', _import='sorted') > ++ at 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'(? + > + # 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 `` 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(' +- 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(' +- 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-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch b/meta-oe/recipes-extended/mozjs/mozjs/0002-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch > similarity index 100% > rename from meta-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch > rename to meta-oe/recipes-extended/mozjs/mozjs/0002-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch b/meta-oe/recipes-extended/mozjs/mozjs/0003-fix-cross-compilation-on-i586-targets.patch > similarity index 100% > rename from meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch > rename to meta-oe/recipes-extended/mozjs/mozjs/0003-fix-cross-compilation-on-i586-targets.patch > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-do-not-create-python-environment.patch b/meta-oe/recipes-extended/mozjs/mozjs/0004-do-not-create-python-environment.patch > similarity index 100% > rename from meta-oe/recipes-extended/mozjs/mozjs/0001-do-not-create-python-environment.patch > rename to meta-oe/recipes-extended/mozjs/mozjs/0004-do-not-create-python-environment.patch > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0002-fix-cannot-find-link.patch b/meta-oe/recipes-extended/mozjs/mozjs/0005-fix-cannot-find-link.patch > similarity index 100% > rename from meta-oe/recipes-extended/mozjs/mozjs/0002-fix-cannot-find-link.patch > rename to meta-oe/recipes-extended/mozjs/mozjs/0005-fix-cannot-find-link.patch > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0003-workaround-autoconf-2.13-detection-failed.patch b/meta-oe/recipes-extended/mozjs/mozjs/0006-workaround-autoconf-2.13-detection-failed.patch > similarity index 100% > rename from meta-oe/recipes-extended/mozjs/mozjs/0003-workaround-autoconf-2.13-detection-failed.patch > rename to meta-oe/recipes-extended/mozjs/mozjs/0006-workaround-autoconf-2.13-detection-failed.patch > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0005-fix-do_compile-failed-on-mips.patch b/meta-oe/recipes-extended/mozjs/mozjs/0007-fix-do_compile-failed-on-mips.patch > similarity index 100% > rename from meta-oe/recipes-extended/mozjs/mozjs/0005-fix-do_compile-failed-on-mips.patch > rename to meta-oe/recipes-extended/mozjs/mozjs/0007-fix-do_compile-failed-on-mips.patch > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/add-riscv-support.patch b/meta-oe/recipes-extended/mozjs/mozjs/0008-add-riscv-support.patch > similarity index 100% > rename from meta-oe/recipes-extended/mozjs/mozjs/add-riscv-support.patch > rename to meta-oe/recipes-extended/mozjs/mozjs/0008-add-riscv-support.patch > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs-fix-coredump-caused-by-getenv.patch b/meta-oe/recipes-extended/mozjs/mozjs/0009-mozjs-fix-coredump-caused-by-getenv.patch > similarity index 100% > rename from meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs-fix-coredump-caused-by-getenv.patch > rename to meta-oe/recipes-extended/mozjs/mozjs/0009-mozjs-fix-coredump-caused-by-getenv.patch > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/format-overflow.patch b/meta-oe/recipes-extended/mozjs/mozjs/0010-format-overflow.patch > similarity index 100% > rename from meta-oe/recipes-extended/mozjs/mozjs/format-overflow.patch > rename to meta-oe/recipes-extended/mozjs/mozjs/0010-format-overflow.patch > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-To-fix-build-error-on-arm32BE.patch b/meta-oe/recipes-extended/mozjs/mozjs/0011-To-fix-build-error-on-arm32BE.patch > similarity index 100% > rename from meta-oe/recipes-extended/mozjs/mozjs/0001-To-fix-build-error-on-arm32BE.patch > rename to meta-oe/recipes-extended/mozjs/mozjs/0011-To-fix-build-error-on-arm32BE.patch > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/JS_PUBLIC_API.patch b/meta-oe/recipes-extended/mozjs/mozjs/0012-JS_PUBLIC_API.patch > similarity index 100% > rename from meta-oe/recipes-extended/mozjs/mozjs/JS_PUBLIC_API.patch > rename to meta-oe/recipes-extended/mozjs/mozjs/0012-JS_PUBLIC_API.patch > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-riscv-Disable-atomic-operations.patch b/meta-oe/recipes-extended/mozjs/mozjs/0013-riscv-Disable-atomic-operations.patch > similarity index 100% > rename from meta-oe/recipes-extended/mozjs/mozjs/0001-riscv-Disable-atomic-operations.patch > rename to meta-oe/recipes-extended/mozjs/mozjs/0013-riscv-Disable-atomic-operations.patch > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/fallback-to-2011-C++-standard.patch b/meta-oe/recipes-extended/mozjs/mozjs/0014-fallback-to-2011-C++-standard.patch > similarity index 100% > rename from meta-oe/recipes-extended/mozjs/mozjs/fallback-to-2011-C++-standard.patch > rename to meta-oe/recipes-extended/mozjs/mozjs/0014-fallback-to-2011-C++-standard.patch > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-fix-compiling-failure-on-mips64-n32-bsp.patch b/meta-oe/recipes-extended/mozjs/mozjs/mipsarchn32/0001-fix-compiling-failure-on-mips64-n32-bsp.patch > similarity index 100% > rename from meta-oe/recipes-extended/mozjs/mozjs/0001-fix-compiling-failure-on-mips64-n32-bsp.patch > rename to meta-oe/recipes-extended/mozjs/mozjs/mipsarchn32/0001-fix-compiling-failure-on-mips64-n32-bsp.patch > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0006-support-musl.patch b/meta-oe/recipes-extended/mozjs/mozjs/musl/0001-support-musl.patch > similarity index 100% > rename from meta-oe/recipes-extended/mozjs/mozjs/0006-support-musl.patch > rename to meta-oe/recipes-extended/mozjs/mozjs/musl/0001-support-musl.patch > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-js-Fix-build-with-musl.patch b/meta-oe/recipes-extended/mozjs/mozjs/musl/0002-js-Fix-build-with-musl.patch > similarity index 100% > rename from meta-oe/recipes-extended/mozjs/mozjs/0001-js-Fix-build-with-musl.patch > rename to meta-oe/recipes-extended/mozjs/mozjs/musl/0002-js-Fix-build-with-musl.patch > diff --git a/meta-oe/recipes-extended/mozjs/mozjs_60.9.0.bb b/meta-oe/recipes-extended/mozjs/mozjs_60.9.0.bb > index 4f2da492f..9466c62aa 100644 > --- a/meta-oe/recipes-extended/mozjs/mozjs_60.9.0.bb > +++ b/meta-oe/recipes-extended/mozjs/mozjs_60.9.0.bb > @@ -3,42 +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://archive.mozilla.org/pub/firefox/releases/${PV}esr/source/firefox-${PV}esr.source.tar.xz \ > - 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://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 \ > - " > + 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 ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "pythonnative", "", d)} > +inherit autotools pkgconfig perlnative python3native > > inherit features_check > CONFLICT_DISTRO_FEATURES_mipsarchn32 = "ld-is-gold" > > -DEPENDS += "nspr zlib autoconf-2.13-native \ > - 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 > @@ -82,7 +85,7 @@ do_configure() { > export SHELL="/bin/sh" > cd ${S} > # Add mozjs python-modules necessary > - PYTHONPATH="$PYTHONPATH:${S}/config:${S}/build" > + 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 > @@ -96,7 +99,6 @@ do_configure() { > > cd ${S}/js/src > autoconf213 --macrodir=${STAGING_DATADIR_NATIVE}/autoconf213 old-configure.in > old-configure > - sed -i 's:refresh = True:refresh = False:g' ${S}/build/moz.configure/old.configure > > cd ${B} > ${S}/js/src/configure ${EXTRA_OECONF} > From Trevor.Gamblin at windriver.com Sat Feb 1 20:20:02 2020 From: Trevor.Gamblin at windriver.com (Trevor Gamblin) Date: Sat, 1 Feb 2020 15:20:02 -0500 Subject: [oe] [meta-python][PATCH] python3-pexpect: upgrade 4.7.0 -> 4.8.0 Message-ID: <20200201202002.14728-1-Trevor.Gamblin@windriver.com> From: Trevor Gamblin Signed-off-by: Trevor Gamblin --- meta-python/recipes-devtools/python/python-pexpect.inc | 4 ++-- .../{python3-pexpect_4.7.0.bb => python3-pexpect_4.8.0.bb} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename meta-python/recipes-devtools/python/{python3-pexpect_4.7.0.bb => python3-pexpect_4.8.0.bb} (100%) diff --git a/meta-python/recipes-devtools/python/python-pexpect.inc b/meta-python/recipes-devtools/python/python-pexpect.inc index 6d78eb94d..f02aa994e 100644 --- a/meta-python/recipes-devtools/python/python-pexpect.inc +++ b/meta-python/recipes-devtools/python/python-pexpect.inc @@ -4,8 +4,8 @@ SECTION = "devel/python" LICENSE = "ISC" LIC_FILES_CHKSUM = "file://LICENSE;md5=1c7a725251880af8c6a148181665385b" -SRC_URI[md5sum] = "ed003242cbf308aee1b1eaecdef59e43" -SRC_URI[sha256sum] = "9e2c1fd0e6ee3a49b28f95d4b33bc389c89b20af6a1255906e90ff1262ce62eb" +SRC_URI[md5sum] = "153eb25184249d6a85fde9acf4804085" +SRC_URI[sha256sum] = "fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c" UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/pexpect" diff --git a/meta-python/recipes-devtools/python/python3-pexpect_4.7.0.bb b/meta-python/recipes-devtools/python/python3-pexpect_4.8.0.bb similarity index 100% rename from meta-python/recipes-devtools/python/python3-pexpect_4.7.0.bb rename to meta-python/recipes-devtools/python/python3-pexpect_4.8.0.bb -- 2.24.1 From alistair at alistair23.me Sun Feb 2 02:04:26 2020 From: alistair at alistair23.me (Alistair Francis) Date: Sat, 1 Feb 2020 18:04:26 -0800 Subject: [oe] [PATCH] gpsd: Only require and build for Python3 Message-ID: <20200202020426.23802-1-alistair@alistair23.me> Signed-off-by: Alistair Francis --- meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb b/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb index dbbc7140f..5e91ec5d7 100644 --- a/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb +++ b/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 \ @@ -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" +RDEPENDS_gps-utils = "python3-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 \ + python3-core \ + python3-io \ + python3-threading \ + python3-terminal \ gpsd \ - python-json" + python3-json" RPROVIDES_${PN} += "${PN}-systemd" RREPLACES_${PN} += "${PN}-systemd" -- 2.25.0 From alistair at alistair23.me Sun Feb 2 02:17:38 2020 From: alistair at alistair23.me (Alistair Francis) Date: Sat, 1 Feb 2020 18:17:38 -0800 Subject: [oe] [PATCH v2] gpsd: Only require and build for Python3 Message-ID: <20200202021738.7440-1-alistair@alistair23.me> Signed-off-by: Alistair Francis --- v2: - Actually rename everything meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb | 24 ++++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb b/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb index dbbc7140f..f74ebda5f 100644 --- a/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb +++ b/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 \ @@ -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" -- 2.25.0 From max.oss.09 at gmail.com Sun Feb 2 15:15:22 2020 From: max.oss.09 at gmail.com (Max Krummenacher) Date: Sun, 2 Feb 2020 16:15:22 +0100 Subject: [oe] [meta-oe][PATCH] openbox: use python 3 Message-ID: <20200202151522.25732-1-max.krummenacher@toradex.com> Signed-off-by: Max Krummenacher --- ...box-xdg-autostart-convert-to-python3.patch | 138 ++++++++++++++++++ .../recipes-graphics/openbox/openbox_3.6.1.bb | 3 +- 2 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 meta-oe/recipes-graphics/openbox/files/0001-openbox-xdg-autostart-convert-to-python3.patch diff --git a/meta-oe/recipes-graphics/openbox/files/0001-openbox-xdg-autostart-convert-to-python3.patch b/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-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 +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 +--- + 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-oe/recipes-graphics/openbox/openbox_3.6.1.bb b/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb index 33f34e428..e269a264f 100644 --- a/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb +++ b/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" -- 2.20.1 From robert.joslyn at redrectangle.org Mon Feb 3 05:13:29 2020 From: robert.joslyn at redrectangle.org (Robert Joslyn) Date: Sun, 02 Feb 2020 21:13:29 -0800 Subject: [oe] [meta-oe][PATCH 2/3] iwd: Add PACKAGECONFIG options In-Reply-To: References: <20200131212057.1856967-1-robert.joslyn@redrectangle.org> <20200131212057.1856967-2-robert.joslyn@redrectangle.org> Message-ID: <7c6f9f3a624756a9d18ef9da14d83412d8bfec70.camel@redrectangle.org> On Sat, 2020-02-01 at 15:25 +0000, Alex Kiernan wrote: > On Fri, Jan 31, 2020 at 9:45 PM Robert Joslyn > wrote: > > Make it easier to disable optional client, monitor, and man page > > components and their dependencies. A user may want to disable the > > client > > to avoid the use of GPLv3 readline. > > > > Signed-off-by: Robert Joslyn > > --- > > meta-oe/recipes-connectivity/iwd/iwd_1.4.bb | 14 ++++++++++++-- > > 1 file changed, 12 insertions(+), 2 deletions(-) > > > > diff --git a/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb b/meta- > > oe/recipes-connectivity/iwd/iwd_1.4.bb > > index 49fc45a74..a023c0d28 100644 > > --- a/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb > > +++ b/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb > > @@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = " > > file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" > > > > inherit autotools pkgconfig systemd python3native > > > > -DEPENDS = "ell readline python3-docutils-native" > > +DEPENDS = "ell" > > > > SRC_URI = "git://git.kernel.org/pub/scm/network/wireless/iwd.git \ > > file://0001-Makefile.am-Avoid-redirection-of-input-and- > > output-fi.patch \ > > @@ -12,7 +12,15 @@ SRC_URI = > > "git://git.kernel.org/pub/scm/network/wireless/iwd.git \ > > SRCREV = "860fa4697f349da7791ecf22ca76f9ac0e5de261" > > S = "${WORKDIR}/git" > > > > -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', > > d)}" > > +PACKAGECONFIG ??= " \ > > + client \ > > + monitor \ > > + manual-pages \ > > + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ > > +" > > +PACKAGECONFIG[client] = "--enable-client,--disable-client,readline" > > +PACKAGECONFIG[monitor] = "--enable-monitor,--disable-monitor" > > +PACKAGECONFIG[manual-pages] = "--enable-manual-pages,--disable- > > manual-pages,python3-docutils-native" > > If you make this PACKAGECONFIG[manpages], inherit manpages and drop it > from the default PACKAGECONFIG you'll automatically get documentation > driven by the api-documentation distro feature. Though at that > possibly it should be a separate commit. > > Maybe just /manual-pages/manpages/ as that's a common name? That's a good idea. I wasn't familiar with that class, but I'll add that in the v2. Thanks, Robert > > PACKAGECONFIG[wired] = "--enable-wired,--disable-wired" > > PACKAGECONFIG[ofono] = "--enable-ofono,--disable-ofono" > > PACKAGECONFIG[systemd] = "--with-systemd- > > unitdir=${systemd_system_unitdir},--disable-systemd-service,systemd" > > @@ -26,6 +34,8 @@ do_configure_prepend () { > > do_install_append() { > > mkdir --parents ${D}${docdir}/${BPN} > > install -m644 ${S}/doc/*.txt ${D}${docdir}/${BPN} > > + # 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/" > > -- > > 2.24.1 > > > > -- > > _______________________________________________ > > Openembedded-devel mailing list > > Openembedded-devel at lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > > From raj.khem at gmail.com Mon Feb 3 06:17:55 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sun, 2 Feb 2020 22:17:55 -0800 Subject: [oe] [meta-oe][PATCH 1/2] recipes: Inherit perlnative for pod2man Message-ID: <20200203061756.2643196-1-raj.khem@gmail.com> replace host version of pod2man perl-native provides, helps in improving reproducability Signed-off-by: Khem Raj --- meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb | 2 +- meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb | 2 +- meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb | 2 +- meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.26.bb | 2 +- meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb b/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb index 41b4d0d309..7871801b6b 100644 --- a/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb +++ b/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-oe/recipes-extended/triggerhappy/triggerhappy_git.bb b/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb index 24df750e01..38ce4f5571 100644 --- a/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb +++ b/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-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb b/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb index aeae071dcb..259c640523 100644 --- a/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb +++ b/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-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.26.bb b/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.26.bb index fb8c4a202f..91d77ac938 100644 --- a/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.26.bb +++ b/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.26.bb @@ -17,7 +17,7 @@ SRC_URI = "\ SRC_URI[md5sum] = "9d36882998449daceec267c68a21ff0d" SRC_URI[sha256sum] = "3eb7be7d6ef618c0a444316cf5c1f2f9d7227aedba7a192f389fe3e7c0dfbbd9" -inherit autotools systemd pkgconfig +inherit autotools systemd pkgconfig perlnative EXTRA_OECONF = " \ --disable-libusb \ diff --git a/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb b/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb index aefe3627eb..efe95b1019 100644 --- a/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb +++ b/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. -- 2.25.0 From raj.khem at gmail.com Mon Feb 3 06:17:56 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sun, 2 Feb 2020 22:17:56 -0800 Subject: [oe] [meta-networking][PATCH 2/2] recipes: Inherit perlnative for pod2man In-Reply-To: <20200203061756.2643196-1-raj.khem@gmail.com> References: <20200203061756.2643196-1-raj.khem@gmail.com> Message-ID: <20200203061756.2643196-2-raj.khem@gmail.com> replace host version of pod2man perl-native provides, helps in improving reproducability Signed-off-by: Khem Raj --- .../recipes-protocols/pptp-linux/pptp-linux_1.10.0.bb | 2 ++ meta-networking/recipes-support/netcf/netcf_0.2.8.bb | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.10.0.bb b/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.10.0.bb index 3221581466..53a79af76d 100644 --- a/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.10.0.bb +++ b/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.10.0.bb @@ -9,6 +9,8 @@ SECTION = "net" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +inherit perlnative + SRC_URI = "${SOURCEFORGE_MIRROR}/sourceforge/pptpclient/pptp-${PV}.tar.gz \ file://options.pptp \ " diff --git a/meta-networking/recipes-support/netcf/netcf_0.2.8.bb b/meta-networking/recipes-support/netcf/netcf_0.2.8.bb index c57e7d4714..a180571f2d 100644 --- a/meta-networking/recipes-support/netcf/netcf_0.2.8.bb +++ b/meta-networking/recipes-support/netcf/netcf_0.2.8.bb @@ -20,7 +20,7 @@ do_configure[depends] += "${MLPREFIX}gnulib:do_populate_sysroot" S = "${WORKDIR}/git" -inherit gettext autotools pkgconfig systemd +inherit gettext autotools perlnative pkgconfig systemd EXTRA_OECONF_append_class-target = " --with-driver=redhat" -- 2.25.0 From raj.khem at gmail.com Mon Feb 3 19:36:35 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 3 Feb 2020 11:36:35 -0800 Subject: [oe] [meta-python2][PATCH] python-six: Update to 1.14.0 Message-ID: <20200203193635.2253-1-raj.khem@gmail.com> Have its own checksums so its not tightly coupled to versions from oe-core Signed-off-by: Khem Raj --- recipes-devtools/python/python-six_1.13.0.bb | 2 -- recipes-devtools/python/python-six_1.14.0.bb | 6 ++++++ 2 files changed, 6 insertions(+), 2 deletions(-) delete mode 100644 recipes-devtools/python/python-six_1.13.0.bb create mode 100644 recipes-devtools/python/python-six_1.14.0.bb diff --git a/recipes-devtools/python/python-six_1.13.0.bb b/recipes-devtools/python/python-six_1.13.0.bb deleted file mode 100644 index af26e83..0000000 --- a/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/recipes-devtools/python/python-six_1.14.0.bb b/recipes-devtools/python/python-six_1.14.0.bb new file mode 100644 index 0000000..779883a --- /dev/null +++ b/recipes-devtools/python/python-six_1.14.0.bb @@ -0,0 +1,6 @@ +inherit pypi setuptools +require recipes-devtools/python/python-six.inc + +SRC_URI[md5sum] = "21674588a57e649d1a6d977ec3122140" +SRC_URI[sha256sum] = "236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a" + -- 2.25.0 From trini at konsulko.com Mon Feb 3 20:08:32 2020 From: trini at konsulko.com (Tom Rini) Date: Mon, 3 Feb 2020 15:08:32 -0500 Subject: [oe] [meta-networking][PATCH] nng: Add recipe Message-ID: <20200203200832.23030-1-trini@konsulko.com> nng is the nanomsg project's rewrite of their libnanomsg library. Just like nanomsg it is a socket library that provides several common communication patterns. Unlike nanomsg it does not normally provide a number of tools and we do not attempt to add them here. We allow for optional mbedtls support. Signed-off-by: Tom Rini --- Notes: - nng is not a 1-to-1 replacement for nanomsg and does provide different runtime files, so we do not conflict/etc with them. - nng does support cross-compilation of tools but I'm leaving this out as I can't test that currently and it is non-default. - As it's part of the nanomsg project I am putting this under the nanomsg folder, but I don't have strong preferences here. --- .../recipes-connectivity/nanomsg/nng_1.2.5.bb | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 meta-networking/recipes-connectivity/nanomsg/nng_1.2.5.bb diff --git a/meta-networking/recipes-connectivity/nanomsg/nng_1.2.5.bb b/meta-networking/recipes-connectivity/nanomsg/nng_1.2.5.bb new file mode 100644 index 000000000000..77be27ffaa5b --- /dev/null +++ b/meta-networking/recipes-connectivity/nanomsg/nng_1.2.5.bb @@ -0,0 +1,21 @@ +SUMMARY = "nanomsg-next-generation -- light-weight brokerless messaging" +DESCRIPTION = "NNG, like its predecessors nanomsg (and to some extent ZeroMQ), is a lightweight, broker-less library, offering a simple API to solve common recurring messaging problems, such as publish/subscribe, RPC-style request/reply, or service discovery." +HOMEPAGE = "https://github.com/nanomsg/nng" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a19b15be6e844b39a54de2ef665bd6de" + +SECTION = "libs/networking" + +SRCREV = "53ae1a5ab37fdfc9ad5c236df3eaf4dd63f0fee9" + +SRC_URI = "git://github.com/nanomsg/nng.git;branch=v1.2.x" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig + +EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON" + +PACKAGECONFIG ??= "" + +PACKAGECONFIG[mbedtls] = "-DNNG_ENABLE_TLS=ON,-DNNG_ENABLE_TLS=OFF,mbedtls" -- 2.17.1 From stefan at agner.ch Mon Feb 3 22:17:12 2020 From: stefan at agner.ch (Stefan Agner) Date: Mon, 03 Feb 2020 23:17:12 +0100 Subject: [oe] systemd failing in master with Assertion clock_gettime(map_clock_id(clock_id), &ts) failed In-Reply-To: References: <92e2dcc5-6107-e05f-87f4-161b8132266e@gmail.com> Message-ID: Hi All, On 2020-01-27 16:14, Alex Kiernan wrote: > On Fri, Jan 24, 2020 at 12:22 AM Khem Raj wrote: >> >> On 1/23/20 4:13 PM, Alex Kiernan wrote: >> > On Thu, Jan 23, 2020 at 10:09 AM Andreas M?ller wrote: >> >> >> >> On Thu, Jan 23, 2020 at 10:43 AM Alex Kiernan wrote: >> >>> >> >>> On the offchance someone's tripped over this already/has pointers: >> >>> >> >>> Around the time python2 dropped out, I'm now seeing boot failures with: >> >>> >> >>> [ 612.151548] systemd-journald[543]: Assertion >> >>> 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at >> >>> src/basic/time-util.c:55, function now(). Aborting. >> >>> >> >>> I suspect it's unrelated to py2, but that's delayed me getting to the problem. >> >>> >> >>> The board I'm targetting is AM335x based, but without an RTC (which I >> >>> suspect may be relevant). >> >>> >> >>> Anyone seen anything similar? >> >>> >> >>> -- >> >>> Alex Kiernan >> >> Hi Alex, >> >> >> >> Have not seen that one yet. Will look for it once I can build images >> >> in current environment (python2/Qt5.14 broke loads for me). What I >> >> have seen were problems with timedatectl <-> ntp. Changing from local >> >> time to ntp-sync did not work: Time remained un-synced on recent >> >> images. Machine was Raspi so no RTC either. >> >> >> >> Don't know if this is related to your finding... >> >> >> > >> > Looks like it's related to the glibc bump - reverting that changeset >> > gets it booting again. I struggle to figure out which of the myriad >> > wrappers are actually being used from inspecting the glibc source, but >> > if it's the one I think it is, there's clearly >> > clock_gettime/clock_gettime64 changes there which I doubt my kernel >> > has (we're currently using the TI 4.19.y kernel). >> >> Is it possible for you to try 5.x for tests ? > > That's where I went first, though I need to bring up the newer TI 5.4 > branch first (which has its own problems as there's some patch which > was in the 4.9.y hsmmc driver which isn't in the latest which causes > random timeouts on some of our board samples). > I am seeing this on master branch too on a Toradex Apalis iMX6 (i.MX 6Dual to be specfic) running a mainline kernel 5.4.2. We do have a RTC and according to dmesg the time has been read from it successfully and correctly. We do have a second (the SoC internal) which actually might be not correctly set, I haven't checked. It seems systemd-journald which is tripping, but later also systemd-udevd: [ 5.749612] systemd-journald[510]: Assertion 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at src/basic/time-util.c:55, function now(). Aborting. [ 6.433771] systemd-journald[534]: Assertion 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at src/basic/time-util.c:55, function now(). Aborting. [ 6.934304] systemd-journald[536]: Assertion 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at src/basic/time-util.c:55, function now(). Aborting. [ 7.379449] systemd-journald[538]: Assertion 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at src/basic/time-util.c:55, function now(). Aborting. [ 7.763130] systemd-journald[539]: Assertion 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at src/basic/time-util.c:55, function now(). Aborting. ... [ 8.402258] systemd-udevd[542]: Assertion 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at src/basic/time-util.c:55, function now(). Aborting. We do have +SECCOMP, and also here commenting out "SystemCallFilter=@system-service" seems to help. strace seems to point to clock_gettime64: connect(17, {sa_family=AF_UNIX, sun_path="/run/systemd/notify"}, 22) = 0 epoll_ctl(7, EPOLL_CTL_ADD, 17, {EPOLLOUT, {u32=18865912, u64=18865912}}) = 0 getuid32() = 0 getgid32() = 0 openat(AT_FDCWD, "/proc/meminfo", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 18 fstat64(18, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 read(18, "MemTotal: 1023560 kB\nMemF"..., 1024) = 1024 ioctl(18, TCGETS, 0xbeef46f4) = -1 ENOTTY (Inappropriate ioctl for device) ioctl(18, TCGETS, 0xbeef46f4) = -1 ENOTTY (Inappropriate ioctl for device) close(18) = 0 ugetrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0 clock_gettime64(CLOCK_MONOTONIC, 0xbeef47b0) = -1 EPERM (Operation not permitted) ioctl(2, TCGETS, 0xbeef472c) = -1 ENOTTY (Inappropriate ioctl for device) writev(6, [{iov_base="<42>", iov_len=4}, {iov_base="systemd-journald", iov_len=16}, {iov_base="[1007]: ", iov_len=8}, {iov_base="Assertion 'clock_gettime(map_clo"..., iov_len=121}, {iov_base="\n", iov_len=1}], 5) = 150 rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [INT USR1 USR2 TERM RT_3], 8) = 0 -- Stefan From alex.kiernan at gmail.com Mon Feb 3 22:37:51 2020 From: alex.kiernan at gmail.com (Alex Kiernan) Date: Mon, 3 Feb 2020 22:37:51 +0000 Subject: [oe] systemd failing in master with Assertion clock_gettime(map_clock_id(clock_id), &ts) failed In-Reply-To: References: <92e2dcc5-6107-e05f-87f4-161b8132266e@gmail.com> Message-ID: On Mon, Feb 3, 2020 at 10:17 PM Stefan Agner wrote: > > Hi All, > > On 2020-01-27 16:14, Alex Kiernan wrote: > > On Fri, Jan 24, 2020 at 12:22 AM Khem Raj wrote: > >> > >> On 1/23/20 4:13 PM, Alex Kiernan wrote: > >> > On Thu, Jan 23, 2020 at 10:09 AM Andreas M?ller wrote: > >> >> > >> >> On Thu, Jan 23, 2020 at 10:43 AM Alex Kiernan wrote: > >> >>> > >> >>> On the offchance someone's tripped over this already/has pointers: > >> >>> > >> >>> Around the time python2 dropped out, I'm now seeing boot failures with: > >> >>> > >> >>> [ 612.151548] systemd-journald[543]: Assertion > >> >>> 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at > >> >>> src/basic/time-util.c:55, function now(). Aborting. > >> >>> > >> >>> I suspect it's unrelated to py2, but that's delayed me getting to the problem. > >> >>> > >> >>> The board I'm targetting is AM335x based, but without an RTC (which I > >> >>> suspect may be relevant). > >> >>> > >> >>> Anyone seen anything similar? > >> >>> > >> >>> -- > >> >>> Alex Kiernan > >> >> Hi Alex, > >> >> > >> >> Have not seen that one yet. Will look for it once I can build images > >> >> in current environment (python2/Qt5.14 broke loads for me). What I > >> >> have seen were problems with timedatectl <-> ntp. Changing from local > >> >> time to ntp-sync did not work: Time remained un-synced on recent > >> >> images. Machine was Raspi so no RTC either. > >> >> > >> >> Don't know if this is related to your finding... > >> >> > >> > > >> > Looks like it's related to the glibc bump - reverting that changeset > >> > gets it booting again. I struggle to figure out which of the myriad > >> > wrappers are actually being used from inspecting the glibc source, but > >> > if it's the one I think it is, there's clearly > >> > clock_gettime/clock_gettime64 changes there which I doubt my kernel > >> > has (we're currently using the TI 4.19.y kernel). > >> > >> Is it possible for you to try 5.x for tests ? > > > > That's where I went first, though I need to bring up the newer TI 5.4 > > branch first (which has its own problems as there's some patch which > > was in the 4.9.y hsmmc driver which isn't in the latest which causes > > random timeouts on some of our board samples). > > > > I am seeing this on master branch too on a Toradex Apalis iMX6 (i.MX > 6Dual to be specfic) running a mainline kernel 5.4.2. > > We do have a RTC and according to dmesg the time has been read from it > successfully and correctly. We do have a second (the SoC internal) which > actually might be not correctly set, I haven't checked. > > It seems systemd-journald which is tripping, but later also > systemd-udevd: > [ 5.749612] systemd-journald[510]: Assertion > 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at > src/basic/time-util.c:55, function now(). Aborting. > [ 6.433771] systemd-journald[534]: Assertion > 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at > src/basic/time-util.c:55, function now(). Aborting. > [ 6.934304] systemd-journald[536]: Assertion > 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at > src/basic/time-util.c:55, function now(). Aborting. > [ 7.379449] systemd-journald[538]: Assertion > 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at > src/basic/time-util.c:55, function now(). Aborting. > [ 7.763130] systemd-journald[539]: Assertion > 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at > src/basic/time-util.c:55, function now(). Aborting. > ... > [ 8.402258] systemd-udevd[542]: Assertion > 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at > src/basic/time-util.c:55, function now(). Aborting. > > We do have +SECCOMP, and also here commenting out > "SystemCallFilter=@system-service" seems to help. > > strace seems to point to clock_gettime64: > That fits with systemd-243.4 fixing it - there's a commit in there which adds clock_gettime64 to @system-service. -- Alex Kiernan From raj.khem at gmail.com Mon Feb 3 23:54:52 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 3 Feb 2020 15:54:52 -0800 Subject: [oe] [meta-multimedia][PATCH] vlc: Link with libatomic on rv64 Message-ID: <20200203235452.320970-1-raj.khem@gmail.com> Fixes vlc-3.0.8/src/misc/picture_pool.c:200: undefined reference to `__atomic_fetch_add_2' vlc-3.0.8/src/audio_output/dec.c:201: undefined reference to `__atomic_exchange_1' Signed-off-by: Khem Raj --- meta-multimedia/recipes-multimedia/vlc/vlc_3.0.8.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.8.bb b/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.8.bb index e29ade65c4..7fadca4399 100644 --- a/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.8.bb +++ b/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.8.bb @@ -13,6 +13,8 @@ DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native \ libmtp libopus orc libsamplerate0 libusb1 schroedinger taglib \ tiff" +LDFLAGS_append_riscv64 = " -latomic" + # While this item does not require it, it depends on ffmpeg which does LICENSE_FLAGS = "commercial" -- 2.25.0 From naveen.kumar.saini at intel.com Tue Feb 4 01:41:10 2020 From: naveen.kumar.saini at intel.com (Naveen Saini) Date: Tue, 4 Feb 2020 09:41:10 +0800 Subject: [oe] [meta-python][PATCH] python3-imageio: add a new package. Message-ID: <20200204014110.25910-1-naveen.kumar.saini@intel.com> ImageIO is a Python library for doing basic I/O operations for images. This recipe is moved from meta-refkit-extra https://layers.openembedded.org/layerindex/recipe/68891/ upgraded from v2.2.0 -> v2.6.0 Signed-off-by: Ismo Puustinen Signed-off-by: Naveen Saini --- .../python/python3-imageio_2.6.0.bb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 meta-python/recipes-devtools/python/python3-imageio_2.6.0.bb diff --git a/meta-python/recipes-devtools/python/python3-imageio_2.6.0.bb b/meta-python/recipes-devtools/python/python3-imageio_2.6.0.bb new file mode 100644 index 000000000..8fe4b988d --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-imageio_2.6.0.bb @@ -0,0 +1,14 @@ +SUMMARY = "Python library that provides an easy interface to read and \ +write a wide range of image data, including animated images, video, \ +volumetric data, and scientific formats." +SECTION = "devel/python" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d8b7fdd0dff0fd18f35c05365d3d7bf7" + +SRC_URI = "git://github.com/imageio/imageio.git;protocol=https" +SRCREV = "0b161649b3ee108f80bd99466aeab2e65cf82cd8" +S = "${WORKDIR}/git" + +inherit setuptools3 + +RDEPENDS_${PN} = "python3-numpy python3-pillow" -- 2.17.1 From ticotimo at gmail.com Tue Feb 4 02:46:24 2020 From: ticotimo at gmail.com (Tim Orling) Date: Mon, 3 Feb 2020 18:46:24 -0800 Subject: [oe] [meta-python][zeus][PATCH v2 1/2] python-twisted: add required RDEPENDS for twistd In-Reply-To: <20200130153405.26756-1-Trevor.Gamblin@windriver.com> References: <20200130153405.26756-1-Trevor.Gamblin@windriver.com> Message-ID: Thank you for sorting :) I was looking at applying this to meta-python2 zeus and my checks (import every twisted and twisted.* module) didn't see any missing dependencies before this patch. Can you describe the need or give me a hint of a reproducer? I'm sure I'm missing something. On Fri, Jan 31, 2020 at 1:29 AM Trevor Gamblin wrote: > From: Trevor Gamblin > > python-twisted is currently missing some packages for its /usr/bin/twistd > executable to function. Add these to the RDEPENDS list, and also clean up > formatting since the list is getting long. > > Note that a similar patch has already been submitted for master branch, > but the python2 version of twisted needs more explicit RDEPENDS than the > python3 version submitted to master in order for /usr/bin/twistd to work > properly. > > Signed-off-by: Trevor Gamblin > --- > .../recipes-devtools/python/python-twisted.inc | 18 +++++++++++++++++- > 1 file changed, 17 insertions(+), 1 deletion(-) > > diff --git a/meta-python/recipes-devtools/python/python-twisted.inc > b/meta-python/recipes-devtools/python/python-twisted.inc > index d70104dc2..024a9fa7c 100644 > --- a/meta-python/recipes-devtools/python/python-twisted.inc > +++ b/meta-python/recipes-devtools/python/python-twisted.inc > @@ -56,7 +56,23 @@ RDEPENDS_${PN} = "\ > ${PN}-zsh \ > " > > -RDEPENDS_${PN}-core = "${PYTHON_PN}-core ${PYTHON_PN}-zopeinterface > ${PYTHON_PN}-incremental ${PYTHON_PN}-constantly ${PYTHON_PN}-hyperlink > ${PYTHON_PN}-automat" > +RDEPENDS_${PN}-core = "${PYTHON_PN}-automat \ > + ${PYTHON_PN}-constantly \ > + ${PYTHON_PN}-core \ > + ${PYTHON_PN}-debugger \ > + ${PYTHON_PN}-hyperlink \ > + ${PYTHON_PN}-incremental \ > + ${PYTHON_PN}-misc \ > + ${PYTHON_PN}-pkg-resources \ > + ${PYTHON_PN}-pkgutil \ > + ${PYTHON_PN}-plistlib \ > + ${PYTHON_PN}-pyhamcrest \ > + ${PYTHON_PN}-pyserial \ > + ${PYTHON_PN}-setuptools \ > + ${PYTHON_PN}-unixadmin \ > + ${PYTHON_PN}-zopeinterface \ > +" > + > RDEPENDS_${PN}-test = "${PN}" > RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols" > RDEPENDS_${PN}-mail = "${PN}-core ${PN}-protocols" > -- > 2.24.0 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From Qi.Chen at windriver.com Tue Feb 4 02:23:10 2020 From: Qi.Chen at windriver.com (Chen Qi) Date: Mon, 3 Feb 2020 18:23:10 -0800 Subject: [oe] [meta-oe][PATCH] phoronix-test-suite: change python to python3-core in RDEPENDS Message-ID: <20200204022310.58916-1-Qi.Chen@windriver.com> The source codes are actually using python3 instead of python. Signed-off-by: Chen Qi --- .../phoronix-test-suite/phoronix-test-suite_9.2.1.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.2.1.bb b/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.2.1.bb index 52b341b0e..6525b8ec0 100644 --- a/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.2.1.bb +++ b/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.2.1.bb @@ -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 \ -- 2.21.0 From ticotimo at gmail.com Tue Feb 4 04:27:19 2020 From: ticotimo at gmail.com (Tim Orling) Date: Mon, 3 Feb 2020 20:27:19 -0800 Subject: [oe] [meta-python2][PATCH] python-six: Update to 1.14.0 In-Reply-To: <20200203193635.2253-1-raj.khem@gmail.com> References: <20200203193635.2253-1-raj.khem@gmail.com> Message-ID: merged. thank you. On Mon, Feb 3, 2020 at 11:36 AM Khem Raj wrote: > Have its own checksums so its not tightly coupled to versions from > oe-core > > Signed-off-by: Khem Raj > --- > recipes-devtools/python/python-six_1.13.0.bb | 2 -- > recipes-devtools/python/python-six_1.14.0.bb | 6 ++++++ > 2 files changed, 6 insertions(+), 2 deletions(-) > delete mode 100644 recipes-devtools/python/python-six_1.13.0.bb > create mode 100644 recipes-devtools/python/python-six_1.14.0.bb > > diff --git a/recipes-devtools/python/python-six_1.13.0.bb > b/recipes-devtools/python/python-six_1.13.0.bb > deleted file mode 100644 > index af26e83..0000000 > --- a/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/recipes-devtools/python/python-six_1.14.0.bb > b/recipes-devtools/python/python-six_1.14.0.bb > new file mode 100644 > index 0000000..779883a > --- /dev/null > +++ b/recipes-devtools/python/python-six_1.14.0.bb > @@ -0,0 +1,6 @@ > +inherit pypi setuptools > +require recipes-devtools/python/python-six.inc > + > +SRC_URI[md5sum] = "21674588a57e649d1a6d977ec3122140" > +SRC_URI[sha256sum] = > "236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a" > + > -- > 2.25.0 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From martin.jansa at gmail.com Tue Feb 4 04:30:33 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Tue, 4 Feb 2020 05:30:33 +0100 Subject: [oe] [meta-python][zeus][PATCH v2 1/2] python-twisted: add required RDEPENDS for twistd In-Reply-To: <20200130153405.26756-1-Trevor.Gamblin@windriver.com> References: <20200130153405.26756-1-Trevor.Gamblin@windriver.com> Message-ID: Please send this fix to normal meta-python in meta-oe/zeus: http://git.openembedded.org/meta-openembedded/tree/meta-python/recipes-devtools/python/python-twisted.inc?h=zeus BTW: Why are you using meta-python2 with zeus branch? It imho doesn't have anything which would be missing in oe-core+meta-oe zeus branch and fixes like this should be resolved also for people using zeus branch without overlaying them by meta-python2. On Fri, Jan 31, 2020 at 10:29 AM Trevor Gamblin < Trevor.Gamblin at windriver.com> wrote: > From: Trevor Gamblin > > python-twisted is currently missing some packages for its /usr/bin/twistd > executable to function. Add these to the RDEPENDS list, and also clean up > formatting since the list is getting long. > > Note that a similar patch has already been submitted for master branch, > but the python2 version of twisted needs more explicit RDEPENDS than the > python3 version submitted to master in order for /usr/bin/twistd to work > properly. > > Signed-off-by: Trevor Gamblin > --- > .../recipes-devtools/python/python-twisted.inc | 18 +++++++++++++++++- > 1 file changed, 17 insertions(+), 1 deletion(-) > > diff --git a/meta-python/recipes-devtools/python/python-twisted.inc > b/meta-python/recipes-devtools/python/python-twisted.inc > index d70104dc2..024a9fa7c 100644 > --- a/meta-python/recipes-devtools/python/python-twisted.inc > +++ b/meta-python/recipes-devtools/python/python-twisted.inc > @@ -56,7 +56,23 @@ RDEPENDS_${PN} = "\ > ${PN}-zsh \ > " > > -RDEPENDS_${PN}-core = "${PYTHON_PN}-core ${PYTHON_PN}-zopeinterface > ${PYTHON_PN}-incremental ${PYTHON_PN}-constantly ${PYTHON_PN}-hyperlink > ${PYTHON_PN}-automat" > +RDEPENDS_${PN}-core = "${PYTHON_PN}-automat \ > + ${PYTHON_PN}-constantly \ > + ${PYTHON_PN}-core \ > + ${PYTHON_PN}-debugger \ > + ${PYTHON_PN}-hyperlink \ > + ${PYTHON_PN}-incremental \ > + ${PYTHON_PN}-misc \ > + ${PYTHON_PN}-pkg-resources \ > + ${PYTHON_PN}-pkgutil \ > + ${PYTHON_PN}-plistlib \ > + ${PYTHON_PN}-pyhamcrest \ > + ${PYTHON_PN}-pyserial \ > + ${PYTHON_PN}-setuptools \ > + ${PYTHON_PN}-unixadmin \ > + ${PYTHON_PN}-zopeinterface \ > +" > + > RDEPENDS_${PN}-test = "${PN}" > RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols" > RDEPENDS_${PN}-mail = "${PN}-core ${PN}-protocols" > -- > 2.24.0 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From ticotimo at gmail.com Tue Feb 4 04:45:26 2020 From: ticotimo at gmail.com (Tim Orling) Date: Mon, 3 Feb 2020 20:45:26 -0800 Subject: [oe] [meta-python][zeus][PATCH v2 1/2] python-twisted: add required RDEPENDS for twistd In-Reply-To: References: <20200130153405.26756-1-Trevor.Gamblin@windriver.com> Message-ID: On Mon, Feb 3, 2020 at 8:30 PM Martin Jansa wrote: > Please send this fix to normal meta-python in meta-oe/zeus: > > http://git.openembedded.org/meta-openembedded/tree/meta-python/recipes-devtools/python/python-twisted.inc?h=zeus > > BTW: Why are you using meta-python2 with zeus branch? It imho doesn't have > anything which would be missing in oe-core+meta-oe zeus branch and fixes > like this should be resolved also for people using zeus branch without > overlaying them by meta-python2. > > Because, as I believe I have said before, I need a prior release to test the infrastructure on. zeus allows me to work on more than just master until we have the next stable release branching. It has nothing to do with what is missing from meta-oe, it is a viable alternative that also helps prove out my workflow as I have EXTREMELY LIMITED TIME to support this. On Fri, Jan 31, 2020 at 10:29 AM Trevor Gamblin < > Trevor.Gamblin at windriver.com> wrote: > > > From: Trevor Gamblin > > > > python-twisted is currently missing some packages for its /usr/bin/twistd > > executable to function. Add these to the RDEPENDS list, and also clean up > > formatting since the list is getting long. > > > > Note that a similar patch has already been submitted for master branch, > > but the python2 version of twisted needs more explicit RDEPENDS than the > > python3 version submitted to master in order for /usr/bin/twistd to work > > properly. > > > > Signed-off-by: Trevor Gamblin > > --- > > .../recipes-devtools/python/python-twisted.inc | 18 +++++++++++++++++- > > 1 file changed, 17 insertions(+), 1 deletion(-) > > > > diff --git a/meta-python/recipes-devtools/python/python-twisted.inc > > b/meta-python/recipes-devtools/python/python-twisted.inc > > index d70104dc2..024a9fa7c 100644 > > --- a/meta-python/recipes-devtools/python/python-twisted.inc > > +++ b/meta-python/recipes-devtools/python/python-twisted.inc > > @@ -56,7 +56,23 @@ RDEPENDS_${PN} = "\ > > ${PN}-zsh \ > > " > > > > -RDEPENDS_${PN}-core = "${PYTHON_PN}-core ${PYTHON_PN}-zopeinterface > > ${PYTHON_PN}-incremental ${PYTHON_PN}-constantly ${PYTHON_PN}-hyperlink > > ${PYTHON_PN}-automat" > > +RDEPENDS_${PN}-core = "${PYTHON_PN}-automat \ > > + ${PYTHON_PN}-constantly \ > > + ${PYTHON_PN}-core \ > > + ${PYTHON_PN}-debugger \ > > + ${PYTHON_PN}-hyperlink \ > > + ${PYTHON_PN}-incremental \ > > + ${PYTHON_PN}-misc \ > > + ${PYTHON_PN}-pkg-resources \ > > + ${PYTHON_PN}-pkgutil \ > > + ${PYTHON_PN}-plistlib \ > > + ${PYTHON_PN}-pyhamcrest \ > > + ${PYTHON_PN}-pyserial \ > > + ${PYTHON_PN}-setuptools \ > > + ${PYTHON_PN}-unixadmin \ > > + ${PYTHON_PN}-zopeinterface \ > > +" > > + > > RDEPENDS_${PN}-test = "${PN}" > > RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols" > > RDEPENDS_${PN}-mail = "${PN}-core ${PN}-protocols" > > -- > > 2.24.0 > > > > -- > > _______________________________________________ > > Openembedded-devel mailing list > > Openembedded-devel at lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From Qi.Chen at windriver.com Tue Feb 4 05:53:20 2020 From: Qi.Chen at windriver.com (Chen Qi) Date: Mon, 3 Feb 2020 21:53:20 -0800 Subject: [oe] [meta-oe][PATCH] rsyslog: disable ptest as it requires python2 Message-ID: <20200204055320.107588-1-Qi.Chen@windriver.com> Signed-off-by: Chen Qi --- meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb b/meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb index 29bba2d9a..b109e4dec 100644 --- a/meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb +++ b/meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb @@ -35,7 +35,9 @@ SRC_URI[sha256sum] = "e1f4776b1c62ad7220f4d624a89a96b0c3d4738006899356eaaef0f1f9 UPSTREAM_CHECK_URI = "https://github.com/rsyslog/rsyslog/releases" UPSTREAM_CHECK_REGEX = "(?P\d+(\.\d+)+)" -inherit autotools pkgconfig systemd update-rc.d ptest +inherit autotools pkgconfig systemd update-rc.d +# ptest is disabled for now because it requires python2, after upstream solves this problem, re-enable it +# inherit ptest EXTRA_OECONF += "--disable-generate-man-pages ap_cv_atomic_builtins=yes" EXTRA_OECONF += "--enable-imfile-tests" -- 2.21.0 From yongxin.liu at windriver.com Tue Feb 4 05:49:22 2020 From: yongxin.liu at windriver.com (Yongxin Liu) Date: Tue, 4 Feb 2020 13:49:22 +0800 Subject: [oe] [meta-oe][PATCH] fio: Add support for PMDK engines Message-ID: <20200204054922.6504-1-yongxin.liu@windriver.com> "pmemblk", "dev-dax" and "libpmem" engines are used for persistent memory. In order to enable them, add "pmem" to MACHINE_FEATURES in BSP conf. Signed-off-by: Yongxin Liu --- meta-oe/recipes-benchmark/fio/fio_3.17.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/meta-oe/recipes-benchmark/fio/fio_3.17.bb b/meta-oe/recipes-benchmark/fio/fio_3.17.bb index 5a9cc8334..482928c31 100644 --- a/meta-oe/recipes-benchmark/fio/fio_3.17.bb +++ b/meta-oe/recipes-benchmark/fio/fio_3.17.bb @@ -11,6 +11,7 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" DEPENDS = "libaio zlib coreutils-native" +DEPENDS += "${@bb.utils.contains('MACHINE_FEATURES', 'pmem', 'pmdk', '', d)}" RDEPENDS_${PN} = "python3-core bash" PACKAGECONFIG_NUMA = "numa" -- 2.14.4 From stefan at agner.ch Tue Feb 4 09:00:28 2020 From: stefan at agner.ch (Stefan Agner) Date: Tue, 04 Feb 2020 10:00:28 +0100 Subject: [oe] systemd failing in master with Assertion clock_gettime(map_clock_id(clock_id), &ts) failed In-Reply-To: References: <92e2dcc5-6107-e05f-87f4-161b8132266e@gmail.com> Message-ID: <8a912a9368356b5d22e6e740f02ccdaf@agner.ch> On 2020-02-03 23:37, Alex Kiernan wrote: > On Mon, Feb 3, 2020 at 10:17 PM Stefan Agner wrote: >> >> Hi All, >> >> On 2020-01-27 16:14, Alex Kiernan wrote: >> > On Fri, Jan 24, 2020 at 12:22 AM Khem Raj wrote: >> >> >> >> On 1/23/20 4:13 PM, Alex Kiernan wrote: >> >> > On Thu, Jan 23, 2020 at 10:09 AM Andreas M?ller wrote: >> >> >> >> >> >> On Thu, Jan 23, 2020 at 10:43 AM Alex Kiernan wrote: >> >> >>> >> >> >>> On the offchance someone's tripped over this already/has pointers: >> >> >>> >> >> >>> Around the time python2 dropped out, I'm now seeing boot failures with: >> >> >>> >> >> >>> [ 612.151548] systemd-journald[543]: Assertion >> >> >>> 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at >> >> >>> src/basic/time-util.c:55, function now(). Aborting. >> >> >>> >> >> >>> I suspect it's unrelated to py2, but that's delayed me getting to the problem. >> >> >>> >> >> >>> The board I'm targetting is AM335x based, but without an RTC (which I >> >> >>> suspect may be relevant). >> >> >>> >> >> >>> Anyone seen anything similar? >> >> >>> >> >> >>> -- >> >> >>> Alex Kiernan >> >> >> Hi Alex, >> >> >> >> >> >> Have not seen that one yet. Will look for it once I can build images >> >> >> in current environment (python2/Qt5.14 broke loads for me). What I >> >> >> have seen were problems with timedatectl <-> ntp. Changing from local >> >> >> time to ntp-sync did not work: Time remained un-synced on recent >> >> >> images. Machine was Raspi so no RTC either. >> >> >> >> >> >> Don't know if this is related to your finding... >> >> >> >> >> > >> >> > Looks like it's related to the glibc bump - reverting that changeset >> >> > gets it booting again. I struggle to figure out which of the myriad >> >> > wrappers are actually being used from inspecting the glibc source, but >> >> > if it's the one I think it is, there's clearly >> >> > clock_gettime/clock_gettime64 changes there which I doubt my kernel >> >> > has (we're currently using the TI 4.19.y kernel). >> >> >> >> Is it possible for you to try 5.x for tests ? >> > >> > That's where I went first, though I need to bring up the newer TI 5.4 >> > branch first (which has its own problems as there's some patch which >> > was in the 4.9.y hsmmc driver which isn't in the latest which causes >> > random timeouts on some of our board samples). >> > >> >> I am seeing this on master branch too on a Toradex Apalis iMX6 (i.MX >> 6Dual to be specfic) running a mainline kernel 5.4.2. >> >> We do have a RTC and according to dmesg the time has been read from it >> successfully and correctly. We do have a second (the SoC internal) which >> actually might be not correctly set, I haven't checked. >> >> It seems systemd-journald which is tripping, but later also >> systemd-udevd: >> [ 5.749612] systemd-journald[510]: Assertion >> 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at >> src/basic/time-util.c:55, function now(). Aborting. >> [ 6.433771] systemd-journald[534]: Assertion >> 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at >> src/basic/time-util.c:55, function now(). Aborting. >> [ 6.934304] systemd-journald[536]: Assertion >> 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at >> src/basic/time-util.c:55, function now(). Aborting. >> [ 7.379449] systemd-journald[538]: Assertion >> 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at >> src/basic/time-util.c:55, function now(). Aborting. >> [ 7.763130] systemd-journald[539]: Assertion >> 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at >> src/basic/time-util.c:55, function now(). Aborting. >> ... >> [ 8.402258] systemd-udevd[542]: Assertion >> 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at >> src/basic/time-util.c:55, function now(). Aborting. >> >> We do have +SECCOMP, and also here commenting out >> "SystemCallFilter=@system-service" seems to help. >> >> strace seems to point to clock_gettime64: >> > > That fits with systemd-243.4 fixing it - there's a commit in there > which adds clock_gettime64 to @system-service. Confirmed, the bump to 243.4 fixes it for me too. -- Stefan From asmithakarun at gmail.com Tue Feb 4 09:21:26 2020 From: asmithakarun at gmail.com (Asmitha Karunanithi) Date: Tue, 4 Feb 2020 14:51:26 +0530 Subject: [oe] [meta-oe][PATCH] Library to aid multi-part form data parsing Message-ID: <20200204092126.19209-1-asmithakarun@gmail.com> From: asmitha Mimetic library helps parsing the multi-part form data. This library can be used for scenarios that includes multi-part form data file uploads to the BMC. The patch file (config.patch) includes: i) addition of a compilation flag - "no-narrowing" since this has been treated as warning in earlier versions of c++ and now with the higher versions, this is treated as errors. ii) 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. Signed-off-by: asmitha --- .../libmimetic/libmimetic/config.patch | 25 +++++++++++++++++++ .../libmimetic/libmimetic_0.9.8.bb | 19 ++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 meta-oe/recipes-support/libmimetic/libmimetic/config.patch create mode 100644 meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb diff --git a/meta-oe/recipes-support/libmimetic/libmimetic/config.patch b/meta-oe/recipes-support/libmimetic/libmimetic/config.patch new file mode 100644 index 000000000..52bf7b450 --- /dev/null +++ b/meta-oe/recipes-support/libmimetic/libmimetic/config.patch @@ -0,0 +1,25 @@ +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/configure.in b/configure.in +index 5e8f3d4..af1018e 100644 +--- a/configure.in ++++ b/configure.in +@@ -30,7 +30,7 @@ debug_enabled=false + dnl CFLAGS and CXXFLAGS default to -O2 -g + + dnl CXXFLAGS="$CXXFLAGS -DNDEBUG -fno-exceptions" +-CXXFLAGS="$CXXFLAGS -DNDEBUG" ++CXXFLAGS="$CXXFLAGS -DNDEBUG -Wno-narrowing" + + AC_ARG_ENABLE(debug, + [ --enable-debug[=LEVEL] enables debug symbols [default=2]], diff --git a/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb b/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb new file mode 100644 index 000000000..a0a704188 --- /dev/null +++ b/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb @@ -0,0 +1,19 @@ +# 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 " +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://config.patch \ + " + +S = "${WORKDIR}/git" + +inherit autotools -- 2.21.0 From git at andred.net Tue Feb 4 11:14:26 2020 From: git at andred.net (=?UTF-8?q?Andr=C3=A9=20Draszik?=) Date: Tue, 4 Feb 2020 11:14:26 +0000 Subject: [oe] [meta-oe][PATCH] smem: add a native variant Message-ID: <20200204111426.35433-1-git@andred.net> The native variant is useful to e.g. examine captures of a running target on the host system. Signed-off-by: Andr? Draszik --- meta-oe/recipes-support/smem/smem_1.4.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-oe/recipes-support/smem/smem_1.4.bb b/meta-oe/recipes-support/smem/smem_1.4.bb index 702217a33..947c47b0f 100644 --- a/meta-oe/recipes-support/smem/smem_1.4.bb +++ b/meta-oe/recipes-support/smem/smem_1.4.bb @@ -29,3 +29,5 @@ RDEPENDS_${PN} += "python-textutils python-compression python-shell python-codec PACKAGES =+ "smemcap" FILES_smemcap = "${bindir}/smemcap" + +BBCLASSEXTEND = "native" -- 2.23.0.rc1 From trevor.gamblin at windriver.com Tue Feb 4 13:30:45 2020 From: trevor.gamblin at windriver.com (Trevor Gamblin) Date: Tue, 4 Feb 2020 08:30:45 -0500 Subject: [oe] [meta-python][zeus][PATCH v2 1/2] python-twisted: add required RDEPENDS for twistd In-Reply-To: References: <20200130153405.26756-1-Trevor.Gamblin@windriver.com> Message-ID: <75fbbff5-5c96-c23c-fbf8-40770f05688a@windriver.com> On 2/3/20 9:46 PM, Tim Orling wrote: > Thank you for sorting :) > > I was looking at applying this to meta-python2 zeus and my checks > (import every twisted and twisted.* module) didn't see any missing > dependencies before this patch. Can you describe the need or give me a > hint of a reproducer? I'm sure I'm missing something. The /usr/bin/twistd executable will complain about the dependencies being missing. You don't need to pass it any config files to test it - it'll output usage info if the dependencies are present. > > On Fri, Jan 31, 2020 at 1:29 AM Trevor Gamblin > > > wrote: > > From: Trevor Gamblin > > > python-twisted is currently missing some packages for its > /usr/bin/twistd > executable to function. Add these to the RDEPENDS list, and also > clean up > formatting since the list is getting long. > > Note that a similar patch has already been submitted for master > branch, > but the python2 version of twisted needs more explicit RDEPENDS > than the > python3 version submitted to master in order for /usr/bin/twistd > to work > properly. > > Signed-off-by: Trevor Gamblin > > --- > ?.../recipes-devtools/python/python-twisted.inc | 18 > +++++++++++++++++- > ?1 file changed, 17 insertions(+), 1 deletion(-) > > diff --git > a/meta-python/recipes-devtools/python/python-twisted.inc > b/meta-python/recipes-devtools/python/python-twisted.inc > index d70104dc2..024a9fa7c 100644 > --- a/meta-python/recipes-devtools/python/python-twisted.inc > +++ b/meta-python/recipes-devtools/python/python-twisted.inc > @@ -56,7 +56,23 @@ RDEPENDS_${PN} = "\ > ? ? ?${PN}-zsh \ > ?" > > -RDEPENDS_${PN}-core = "${PYTHON_PN}-core > ${PYTHON_PN}-zopeinterface ${PYTHON_PN}-incremental > ${PYTHON_PN}-constantly ${PYTHON_PN}-hyperlink ${PYTHON_PN}-automat" > +RDEPENDS_${PN}-core = "${PYTHON_PN}-automat \ > +? ? ? ? ? ? ? ? ? ? ? ?${PYTHON_PN}-constantly \ > +? ? ? ? ? ? ? ? ? ? ? ?${PYTHON_PN}-core \ > +? ? ? ? ? ? ? ? ? ? ? ${PYTHON_PN}-debugger \ > +? ? ? ? ? ? ? ? ? ? ? ?${PYTHON_PN}-hyperlink \ > +? ? ? ? ? ? ? ? ? ? ? ?${PYTHON_PN}-incremental \ > +? ? ? ? ? ? ? ? ? ? ? ?${PYTHON_PN}-misc \ > +? ? ? ? ? ? ? ? ? ? ? ?${PYTHON_PN}-pkg-resources \ > +? ? ? ? ? ? ? ? ? ? ? ?${PYTHON_PN}-pkgutil \ > +? ? ? ? ? ? ? ? ? ? ? ?${PYTHON_PN}-plistlib \ > +? ? ? ? ? ? ? ? ? ? ? ?${PYTHON_PN}-pyhamcrest \ > +? ? ? ? ? ? ? ? ? ? ? ?${PYTHON_PN}-pyserial \ > +? ? ? ? ? ? ? ? ? ? ? ?${PYTHON_PN}-setuptools \ > +? ? ? ? ? ? ? ? ? ? ? ?${PYTHON_PN}-unixadmin \ > +? ? ? ? ? ? ? ? ? ? ? ?${PYTHON_PN}-zopeinterface \ > +" > + > ?RDEPENDS_${PN}-test = "${PN}" > ?RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols" > ?RDEPENDS_${PN}-mail = "${PN}-core ${PN}-protocols" > -- > 2.24.0 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From peter.kjellerstedt at axis.com Tue Feb 4 17:04:40 2020 From: peter.kjellerstedt at axis.com (Peter Kjellerstedt) Date: Tue, 4 Feb 2020 17:04:40 +0000 Subject: [oe] [meta-oe][PATCH] Library to aid multi-part form data parsing In-Reply-To: <20200204092126.19209-1-asmithakarun@gmail.com> References: <20200204092126.19209-1-asmithakarun@gmail.com> Message-ID: <9dec3ef6aecd46c0a01fe5524e1cc1aa@XBOX03.axis.com> > -----Original Message----- > From: openembedded-devel-bounces at lists.openembedded.org devel-bounces at lists.openembedded.org> On Behalf Of Asmitha Karunanithi > Sent: den 4 februari 2020 10:21 > To: openembedded-devel at lists.openembedded.org > Subject: [oe] [meta-oe][PATCH] Library to aid multi-part form data parsing The commit subject should be prefixed by the name of the recipe, i.e.: libmimetic: Add library to aid multi-part form data parsing > From: asmitha > > Mimetic library helps parsing the multi-part form data. This library > can be used for scenarios that includes multi-part form data file uploads > to the BMC. What is BMC? > The patch file (config.patch) includes: > i) addition of a compilation flag - "no-narrowing" since this has been > treated as warning in earlier versions of c++ and now with the higher > versions, this is treated as errors. > ii) 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. > > Signed-off-by: asmitha > --- > .../libmimetic/libmimetic/config.patch | 25 +++++++++++++++++++ > .../libmimetic/libmimetic_0.9.8.bb | 19 ++++++++++++++ > 2 files changed, 44 insertions(+) > create mode 100644 meta-oe/recipes-support/libmimetic/libmimetic/config.patch > create mode 100644 meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb > > diff --git a/meta-oe/recipes-support/libmimetic/libmimetic/config.patch b/meta-oe/recipes-support/libmimetic/libmimetic/config.patch There should be an Upstream-Status in the patch. You might as well regenerate the patch using git format-patch to keep a description with the patch why it is needed. > new file mode 100644 > index 000000000..52bf7b450 > --- /dev/null > +++ b/meta-oe/recipes-support/libmimetic/libmimetic/config.patch > @@ -0,0 +1,25 @@ > +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/configure.in b/configure.in > +index 5e8f3d4..af1018e 100644 > +--- a/configure.in > ++++ b/configure.in > +@@ -30,7 +30,7 @@ debug_enabled=false > + dnl CFLAGS and CXXFLAGS default to -O2 -g > + > + dnl CXXFLAGS="$CXXFLAGS -DNDEBUG -fno-exceptions" > +-CXXFLAGS="$CXXFLAGS -DNDEBUG" > ++CXXFLAGS="$CXXFLAGS -DNDEBUG -Wno-narrowing" Do this in the recipe instead. Just add: CXXFLAGS += "-Wno-narrowing" at the end of the recipe. > + > + AC_ARG_ENABLE(debug, > + [ --enable-debug[=LEVEL] enables debug symbols [default=2]], > diff --git a/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb b/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb > new file mode 100644 > index 000000000..a0a704188 > --- /dev/null > +++ b/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb > @@ -0,0 +1,19 @@ > +# 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 " > +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://config.patch \ > + " > + > +S = "${WORKDIR}/git" > + > +inherit autotools > -- > 2.21.0 //Peter From raj.khem at gmail.com Tue Feb 4 17:26:58 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 4 Feb 2020 09:26:58 -0800 Subject: [oe] [meta-oe][PATCH] rsyslog: disable ptest as it requires python2 In-Reply-To: <20200204055320.107588-1-Qi.Chen@windriver.com> References: <20200204055320.107588-1-Qi.Chen@windriver.com> Message-ID: We need to disable reference to rsyslog-ptest in ./meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb as well. On Mon, Feb 3, 2020 at 9:54 PM Chen Qi wrote: > > Signed-off-by: Chen Qi > --- > meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb b/meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb > index 29bba2d9a..b109e4dec 100644 > --- a/meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb > +++ b/meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb > @@ -35,7 +35,9 @@ SRC_URI[sha256sum] = "e1f4776b1c62ad7220f4d624a89a96b0c3d4738006899356eaaef0f1f9 > UPSTREAM_CHECK_URI = "https://github.com/rsyslog/rsyslog/releases" > UPSTREAM_CHECK_REGEX = "(?P\d+(\.\d+)+)" > > -inherit autotools pkgconfig systemd update-rc.d ptest > +inherit autotools pkgconfig systemd update-rc.d > +# ptest is disabled for now because it requires python2, after upstream solves this problem, re-enable it > +# inherit ptest > > EXTRA_OECONF += "--disable-generate-man-pages ap_cv_atomic_builtins=yes" > EXTRA_OECONF += "--enable-imfile-tests" > -- > 2.21.0 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From trevor.gamblin at windriver.com Tue Feb 4 20:15:47 2020 From: trevor.gamblin at windriver.com (Trevor Gamblin) Date: Tue, 4 Feb 2020 12:15:47 -0800 Subject: [oe] [meta-networking][PATCH] lftp: upgrade 4.9.0 -> 4.9.1 Message-ID: <20200204201547.41125-1-trevor.gamblin@windriver.com> Signed-off-by: Trevor Gamblin --- .../lftp/{lftp_4.9.0.bb => lftp_4.9.1.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-networking/recipes-connectivity/lftp/{lftp_4.9.0.bb => lftp_4.9.1.bb} (89%) diff --git a/meta-networking/recipes-connectivity/lftp/lftp_4.9.0.bb b/meta-networking/recipes-connectivity/lftp/lftp_4.9.1.bb similarity index 89% rename from meta-networking/recipes-connectivity/lftp/lftp_4.9.0.bb rename to meta-networking/recipes-connectivity/lftp/lftp_4.9.1.bb index ef047f7a3..79a380ada 100644 --- a/meta-networking/recipes-connectivity/lftp/lftp_4.9.0.bb +++ b/meta-networking/recipes-connectivity/lftp/lftp_4.9.1.bb @@ -7,8 +7,8 @@ LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" SRC_URI = "http://lftp.yar.ru/ftp/lftp-${PV}.tar.bz2" -SRC_URI[md5sum] = "b05817a2c26463618271730d0f677edb" -SRC_URI[sha256sum] = "309e7e91a7c020625715e85c1726b1e7524da22518683fbe051ac13116dedeac" +SRC_URI[md5sum] = "19ce64012bc722ad61667372fa262382" +SRC_URI[sha256sum] = "a692fd081c19e2cc045869ab721a4fb3d7571040849a4406c4042f735232414c" inherit autotools gettext pkgconfig -- 2.23.0 From max.oss.09 at gmail.com Tue Feb 4 23:40:13 2020 From: max.oss.09 at gmail.com (Max Krummenacher) Date: Wed, 5 Feb 2020 00:40:13 +0100 Subject: [oe] [meta-oe][PATCH] smem: use python 3 Message-ID: <20200204234013.59800-1-max.krummenacher@toradex.com> There seems to be no user of python-textutils python-shell python-codecs in the script, so these rdepends are dropped. On a i.MX6 based machine smem runs with just python3-compression and its dependencies installed. Signed-off-by: Max Krummenacher --- .../smem/0001-smem-convert-to-python-3.patch | 161 ++++++++++++++++++ meta-oe/recipes-support/smem/smem_1.4.bb | 7 +- 2 files changed, 166 insertions(+), 2 deletions(-) create mode 100644 meta-oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch diff --git a/meta-oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch b/meta-oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch new file mode 100644 index 000000000..85f35be44 --- /dev/null +++ b/meta-oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch @@ -0,0 +1,161 @@ +From 5535a524f6db57c0b2e4a539db733fd9e840c97e Mon Sep 17 00:00:00 2001 +From: Max Krummenacher +Date: Mon, 3 Feb 2020 21:04:42 +0000 +Subject: [PATCH] smem: convert to python 3 + +Upstream-Status: Pending + +Signed-off-by: Max Krummenacher +--- + smem | 41 ++++++++++++++++++++++------------------- + 1 file changed, 22 insertions(+), 19 deletions(-) + +diff --git a/smem b/smem +index 0cbd925..577d27b 100755 +--- a/smem ++++ b/smem +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # + # smem - a tool for meaningful memory reporting + # +@@ -21,7 +21,10 @@ class procdata(object): + def _list(self): + return os.listdir(self.source + "/proc") + def _read(self, f): +- return file(self.source + '/proc/' + f).read() ++ afile = open(self.source + '/proc/' + f) ++ ret = afile.read() ++ afile.close() ++ return ret + def _readlines(self, f): + return self._read(f).splitlines(True) + def _stat(self, f): +@@ -209,7 +212,7 @@ def fromunits(x): + s = dict(k=2**10, K=2**10, kB=2**10, KB=2**10, + M=2**20, MB=2**20, G=2**30, GB=2**30, + T=2**40, TB=2**40) +- for k,v in s.items(): ++ for k,v in list(s.items()): + if x.endswith(k): + return int(float(x[:-len(k)])*v) + sys.stderr.write("Memory size should be written with units, for example 1024M\n") +@@ -240,7 +243,7 @@ def pidtotals(pid): + maps = pidmaps(pid) + t = dict(size=0, rss=0, pss=0, shared_clean=0, shared_dirty=0, + private_clean=0, private_dirty=0, referenced=0, swap=0) +- for m in maps.iterkeys(): ++ for m in maps.keys(): + for k in t: + t[k] += maps[m].get(k, 0) + +@@ -296,7 +299,7 @@ def showpids(): + ) + columns = options.columns or 'pid user command swap uss pss rss' + +- showtable(pt.keys(), fields, columns.split(), options.sort or 'pss') ++ showtable(list(pt.keys()), fields, columns.split(), options.sort or 'pss') + + def maptotals(pids): + totals = {} +@@ -307,7 +310,7 @@ def maptotals(pids): + try: + maps = pidmaps(pid) + seen = {} +- for m in maps.iterkeys(): ++ for m in maps.keys(): + name = maps[m]['name'] + if name not in totals: + t = dict(size=0, rss=0, pss=0, shared_clean=0, +@@ -361,7 +364,7 @@ def showmaps(): + ) + columns = options.columns or 'map pids avgpss pss' + +- showtable(pt.keys(), fields, columns.split(), options.sort or 'pss') ++ showtable(list(pt.keys()), fields, columns.split(), options.sort or 'pss') + + def usertotals(pids): + totals = {} +@@ -383,7 +386,7 @@ def usertotals(pids): + else: + t = totals[user] + +- for m in maps.iterkeys(): ++ for m in maps.keys(): + for k in t: + t[k] += maps[m].get(k, 0) + +@@ -419,7 +422,7 @@ def showusers(): + ) + columns = options.columns or 'user count swap uss pss rss' + +- showtable(pt.keys(), fields, columns.split(), options.sort or 'pss') ++ showtable(list(pt.keys()), fields, columns.split(), options.sort or 'pss') + + def showsystem(): + t = totalmem() +@@ -460,14 +463,14 @@ def showsystem(): + 'area not reclaimable')) + + columns = options.columns or 'area used cache noncache' +- showtable(range(len(l)), fields, columns.split(), options.sort or 'order') ++ showtable(list(range(len(l))), fields, columns.split(), options.sort or 'order') + + def showfields(fields, f): + if f != list: +- print "unknown field", f +- print "known fields:" ++ print("unknown field", f) ++ print("known fields:") + for l in sorted(fields.keys()): +- print "%-8s %s" % (l, fields[l][-1]) ++ print("%-8s %s" % (l, fields[l][-1])) + + def showtable(rows, fields, columns, sort): + header = "" +@@ -518,10 +521,10 @@ def showtable(rows, fields, columns, sort): + return + + if not options.no_header: +- print header ++ print(header) + + for k,r in l: +- print format % tuple([f(v) for f,v in zip(formatter, r)]) ++ print(format % tuple([f(v) for f,v in zip(formatter, r)])) + + if options.totals: + # totals +@@ -533,8 +536,8 @@ def showtable(rows, fields, columns, sort): + else: + t.append("") + +- print "-" * len(header) +- print format % tuple([f(v) for f,v in zip(formatter, t)]) ++ print("-" * len(header)) ++ print(format % tuple([f(v) for f,v in zip(formatter, t)])) + + def showpie(l, sort): + try: +@@ -605,7 +608,7 @@ def showbar(l, columns, sort): + + pl = [] + ind = numpy.arange(len(l)) +- for n in xrange(len(rc)): ++ for n in range(len(rc)): + pl.append(pylab.bar(ind + offset + width * n, + [x[1][rc[n]] for x in l], width, color=gc(n))) + +@@ -682,7 +685,7 @@ try: + showsystem() + else: + showpids() +-except IOError, e: ++except IOError as e: + if e.errno == errno.EPIPE: + pass + except KeyboardInterrupt: +-- +2.20.1 + diff --git a/meta-oe/recipes-support/smem/smem_1.4.bb b/meta-oe/recipes-support/smem/smem_1.4.bb index 947c47b0f..4728e6b79 100644 --- a/meta-oe/recipes-support/smem/smem_1.4.bb +++ b/meta-oe/recipes-support/smem/smem_1.4.bb @@ -9,7 +9,10 @@ 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 = " \ + http://www.selenic.com/${BPN}/download/${BP}.tar.gz \ + file://0001-smem-convert-to-python-3.patch \ +" SRC_URI[md5sum] = "fe79435c3930389bfdb560255c802162" SRC_URI[sha256sum] = "2ea9f878f4cf3c276774c3f7e2a41977a1f2d64f98d2dcb6a15f1f3d84df61ec" @@ -24,7 +27,7 @@ do_install() { 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" +RDEPENDS_${PN} += "python3-compression" PACKAGES =+ "smemcap" -- 2.20.1 From raj.khem at gmail.com Wed Feb 5 01:11:55 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 4 Feb 2020 17:11:55 -0800 Subject: [oe] [meta-oe][PATCH] Library to aid multi-part form data parsing In-Reply-To: <20200204092126.19209-1-asmithakarun@gmail.com> References: <20200204092126.19209-1-asmithakarun@gmail.com> Message-ID: it also fails on musl/aarch64 https://errors.yoctoproject.org/Errors/Details/385285/ On Tue, Feb 4, 2020 at 1:21 AM Asmitha Karunanithi wrote: > > From: asmitha > > Mimetic library helps parsing the multi-part form data. This library > can be used for scenarios that includes multi-part form data file uploads > to the BMC. > > The patch file (config.patch) includes: > i) addition of a compilation flag - "no-narrowing" since this has been > treated as warning in earlier versions of c++ and now with the higher > versions, this is treated as errors. > ii) 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. > > Signed-off-by: asmitha > --- > .../libmimetic/libmimetic/config.patch | 25 +++++++++++++++++++ > .../libmimetic/libmimetic_0.9.8.bb | 19 ++++++++++++++ > 2 files changed, 44 insertions(+) > create mode 100644 meta-oe/recipes-support/libmimetic/libmimetic/config.patch > create mode 100644 meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb > > diff --git a/meta-oe/recipes-support/libmimetic/libmimetic/config.patch b/meta-oe/recipes-support/libmimetic/libmimetic/config.patch > new file mode 100644 > index 000000000..52bf7b450 > --- /dev/null > +++ b/meta-oe/recipes-support/libmimetic/libmimetic/config.patch > @@ -0,0 +1,25 @@ > +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/configure.in b/configure.in > +index 5e8f3d4..af1018e 100644 > +--- a/configure.in > ++++ b/configure.in > +@@ -30,7 +30,7 @@ debug_enabled=false > + dnl CFLAGS and CXXFLAGS default to -O2 -g > + > + dnl CXXFLAGS="$CXXFLAGS -DNDEBUG -fno-exceptions" > +-CXXFLAGS="$CXXFLAGS -DNDEBUG" > ++CXXFLAGS="$CXXFLAGS -DNDEBUG -Wno-narrowing" > + > + AC_ARG_ENABLE(debug, > + [ --enable-debug[=LEVEL] enables debug symbols [default=2]], > diff --git a/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb b/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb > new file mode 100644 > index 000000000..a0a704188 > --- /dev/null > +++ b/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb > @@ -0,0 +1,19 @@ > +# 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 " > +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://config.patch \ > + " > + > +S = "${WORKDIR}/git" > + > +inherit autotools > -- > 2.21.0 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From raj.khem at gmail.com Wed Feb 5 02:42:36 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 4 Feb 2020 18:42:36 -0800 Subject: [oe] [meta-oe][PATCH] cpuid: Upgrade to 20200203 and use perlnative for pod2man Message-ID: <20200205024236.1113324-1-raj.khem@gmail.com> Fixes /bin/sh: pod2man: command not found Signed-off-by: Khem Raj --- .../cpuid/{cpuid_20180519.bb => cpuid_20200203.bb} | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) rename meta-oe/recipes-devtools/cpuid/{cpuid_20180519.bb => cpuid_20200203.bb} (83%) diff --git a/meta-oe/recipes-devtools/cpuid/cpuid_20180519.bb b/meta-oe/recipes-devtools/cpuid/cpuid_20200203.bb similarity index 83% rename from meta-oe/recipes-devtools/cpuid/cpuid_20180519.bb rename to meta-oe/recipes-devtools/cpuid/cpuid_20200203.bb index 533a00026e..b0540e541a 100644 --- a/meta-oe/recipes-devtools/cpuid/cpuid_20180519.bb +++ b/meta-oe/recipes-devtools/cpuid/cpuid_20200203.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] = "93e99fd3d0d6cd5401c0f84f2cce1d8f" +SRC_URI[sha256sum] = "ebbd6448a1e416d95889a252f7e03a5429ad4f30bc84c7e8ede8086433e86c55" 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 () { -- 2.25.0 From raj.khem at gmail.com Wed Feb 5 02:59:43 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 4 Feb 2020 18:59:43 -0800 Subject: [oe] [meta-oe][PATCH] smem: use python 3 In-Reply-To: <20200204234013.59800-1-max.krummenacher@toradex.com> References: <20200204234013.59800-1-max.krummenacher@toradex.com> Message-ID: Thanks for doing this. On Tue, Feb 4, 2020 at 3:42 PM Max Krummenacher wrote: > > There seems to be no user of python-textutils python-shell python-codecs > in the script, so these rdepends are dropped. > OK > On a i.MX6 based machine smem runs with just python3-compression and > its dependencies installed. ok. Perhaps, it pulls in right set of rdeps indirectly? > > Signed-off-by: Max Krummenacher > --- > .../smem/0001-smem-convert-to-python-3.patch | 161 ++++++++++++++++++ > meta-oe/recipes-support/smem/smem_1.4.bb | 7 +- > 2 files changed, 166 insertions(+), 2 deletions(-) > create mode 100644 meta-oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch Perhaps using 1.5 tag would be desired since that already has py3 fixes https://selenic.com/repo/smem/archive/1.5.tar.bz2 Or maybe we can cherry pick the patches between 1.4 tag and 1.5 tag there are 6 or 7 patches in total [1] https://selenic.com/repo/smem > > diff --git a/meta-oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch b/meta-oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch > new file mode 100644 > index 000000000..85f35be44 > --- /dev/null > +++ b/meta-oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch > @@ -0,0 +1,161 @@ > +From 5535a524f6db57c0b2e4a539db733fd9e840c97e Mon Sep 17 00:00:00 2001 > +From: Max Krummenacher > +Date: Mon, 3 Feb 2020 21:04:42 +0000 > +Subject: [PATCH] smem: convert to python 3 > + > +Upstream-Status: Pending > + > +Signed-off-by: Max Krummenacher > +--- > + smem | 41 ++++++++++++++++++++++------------------- > + 1 file changed, 22 insertions(+), 19 deletions(-) > + > +diff --git a/smem b/smem > +index 0cbd925..577d27b 100755 > +--- a/smem > ++++ b/smem > +@@ -1,4 +1,4 @@ > +-#!/usr/bin/env python > ++#!/usr/bin/env python3 > + # > + # smem - a tool for meaningful memory reporting > + # > +@@ -21,7 +21,10 @@ class procdata(object): > + def _list(self): > + return os.listdir(self.source + "/proc") > + def _read(self, f): > +- return file(self.source + '/proc/' + f).read() > ++ afile = open(self.source + '/proc/' + f) > ++ ret = afile.read() > ++ afile.close() > ++ return ret > + def _readlines(self, f): > + return self._read(f).splitlines(True) > + def _stat(self, f): > +@@ -209,7 +212,7 @@ def fromunits(x): > + s = dict(k=2**10, K=2**10, kB=2**10, KB=2**10, > + M=2**20, MB=2**20, G=2**30, GB=2**30, > + T=2**40, TB=2**40) > +- for k,v in s.items(): > ++ for k,v in list(s.items()): > + if x.endswith(k): > + return int(float(x[:-len(k)])*v) > + sys.stderr.write("Memory size should be written with units, for example 1024M\n") > +@@ -240,7 +243,7 @@ def pidtotals(pid): > + maps = pidmaps(pid) > + t = dict(size=0, rss=0, pss=0, shared_clean=0, shared_dirty=0, > + private_clean=0, private_dirty=0, referenced=0, swap=0) > +- for m in maps.iterkeys(): > ++ for m in maps.keys(): > + for k in t: > + t[k] += maps[m].get(k, 0) > + > +@@ -296,7 +299,7 @@ def showpids(): > + ) > + columns = options.columns or 'pid user command swap uss pss rss' > + > +- showtable(pt.keys(), fields, columns.split(), options.sort or 'pss') > ++ showtable(list(pt.keys()), fields, columns.split(), options.sort or 'pss') > + > + def maptotals(pids): > + totals = {} > +@@ -307,7 +310,7 @@ def maptotals(pids): > + try: > + maps = pidmaps(pid) > + seen = {} > +- for m in maps.iterkeys(): > ++ for m in maps.keys(): > + name = maps[m]['name'] > + if name not in totals: > + t = dict(size=0, rss=0, pss=0, shared_clean=0, > +@@ -361,7 +364,7 @@ def showmaps(): > + ) > + columns = options.columns or 'map pids avgpss pss' > + > +- showtable(pt.keys(), fields, columns.split(), options.sort or 'pss') > ++ showtable(list(pt.keys()), fields, columns.split(), options.sort or 'pss') > + > + def usertotals(pids): > + totals = {} > +@@ -383,7 +386,7 @@ def usertotals(pids): > + else: > + t = totals[user] > + > +- for m in maps.iterkeys(): > ++ for m in maps.keys(): > + for k in t: > + t[k] += maps[m].get(k, 0) > + > +@@ -419,7 +422,7 @@ def showusers(): > + ) > + columns = options.columns or 'user count swap uss pss rss' > + > +- showtable(pt.keys(), fields, columns.split(), options.sort or 'pss') > ++ showtable(list(pt.keys()), fields, columns.split(), options.sort or 'pss') > + > + def showsystem(): > + t = totalmem() > +@@ -460,14 +463,14 @@ def showsystem(): > + 'area not reclaimable')) > + > + columns = options.columns or 'area used cache noncache' > +- showtable(range(len(l)), fields, columns.split(), options.sort or 'order') > ++ showtable(list(range(len(l))), fields, columns.split(), options.sort or 'order') > + > + def showfields(fields, f): > + if f != list: > +- print "unknown field", f > +- print "known fields:" > ++ print("unknown field", f) > ++ print("known fields:") > + for l in sorted(fields.keys()): > +- print "%-8s %s" % (l, fields[l][-1]) > ++ print("%-8s %s" % (l, fields[l][-1])) > + > + def showtable(rows, fields, columns, sort): > + header = "" > +@@ -518,10 +521,10 @@ def showtable(rows, fields, columns, sort): > + return > + > + if not options.no_header: > +- print header > ++ print(header) > + > + for k,r in l: > +- print format % tuple([f(v) for f,v in zip(formatter, r)]) > ++ print(format % tuple([f(v) for f,v in zip(formatter, r)])) > + > + if options.totals: > + # totals > +@@ -533,8 +536,8 @@ def showtable(rows, fields, columns, sort): > + else: > + t.append("") > + > +- print "-" * len(header) > +- print format % tuple([f(v) for f,v in zip(formatter, t)]) > ++ print("-" * len(header)) > ++ print(format % tuple([f(v) for f,v in zip(formatter, t)])) > + > + def showpie(l, sort): > + try: > +@@ -605,7 +608,7 @@ def showbar(l, columns, sort): > + > + pl = [] > + ind = numpy.arange(len(l)) > +- for n in xrange(len(rc)): > ++ for n in range(len(rc)): > + pl.append(pylab.bar(ind + offset + width * n, > + [x[1][rc[n]] for x in l], width, color=gc(n))) > + > +@@ -682,7 +685,7 @@ try: > + showsystem() > + else: > + showpids() > +-except IOError, e: > ++except IOError as e: > + if e.errno == errno.EPIPE: > + pass > + except KeyboardInterrupt: > +-- > +2.20.1 > + > diff --git a/meta-oe/recipes-support/smem/smem_1.4.bb b/meta-oe/recipes-support/smem/smem_1.4.bb > index 947c47b0f..4728e6b79 100644 > --- a/meta-oe/recipes-support/smem/smem_1.4.bb > +++ b/meta-oe/recipes-support/smem/smem_1.4.bb > @@ -9,7 +9,10 @@ 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 = " \ > + http://www.selenic.com/${BPN}/download/${BP}.tar.gz \ > + file://0001-smem-convert-to-python-3.patch \ > +" > SRC_URI[md5sum] = "fe79435c3930389bfdb560255c802162" > SRC_URI[sha256sum] = "2ea9f878f4cf3c276774c3f7e2a41977a1f2d64f98d2dcb6a15f1f3d84df61ec" > > @@ -24,7 +27,7 @@ do_install() { > 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" > +RDEPENDS_${PN} += "python3-compression" > > PACKAGES =+ "smemcap" > > -- > 2.20.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From robert.joslyn at redrectangle.org Wed Feb 5 04:23:06 2020 From: robert.joslyn at redrectangle.org (Robert Joslyn) Date: Tue, 4 Feb 2020 20:23:06 -0800 Subject: [oe] [meta-oe][PATCH v2 1/4] iwd: Update to 1.4 Message-ID: <20200205042309.3555549-1-robert.joslyn@redrectangle.org> dbus is not required to compile, but is expected at run time. Move it to RDEPENDS. Backport a patch from upstream to fix build using musl. rawmemchr is a GNU extension that is not supported in musl. >From upstream changelog: ver 1.4: Fix issue with handling Crypto-Binding and invalid MACs. Fix issue with handling change station error results. Fix issue with handling DNS resolving installations. ver 1.3: Fix issue with handling EAP-GTC and password requests. Fix issue with handling Crypto-Binding TLV for PEAPv0. Fix issue with handling key installation and PEAP Phase 2. Fix issue with handling externally triggered scan requests. Fix issue with handling RCPI calculation for RRM requests. ver 1.2: Fix issue with handling scan requests while connecting. Fix issue with handling scan duration for RRM requests. Fix issue with handling parent TSF value for RRM requests. ver 1.1: Fix issue with simple configuration support checks. Fix issue with handling TLS tunnel and PEAPv0. Add support for radio resource management. Signed-off-by: Robert Joslyn --- ...d-redirection-of-input-and-output-fi.patch | 12 ++-- ...0001-build-Support-missing-rawmemchr.patch | 62 +++++++++++++++++++ .../iwd/{iwd_1.0.bb => iwd_1.4.bb} | 7 ++- 3 files changed, 72 insertions(+), 9 deletions(-) create mode 100644 meta-oe/recipes-connectivity/iwd/iwd/0001-build-Support-missing-rawmemchr.patch rename meta-oe/recipes-connectivity/iwd/{iwd_1.0.bb => iwd_1.4.bb} (86%) diff --git a/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch b/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch index 93ef007f8..80126a870 100644 --- a/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch +++ b/meta-oe/recipes-connectivity/iwd/iwd/0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch @@ -1,4 +1,4 @@ -From f2a2b9f445ab1e31fbb27a74744e9a2ededfce17 Mon Sep 17 00:00:00 2001 +From 46fc0e197598579dc05e42f137e84f86a9b926e9 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 4 Nov 2019 16:38:04 -0800 Subject: [PATCH] Makefile.am: Avoid redirection of input and output files @@ -15,26 +15,24 @@ make[1]: *** [Makefile:3544: monitor/iwmon.1] Error 1 Upstream-Status: Pending Signed-off-by: Khem Raj + --- Makefile.am | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am -index 823b7d02..1bd0005c 100644 +index 8c69d9f4..35a25fc0 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -626,8 +626,9 @@ SED_PROCESS = $(AM_V_GEN)$(MKDIR_P) $(dir $@) && $(SED) \ +@@ -629,8 +629,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 < $< > $@ +- --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-oe/recipes-connectivity/iwd/iwd/0001-build-Support-missing-rawmemchr.patch b/meta-oe/recipes-connectivity/iwd/iwd/0001-build-Support-missing-rawmemchr.patch new file mode 100644 index 000000000..733f5fea1 --- /dev/null +++ b/meta-oe/recipes-connectivity/iwd/iwd/0001-build-Support-missing-rawmemchr.patch @@ -0,0 +1,62 @@ +From fcdddf2b726439e049992878f90da607414a1a47 Mon Sep 17 00:00:00 2001 +From: Denis Kenzior +Date: Mon, 3 Feb 2020 11:54:28 -0600 +Subject: [PATCH] build: Support missing rawmemchr + +rawmemchr is a GNU extension in glibc that does not exist in musl. + +Upstream-status: Backport of https://git.kernel.org/pub/scm/network/wireless/iwd.git/commit/?id=fcdddf2b726439e049992878f90da607414a1a47 + +Signed-off-by: Robert Joslyn + +--- + configure.ac | 1 + + src/missing.h | 10 ++++++++++ + src/wiphy.c | 1 + + 3 files changed, 12 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 5ae1401cae17..2d373a47ba68 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -128,6 +128,7 @@ AC_DEFINE_UNQUOTED(WIRED_STORAGEDIR, "${wired_storagedir}", + [Directory for Ethernet daemon storage files]) + + AC_CHECK_FUNCS(explicit_bzero) ++AC_CHECK_FUNCS(rawmemchr) + + AC_CHECK_HEADERS(linux/types.h linux/if_alg.h) + +diff --git a/src/missing.h b/src/missing.h +index 2bb210ae3c81..2cc80aee5d38 100644 +--- a/src/missing.h ++++ b/src/missing.h +@@ -27,3 +27,13 @@ static inline void explicit_bzero(void *s, size_t n) + __asm__ __volatile__ ("" : : "r"(s) : "memory"); + } + #endif ++ ++#ifndef HAVE_RAWMEMCHR ++static inline void *rawmemchr(const void *s, int c) ++{ ++_Pragma("GCC diagnostic push") ++_Pragma("GCC diagnostic ignored \"-Wstringop-overflow=\"") ++ return memchr(s, c, (size_t) -1); ++_Pragma("GCC diagnostic pop") ++} ++#endif +diff --git a/src/wiphy.c b/src/wiphy.c +index 1da479db2dab..511bb27f52b8 100644 +--- a/src/wiphy.c ++++ b/src/wiphy.c +@@ -37,6 +37,7 @@ + + #include "linux/nl80211.h" + ++#include "src/missing.h" + #include "src/iwd.h" + #include "src/module.h" + #include "src/ie.h" +-- +2.21.0 + diff --git a/meta-oe/recipes-connectivity/iwd/iwd_1.0.bb b/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb similarity index 86% rename from meta-oe/recipes-connectivity/iwd/iwd_1.0.bb rename to meta-oe/recipes-connectivity/iwd/iwd_1.4.bb index cc34ca221..ed8f21ac1 100644 --- a/meta-oe/recipes-connectivity/iwd/iwd_1.0.bb +++ b/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb @@ -4,12 +4,13 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" inherit autotools pkgconfig systemd python3native -DEPENDS = "ell readline dbus python3-docutils-native" +DEPENDS = "ell readline 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 \ + file://0001-build-Support-missing-rawmemchr.patch \ " -SRCREV = "971e1d2038a203ad43bd2278a811a9e5ec8d52db" +SRCREV = "860fa4697f349da7791ecf22ca76f9ac0e5de261" S = "${WORKDIR}/git" PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" @@ -32,6 +33,8 @@ FILES_${PN} += "${datadir}/dbus-1 ${nonarch_libdir}/modules-load.d ${systemd_uni SYSTEMD_SERVICE_${PN} = "iwd.service ${@bb.utils.contains('PACKAGECONFIG', 'wired', 'ead.service', '', d)}" +RDEPENDS_${PN} = "dbus" + RRECOMMENDS_${PN} = "\ kernel-module-pkcs7-message \ kernel-module-pkcs8-key-parser \ -- 2.24.1 From robert.joslyn at redrectangle.org Wed Feb 5 04:23:07 2020 From: robert.joslyn at redrectangle.org (Robert Joslyn) Date: Tue, 4 Feb 2020 20:23:07 -0800 Subject: [oe] [meta-oe][PATCH v2 2/4] iwd: Add PACKAGECONFIG options In-Reply-To: <20200205042309.3555549-1-robert.joslyn@redrectangle.org> References: <20200205042309.3555549-1-robert.joslyn@redrectangle.org> Message-ID: <20200205042309.3555549-2-robert.joslyn@redrectangle.org> Make it easier to disable optional client, monitor, and man page components and their dependencies. A user may want to disable the client to avoid the use of GPLv3 readline. Signed-off-by: Robert Joslyn --- meta-oe/recipes-connectivity/iwd/iwd_1.4.bb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb b/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb index ed8f21ac1..cfced50a0 100644 --- a/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb +++ b/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb @@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" inherit autotools pkgconfig systemd python3native -DEPENDS = "ell readline python3-docutils-native" +DEPENDS = "ell" SRC_URI = "git://git.kernel.org/pub/scm/network/wireless/iwd.git \ file://0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch \ @@ -13,7 +13,15 @@ SRC_URI = "git://git.kernel.org/pub/scm/network/wireless/iwd.git \ SRCREV = "860fa4697f349da7791ecf22ca76f9ac0e5de261" S = "${WORKDIR}/git" -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" +PACKAGECONFIG ??= " \ + client \ + monitor \ + manual-pages \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ +" +PACKAGECONFIG[client] = "--enable-client,--disable-client,readline" +PACKAGECONFIG[monitor] = "--enable-monitor,--disable-monitor" +PACKAGECONFIG[manual-pages] = "--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" @@ -27,6 +35,8 @@ do_configure_prepend () { do_install_append() { mkdir --parents ${D}${docdir}/${BPN} install -m644 ${S}/doc/*.txt ${D}${docdir}/${BPN} + # 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/" -- 2.24.1 From robert.joslyn at redrectangle.org Wed Feb 5 04:23:08 2020 From: robert.joslyn at redrectangle.org (Robert Joslyn) Date: Tue, 4 Feb 2020 20:23:08 -0800 Subject: [oe] [meta-oe][PATCH v2 3/4] iwd: Use manpages class to control documentation In-Reply-To: <20200205042309.3555549-1-robert.joslyn@redrectangle.org> References: <20200205042309.3555549-1-robert.joslyn@redrectangle.org> Message-ID: <20200205042309.3555549-3-robert.joslyn@redrectangle.org> This class allows the api-documentation distro feature to control man page generation. Remove copying all .txt files from ${S}/doc since these are developer documents and wouldn't be of any use to users on the target device. Signed-off-by: Robert Joslyn --- meta-oe/recipes-connectivity/iwd/iwd_1.4.bb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb b/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb index cfced50a0..9d63e5b73 100644 --- a/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb +++ b/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb @@ -2,7 +2,7 @@ DESCRIPTION = "Wireless daemon for Linux" LICENSE = "LGPL-2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" -inherit autotools pkgconfig systemd python3native +inherit autotools manpages pkgconfig systemd python3native DEPENDS = "ell" @@ -16,12 +16,11 @@ S = "${WORKDIR}/git" PACKAGECONFIG ??= " \ client \ monitor \ - manual-pages \ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ " PACKAGECONFIG[client] = "--enable-client,--disable-client,readline" PACKAGECONFIG[monitor] = "--enable-monitor,--disable-monitor" -PACKAGECONFIG[manual-pages] = "--enable-manual-pages,--disable-manual-pages,python3-docutils-native" +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" @@ -33,8 +32,6 @@ do_configure_prepend () { } do_install_append() { - mkdir --parents ${D}${docdir}/${BPN} - install -m644 ${S}/doc/*.txt ${D}${docdir}/${BPN} # If client and monitor are disabled, bindir is empty, causing a QA error rmdir --ignore-fail-on-non-empty ${D}/${bindir} } -- 2.24.1 From robert.joslyn at redrectangle.org Wed Feb 5 04:23:09 2020 From: robert.joslyn at redrectangle.org (Robert Joslyn) Date: Tue, 4 Feb 2020 20:23:09 -0800 Subject: [oe] [meta-oe][PATCH v2 4/4] iwd: Update formatting In-Reply-To: <20200205042309.3555549-1-robert.joslyn@redrectangle.org> References: <20200205042309.3555549-1-robert.joslyn@redrectangle.org> Message-ID: <20200205042309.3555549-4-robert.joslyn@redrectangle.org> Try to conform better to the style guide. Signed-off-by: Robert Joslyn --- meta-oe/recipes-connectivity/iwd/iwd_1.4.bb | 35 +++++++++++++-------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb b/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb index 9d63e5b73..f758781e3 100644 --- a/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb +++ b/meta-oe/recipes-connectivity/iwd/iwd_1.4.bb @@ -1,18 +1,20 @@ -DESCRIPTION = "Wireless daemon for Linux" +SUMMARY = "Wireless daemon for Linux" +HOMEPAGE = "https://iwd.wiki.kernel.org/" LICENSE = "LGPL-2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" -inherit autotools manpages pkgconfig systemd python3native - DEPENDS = "ell" -SRC_URI = "git://git.kernel.org/pub/scm/network/wireless/iwd.git \ - file://0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch \ - file://0001-build-Support-missing-rawmemchr.patch \ - " +SRC_URI = " \ + git://git.kernel.org/pub/scm/network/wireless/iwd.git \ + file://0001-Makefile.am-Avoid-redirection-of-input-and-output-fi.patch \ + file://0001-build-Support-missing-rawmemchr.patch \ +" SRCREV = "860fa4697f349da7791ecf22ca76f9ac0e5de261" S = "${WORKDIR}/git" +inherit autotools manpages pkgconfig python3native systemd + PACKAGECONFIG ??= " \ client \ monitor \ @@ -25,10 +27,15 @@ 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" +EXTRA_OECONF = "--enable-external-ell" -do_configure_prepend () { - mkdir -p ${S}/build-aux +SYSTEMD_SERVICE_${PN} = " \ + iwd.service \ + ${@bb.utils.contains('PACKAGECONFIG', 'wired', 'ead.service', '', d)} \ +" + +do_configure_prepend() { + install -d ${S}/build-aux } do_install_append() { @@ -36,9 +43,11 @@ do_install_append() { rmdir --ignore-fail-on-non-empty ${D}/${bindir} } -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)}" +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${nonarch_libdir}/modules-load.d \ + ${systemd_unitdir}/network \ +" RDEPENDS_${PN} = "dbus" -- 2.24.1 From max.oss.09 at gmail.com Wed Feb 5 07:55:59 2020 From: max.oss.09 at gmail.com (Max Krummenacher) Date: Wed, 05 Feb 2020 08:55:59 +0100 Subject: [oe] [meta-oe][PATCH] smem: use python 3 In-Reply-To: References: <20200204234013.59800-1-max.krummenacher@toradex.com> Message-ID: <1580889359.3659.7.camel@gmail.com> Am Dienstag, den 04.02.2020, 18:59 -0800 schrieb Khem Raj: > Thanks for doing this. > > On Tue, Feb 4, 2020 at 3:42 PM Max Krummenacher wrote: > > > > There seems to be no user of python-textutils python-shell python-codecs > > in the script, so these rdepends are dropped. > > > > OK > > > On a i.MX6 based machine smem runs with just python3-compression and > > its dependencies installed. > > ok. Perhaps, it pulls in right set of rdeps indirectly? This is not what I meant with the sentence, runtime agrees that dropping the python modules doesn't affect the operation of smem. On the module I get the following python packages installed: opkg list | grep python libpython3.8-1.0 - 3.8.1-r0 python3-compression - 3.8.1-r0 python3-core - 3.8.1-r0 On which smem directly or indirectly rdepends on: depends-nokernel-nolibc-noupdate-nomodules.dot: "smem" -> "python3-compression" "python3-core" -> "libpython3.8-1.0" "python3-compression" -> "python3-core" So by installing smem all the installed python packages I had during my test are runtime dependencies of smem and thus available. I guess we are fine. Max > > > > > Signed-off-by: Max Krummenacher > > --- > > .../smem/0001-smem-convert-to-python-3.patch | 161 ++++++++++++++++++ > > meta-oe/recipes-support/smem/smem_1.4.bb | 7 +- > > 2 files changed, 166 insertions(+), 2 deletions(-) > > create mode 100644 meta-oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch > > Perhaps using 1.5 tag would be desired since that already has py3 fixes > https://selenic.com/repo/smem/archive/1.5.tar.bz2 > > Or maybe we can cherry pick the patches between 1.4 tag and 1.5 tag > there are 6 or 7 patches in total [1] > > https://selenic.com/repo/smem > > > > > diff --git a/meta-oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch b/meta- > > oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch > > new file mode 100644 > > index 000000000..85f35be44 > > --- /dev/null > > +++ b/meta-oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch > > @@ -0,0 +1,161 @@ > > +From 5535a524f6db57c0b2e4a539db733fd9e840c97e Mon Sep 17 00:00:00 2001 > > +From: Max Krummenacher > > +Date: Mon, 3 Feb 2020 21:04:42 +0000 > > +Subject: [PATCH] smem: convert to python 3 > > + > > +Upstream-Status: Pending > > + > > +Signed-off-by: Max Krummenacher > > +--- > > + smem | 41 ++++++++++++++++++++++------------------- > > + 1 file changed, 22 insertions(+), 19 deletions(-) > > + > > +diff --git a/smem b/smem > > +index 0cbd925..577d27b 100755 > > +--- a/smem > > ++++ b/smem > > +@@ -1,4 +1,4 @@ > > +-#!/usr/bin/env python > > ++#!/usr/bin/env python3 > > + # > > + # smem - a tool for meaningful memory reporting > > + # > > +@@ -21,7 +21,10 @@ class procdata(object): > > + def _list(self): > > + return os.listdir(self.source + "/proc") > > + def _read(self, f): > > +- return file(self.source + '/proc/' + f).read() > > ++ afile = open(self.source + '/proc/' + f) > > ++ ret = afile.read() > > ++ afile.close() > > ++ return ret > > + def _readlines(self, f): > > + return self._read(f).splitlines(True) > > + def _stat(self, f): > > +@@ -209,7 +212,7 @@ def fromunits(x): > > + s = dict(k=2**10, K=2**10, kB=2**10, KB=2**10, > > + M=2**20, MB=2**20, G=2**30, GB=2**30, > > + T=2**40, TB=2**40) > > +- for k,v in s.items(): > > ++ for k,v in list(s.items()): > > + if x.endswith(k): > > + return int(float(x[:-len(k)])*v) > > + sys.stderr.write("Memory size should be written with units, for example 1024M\n") > > +@@ -240,7 +243,7 @@ def pidtotals(pid): > > + maps = pidmaps(pid) > > + t = dict(size=0, rss=0, pss=0, shared_clean=0, shared_dirty=0, > > + private_clean=0, private_dirty=0, referenced=0, swap=0) > > +- for m in maps.iterkeys(): > > ++ for m in maps.keys(): > > + for k in t: > > + t[k] += maps[m].get(k, 0) > > + > > +@@ -296,7 +299,7 @@ def showpids(): > > + ) > > + columns = options.columns or 'pid user command swap uss pss rss' > > + > > +- showtable(pt.keys(), fields, columns.split(), options.sort or 'pss') > > ++ showtable(list(pt.keys()), fields, columns.split(), options.sort or 'pss') > > + > > + def maptotals(pids): > > + totals = {} > > +@@ -307,7 +310,7 @@ def maptotals(pids): > > + try: > > + maps = pidmaps(pid) > > + seen = {} > > +- for m in maps.iterkeys(): > > ++ for m in maps.keys(): > > + name = maps[m]['name'] > > + if name not in totals: > > + t = dict(size=0, rss=0, pss=0, shared_clean=0, > > +@@ -361,7 +364,7 @@ def showmaps(): > > + ) > > + columns = options.columns or 'map pids avgpss pss' > > + > > +- showtable(pt.keys(), fields, columns.split(), options.sort or 'pss') > > ++ showtable(list(pt.keys()), fields, columns.split(), options.sort or 'pss') > > + > > + def usertotals(pids): > > + totals = {} > > +@@ -383,7 +386,7 @@ def usertotals(pids): > > + else: > > + t = totals[user] > > + > > +- for m in maps.iterkeys(): > > ++ for m in maps.keys(): > > + for k in t: > > + t[k] += maps[m].get(k, 0) > > + > > +@@ -419,7 +422,7 @@ def showusers(): > > + ) > > + columns = options.columns or 'user count swap uss pss rss' > > + > > +- showtable(pt.keys(), fields, columns.split(), options.sort or 'pss') > > ++ showtable(list(pt.keys()), fields, columns.split(), options.sort or 'pss') > > + > > + def showsystem(): > > + t = totalmem() > > +@@ -460,14 +463,14 @@ def showsystem(): > > + 'area not reclaimable')) > > + > > + columns = options.columns or 'area used cache noncache' > > +- showtable(range(len(l)), fields, columns.split(), options.sort or 'order') > > ++ showtable(list(range(len(l))), fields, columns.split(), options.sort or 'order') > > + > > + def showfields(fields, f): > > + if f != list: > > +- print "unknown field", f > > +- print "known fields:" > > ++ print("unknown field", f) > > ++ print("known fields:") > > + for l in sorted(fields.keys()): > > +- print "%-8s %s" % (l, fields[l][-1]) > > ++ print("%-8s %s" % (l, fields[l][-1])) > > + > > + def showtable(rows, fields, columns, sort): > > + header = "" > > +@@ -518,10 +521,10 @@ def showtable(rows, fields, columns, sort): > > + return > > + > > + if not options.no_header: > > +- print header > > ++ print(header) > > + > > + for k,r in l: > > +- print format % tuple([f(v) for f,v in zip(formatter, r)]) > > ++ print(format % tuple([f(v) for f,v in zip(formatter, r)])) > > + > > + if options.totals: > > + # totals > > +@@ -533,8 +536,8 @@ def showtable(rows, fields, columns, sort): > > + else: > > + t.append("") > > + > > +- print "-" * len(header) > > +- print format % tuple([f(v) for f,v in zip(formatter, t)]) > > ++ print("-" * len(header)) > > ++ print(format % tuple([f(v) for f,v in zip(formatter, t)])) > > + > > + def showpie(l, sort): > > + try: > > +@@ -605,7 +608,7 @@ def showbar(l, columns, sort): > > + > > + pl = [] > > + ind = numpy.arange(len(l)) > > +- for n in xrange(len(rc)): > > ++ for n in range(len(rc)): > > + pl.append(pylab.bar(ind + offset + width * n, > > + [x[1][rc[n]] for x in l], width, color=gc(n))) > > + > > +@@ -682,7 +685,7 @@ try: > > + showsystem() > > + else: > > + showpids() > > +-except IOError, e: > > ++except IOError as e: > > + if e.errno == errno.EPIPE: > > + pass > > + except KeyboardInterrupt: > > +-- > > +2.20.1 > > + > > diff --git a/meta-oe/recipes-support/smem/smem_1.4.bb b/meta-oe/recipes-support/smem/smem_1.4.bb > > index 947c47b0f..4728e6b79 100644 > > --- a/meta-oe/recipes-support/smem/smem_1.4.bb > > +++ b/meta-oe/recipes-support/smem/smem_1.4.bb > > @@ -9,7 +9,10 @@ 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 = " \ > > + http://www.selenic.com/${BPN}/download/${BP}.tar.gz \ > > + file://0001-smem-convert-to-python-3.patch \ > > +" > > SRC_URI[md5sum] = "fe79435c3930389bfdb560255c802162" > > SRC_URI[sha256sum] = "2ea9f878f4cf3c276774c3f7e2a41977a1f2d64f98d2dcb6a15f1f3d84df61ec" > > > > @@ -24,7 +27,7 @@ do_install() { > > 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" > > +RDEPENDS_${PN} += "python3-compression" > > > > PACKAGES =+ "smemcap" > > > > -- > > 2.20.1 > > > > -- > > _______________________________________________ > > Openembedded-devel mailing list > > Openembedded-devel at lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From schnitzeltony at gmail.com Wed Feb 5 09:25:00 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Wed, 5 Feb 2020 10:25:00 +0100 Subject: [oe] [PATCH][zeus] libldb: upgrade 1.5.5 -> 1.5.6 Message-ID: <20200205092500.23165-1-schnitzeltony@gmail.com> From: Yi Zhao Signed-off-by: Yi Zhao Signed-off-by: Khem Raj (cherry picked from commit 2b3fd534874aee125a6c79c70c93b1aa498fda3f) This is necessary for zeus to fix samba build as reported in [1] [1] http://lists.openembedded.org/pipermail/openembedded-devel/2020-January/204168.html Signed-off-by: Andreas M?ller --- .../libldb/{libldb_1.5.5.bb => libldb_1.5.6.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-networking/recipes-support/libldb/{libldb_1.5.5.bb => libldb_1.5.6.bb} (95%) diff --git a/meta-networking/recipes-support/libldb/libldb_1.5.5.bb b/meta-networking/recipes-support/libldb/libldb_1.5.6.bb similarity index 95% rename from meta-networking/recipes-support/libldb/libldb_1.5.5.bb rename to meta-networking/recipes-support/libldb/libldb_1.5.6.bb index b19c964d8..99eb6f9ce 100644 --- a/meta-networking/recipes-support/libldb/libldb_1.5.5.bb +++ b/meta-networking/recipes-support/libldb/libldb_1.5.6.bb @@ -33,8 +33,8 @@ LIC_FILES_CHKSUM = "file://pyldb.h;endline=24;md5=dfbd238cecad76957f7f860fbe9ada file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \ file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42" -SRC_URI[md5sum] = "339a41ac9efaec680e6d1469dd9aa35b" -SRC_URI[sha256sum] = "199f5861aa863f538ec66d5fa95ecc13254a2030c53daf0e47363fa9ba235c68" +SRC_URI[md5sum] = "fc58ef432c1fcb03fc3bb6cccce08977" +SRC_URI[sha256sum] = "ff82474d0bf109e415a2d50334bde5715f486a53ff4bb8c7f74459dd229e975b" inherit waf-samba distro_features_check REQUIRED_DISTRO_FEATURES = "pam" -- 2.21.0 From Qi.Chen at windriver.com Wed Feb 5 08:11:42 2020 From: Qi.Chen at windriver.com (Chen Qi) Date: Wed, 5 Feb 2020 00:11:42 -0800 Subject: [oe] [meta-oe][PATCH] xmlsec1: fix for multilib Message-ID: <20200205081142.54027-1-Qi.Chen@windriver.com> With previous change of nss/nspr in this recipe, multilib build failure at do_configure. Fix it by not using hardcoded /lib/. Signed-off-by: Chen Qi --- .../0001-nss-nspr-fix-for-multilib.patch | 52 +++++++++++++++++++ .../recipes-support/xmlsec1/xmlsec1_1.2.29.bb | 3 +- 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 meta-oe/recipes-support/xmlsec1/xmlsec1/0001-nss-nspr-fix-for-multilib.patch diff --git a/meta-oe/recipes-support/xmlsec1/xmlsec1/0001-nss-nspr-fix-for-multilib.patch b/meta-oe/recipes-support/xmlsec1/xmlsec1/0001-nss-nspr-fix-for-multilib.patch new file mode 100644 index 000000000..53c119765 --- /dev/null +++ b/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 +Date: Tue, 4 Feb 2020 23:39:49 -0800 +Subject: [PATCH] nss/nspr: fix for multilib + +Upstream-Status: Pending + +Signed-off-by: Chen Qi +--- + 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-oe/recipes-support/xmlsec1/xmlsec1_1.2.29.bb b/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.29.bb index 3e25e8d35..8fc611a27 100644 --- a/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.29.bb +++ b/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.29.bb @@ -17,6 +17,7 @@ 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 \ " @@ -31,7 +32,7 @@ inherit autotools-brokensep ptest pkgconfig 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,," -- 2.21.0 From matthias.schoepfer at googlemail.com Wed Feb 5 13:20:53 2020 From: matthias.schoepfer at googlemail.com (Matthias Schoepfer) Date: Wed, 5 Feb 2020 14:20:53 +0100 Subject: [oe] [meta-java][g0hl1n/wip-jdk8u242ga][PATCH] Fix building openjre-8 242 In-Reply-To: <20200127052211.GA2138442@pcleri> References: <20200126111035.273501-1-jacob.kroon@gmail.com> <20200126112146.GB2043417@pcleri> <80d30f83-b342-cfb7-9114-86ee61198fd7@gmail.com> <424d1981-b4f0-de86-f18b-8a216339d3ea@gmail.com> <20200127052211.GA2138442@pcleri> Message-ID: <639e9a61-3ef7-e391-649d-9b53567ded40@googlemail.com> Hi Richard and Jacob, I just stumbled across the very same error, but on aarch64. I tried to switch to the wip-branch, but I get ParseError at /[...]/meta-java/recipes-core/openjdk/openjdk-7_99b00-2.6.5.bb:7: Could not inherit file classes/features_check.bbclass I am on zeus... Regards, Matthias On 1/27/20 6:22 AM, Richard Leitner wrote: > On Sun, Jan 26, 2020 at 09:03:45PM +0100, Jacob Kroon wrote: >> On 1/26/20 12:26 PM, Jacob Kroon wrote: > > ... > >> >> Btw, as I mentioned my build host is an up2date Fedora 31, x86-64. Any idea >> why these errors aren't showing up on your test builds ? > > In my tests I only built the openjdk package, therefore the "find" issue > didn't trigger. > > The linker errors were fixed in aarch32 [1] and aarch64 [2] upstream. I > just double-checked my tests and it seems I only built for those two > architectures... Time for me to rework my tests ;-) > > So I will adapt and apply your PATCH and push it to the branch. Thanks > for your work! > If you have any further feedback/tests for the 242 update please feel > free to share ;-) > > regards;rl > > [1] http://hg.openjdk.java.net/aarch32-port/jdk8u/jdk/rev/4a51a4ac7fc2 > [2] https://hg.openjdk.java.net/shenandoah/jdk8/jdk/rev/391be061dfc7 > >> >> Cheers, >> Jacob -- Dr.-Ing. Matthias Sch?pfer matthias.schoepfer at googlemail.com From ticotimo at gmail.com Wed Feb 5 14:41:17 2020 From: ticotimo at gmail.com (Tim Orling) Date: Wed, 5 Feb 2020 06:41:17 -0800 Subject: [oe] [meta-python2][PATCH] python2: add ntpath Message-ID: <20200205144117.21693-1-ticotimo@gmail.com> From: Armin Kuster python3 has this but python is missing this. [Yocto #13740] Signed-off-by: Armin Kuster Signed-off-by: Tim Orling --- recipes-devtools/python/python/python2-manifest.json | 1 + 1 file changed, 1 insertion(+) diff --git a/recipes-devtools/python/python/python2-manifest.json b/recipes-devtools/python/python/python2-manifest.json index eb52e862..fd98774d 100644 --- a/recipes-devtools/python/python/python2-manifest.json +++ b/recipes-devtools/python/python/python2-manifest.json @@ -267,6 +267,7 @@ "${libdir}/python2.7/lib-dynload/xreadlines.so", "${libdir}/python2.7/linecache.py", "${libdir}/python2.7/new.py", + "${libdir}/python2.7/ntpath.py", "${libdir}/python2.7/os.py", "${libdir}/python2.7/platform.py", "${libdir}/python2.7/posixpath.py", -- 2.25.0 From martin.jansa at gmail.com Wed Feb 5 14:59:39 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Wed, 5 Feb 2020 15:59:39 +0100 Subject: [oe] [meta-python][zeus][PATCH v2 1/2] python-twisted: add required RDEPENDS for twistd In-Reply-To: References: <20200130153405.26756-1-Trevor.Gamblin@windriver.com> Message-ID: <20200205145939.tadzklcfscc442eg@jama> On Mon, Feb 03, 2020 at 08:45:26PM -0800, Tim Orling wrote: > On Mon, Feb 3, 2020 at 8:30 PM Martin Jansa wrote: > > > Please send this fix to normal meta-python in meta-oe/zeus: > > > > http://git.openembedded.org/meta-openembedded/tree/meta-python/recipes-devtools/python/python-twisted.inc?h=zeus > > > > BTW: Why are you using meta-python2 with zeus branch? It imho doesn't have > > anything which would be missing in oe-core+meta-oe zeus branch and fixes > > like this should be resolved also for people using zeus branch without > > overlaying them by meta-python2. > > > > > Because, as I believe I have said before, I need a prior release to test > the infrastructure on. zeus allows me to work on more than just master > until we have the next stable release branching. The question was for Trevor, I understood that you wanted zeus branch to test the infrastructure, but I still don't understand why any "project" should use meta-python2/zeus for the python2 bits which are still in oe-core/zeus + meta-python/zeus. I see that there are some differences in the recipes in zeus, e.g.: martin at jama:/OE/meta-python2$ diff recipes-devtools/python/python-configparser_3.8.1.bb ../meta-openembedded/meta-python/recipes-devtools/python/python-configparser_3.8.1.bb 1c1 < inherit setuptools python-backports-init --- > inherit setuptools martin at jama:/OE/meta-python2$ diff recipes-devtools/python/python-dbus_1.2.12.bb ../meta-openembedded/meta-python/recipes-devtools/python/python-dbus_1.2.12.bb 18,19c18,19 < # documentation needs python-sphinx, which is not in oe-core or meta-python2 for now < # change to use PACKAGECONFIG when python-sphinx is added to oe-core or meta-python2 --- > # documentation needs python-sphinx, which is not in oe-core or meta-python for now > # change to use PACKAGECONFIG when python-sphinx is added to oe-core or meta-python But README nor your reply explained to me, what's the benefit of using meta-python2/zeus instead of the existing python2 recipes which are in oe-core and meta-oe zeus. That's why I've never tried to use it with zeus, nor submitted the python-numpy and python-nose recipes which got removed from oe-core/zeus, but weren't re-introduced in meta-python2 python-nose was removed in: http://git.openembedded.org/openembedded-core/commit/?h=zeus&id=9f07b2836405d86e869780f8f1ae00843eadc409 python-numpy in: http://git.openembedded.org/openembedded-core/commit/?h=zeus&id=4e9659f24e2f699effadcbe378b6a746d77ccdbd from oe-core/zeus. > It has nothing to do with what is missing from meta-oe, it is a viable > alternative that also helps prove out my workflow as I have EXTREMELY > LIMITED TIME to support this. Understood, thanks for doing this work, I'm happy to use and contribute to master branch, it's just that I still don't understand the purpose of zeus branch (other than testing the infrastructure by you) and I hope you agree that bug fixes for python2 issues like the one in this thread belong to meta-oe/meta-python zeus in first place (because that's the layer which what most people are probably still using with zeus). Cheers, > On Fri, Jan 31, 2020 at 10:29 AM Trevor Gamblin < > > Trevor.Gamblin at windriver.com> wrote: > > > > > From: Trevor Gamblin > > > > > > python-twisted is currently missing some packages for its /usr/bin/twistd > > > executable to function. Add these to the RDEPENDS list, and also clean up > > > formatting since the list is getting long. > > > > > > Note that a similar patch has already been submitted for master branch, > > > but the python2 version of twisted needs more explicit RDEPENDS than the > > > python3 version submitted to master in order for /usr/bin/twistd to work > > > properly. > > > > > > Signed-off-by: Trevor Gamblin > > > --- > > > .../recipes-devtools/python/python-twisted.inc | 18 +++++++++++++++++- > > > 1 file changed, 17 insertions(+), 1 deletion(-) > > > > > > diff --git a/meta-python/recipes-devtools/python/python-twisted.inc > > > b/meta-python/recipes-devtools/python/python-twisted.inc > > > index d70104dc2..024a9fa7c 100644 > > > --- a/meta-python/recipes-devtools/python/python-twisted.inc > > > +++ b/meta-python/recipes-devtools/python/python-twisted.inc > > > @@ -56,7 +56,23 @@ RDEPENDS_${PN} = "\ > > > ${PN}-zsh \ > > > " > > > > > > -RDEPENDS_${PN}-core = "${PYTHON_PN}-core ${PYTHON_PN}-zopeinterface > > > ${PYTHON_PN}-incremental ${PYTHON_PN}-constantly ${PYTHON_PN}-hyperlink > > > ${PYTHON_PN}-automat" > > > +RDEPENDS_${PN}-core = "${PYTHON_PN}-automat \ > > > + ${PYTHON_PN}-constantly \ > > > + ${PYTHON_PN}-core \ > > > + ${PYTHON_PN}-debugger \ > > > + ${PYTHON_PN}-hyperlink \ > > > + ${PYTHON_PN}-incremental \ > > > + ${PYTHON_PN}-misc \ > > > + ${PYTHON_PN}-pkg-resources \ > > > + ${PYTHON_PN}-pkgutil \ > > > + ${PYTHON_PN}-plistlib \ > > > + ${PYTHON_PN}-pyhamcrest \ > > > + ${PYTHON_PN}-pyserial \ > > > + ${PYTHON_PN}-setuptools \ > > > + ${PYTHON_PN}-unixadmin \ > > > + ${PYTHON_PN}-zopeinterface \ > > > +" > > > + > > > RDEPENDS_${PN}-test = "${PN}" > > > RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols" > > > RDEPENDS_${PN}-mail = "${PN}-core ${PN}-protocols" > > > -- > > > 2.24.0 > > > > > > -- > > > _______________________________________________ > > > Openembedded-devel mailing list > > > Openembedded-devel at lists.openembedded.org > > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > > > > > -- > > _______________________________________________ > > Openembedded-devel mailing list > > Openembedded-devel at lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > > -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: not available URL: From trevor.gamblin at windriver.com Wed Feb 5 15:16:01 2020 From: trevor.gamblin at windriver.com (Trevor Gamblin) Date: Wed, 5 Feb 2020 10:16:01 -0500 Subject: [oe] [meta-python][zeus][PATCH v2 1/2] python-twisted: add required RDEPENDS for twistd In-Reply-To: <20200205145939.tadzklcfscc442eg@jama> References: <20200130153405.26756-1-Trevor.Gamblin@windriver.com> <20200205145939.tadzklcfscc442eg@jama> Message-ID: <9c5c3983-5b16-eae0-db77-d273ba65a699@windriver.com> On 2/5/20 9:59 AM, Martin Jansa wrote: > On Mon, Feb 03, 2020 at 08:45:26PM -0800, Tim Orling wrote: >> On Mon, Feb 3, 2020 at 8:30 PM Martin Jansa wrote: >> >>> Please send this fix to normal meta-python in meta-oe/zeus: >>> >>> http://git.openembedded.org/meta-openembedded/tree/meta-python/recipes-devtools/python/python-twisted.inc?h=zeus >>> >>> BTW: Why are you using meta-python2 with zeus branch? It imho doesn't have >>> anything which would be missing in oe-core+meta-oe zeus branch and fixes >>> like this should be resolved also for people using zeus branch without >>> overlaying them by meta-python2. >>> >>> >> Because, as I believe I have said before, I need a prior release to test >> the infrastructure on. zeus allows me to work on more than just master >> until we have the next stable release branching. > The question was for Trevor, I understood that you wanted zeus branch to > test the infrastructure, but I still don't understand why any "project" > should use meta-python2/zeus for the python2 bits which are still in > oe-core/zeus + meta-python/zeus. I'm not sure if I'm misunderstanding, or if I have been the cause for confusion in my summary. When the reporter filed https://bugzilla.yoctoproject.org/show_bug.cgi?id=13741, it was clear he was using the python 2.x version of Twisted, on the zeus branch of meta-openembedded (based on the version of Twisted that he reported). The patch was written and tested using meta-oe/meta-python zeus and submitted for that layer. I suppose it could be applied to meta-python2 as well. > > I see that there are some differences in the recipes in zeus, e.g.: > > martin at jama:/OE/meta-python2$ diff recipes-devtools/python/python-configparser_3.8.1.bb ../meta-openembedded/meta-python/recipes-devtools/python/python-configparser_3.8.1.bb > 1c1 > < inherit setuptools python-backports-init > --- >> inherit setuptools > martin at jama:/OE/meta-python2$ diff recipes-devtools/python/python-dbus_1.2.12.bb ../meta-openembedded/meta-python/recipes-devtools/python/python-dbus_1.2.12.bb > 18,19c18,19 > < # documentation needs python-sphinx, which is not in oe-core or meta-python2 for now > < # change to use PACKAGECONFIG when python-sphinx is added to oe-core or meta-python2 > --- >> # documentation needs python-sphinx, which is not in oe-core or meta-python for now >> # change to use PACKAGECONFIG when python-sphinx is added to oe-core or meta-python > But README nor your reply explained to me, what's the benefit of using meta-python2/zeus > instead of the existing python2 recipes which are in oe-core and meta-oe zeus. That's why > I've never tried to use it with zeus, nor submitted the python-numpy and python-nose > recipes which got removed from oe-core/zeus, but weren't re-introduced in meta-python2 > python-nose was removed in: > http://git.openembedded.org/openembedded-core/commit/?h=zeus&id=9f07b2836405d86e869780f8f1ae00843eadc409 > python-numpy in: > http://git.openembedded.org/openembedded-core/commit/?h=zeus&id=4e9659f24e2f699effadcbe378b6a746d77ccdbd > from oe-core/zeus. > >> It has nothing to do with what is missing from meta-oe, it is a viable >> alternative that also helps prove out my workflow as I have EXTREMELY >> LIMITED TIME to support this. > Understood, thanks for doing this work, I'm happy to use and contribute to > master branch, it's just that I still don't understand the purpose of zeus > branch (other than testing the infrastructure by you) and I hope you agree > that bug fixes for python2 issues like the one in this thread belong > to meta-oe/meta-python zeus in first place (because that's the layer which > what most people are probably still using with zeus). > > Cheers, > >> On Fri, Jan 31, 2020 at 10:29 AM Trevor Gamblin < >>> Trevor.Gamblin at windriver.com> wrote: >>> >>>> From: Trevor Gamblin >>>> >>>> python-twisted is currently missing some packages for its /usr/bin/twistd >>>> executable to function. Add these to the RDEPENDS list, and also clean up >>>> formatting since the list is getting long. >>>> >>>> Note that a similar patch has already been submitted for master branch, >>>> but the python2 version of twisted needs more explicit RDEPENDS than the >>>> python3 version submitted to master in order for /usr/bin/twistd to work >>>> properly. >>>> >>>> Signed-off-by: Trevor Gamblin >>>> --- >>>> .../recipes-devtools/python/python-twisted.inc | 18 +++++++++++++++++- >>>> 1 file changed, 17 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/meta-python/recipes-devtools/python/python-twisted.inc >>>> b/meta-python/recipes-devtools/python/python-twisted.inc >>>> index d70104dc2..024a9fa7c 100644 >>>> --- a/meta-python/recipes-devtools/python/python-twisted.inc >>>> +++ b/meta-python/recipes-devtools/python/python-twisted.inc >>>> @@ -56,7 +56,23 @@ RDEPENDS_${PN} = "\ >>>> ${PN}-zsh \ >>>> " >>>> >>>> -RDEPENDS_${PN}-core = "${PYTHON_PN}-core ${PYTHON_PN}-zopeinterface >>>> ${PYTHON_PN}-incremental ${PYTHON_PN}-constantly ${PYTHON_PN}-hyperlink >>>> ${PYTHON_PN}-automat" >>>> +RDEPENDS_${PN}-core = "${PYTHON_PN}-automat \ >>>> + ${PYTHON_PN}-constantly \ >>>> + ${PYTHON_PN}-core \ >>>> + ${PYTHON_PN}-debugger \ >>>> + ${PYTHON_PN}-hyperlink \ >>>> + ${PYTHON_PN}-incremental \ >>>> + ${PYTHON_PN}-misc \ >>>> + ${PYTHON_PN}-pkg-resources \ >>>> + ${PYTHON_PN}-pkgutil \ >>>> + ${PYTHON_PN}-plistlib \ >>>> + ${PYTHON_PN}-pyhamcrest \ >>>> + ${PYTHON_PN}-pyserial \ >>>> + ${PYTHON_PN}-setuptools \ >>>> + ${PYTHON_PN}-unixadmin \ >>>> + ${PYTHON_PN}-zopeinterface \ >>>> +" >>>> + >>>> RDEPENDS_${PN}-test = "${PN}" >>>> RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols" >>>> RDEPENDS_${PN}-mail = "${PN}-core ${PN}-protocols" >>>> -- >>>> 2.24.0 >>>> >>>> -- >>>> _______________________________________________ >>>> Openembedded-devel mailing list >>>> Openembedded-devel at lists.openembedded.org >>>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel >>>> >>> -- >>> _______________________________________________ >>> Openembedded-devel mailing list >>> Openembedded-devel at lists.openembedded.org >>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel >>> From akuster808 at gmail.com Wed Feb 5 15:57:02 2020 From: akuster808 at gmail.com (akuster808) Date: Wed, 5 Feb 2020 07:57:02 -0800 Subject: [oe] [PATCH][zeus] libldb: upgrade 1.5.5 -> 1.5.6 In-Reply-To: <20200205092500.23165-1-schnitzeltony@gmail.com> References: <20200205092500.23165-1-schnitzeltony@gmail.com> Message-ID: <7ba13841-f2da-b42c-e25a-7cb00c8a53d3@gmail.com> On 2/5/20 1:25 AM, Andreas M?ller wrote: > From: Yi Zhao > > Signed-off-by: Yi Zhao > Signed-off-by: Khem Raj > > (cherry picked from commit 2b3fd534874aee125a6c79c70c93b1aa498fda3f) > > This is necessary for zeus to fix samba build as reported in [1] > > [1] http://lists.openembedded.org/pipermail/openembedded-devel/2020-January/204168.html I already have this? https://git.openembedded.org/meta-openembedded-contrib/commit/?h=stable/zeus-nut&id=f64c2d691ea597aa6221e3d7706a4d022e07bfea thanks for sending the patch. - armin > > Signed-off-by: Andreas M?ller > --- > .../libldb/{libldb_1.5.5.bb => libldb_1.5.6.bb} | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > rename meta-networking/recipes-support/libldb/{libldb_1.5.5.bb => libldb_1.5.6.bb} (95%) > > diff --git a/meta-networking/recipes-support/libldb/libldb_1.5.5.bb b/meta-networking/recipes-support/libldb/libldb_1.5.6.bb > similarity index 95% > rename from meta-networking/recipes-support/libldb/libldb_1.5.5.bb > rename to meta-networking/recipes-support/libldb/libldb_1.5.6.bb > index b19c964d8..99eb6f9ce 100644 > --- a/meta-networking/recipes-support/libldb/libldb_1.5.5.bb > +++ b/meta-networking/recipes-support/libldb/libldb_1.5.6.bb > @@ -33,8 +33,8 @@ LIC_FILES_CHKSUM = "file://pyldb.h;endline=24;md5=dfbd238cecad76957f7f860fbe9ada > file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \ > file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42" > > -SRC_URI[md5sum] = "339a41ac9efaec680e6d1469dd9aa35b" > -SRC_URI[sha256sum] = "199f5861aa863f538ec66d5fa95ecc13254a2030c53daf0e47363fa9ba235c68" > +SRC_URI[md5sum] = "fc58ef432c1fcb03fc3bb6cccce08977" > +SRC_URI[sha256sum] = "ff82474d0bf109e415a2d50334bde5715f486a53ff4bb8c7f74459dd229e975b" > > inherit waf-samba distro_features_check > REQUIRED_DISTRO_FEATURES = "pam" From git at andred.net Wed Feb 5 16:32:48 2020 From: git at andred.net (=?UTF-8?q?Andr=C3=A9=20Draszik?=) Date: Wed, 5 Feb 2020 16:32:48 +0000 Subject: [oe] [meta-oe][master-next][PATCH 1/2] python3-matplotlib: provide a -native variant Message-ID: <20200205163249.19668-1-git@andred.net> From: Andr? Draszik This is useful e.g. for smem-native. Signed-off-by: Andr? Draszik --- meta-python/recipes-devtools/python/python3-matplotlib_3.1.1.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-python/recipes-devtools/python/python3-matplotlib_3.1.1.bb b/meta-python/recipes-devtools/python/python3-matplotlib_3.1.1.bb index 9b86ccc83..824680c24 100644 --- a/meta-python/recipes-devtools/python/python3-matplotlib_3.1.1.bb +++ b/meta-python/recipes-devtools/python/python3-matplotlib_3.1.1.bb @@ -15,3 +15,5 @@ SRC_URI[sha256sum] = "1febd22afe1489b13c6749ea059d392c03261b2950d1d45c17e3aed812 PYPI_PACKAGE = "matplotlib" inherit pypi setuptools3 + +BBCLASSEXTEND = "native" -- 2.23.0.rc1 From git at andred.net Wed Feb 5 16:32:49 2020 From: git at andred.net (=?UTF-8?q?Andr=C3=A9=20Draszik?=) Date: Wed, 5 Feb 2020 16:32:49 +0000 Subject: [oe] [meta-oe][master-next][PATCH 2/2] smem: update to v1.5 (python3 compatibility) In-Reply-To: <20200205163249.19668-1-git@andred.net> References: <20200205163249.19668-1-git@andred.net> Message-ID: <20200205163249.19668-2-git@andred.net> smem generally works using the upstream code, but the --source argument still throws exceptions - add a patch to resolve those as well. There is no release on the downloads URL, but a tag in mercurial - so this now downloads the snapshot that tag is pointing to. Signed-off-by: Andr? Draszik --- ...ix-support-for-source-option-python3.patch | 53 +++++++++++++++++++ .../smem/{smem_1.4.bb => smem_1.5.bb} | 20 +++++-- 2 files changed, 68 insertions(+), 5 deletions(-) create mode 100644 meta-oe/recipes-support/smem/smem/0001-smem-fix-support-for-source-option-python3.patch rename meta-oe/recipes-support/smem/{smem_1.4.bb => smem_1.5.bb} (56%) diff --git a/meta-oe/recipes-support/smem/smem/0001-smem-fix-support-for-source-option-python3.patch b/meta-oe/recipes-support/smem/smem/0001-smem-fix-support-for-source-option-python3.patch new file mode 100644 index 000000000..5c1be5a0a --- /dev/null +++ b/meta-oe/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?= +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 + 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 +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-oe/recipes-support/smem/smem_1.4.bb b/meta-oe/recipes-support/smem/smem_1.5.bb similarity index 56% rename from meta-oe/recipes-support/smem/smem_1.4.bb rename to meta-oe/recipes-support/smem/smem_1.5.bb index 947c47b0f..90db9c3f3 100644 --- a/meta-oe/recipes-support/smem/smem_1.4.bb +++ b/meta-oe/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\d+(\.\d+)+)" + +S = "${WORKDIR}/${BPN}-${HG_CHANGESET}" do_compile() { ${CC} ${CFLAGS} ${LDFLAGS} smemcap.c -o smemcap @@ -21,12 +28,15 @@ 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" -- 2.23.0.rc1 From git at andred.net Wed Feb 5 16:39:19 2020 From: git at andred.net (=?ISO-8859-1?Q?Andr=E9?= Draszik) Date: Wed, 05 Feb 2020 16:39:19 +0000 Subject: [oe] [meta-oe][PATCH] smem: use python 3 In-Reply-To: <20200204234013.59800-1-max.krummenacher@toradex.com> References: <20200204234013.59800-1-max.krummenacher@toradex.com> Message-ID: <30481424b943c040c17548c73be768cc2d29f529.camel@andred.net> Hi, Interestingly I had been looking at this today as well... On Wed, 2020-02-05 at 00:40 +0100, Max Krummenacher wrote: > There seems to be no user of python-textutils python-shell python-codecs > in the script, so these rdepends are dropped. > > On a i.MX6 based machine smem runs with just python3-compression and > its dependencies installed. Upstream has released v1.5 with almost complete python3 support. I'd say any patches should go on top of that. Also, I don't think smem --source= will work with your version? Did you test that? > > Signed-off-by: Max Krummenacher > --- > .../smem/0001-smem-convert-to-python-3.patch | 161 ++++++++++++++++++ > meta-oe/recipes-support/smem/smem_1.4.bb | 7 +- > 2 files changed, 166 insertions(+), 2 deletions(-) > create mode 100644 meta-oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch > > diff --git a/meta-oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch b/meta-oe/recipes- > support/smem/smem/0001-smem-convert-to-python-3.patch > new file mode 100644 > index 000000000..85f35be44 > --- /dev/null > +++ b/meta-oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch > @@ -0,0 +1,161 @@ > +From 5535a524f6db57c0b2e4a539db733fd9e840c97e Mon Sep 17 00:00:00 2001 > +From: Max Krummenacher > +Date: Mon, 3 Feb 2020 21:04:42 +0000 > +Subject: [PATCH] smem: convert to python 3 > + > +Upstream-Status: Pending > + > +Signed-off-by: Max Krummenacher > +--- > + smem | 41 ++++++++++++++++++++++------------------- > + 1 file changed, 22 insertions(+), 19 deletions(-) > + > +diff --git a/smem b/smem > +index 0cbd925..577d27b 100755 > +--- a/smem > ++++ b/smem > +@@ -1,4 +1,4 @@ > +-#!/usr/bin/env python > ++#!/usr/bin/env python3 > + # > + # smem - a tool for meaningful memory reporting > + # > +@@ -21,7 +21,10 @@ class procdata(object): > + def _list(self): > + return os.listdir(self.source + "/proc") > + def _read(self, f): > +- return file(self.source + '/proc/' + f).read() > ++ afile = open(self.source + '/proc/' + f) > ++ ret = afile.read() > ++ afile.close() > ++ return ret > + def _readlines(self, f): > + return self._read(f).splitlines(True) > + def _stat(self, f): > +@@ -209,7 +212,7 @@ def fromunits(x): > + s = dict(k=2**10, K=2**10, kB=2**10, KB=2**10, > + M=2**20, MB=2**20, G=2**30, GB=2**30, > + T=2**40, TB=2**40) > +- for k,v in s.items(): > ++ for k,v in list(s.items()): > + if x.endswith(k): > + return int(float(x[:-len(k)])*v) > + sys.stderr.write("Memory size should be written with units, for example 1024M\n") > +@@ -240,7 +243,7 @@ def pidtotals(pid): > + maps = pidmaps(pid) > + t = dict(size=0, rss=0, pss=0, shared_clean=0, shared_dirty=0, > + private_clean=0, private_dirty=0, referenced=0, swap=0) > +- for m in maps.iterkeys(): > ++ for m in maps.keys(): > + for k in t: > + t[k] += maps[m].get(k, 0) > + > +@@ -296,7 +299,7 @@ def showpids(): > + ) > + columns = options.columns or 'pid user command swap uss pss rss' > + > +- showtable(pt.keys(), fields, columns.split(), options.sort or 'pss') > ++ showtable(list(pt.keys()), fields, columns.split(), options.sort or 'pss') > + > + def maptotals(pids): > + totals = {} > +@@ -307,7 +310,7 @@ def maptotals(pids): > + try: > + maps = pidmaps(pid) > + seen = {} > +- for m in maps.iterkeys(): > ++ for m in maps.keys(): > + name = maps[m]['name'] > + if name not in totals: > + t = dict(size=0, rss=0, pss=0, shared_clean=0, > +@@ -361,7 +364,7 @@ def showmaps(): > + ) > + columns = options.columns or 'map pids avgpss pss' > + > +- showtable(pt.keys(), fields, columns.split(), options.sort or 'pss') > ++ showtable(list(pt.keys()), fields, columns.split(), options.sort or 'pss') > + > + def usertotals(pids): > + totals = {} > +@@ -383,7 +386,7 @@ def usertotals(pids): > + else: > + t = totals[user] > + > +- for m in maps.iterkeys(): > ++ for m in maps.keys(): > + for k in t: > + t[k] += maps[m].get(k, 0) > + > +@@ -419,7 +422,7 @@ def showusers(): > + ) > + columns = options.columns or 'user count swap uss pss rss' > + > +- showtable(pt.keys(), fields, columns.split(), options.sort or 'pss') > ++ showtable(list(pt.keys()), fields, columns.split(), options.sort or 'pss') > + > + def showsystem(): > + t = totalmem() > +@@ -460,14 +463,14 @@ def showsystem(): > + 'area not reclaimable')) > + > + columns = options.columns or 'area used cache noncache' > +- showtable(range(len(l)), fields, columns.split(), options.sort or 'order') > ++ showtable(list(range(len(l))), fields, columns.split(), options.sort or 'order') > + > + def showfields(fields, f): > + if f != list: > +- print "unknown field", f > +- print "known fields:" > ++ print("unknown field", f) > ++ print("known fields:") > + for l in sorted(fields.keys()): > +- print "%-8s %s" % (l, fields[l][-1]) > ++ print("%-8s %s" % (l, fields[l][-1])) > + > + def showtable(rows, fields, columns, sort): > + header = "" > +@@ -518,10 +521,10 @@ def showtable(rows, fields, columns, sort): > + return > + > + if not options.no_header: > +- print header > ++ print(header) > + > + for k,r in l: > +- print format % tuple([f(v) for f,v in zip(formatter, r)]) > ++ print(format % tuple([f(v) for f,v in zip(formatter, r)])) > + > + if options.totals: > + # totals > +@@ -533,8 +536,8 @@ def showtable(rows, fields, columns, sort): > + else: > + t.append("") > + > +- print "-" * len(header) > +- print format % tuple([f(v) for f,v in zip(formatter, t)]) > ++ print("-" * len(header)) > ++ print(format % tuple([f(v) for f,v in zip(formatter, t)])) > + > + def showpie(l, sort): > + try: > +@@ -605,7 +608,7 @@ def showbar(l, columns, sort): > + > + pl = [] > + ind = numpy.arange(len(l)) > +- for n in xrange(len(rc)): > ++ for n in range(len(rc)): > + pl.append(pylab.bar(ind + offset + width * n, > + [x[1][rc[n]] for x in l], width, color=gc(n))) > + > +@@ -682,7 +685,7 @@ try: > + showsystem() > + else: > + showpids() > +-except IOError, e: > ++except IOError as e: > + if e.errno == errno.EPIPE: > + pass > + except KeyboardInterrupt: > +-- > +2.20.1 > + > diff --git a/meta-oe/recipes-support/smem/smem_1.4.bb b/meta-oe/recipes-support/smem/smem_1.4.bb > index 947c47b0f..4728e6b79 100644 > --- a/meta-oe/recipes-support/smem/smem_1.4.bb > +++ b/meta-oe/recipes-support/smem/smem_1.4.bb > @@ -9,7 +9,10 @@ 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 = " \ > + http://www.selenic.com/${BPN}/download/${BP}.tar.gz \ > + file://0001-smem-convert-to-python-3.patch \ > +" > SRC_URI[md5sum] = "fe79435c3930389bfdb560255c802162" > SRC_URI[sha256sum] = "2ea9f878f4cf3c276774c3f7e2a41977a1f2d64f98d2dcb6a15f1f3d84df61ec" > > @@ -24,7 +27,7 @@ do_install() { > 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" > +RDEPENDS_${PN} += "python3-compression" smem also imports numpy and matplotlib (for graphs etc.) I've posted a different patch addressing all issues (I think). Cheers, Andre' > > PACKAGES =+ "smemcap" > > -- > 2.20.1 > From max.oss.09 at gmail.com Wed Feb 5 16:57:41 2020 From: max.oss.09 at gmail.com (Max Krummenacher) Date: Wed, 5 Feb 2020 17:57:41 +0100 Subject: [oe] [meta-oe][PATCH] smem: use python 3 In-Reply-To: <30481424b943c040c17548c73be768cc2d29f529.camel@andred.net> References: <20200204234013.59800-1-max.krummenacher@toradex.com> <30481424b943c040c17548c73be768cc2d29f529.camel@andred.net> Message-ID: Hi Andr? Thanks for your patch. This seems more complete and should go in in favour of this one. No I didn't test with --source, I only tested using smem directly on the embedded target which worked well for all but the charting options. I'm aware that the charting option gracefully declines to work when the plugins you now added with RRECOMMEND are missing. Max Am Mi., 5. Feb. 2020 um 17:39 Uhr schrieb Andr? Draszik : > Hi, > > Interestingly I had been looking at this today as well... > > On Wed, 2020-02-05 at 00:40 +0100, Max Krummenacher wrote: > > There seems to be no user of python-textutils python-shell python-codecs > > in the script, so these rdepends are dropped. > > > > On a i.MX6 based machine smem runs with just python3-compression and > > its dependencies installed. > > Upstream has released v1.5 with almost complete python3 support. > I'd say any patches should go on top of that. > > Also, I don't think smem --source= will work with your version? Did you > test that? > > > > > Signed-off-by: Max Krummenacher > > --- > > .../smem/0001-smem-convert-to-python-3.patch | 161 ++++++++++++++++++ > > meta-oe/recipes-support/smem/smem_1.4.bb | 7 +- > > 2 files changed, 166 insertions(+), 2 deletions(-) > > create mode 100644 > meta-oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch > > > > diff --git > a/meta-oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch > b/meta-oe/recipes- > > support/smem/smem/0001-smem-convert-to-python-3.patch > > new file mode 100644 > > index 000000000..85f35be44 > > --- /dev/null > > +++ > b/meta-oe/recipes-support/smem/smem/0001-smem-convert-to-python-3.patch > > @@ -0,0 +1,161 @@ > > +From 5535a524f6db57c0b2e4a539db733fd9e840c97e Mon Sep 17 00:00:00 2001 > > +From: Max Krummenacher > > +Date: Mon, 3 Feb 2020 21:04:42 +0000 > > +Subject: [PATCH] smem: convert to python 3 > > + > > +Upstream-Status: Pending > > + > > +Signed-off-by: Max Krummenacher > > +--- > > + smem | 41 ++++++++++++++++++++++------------------- > > + 1 file changed, 22 insertions(+), 19 deletions(-) > > + > > +diff --git a/smem b/smem > > +index 0cbd925..577d27b 100755 > > +--- a/smem > > ++++ b/smem > > +@@ -1,4 +1,4 @@ > > +-#!/usr/bin/env python > > ++#!/usr/bin/env python3 > > + # > > + # smem - a tool for meaningful memory reporting > > + # > > +@@ -21,7 +21,10 @@ class procdata(object): > > + def _list(self): > > + return os.listdir(self.source + "/proc") > > + def _read(self, f): > > +- return file(self.source + '/proc/' + f).read() > > ++ afile = open(self.source + '/proc/' + f) > > ++ ret = afile.read() > > ++ afile.close() > > ++ return ret > > + def _readlines(self, f): > > + return self._read(f).splitlines(True) > > + def _stat(self, f): > > +@@ -209,7 +212,7 @@ def fromunits(x): > > + s = dict(k=2**10, K=2**10, kB=2**10, KB=2**10, > > + M=2**20, MB=2**20, G=2**30, GB=2**30, > > + T=2**40, TB=2**40) > > +- for k,v in s.items(): > > ++ for k,v in list(s.items()): > > + if x.endswith(k): > > + return int(float(x[:-len(k)])*v) > > + sys.stderr.write("Memory size should be written with units, for > example 1024M\n") > > +@@ -240,7 +243,7 @@ def pidtotals(pid): > > + maps = pidmaps(pid) > > + t = dict(size=0, rss=0, pss=0, shared_clean=0, shared_dirty=0, > > + private_clean=0, private_dirty=0, referenced=0, swap=0) > > +- for m in maps.iterkeys(): > > ++ for m in maps.keys(): > > + for k in t: > > + t[k] += maps[m].get(k, 0) > > + > > +@@ -296,7 +299,7 @@ def showpids(): > > + ) > > + columns = options.columns or 'pid user command swap uss pss rss' > > + > > +- showtable(pt.keys(), fields, columns.split(), options.sort or > 'pss') > > ++ showtable(list(pt.keys()), fields, columns.split(), options.sort > or 'pss') > > + > > + def maptotals(pids): > > + totals = {} > > +@@ -307,7 +310,7 @@ def maptotals(pids): > > + try: > > + maps = pidmaps(pid) > > + seen = {} > > +- for m in maps.iterkeys(): > > ++ for m in maps.keys(): > > + name = maps[m]['name'] > > + if name not in totals: > > + t = dict(size=0, rss=0, pss=0, shared_clean=0, > > +@@ -361,7 +364,7 @@ def showmaps(): > > + ) > > + columns = options.columns or 'map pids avgpss pss' > > + > > +- showtable(pt.keys(), fields, columns.split(), options.sort or > 'pss') > > ++ showtable(list(pt.keys()), fields, columns.split(), options.sort > or 'pss') > > + > > + def usertotals(pids): > > + totals = {} > > +@@ -383,7 +386,7 @@ def usertotals(pids): > > + else: > > + t = totals[user] > > + > > +- for m in maps.iterkeys(): > > ++ for m in maps.keys(): > > + for k in t: > > + t[k] += maps[m].get(k, 0) > > + > > +@@ -419,7 +422,7 @@ def showusers(): > > + ) > > + columns = options.columns or 'user count swap uss pss rss' > > + > > +- showtable(pt.keys(), fields, columns.split(), options.sort or > 'pss') > > ++ showtable(list(pt.keys()), fields, columns.split(), options.sort > or 'pss') > > + > > + def showsystem(): > > + t = totalmem() > > +@@ -460,14 +463,14 @@ def showsystem(): > > + 'area not reclaimable')) > > + > > + columns = options.columns or 'area used cache noncache' > > +- showtable(range(len(l)), fields, columns.split(), options.sort or > 'order') > > ++ showtable(list(range(len(l))), fields, columns.split(), > options.sort or 'order') > > + > > + def showfields(fields, f): > > + if f != list: > > +- print "unknown field", f > > +- print "known fields:" > > ++ print("unknown field", f) > > ++ print("known fields:") > > + for l in sorted(fields.keys()): > > +- print "%-8s %s" % (l, fields[l][-1]) > > ++ print("%-8s %s" % (l, fields[l][-1])) > > + > > + def showtable(rows, fields, columns, sort): > > + header = "" > > +@@ -518,10 +521,10 @@ def showtable(rows, fields, columns, sort): > > + return > > + > > + if not options.no_header: > > +- print header > > ++ print(header) > > + > > + for k,r in l: > > +- print format % tuple([f(v) for f,v in zip(formatter, r)]) > > ++ print(format % tuple([f(v) for f,v in zip(formatter, r)])) > > + > > + if options.totals: > > + # totals > > +@@ -533,8 +536,8 @@ def showtable(rows, fields, columns, sort): > > + else: > > + t.append("") > > + > > +- print "-" * len(header) > > +- print format % tuple([f(v) for f,v in zip(formatter, t)]) > > ++ print("-" * len(header)) > > ++ print(format % tuple([f(v) for f,v in zip(formatter, t)])) > > + > > + def showpie(l, sort): > > + try: > > +@@ -605,7 +608,7 @@ def showbar(l, columns, sort): > > + > > + pl = [] > > + ind = numpy.arange(len(l)) > > +- for n in xrange(len(rc)): > > ++ for n in range(len(rc)): > > + pl.append(pylab.bar(ind + offset + width * n, > > + [x[1][rc[n]] for x in l], width, > color=gc(n))) > > + > > +@@ -682,7 +685,7 @@ try: > > + showsystem() > > + else: > > + showpids() > > +-except IOError, e: > > ++except IOError as e: > > + if e.errno == errno.EPIPE: > > + pass > > + except KeyboardInterrupt: > > +-- > > +2.20.1 > > + > > diff --git a/meta-oe/recipes-support/smem/smem_1.4.bb > b/meta-oe/recipes-support/smem/smem_1.4.bb > > index 947c47b0f..4728e6b79 100644 > > --- a/meta-oe/recipes-support/smem/smem_1.4.bb > > +++ b/meta-oe/recipes-support/smem/smem_1.4.bb > > @@ -9,7 +9,10 @@ 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 = " \ > > + http://www.selenic.com/${BPN}/download/${BP}.tar.gz \ > > + file://0001-smem-convert-to-python-3.patch \ > > +" > > SRC_URI[md5sum] = "fe79435c3930389bfdb560255c802162" > > SRC_URI[sha256sum] = > "2ea9f878f4cf3c276774c3f7e2a41977a1f2d64f98d2dcb6a15f1f3d84df61ec" > > > > @@ -24,7 +27,7 @@ do_install() { > > 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" > > +RDEPENDS_${PN} += "python3-compression" > > smem also imports numpy and matplotlib (for graphs etc.) > > I've posted a different patch addressing all issues (I think). > > > Cheers, > Andre' > > > > > PACKAGES =+ "smemcap" > > > > -- > > 2.20.1 > > > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From martin.jansa at gmail.com Wed Feb 5 17:01:27 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Wed, 5 Feb 2020 18:01:27 +0100 Subject: [oe] [meta-python][zeus][PATCH v2 1/2] python-twisted: add required RDEPENDS for twistd In-Reply-To: <9c5c3983-5b16-eae0-db77-d273ba65a699@windriver.com> References: <20200130153405.26756-1-Trevor.Gamblin@windriver.com> <20200205145939.tadzklcfscc442eg@jama> <9c5c3983-5b16-eae0-db77-d273ba65a699@windriver.com> Message-ID: <20200205170127.xhu2tmhdfrhcbewm@jama> On Wed, Feb 05, 2020 at 10:16:01AM -0500, Trevor Gamblin wrote: > > On 2/5/20 9:59 AM, Martin Jansa wrote: > > On Mon, Feb 03, 2020 at 08:45:26PM -0800, Tim Orling wrote: > > > On Mon, Feb 3, 2020 at 8:30 PM Martin Jansa wrote: > > > > > > > Please send this fix to normal meta-python in meta-oe/zeus: > > > > > > > > http://git.openembedded.org/meta-openembedded/tree/meta-python/recipes-devtools/python/python-twisted.inc?h=zeus > > > > > > > > BTW: Why are you using meta-python2 with zeus branch? It imho doesn't have > > > > anything which would be missing in oe-core+meta-oe zeus branch and fixes > > > > like this should be resolved also for people using zeus branch without > > > > overlaying them by meta-python2. > > > > > > > > > > > Because, as I believe I have said before, I need a prior release to test > > > the infrastructure on. zeus allows me to work on more than just master > > > until we have the next stable release branching. > > The question was for Trevor, I understood that you wanted zeus branch to > > test the infrastructure, but I still don't understand why any "project" > > should use meta-python2/zeus for the python2 bits which are still in > > oe-core/zeus + meta-python/zeus. > I'm not sure if I'm misunderstanding, or if I have been the cause for > confusion in my summary. When the reporter filed > https://bugzilla.yoctoproject.org/show_bug.cgi?id=13741, it was clear he was > using the python 2.x version of Twisted, on the zeus branch of > meta-openembedded (based on the version of Twisted that he reported). The > patch was written and tested using meta-oe/meta-python zeus and submitted > for that layer. I suppose it could be applied to meta-python2 as well. Thanks for reply, not it's more clear that my brain somehow failed to parse "[oe] [meta-python][zeus][PATCH v2 1/2]", all I was seeing was "meta-python" and "2", since my first reply I was seeing this as meta-python2 and assumed that you're submitting it only there, not to meta-python in meta-oe/zeus which is completely reasonable. Sorry for noise I just need more sleep or coffee or both actually. Now when I see that you're working on meta-python in meta-oe, why not cherry-pick the commits from master as they are? Similar change in master: http://git.openembedded.org/meta-openembedded/commit/meta-python/recipes-devtools/python/python-twisted.inc?id=7077abdf29a56896ef4dbad94b28201689b70ee3 http://git.openembedded.org/meta-openembedded/commit/meta-python/recipes-devtools/python/python-twisted.inc?id=53e62e4e57c701dd546a2e27d8b72b7a4698551a it has a bit fewer modules in RDEPENDS. Is it because of 19.10.0 version in master while zeus has only 19.7.0 or are they actually missing in master as well? Similarly what about the RDEPENDS of conch fixed in master with: http://git.openembedded.org/meta-openembedded/commit/meta-python/recipes-devtools/python/python-twisted.inc?id=c3a3470b1ba3768e04e0a938870ad487bd848120 isn't this needed in zeus as well? I don't use python-twisted anywhere, I was just curious why this isn't straight backport from master. > I suppose it could be applied to meta-python2 as well. Yes, it looks like these changes are missing in meta-python2/master as well: https://git.openembedded.org/meta-python2/tree/recipes-devtools/python/python-twisted_19.10.0.bb#n66 Cheers, > > I see that there are some differences in the recipes in zeus, e.g.: > > > > martin at jama:/OE/meta-python2$ diff recipes-devtools/python/python-configparser_3.8.1.bb ../meta-openembedded/meta-python/recipes-devtools/python/python-configparser_3.8.1.bb > > 1c1 > > < inherit setuptools python-backports-init > > --- > > > inherit setuptools > > martin at jama:/OE/meta-python2$ diff recipes-devtools/python/python-dbus_1.2.12.bb ../meta-openembedded/meta-python/recipes-devtools/python/python-dbus_1.2.12.bb > > 18,19c18,19 > > < # documentation needs python-sphinx, which is not in oe-core or meta-python2 for now > > < # change to use PACKAGECONFIG when python-sphinx is added to oe-core or meta-python2 > > --- > > > # documentation needs python-sphinx, which is not in oe-core or meta-python for now > > > # change to use PACKAGECONFIG when python-sphinx is added to oe-core or meta-python > > But README nor your reply explained to me, what's the benefit of using meta-python2/zeus > > instead of the existing python2 recipes which are in oe-core and meta-oe zeus. That's why > > I've never tried to use it with zeus, nor submitted the python-numpy and python-nose > > recipes which got removed from oe-core/zeus, but weren't re-introduced in meta-python2 > > python-nose was removed in: > > http://git.openembedded.org/openembedded-core/commit/?h=zeus&id=9f07b2836405d86e869780f8f1ae00843eadc409 > > python-numpy in: > > http://git.openembedded.org/openembedded-core/commit/?h=zeus&id=4e9659f24e2f699effadcbe378b6a746d77ccdbd > > from oe-core/zeus. > > > > > It has nothing to do with what is missing from meta-oe, it is a viable > > > alternative that also helps prove out my workflow as I have EXTREMELY > > > LIMITED TIME to support this. > > Understood, thanks for doing this work, I'm happy to use and contribute to > > master branch, it's just that I still don't understand the purpose of zeus > > branch (other than testing the infrastructure by you) and I hope you agree > > that bug fixes for python2 issues like the one in this thread belong > > to meta-oe/meta-python zeus in first place (because that's the layer which > > what most people are probably still using with zeus). > > > > Cheers, > > > > > On Fri, Jan 31, 2020 at 10:29 AM Trevor Gamblin < > > > > Trevor.Gamblin at windriver.com> wrote: > > > > > > > > > From: Trevor Gamblin > > > > > > > > > > python-twisted is currently missing some packages for its /usr/bin/twistd > > > > > executable to function. Add these to the RDEPENDS list, and also clean up > > > > > formatting since the list is getting long. > > > > > > > > > > Note that a similar patch has already been submitted for master branch, > > > > > but the python2 version of twisted needs more explicit RDEPENDS than the > > > > > python3 version submitted to master in order for /usr/bin/twistd to work > > > > > properly. > > > > > > > > > > Signed-off-by: Trevor Gamblin > > > > > --- > > > > > .../recipes-devtools/python/python-twisted.inc | 18 +++++++++++++++++- > > > > > 1 file changed, 17 insertions(+), 1 deletion(-) > > > > > > > > > > diff --git a/meta-python/recipes-devtools/python/python-twisted.inc > > > > > b/meta-python/recipes-devtools/python/python-twisted.inc > > > > > index d70104dc2..024a9fa7c 100644 > > > > > --- a/meta-python/recipes-devtools/python/python-twisted.inc > > > > > +++ b/meta-python/recipes-devtools/python/python-twisted.inc > > > > > @@ -56,7 +56,23 @@ RDEPENDS_${PN} = "\ > > > > > ${PN}-zsh \ > > > > > " > > > > > > > > > > -RDEPENDS_${PN}-core = "${PYTHON_PN}-core ${PYTHON_PN}-zopeinterface > > > > > ${PYTHON_PN}-incremental ${PYTHON_PN}-constantly ${PYTHON_PN}-hyperlink > > > > > ${PYTHON_PN}-automat" > > > > > +RDEPENDS_${PN}-core = "${PYTHON_PN}-automat \ > > > > > + ${PYTHON_PN}-constantly \ > > > > > + ${PYTHON_PN}-core \ > > > > > + ${PYTHON_PN}-debugger \ > > > > > + ${PYTHON_PN}-hyperlink \ > > > > > + ${PYTHON_PN}-incremental \ > > > > > + ${PYTHON_PN}-misc \ > > > > > + ${PYTHON_PN}-pkg-resources \ > > > > > + ${PYTHON_PN}-pkgutil \ > > > > > + ${PYTHON_PN}-plistlib \ > > > > > + ${PYTHON_PN}-pyhamcrest \ > > > > > + ${PYTHON_PN}-pyserial \ > > > > > + ${PYTHON_PN}-setuptools \ > > > > > + ${PYTHON_PN}-unixadmin \ > > > > > + ${PYTHON_PN}-zopeinterface \ > > > > > +" > > > > > + > > > > > RDEPENDS_${PN}-test = "${PN}" > > > > > RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols" > > > > > RDEPENDS_${PN}-mail = "${PN}-core ${PN}-protocols" > > > > > -- > > > > > 2.24.0 > > > > > > > > > > -- > > > > > _______________________________________________ > > > > > Openembedded-devel mailing list > > > > > Openembedded-devel at lists.openembedded.org > > > > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > > > > > > > > > -- > > > > _______________________________________________ > > > > Openembedded-devel mailing list > > > > Openembedded-devel at lists.openembedded.org > > > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > > > > -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: not available URL: From trevor.gamblin at windriver.com Wed Feb 5 18:06:03 2020 From: trevor.gamblin at windriver.com (Trevor Gamblin) Date: Wed, 5 Feb 2020 13:06:03 -0500 Subject: [oe] [meta-python][zeus][PATCH v2 1/2] python-twisted: add required RDEPENDS for twistd In-Reply-To: <20200205170127.xhu2tmhdfrhcbewm@jama> References: <20200130153405.26756-1-Trevor.Gamblin@windriver.com> <20200205145939.tadzklcfscc442eg@jama> <9c5c3983-5b16-eae0-db77-d273ba65a699@windriver.com> <20200205170127.xhu2tmhdfrhcbewm@jama> Message-ID: <87db6dda-e364-adfe-0836-be36cec79a16@windriver.com> On 2/5/20 12:01 PM, Martin Jansa wrote: > On Wed, Feb 05, 2020 at 10:16:01AM -0500, Trevor Gamblin wrote: >> On 2/5/20 9:59 AM, Martin Jansa wrote: >>> On Mon, Feb 03, 2020 at 08:45:26PM -0800, Tim Orling wrote: >>>> On Mon, Feb 3, 2020 at 8:30 PM Martin Jansa wrote: >>>> >>>>> Please send this fix to normal meta-python in meta-oe/zeus: >>>>> >>>>> http://git.openembedded.org/meta-openembedded/tree/meta-python/recipes-devtools/python/python-twisted.inc?h=zeus >>>>> >>>>> BTW: Why are you using meta-python2 with zeus branch? It imho doesn't have >>>>> anything which would be missing in oe-core+meta-oe zeus branch and fixes >>>>> like this should be resolved also for people using zeus branch without >>>>> overlaying them by meta-python2. >>>>> >>>>> >>>> Because, as I believe I have said before, I need a prior release to test >>>> the infrastructure on. zeus allows me to work on more than just master >>>> until we have the next stable release branching. >>> The question was for Trevor, I understood that you wanted zeus branch to >>> test the infrastructure, but I still don't understand why any "project" >>> should use meta-python2/zeus for the python2 bits which are still in >>> oe-core/zeus + meta-python/zeus. >> I'm not sure if I'm misunderstanding, or if I have been the cause for >> confusion in my summary. When the reporter filed >> https://bugzilla.yoctoproject.org/show_bug.cgi?id=13741, it was clear he was >> using the python 2.x version of Twisted, on the zeus branch of >> meta-openembedded (based on the version of Twisted that he reported). The >> patch was written and tested using meta-oe/meta-python zeus and submitted >> for that layer. I suppose it could be applied to meta-python2 as well. > Thanks for reply, not it's more clear that my brain somehow failed to > parse "[oe] [meta-python][zeus][PATCH v2 1/2]", all I was seeing was > "meta-python" and "2", since my first reply I was seeing this as > meta-python2 and assumed that you're submitting it only there, not to > meta-python in meta-oe/zeus which is completely reasonable. > > Sorry for noise I just need more sleep or coffee or both actually. > > Now when I see that you're working on meta-python in meta-oe, why not > cherry-pick the commits from master as they are? > > Similar change in master: > http://git.openembedded.org/meta-openembedded/commit/meta-python/recipes-devtools/python/python-twisted.inc?id=7077abdf29a56896ef4dbad94b28201689b70ee3 > http://git.openembedded.org/meta-openembedded/commit/meta-python/recipes-devtools/python/python-twisted.inc?id=53e62e4e57c701dd546a2e27d8b72b7a4698551a > it has a bit fewer modules in RDEPENDS. Is it because of 19.10.0 version in > master while zeus has only 19.7.0 or are they actually missing in master > as well? When testing for both zeus and master, there was a discrepancy between the number of RDEPENDS that needed to be added for /usr/bin/twistd to get to its usage/help without issues - master's Twisted 19.10.0 only needed unixadmin, debugger, and pyhamcrest, but the zeus build (with Twisted version 19.7.0) was still complaining until I added misc, pkg-resources, pkgutil, plistlib, pyserial, and setuptools as well, hence the separate patch. It's all making me realize that I haven't been getting some other patches for Twisted's RDEPENDS backported, though... > > Similarly what about the RDEPENDS of conch fixed in master with: > http://git.openembedded.org/meta-openembedded/commit/meta-python/recipes-devtools/python/python-twisted.inc?id=c3a3470b1ba3768e04e0a938870ad487bd848120 > isn't this needed in zeus as well? > > I don't use python-twisted anywhere, I was just curious why this isn't > straight backport from master. > >> I suppose it could be applied to meta-python2 as well. > Yes, it looks like these changes are missing in meta-python2/master as > well: > https://git.openembedded.org/meta-python2/tree/recipes-devtools/python/python-twisted_19.10.0.bb#n66 > > Cheers, > >>> I see that there are some differences in the recipes in zeus, e.g.: >>> >>> martin at jama:/OE/meta-python2$ diff recipes-devtools/python/python-configparser_3.8.1.bb ../meta-openembedded/meta-python/recipes-devtools/python/python-configparser_3.8.1.bb >>> 1c1 >>> < inherit setuptools python-backports-init >>> --- >>>> inherit setuptools >>> martin at jama:/OE/meta-python2$ diff recipes-devtools/python/python-dbus_1.2.12.bb ../meta-openembedded/meta-python/recipes-devtools/python/python-dbus_1.2.12.bb >>> 18,19c18,19 >>> < # documentation needs python-sphinx, which is not in oe-core or meta-python2 for now >>> < # change to use PACKAGECONFIG when python-sphinx is added to oe-core or meta-python2 >>> --- >>>> # documentation needs python-sphinx, which is not in oe-core or meta-python for now >>>> # change to use PACKAGECONFIG when python-sphinx is added to oe-core or meta-python >>> But README nor your reply explained to me, what's the benefit of using meta-python2/zeus >>> instead of the existing python2 recipes which are in oe-core and meta-oe zeus. That's why >>> I've never tried to use it with zeus, nor submitted the python-numpy and python-nose >>> recipes which got removed from oe-core/zeus, but weren't re-introduced in meta-python2 >>> python-nose was removed in: >>> http://git.openembedded.org/openembedded-core/commit/?h=zeus&id=9f07b2836405d86e869780f8f1ae00843eadc409 >>> python-numpy in: >>> http://git.openembedded.org/openembedded-core/commit/?h=zeus&id=4e9659f24e2f699effadcbe378b6a746d77ccdbd >>> from oe-core/zeus. >>> >>>> It has nothing to do with what is missing from meta-oe, it is a viable >>>> alternative that also helps prove out my workflow as I have EXTREMELY >>>> LIMITED TIME to support this. >>> Understood, thanks for doing this work, I'm happy to use and contribute to >>> master branch, it's just that I still don't understand the purpose of zeus >>> branch (other than testing the infrastructure by you) and I hope you agree >>> that bug fixes for python2 issues like the one in this thread belong >>> to meta-oe/meta-python zeus in first place (because that's the layer which >>> what most people are probably still using with zeus). >>> >>> Cheers, >>> >>>> On Fri, Jan 31, 2020 at 10:29 AM Trevor Gamblin < >>>>> Trevor.Gamblin at windriver.com> wrote: >>>>> >>>>>> From: Trevor Gamblin >>>>>> >>>>>> python-twisted is currently missing some packages for its /usr/bin/twistd >>>>>> executable to function. Add these to the RDEPENDS list, and also clean up >>>>>> formatting since the list is getting long. >>>>>> >>>>>> Note that a similar patch has already been submitted for master branch, >>>>>> but the python2 version of twisted needs more explicit RDEPENDS than the >>>>>> python3 version submitted to master in order for /usr/bin/twistd to work >>>>>> properly. >>>>>> >>>>>> Signed-off-by: Trevor Gamblin >>>>>> --- >>>>>> .../recipes-devtools/python/python-twisted.inc | 18 +++++++++++++++++- >>>>>> 1 file changed, 17 insertions(+), 1 deletion(-) >>>>>> >>>>>> diff --git a/meta-python/recipes-devtools/python/python-twisted.inc >>>>>> b/meta-python/recipes-devtools/python/python-twisted.inc >>>>>> index d70104dc2..024a9fa7c 100644 >>>>>> --- a/meta-python/recipes-devtools/python/python-twisted.inc >>>>>> +++ b/meta-python/recipes-devtools/python/python-twisted.inc >>>>>> @@ -56,7 +56,23 @@ RDEPENDS_${PN} = "\ >>>>>> ${PN}-zsh \ >>>>>> " >>>>>> >>>>>> -RDEPENDS_${PN}-core = "${PYTHON_PN}-core ${PYTHON_PN}-zopeinterface >>>>>> ${PYTHON_PN}-incremental ${PYTHON_PN}-constantly ${PYTHON_PN}-hyperlink >>>>>> ${PYTHON_PN}-automat" >>>>>> +RDEPENDS_${PN}-core = "${PYTHON_PN}-automat \ >>>>>> + ${PYTHON_PN}-constantly \ >>>>>> + ${PYTHON_PN}-core \ >>>>>> + ${PYTHON_PN}-debugger \ >>>>>> + ${PYTHON_PN}-hyperlink \ >>>>>> + ${PYTHON_PN}-incremental \ >>>>>> + ${PYTHON_PN}-misc \ >>>>>> + ${PYTHON_PN}-pkg-resources \ >>>>>> + ${PYTHON_PN}-pkgutil \ >>>>>> + ${PYTHON_PN}-plistlib \ >>>>>> + ${PYTHON_PN}-pyhamcrest \ >>>>>> + ${PYTHON_PN}-pyserial \ >>>>>> + ${PYTHON_PN}-setuptools \ >>>>>> + ${PYTHON_PN}-unixadmin \ >>>>>> + ${PYTHON_PN}-zopeinterface \ >>>>>> +" >>>>>> + >>>>>> RDEPENDS_${PN}-test = "${PN}" >>>>>> RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols" >>>>>> RDEPENDS_${PN}-mail = "${PN}-core ${PN}-protocols" >>>>>> -- >>>>>> 2.24.0 >>>>>> >>>>>> -- >>>>>> _______________________________________________ >>>>>> Openembedded-devel mailing list >>>>>> Openembedded-devel at lists.openembedded.org >>>>>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel >>>>>> >>>>> -- >>>>> _______________________________________________ >>>>> Openembedded-devel mailing list >>>>> Openembedded-devel at lists.openembedded.org >>>>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel >>>>> From schnitzeltony at gmail.com Wed Feb 5 19:11:23 2020 From: schnitzeltony at gmail.com (=?UTF-8?Q?Andreas_M=C3=BCller?=) Date: Wed, 5 Feb 2020 20:11:23 +0100 Subject: [oe] [PATCH][zeus] libldb: upgrade 1.5.5 -> 1.5.6 In-Reply-To: <7ba13841-f2da-b42c-e25a-7cb00c8a53d3@gmail.com> References: <20200205092500.23165-1-schnitzeltony@gmail.com> <7ba13841-f2da-b42c-e25a-7cb00c8a53d3@gmail.com> Message-ID: On Wed, Feb 5, 2020 at 4:57 PM akuster808 wrote: > > > > On 2/5/20 1:25 AM, Andreas M?ller wrote: > > From: Yi Zhao > > > > Signed-off-by: Yi Zhao > > Signed-off-by: Khem Raj > > > > (cherry picked from commit 2b3fd534874aee125a6c79c70c93b1aa498fda3f) > > > > This is necessary for zeus to fix samba build as reported in [1] > > > > [1] http://lists.openembedded.org/pipermail/openembedded-devel/2020-January/204168.html > > I already have this > https://git.openembedded.org/meta-openembedded-contrib/commit/?h=stable/zeus-nut&id=f64c2d691ea597aa6221e3d7706a4d022e07bfea > > thanks for sending the patch. > > - armin Perfect - thanks - did not find that one. Andreas From twoerner at gmail.com Wed Feb 5 20:30:53 2020 From: twoerner at gmail.com (Trevor Woerner) Date: Wed, 5 Feb 2020 15:30:53 -0500 Subject: [oe] [meta-oe][PATCH] mpv: 0.26.0 -> 0.32.0 Message-ID: <20200205203053.6742-1-twoerner@gmail.com> Remove mpv from the PNBLACKLIST by updating to the latest release and using a newer, python3-aware waf for building (copied from glmark2). The name of the license file changed, but the licence of the software itself did not. Added mime-xdg to inherit to handle mime artifacts. Added to the FILES command to scoop up additional files being generated by the build. Extensively fixed and cleaned up the PACKAGECONFIG options to reflect the current options available when configuring mpv. Also cleaned up any configure options which are no longer available. Tested with core-image-x11 on a rock-pi-4 with PACKAGECONFIG = "libass x11 opengl egl drm gbm vaapi vdpau" # mpv --vo=help Available video outputs: libmpv render API for libmpv gpu Shader-based GPU Renderer vdpau VDPAU with X11 vaapi VA API with X11 x11 X11 (slow, old crap) null Null video output image Write video frames to image files tct true-color terminals drm Direct Rendering Manager Signed-off-by: Trevor Woerner --- .../mplayer/mpv/python3.patch | 12 ++ .../recipes-multimedia/mplayer/mpv_0.26.0.bb | 85 ------------- .../recipes-multimedia/mplayer/mpv_0.32.0.bb | 115 ++++++++++++++++++ 3 files changed, 127 insertions(+), 85 deletions(-) create mode 100644 meta-oe/recipes-multimedia/mplayer/mpv/python3.patch delete mode 100644 meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb create mode 100644 meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb diff --git a/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch b/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch new file mode 100644 index 000000000..df208cf87 --- /dev/null +++ b/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch @@ -0,0 +1,12 @@ +Use Python 3 instead of Python 2. + +Upstream-Status: Pending +Signed-off-by: Ross Burton + +diff --git a/waf b/waf +index 6ce2a24..de3c898 100755 +--- a/waf ++++ b/waf +@@ -1 +1 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 diff --git a/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb b/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb deleted file mode 100644 index c98aa7ab0..000000000 --- a/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb +++ /dev/null @@ -1,85 +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 python3native features_check - -LUA ?= "lua" -LUA_mips64 = "" -LUA_aarch64 = "" -LUA_powerpc64 = "" -LUA_powerpc64le = "" -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" - -PNBLACKLIST[mpv] = "Needs forward porting to use python3" diff --git a/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb b/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb new file mode 100644 index 000000000..e6bab6b3f --- /dev/null +++ b/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb @@ -0,0 +1,115 @@ +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.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 \ + https://www.freehackers.org/~tnagy/release/waf-2.0.19;name=waf;downloadfilename=waf;subdir=git \ + file://python3.patch \ +" +SRC_URI[waf.md5sum] = "cef4ee82206b1843db082d0b0506bf71" +SRC_URI[waf.sha256sum] = "01bf2beab2106d1558800c8709bc2c8e496d3da4a2ca343fe091f22fca60c98b" + +S = "${WORKDIR}/git" + +inherit waf pkgconfig features_check mime-xdg + +LUA ?= "lua" +LUA_mips64 = "" +LUA_aarch64 = "" +LUA_powerpc64 = "" +LUA_powerpc64le = "" +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" + +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} \ +" + +adjust_waf_perms() { + chmod +x ${S}/waf +} + +do_patch[postfuncs] += "adjust_waf_perms" + +FILES_${PN} += " \ + ${datadir}/icons \ + ${datadir}/zsh \ + ${datadir}/bash-completion \ + " -- 2.23.0.37.g745f681289 From schnitzeltony at gmail.com Wed Feb 5 20:44:10 2020 From: schnitzeltony at gmail.com (=?UTF-8?Q?Andreas_M=C3=BCller?=) Date: Wed, 5 Feb 2020 21:44:10 +0100 Subject: [oe] [meta-oe][PATCH] mpv: 0.26.0 -> 0.32.0 In-Reply-To: <20200205203053.6742-1-twoerner@gmail.com> References: <20200205203053.6742-1-twoerner@gmail.com> Message-ID: On Wed, Feb 5, 2020 at 9:31 PM Trevor Woerner wrote: > > Remove mpv from the PNBLACKLIST by updating to the latest release and using a > newer, python3-aware waf for building (copied from glmark2). > > The name of the license file changed, but the licence of the software itself > did not. > > Added mime-xdg to inherit to handle mime artifacts. > > Added to the FILES command to scoop up additional files being generated by > the build. > > Extensively fixed and cleaned up the PACKAGECONFIG options to reflect the > current options available when configuring mpv. Also cleaned up any configure > options which are no longer available. > > Tested with core-image-x11 on a rock-pi-4 with > PACKAGECONFIG = "libass x11 opengl egl drm gbm vaapi vdpau" > # mpv --vo=help > Available video outputs: > libmpv render API for libmpv > gpu Shader-based GPU Renderer > vdpau VDPAU with X11 > vaapi VA API with X11 > x11 X11 (slow, old crap) > null Null video output > image Write video frames to image files > tct true-color terminals > drm Direct Rendering Manager > > Signed-off-by: Trevor Woerner Thanks Andreas From martin.jansa at gmail.com Wed Feb 5 21:07:07 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Wed, 5 Feb 2020 22:07:07 +0100 Subject: [oe] [meta-oe][PATCH] mpv: 0.26.0 -> 0.32.0 In-Reply-To: <20200205203053.6742-1-twoerner@gmail.com> References: <20200205203053.6742-1-twoerner@gmail.com> Message-ID: <20200205210707.c4eqrvbyl7tl3knt@jama> On Wed, Feb 05, 2020 at 03:30:53PM -0500, Trevor Woerner wrote: > Remove mpv from the PNBLACKLIST by updating to the latest release and using a > newer, python3-aware waf for building (copied from glmark2). > > The name of the license file changed, but the licence of the software itself > did not. > > Added mime-xdg to inherit to handle mime artifacts. > > Added to the FILES command to scoop up additional files being generated by > the build. > > Extensively fixed and cleaned up the PACKAGECONFIG options to reflect the > current options available when configuring mpv. Also cleaned up any configure > options which are no longer available. > > Tested with core-image-x11 on a rock-pi-4 with > PACKAGECONFIG = "libass x11 opengl egl drm gbm vaapi vdpau" > # mpv --vo=help > Available video outputs: > libmpv render API for libmpv > gpu Shader-based GPU Renderer > vdpau VDPAU with X11 > vaapi VA API with X11 > x11 X11 (slow, old crap) > null Null video output > image Write video frames to image files > tct true-color terminals > drm Direct Rendering Manager > > Signed-off-by: Trevor Woerner > --- > .../mplayer/mpv/python3.patch | 12 ++ > .../recipes-multimedia/mplayer/mpv_0.26.0.bb | 85 ------------- > .../recipes-multimedia/mplayer/mpv_0.32.0.bb | 115 ++++++++++++++++++ > 3 files changed, 127 insertions(+), 85 deletions(-) > create mode 100644 meta-oe/recipes-multimedia/mplayer/mpv/python3.patch > delete mode 100644 meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb > create mode 100644 meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb Thanks, would you mind undoing: http://git.openembedded.org/meta-openembedded/commit/?id=0c182e58775966699c303c1e2561c273197bf445 in the same commit? Also was this sent with -M? > diff --git a/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch b/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch > new file mode 100644 > index 000000000..df208cf87 > --- /dev/null > +++ b/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch > @@ -0,0 +1,12 @@ > +Use Python 3 instead of Python 2. > + > +Upstream-Status: Pending > +Signed-off-by: Ross Burton > + > +diff --git a/waf b/waf > +index 6ce2a24..de3c898 100755 > +--- a/waf > ++++ b/waf > +@@ -1 +1 @@ > +-#!/usr/bin/env python > ++#!/usr/bin/env python3 > diff --git a/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb b/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb > deleted file mode 100644 > index c98aa7ab0..000000000 > --- a/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb > +++ /dev/null > @@ -1,85 +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 python3native features_check > - > -LUA ?= "lua" > -LUA_mips64 = "" > -LUA_aarch64 = "" > -LUA_powerpc64 = "" > -LUA_powerpc64le = "" > -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" > - > -PNBLACKLIST[mpv] = "Needs forward porting to use python3" > diff --git a/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb b/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb > new file mode 100644 > index 000000000..e6bab6b3f > --- /dev/null > +++ b/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb > @@ -0,0 +1,115 @@ > +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.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 \ > + https://www.freehackers.org/~tnagy/release/waf-2.0.19;name=waf;downloadfilename=waf;subdir=git \ > + file://python3.patch \ > +" > +SRC_URI[waf.md5sum] = "cef4ee82206b1843db082d0b0506bf71" > +SRC_URI[waf.sha256sum] = "01bf2beab2106d1558800c8709bc2c8e496d3da4a2ca343fe091f22fca60c98b" > + > +S = "${WORKDIR}/git" > + > +inherit waf pkgconfig features_check mime-xdg > + > +LUA ?= "lua" > +LUA_mips64 = "" > +LUA_aarch64 = "" > +LUA_powerpc64 = "" > +LUA_powerpc64le = "" > +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" > + > +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} \ > +" > + > +adjust_waf_perms() { > + chmod +x ${S}/waf > +} > + > +do_patch[postfuncs] += "adjust_waf_perms" > + > +FILES_${PN} += " \ > + ${datadir}/icons \ > + ${datadir}/zsh \ > + ${datadir}/bash-completion \ > + " > -- > 2.23.0.37.g745f681289 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: not available URL: From matt.hoosier at garmin.com Wed Feb 5 22:04:49 2020 From: matt.hoosier at garmin.com (Matt Hoosier) Date: Wed, 5 Feb 2020 16:04:49 -0600 Subject: [oe] [meta-networking][PATCH] mdns: improve numerous aspects of Posix backend Message-ID: <20200205220449.4719-1-matt.hoosier@garmin.com> Apple's default implementation of the Posix backend for mDNSResponder has a number of weaknesses. Address several of them, most notably: * Improve interface tracking, preventing confusion to mdns's state machine. Prevents spurious removal/republication cycles whenever network interfaces are added or removed. * Support network interfaces whose indeces are great than 31. Indices grow past that range surprisingly quickly, especially with multi- homed, mobile, wifi, Bluetooth, VPN, VLANs, or other interfaces present. * Correctly handle edge cases during removal of a network interface. The fixes are kept as a patch series for clarity. Signed-off-by: Matt Hoosier --- ...utine-for-cleaning-recent-interfaces.patch | 60 +++++ ...outine-for-tearing-down-an-interface.patch | 58 +++++ .../0003-Track-interface-socket-family.patch | 50 +++++ ...0004-Use-list-for-changed-interfaces.patch | 177 +++++++++++++++ .../0005-Handle-noisy-netlink-sockets.patch | 212 ++++++++++++++++++ .../files/0006-Remove-unneeded-function.patch | 51 +++++ ...cate-loopback-interface-to-mDNS-core.patch | 129 +++++++++++ ...-deleted-interfaces-as-being-changed.patch | 39 ++++ .../0009-Fix-possible-NULL-dereference.patch | 45 ++++ ...0010-Handle-errors-from-socket-calls.patch | 62 +++++ ...ic-allocation-to-file-scope-variable.patch | 51 +++++ .../recipes-protocols/mdns/mdns_878.260.1.bb | 11 + 12 files changed, 945 insertions(+) create mode 100644 meta-networking/recipes-protocols/mdns/files/0001-Create-subroutine-for-cleaning-recent-interfaces.patch create mode 100644 meta-networking/recipes-protocols/mdns/files/0002-Create-subroutine-for-tearing-down-an-interface.patch create mode 100644 meta-networking/recipes-protocols/mdns/files/0003-Track-interface-socket-family.patch create mode 100644 meta-networking/recipes-protocols/mdns/files/0004-Use-list-for-changed-interfaces.patch create mode 100644 meta-networking/recipes-protocols/mdns/files/0005-Handle-noisy-netlink-sockets.patch create mode 100644 meta-networking/recipes-protocols/mdns/files/0006-Remove-unneeded-function.patch create mode 100644 meta-networking/recipes-protocols/mdns/files/0007-Indicate-loopback-interface-to-mDNS-core.patch create mode 100644 meta-networking/recipes-protocols/mdns/files/0008-Mark-deleted-interfaces-as-being-changed.patch create mode 100644 meta-networking/recipes-protocols/mdns/files/0009-Fix-possible-NULL-dereference.patch create mode 100644 meta-networking/recipes-protocols/mdns/files/0010-Handle-errors-from-socket-calls.patch create mode 100644 meta-networking/recipes-protocols/mdns/files/0011-Change-a-dynamic-allocation-to-file-scope-variable.patch diff --git a/meta-networking/recipes-protocols/mdns/files/0001-Create-subroutine-for-cleaning-recent-interfaces.patch b/meta-networking/recipes-protocols/mdns/files/0001-Create-subroutine-for-cleaning-recent-interfaces.patch new file mode 100644 index 000000000..692c344db --- /dev/null +++ b/meta-networking/recipes-protocols/mdns/files/0001-Create-subroutine-for-cleaning-recent-interfaces.patch @@ -0,0 +1,60 @@ +From 89ea6ac4a8840e8c2be0140a9805c6522c6c5280 Mon Sep 17 00:00:00 2001 +From: Nate Karstens +Date: Wed, 28 Jun 2017 17:30:00 -0500 +Subject: [PATCH 01/11] Create subroutine for cleaning recent interfaces + +Moves functionality for cleaning the list of recent +interfaces into its own subroutine. + +Upstream-Status: Submitted [dts at apple.com] + +Signed-off-by: Nate Karstens +--- + mDNSPosix/mDNSPosix.c | 24 ++++++++++++++---------- + 1 file changed, 14 insertions(+), 10 deletions(-) + +diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c +index 0e10bd5..ffc9696 100644 +--- a/mDNSPosix/mDNSPosix.c ++++ b/mDNSPosix/mDNSPosix.c +@@ -856,6 +856,19 @@ mDNSlocal int SetupSocket(struct sockaddr *intfAddr, mDNSIPPort port, int interf + return err; + } + ++// Clean up any interfaces that have been hanging around on the RecentInterfaces list for more than a minute ++mDNSlocal void CleanRecentInterfaces(void) ++{ ++ PosixNetworkInterface **ri = &gRecentInterfaces; ++ const mDNSs32 utc = mDNSPlatformUTC(); ++ while (*ri) ++ { ++ PosixNetworkInterface *pi = *ri; ++ if (utc - pi->LastSeen < 60) ri = (PosixNetworkInterface **)&pi->coreIntf.next; ++ else { *ri = (PosixNetworkInterface *)pi->coreIntf.next; free(pi); } ++ } ++} ++ + // Creates a PosixNetworkInterface for the interface whose IP address is + // intfAddr and whose name is intfName and registers it with mDNS core. + mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct sockaddr *intfMask, const char *intfName, int intfIndex) +@@ -1010,16 +1023,7 @@ mDNSlocal int SetupInterfaceList(mDNS *const m) + + // Clean up. + if (intfList != NULL) free_ifi_info(intfList); +- +- // Clean up any interfaces that have been hanging around on the RecentInterfaces list for more than a minute +- PosixNetworkInterface **ri = &gRecentInterfaces; +- const mDNSs32 utc = mDNSPlatformUTC(); +- while (*ri) +- { +- PosixNetworkInterface *pi = *ri; +- if (utc - pi->LastSeen < 60) ri = (PosixNetworkInterface **)&pi->coreIntf.next; +- else { *ri = (PosixNetworkInterface *)pi->coreIntf.next; free(pi); } +- } ++ CleanRecentInterfaces(); + + return err; + } +-- +2.17.1 + diff --git a/meta-networking/recipes-protocols/mdns/files/0002-Create-subroutine-for-tearing-down-an-interface.patch b/meta-networking/recipes-protocols/mdns/files/0002-Create-subroutine-for-tearing-down-an-interface.patch new file mode 100644 index 000000000..21ba31849 --- /dev/null +++ b/meta-networking/recipes-protocols/mdns/files/0002-Create-subroutine-for-tearing-down-an-interface.patch @@ -0,0 +1,58 @@ +From a2148df99ddcd122247f95c4cbcce5c4118581a1 Mon Sep 17 00:00:00 2001 +From: Nate Karstens +Date: Wed, 28 Jun 2017 17:30:00 -0500 +Subject: [PATCH 02/11] Create subroutine for tearing down an interface + +Creates a subroutine for tearing down an interface. + +Upstream-Status: Submitted [dts at apple.com] + +Signed-off-by: Nate Karstens +--- + mDNSPosix/mDNSPosix.c | 22 ++++++++++++++++------ + 1 file changed, 16 insertions(+), 6 deletions(-) + +diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c +index ffc9696..5e5b2cd 100644 +--- a/mDNSPosix/mDNSPosix.c ++++ b/mDNSPosix/mDNSPosix.c +@@ -591,6 +591,19 @@ mDNSlocal void FreePosixNetworkInterface(PosixNetworkInterface *intf) + gRecentInterfaces = intf; + } + ++mDNSlocal void TearDownInterface(mDNS *const m, PosixNetworkInterface *intf) ++{ ++ mDNS_DeregisterInterface(m, &intf->coreIntf, NormalActivation); ++ if (gMDNSPlatformPosixVerboseLevel > 0) fprintf(stderr, "Deregistered interface %s\n", intf->intfName); ++ FreePosixNetworkInterface(intf); ++ ++ num_registered_interfaces--; ++ if (num_registered_interfaces == 0) { ++ num_pkts_accepted = 0; ++ num_pkts_rejected = 0; ++ } ++} ++ + // Grab the first interface, deregister it, free it, and repeat until done. + mDNSlocal void ClearInterfaceList(mDNS *const m) + { +@@ -599,13 +612,10 @@ mDNSlocal void ClearInterfaceList(mDNS *const m) + while (m->HostInterfaces) + { + PosixNetworkInterface *intf = (PosixNetworkInterface*)(m->HostInterfaces); +- mDNS_DeregisterInterface(m, &intf->coreIntf, NormalActivation); +- if (gMDNSPlatformPosixVerboseLevel > 0) fprintf(stderr, "Deregistered interface %s\n", intf->intfName); +- FreePosixNetworkInterface(intf); ++ TearDownInterface(m, intf); + } +- num_registered_interfaces = 0; +- num_pkts_accepted = 0; +- num_pkts_rejected = 0; ++ ++ assert(num_registered_interfaces == 0); + } + + // Sets up a send/receive socket. +-- +2.17.1 + diff --git a/meta-networking/recipes-protocols/mdns/files/0003-Track-interface-socket-family.patch b/meta-networking/recipes-protocols/mdns/files/0003-Track-interface-socket-family.patch new file mode 100644 index 000000000..8c0e6bf39 --- /dev/null +++ b/meta-networking/recipes-protocols/mdns/files/0003-Track-interface-socket-family.patch @@ -0,0 +1,50 @@ +From 71a7c728ae0d8143b66aa40decca74ebaa9aa2ce Mon Sep 17 00:00:00 2001 +From: Nate Karstens +Date: Wed, 28 Jun 2017 17:30:00 -0500 +Subject: [PATCH 03/11] Track interface socket family + +Tracks the socket family associated with the interface. + +Upstream-Status: Submitted [dts at apple.com] + +Signed-off-by: Nate Karstens +--- + mDNSPosix/mDNSPosix.c | 1 + + mDNSPosix/mDNSPosix.h | 2 ++ + 2 files changed, 3 insertions(+) + +diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c +index 5e5b2cd..8fe22be 100644 +--- a/mDNSPosix/mDNSPosix.c ++++ b/mDNSPosix/mDNSPosix.c +@@ -918,6 +918,7 @@ mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct + // Set up the extra fields in PosixNetworkInterface. + assert(intf->intfName != NULL); // intf->intfName already set up above + intf->index = intfIndex; ++ intf->sa_family = intfAddr->sa_family; + intf->multicastSocket4 = -1; + #if HAVE_IPV6 + intf->multicastSocket6 = -1; +diff --git a/mDNSPosix/mDNSPosix.h b/mDNSPosix/mDNSPosix.h +index ca60d80..f77c185 100644 +--- a/mDNSPosix/mDNSPosix.h ++++ b/mDNSPosix/mDNSPosix.h +@@ -19,6 +19,7 @@ + #define __mDNSPlatformPosix_h + + #include ++#include + #include + + #ifdef __cplusplus +@@ -40,6 +41,7 @@ struct PosixNetworkInterface + const char * intfName; + PosixNetworkInterface * aliasIntf; + int index; ++ sa_family_t sa_family; + int multicastSocket4; + #if HAVE_IPV6 + int multicastSocket6; +-- +2.17.1 + diff --git a/meta-networking/recipes-protocols/mdns/files/0004-Use-list-for-changed-interfaces.patch b/meta-networking/recipes-protocols/mdns/files/0004-Use-list-for-changed-interfaces.patch new file mode 100644 index 000000000..05ad49b9f --- /dev/null +++ b/meta-networking/recipes-protocols/mdns/files/0004-Use-list-for-changed-interfaces.patch @@ -0,0 +1,177 @@ +From e1f483510a1011e37540fdee8f3bc36111fa45a0 Mon Sep 17 00:00:00 2001 +From: Nate Karstens +Date: Thu, 13 Jul 2017 09:00:00 -0500 +Subject: [PATCH 04/11] Use list for changed interfaces + +Uses a linked list to store the index of changed network interfaces +instead of a bitfield. This allows for network interfaces with an +index greater than 31 (an index of 36 was seen on Android). + +Upstream-Status: Submitted [dts at apple.com] + +Signed-off-by: Nate Karstens +--- + mDNSPosix/mDNSPosix.c | 67 +++++++++++++++++++++++++++++++++---------- + 1 file changed, 52 insertions(+), 15 deletions(-) + +diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c +index 8fe22be..699855a 100644 +--- a/mDNSPosix/mDNSPosix.c ++++ b/mDNSPosix/mDNSPosix.c +@@ -75,6 +75,14 @@ struct IfChangeRec + }; + typedef struct IfChangeRec IfChangeRec; + ++// Used to build a list of network interface indices ++struct NetworkInterfaceIndex ++{ ++ int if_index; ++ struct NetworkInterfaceIndex *Next; ++}; ++typedef struct NetworkInterfaceIndex NetworkInterfaceIndex; ++ + // Note that static data is initialized to zero in (modern) C. + static fd_set gEventFDs; + static int gMaxFD; // largest fd in gEventFDs +@@ -1071,6 +1079,32 @@ mDNSlocal mStatus OpenIfNotifySocket(int *pFD) + return err; + } + ++mDNSlocal mDNSBool ListContainsInterfaceIndex(GenLinkedList *list, int if_index) ++{ ++ NetworkInterfaceIndex *item; ++ ++ for (item = (NetworkInterfaceIndex*)list->Head; item != NULL; item = item->Next) ++ { ++ if (if_index == item->if_index) return mDNStrue; ++ } ++ ++ return mDNSfalse; ++} ++ ++mDNSlocal void AddInterfaceIndexToList(GenLinkedList *list, int if_index) ++{ ++ NetworkInterfaceIndex *item; ++ ++ if (ListContainsInterfaceIndex(list, if_index)) return; ++ ++ item = malloc(sizeof *item); ++ if (item == NULL) return; ++ ++ item->if_index = if_index; ++ item->Next = NULL; ++ AddToTail(list, item); ++} ++ + #if MDNS_DEBUGMSGS + mDNSlocal void PrintNetLinkMsg(const struct nlmsghdr *pNLMsg) + { +@@ -1098,14 +1132,13 @@ mDNSlocal void PrintNetLinkMsg(const struct nlmsghdr *pNLMsg) + } + #endif + +-mDNSlocal mDNSu32 ProcessRoutingNotification(int sd) ++mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *changedInterfaces) + // Read through the messages on sd and if any indicate that any interface records should + // be torn down and rebuilt, return affected indices as a bitmask. Otherwise return 0. + { + ssize_t readCount; + char buff[4096]; + struct nlmsghdr *pNLMsg = (struct nlmsghdr*) buff; +- mDNSu32 result = 0; + + // The structure here is more complex than it really ought to be because, + // unfortunately, there's no good way to size a buffer in advance large +@@ -1141,9 +1174,9 @@ mDNSlocal mDNSu32 ProcessRoutingNotification(int sd) + + // Process the NetLink message + if (pNLMsg->nlmsg_type == RTM_GETLINK || pNLMsg->nlmsg_type == RTM_NEWLINK) +- result |= 1 << ((struct ifinfomsg*) NLMSG_DATA(pNLMsg))->ifi_index; ++ AddInterfaceIndexToList(changedInterfaces, ((struct ifinfomsg*) NLMSG_DATA(pNLMsg))->ifi_index); + else if (pNLMsg->nlmsg_type == RTM_DELADDR || pNLMsg->nlmsg_type == RTM_NEWADDR) +- result |= 1 << ((struct ifaddrmsg*) NLMSG_DATA(pNLMsg))->ifa_index; ++ AddInterfaceIndexToList(changedInterfaces, ((struct ifaddrmsg*) NLMSG_DATA(pNLMsg))->ifa_index); + + // Advance pNLMsg to the next message in the buffer + if ((pNLMsg->nlmsg_flags & NLM_F_MULTI) != 0 && pNLMsg->nlmsg_type != NLMSG_DONE) +@@ -1154,8 +1187,6 @@ mDNSlocal mDNSu32 ProcessRoutingNotification(int sd) + else + break; // all done! + } +- +- return result; + } + + #else // USES_NETLINK +@@ -1187,14 +1218,13 @@ mDNSlocal void PrintRoutingSocketMsg(const struct ifa_msghdr *pRSMsg) + } + #endif + +-mDNSlocal mDNSu32 ProcessRoutingNotification(int sd) ++mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *changedInterfaces) + // Read through the messages on sd and if any indicate that any interface records should + // be torn down and rebuilt, return affected indices as a bitmask. Otherwise return 0. + { + ssize_t readCount; + char buff[4096]; + struct ifa_msghdr *pRSMsg = (struct ifa_msghdr*) buff; +- mDNSu32 result = 0; + + readCount = read(sd, buff, sizeof buff); + if (readCount < (ssize_t) sizeof(struct ifa_msghdr)) +@@ -1209,12 +1239,10 @@ mDNSlocal mDNSu32 ProcessRoutingNotification(int sd) + pRSMsg->ifam_type == RTM_IFINFO) + { + if (pRSMsg->ifam_type == RTM_IFINFO) +- result |= 1 << ((struct if_msghdr*) pRSMsg)->ifm_index; ++ AddInterfaceIndexToList(changedInterfaces, ((struct if_msghdr*) pRSMsg)->ifm_index); + else +- result |= 1 << pRSMsg->ifam_index; ++ AddInterfaceIndexToList(changedInterfaces, pRSMsg->ifam_index); + } +- +- return result; + } + + #endif // USES_NETLINK +@@ -1224,7 +1252,8 @@ mDNSlocal void InterfaceChangeCallback(int fd, short filter, void *context) + { + IfChangeRec *pChgRec = (IfChangeRec*) context; + fd_set readFDs; +- mDNSu32 changedInterfaces = 0; ++ GenLinkedList changedInterfaces; ++ NetworkInterfaceIndex *changedInterface; + struct timeval zeroTimeout = { 0, 0 }; + + (void)fd; // Unused +@@ -1233,17 +1262,25 @@ mDNSlocal void InterfaceChangeCallback(int fd, short filter, void *context) + FD_ZERO(&readFDs); + FD_SET(pChgRec->NotifySD, &readFDs); + ++ InitLinkedList(&changedInterfaces, offsetof(NetworkInterfaceIndex, Next)); ++ + do + { +- changedInterfaces |= ProcessRoutingNotification(pChgRec->NotifySD); ++ ProcessRoutingNotification(pChgRec->NotifySD, &changedInterfaces); + } + while (0 < select(pChgRec->NotifySD + 1, &readFDs, (fd_set*) NULL, (fd_set*) NULL, &zeroTimeout)); + + // Currently we rebuild the entire interface list whenever any interface change is + // detected. If this ever proves to be a performance issue in a multi-homed + // configuration, more care should be paid to changedInterfaces. +- if (changedInterfaces) ++ if (changedInterfaces.Head != NULL) + mDNSPlatformPosixRefreshInterfaceList(pChgRec->mDNS); ++ ++ while ((changedInterface = (NetworkInterfaceIndex*)changedInterfaces.Head) != NULL) ++ { ++ RemoveFromList(&changedInterfaces, changedInterface); ++ free(changedInterface); ++ } + } + + // Register with either a Routing Socket or RtNetLink to listen for interface changes. +-- +2.17.1 + diff --git a/meta-networking/recipes-protocols/mdns/files/0005-Handle-noisy-netlink-sockets.patch b/meta-networking/recipes-protocols/mdns/files/0005-Handle-noisy-netlink-sockets.patch new file mode 100644 index 000000000..f2b171e55 --- /dev/null +++ b/meta-networking/recipes-protocols/mdns/files/0005-Handle-noisy-netlink-sockets.patch @@ -0,0 +1,212 @@ +From 92025cab86619f548bf3eb816a1804ef40507ca7 Mon Sep 17 00:00:00 2001 +From: Nate Karstens +Date: Mon, 24 Jul 2017 09:38:55 -0500 +Subject: [PATCH 05/11] Handle noisy netlink sockets + +The POSIX implementation currently clears all network interfaces +when netlink indicates that there has been a change. This causes +the following problems: + + 1) Applications are informed that all of the services they are + tracking have been removed. + 2) Increases network load because the client must re-query for + all records it is interested in. + +This changes netlink notification handling by: + + 1) Always comparing with the latest interface list returned + by the OS. + 2) Confirming that the interface has been changed in a way + that we care about. + +Upstream-Status: Submitted [dts at apple.com] + +Signed-off-by: Nate Karstens +--- + mDNSPosix/mDNSPosix.c | 143 +++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 133 insertions(+), 10 deletions(-) + +diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c +index 699855a..59a8b8c 100644 +--- a/mDNSPosix/mDNSPosix.c ++++ b/mDNSPosix/mDNSPosix.c +@@ -1247,14 +1247,38 @@ mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *change + + #endif // USES_NETLINK + ++// Test whether the given PosixNetworkInterface matches the given struct ifi_info ++mDNSlocal mDNSBool InterfacesMatch(PosixNetworkInterface *intf, struct ifi_info *ifi) ++{ ++ mDNSBool match = mDNSfalse; ++ mDNSAddr ip, mask; ++ ++ if((intf->index == ifi->ifi_index) && ++ (intf->sa_family == ifi->ifi_addr->sa_family) && ++ (strcmp(intf->coreIntf.ifname, ifi->ifi_name) == 0)) ++ { ++ SockAddrTomDNSAddr(ifi->ifi_addr, &ip, NULL); ++ SockAddrTomDNSAddr(ifi->ifi_netmask, &mask, NULL); ++ ++ match = mDNSSameAddress(&intf->coreIntf.ip, &ip) && ++ mDNSSameAddress(&intf->coreIntf.mask, &mask); ++ } ++ ++ return match; ++} ++ + // Called when data appears on interface change notification socket + mDNSlocal void InterfaceChangeCallback(int fd, short filter, void *context) + { + IfChangeRec *pChgRec = (IfChangeRec*) context; ++ mDNS *m = pChgRec->mDNS; + fd_set readFDs; + GenLinkedList changedInterfaces; + NetworkInterfaceIndex *changedInterface; + struct timeval zeroTimeout = { 0, 0 }; ++ struct ifi_info *ifi_list, **ifi, *ifi_free, *ifi_loop4 = NULL; ++ PosixNetworkInterface *intf, *intfNext; ++ mDNSBool found, foundav4; + + (void)fd; // Unused + (void)filter; // Unused +@@ -1270,12 +1294,115 @@ mDNSlocal void InterfaceChangeCallback(int fd, short filter, void *context) + } + while (0 < select(pChgRec->NotifySD + 1, &readFDs, (fd_set*) NULL, (fd_set*) NULL, &zeroTimeout)); + +- // Currently we rebuild the entire interface list whenever any interface change is +- // detected. If this ever proves to be a performance issue in a multi-homed +- // configuration, more care should be paid to changedInterfaces. +- if (changedInterfaces.Head != NULL) +- mDNSPlatformPosixRefreshInterfaceList(pChgRec->mDNS); ++ CleanRecentInterfaces(); ++ ++ if (changedInterfaces.Head == NULL) goto cleanup; ++ ++ ifi_list = get_ifi_info(AF_INET, mDNStrue); ++ if (ifi_list == NULL) goto cleanup; ++ ++#if HAVE_IPV6 ++ /* Link the IPv6 list to the end of the IPv4 list */ ++ ifi = &ifi_list; ++ while (*ifi != NULL) ifi = &(*ifi)->ifi_next; ++ *ifi = get_ifi_info(AF_INET6, mDNStrue); ++#endif ++ ++ for (intf = (PosixNetworkInterface*)(m->HostInterfaces); intf != NULL; intf = intfNext) ++ { ++ intfNext = (PosixNetworkInterface*)(intf->coreIntf.next); ++ ++ // Loopback interface(s) are handled later ++ if (intf->coreIntf.Loopback) continue; ++ ++ found = mDNSfalse; ++ for (ifi = &ifi_list; *ifi != NULL; ifi = &(*ifi)->ifi_next) ++ { ++ if (InterfacesMatch(intf, *ifi)) ++ { ++ found = mDNStrue; ++ ++ // Removes unchanged from ifi_list ++ ifi_free = *ifi; ++ *ifi = (*ifi)->ifi_next; ++ ifi_free->ifi_next = NULL; ++ free_ifi_info(ifi_free); ++ ++ break; ++ } ++ } ++ ++ // Removes changed and old interfaces from m->HostInterfaces ++ if (!found) TearDownInterface(m, intf); ++ } ++ ++ // Add new and changed interfaces in ifi_list ++ // Save off loopback interface in case it is needed later ++ for (ifi = &ifi_list; *ifi != NULL; ifi = &(*ifi)->ifi_next) ++ { ++ if ((ifi_loop4 == NULL) && ++ ((*ifi)->ifi_addr->sa_family == AF_INET) && ++ ((*ifi)->ifi_flags & IFF_UP) && ++ ((*ifi)->ifi_flags & IFF_LOOPBACK)) ++ { ++ ifi_loop4 = *ifi; ++ continue; ++ } ++ ++ if ( (((*ifi)->ifi_addr->sa_family == AF_INET) ++#if HAVE_IPV6 ++ || ((*ifi)->ifi_addr->sa_family == AF_INET6) ++#endif ++ ) && ((*ifi)->ifi_flags & IFF_UP) ++ && !((*ifi)->ifi_flags & IFF_POINTOPOINT) ++ && !((*ifi)->ifi_flags & IFF_LOOPBACK)) ++ { ++ SetupOneInterface(m, *ifi); ++ } ++ } ++ ++ // Determine if there is at least one non-loopback IPv4 interface. This is to work around issues ++ // with multicast loopback on IPv6 interfaces -- see corresponding logic in SetupInterfaceList(). ++ foundav4 = mDNSfalse; ++ for (intf = (PosixNetworkInterface*)(m->HostInterfaces); intf != NULL; intf = (PosixNetworkInterface*)(intf->coreIntf.next)) ++ { ++ if (intf->sa_family == AF_INET && !intf->coreIntf.Loopback) ++ { ++ foundav4 = mDNStrue; ++ break; ++ } ++ } ++ ++ if (foundav4) ++ { ++ for (intf = (PosixNetworkInterface*)(m->HostInterfaces); intf != NULL; intf = intfNext) ++ { ++ intfNext = (PosixNetworkInterface*)(intf->coreIntf.next); ++ if (intf->coreIntf.Loopback) TearDownInterface(m, intf); ++ } ++ } ++ else ++ { ++ found = mDNSfalse; ++ ++ for (intf = (PosixNetworkInterface*)(m->HostInterfaces); intf != NULL; intf = (PosixNetworkInterface*)(intf->coreIntf.next)) ++ { ++ if (intf->coreIntf.Loopback) ++ { ++ found = mDNStrue; ++ break; ++ } ++ } ++ ++ if (!found && (ifi_loop4 != NULL)) ++ { ++ SetupOneInterface(m, ifi_loop4); ++ } ++ } ++ ++ if (ifi_list != NULL) free_ifi_info(ifi_list); + ++cleanup: + while ((changedInterface = (NetworkInterfaceIndex*)changedInterfaces.Head) != NULL) + { + RemoveFromList(&changedInterfaces, changedInterface); +@@ -1400,15 +1527,11 @@ mDNSexport void mDNSPlatformClose(mDNS *const m) + #endif + } + +-// This is used internally by InterfaceChangeCallback. +-// It's also exported so that the Standalone Responder (mDNSResponderPosix) ++// This is exported so that the Standalone Responder (mDNSResponderPosix) + // can call it in response to a SIGHUP (mainly for debugging purposes). + mDNSexport mStatus mDNSPlatformPosixRefreshInterfaceList(mDNS *const m) + { + int err; +- // This is a pretty heavyweight way to process interface changes -- +- // destroying the entire interface list and then making fresh one from scratch. +- // We should make it like the OS X version, which leaves unchanged interfaces alone. + ClearInterfaceList(m); + err = SetupInterfaceList(m); + return PosixErrorToStatus(err); +-- +2.17.1 + diff --git a/meta-networking/recipes-protocols/mdns/files/0006-Remove-unneeded-function.patch b/meta-networking/recipes-protocols/mdns/files/0006-Remove-unneeded-function.patch new file mode 100644 index 000000000..b461a60df --- /dev/null +++ b/meta-networking/recipes-protocols/mdns/files/0006-Remove-unneeded-function.patch @@ -0,0 +1,51 @@ +From 157d67f152777754c059ced7511352102f23ffae Mon Sep 17 00:00:00 2001 +From: Nate Karstens +Date: Mon, 24 Jul 2017 09:39:18 -0500 +Subject: [PATCH 06/11] Remove unneeded function + +Removes a function we no longer need by integrating it into the only +function that calls it. This was originally separated so that we could +only process network interfaces that netlink indicated had been changed, +this has since been extended to test for all network intefaces. + +Upstream-Status: Submitted [dts at apple.com] + +Signed-off-by: Nate Karstens +--- + mDNSPosix/mDNSPosix.c | 13 ++----------- + 1 file changed, 2 insertions(+), 11 deletions(-) + +diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c +index 59a8b8c..3fc5451 100644 +--- a/mDNSPosix/mDNSPosix.c ++++ b/mDNSPosix/mDNSPosix.c +@@ -1079,24 +1079,15 @@ mDNSlocal mStatus OpenIfNotifySocket(int *pFD) + return err; + } + +-mDNSlocal mDNSBool ListContainsInterfaceIndex(GenLinkedList *list, int if_index) ++mDNSlocal void AddInterfaceIndexToList(GenLinkedList *list, int if_index) + { + NetworkInterfaceIndex *item; + + for (item = (NetworkInterfaceIndex*)list->Head; item != NULL; item = item->Next) + { +- if (if_index == item->if_index) return mDNStrue; ++ if (if_index == item->if_index) return; + } + +- return mDNSfalse; +-} +- +-mDNSlocal void AddInterfaceIndexToList(GenLinkedList *list, int if_index) +-{ +- NetworkInterfaceIndex *item; +- +- if (ListContainsInterfaceIndex(list, if_index)) return; +- + item = malloc(sizeof *item); + if (item == NULL) return; + +-- +2.17.1 + diff --git a/meta-networking/recipes-protocols/mdns/files/0007-Indicate-loopback-interface-to-mDNS-core.patch b/meta-networking/recipes-protocols/mdns/files/0007-Indicate-loopback-interface-to-mDNS-core.patch new file mode 100644 index 000000000..86201c650 --- /dev/null +++ b/meta-networking/recipes-protocols/mdns/files/0007-Indicate-loopback-interface-to-mDNS-core.patch @@ -0,0 +1,129 @@ +From 07a9401d84804d7f0181aa4fb0f13a54b2a1c9a8 Mon Sep 17 00:00:00 2001 +From: Nate Karstens +Date: Tue, 1 Aug 2017 17:06:01 -0500 +Subject: [PATCH 07/11] Indicate loopback interface to mDNS core + +Tells the mDNS core if an interface is a loopback interface, +similar to AddInterfaceToList() in the MacOS implementation. +Also reorganizes SetupOneInterface() to use a const struct +rather than growing its parameter list again. + +Upstream-Status: Submitted [dts at apple.com] + +Signed-off-by: Nate Karstens +--- + mDNSPosix/mDNSPosix.c | 37 ++++++++++++++++++------------------- + 1 file changed, 18 insertions(+), 19 deletions(-) + +diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c +index 3fc5451..798ab10 100644 +--- a/mDNSPosix/mDNSPosix.c ++++ b/mDNSPosix/mDNSPosix.c +@@ -889,16 +889,14 @@ mDNSlocal void CleanRecentInterfaces(void) + + // Creates a PosixNetworkInterface for the interface whose IP address is + // intfAddr and whose name is intfName and registers it with mDNS core. +-mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct sockaddr *intfMask, const char *intfName, int intfIndex) ++mDNSlocal int SetupOneInterface(mDNS *const m, struct ifi_info *const ifi) + { + int err = 0; + PosixNetworkInterface *intf; + PosixNetworkInterface *alias = NULL; + + assert(m != NULL); +- assert(intfAddr != NULL); +- assert(intfName != NULL); +- assert(intfMask != NULL); ++ assert(ifi != NULL); + + // Allocate the interface structure itself. + intf = (PosixNetworkInterface*)calloc(1, sizeof(*intf)); +@@ -907,26 +905,27 @@ mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct + // And make a copy of the intfName. + if (err == 0) + { +- intf->intfName = strdup(intfName); ++ intf->intfName = strdup(ifi->ifi_name); + if (intf->intfName == NULL) { assert(0); err = ENOMEM; } + } + + if (err == 0) + { + // Set up the fields required by the mDNS core. +- SockAddrTomDNSAddr(intfAddr, &intf->coreIntf.ip, NULL); +- SockAddrTomDNSAddr(intfMask, &intf->coreIntf.mask, NULL); ++ SockAddrTomDNSAddr(ifi->ifi_addr, &intf->coreIntf.ip, NULL); ++ SockAddrTomDNSAddr(ifi->ifi_netmask, &intf->coreIntf.mask, NULL); + + //LogMsg("SetupOneInterface: %#a %#a", &intf->coreIntf.ip, &intf->coreIntf.mask); +- strncpy(intf->coreIntf.ifname, intfName, sizeof(intf->coreIntf.ifname)); ++ strncpy(intf->coreIntf.ifname, ifi->ifi_name, sizeof(intf->coreIntf.ifname)); + intf->coreIntf.ifname[sizeof(intf->coreIntf.ifname)-1] = 0; + intf->coreIntf.Advertise = m->AdvertiseLocalAddresses; + intf->coreIntf.McastTxRx = mDNStrue; ++ intf->coreIntf.Loopback = ((ifi->ifi_flags & IFF_LOOPBACK) != 0) ? mDNStrue : mDNSfalse; + + // Set up the extra fields in PosixNetworkInterface. + assert(intf->intfName != NULL); // intf->intfName already set up above +- intf->index = intfIndex; +- intf->sa_family = intfAddr->sa_family; ++ intf->index = ifi->ifi_index; ++ intf->sa_family = ifi->ifi_addr->sa_family; + intf->multicastSocket4 = -1; + #if HAVE_IPV6 + intf->multicastSocket6 = -1; +@@ -936,17 +935,17 @@ mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct + intf->coreIntf.InterfaceID = (mDNSInterfaceID)alias; + + if (alias != intf) +- debugf("SetupOneInterface: %s %#a is an alias of %#a", intfName, &intf->coreIntf.ip, &alias->coreIntf.ip); ++ debugf("SetupOneInterface: %s %#a is an alias of %#a", ifi->ifi_name, &intf->coreIntf.ip, &alias->coreIntf.ip); + } + + // Set up the multicast socket + if (err == 0) + { +- if (alias->multicastSocket4 == -1 && intfAddr->sa_family == AF_INET) +- err = SetupSocket(intfAddr, MulticastDNSPort, intf->index, &alias->multicastSocket4); ++ if (alias->multicastSocket4 == -1 && ifi->ifi_addr->sa_family == AF_INET) ++ err = SetupSocket(ifi->ifi_addr, MulticastDNSPort, intf->index, &alias->multicastSocket4); + #if HAVE_IPV6 +- else if (alias->multicastSocket6 == -1 && intfAddr->sa_family == AF_INET6) +- err = SetupSocket(intfAddr, MulticastDNSPort, intf->index, &alias->multicastSocket6); ++ else if (alias->multicastSocket6 == -1 && ifi->ifi_addr->sa_family == AF_INET6) ++ err = SetupSocket(ifi->ifi_addr, MulticastDNSPort, intf->index, &alias->multicastSocket6); + #endif + } + +@@ -973,8 +972,8 @@ mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct + } + else + { +- // Use intfName instead of intf->intfName in the next line to avoid dereferencing NULL. +- debugf("SetupOneInterface: %s %#a failed to register %d", intfName, &intf->coreIntf.ip, err); ++ // Use ifi->ifi_name instead of intf->intfName in the next line to avoid dereferencing NULL. ++ debugf("SetupOneInterface: %s %#a failed to register %d", ifi->ifi_name, &intf->coreIntf.ip, err); + if (intf) { FreePosixNetworkInterface(intf); intf = NULL; } + } + +@@ -1023,7 +1022,7 @@ mDNSlocal int SetupInterfaceList(mDNS *const m) + } + else + { +- if (SetupOneInterface(m, i->ifi_addr, i->ifi_netmask, i->ifi_name, i->ifi_index) == 0) ++ if (SetupOneInterface(m, i) == 0) + if (i->ifi_addr->sa_family == AF_INET) + foundav4 = mDNStrue; + } +@@ -1037,7 +1036,7 @@ mDNSlocal int SetupInterfaceList(mDNS *const m) + // In the interim, we skip loopback interface only if we found at least one v4 interface to use + // if ((m->HostInterfaces == NULL) && (firstLoopback != NULL)) + if (!foundav4 && firstLoopback) +- (void) SetupOneInterface(m, firstLoopback->ifi_addr, firstLoopback->ifi_netmask, firstLoopback->ifi_name, firstLoopback->ifi_index); ++ (void) SetupOneInterface(m, firstLoopback); + } + + // Clean up. +-- +2.17.1 + diff --git a/meta-networking/recipes-protocols/mdns/files/0008-Mark-deleted-interfaces-as-being-changed.patch b/meta-networking/recipes-protocols/mdns/files/0008-Mark-deleted-interfaces-as-being-changed.patch new file mode 100644 index 000000000..fdc5105cb --- /dev/null +++ b/meta-networking/recipes-protocols/mdns/files/0008-Mark-deleted-interfaces-as-being-changed.patch @@ -0,0 +1,39 @@ +From 0fcc0f210f3a9310a1963de640b384ce866410fd Mon Sep 17 00:00:00 2001 +From: Nate Karstens +Date: Wed, 9 Aug 2017 09:16:58 -0500 +Subject: [PATCH 08/11] Mark deleted interfaces as being changed + +Netlink notification handling ignores messages for deleted links, +RTM_DELLINK. It does handle RTM_GETLINK. According to libnl docu- +mentation (http://www.infradead.org/~tgr/libnl/doc/route.html) +RTM_DELLINK can be sent by the kernel, but RTM_GETLINK cannot. +There was likely a mixup in the original implementation, so this +change replaces handling for RTM_GETLINK with RTM_DELLINK. + +Testing and Verification Instructions: + 1. Use ip-link to add and remove a VLAN interface and verify + that mDNSResponder handles the deleted link. + +Upstream-Status: Submitted [dts at apple.com] + +Signed-off-by: Nate Karstens +--- + mDNSPosix/mDNSPosix.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c +index 798ab10..a8a57df 100644 +--- a/mDNSPosix/mDNSPosix.c ++++ b/mDNSPosix/mDNSPosix.c +@@ -1163,7 +1163,7 @@ mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *change + #endif + + // Process the NetLink message +- if (pNLMsg->nlmsg_type == RTM_GETLINK || pNLMsg->nlmsg_type == RTM_NEWLINK) ++ if (pNLMsg->nlmsg_type == RTM_DELLINK || pNLMsg->nlmsg_type == RTM_NEWLINK) + AddInterfaceIndexToList(changedInterfaces, ((struct ifinfomsg*) NLMSG_DATA(pNLMsg))->ifi_index); + else if (pNLMsg->nlmsg_type == RTM_DELADDR || pNLMsg->nlmsg_type == RTM_NEWADDR) + AddInterfaceIndexToList(changedInterfaces, ((struct ifaddrmsg*) NLMSG_DATA(pNLMsg))->ifa_index); +-- +2.17.1 + diff --git a/meta-networking/recipes-protocols/mdns/files/0009-Fix-possible-NULL-dereference.patch b/meta-networking/recipes-protocols/mdns/files/0009-Fix-possible-NULL-dereference.patch new file mode 100644 index 000000000..362d69768 --- /dev/null +++ b/meta-networking/recipes-protocols/mdns/files/0009-Fix-possible-NULL-dereference.patch @@ -0,0 +1,45 @@ +From 38cff19781f81586926b02f0fd1cb36c040395e0 Mon Sep 17 00:00:00 2001 +From: Nate Karstens +Date: Thu, 10 Aug 2017 08:21:53 -0500 +Subject: [PATCH 09/11] Fix possible NULL dereference + +Fixes a possible NULL dereference if memory for +the PosixNetworkInterface could not be allocated. +Other logic seems to prevent dereferencing this +variable if NULL, but this instance seems to have +been overlooked. + +Upstream-Status: Submitted [dts at apple.com] + +Signed-off-by: Nate Karstens +--- + mDNSPosix/mDNSPosix.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c +index a8a57df..3243ed4 100644 +--- a/mDNSPosix/mDNSPosix.c ++++ b/mDNSPosix/mDNSPosix.c +@@ -951,12 +951,15 @@ mDNSlocal int SetupOneInterface(mDNS *const m, struct ifi_info *const ifi) + + // If interface is a direct link, address record will be marked as kDNSRecordTypeKnownUnique + // and skip the probe phase of the probe/announce packet sequence. +- intf->coreIntf.DirectLink = mDNSfalse; ++ if (err == 0) ++ { ++ intf->coreIntf.DirectLink = mDNSfalse; + #ifdef DIRECTLINK_INTERFACE_NAME +- if (strcmp(intfName, STRINGIFY(DIRECTLINK_INTERFACE_NAME)) == 0) +- intf->coreIntf.DirectLink = mDNStrue; ++ if (strcmp(intfName, STRINGIFY(DIRECTLINK_INTERFACE_NAME)) == 0) ++ intf->coreIntf.DirectLink = mDNStrue; + #endif +- intf->coreIntf.SupportsUnicastMDNSResponse = mDNStrue; ++ intf->coreIntf.SupportsUnicastMDNSResponse = mDNStrue; ++ } + + // The interface is all ready to go, let's register it with the mDNS core. + if (err == 0) +-- +2.17.1 + diff --git a/meta-networking/recipes-protocols/mdns/files/0010-Handle-errors-from-socket-calls.patch b/meta-networking/recipes-protocols/mdns/files/0010-Handle-errors-from-socket-calls.patch new file mode 100644 index 000000000..b9b015727 --- /dev/null +++ b/meta-networking/recipes-protocols/mdns/files/0010-Handle-errors-from-socket-calls.patch @@ -0,0 +1,62 @@ +From 382b3b924e43abd1bdc5792918161d0922666691 Mon Sep 17 00:00:00 2001 +From: Nate Karstens +Date: Thu, 10 Aug 2017 08:27:32 -0500 +Subject: [PATCH 10/11] Handle errors from socket calls + +Adds handling for socket() or read() returning a +negative value (indicating an error has occurred). + +Upstream-Status: Submitted [dts at apple.com] + +Signed-off-by: Nate Karstens +--- + mDNSPosix/mDNSPosix.c | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c +index 3243ed4..84af26b 100644 +--- a/mDNSPosix/mDNSPosix.c ++++ b/mDNSPosix/mDNSPosix.c +@@ -1129,7 +1129,7 @@ mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *change + // Read through the messages on sd and if any indicate that any interface records should + // be torn down and rebuilt, return affected indices as a bitmask. Otherwise return 0. + { +- ssize_t readCount; ++ ssize_t readVal, readCount; + char buff[4096]; + struct nlmsghdr *pNLMsg = (struct nlmsghdr*) buff; + +@@ -1138,7 +1138,10 @@ mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *change + // enough to hold all pending data and so avoid message fragmentation. + // (Note that FIONREAD is not supported on AF_NETLINK.) + +- readCount = read(sd, buff, sizeof buff); ++ readVal = read(sd, buff, sizeof buff); ++ if (readVal < 0) return; ++ readCount = readVal; ++ + while (1) + { + // Make sure we've got an entire nlmsghdr in the buffer, and payload, too. +@@ -1154,7 +1157,9 @@ mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *change + pNLMsg = (struct nlmsghdr*) buff; + + // read more data +- readCount += read(sd, buff + readCount, sizeof buff - readCount); ++ readVal = read(sd, buff + readCount, sizeof buff - readCount); ++ if (readVal < 0) return; ++ readCount += readVal; + continue; // spin around and revalidate with new readCount + } + else +@@ -1429,6 +1434,7 @@ mDNSlocal mDNSBool mDNSPlatformInit_CanReceiveUnicast(void) + int err; + int s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); + struct sockaddr_in s5353; ++ if (s < 0) return mDNSfalse; + s5353.sin_family = AF_INET; + s5353.sin_port = MulticastDNSPort.NotAnInteger; + s5353.sin_addr.s_addr = 0; +-- +2.17.1 + diff --git a/meta-networking/recipes-protocols/mdns/files/0011-Change-a-dynamic-allocation-to-file-scope-variable.patch b/meta-networking/recipes-protocols/mdns/files/0011-Change-a-dynamic-allocation-to-file-scope-variable.patch new file mode 100644 index 000000000..d64fb35db --- /dev/null +++ b/meta-networking/recipes-protocols/mdns/files/0011-Change-a-dynamic-allocation-to-file-scope-variable.patch @@ -0,0 +1,51 @@ +From 19de26db69408f02241e232b39224589a0f630df Mon Sep 17 00:00:00 2001 +From: Nate Karstens +Date: Thu, 10 Aug 2017 08:46:03 -0500 +Subject: [PATCH 11/11] Change a dynamic allocation to file-scope variable + +Changes a variable from being dynamically-allocated to being +statically-allocated at the file scope. Addresses a Coverity +issue where it appeared that the memory was being leaked. + +Upstream-Status: Submitted [dts at apple.com] + +Signed-off-by: Nate Karstens +--- + mDNSPosix/mDNSPosix.c | 12 ++++-------- + 1 file changed, 4 insertions(+), 8 deletions(-) + +diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c +index 84af26b..b7795ed 100644 +--- a/mDNSPosix/mDNSPosix.c ++++ b/mDNSPosix/mDNSPosix.c +@@ -91,6 +91,7 @@ static sigset_t gEventSignalSet; // Signals which event loop list + static sigset_t gEventSignals; // Signals which were received while inside loop + + static PosixNetworkInterface *gRecentInterfaces; ++static IfChangeRec gChgRec; + + // *************************************************************************** + // Globals (for debugging) +@@ -1412,16 +1413,11 @@ cleanup: + mDNSlocal mStatus WatchForInterfaceChange(mDNS *const m) + { + mStatus err; +- IfChangeRec *pChgRec; + +- pChgRec = (IfChangeRec*) mDNSPlatformMemAllocate(sizeof *pChgRec); +- if (pChgRec == NULL) +- return mStatus_NoMemoryErr; +- +- pChgRec->mDNS = m; +- err = OpenIfNotifySocket(&pChgRec->NotifySD); ++ gChgRec.mDNS = m; ++ err = OpenIfNotifySocket(&gChgRec.NotifySD); + if (err == 0) +- err = mDNSPosixAddFDToEventLoop(pChgRec->NotifySD, InterfaceChangeCallback, pChgRec); ++ err = mDNSPosixAddFDToEventLoop(gChgRec.NotifySD, InterfaceChangeCallback, &gChgRec); + + return err; + } +-- +2.17.1 + diff --git a/meta-networking/recipes-protocols/mdns/mdns_878.260.1.bb b/meta-networking/recipes-protocols/mdns/mdns_878.260.1.bb index 017894531..a5991bf73 100644 --- a/meta-networking/recipes-protocols/mdns/mdns_878.260.1.bb +++ b/meta-networking/recipes-protocols/mdns/mdns_878.260.1.bb @@ -11,6 +11,17 @@ RPROVIDES_${PN} += "libdns_sd.so" SRC_URI = "https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-${PV}.tar.gz \ file://build.patch;patchdir=.. \ file://mdns.service \ + file://0001-Create-subroutine-for-cleaning-recent-interfaces.patch;patchdir=.. \ + file://0002-Create-subroutine-for-tearing-down-an-interface.patch;patchdir=.. \ + file://0003-Track-interface-socket-family.patch;patchdir=.. \ + file://0004-Use-list-for-changed-interfaces.patch;patchdir=.. \ + file://0005-Handle-noisy-netlink-sockets.patch;patchdir=.. \ + file://0006-Remove-unneeded-function.patch;patchdir=.. \ + file://0007-Indicate-loopback-interface-to-mDNS-core.patch;patchdir=.. \ + file://0008-Mark-deleted-interfaces-as-being-changed.patch;patchdir=.. \ + file://0009-Fix-possible-NULL-dereference.patch;patchdir=.. \ + file://0010-Handle-errors-from-socket-calls.patch;patchdir=.. \ + file://0011-Change-a-dynamic-allocation-to-file-scope-variable.patch;patchdir=.. \ " SRC_URI[md5sum] = "aeb92d838a4aa2402ef128ed501484eb" SRC_URI[sha256sum] = "3cc71582e8eee469c2de8ecae1d769e7f32b3468dfb7f2ca77f1dee1f30a7d1e" -- 2.21.0 From twoerner at gmail.com Wed Feb 5 23:02:36 2020 From: twoerner at gmail.com (Trevor Woerner) Date: Wed, 5 Feb 2020 18:02:36 -0500 Subject: [oe] [meta-oe][PATCH] mpv: 0.26.0 -> 0.32.0 In-Reply-To: <20200205210707.c4eqrvbyl7tl3knt@jama> References: <20200205203053.6742-1-twoerner@gmail.com> <20200205210707.c4eqrvbyl7tl3knt@jama> Message-ID: <20200205230236.GA18868@linux-uys3> On Wed 2020-02-05 @ 10:07:07 PM, Martin Jansa wrote: > Thanks, > > would you mind undoing: > http://git.openembedded.org/meta-openembedded/commit/?id=0c182e58775966699c303c1e2561c273197bf445 > in the same commit? Sure, no problem. v2 on the way > Also was this sent with -M? haha, I know exactly what you mean! I did the format-patch twice just to convince myself I had used the -M (and I had, twice). I don't understand why there's no similarity :-( From randy.macleod at windriver.com Wed Feb 5 23:17:34 2020 From: randy.macleod at windriver.com (Randy MacLeod) Date: Wed, 5 Feb 2020 18:17:34 -0500 Subject: [oe] [meta-python2][RFC] lib/oeqa/runtime/cases/python2_module.py: add test In-Reply-To: <20200125082548.12976-1-ticotimo@gmail.com> References: <20200125082548.12976-1-ticotimo@gmail.com> Message-ID: <513f7afe-1f2a-a8f2-70d1-63db5ddfcfde@windriver.com> On 1/25/20 3:25 AM, Tim Orling wrote: > This test case is intentionally limited to only tesing one > python package/recipe at a time, because the use case is to > determine whether dependencies have been met for a minimal > image with 'only' the package under test installed. This > dependency checking must include the packages-split python > standard library modules that OE/YP creates from the python > manifest. > > TODO: Be smarter about PYTHON_IMPORTS_UNDER_TEST, as this > should be discoverable from /usr/lib/python2.7/site-packages > or from the rpm/deb/ipk of the python package itself. > What we do NOT want to do is use pkgdata or some other > magical Python script that will add dependencies to the > test image. We need as pristine and minimalist a test > environment as we can get. > > TODO: Use a minimal master test image and install the package under > test from a package feed using a package manager in the master > test image. This would allow for much shorter developement > cycles. > > TODO: Parse the ImportError and give hints about what dependencies > are missing. This looks useful. Do you have the python3 version done but not sent or should Trevor see if he can get that to work? > > Example configuration in local.conf: > > IMAGE_CLASSES += " testimage" > DISTRO_FEAURES_append = " ptest" > EXTRA_IMAGE_FEATURES = "debug-tweaks" > TESTIMAGE_AUTO = "1" > TEST_SUITES = " ping ssh python2 ptest python2_module" > TEST_QEMUPARAMS += "-smp 4 -m 8192" > TEST_RUNQEMUPARAMS += "kvm gl" > IMAGE_ROOTFS_SIZE ?= "8192" > IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "", d)}" > IMAGE_INSTALL_append = " ptest-runner dropbear procps coreutils iproute2 sysstat" Is this really a minimal set of dependencies and if so, why do you need: procps coreutils iproute2 sysstat ? I should probably try it before replying but it's already been a long day! ../Randy > PYTHON_PACKAGE_UNDER_TEST = "python-pymongo" > IMAGE_INSTALL_append = " ${PYTHON_PACKAGE_UNDER_TEST}" > PYTHON_IMPORTS_UNDER_TEST = "bson gridfs pymongo" > > Signed-off-by: Tim Orling > --- > lib/oeqa/runtime/cases/python2_module.py | 97 ++++++++++++++++++++++++ > 1 file changed, 97 insertions(+) > create mode 100644 lib/oeqa/runtime/cases/python2_module.py > > diff --git a/lib/oeqa/runtime/cases/python2_module.py b/lib/oeqa/runtime/cases/python2_module.py > new file mode 100644 > index 00000000..59ae00fb > --- /dev/null > +++ b/lib/oeqa/runtime/cases/python2_module.py > @@ -0,0 +1,97 @@ > +# > +# SPDX-License-Identifier: MIT > +# > + > +import os > + > +from oeqa.runtime.case import OERuntimeTestCase > +from oeqa.core.decorator.depends import OETestDepends > +from oeqa.core.decorator.data import OETestDataDepends > +from oeqa.runtime.decorator.package import OEHasPackage > + > + > +class PythonModuleTest(OERuntimeTestCase): > + """This test case is intentionally limited to only tesing one > + python package/recipe at a time, because the use case is to > + determine whether dependencies have been met for a minimal > + image with 'only' the package under test installed. This > + dependency checking must include the packages-split python > + standard library modules that OE/YP creates from the python > + manifest. > + > + TODO: Be smarter about PYTHON_IMPORTS_UNDER_TEST, as this > + should be discoverable from /usr/lib/python2.7/site-packages > + or from the rpm/deb/ipk of the python package itself. > + What we do NOT want to do is use pkgdata or some other > + magical Python script that will add dependencies to the > + test image. We need as pristine and minimalist a test > + environment as we can get. > + > + TODO: Use a minimal master test image and install the package under > + test from a package feed using a package manager in the master > + test image. This would allow for much shorter developement > + cycles. > + > + TODO: Parse the ImportError and give hints about what dependencies > + are missing. > + > + > + Example configuration in local.conf: > + > + IMAGE_CLASSES += " testimage" > + DISTRO_FEAURES_append = " ptest" > + EXTRA_IMAGE_FEATURES = "debug-tweaks" > + TESTIMAGE_AUTO = "1" > + TEST_SUITES = " ping ssh python2 ptest python2_module" > + TEST_QEMUPARAMS += "-smp 4 -m 8192" > + TEST_RUNQEMUPARAMS += "kvm gl" > + IMAGE_ROOTFS_SIZE ?= "8192" > + IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "", d)}" > + IMAGE_INSTALL_append = " ptest-runner dropbear procps coreutils iproute2 sysstat" > + PYTHON_PACKAGE_UNDER_TEST = "python-engineio" > + IMAGE_INSTALL_append = " ${PYTHON_PACKAGE_UNDER_TEST}" > + PYTHON_IMPORTS_UNDER_TEST = "engineio" > + """ > + > + package = "" > + imports = [] > + > + @classmethod > + def setUp(cls): > + if 'PYTHON_PACKAGE_UNDER_TEST' in cls.tc.td: > + cls.package = cls.tc.td.get('PYTHON_PACKAGE_UNDER_TEST') > + cls.logger.debug('Running import test on "%s" recipe' % cls.package) > + else: > + cls.logger.error('No recipe to test found in configuration.\n' > + 'Please set in PYTHON_PACKAGE_UNDER_TEST') > + if 'PYTHON_IMPORTS_UNDER_TEST' in cls.tc.td: > + cls.imports = cls.tc.td.get('PYTHON_IMPORTS_UNDER_TEST').split() > + if isinstance(cls.imports, list) and len(cls.imports) > 0: > + cls.logger.info('Importing from %s' % cls.imports) > + else: > + cls.logger.error("PYTHON_IMPORTS_UNDER_TEST should be a space delimited list") > + cls.logger.error("typeof(PYTHON_IMPORTS_UNDER_TEST) is %s" % type(cls.imports)) > + else: > + cls.logger.error("No modules to import found in configuration.\n" > + "Please set in variable PYTHON_IMPORTS_UNDER_TEST") > + > + > +class PythonModuleImportTest(PythonModuleTest): > + @OETestDepends(['ssh.SSHTest.test_ssh']) > + @OETestDepends(['python2.PythonTest.test_python']) > + @OETestDataDepends(['PYTHON_PACKAGE_UNDER_TEST']) > + @OETestDataDepends(['PYTHON_IMPORTS_UNDER_TEST']) > + def test_python_module(self): > + # We can't use the OEHasPackage decorator, because 'package' isn't defined > + # until the class has already been instantiated > + msg = 'Checking if "%s" is installed' % self.package > + self.logger.debug(msg) > + if not self.package in self.tc.image_packages: > + msg = 'Test requires "%s" to be installed' % self.package > + self.skipTest(msg) > + > + for python_import in self.imports: > + cmd = 'python -c "import %s"' % python_import > + status, output = self.target.run(cmd) > + msg = 'Exit status was not 0. Output: %s' % output > + self.assertEqual(status, 0, msg=msg) > -- # Randy MacLeod # Wind River Linux From raj.khem at gmail.com Wed Feb 5 23:32:24 2020 From: raj.khem at gmail.com (Khem Raj) Date: Wed, 5 Feb 2020 15:32:24 -0800 Subject: [oe] [meta-oe][PATCH] mpv: 0.26.0 -> 0.32.0 In-Reply-To: <20200205230236.GA18868@linux-uys3> References: <20200205203053.6742-1-twoerner@gmail.com> <20200205210707.c4eqrvbyl7tl3knt@jama> <20200205230236.GA18868@linux-uys3> Message-ID: On Wed, Feb 5, 2020 at 3:02 PM Trevor Woerner wrote: > > On Wed 2020-02-05 @ 10:07:07 PM, Martin Jansa wrote: > > Thanks, > > > > would you mind undoing: > > http://git.openembedded.org/meta-openembedded/commit/?id=0c182e58775966699c303c1e2561c273197bf445 > > in the same commit? > > Sure, no problem. > v2 on the way > > > Also was this sent with -M? > > haha, I know exactly what you mean! I did the format-patch twice just to > convince myself I had used the -M (and I had, twice). I don't understand why > there's no similarity :-( also please take a look at https://errors.yoctoproject.org/Errors/Details/390294/ > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From ticotimo at gmail.com Wed Feb 5 23:49:00 2020 From: ticotimo at gmail.com (Tim Orling) Date: Wed, 5 Feb 2020 15:49:00 -0800 Subject: [oe] [meta-python2][RFC] lib/oeqa/runtime/cases/python2_module.py: add test In-Reply-To: <513f7afe-1f2a-a8f2-70d1-63db5ddfcfde@windriver.com> References: <20200125082548.12976-1-ticotimo@gmail.com> <513f7afe-1f2a-a8f2-70d1-63db5ddfcfde@windriver.com> Message-ID: On Wed, Feb 5, 2020 at 3:18 PM Randy MacLeod wrote: > On 1/25/20 3:25 AM, Tim Orling wrote: > > This test case is intentionally limited to only tesing one > > python package/recipe at a time, because the use case is to > > determine whether dependencies have been met for a minimal > > image with 'only' the package under test installed. This > > dependency checking must include the packages-split python > > standard library modules that OE/YP creates from the python > > manifest. > > > > TODO: Be smarter about PYTHON_IMPORTS_UNDER_TEST, as this > > should be discoverable from /usr/lib/python2.7/site-packages > > or from the rpm/deb/ipk of the python package itself. > > What we do NOT want to do is use pkgdata or some other > > magical Python script that will add dependencies to the > > test image. We need as pristine and minimalist a test > > environment as we can get. > > > > TODO: Use a minimal master test image and install the package under > > test from a package feed using a package manager in the master > > test image. This would allow for much shorter developement > > cycles. > > > > TODO: Parse the ImportError and give hints about what dependencies > > are missing. > > This looks useful. Do you have the python3 version done but not sent > or should Trevor see if he can get that to work? > > I have not started the python3 version yet. To do what is functional here will be trivial changes. I'd love to see traction on the TODO list and it should be interesting work for Trevor to do. This tool is now in my "daily" workflow. There is one possible issue, which is a change in the variables does not necessarily trigger the tests you expect. The symptom is running testimage tests the last thing you had the variable set to, not the current value in local.conf. There are other places in the code base where variables are watched and trigger changes appropriately. I did not go that far yet. Also, the variables names between py2 and py3 would need to be different, but that is a thing of the past for master, so not a real issue. > > > > Example configuration in local.conf: > > > > IMAGE_CLASSES += " testimage" > > DISTRO_FEAURES_append = " ptest" > > EXTRA_IMAGE_FEATURES = "debug-tweaks" > > TESTIMAGE_AUTO = "1" > > TEST_SUITES = " ping ssh python2 ptest python2_module" > > TEST_QEMUPARAMS += "-smp 4 -m 8192" > > TEST_RUNQEMUPARAMS += "kvm gl" > > IMAGE_ROOTFS_SIZE ?= "8192" > > IMAGE_ROOTFS_EXTRA_SPACE_append = > "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "", d)}" > > IMAGE_INSTALL_append = " ptest-runner dropbear procps coreutils iproute2 > sysstat" > Is this really a minimal set of dependencies and if so, why do you need: > procps coreutils iproute2 sysstat > ? > > I should probably try it before replying but > it's already been a long day! > > ../Randy > > > PYTHON_PACKAGE_UNDER_TEST = "python-pymongo" > > IMAGE_INSTALL_append = " ${PYTHON_PACKAGE_UNDER_TEST}" > > PYTHON_IMPORTS_UNDER_TEST = "bson gridfs pymongo" > > > > Signed-off-by: Tim Orling > > --- > > lib/oeqa/runtime/cases/python2_module.py | 97 ++++++++++++++++++++++++ > > 1 file changed, 97 insertions(+) > > create mode 100644 lib/oeqa/runtime/cases/python2_module.py > > > > diff --git a/lib/oeqa/runtime/cases/python2_module.py > b/lib/oeqa/runtime/cases/python2_module.py > > new file mode 100644 > > index 00000000..59ae00fb > > --- /dev/null > > +++ b/lib/oeqa/runtime/cases/python2_module.py > > @@ -0,0 +1,97 @@ > > +# > > +# SPDX-License-Identifier: MIT > > +# > > + > > +import os > > + > > +from oeqa.runtime.case import OERuntimeTestCase > > +from oeqa.core.decorator.depends import OETestDepends > > +from oeqa.core.decorator.data import OETestDataDepends > > +from oeqa.runtime.decorator.package import OEHasPackage > > + > > + > > +class PythonModuleTest(OERuntimeTestCase): > > + """This test case is intentionally limited to only tesing one > > + python package/recipe at a time, because the use case is to > > + determine whether dependencies have been met for a minimal > > + image with 'only' the package under test installed. This > > + dependency checking must include the packages-split python > > + standard library modules that OE/YP creates from the python > > + manifest. > > + > > + TODO: Be smarter about PYTHON_IMPORTS_UNDER_TEST, as this > > + should be discoverable from > /usr/lib/python2.7/site-packages > > + or from the rpm/deb/ipk of the python package itself. > > + What we do NOT want to do is use pkgdata or some other > > + magical Python script that will add dependencies to the > > + test image. We need as pristine and minimalist a test > > + environment as we can get. > > + > > + TODO: Use a minimal master test image and install the package > under > > + test from a package feed using a package manager in the > master > > + test image. This would allow for much shorter developement > > + cycles. > > + > > + TODO: Parse the ImportError and give hints about what > dependencies > > + are missing. > > + > > + > > + Example configuration in local.conf: > > + > > + IMAGE_CLASSES += " testimage" > > + DISTRO_FEAURES_append = " ptest" > > + EXTRA_IMAGE_FEATURES = "debug-tweaks" > > + TESTIMAGE_AUTO = "1" > > + TEST_SUITES = " ping ssh python2 ptest python2_module" > > + TEST_QEMUPARAMS += "-smp 4 -m 8192" > > + TEST_RUNQEMUPARAMS += "kvm gl" > > + IMAGE_ROOTFS_SIZE ?= "8192" > > + IMAGE_ROOTFS_EXTRA_SPACE_append = > "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "", d)}" > > + IMAGE_INSTALL_append = " ptest-runner dropbear procps coreutils > iproute2 sysstat" > > + PYTHON_PACKAGE_UNDER_TEST = "python-engineio" > > + IMAGE_INSTALL_append = " ${PYTHON_PACKAGE_UNDER_TEST}" > > + PYTHON_IMPORTS_UNDER_TEST = "engineio" > > + """ > > + > > + package = "" > > + imports = [] > > + > > + @classmethod > > + def setUp(cls): > > + if 'PYTHON_PACKAGE_UNDER_TEST' in cls.tc.td: > > + cls.package = cls.tc.td.get('PYTHON_PACKAGE_UNDER_TEST') > > + cls.logger.debug('Running import test on "%s" recipe' % > cls.package) > > + else: > > + cls.logger.error('No recipe to test found in > configuration.\n' > > + 'Please set in PYTHON_PACKAGE_UNDER_TEST') > > + if 'PYTHON_IMPORTS_UNDER_TEST' in cls.tc.td: > > + cls.imports = > cls.tc.td.get('PYTHON_IMPORTS_UNDER_TEST').split() > > + if isinstance(cls.imports, list) and len(cls.imports) > 0: > > + cls.logger.info('Importing from %s' % cls.imports) > > + else: > > + cls.logger.error("PYTHON_IMPORTS_UNDER_TEST should be a > space delimited list") > > + cls.logger.error("typeof(PYTHON_IMPORTS_UNDER_TEST) is > %s" % type(cls.imports)) > > + else: > > + cls.logger.error("No modules to import found in > configuration.\n" > > + "Please set in variable > PYTHON_IMPORTS_UNDER_TEST") > > + > > + > > +class PythonModuleImportTest(PythonModuleTest): > > + @OETestDepends(['ssh.SSHTest.test_ssh']) > > + @OETestDepends(['python2.PythonTest.test_python']) > > + @OETestDataDepends(['PYTHON_PACKAGE_UNDER_TEST']) > > + @OETestDataDepends(['PYTHON_IMPORTS_UNDER_TEST']) > > + def test_python_module(self): > > + # We can't use the OEHasPackage decorator, because 'package' > isn't defined > > + # until the class has already been instantiated > > + msg = 'Checking if "%s" is installed' % self.package > > + self.logger.debug(msg) > > + if not self.package in self.tc.image_packages: > > + msg = 'Test requires "%s" to be installed' % self.package > > + self.skipTest(msg) > > + > > + for python_import in self.imports: > > + cmd = 'python -c "import %s"' % python_import > > + status, output = self.target.run(cmd) > > + msg = 'Exit status was not 0. Output: %s' % output > > + self.assertEqual(status, 0, msg=msg) > > > > > -- > # Randy MacLeod > # Wind River Linux > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From ticotimo at gmail.com Wed Feb 5 23:54:28 2020 From: ticotimo at gmail.com (Tim Orling) Date: Wed, 5 Feb 2020 15:54:28 -0800 Subject: [oe] [meta-python2][RFC] lib/oeqa/runtime/cases/python2_module.py: add test In-Reply-To: <513f7afe-1f2a-a8f2-70d1-63db5ddfcfde@windriver.com> References: <20200125082548.12976-1-ticotimo@gmail.com> <513f7afe-1f2a-a8f2-70d1-63db5ddfcfde@windriver.com> Message-ID: On Wed, Feb 5, 2020 at 3:18 PM Randy MacLeod wrote: > On 1/25/20 3:25 AM, Tim Orling wrote: > > This test case is intentionally limited to only tesing one > > python package/recipe at a time, because the use case is to > > determine whether dependencies have been met for a minimal > > image with 'only' the package under test installed. This > > dependency checking must include the packages-split python > > standard library modules that OE/YP creates from the python > > manifest. > > > > TODO: Be smarter about PYTHON_IMPORTS_UNDER_TEST, as this > > should be discoverable from /usr/lib/python2.7/site-packages > > or from the rpm/deb/ipk of the python package itself. > > What we do NOT want to do is use pkgdata or some other > > magical Python script that will add dependencies to the > > test image. We need as pristine and minimalist a test > > environment as we can get. > > > > TODO: Use a minimal master test image and install the package under > > test from a package feed using a package manager in the master > > test image. This would allow for much shorter developement > > cycles. > > > > TODO: Parse the ImportError and give hints about what dependencies > > are missing. > > This looks useful. Do you have the python3 version done but not sent > or should Trevor see if he can get that to work? > > > > > Example configuration in local.conf: > > > > IMAGE_CLASSES += " testimage" > > DISTRO_FEAURES_append = " ptest" > > EXTRA_IMAGE_FEATURES = "debug-tweaks" > > TESTIMAGE_AUTO = "1" > > TEST_SUITES = " ping ssh python2 ptest python2_module" > > TEST_QEMUPARAMS += "-smp 4 -m 8192" > > TEST_RUNQEMUPARAMS += "kvm gl" > > IMAGE_ROOTFS_SIZE ?= "8192" > > IMAGE_ROOTFS_EXTRA_SPACE_append = > "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "", d)}" > > IMAGE_INSTALL_append = " ptest-runner dropbear procps coreutils iproute2 > sysstat" > Is this really a minimal set of dependencies and if so, why do you need: > procps coreutils iproute2 sysstat > ? > > Those are required to make the QEMU runner dump any missing things, like TUN/TAP. So no, not required. The host_dump stuff isn't really all that helpful anyway. If you can run "testimage" with KVM, TUN/TAP and virgl/gl then you have all the speed ups that I was trying to make sure were working on the platform running these tests (with gitlab ci runner) The fact that the docker-executor in gitlab does not allow the --add-groups option to the docker command line gets in the way anyway... so you would have to run the container privileged and I'm not going to do that ;) The user in the docker container does not have permissions on /dev/kvm, etc. But that has nothing to do with this code :) > I should probably try it before replying but > it's already been a long day! > > ../Randy > > > PYTHON_PACKAGE_UNDER_TEST = "python-pymongo" > > IMAGE_INSTALL_append = " ${PYTHON_PACKAGE_UNDER_TEST}" > > PYTHON_IMPORTS_UNDER_TEST = "bson gridfs pymongo" > > > > Signed-off-by: Tim Orling > > --- > > lib/oeqa/runtime/cases/python2_module.py | 97 ++++++++++++++++++++++++ > > 1 file changed, 97 insertions(+) > > create mode 100644 lib/oeqa/runtime/cases/python2_module.py > > > > diff --git a/lib/oeqa/runtime/cases/python2_module.py > b/lib/oeqa/runtime/cases/python2_module.py > > new file mode 100644 > > index 00000000..59ae00fb > > --- /dev/null > > +++ b/lib/oeqa/runtime/cases/python2_module.py > > @@ -0,0 +1,97 @@ > > +# > > +# SPDX-License-Identifier: MIT > > +# > > + > > +import os > > + > > +from oeqa.runtime.case import OERuntimeTestCase > > +from oeqa.core.decorator.depends import OETestDepends > > +from oeqa.core.decorator.data import OETestDataDepends > > +from oeqa.runtime.decorator.package import OEHasPackage > > + > > + > > +class PythonModuleTest(OERuntimeTestCase): > > + """This test case is intentionally limited to only tesing one > > + python package/recipe at a time, because the use case is to > > + determine whether dependencies have been met for a minimal > > + image with 'only' the package under test installed. This > > + dependency checking must include the packages-split python > > + standard library modules that OE/YP creates from the python > > + manifest. > > + > > + TODO: Be smarter about PYTHON_IMPORTS_UNDER_TEST, as this > > + should be discoverable from > /usr/lib/python2.7/site-packages > > + or from the rpm/deb/ipk of the python package itself. > > + What we do NOT want to do is use pkgdata or some other > > + magical Python script that will add dependencies to the > > + test image. We need as pristine and minimalist a test > > + environment as we can get. > > + > > + TODO: Use a minimal master test image and install the package > under > > + test from a package feed using a package manager in the > master > > + test image. This would allow for much shorter developement > > + cycles. > > + > > + TODO: Parse the ImportError and give hints about what > dependencies > > + are missing. > > + > > + > > + Example configuration in local.conf: > > + > > + IMAGE_CLASSES += " testimage" > > + DISTRO_FEAURES_append = " ptest" > > + EXTRA_IMAGE_FEATURES = "debug-tweaks" > > + TESTIMAGE_AUTO = "1" > > + TEST_SUITES = " ping ssh python2 ptest python2_module" > > + TEST_QEMUPARAMS += "-smp 4 -m 8192" > > + TEST_RUNQEMUPARAMS += "kvm gl" > > + IMAGE_ROOTFS_SIZE ?= "8192" > > + IMAGE_ROOTFS_EXTRA_SPACE_append = > "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "", d)}" > > + IMAGE_INSTALL_append = " ptest-runner dropbear procps coreutils > iproute2 sysstat" > > + PYTHON_PACKAGE_UNDER_TEST = "python-engineio" > > + IMAGE_INSTALL_append = " ${PYTHON_PACKAGE_UNDER_TEST}" > > + PYTHON_IMPORTS_UNDER_TEST = "engineio" > > + """ > > + > > + package = "" > > + imports = [] > > + > > + @classmethod > > + def setUp(cls): > > + if 'PYTHON_PACKAGE_UNDER_TEST' in cls.tc.td: > > + cls.package = cls.tc.td.get('PYTHON_PACKAGE_UNDER_TEST') > > + cls.logger.debug('Running import test on "%s" recipe' % > cls.package) > > + else: > > + cls.logger.error('No recipe to test found in > configuration.\n' > > + 'Please set in PYTHON_PACKAGE_UNDER_TEST') > > + if 'PYTHON_IMPORTS_UNDER_TEST' in cls.tc.td: > > + cls.imports = > cls.tc.td.get('PYTHON_IMPORTS_UNDER_TEST').split() > > + if isinstance(cls.imports, list) and len(cls.imports) > 0: > > + cls.logger.info('Importing from %s' % cls.imports) > > + else: > > + cls.logger.error("PYTHON_IMPORTS_UNDER_TEST should be a > space delimited list") > > + cls.logger.error("typeof(PYTHON_IMPORTS_UNDER_TEST) is > %s" % type(cls.imports)) > > + else: > > + cls.logger.error("No modules to import found in > configuration.\n" > > + "Please set in variable > PYTHON_IMPORTS_UNDER_TEST") > > + > > + > > +class PythonModuleImportTest(PythonModuleTest): > > + @OETestDepends(['ssh.SSHTest.test_ssh']) > > + @OETestDepends(['python2.PythonTest.test_python']) > > + @OETestDataDepends(['PYTHON_PACKAGE_UNDER_TEST']) > > + @OETestDataDepends(['PYTHON_IMPORTS_UNDER_TEST']) > > + def test_python_module(self): > > + # We can't use the OEHasPackage decorator, because 'package' > isn't defined > > + # until the class has already been instantiated > > + msg = 'Checking if "%s" is installed' % self.package > > + self.logger.debug(msg) > > + if not self.package in self.tc.image_packages: > > + msg = 'Test requires "%s" to be installed' % self.package > > + self.skipTest(msg) > > + > > + for python_import in self.imports: > > + cmd = 'python -c "import %s"' % python_import > > + status, output = self.target.run(cmd) > > + msg = 'Exit status was not 0. Output: %s' % output > > + self.assertEqual(status, 0, msg=msg) > > > > > -- > # Randy MacLeod > # Wind River Linux > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From twoerner at gmail.com Thu Feb 6 00:00:58 2020 From: twoerner at gmail.com (Trevor Woerner) Date: Wed, 5 Feb 2020 19:00:58 -0500 Subject: [oe] [meta-oe][PATCH] mpv: 0.26.0 -> 0.32.0 In-Reply-To: References: <20200205203053.6742-1-twoerner@gmail.com> <20200205210707.c4eqrvbyl7tl3knt@jama> <20200205230236.GA18868@linux-uys3> Message-ID: On Wed, Feb 5, 2020 at 6:32 PM Khem Raj wrote: > On Wed, Feb 5, 2020 at 3:02 PM Trevor Woerner wrote: > > > > On Wed 2020-02-05 @ 10:07:07 PM, Martin Jansa wrote: > > > Thanks, > > > > > > would you mind undoing: > > > > http://git.openembedded.org/meta-openembedded/commit/?id=0c182e58775966699c303c1e2561c273197bf445 > > > in the same commit? > > > > Sure, no problem. > > v2 on the way > > > > > Also was this sent with -M? > > > > haha, I know exactly what you mean! I did the format-patch twice just to > > convince myself I had used the -M (and I had, twice). I don't understand > why > > there's no similarity :-( > > also please take a look at > https://errors.yoctoproject.org/Errors/Details/390294/ > okay From richard.leitner at skidata.com Thu Feb 6 09:24:07 2020 From: richard.leitner at skidata.com (Richard Leitner) Date: Thu, 6 Feb 2020 10:24:07 +0100 Subject: [oe] [meta-java][g0hl1n/wip-jdk8u242ga][PATCH] Fix building openjre-8 242 In-Reply-To: <639e9a61-3ef7-e391-649d-9b53567ded40@googlemail.com> References: <20200126111035.273501-1-jacob.kroon@gmail.com> <20200126112146.GB2043417@pcleri> <80d30f83-b342-cfb7-9114-86ee61198fd7@gmail.com> <424d1981-b4f0-de86-f18b-8a216339d3ea@gmail.com> <20200127052211.GA2138442@pcleri> <639e9a61-3ef7-e391-649d-9b53567ded40@googlemail.com> Message-ID: <20200206092407.GA7361@pcleri> Hi Matthias, On Wed, Feb 05, 2020 at 02:20:53PM +0100, Matthias Schoepfer via Openembedded-devel wrote: > Hi Richard and Jacob, > > I just stumbled across the very same error, but on aarch64. I tried to > switch to the wip-branch, but I get > > ParseError at > /[...]/meta-java/recipes-core/openjdk/openjdk-7_99b00-2.6.5.bb:7: Could not > inherit file classes/features_check.bbclass > > I am on zeus... This seems legit as AFAIK features_check.bbclass was introduced after the zeus release. For zeus you can replace it with distro_features_check.bbclass, but please note that I haven't tested on zeus. I'm working on master. Futhermore please use meta-java's master-next branch for testing as I will remove the wip branch in the near future. thanks for your testing! regards;rl > > Regards, > > Matthias > From matthias.schoepfer at googlemail.com Thu Feb 6 10:24:34 2020 From: matthias.schoepfer at googlemail.com (Matthias Schoepfer) Date: Thu, 6 Feb 2020 11:24:34 +0100 Subject: [oe] [meta-java][g0hl1n/wip-jdk8u242ga][PATCH] Fix building openjre-8 242 In-Reply-To: <20200206092407.GA7361@pcleri> References: <20200126111035.273501-1-jacob.kroon@gmail.com> <20200126112146.GB2043417@pcleri> <80d30f83-b342-cfb7-9114-86ee61198fd7@gmail.com> <424d1981-b4f0-de86-f18b-8a216339d3ea@gmail.com> <20200127052211.GA2138442@pcleri> <639e9a61-3ef7-e391-649d-9b53567ded40@googlemail.com> <20200206092407.GA7361@pcleri> Message-ID: Hi Richard, I "fixed" it by manually copying feature_check.bbclass into the layer. I can confirm, that your java8u242 works on aarch64 (even could get rid of some patches needed to compile on kernel 5.x)! Is there anything planed to "backport" it to zeus branch of meta-java? Thanks and Regards, Matthias On 2/6/20 10:24 AM, Richard Leitner wrote: > Hi Matthias, > > On Wed, Feb 05, 2020 at 02:20:53PM +0100, Matthias Schoepfer via Openembedded-devel wrote: >> Hi Richard and Jacob, >> >> I just stumbled across the very same error, but on aarch64. I tried to >> switch to the wip-branch, but I get >> >> ParseError at >> /[...]/meta-java/recipes-core/openjdk/openjdk-7_99b00-2.6.5.bb:7: Could not >> inherit file classes/features_check.bbclass >> >> I am on zeus... > > This seems legit as AFAIK features_check.bbclass was introduced after the zeus > release. For zeus you can replace it with distro_features_check.bbclass, > but please note that I haven't tested on zeus. I'm working on master. > > Futhermore please use meta-java's master-next branch for testing as I will > remove the wip branch in the near future. > > thanks for your testing! > > regards;rl > >> >> Regards, >> >> Matthias >> -- Dr.-Ing. Matthias Sch?pfer matthias.schoepfer at googlemail.com From richard.leitner at skidata.com Thu Feb 6 11:35:06 2020 From: richard.leitner at skidata.com (Richard Leitner) Date: Thu, 6 Feb 2020 12:35:06 +0100 Subject: [oe] [meta-java][g0hl1n/wip-jdk8u242ga][PATCH] Fix building openjre-8 242 In-Reply-To: References: <20200126111035.273501-1-jacob.kroon@gmail.com> <20200126112146.GB2043417@pcleri> <80d30f83-b342-cfb7-9114-86ee61198fd7@gmail.com> <424d1981-b4f0-de86-f18b-8a216339d3ea@gmail.com> <20200127052211.GA2138442@pcleri> <639e9a61-3ef7-e391-649d-9b53567ded40@googlemail.com> <20200206092407.GA7361@pcleri> Message-ID: <20200206113506.GB7361@pcleri> On Thu, Feb 06, 2020 at 11:24:34AM +0100, Matthias Schoepfer wrote: > Hi Richard, > > I "fixed" it by manually copying feature_check.bbclass into the layer. I can > confirm, that your java8u242 works on aarch64 (even could get rid of some > patches needed to compile on kernel 5.x)! > > Is there anything planed to "backport" it to zeus branch of meta-java? Yes, I'm definitely planning to backport the JDK updates to zeus and warrior. regards;rl > > Thanks and Regards, > > Matthias > > On 2/6/20 10:24 AM, Richard Leitner wrote: > > Hi Matthias, > > > > On Wed, Feb 05, 2020 at 02:20:53PM +0100, Matthias Schoepfer via Openembedded-devel wrote: > > > Hi Richard and Jacob, > > > > > > I just stumbled across the very same error, but on aarch64. I tried to > > > switch to the wip-branch, but I get > > > > > > ParseError at > > > /[...]/meta-java/recipes-core/openjdk/openjdk-7_99b00-2.6.5.bb:7: Could not > > > inherit file classes/features_check.bbclass > > > > > > I am on zeus... > > > > This seems legit as AFAIK features_check.bbclass was introduced after the zeus > > release. For zeus you can replace it with distro_features_check.bbclass, > > but please note that I haven't tested on zeus. I'm working on master. > > > > Futhermore please use meta-java's master-next branch for testing as I will > > remove the wip branch in the near future. > > > > thanks for your testing! > > > > regards;rl > > > > > > > > Regards, > > > > > > Matthias > > > > > -- > Dr.-Ing. Matthias Sch?pfer > matthias.schoepfer at googlemail.com From yi.zhao at windriver.com Thu Feb 6 11:22:03 2020 From: yi.zhao at windriver.com (Yi Zhao) Date: Thu, 6 Feb 2020 19:22:03 +0800 Subject: [oe] [meta-networking][PATCH] freeradius: upgrade 3.0.19 -> 3.0.20 Message-ID: <20200206112203.29320-1-yi.zhao@windriver.com> * Drop backported patch: 0001-su-to-radiusd-user-group-when-rotating-logs.patch * Disable python2 module build and add PACKAGECONFIG for python3 module build Signed-off-by: Yi Zhao --- ...python3-add-PY_INC_DIR-in-search-dir.patch | 58 ++++++++++ ...adiusd-user-group-when-rotating-logs.patch | 104 ------------------ ...eradius_3.0.19.bb => freeradius_3.0.20.bb} | 35 +++--- 3 files changed, 77 insertions(+), 120 deletions(-) create mode 100644 meta-networking/recipes-connectivity/freeradius/files/0001-rlm_python3-add-PY_INC_DIR-in-search-dir.patch delete mode 100644 meta-networking/recipes-connectivity/freeradius/files/0001-su-to-radiusd-user-group-when-rotating-logs.patch rename meta-networking/recipes-connectivity/freeradius/{freeradius_3.0.19.bb => freeradius_3.0.20.bb} (88%) diff --git a/meta-networking/recipes-connectivity/freeradius/files/0001-rlm_python3-add-PY_INC_DIR-in-search-dir.patch b/meta-networking/recipes-connectivity/freeradius/files/0001-rlm_python3-add-PY_INC_DIR-in-search-dir.patch new file mode 100644 index 000000000..d63023162 --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/0001-rlm_python3-add-PY_INC_DIR-in-search-dir.patch @@ -0,0 +1,58 @@ +From 733330888fff49e4d2b6c2121a6050fdd9f11a87 Mon Sep 17 00:00:00 2001 +From: Yi Zhao +Date: Thu, 6 Feb 2020 09:32:04 +0800 +Subject: [PATCH] rlm_python3: add PY_INC_DIR in search dir + +The configure option --with-rlm-python3-include-dir is used to set +PY_INC_DIR which is never used and it fails to find Python.h, +so add it into search dir to fix it. + +Also remove SMART_LIBS from mod_flags because it introduces rpath +to LDFALGS which causes a do_package_qa error: + +ERROR: freeradius-3.0.20-r0 do_package_qa: QA Issue: package freeradius-python contains bad RPATH +/buildarea/build/tmp/work/core2-64-poky-linux/freeradius/3.0.20-r0/recipe-sysroot-native/usr/lib/python3.8/config in file +/buildarea/build/tmp/work/core2-64-poky-linux/freeradius/3.0.20-r0/packages-split/freeradius-python/usr/lib/rlm_python3.so.0.0.0 +package freeradius-python contains bad RPATH +/buildarea/build/tmp/work/core2-64-poky-linux/freeradius/3.0.20-r0/recipe-sysroot-native/usr/lib/python3.8/config in file +/buildarea/build/tmp/work/core2-64-poky-linux/freeradius/3.0.20-r0/packages-split/freeradius-python/usr/lib/rlm_python3.so.0.0.0 [rpaths] + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Yi Zhao +--- + src/modules/rlm_python3/configure.ac | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/modules/rlm_python3/configure.ac b/src/modules/rlm_python3/configure.ac +index a00320f..adbdf19 100644 +--- a/src/modules/rlm_python3/configure.ac ++++ b/src/modules/rlm_python3/configure.ac +@@ -95,7 +95,7 @@ if test x$with_[]modname != xno; then + + old_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $PY_CFLAGS" +- smart_try_dir="$PY_PREFIX/include/python$PY_SYS_VERSION" ++ smart_try_dir="$PY_PREFIX/include/python$PY_SYS_VERSION $PY_INC_DIR" + FR_SMART_CHECK_INCLUDE(Python.h) + CFLAGS=$old_CFLAGS + +@@ -114,13 +114,13 @@ if test x$with_[]modname != xno; then + + eval t=\${ac_cv_lib_${sm_lib_safe}_${sm_func_safe}} + if test "x$t" = "xyes"; then +- mod_ldflags="$PY_LIB_LOC $PY_EXTRA_LIBS $SMART_LIBS -lm" ++ mod_ldflags="$PY_LIB_LOC $PY_EXTRA_LIBS -lm" + targetname=modname + else + FR_SMART_CHECK_LIB(python${PY_SYS_VERSION}m, Py_Initialize) + eval t=\${ac_cv_lib_${sm_lib_safe}_${sm_func_safe}} + if test "x$t" = "xyes"; then +- mod_ldflags="$PY_LIB_LOC $PY_EXTRA_LIBS $SMART_LIBS -lm" ++ mod_ldflags="$PY_LIB_LOC $PY_EXTRA_LIBS -lm" + targetname=modname + else + targetname= +-- +2.7.4 + diff --git a/meta-networking/recipes-connectivity/freeradius/files/0001-su-to-radiusd-user-group-when-rotating-logs.patch b/meta-networking/recipes-connectivity/freeradius/files/0001-su-to-radiusd-user-group-when-rotating-logs.patch deleted file mode 100644 index 5859dc7ed..000000000 --- a/meta-networking/recipes-connectivity/freeradius/files/0001-su-to-radiusd-user-group-when-rotating-logs.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 1f233773962bf1a9c2d228a180eacddb9db2d574 Mon Sep 17 00:00:00 2001 -From: Alexander Scheel -Date: Tue, 7 May 2019 16:04:29 -0400 -Subject: [PATCH] su to radiusd user/group when rotating logs - -The su directive to logrotate ensures that log rotation happens under the -owner of the logs. Otherwise, logrotate runs as root:root, potentially -enabling privilege escalation if a RCE is discovered against the -FreeRADIUS daemon. - -Signed-off-by: Alexander Scheel - -Upstream-Status: Backport -[https://github.com/FreeRADIUS/freeradius-server/commit/1f233773962bf1a9c2d228a180eacddb9db2d574] - -CVE: CVE-2019-10143 - -Signed-off-by: Yi Zhao ---- - debian/freeradius.logrotate | 3 +++ - redhat/freeradius-logrotate | 1 + - scripts/logrotate/freeradius | 3 +++ - suse/radiusd-logrotate | 1 + - 4 files changed, 8 insertions(+) - -diff --git a/debian/freeradius.logrotate b/debian/freeradius.logrotate -index 7d837d5..a8d29b7 100644 ---- a/debian/freeradius.logrotate -+++ b/debian/freeradius.logrotate -@@ -9,6 +9,7 @@ - notifempty - - copytruncate -+ su freerad freerad - } - - # (in order) -@@ -26,6 +27,7 @@ - notifempty - - nocreate -+ su freerad freerad - } - - # There are different detail-rotating strategies you can use. One is -@@ -45,4 +47,5 @@ - notifempty - - nocreate -+ su freerad freerad - } -diff --git a/redhat/freeradius-logrotate b/redhat/freeradius-logrotate -index 360765d..bb97ca5 100644 ---- a/redhat/freeradius-logrotate -+++ b/redhat/freeradius-logrotate -@@ -9,6 +9,7 @@ rotate 4 - missingok - compress - delaycompress -+su radiusd radiusd - - # - # The main server log -diff --git a/scripts/logrotate/freeradius b/scripts/logrotate/freeradius -index 3de435e..eecf631 100644 ---- a/scripts/logrotate/freeradius -+++ b/scripts/logrotate/freeradius -@@ -17,6 +17,7 @@ - notifempty - - copytruncate -+ su radiusd radiusd - } - - # (in order) -@@ -34,6 +35,7 @@ - notifempty - - nocreate -+ su radiusd radiusd - } - - # There are different detail-rotating strategies you can use. One is -@@ -53,4 +55,5 @@ - notifempty - - nocreate -+ su radiusd radiusd - } -diff --git a/suse/radiusd-logrotate b/suse/radiusd-logrotate -index 24d56be..be5a797 100644 ---- a/suse/radiusd-logrotate -+++ b/suse/radiusd-logrotate -@@ -11,6 +11,7 @@ missingok - compress - delaycompress - notifempty -+su radiusd radiusd - - # - # The main server log --- -2.7.4 - diff --git a/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.19.bb b/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.20.bb similarity index 88% rename from meta-networking/recipes-connectivity/freeradius/freeradius_3.0.19.bb rename to meta-networking/recipes-connectivity/freeradius/freeradius_3.0.20.bb index 888743306..a9c2fad0f 100644 --- a/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.19.bb +++ b/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.20.bb @@ -26,12 +26,12 @@ SRC_URI = "git://github.com/FreeRADIUS/freeradius-server.git;branch=v3.0.x; \ file://freeradius-fix-quoting-for-BUILT_WITH.patch \ file://freeradius-fix-error-for-expansion-of-macro.patch \ file://0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch \ - file://0001-su-to-radiusd-user-group-when-rotating-logs.patch \ + file://0001-rlm_python3-add-PY_INC_DIR-in-search-dir.patch \ file://radiusd.service \ file://radiusd-volatiles.conf \ " -SRCREV = "ab4c767099f263a7cd4109bcdca80ee74210a769" +SRCREV = "d94c953ab9602a238433ba18533111b845fd8e9e" PARALLEL_MAKE = "" @@ -61,9 +61,11 @@ EXTRA_OECONF = " --enable-strict-dependencies \ --without-rlm_sql_iodbc \ --without-rlm_sql_oracle \ --without-rlm_sql_sybase \ + --without-rlm_sql_mongo \ --without-rlm_sqlhpwippool \ --without-rlm_securid \ --without-rlm_unbound \ + --without-rlm_python \ ac_cv_path_PERL=${bindir}/perl \ ax_cv_cc_builtin_choose_expr=no \ ax_cv_cc_builtin_types_compatible_p=no \ @@ -86,7 +88,7 @@ PACKAGECONFIG[unixodbc] = "--with-rlm_sql_unixodbc,--without-rlm_sql_unixodbc,un PACKAGECONFIG[postgresql] = "--with-rlm_sql_postgresql,--without-rlm_sql_postgresql,postgresql" PACKAGECONFIG[pcre] = "--with-pcre,--without-pcre,libpcre" PACKAGECONFIG[perl] = "--with-perl=${STAGING_BINDIR_NATIVE}/perl-native/perl --with-rlm_perl,--without-rlm_perl,perl-native perl,perl" -PACKAGECONFIG[python] = "--with-rlm_python --with-rlm-python-bin=${STAGING_BINDIR_NATIVE}/python-native/python --with-rlm-python-include-dir=${STAGING_INCDIR}/${PYTHON_DIR},--without-rlm_python,python-native python" +PACKAGECONFIG[python3] = "--with-rlm_python3 --with-rlm-python3-bin=${STAGING_BINDIR_NATIVE}/python3-native/python3 --with-rlm-python3-include-dir=${STAGING_INCDIR}/${PYTHON_DIR},--without-rlm_python3,python3-native python3" PACKAGECONFIG[rest] = "--with-rlm_rest,--without-rlm_rest,curl json-c" PACKAGECONFIG[ruby] = "--with-rlm_ruby,--without-rlm_ruby,ruby" PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl" @@ -145,23 +147,24 @@ do_install() { rm -f ${D}/${sbindir}/rc.radiusd chmod +x ${D}/${sysconfdir}/init.d/radiusd rm -rf ${D}/${localstatedir}/run/ + rm -rf ${D}/${localstatedir}/log/ install -m 0644 ${WORKDIR}/volatiles.58_radiusd ${D}${sysconfdir}/default/volatiles/58_radiusd chown -R radiusd:radiusd ${D}/${sysconfdir}/raddb/ chown -R radiusd:radiusd ${D}/${localstatedir}/lib/radiusd # For systemd - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/radiusd.service ${D}${systemd_unitdir}/system - sed -i -e 's, at BASE_BINDIR@,${base_bindir},g' \ - -e 's, at SBINDIR@,${sbindir},g' \ - -e 's, at STATEDIR@,${localstatedir},g' \ - -e 's, at SYSCONFDIR@,${sysconfdir},g' \ - ${D}${systemd_unitdir}/system/radiusd.service - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/radiusd.service ${D}${systemd_unitdir}/system + sed -i -e 's, at BASE_BINDIR@,${base_bindir},g' \ + -e 's, at SBINDIR@,${sbindir},g' \ + -e 's, at STATEDIR@,${localstatedir},g' \ + -e 's, at SYSCONFDIR@,${sysconfdir},g' \ + ${D}${systemd_unitdir}/system/radiusd.service + install -d ${D}${sysconfdir}/tmpfiles.d/ - install -m 0644 ${WORKDIR}/radiusd-volatiles.conf ${D}${sysconfdir}/tmpfiles.d/ + install -m 0644 ${WORKDIR}/radiusd-volatiles.conf ${D}${sysconfdir}/tmpfiles.d/radiusd.conf fi } @@ -171,7 +174,7 @@ pkg_postinst_${PN} () { if [ -z "$D" ]; then if command -v systemd-tmpfiles >/dev/null; then # create /var/log/radius, /var/run/radiusd - systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/radiusd-volatiles.conf + systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/radiusd.conf elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then ${sysconfdir}/init.d/populate-volatile.sh update fi @@ -210,9 +213,9 @@ FILES_${PN}-perl = "${libdir}/rlm_perl.so* \ ${sysconfdir}/raddb/mods-available/perl \ " -FILES_${PN}-python = "${libdir}/rlm_python.so* \ - ${sysconfdir}/raddb/mods-config/python \ - ${sysconfdir}/raddb/mods-available/python \ +FILES_${PN}-python = "${libdir}/rlm_python3.so* \ + ${sysconfdir}/raddb/mods-config/python3 \ + ${sysconfdir}/raddb/mods-available/python3 \ " FILES_${PN}-mysql = "${libdir}/rlm_sql_mysql.so* \ -- 2.17.1 From luca.boccassi at gmail.com Thu Feb 6 14:08:24 2020 From: luca.boccassi at gmail.com (luca.boccassi at gmail.com) Date: Thu, 6 Feb 2020 14:08:24 +0000 Subject: [oe] [meta-oe][PATCH] dbus-broker: backport patches to fix policy with SELinux nodes Message-ID: <20200206140825.7911-1-luca.boccassi@gmail.com> From: Luca Boccassi Backport from master: https://github.com/bus1/dbus-broker/pull/213 --- ...icy-fix-crash-when-importing-selinux.patch | 50 ++++++++++++++++ ...icy-fix-crash-when-exporting-selinux.patch | 59 +++++++++++++++++++ meta-oe/recipes-core/dbus/dbus-broker_21.bb | 2 + 3 files changed, 111 insertions(+) create mode 100644 meta-oe/recipes-core/dbus/dbus-broker/0005-launch-policy-fix-crash-when-importing-selinux.patch create mode 100644 meta-oe/recipes-core/dbus/dbus-broker/0006-launch-policy-fix-crash-when-exporting-selinux.patch diff --git a/meta-oe/recipes-core/dbus/dbus-broker/0005-launch-policy-fix-crash-when-importing-selinux.patch b/meta-oe/recipes-core/dbus/dbus-broker/0005-launch-policy-fix-crash-when-importing-selinux.patch new file mode 100644 index 000000000..c5f3092ee --- /dev/null +++ b/meta-oe/recipes-core/dbus/dbus-broker/0005-launch-policy-fix-crash-when-importing-selinux.patch @@ -0,0 +1,50 @@ +From d28e59c451375e8b08fa431b1d64cb3ce9f078ee Mon Sep 17 00:00:00 2001 +From: Luca Boccassi +Date: Fri, 25 Oct 2019 21:04:36 +0100 +Subject: [PATCH 1/2] launch/policy: fix crash when importing + +If a policy contains a element, dbus-broker-launch crashes: + +Oct 22 12:02:51 localhost dbus-broker-launch[885]: dbus-broker-launch: ../dbus-broker-19/src/launch/policy.c:232: policy_import_verdict: Assertion `cnode->parent->type == CONFIG_NODE_POLICY' failed. + +Minimal config to reproduce: + + + + + + + + + +policy_import_verdict is being called on an associate element, +but not only it cannot work as that function checks that the +parent is a policy node (but it's a selinux node in this case), +it is also not necessary as the selinux node only defines ownership, +it does not have allow/deny. + +Fixes #212 + +Signed-off-by: Luca Boccassi +Upstream-Status: merged https://github.com/bus1/dbus-broker/pull/213 +--- + src/launch/policy.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/launch/policy.c b/src/launch/policy.c +index a8ba8e7..466e4bd 100644 +--- a/src/launch/policy.c ++++ b/src/launch/policy.c +@@ -613,8 +613,6 @@ static int policy_import_selinux(Policy *policy, ConfigNode *cnode) { + if (r) + return error_trace(r); + +- policy_import_verdict(policy, record, cnode); +- + record->selinux.name = cnode->associate.own; + record->selinux.context = cnode->associate.context; + +-- +2.20.1 + diff --git a/meta-oe/recipes-core/dbus/dbus-broker/0006-launch-policy-fix-crash-when-exporting-selinux.patch b/meta-oe/recipes-core/dbus/dbus-broker/0006-launch-policy-fix-crash-when-exporting-selinux.patch new file mode 100644 index 000000000..51f45361b --- /dev/null +++ b/meta-oe/recipes-core/dbus/dbus-broker/0006-launch-policy-fix-crash-when-exporting-selinux.patch @@ -0,0 +1,59 @@ +From f1cdef4d98ddbfeeb4a688712d54b3adc89bfe26 Mon Sep 17 00:00:00 2001 +From: Luca Boccassi +Date: Fri, 25 Oct 2019 21:05:43 +0100 +Subject: [PATCH 2/2] launch/policy: fix crash when exporting +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +If a policy contains a element, dbus-broker-launch crashes: + +[ 30.048705] dbus-broker-launch[221]: ERROR policy_export @ ../dbus-broker-21/src/launch/policy.c +1142: Return code 1 +[ 30.050963] dbus-broker-launch[221]: launcher_add_listener @ ../dbus-broker-21/src/launch/launcher.c +1130 +[ 30.079620] dbus-broker[228]: Dispatched 0 messages @ 0(?0)?s / message. +[ 30.082613] dbus-broker-launch[221]: launcher_run @ ../dbus-broker-21/src/launch/launcher.c +1389 +[ 30.084426] dbus-broker-launch[221]: run @ ../dbus-broker-21/src/launch/main.c +153 +[ 30.085797] dbus-broker-launch[221]: main @ ../dbus-broker-21/src/launch/main.c +181 +[ 30.087208] dbus-broker-launch[221]: Exiting due to fatal error: -131 + +Minimal config to reproduce: + + + + + + + + + +As per the libsystemd API, sd_bus_message_append can return an int +greater than 0 on success, which for example happens when processing +vectors. +The export function is treating every non-zero result as an error, +which causes dbus-broker-launch to terminate. + +Fixes #212 + +Signed-off-by: Luca Boccassi +Upstream-Status: merged https://github.com/bus1/dbus-broker/pull/213 +--- + src/launch/policy.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/launch/policy.c b/src/launch/policy.c +index 466e4bd..f91f11b 100644 +--- a/src/launch/policy.c ++++ b/src/launch/policy.c +@@ -1138,7 +1138,7 @@ int policy_export(Policy *policy, sd_bus_message *m, uint32_t *at_console_uids, + r = sd_bus_message_append(m, "(ss)", + i_record->selinux.name, + i_record->selinux.context); +- if (r) ++ if (r < 0) + return error_origin(r); + } + +-- +2.20.1 + diff --git a/meta-oe/recipes-core/dbus/dbus-broker_21.bb b/meta-oe/recipes-core/dbus/dbus-broker_21.bb index 8b4101aaf..bad442776 100644 --- a/meta-oe/recipes-core/dbus/dbus-broker_21.bb +++ b/meta-oe/recipes-core/dbus/dbus-broker_21.bb @@ -11,6 +11,8 @@ 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 += " file://0005-launch-policy-fix-crash-when-importing-selinux.patch" +SRC_URI += " file://0006-launch-policy-fix-crash-when-exporting-selinux.patch" SRC_URI[md5sum] = "a17886a92ab1e0bc2e4b1a274339e388" SRC_URI[sha256sum] = "6fff9a831a514659e2c7d704e76867ce31ebcf43e8d7a62e080c6656f64cd39e" -- 2.20.1 From twoerner at gmail.com Thu Feb 6 21:51:41 2020 From: twoerner at gmail.com (Trevor Woerner) Date: Thu, 6 Feb 2020 16:51:41 -0500 Subject: [oe] [meta-oe][PATCH] mpv: 0.26.0 -> 0.32.0 In-Reply-To: <20200205230236.GA18868@linux-uys3> References: <20200205203053.6742-1-twoerner@gmail.com> <20200205210707.c4eqrvbyl7tl3knt@jama> <20200205230236.GA18868@linux-uys3> Message-ID: <20200206215141.GA40464@linux-uys3> On Wed 2020-02-05 @ 06:02:36 PM, Trevor Woerner wrote: > On Wed 2020-02-05 @ 10:07:07 PM, Martin Jansa wrote: > > Also was this sent with -M? -M2 works better, I'll use that for v2 From ticotimo at gmail.com Fri Feb 7 16:14:59 2020 From: ticotimo at gmail.com (Tim Orling) Date: Fri, 7 Feb 2020 08:14:59 -0800 Subject: [oe] [meta-python2][PATCH 1/2] python-twisted: add required RDEPENDS for twistd Message-ID: <20200207161500.10273-1-ticotimo@gmail.com> From: Trevor Gamblin python-twisted is currently missing some packages for its /usr/bin/twistd executable to function. Add these to the RDEPENDS list, and also clean up formatting since the list is getting long. Note that a similar patch has already been submitted for master branch, but the python2 version of twisted needs more explicit RDEPENDS than the python3 version submitted to master in order for /usr/bin/twistd to work properly. Signed-off-by: Trevor Gamblin Signed-off-by: Tim Orling --- .../python/python-twisted_19.10.0.bb | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/recipes-devtools/python/python-twisted_19.10.0.bb b/recipes-devtools/python/python-twisted_19.10.0.bb index 4e07d522..51a495a0 100644 --- a/recipes-devtools/python/python-twisted_19.10.0.bb +++ b/recipes-devtools/python/python-twisted_19.10.0.bb @@ -63,7 +63,23 @@ RDEPENDS_${PN} = "\ ${PN}-zsh \ " -RDEPENDS_${PN}-core = "${PYTHON_PN}-core ${PYTHON_PN}-zopeinterface ${PYTHON_PN}-incremental ${PYTHON_PN}-constantly ${PYTHON_PN}-hyperlink ${PYTHON_PN}-automat ${PYTHON_PN}-pyserial" +RDEPENDS_${PN}-core = "${PYTHON_PN}-automat \ + ${PYTHON_PN}-constantly \ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-debugger \ + ${PYTHON_PN}-hyperlink \ + ${PYTHON_PN}-incremental \ + ${PYTHON_PN}-misc \ + ${PYTHON_PN}-pkg-resources \ + ${PYTHON_PN}-pkgutil \ + ${PYTHON_PN}-plistlib \ + ${PYTHON_PN}-pyhamcrest \ + ${PYTHON_PN}-pyserial \ + ${PYTHON_PN}-setuptools \ + ${PYTHON_PN}-unixadmin \ + ${PYTHON_PN}-zopeinterface \ +" + RDEPENDS_${PN}-test = "${PN}" RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols ${PYTHON_PN}-bcrypt ${PYTHON_PN}-cryptography ${PYTHON_PN}-pyasn1 ${PYTHON_PN}-pickle" RDEPENDS_${PN}-mail = "${PN}-core ${PN}-protocols" -- 2.25.0 From ticotimo at gmail.com Fri Feb 7 16:15:00 2020 From: ticotimo at gmail.com (Tim Orling) Date: Fri, 7 Feb 2020 08:15:00 -0800 Subject: [oe] [meta-python2][PATCH 2/2] python-twisted: cosmetic changes to RDEPENDS In-Reply-To: <20200207161500.10273-1-ticotimo@gmail.com> References: <20200207161500.10273-1-ticotimo@gmail.com> Message-ID: <20200207161500.10273-2-ticotimo@gmail.com> Make the RDEPENDS indent consistent and break long lines into multiline. Signed-off-by: Tim Orling --- .../python/python-twisted_19.10.0.bb | 42 ++++++++++++------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/recipes-devtools/python/python-twisted_19.10.0.bb b/recipes-devtools/python/python-twisted_19.10.0.bb index 51a495a0..aee6f5ae 100644 --- a/recipes-devtools/python/python-twisted_19.10.0.bb +++ b/recipes-devtools/python/python-twisted_19.10.0.bb @@ -63,25 +63,35 @@ RDEPENDS_${PN} = "\ ${PN}-zsh \ " -RDEPENDS_${PN}-core = "${PYTHON_PN}-automat \ - ${PYTHON_PN}-constantly \ - ${PYTHON_PN}-core \ - ${PYTHON_PN}-debugger \ - ${PYTHON_PN}-hyperlink \ - ${PYTHON_PN}-incremental \ - ${PYTHON_PN}-misc \ - ${PYTHON_PN}-pkg-resources \ - ${PYTHON_PN}-pkgutil \ - ${PYTHON_PN}-plistlib \ - ${PYTHON_PN}-pyhamcrest \ - ${PYTHON_PN}-pyserial \ - ${PYTHON_PN}-setuptools \ - ${PYTHON_PN}-unixadmin \ - ${PYTHON_PN}-zopeinterface \ +RDEPENDS_${PN}-core = " \ + ${PYTHON_PN}-automat \ + ${PYTHON_PN}-constantly \ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-debugger \ + ${PYTHON_PN}-hyperlink \ + ${PYTHON_PN}-incremental \ + ${PYTHON_PN}-misc \ + ${PYTHON_PN}-pkg-resources \ + ${PYTHON_PN}-pkgutil \ + ${PYTHON_PN}-plistlib \ + ${PYTHON_PN}-pyhamcrest \ + ${PYTHON_PN}-pyserial \ + ${PYTHON_PN}-setuptools \ + ${PYTHON_PN}-unixadmin \ + ${PYTHON_PN}-zopeinterface \ " RDEPENDS_${PN}-test = "${PN}" -RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols ${PYTHON_PN}-bcrypt ${PYTHON_PN}-cryptography ${PYTHON_PN}-pyasn1 ${PYTHON_PN}-pickle" + +RDEPENDS_${PN}-conch = " \ + ${PN}-core \ + ${PN}-protocols \ + ${PYTHON_PN}-bcrypt \ + ${PYTHON_PN}-cryptography \ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-pyasn1 \ +" + RDEPENDS_${PN}-mail = "${PN}-core ${PN}-protocols" RDEPENDS_${PN}-names = "${PN}-core" RDEPENDS_${PN}-news = "${PN}-core ${PN}-protocols" -- 2.25.0 From sander.visser.2 at consultant.volvo.com Fri Feb 7 16:15:17 2020 From: sander.visser.2 at consultant.volvo.com (Visser Sander (2) (Consultant)) Date: Fri, 7 Feb 2020 16:15:17 +0000 Subject: [oe] systemd-conf bbappend not working (warrior) Message-ID: Hi In warrior there is systemd-conf_243.bb but in the build folder tmp/work the version is called 1.0-r0 If I create a systemd-conf_%.bbappend its content is not applied. For instance if I set PR = "r1" that has no affect. I am also unable to add tasks to modify the default configuration... Any ideas why this is happening for this recipe alone? /Regards Sander This email message and any attachments may contain confidential information and may be privileged. If you are not the intended recipient or otherwise not authorized to receive this message, you are prohibited to use, copy, disclose or take any action based on this email or any information contained herein. If you are not the intended recipient, please advise the sender immediately by replying to this email and permanently delete this message and any attachments from your system. From peter.kjellerstedt at axis.com Fri Feb 7 16:45:19 2020 From: peter.kjellerstedt at axis.com (Peter Kjellerstedt) Date: Fri, 7 Feb 2020 16:45:19 +0000 Subject: [oe] systemd-conf bbappend not working (warrior) In-Reply-To: References: Message-ID: > -----Original Message----- > From: openembedded-devel-bounces at lists.openembedded.org devel-bounces at lists.openembedded.org> On Behalf Of Visser Sander (2) > (Consultant) > Sent: den 7 februari 2020 17:15 > To: openembedded-devel at lists.openembedded.org > Subject: [oe] systemd-conf bbappend not working (warrior) > > Hi > > In warrior there is systemd-conf_243.bb but in the build folder tmp/work In Warrior, the version of systemd-conf is 241, not 243. * What versions of what layers do your really have? * Do you have any other layers than the layers in Poky? * Are there any other bb or bbappends for systemd-conf in any of the other layers? > the version is called 1.0-r0 "1.0" is the default version if no version is set in the recipe name or using PV. Before Warrior, systemd-conf did not have an explicit version set and would then use "1.0" as version. > If I create a systemd-conf_%.bbappend its content is not applied. For > instance if I set PR = "r1" that has no affect. I am also unable to add > tasks to modify the default configuration... > > Any ideas why this is happening for this recipe alone? > > /Regards Sander //Peter From bunk at stusta.de Fri Feb 7 22:09:10 2020 From: bunk at stusta.de (Adrian Bunk) Date: Sat, 8 Feb 2020 00:09:10 +0200 Subject: [oe] [meta-oe][PATCH] modemmanager: Add a PACKAGECONFIG for the new --with-at-command-via-dbus option Message-ID: <20200207220910.31762-1-bunk@stusta.de> Signed-off-by: Adrian Bunk --- meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.4.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.4.bb b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.4.bb index 3639f02ca..1f64be09e 100644 --- a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.4.bb +++ b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.4.bb @@ -23,6 +23,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. -- 2.17.1 From alistair at alistair23.me Sat Feb 8 04:55:14 2020 From: alistair at alistair23.me (Alistair Francis) Date: Fri, 7 Feb 2020 20:55:14 -0800 Subject: [oe] [PATCH] libchamplain: Add support for building libchamplain Message-ID: <20200208045514.18797-1-alistair@alistair23.me> libchamplain is a Gtk widget displaying zoomable and pannable maps that can be loaded from various network sources. Signed-off-by: Alistair Francis --- .../libchamplain/libchamplain_0.12.20.bb | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.20.bb diff --git a/meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.20.bb b/meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.20.bb new file mode 100644 index 000000000..90e553301 --- /dev/null +++ b/meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.20.bb @@ -0,0 +1,12 @@ +SUMMARY = "libchamplain is a Gtk widget displaying zoomable and pannable maps" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" +DEPENDS = "glib-2.0 gtk+3 gdk-pixbuf clutter-1.0 clutter-gtk-1.0 libsoup-2.4" + +inherit meson gobject-introspection + +SRCREV = "145e417f32e507b63c21ad4e915b808a6174099e" +SRC_URI = "git://github.com/gnome/libchamplain.git" + +S = "${WORKDIR}/git" + -- 2.25.0 From jacob.kroon at gmail.com Sat Feb 8 11:06:34 2020 From: jacob.kroon at gmail.com (Jacob Kroon) Date: Sat, 8 Feb 2020 12:06:34 +0100 Subject: [oe] [meta-java][master-next][PATCH] openjdk-8: Don't set TOPDIR bitbake variable Message-ID: <20200208110634.250922-1-jacob.kroon@gmail.com> It is used to set the default sstate cache location. Just export it to the environment. Richard, feel free to squash this or someting similar into the openjdk-8 update commit. Signed-off-by: Jacob Kroon --- recipes-core/openjdk/openjdk-8-common.inc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes-core/openjdk/openjdk-8-common.inc b/recipes-core/openjdk/openjdk-8-common.inc index 0ef4750..d8b30b8 100644 --- a/recipes-core/openjdk/openjdk-8-common.inc +++ b/recipes-core/openjdk/openjdk-8-common.inc @@ -12,7 +12,6 @@ FILESPATH =. "${FILE_DIRNAME}/patches-openjdk-8:" # for weird openjdk-common.inc S = "${WORKDIR}/${OPENJDK_HG_U}-${OPENJDK_CHANGESET}" -export TOPDIR="${S}" SRC_URI = "\ ${OPENJDK_URI} \ @@ -27,6 +26,10 @@ SRC_URI = "\ ${PATCHES_URI} \ " +do_configure_prepend () { + export TOPDIR=${S} +} + do_unpack_extract_submodules () { cd "${S}" # tar --transform -- 2.24.1 From twoerner at gmail.com Sat Feb 8 19:24:33 2020 From: twoerner at gmail.com (Trevor Woerner) Date: Sat, 8 Feb 2020 14:24:33 -0500 Subject: [oe] [meta-oe][PATCH v2] mpv: 0.26.0 -> 0.32.0 Message-ID: <20200208192433.20869-1-twoerner@gmail.com> Remove mpv from the PNBLACKLIST by updating to the latest release and using a newer, python3-aware waf for building (copied from glmark2). The name of the license file changed, but the licence of the software itself did not. Added mime-xdg to inherit to handle mime artifacts. Added to the FILES command to scoop up additional files being generated by the build. Re-added 'mpv' back to LICENSE_FLAGS_WHITELIST search list in packagegroup-meta-oe. Extensively fixed and cleaned up the PACKAGECONFIG options to reflect the current options available when configuring mpv. Also cleaned up any configure options which are no longer available. Added the correct dependencies so mpv builds under wayland. Tested with core-image-x11 on a rock-pi-4 with PACKAGECONFIG = "libass x11 opengl egl drm gbm vaapi vdpau" # mpv --vo=help Available video outputs: libmpv render API for libmpv gpu Shader-based GPU Renderer vdpau VDPAU with X11 vaapi VA API with X11 x11 X11 (slow, old crap) null Null video output image Write video frames to image files tct true-color terminals drm Direct Rendering Manager Tested with core-image-weston on a rock-pi-4 with: PACKAGECONFIG = "libass wayland x11 opengl" # mpv -vo=help Available video outputs: libmpv render API for libmpv gpu Shader-based GPU Renderer wlshm Wayland SHM video output x11 X11 (slow, old crap) null Null video output image Write video frames to image files tct true-color terminals Signed-off-by: Trevor Woerner --- changes in v2: - Martin Jansa pointed out that this patch should also re-add mpv to the LICENSE_FLAGS_WHITELIST list in packagegroup-meta-oe https://git.openembedded.org/meta-openembedded/commit/?id=0c182e58775966699c303c1e2561c273197bf445 - Khem Raj pointed out that this recipe fails to build with wayland https://errors.yoctoproject.org/Errors/Details/390294/ --- .../packagegroups/packagegroup-meta-oe.bb | 2 +- .../mplayer/mpv/python3.patch | 12 ++++ .../mplayer/{mpv_0.26.0.bb => mpv_0.32.0.bb} | 60 ++++++++++++++----- 3 files changed, 58 insertions(+), 16 deletions(-) create mode 100644 meta-oe/recipes-multimedia/mplayer/mpv/python3.patch rename meta-oe/recipes-multimedia/mplayer/{mpv_0.26.0.bb => mpv_0.32.0.bb} (46%) diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb index d5789a758..865cbb0bf 100644 --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb +++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb @@ -207,7 +207,7 @@ RDEPENDS_packagegroup-meta-oe-multimedia ="\ sound-theme-freedesktop v4l-utils yavta wavpack libvpx \ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "xpext pavucontrol xsp", "", d)} \ libmikmod \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libmad faad2", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libmad faad2 mpv", "", d)} \ " RDEPENDS_packagegroup-meta-oe-multimedia_remove_libc-musl = "alsa-oss" diff --git a/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch b/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch new file mode 100644 index 000000000..df208cf87 --- /dev/null +++ b/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch @@ -0,0 +1,12 @@ +Use Python 3 instead of Python 2. + +Upstream-Status: Pending +Signed-off-by: Ross Burton + +diff --git a/waf b/waf +index 6ce2a24..de3c898 100755 +--- a/waf ++++ b/waf +@@ -1 +1 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 diff --git a/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb b/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb similarity index 46% rename from meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb rename to meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb index c98aa7ab0..bd2e389fe 100644 --- a/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb +++ b/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb @@ -9,22 +9,23 @@ DEPENDS = "zlib ffmpeg jpeg virtual/libx11 xsp libxv \ REQUIRED_DISTRO_FEATURES = "x11" LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://LICENSE;md5=91f1cb870c1cc2d31351a4d2595441cb" +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 = "4db82f04502cbcd20d9a975df9dfde91d8c389e3" +SRCREV_mpv = "70b991749df389bcc0a4e145b5687233a03b4ed7" 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 \ + https://www.freehackers.org/~tnagy/release/waf-2.0.19;name=waf;downloadfilename=waf;subdir=git \ + file://python3.patch \ " SRC_URI[waf.md5sum] = "cef4ee82206b1843db082d0b0506bf71" SRC_URI[waf.sha256sum] = "01bf2beab2106d1558800c8709bc2c8e496d3da4a2ca343fe091f22fca60c98b" S = "${WORKDIR}/git" -inherit waf pkgconfig python3native features_check +inherit waf pkgconfig features_check mime-xdg LUA ?= "lua" LUA_mips64 = "" @@ -38,18 +39,49 @@ 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/mesa" +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 libxkbcommon" +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}', '')}" @@ -59,18 +91,14 @@ EXTRA_OECONF = " \ --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} \ " @@ -80,6 +108,8 @@ adjust_waf_perms() { do_patch[postfuncs] += "adjust_waf_perms" -FILES_${PN} += "${datadir}/icons" - -PNBLACKLIST[mpv] = "Needs forward porting to use python3" +FILES_${PN} += " \ + ${datadir}/icons \ + ${datadir}/zsh \ + ${datadir}/bash-completion \ + " -- 2.25.0.114.g5b0ca878e0 From okaya at kernel.org Sun Feb 9 03:46:41 2020 From: okaya at kernel.org (Sinan Kaya) Date: Sun, 9 Feb 2020 03:46:41 +0000 Subject: [oe] [meta-oe][PATCH] abseil-cpp: add recipe for git version Message-ID: <20200209034641.19378-1-okaya@kernel.org> The repository contains the Abseil C++ library code. Abseil is an open-source collection of C++ code (compliant to C++11) designed to augment the C++ standard library. https://github.com/abseil/abseil-cpp Signed-off-by: Changyi Li Signed-off-by: Sinan Kaya --- ...e-maes-option-from-cross-compilation.patch | 53 +++++++++++++++++++ .../abseil-cpp/abseil-cpp_git.bb | 27 ++++++++++ 2 files changed, 80 insertions(+) create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch new file mode 100644 index 0000000000..4c41cd8902 --- /dev/null +++ b/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 +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-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb new file mode 100644 index 0000000000..c7077c129f --- /dev/null +++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb @@ -0,0 +1,27 @@ +SUMMARY = "Abseil is a cpp library like STL" +DESCRIPTION = "It's got containers, algorithms, useful stuff!" +HOMEPAGE = "" +SECTION = "libs" +LICENSE = "Apache-2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=df52c6edb7adc22e533b2bacc3bd3915" + +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 \ + " + +S = "${WORKDIR}/git" + +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'aarch64', ' -march=armv8-a+crypto', '', d)}" +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'x64', ' -maes -msse4.1', '', d)}" + +CXXFLAGS_append_class-nativesdk = " -Wl,--no-as-needed -fPIC" +CXXFLAGS_append_class-native = " -Wl,--no-as-needed -fPIC" +CXXFLAGS_append_class-target = " -fPIC" + +inherit cmake + +BBCLASSEXTEND = "native nativesdk" +ALLOW_EMPTY_${PN} = "1" + -- 2.23.0 From raj.khem at gmail.com Sun Feb 9 07:53:51 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sat, 8 Feb 2020 23:53:51 -0800 Subject: [oe] [meta-oe][PATCH] abseil-cpp: add recipe for git version In-Reply-To: <20200209034641.19378-1-okaya@kernel.org> References: <20200209034641.19378-1-okaya@kernel.org> Message-ID: On Sat, Feb 8, 2020 at 7:56 PM Sinan Kaya wrote: > > The repository contains the Abseil C++ library code. Abseil is an > open-source collection of C++ code (compliant to C++11) designed to > augment the C++ standard library. > > https://github.com/abseil/abseil-cpp > > Signed-off-by: Changyi Li > Signed-off-by: Sinan Kaya > --- > ...e-maes-option-from-cross-compilation.patch | 53 +++++++++++++++++++ > .../abseil-cpp/abseil-cpp_git.bb | 27 ++++++++++ > 2 files changed, 80 insertions(+) > create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch > create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb > > diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch > new file mode 100644 > index 0000000000..4c41cd8902 > --- /dev/null > +++ b/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 > +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-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb > new file mode 100644 > index 0000000000..c7077c129f > --- /dev/null > +++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb > @@ -0,0 +1,27 @@ > +SUMMARY = "Abseil is a cpp library like STL" > +DESCRIPTION = "It's got containers, algorithms, useful stuff!" maybe we can be more specific about it from https://github.com/abseil/abseil-cpp/blob/master/README.md > +HOMEPAGE = "" perhaps https://abseil.io/ instead of leaving it empty is better. > +SECTION = "libs" > +LICENSE = "Apache-2" The current value is not wrong but Apache-2.0 would be better to match SPDX > +LIC_FILES_CHKSUM = "file://LICENSE;md5=df52c6edb7adc22e533b2bacc3bd3915" > + > +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 \ > + " > + > +S = "${WORKDIR}/git" > + > +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'aarch64', ' -march=armv8-a+crypto', '', d)}" > +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'x64', ' -maes -msse4.1', '', d)}" > + > +CXXFLAGS_append_class-nativesdk = " -Wl,--no-as-needed -fPIC" > +CXXFLAGS_append_class-native = " -Wl,--no-as-needed -fPIC" perhaps use ASNEEDED_ = "" > +CXXFLAGS_append_class-target = " -fPIC" > + > +inherit cmake > + > +BBCLASSEXTEND = "native nativesdk" > +ALLOW_EMPTY_${PN} = "1" why do we need this ? From schnitzeltony at gmail.com Sun Feb 9 11:42:21 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sun, 9 Feb 2020 12:42:21 +0100 Subject: [oe] [PATCH 1/6] babl: upgrade 0.1.62 -> 0.1.74 Message-ID: <20200209114226.2584-1-schnitzeltony@gmail.com> * babl moved to meson build * move to meta-gnome: latest gimp requires gexiv2 and nothing but gimp depends on babl * extend to native build for native gegl (next patch) * get sources from location gimp's homepage suggests Signed-off-by: Andreas M?ller --- meta-gnome/recipes-gimp/babl/babl_0.1.74.bb | 17 +++++++++++++++++ meta-oe/recipes-graphics/babl/babl_0.1.62.bb | 13 ------------- 2 files changed, 17 insertions(+), 13 deletions(-) create mode 100644 meta-gnome/recipes-gimp/babl/babl_0.1.74.bb delete mode 100644 meta-oe/recipes-graphics/babl/babl_0.1.62.bb diff --git a/meta-gnome/recipes-gimp/babl/babl_0.1.74.bb b/meta-gnome/recipes-gimp/babl/babl_0.1.74.bb new file mode 100644 index 000000000..59921d344 --- /dev/null +++ b/meta-gnome/recipes-gimp/babl/babl_0.1.74.bb @@ -0,0 +1,17 @@ +SUMMARY = "Babl is a dynamic, any to any, pixel format conversion library" +LICENSE = "LGPL-3.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6" + +GNOMEBASEBUILDCLASS = "meson" + +GIR_MESON_OPTION = "enable-gir" + +inherit setuptools3 gnomebase gobject-introspection + +DEPENDS += "lcms" + +SRC_URI = "https://download.gimp.org/pub/${BPN}/0.1/${BP}.tar.xz" +SRC_URI[md5sum] = "d032853f2678bc95054c39d4f02045c1" +SRC_URI[sha256sum] = "9a710b6950da37ada94cd9e2046cbce26de12473da32a7b79b7d1432fc66ce0e" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-graphics/babl/babl_0.1.62.bb b/meta-oe/recipes-graphics/babl/babl_0.1.62.bb deleted file mode 100644 index 4a7dbcab3..000000000 --- a/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/" -- 2.21.0 From schnitzeltony at gmail.com Sun Feb 9 11:42:22 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sun, 9 Feb 2020 12:42:22 +0100 Subject: [oe] [PATCH 2/6] gegl: upgrade 0.3.18 -> 0.4.20 In-Reply-To: <20200209114226.2584-1-schnitzeltony@gmail.com> References: <20200209114226.2584-1-schnitzeltony@gmail.com> Message-ID: <20200209114226.2584-2-schnitzeltony@gmail.com> * gegl is GPLv3 now * gegl moved to meson build * move to meta-gnome: latest gimp requires gexiv2 and nothing but gimp depends on gegl * add more PACKAGECONFIGs and change defaults slightly: sdl->sdl2 / add gexiv2 by default because gimp requires it anyway * extend to native: latest gimp requires gegl for manipulation of pngs during build * get sources from location gimp's homepage suggests Signed-off-by: Andreas M?ller --- ...on.build-Give-note-if-sdl2-was-found.patch | 32 ++++++++++ meta-gnome/recipes-gimp/gegl/gegl_0.4.20.bb | 61 +++++++++++++++++++ .../gegl/gegl/pkgconfig.patch | 21 ------- meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb | 34 ----------- 4 files changed, 93 insertions(+), 55 deletions(-) create mode 100644 meta-gnome/recipes-gimp/gegl/gegl/0001-meson.build-Give-note-if-sdl2-was-found.patch create mode 100644 meta-gnome/recipes-gimp/gegl/gegl_0.4.20.bb delete mode 100644 meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch delete mode 100644 meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb diff --git a/meta-gnome/recipes-gimp/gegl/gegl/0001-meson.build-Give-note-if-sdl2-was-found.patch b/meta-gnome/recipes-gimp/gegl/gegl/0001-meson.build-Give-note-if-sdl2-was-found.patch new file mode 100644 index 000000000..6a49f1d7c --- /dev/null +++ b/meta-gnome/recipes-gimp/gegl/gegl/0001-meson.build-Give-note-if-sdl2-was-found.patch @@ -0,0 +1,32 @@ +From 6bed199a73a7af39344cf8e799b665011553600c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 8 Feb 2020 14:29:52 +0100 +Subject: [PATCH] meson.build: Give note if sdl2 was found +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Configure output confused me a bit + +Upstream-Status: Pending + +Signed-off-by: Andreas M?ller +--- + meson.build | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/meson.build b/meson.build +index 9d5b484..296b5f3 100644 +--- a/meson.build ++++ b/meson.build +@@ -374,6 +374,7 @@ message('\n'.join(['', + ' OpenEXR: @0@'.format(openexr.found()), + ' rsvg: @0@'.format(librsvg.found()), + ' SDL: @0@'.format(sdl1.found()), ++' SDL2: @0@'.format(sdl2.found()), + ' libraw: @0@'.format(libraw.found()), + ' Jasper: @0@'.format(jasper.found()), + ' av libs: @0@'.format(avlibs_found), +-- +2.21.0 + diff --git a/meta-gnome/recipes-gimp/gegl/gegl_0.4.20.bb b/meta-gnome/recipes-gimp/gegl/gegl_0.4.20.bb new file mode 100644 index 000000000..5e7a1bb84 --- /dev/null +++ b/meta-gnome/recipes-gimp/gegl/gegl_0.4.20.bb @@ -0,0 +1,61 @@ +SUMMARY = "GEGL (Generic Graphics Library) is a graph based image processing framework" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=f1a8bfcbc85304df454b65d378b299c7" + +DEPENDS = " \ + intltool-native \ + babl \ + glib-2.0 \ + pango \ + cairo \ + expat \ + zlib \ + \ + json-glib \ +" + +GNOMEBASEBUILDCLASS = "meson" + +inherit features_check gnomebase vala gobject-introspection + +REQUIRED_DISTRO_FEATURES = "x11" + +SHPV = "${@gnome_verdir("${PV}")}" + +SRC_URI = " \ + https://download.gimp.org/pub/${BPN}/${SHPV}/${BP}.tar.xz \ + file://0001-meson.build-Give-note-if-sdl2-was-found.patch \ +" +SRC_URI[md5sum] = "37433eb00f8a4b0d1ae9e975aaedfa26" +SRC_URI[sha256sum] = "23bd8bb42b20de7c2a8c314eeb5301dc20141feda20a4b1ed455020b69b73dff" + +PACKAGECONFIG ??= "gexiv2 jpeg libpng librsvg sdl2" +PACKAGECONFIG_class-native = "libpng librsvg" + +PACKAGECONFIG[jasper] = "-Djasper=enabled,-Djasper=disabled,jasper" +PACKAGECONFIG[gexiv2] = "-Dgexiv2=enabled,-Dgexiv2=disabled,gexiv2" +PACKAGECONFIG[graphviz] = "-Dgraphviz=enabled,-Dgraphviz=disabled,graphviz" +PACKAGECONFIG[jpeg] = "-Dlibjpeg=enabled,-Dlibjpeg=disabled,jpeg" +PACKAGECONFIG[lcms] = "-Dlcms=enabled,-Dlcms=disabled,lcms" +PACKAGECONFIG[libav] = "-Dlibav=enabled,-Dlibav=disabled,libav" +PACKAGECONFIG[libpng] = "-Dlibpng=enabled,-Dlibpng=disabled,libpng" +PACKAGECONFIG[librsvg] = "-Dlibrsvg=enabled,-Dlibrsvg=disabled,librsvg" +PACKAGECONFIG[sdl] = "-Dsdl1=enabled,-Dsdl1=disabled,virtual/libsdl" +PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,virtual/libsdl2" +PACKAGECONFIG[tiff] = "-Dlibtiff=enabled,-Dlibtiff=disabled,tiff" +PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,webp" + +# There are a couple of non-symlink .so files installed into libdir, which need to go into main package +FILES_${PN} += " \ + ${libdir}/*.so \ + ${libdir}/gegl-${SHPV}/*.json \ + ${libdir}/gegl-${SHPV}/*.so \ +" +FILES_SOLIBSDEV = "${libdir}/libgegl-${SHPV}${SOLIBSDEV}" + +# 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" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch b/meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch deleted file mode 100644 index d145b625f..000000000 --- a/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-oe/recipes-graphics/gegl/gegl_0.3.18.bb b/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb deleted file mode 100644 index 0db0f793d..000000000 --- a/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" -- 2.21.0 From schnitzeltony at gmail.com Sun Feb 9 11:42:23 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sun, 9 Feb 2020 12:42:23 +0100 Subject: [oe] [PATCH 3/6] libmypaint: initial add 1.4.0 In-Reply-To: <20200209114226.2584-1-schnitzeltony@gmail.com> References: <20200209114226.2584-1-schnitzeltony@gmail.com> Message-ID: <20200209114226.2584-3-schnitzeltony@gmail.com> It is a dependency for upcoming gimp 2.10.14 Signed-off-by: Andreas M?ller --- .../recipes-gimp/mypaint/libmypaint_git.bb | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 meta-gnome/recipes-gimp/mypaint/libmypaint_git.bb diff --git a/meta-gnome/recipes-gimp/mypaint/libmypaint_git.bb b/meta-gnome/recipes-gimp/mypaint/libmypaint_git.bb new file mode 100644 index 000000000..2ca80f3e6 --- /dev/null +++ b/meta-gnome/recipes-gimp/mypaint/libmypaint_git.bb @@ -0,0 +1,24 @@ +SUMMARY = "libmypaint is a library for making brushstrokes" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://COPYING;md5=9d13203ab4013e5a14dd62105f75d58b" + +DEPENDS = " \ + glib-2.0-native \ + intltool-native \ + glib-2.0 \ + babl \ + json-c \ +" + +inherit autotools gobject-introspection gettext python3native + +SRC_URI = "git://github.com/mypaint/libmypaint.git;protocol=https;branch=libmypaint-v1" +SRCREV = "477cb94b596035b54a255faaf95d13f6a8ee3619" +PV = "1.4.0" +S = "${WORKDIR}/git" + +do_configure_append() { + # autogen uses python2 so generate headers ourselves + cd ${S} + python3 generate.py mypaint-brush-settings-gen.h brushsettings-gen.h +} -- 2.21.0 From schnitzeltony at gmail.com Sun Feb 9 11:42:24 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sun, 9 Feb 2020 12:42:24 +0100 Subject: [oe] [PATCH 4/6] mypaint-brushes: initial add 1.3.0 In-Reply-To: <20200209114226.2584-1-schnitzeltony@gmail.com> References: <20200209114226.2584-1-schnitzeltony@gmail.com> Message-ID: <20200209114226.2584-4-schnitzeltony@gmail.com> * it is a (r)dependency for upcoming gimp 2.10.14 * there are 2.x versions available but these are not what gimp requires Signed-off-by: Andreas M?ller --- .../recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 meta-gnome/recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb diff --git a/meta-gnome/recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb b/meta-gnome/recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb new file mode 100644 index 000000000..d4d08fe8d --- /dev/null +++ b/meta-gnome/recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb @@ -0,0 +1,12 @@ +SUMMARY = "MyPaint brushes" +LICENSE = "CC0-1.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=65d3616852dbf7b1a6d4b53b00626032" + +inherit autotools allarch + +SRC_URI = "git://github.com/mypaint/mypaint-brushes.git;protocol=https;branch=v1.3.x" +SRCREV = "be9fdf9ef6c54e29c7499992f04e29114857b3fc" +PV = "1.3.0+git${SRCPV}" +S = "${WORKDIR}/git" + +FILES_${PN} += "${datadir}/mypaint-data" -- 2.21.0 From schnitzeltony at gmail.com Sun Feb 9 11:42:25 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sun, 9 Feb 2020 12:42:25 +0100 Subject: [oe] [PATCH 5/6] gimp: upgrade 2.8.22 -> 2.10.14 In-Reply-To: <20200209114226.2584-1-schnitzeltony@gmail.com> References: <20200209114226.2584-1-schnitzeltony@gmail.com> Message-ID: <20200209114226.2584-5-schnitzeltony@gmail.com> * patches don't apply any more * get sources from location gimp's homepage suggests * license checksum was changed by replacing http -> https [1] [1] https://gitlab.gnome.org/GNOME/gimp/commit/bab75b7365cc87639cd5aaa9840ebe1f6228d556 Signed-off-by: Andreas M?ller --- meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb | 60 +++++++++++++++++++ ...-ac-do-not-check-for-freetype-config.patch | 38 ------------ .../gimp/gimp/0003-Fix-use-of-gegl-API.patch | 34 ----------- .../gimp/gimp/bump_Babl-GEGL_versions.patch | 53 ---------------- meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb | 52 ---------------- 5 files changed, 60 insertions(+), 177 deletions(-) create mode 100644 meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb delete mode 100644 meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch delete mode 100644 meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch delete mode 100644 meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch delete mode 100644 meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb diff --git a/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb b/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb new file mode 100644 index 000000000..045958d0a --- /dev/null +++ b/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb @@ -0,0 +1,60 @@ +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=c678957b0c8e964aa6c70fd77641a71e" + +DEPENDS = " \ + gdk-pixbuf-native \ + intltool-native \ + libxslt-native \ + gegl-native \ + dbus-glib \ + gtk+ \ + babl \ + gegl \ + libmypaint \ + mypaint-brushes-1.0 \ + gexiv2 \ + jpeg \ + libpng \ + libexif \ + tiff \ + lcms \ + poppler \ + poppler-data \ + jasper \ + bzip2 \ + libgudev \ + libmng \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxmu libxpm', '', d)} \ +" + +inherit features_check gnomebase gtk-icon-cache gtk-doc mime-xdg + +REQUIRED_DISTRO_FEATURES = "x11" + +SHPV = "${@gnome_verdir("${PV}")}" + +SRC_URI = "https://download.gimp.org/pub/${BPN}/v${SHPV}/${BP}.tar.bz2" +SRC_URI[md5sum] = "a64f2be299755a2da130306cad9b1d26" +SRC_URI[sha256sum] = "df9b0f11c2078eea1de3ebc66529a5d3854c5e28636cd25a8dd077bd9d6ddc54" + +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 +} + +do_compile_prepend() { + # Let native babl/gegl find their plugins + export BABL_PATH=`find ${STAGING_LIBDIR_NATIVE} -maxdepth 1 -name 'babl-*'` + export GEGL_PATH=`find ${STAGING_LIBDIR_NATIVE} -maxdepth 1 -name 'gegl-*'` +} + +FILES_${PN} += "${datadir}/metainfo" + +RDEPENDS_${PN} += "mypaint-brushes-1.0" diff --git a/meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch b/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-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?= -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 ---- - 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-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch b/meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch deleted file mode 100644 index 7da78e205..000000000 --- a/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 -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 ---- - 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-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch b/meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch deleted file mode 100644 index b71bf329e..000000000 --- a/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 -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-oe/recipes-graphics/gimp/gimp_2.8.22.bb b/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb deleted file mode 100644 index 718f8998c..000000000 --- a/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 mime-xdg - -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" -- 2.21.0 From schnitzeltony at gmail.com Sun Feb 9 11:42:26 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sun, 9 Feb 2020 12:42:26 +0100 Subject: [oe] [PATCH 6/6] packagegroup-meta-oe: remove babl/gegl/gimp they moved to meta-gnome In-Reply-To: <20200209114226.2584-1-schnitzeltony@gmail.com> References: <20200209114226.2584-1-schnitzeltony@gmail.com> Message-ID: <20200209114226.2584-6-schnitzeltony@gmail.com> Signed-off-by: Andreas M?ller --- meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb index d5789a758..07f71c8a5 100644 --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb +++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb @@ -172,8 +172,8 @@ 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 dnfdragora \ + 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 \ -- 2.21.0 From schnitzeltony at gmail.com Sun Feb 9 15:10:47 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sun, 9 Feb 2020 16:10:47 +0100 Subject: [oe] [PATCH][v2 0/6] gimp upgrade Message-ID: <20200209151053.4277-1-schnitzeltony@gmail.com> V1 -> V2: git format-patch -M1 Andreas M?ller (6): babl: upgrade 0.1.62 -> 0.1.74 gegl: upgrade 0.3.18 -> 0.4.20 libmypaint: initial add 1.4.0 mypaint-brushes: initial add 1.3.0 gimp: upgrade 2.8.22 -> 2.10.14 packagegroup-meta-oe: remove babl/gegl/gimp they moved to meta-gnome .../recipes-gimp/babl/babl_0.1.74.bb | 18 +++-- ...on.build-Give-note-if-sdl2-was-found.patch | 50 ++++++-------- .../recipes-gimp/gegl/gegl_0.4.20.bb | 69 +++++++++++++------ .../recipes-gimp/gimp/gimp_2.10.14.bb | 32 +++++---- .../recipes-gimp/mypaint/libmypaint_git.bb | 24 +++++++ .../mypaint/mypaint-brushes-1.0_git.bb | 12 ++++ .../packagegroups/packagegroup-meta-oe.bb | 4 +- .../gegl/gegl/pkgconfig.patch | 21 ------ .../gimp/gimp/0003-Fix-use-of-gegl-API.patch | 34 --------- .../gimp/gimp/bump_Babl-GEGL_versions.patch | 53 -------------- 10 files changed, 139 insertions(+), 178 deletions(-) rename meta-oe/recipes-graphics/babl/babl_0.1.62.bb => meta-gnome/recipes-gimp/babl/babl_0.1.74.bb (31%) rename meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch => meta-gnome/recipes-gimp/gegl/gegl/0001-meson.build-Give-note-if-sdl2-was-found.patch (10%) rename meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb => meta-gnome/recipes-gimp/gegl/gegl_0.4.20.bb (24%) rename meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb => meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb (49%) create mode 100644 meta-gnome/recipes-gimp/mypaint/libmypaint_git.bb create mode 100644 meta-gnome/recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb delete mode 100644 meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch delete mode 100644 meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch delete mode 100644 meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch -- 2.21.0 From schnitzeltony at gmail.com Sun Feb 9 15:10:48 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sun, 9 Feb 2020 16:10:48 +0100 Subject: [oe] [PATCH][v2 1/6] babl: upgrade 0.1.62 -> 0.1.74 In-Reply-To: <20200209151053.4277-1-schnitzeltony@gmail.com> References: <20200209151053.4277-1-schnitzeltony@gmail.com> Message-ID: <20200209151053.4277-2-schnitzeltony@gmail.com> * babl moved to meson build * move to meta-gnome: latest gimp requires gexiv2 and nothing but gimp depends on babl * extend to native build for native gegl (next patch) * get sources from location gimp's homepage suggests Signed-off-by: Andreas M?ller --- .../recipes-gimp/babl/babl_0.1.74.bb | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) rename meta-oe/recipes-graphics/babl/babl_0.1.62.bb => meta-gnome/recipes-gimp/babl/babl_0.1.74.bb (31%) diff --git a/meta-oe/recipes-graphics/babl/babl_0.1.62.bb b/meta-gnome/recipes-gimp/babl/babl_0.1.74.bb similarity index 31% rename from meta-oe/recipes-graphics/babl/babl_0.1.62.bb rename to meta-gnome/recipes-gimp/babl/babl_0.1.74.bb index 4a7dbcab3..59921d344 100644 --- a/meta-oe/recipes-graphics/babl/babl_0.1.62.bb +++ b/meta-gnome/recipes-gimp/babl/babl_0.1.74.bb @@ -2,12 +2,16 @@ 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 +GNOMEBASEBUILDCLASS = "meson" -SRC_URI = "http://ftp.gimp.org/pub/${BPN}/0.1/${BP}.tar.bz2" -SRC_URI[md5sum] = "28fa9d43549378ceebe2871d7721dd46" -SRC_URI[sha256sum] = "dc279f174edbcb08821cf37e4ab0bc02e6949369b00b150c759a6c24bfd3f510" +GIR_MESON_OPTION = "enable-gir" -FILES_${PN} += "${libdir}/babl-*/*.so" -FILES_${PN}-dev += "${libdir}/babl-*/*.la" -FILES_${PN}-dbg += "${libdir}/babl-*/.debug/" +inherit setuptools3 gnomebase gobject-introspection + +DEPENDS += "lcms" + +SRC_URI = "https://download.gimp.org/pub/${BPN}/0.1/${BP}.tar.xz" +SRC_URI[md5sum] = "d032853f2678bc95054c39d4f02045c1" +SRC_URI[sha256sum] = "9a710b6950da37ada94cd9e2046cbce26de12473da32a7b79b7d1432fc66ce0e" + +BBCLASSEXTEND = "native" -- 2.21.0 From schnitzeltony at gmail.com Sun Feb 9 15:10:49 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sun, 9 Feb 2020 16:10:49 +0100 Subject: [oe] [PATCH][v2 2/6] gegl: upgrade 0.3.18 -> 0.4.20 In-Reply-To: <20200209151053.4277-1-schnitzeltony@gmail.com> References: <20200209151053.4277-1-schnitzeltony@gmail.com> Message-ID: <20200209151053.4277-3-schnitzeltony@gmail.com> * gegl is GPLv3 now * gegl moved to meson build * move to meta-gnome: latest gimp requires gexiv2 and nothing but gimp depends on gegl * add more PACKAGECONFIGs and change defaults slightly: sdl->sdl2 / add gexiv2 by default because gimp requires it anyway * extend to native: latest gimp requires gegl for manipulation of pngs during build * get sources from location gimp's homepage suggests Signed-off-by: Andreas M?ller --- ...on.build-Give-note-if-sdl2-was-found.patch | 32 +++++++++ .../recipes-gimp/gegl/gegl_0.4.20.bb | 69 +++++++++++++------ .../gegl/gegl/pkgconfig.patch | 21 ------ 3 files changed, 80 insertions(+), 42 deletions(-) create mode 100644 meta-gnome/recipes-gimp/gegl/gegl/0001-meson.build-Give-note-if-sdl2-was-found.patch rename meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb => meta-gnome/recipes-gimp/gegl/gegl_0.4.20.bb (24%) delete mode 100644 meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch diff --git a/meta-gnome/recipes-gimp/gegl/gegl/0001-meson.build-Give-note-if-sdl2-was-found.patch b/meta-gnome/recipes-gimp/gegl/gegl/0001-meson.build-Give-note-if-sdl2-was-found.patch new file mode 100644 index 000000000..6a49f1d7c --- /dev/null +++ b/meta-gnome/recipes-gimp/gegl/gegl/0001-meson.build-Give-note-if-sdl2-was-found.patch @@ -0,0 +1,32 @@ +From 6bed199a73a7af39344cf8e799b665011553600c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sat, 8 Feb 2020 14:29:52 +0100 +Subject: [PATCH] meson.build: Give note if sdl2 was found +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Configure output confused me a bit + +Upstream-Status: Pending + +Signed-off-by: Andreas M?ller +--- + meson.build | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/meson.build b/meson.build +index 9d5b484..296b5f3 100644 +--- a/meson.build ++++ b/meson.build +@@ -374,6 +374,7 @@ message('\n'.join(['', + ' OpenEXR: @0@'.format(openexr.found()), + ' rsvg: @0@'.format(librsvg.found()), + ' SDL: @0@'.format(sdl1.found()), ++' SDL2: @0@'.format(sdl2.found()), + ' libraw: @0@'.format(libraw.found()), + ' Jasper: @0@'.format(jasper.found()), + ' av libs: @0@'.format(avlibs_found), +-- +2.21.0 + diff --git a/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb b/meta-gnome/recipes-gimp/gegl/gegl_0.4.20.bb similarity index 24% rename from meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb rename to meta-gnome/recipes-gimp/gegl/gegl_0.4.20.bb index 0db0f793d..5e7a1bb84 100644 --- a/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb +++ b/meta-gnome/recipes-gimp/gegl/gegl_0.4.20.bb @@ -1,34 +1,61 @@ 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" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=f1a8bfcbc85304df454b65d378b299c7" + +DEPENDS = " \ + intltool-native \ + babl \ + glib-2.0 \ + pango \ + cairo \ + expat \ + zlib \ + \ + json-glib \ +" + +GNOMEBASEBUILDCLASS = "meson" 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" +SHPV = "${@gnome_verdir("${PV}")}" + +SRC_URI = " \ + https://download.gimp.org/pub/${BPN}/${SHPV}/${BP}.tar.xz \ + file://0001-meson.build-Give-note-if-sdl2-was-found.patch \ +" +SRC_URI[md5sum] = "37433eb00f8a4b0d1ae9e975aaedfa26" +SRC_URI[sha256sum] = "23bd8bb42b20de7c2a8c314eeb5301dc20141feda20a4b1ed455020b69b73dff" + +PACKAGECONFIG ??= "gexiv2 jpeg libpng librsvg sdl2" +PACKAGECONFIG_class-native = "libpng librsvg" + +PACKAGECONFIG[jasper] = "-Djasper=enabled,-Djasper=disabled,jasper" +PACKAGECONFIG[gexiv2] = "-Dgexiv2=enabled,-Dgexiv2=disabled,gexiv2" +PACKAGECONFIG[graphviz] = "-Dgraphviz=enabled,-Dgraphviz=disabled,graphviz" +PACKAGECONFIG[jpeg] = "-Dlibjpeg=enabled,-Dlibjpeg=disabled,jpeg" +PACKAGECONFIG[lcms] = "-Dlcms=enabled,-Dlcms=disabled,lcms" +PACKAGECONFIG[libav] = "-Dlibav=enabled,-Dlibav=disabled,libav" +PACKAGECONFIG[libpng] = "-Dlibpng=enabled,-Dlibpng=disabled,libpng" +PACKAGECONFIG[librsvg] = "-Dlibrsvg=enabled,-Dlibrsvg=disabled,librsvg" +PACKAGECONFIG[sdl] = "-Dsdl1=enabled,-Dsdl1=disabled,virtual/libsdl" +PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,virtual/libsdl2" +PACKAGECONFIG[tiff] = "-Dlibtiff=enabled,-Dlibtiff=disabled,tiff" +PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,webp" # 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" +FILES_${PN} += " \ + ${libdir}/*.so \ + ${libdir}/gegl-${SHPV}/*.json \ + ${libdir}/gegl-${SHPV}/*.so \ +" +FILES_SOLIBSDEV = "${libdir}/libgegl-${SHPV}${SOLIBSDEV}" # 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" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch b/meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch deleted file mode 100644 index d145b625f..000000000 --- a/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") -- 2.21.0 From schnitzeltony at gmail.com Sun Feb 9 15:10:50 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sun, 9 Feb 2020 16:10:50 +0100 Subject: [oe] [PATCH][v2 3/6] libmypaint: initial add 1.4.0 In-Reply-To: <20200209151053.4277-1-schnitzeltony@gmail.com> References: <20200209151053.4277-1-schnitzeltony@gmail.com> Message-ID: <20200209151053.4277-4-schnitzeltony@gmail.com> It is a dependency for upcoming gimp 2.10.14 Signed-off-by: Andreas M?ller --- .../recipes-gimp/mypaint/libmypaint_git.bb | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 meta-gnome/recipes-gimp/mypaint/libmypaint_git.bb diff --git a/meta-gnome/recipes-gimp/mypaint/libmypaint_git.bb b/meta-gnome/recipes-gimp/mypaint/libmypaint_git.bb new file mode 100644 index 000000000..2ca80f3e6 --- /dev/null +++ b/meta-gnome/recipes-gimp/mypaint/libmypaint_git.bb @@ -0,0 +1,24 @@ +SUMMARY = "libmypaint is a library for making brushstrokes" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://COPYING;md5=9d13203ab4013e5a14dd62105f75d58b" + +DEPENDS = " \ + glib-2.0-native \ + intltool-native \ + glib-2.0 \ + babl \ + json-c \ +" + +inherit autotools gobject-introspection gettext python3native + +SRC_URI = "git://github.com/mypaint/libmypaint.git;protocol=https;branch=libmypaint-v1" +SRCREV = "477cb94b596035b54a255faaf95d13f6a8ee3619" +PV = "1.4.0" +S = "${WORKDIR}/git" + +do_configure_append() { + # autogen uses python2 so generate headers ourselves + cd ${S} + python3 generate.py mypaint-brush-settings-gen.h brushsettings-gen.h +} -- 2.21.0 From schnitzeltony at gmail.com Sun Feb 9 15:10:51 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sun, 9 Feb 2020 16:10:51 +0100 Subject: [oe] [PATCH][v2 4/6] mypaint-brushes: initial add 1.3.0 In-Reply-To: <20200209151053.4277-1-schnitzeltony@gmail.com> References: <20200209151053.4277-1-schnitzeltony@gmail.com> Message-ID: <20200209151053.4277-5-schnitzeltony@gmail.com> * it is a (r)dependency for upcoming gimp 2.10.14 * there are 2.x versions available but these are not what gimp requires Signed-off-by: Andreas M?ller --- .../recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 meta-gnome/recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb diff --git a/meta-gnome/recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb b/meta-gnome/recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb new file mode 100644 index 000000000..d4d08fe8d --- /dev/null +++ b/meta-gnome/recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb @@ -0,0 +1,12 @@ +SUMMARY = "MyPaint brushes" +LICENSE = "CC0-1.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=65d3616852dbf7b1a6d4b53b00626032" + +inherit autotools allarch + +SRC_URI = "git://github.com/mypaint/mypaint-brushes.git;protocol=https;branch=v1.3.x" +SRCREV = "be9fdf9ef6c54e29c7499992f04e29114857b3fc" +PV = "1.3.0+git${SRCPV}" +S = "${WORKDIR}/git" + +FILES_${PN} += "${datadir}/mypaint-data" -- 2.21.0 From schnitzeltony at gmail.com Sun Feb 9 15:10:52 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sun, 9 Feb 2020 16:10:52 +0100 Subject: [oe] [PATCH][v2 5/6] gimp: upgrade 2.8.22 -> 2.10.14 In-Reply-To: <20200209151053.4277-1-schnitzeltony@gmail.com> References: <20200209151053.4277-1-schnitzeltony@gmail.com> Message-ID: <20200209151053.4277-6-schnitzeltony@gmail.com> * patches don't apply any more * get sources from location gimp's homepage suggests * license checksum was changed by replacing http -> https [1] [1] https://gitlab.gnome.org/GNOME/gimp/commit/bab75b7365cc87639cd5aaa9840ebe1f6228d556 Signed-off-by: Andreas M?ller --- .../recipes-gimp/gimp/gimp_2.10.14.bb | 32 ++++++----- ...-ac-do-not-check-for-freetype-config.patch | 38 ------------- .../gimp/gimp/0003-Fix-use-of-gegl-API.patch | 34 ------------ .../gimp/gimp/bump_Babl-GEGL_versions.patch | 53 ------------------- 4 files changed, 20 insertions(+), 137 deletions(-) rename meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb => meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb (49%) delete mode 100644 meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch delete mode 100644 meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch delete mode 100644 meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch diff --git a/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb b/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb similarity index 49% rename from meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb rename to meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb index 718f8998c..045958d0a 100644 --- a/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb +++ b/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb @@ -2,40 +2,43 @@ 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" +LIC_FILES_CHKSUM = "file://COPYING;md5=c678957b0c8e964aa6c70fd77641a71e" DEPENDS = " \ gdk-pixbuf-native \ intltool-native \ libxslt-native \ + gegl-native \ dbus-glib \ gtk+ \ babl \ gegl \ + libmypaint \ + mypaint-brushes-1.0 \ + gexiv2 \ jpeg \ libpng \ libexif \ tiff \ lcms \ poppler \ + poppler-data \ jasper \ bzip2 \ libgudev \ libmng \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxmu libxpm', '', d)} \ " -DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxmu libxpm', '', d)}" inherit features_check gnomebase gtk-icon-cache gtk-doc mime-xdg 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" +SHPV = "${@gnome_verdir("${PV}")}" + +SRC_URI = "https://download.gimp.org/pub/${BPN}/v${SHPV}/${BP}.tar.bz2" +SRC_URI[md5sum] = "a64f2be299755a2da130306cad9b1d26" +SRC_URI[sha256sum] = "df9b0f11c2078eea1de3ebc66529a5d3854c5e28636cd25a8dd077bd9d6ddc54" EXTRA_OECONF = "--disable-python \ --without-webkit \ @@ -46,7 +49,12 @@ do_configure_append() { find ${B} -name Makefile | xargs sed -i s:'-I/usr/include':'-I${STAGING_INCDIR}':g } -CFLAGS += "-fPIC" +do_compile_prepend() { + # Let native babl/gegl find their plugins + export BABL_PATH=`find ${STAGING_LIBDIR_NATIVE} -maxdepth 1 -name 'babl-*'` + export GEGL_PATH=`find ${STAGING_LIBDIR_NATIVE} -maxdepth 1 -name 'gegl-*'` +} + +FILES_${PN} += "${datadir}/metainfo" -FILES_${PN}-dbg += "${libdir}/gimp/2.0/*/.debug" -FILES_${PN} += "${datadir}/appdata" +RDEPENDS_${PN} += "mypaint-brushes-1.0" diff --git a/meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch b/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-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?= -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 ---- - 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-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch b/meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch deleted file mode 100644 index 7da78e205..000000000 --- a/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 -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 ---- - 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-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch b/meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch deleted file mode 100644 index b71bf329e..000000000 --- a/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 -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, :, -- 2.21.0 From schnitzeltony at gmail.com Sun Feb 9 15:10:53 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sun, 9 Feb 2020 16:10:53 +0100 Subject: [oe] [PATCH][v2 6/6] packagegroup-meta-oe: remove babl/gegl/gimp they moved to meta-gnome In-Reply-To: <20200209151053.4277-1-schnitzeltony@gmail.com> References: <20200209151053.4277-1-schnitzeltony@gmail.com> Message-ID: <20200209151053.4277-7-schnitzeltony@gmail.com> Signed-off-by: Andreas M?ller --- meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb index d5789a758..07f71c8a5 100644 --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb +++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb @@ -172,8 +172,8 @@ 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 dnfdragora \ + 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 \ -- 2.21.0 From derek at asterius.io Sun Feb 9 16:00:35 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 11:00:35 -0500 Subject: [oe] [meta-webserver][PATCH] nginx: update to the latest stable version (1.16.1) Message-ID: <20200209160035.8589-1-derek@asterius.io> See changlog here: https://nginx.org/en/CHANGES-1.16 * Fixes CVE-2019-9511, CVE-2019-9513, CVE-2019-9516 Signed-off-by: Derek Straka --- meta-webserver/recipes-httpd/nginx/nginx_1.16.0.bb | 10 ---------- meta-webserver/recipes-httpd/nginx/nginx_1.16.1.bb | 6 ++++++ 2 files changed, 6 insertions(+), 10 deletions(-) delete mode 100644 meta-webserver/recipes-httpd/nginx/nginx_1.16.0.bb create mode 100644 meta-webserver/recipes-httpd/nginx/nginx_1.16.1.bb diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.16.0.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.16.0.bb deleted file mode 100644 index cad0db6fc6..0000000000 --- a/meta-webserver/recipes-httpd/nginx/nginx_1.16.0.bb +++ /dev/null @@ -1,10 +0,0 @@ -require nginx.inc - -# 1.16.x branch is the current stable branch, the recommended default -# 1.17.x is the current mainline branches containing all new features -DEFAULT_PREFERENCE = "-1" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=52e384aaac868b755b93ad5535e2d075" - -SRC_URI[md5sum] = "97207283f30cd90cdba638c3ea30323a" -SRC_URI[sha256sum] = "4fd376bad78797e7f18094a00f0f1088259326436b537eb5af69b01be2ca1345" diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.16.1.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.16.1.bb new file mode 100644 index 0000000000..207642575b --- /dev/null +++ b/meta-webserver/recipes-httpd/nginx/nginx_1.16.1.bb @@ -0,0 +1,6 @@ +require nginx.inc + +LIC_FILES_CHKSUM = "file://LICENSE;md5=52e384aaac868b755b93ad5535e2d075" + +SRC_URI[md5sum] = "45a80f75336c980d240987badc3dcf60" +SRC_URI[sha256sum] = "f11c2a6dd1d3515736f0324857957db2de98be862461b5a542a3ac6188dbe32b" -- 2.17.1 From derek at asterius.io Sun Feb 9 16:05:36 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 11:05:36 -0500 Subject: [oe] [meta-webserver][PATCH] nginx: update to the latest development version (1.17.8) Message-ID: <20200209160536.12357-1-derek@asterius.io> See Changelog: https://nginx.org/en/CHANGES Signed-off-by: Derek Straka --- meta-webserver/recipes-httpd/nginx/nginx_1.17.0.bb | 6 ------ meta-webserver/recipes-httpd/nginx/nginx_1.17.8.bb | 10 ++++++++++ 2 files changed, 10 insertions(+), 6 deletions(-) delete mode 100644 meta-webserver/recipes-httpd/nginx/nginx_1.17.0.bb create mode 100644 meta-webserver/recipes-httpd/nginx/nginx_1.17.8.bb diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.17.0.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.17.0.bb deleted file mode 100644 index 8774a87fff..0000000000 --- a/meta-webserver/recipes-httpd/nginx/nginx_1.17.0.bb +++ /dev/null @@ -1,6 +0,0 @@ -require nginx.inc - -LIC_FILES_CHKSUM = "file://LICENSE;md5=52e384aaac868b755b93ad5535e2d075" - -SRC_URI[md5sum] = "56767fd62302508295b31adc48b99a59" -SRC_URI[sha256sum] = "e21b5d06cd53e86afb94f0b3678e0abb0c0f011433471fa3d895cefa65ae0fab" diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.17.8.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.17.8.bb new file mode 100644 index 0000000000..3d2a5edd26 --- /dev/null +++ b/meta-webserver/recipes-httpd/nginx/nginx_1.17.8.bb @@ -0,0 +1,10 @@ +require nginx.inc + +# 1.16.x branch is the current stable branch, the recommended default +# 1.17.x is the current mainline branches containing all new features +DEFAULT_PREFERENCE = "-1" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=52e384aaac868b755b93ad5535e2d075" + +SRC_URI[md5sum] = "29cd861a13aae69a058cbabaae86177b" +SRC_URI[sha256sum] = "97d23ecf6d5150b30e284b40e8a6f7e3bb5be6b601e373a4d013768d5a25965b" -- 2.17.1 From akuster808 at gmail.com Sun Feb 9 16:17:08 2020 From: akuster808 at gmail.com (Armin Kuster) Date: Sun, 9 Feb 2020 08:17:08 -0800 Subject: [oe] [zeus 00/11] Patch review Message-ID: Here are the next set of changes for meta-oe zeus. Please have commnets back by Tuesday The following changes since commit 81e186f6141a6e8f4ab3185b00b9f1392bb89ca1: adduser: set default shell with /sbin/nologin (2020-01-19 09:05:19 -0800) are available in the Git repository at: git://git.openembedded.org/meta-openembedded-contrib stable/zeus-nut http://cgit.openembedded.org/meta-openembedded-contrib/log/?h=stable/zeus-nut Khem Raj (6): squid: Link with libatomic on riscv grpc: Link with libatomic on clang/x86 grpc: Link with libatomic on powerpc grpc: Link with libatomic on riscv netdata: Add libatomic to link step fluentbit: Fix packaging in multilib env Peter Kjellerstedt (1): gitpkgv.bbclass: Add support for extending the supported tag formats Sumit Garg (1): mariadb: fix library LZ4 lookup Trevor Gamblin (2): python-twisted: add required RDEPENDS for twistd pyhamcrest: add python3 version of recipe Yi Zhao (1): libldb: upgrade 1.5.5 -> 1.5.6 .../recipes-daemons/squid/squid_4.6.bb | 2 ++ .../recipes-devtools/grpc/grpc_1.24.1.bb | 16 ++++++++++ .../{libldb_1.5.5.bb => libldb_1.5.6.bb} | 4 +-- meta-oe/classes/gitpkgv.bbclass | 14 ++++++--- meta-oe/recipes-dbs/mysql/mariadb.inc | 1 + .../mariadb/0001-Fix-library-LZ4-lookup.patch | 30 +++++++++++++++++++ .../fluentbit/fluentbit/cmake_multilib.patch | 18 +++++++++++ .../fluentbit/fluentbit_0.12.19.bb | 1 + .../python/python-twisted.inc | 18 ++++++++++- .../python/python3-pyhamcrest_1.9.0.bb | 10 +++++++ .../recipes-webadmin/netdata/netdata_git.bb | 2 ++ 11 files changed, 109 insertions(+), 7 deletions(-) rename meta-networking/recipes-support/libldb/{libldb_1.5.5.bb => libldb_1.5.6.bb} (95%) create mode 100644 meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch create mode 100644 meta-oe/recipes-extended/fluentbit/fluentbit/cmake_multilib.patch create mode 100644 meta-python/recipes-devtools/python/python3-pyhamcrest_1.9.0.bb -- 2.17.1 From akuster808 at gmail.com Sun Feb 9 16:17:09 2020 From: akuster808 at gmail.com (Armin Kuster) Date: Sun, 9 Feb 2020 08:17:09 -0800 Subject: [oe] [zeus 01/11] libldb: upgrade 1.5.5 -> 1.5.6 In-Reply-To: References: Message-ID: From: Yi Zhao Signed-off-by: Yi Zhao Signed-off-by: Khem Raj (cherry picked from commit 2b3fd534874aee125a6c79c70c93b1aa498fda3f) [Samba's update via ee5aa6911b2e93b89e67ae6167ee7d9a029b9262 required libldb upgrade to 1.5.6 Yocto # 13750] Signed-off-by: Armin Kuster --- .../libldb/{libldb_1.5.5.bb => libldb_1.5.6.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-networking/recipes-support/libldb/{libldb_1.5.5.bb => libldb_1.5.6.bb} (95%) diff --git a/meta-networking/recipes-support/libldb/libldb_1.5.5.bb b/meta-networking/recipes-support/libldb/libldb_1.5.6.bb similarity index 95% rename from meta-networking/recipes-support/libldb/libldb_1.5.5.bb rename to meta-networking/recipes-support/libldb/libldb_1.5.6.bb index b19c964d85..99eb6f9ce8 100644 --- a/meta-networking/recipes-support/libldb/libldb_1.5.5.bb +++ b/meta-networking/recipes-support/libldb/libldb_1.5.6.bb @@ -33,8 +33,8 @@ LIC_FILES_CHKSUM = "file://pyldb.h;endline=24;md5=dfbd238cecad76957f7f860fbe9ada file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \ file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42" -SRC_URI[md5sum] = "339a41ac9efaec680e6d1469dd9aa35b" -SRC_URI[sha256sum] = "199f5861aa863f538ec66d5fa95ecc13254a2030c53daf0e47363fa9ba235c68" +SRC_URI[md5sum] = "fc58ef432c1fcb03fc3bb6cccce08977" +SRC_URI[sha256sum] = "ff82474d0bf109e415a2d50334bde5715f486a53ff4bb8c7f74459dd229e975b" inherit waf-samba distro_features_check REQUIRED_DISTRO_FEATURES = "pam" -- 2.17.1 From akuster808 at gmail.com Sun Feb 9 16:17:10 2020 From: akuster808 at gmail.com (Armin Kuster) Date: Sun, 9 Feb 2020 08:17:10 -0800 Subject: [oe] [zeus 02/11] mariadb: fix library LZ4 lookup In-Reply-To: References: Message-ID: <14acba7937a7bf71dc29e4075ea986e08b97868f.1581264950.git.akuster808@gmail.com> From: Sumit Garg While cross-compiling mariadb package it tries to link lz4 library present in the target sysroot and if not found it tries to link host lz4 library which is incorrect leading to linker errors. So fix that via restricting lz4 library lookup to target sysroot only. Signed-off-by: Sumit Garg Signed-off-by: Armin Kuster --- meta-oe/recipes-dbs/mysql/mariadb.inc | 1 + .../mariadb/0001-Fix-library-LZ4-lookup.patch | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch diff --git a/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-oe/recipes-dbs/mysql/mariadb.inc index e1ae58ae7a..703e172174 100644 --- a/meta-oe/recipes-dbs/mysql/mariadb.inc +++ b/meta-oe/recipes-dbs/mysql/mariadb.inc @@ -18,6 +18,7 @@ SRC_URI = "http://archive.mariadb.org/${BP}/source/${BP}.tar.gz \ file://c11_atomics.patch \ file://clang_version_header_conflict.patch \ file://fix-arm-atomic.patch \ + file://0001-Fix-library-LZ4-lookup.patch \ " SRC_URI[md5sum] = "b3524c0825c3a1c255496daea38304a0" SRC_URI[sha256sum] = "69456ca85bf9d96c6d28b4ade2a9f6787d79a602e27ef941f9ba4e0b55dddedc" diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch new file mode 100644 index 0000000000..574dfd317a --- /dev/null +++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch @@ -0,0 +1,30 @@ +From 1d7612b063eb1fc7bf97bc27b13e1de596748aa1 Mon Sep 17 00:00:00 2001 +From: Sumit Garg +Date: Wed, 8 Jan 2020 04:58:30 +0000 +Subject: [PATCH] Fix library LZ4 lookup. + +Signed-off-by: Sumit Garg +--- + cmake/FindLZ4.cmake | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/cmake/FindLZ4.cmake b/cmake/FindLZ4.cmake +index e97dd63e2b0..2f4694e727c 100644 +--- a/cmake/FindLZ4.cmake ++++ b/cmake/FindLZ4.cmake +@@ -1,5 +1,10 @@ +-find_path(LZ4_INCLUDE_DIR NAMES lz4.h) +-find_library(LZ4_LIBRARY NAMES lz4) ++find_path(LZ4_INCLUDE_DIR ++ NAMES lz4.h ++ NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH) ++ ++find_library(LZ4_LIBRARY ++ NAMES lz4 ++ NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH) + + include(FindPackageHandleStandardArgs) + FIND_PACKAGE_HANDLE_STANDARD_ARGS( +-- +2.17.1 + -- 2.17.1 From akuster808 at gmail.com Sun Feb 9 16:17:11 2020 From: akuster808 at gmail.com (Armin Kuster) Date: Sun, 9 Feb 2020 08:17:11 -0800 Subject: [oe] [zeus 03/11] python-twisted: add required RDEPENDS for twistd In-Reply-To: References: Message-ID: <65996296fa09e62642b2fe5ea76f154cb19d383d.1581264950.git.akuster808@gmail.com> From: Trevor Gamblin python-twisted is currently missing some packages for its /usr/bin/twistd executable to function. Add these to the RDEPENDS list, and also clean up formatting since the list is getting long. Note that a similar patch has already been submitted for master branch, but the python2 version of twisted needs more explicit RDEPENDS than the python3 version submitted to master in order for /usr/bin/twistd to work properly. Signed-off-by: Trevor Gamblin Signed-off-by: Armin Kuster --- .../recipes-devtools/python/python-twisted.inc | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/meta-python/recipes-devtools/python/python-twisted.inc b/meta-python/recipes-devtools/python/python-twisted.inc index d70104dc26..f55bbb0330 100644 --- a/meta-python/recipes-devtools/python/python-twisted.inc +++ b/meta-python/recipes-devtools/python/python-twisted.inc @@ -56,7 +56,23 @@ RDEPENDS_${PN} = "\ ${PN}-zsh \ " -RDEPENDS_${PN}-core = "${PYTHON_PN}-core ${PYTHON_PN}-zopeinterface ${PYTHON_PN}-incremental ${PYTHON_PN}-constantly ${PYTHON_PN}-hyperlink ${PYTHON_PN}-automat" +RDEPENDS_${PN}-core = "${PYTHON_PN}-core \ + ${PYTHON_PN}-zopeinterface \ + ${PYTHON_PN}-incremental \ + ${PYTHON_PN}-constantly \ + ${PYTHON_PN}-hyperlink \ + ${PYTHON_PN}-automat \ + ${PYTHON_PN}-pyserial \ + ${PYTHON_PN}-pyhamcrest \ + ${PYTHON_PN}-debugger \ + ${PYTHON_PN}-unixadmin \ + ${PYTHON_PN}-pkg-resources \ + ${PYTHON_PN}-misc \ + ${PYTHON_PN}-pkgutil \ + ${PYTHON_PN}-plistlib \ + ${PYTHON_PN}-setuptools \ +" + RDEPENDS_${PN}-test = "${PN}" RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols" RDEPENDS_${PN}-mail = "${PN}-core ${PN}-protocols" -- 2.17.1 From akuster808 at gmail.com Sun Feb 9 16:17:12 2020 From: akuster808 at gmail.com (Armin Kuster) Date: Sun, 9 Feb 2020 08:17:12 -0800 Subject: [oe] [zeus 04/11] pyhamcrest: add python3 version of recipe In-Reply-To: References: Message-ID: <12390fd0d6f0ddca04783b2920a5d60fecd78b6a.1581264950.git.akuster808@gmail.com> From: Trevor Gamblin Twisted requires pyhamcrest for /usr/bin/twistd to work, but in zeus there is only a python2 recipe for this package, thus the twistd daemon won't be able to run properly for python3. Signed-off-by: Trevor Gamblin Signed-off-by: Armin Kuster --- .../python/python3-pyhamcrest_1.9.0.bb | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 meta-python/recipes-devtools/python/python3-pyhamcrest_1.9.0.bb diff --git a/meta-python/recipes-devtools/python/python3-pyhamcrest_1.9.0.bb b/meta-python/recipes-devtools/python/python3-pyhamcrest_1.9.0.bb new file mode 100644 index 0000000000..04aa9b47f0 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pyhamcrest_1.9.0.bb @@ -0,0 +1,10 @@ +SUMMARY = "Hamcrest framework for matcher objects" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f6df1318c6071dd1707f5e3b6c11f24f" + +PYPI_PACKAGE = "PyHamcrest" + +SRC_URI[md5sum] = "8b833a3fa30197455df79424f30c8c3f" +SRC_URI[sha256sum] = "8ffaa0a53da57e89de14ced7185ac746227a8894dbd5a3c718bf05ddbd1d56cd" + +inherit pypi setuptools3 -- 2.17.1 From akuster808 at gmail.com Sun Feb 9 16:17:13 2020 From: akuster808 at gmail.com (Armin Kuster) Date: Sun, 9 Feb 2020 08:17:13 -0800 Subject: [oe] [zeus 05/11] gitpkgv.bbclass: Add support for extending the supported tag formats In-Reply-To: References: Message-ID: From: Peter Kjellerstedt Introduce GITPKGV_TAG_REGEXP (which defaults to "v(\d.*)") to support dropping other unwanted parts of the found tags than just a leading "v". Any matching groups in the regexp will be concatenated to yield the final version. Signed-off-by: Peter Kjellerstedt Signed-off-by: Khem Raj (cherry picked from commit b51af6b5b7a41b44d3539f44c10d21624c4cc4a7) Signed-off-by: Armin Kuster --- meta-oe/classes/gitpkgv.bbclass | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/meta-oe/classes/gitpkgv.bbclass b/meta-oe/classes/gitpkgv.bbclass index ab591bd45c..180421ed35 100644 --- a/meta-oe/classes/gitpkgv.bbclass +++ b/meta-oe/classes/gitpkgv.bbclass @@ -40,10 +40,16 @@ GITPKGV = "${@get_git_pkgv(d, False)}" GITPKGVTAG = "${@get_git_pkgv(d, True)}" -def gitpkgv_drop_tag_prefix(version): +# This regexp is used to drop unwanted parts of the found tags. Any matching +# groups will be concatenated to yield the final version. +GITPKGV_TAG_REGEXP ??= "v(\d.*)" + +def gitpkgv_drop_tag_prefix(d, version): import re - if re.match("v\d", version): - return version[1:] + + m = re.match(d.getVar('GITPKGV_TAG_REGEXP'), version) + if m: + return ''.join(group for group in m.groups() if group) else: return version @@ -105,7 +111,7 @@ def get_git_pkgv(d, use_tags): output = bb.fetch2.runfetchcmd( "git --git-dir=%(repodir)s describe %(rev)s --tags --exact-match 2>/dev/null" % vars, d, quiet=True).strip() - ver = gitpkgv_drop_tag_prefix(output) + ver = gitpkgv_drop_tag_prefix(d, output) except Exception: ver = "0.0-%s-g%s" % (commits, vars['rev'][:7]) else: -- 2.17.1 From akuster808 at gmail.com Sun Feb 9 16:17:14 2020 From: akuster808 at gmail.com (Armin Kuster) Date: Sun, 9 Feb 2020 08:17:14 -0800 Subject: [oe] [zeus 06/11] squid: Link with libatomic on riscv In-Reply-To: References: Message-ID: <9abf13774ee370824445f122211aec2a56da5643.1581264950.git.akuster808@gmail.com> From: Khem Raj Signed-off-by: Khem Raj (cherry picked from commit 626209aabb5684316eba0d4b762980924d783c93) Signed-off-by: Armin Kuster --- meta-networking/recipes-daemons/squid/squid_4.6.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-networking/recipes-daemons/squid/squid_4.6.bb b/meta-networking/recipes-daemons/squid/squid_4.6.bb index ca4927dda1..dfd625b214 100644 --- a/meta-networking/recipes-daemons/squid/squid_4.6.bb +++ b/meta-networking/recipes-daemons/squid/squid_4.6.bb @@ -40,6 +40,8 @@ inherit autotools pkgconfig useradd ptest perlnative LDFLAGS_append_mipsarch = " -latomic" LDFLAGS_append_powerpc = " -latomic" +LDFLAGS_append_riscv64 = " -latomic" +LDFLAGS_append_riscv32 = " -latomic" USERADD_PACKAGES = "${PN}" USERADD_PARAM_${PN} = "--system --no-create-home --home-dir /var/run/squid --shell /bin/false --user-group squid" -- 2.17.1 From akuster808 at gmail.com Sun Feb 9 16:17:15 2020 From: akuster808 at gmail.com (Armin Kuster) Date: Sun, 9 Feb 2020 08:17:15 -0800 Subject: [oe] [zeus 07/11] grpc: Link with libatomic on clang/x86 In-Reply-To: References: Message-ID: <189ba6b49974934d0aa7b1d77996570b7a65b1a9.1581264950.git.akuster808@gmail.com> From: Khem Raj clang does delegate the atomic calls to libatomic on x86 where as gcc tries to use intrinsics, its debatable who is right, but it does seem that clang is safe in case pointer is unaligned Signed-off-by: Khem Raj (cherry picked from commit f7a7a2aafe87437aefca21612dc156fde645ac89) Signed-off-by: Armin Kuster --- meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb b/meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb index 8d54dbeff8..c11b55669a 100644 --- a/meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb +++ b/meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb @@ -44,6 +44,10 @@ 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_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" -- 2.17.1 From akuster808 at gmail.com Sun Feb 9 16:17:16 2020 From: akuster808 at gmail.com (Armin Kuster) Date: Sun, 9 Feb 2020 08:17:16 -0800 Subject: [oe] [zeus 08/11] grpc: Link with libatomic on powerpc In-Reply-To: References: Message-ID: From: Khem Raj Signed-off-by: Khem Raj (cherry picked from commit 2b8c1fa1cbfa21fc0044a172fffa5986a0fd4ad0) Signed-off-by: Armin Kuster --- meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb b/meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb index c11b55669a..34b4e317be 100644 --- a/meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb +++ b/meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb @@ -44,6 +44,10 @@ 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_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 } -- 2.17.1 From akuster808 at gmail.com Sun Feb 9 16:17:17 2020 From: akuster808 at gmail.com (Armin Kuster) Date: Sun, 9 Feb 2020 08:17:17 -0800 Subject: [oe] [zeus 09/11] grpc: Link with libatomic on riscv In-Reply-To: References: Message-ID: <40d92260341d9c46d33f6e149298138759b0c14b.1581264950.git.akuster808@gmail.com> From: Khem Raj Signed-off-by: Khem Raj (cherry picked from commit e82f1802a60d451f978cdef0f2ff69feb1f12039) Signed-off-by: Armin Kuster --- meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb b/meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb index 34b4e317be..0b5e5c3361 100644 --- a/meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb +++ b/meta-networking/recipes-devtools/grpc/grpc_1.24.1.bb @@ -48,6 +48,14 @@ 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 } -- 2.17.1 From akuster808 at gmail.com Sun Feb 9 16:17:18 2020 From: akuster808 at gmail.com (Armin Kuster) Date: Sun, 9 Feb 2020 08:17:18 -0800 Subject: [oe] [zeus 10/11] netdata: Add libatomic to link step In-Reply-To: References: Message-ID: <9d6b30b3da3dcbfb573e3ce1f2a94720d014d997.1581264950.git.akuster808@gmail.com> From: Khem Raj Signed-off-by: Khem Raj (cherry picked from commit ae4adf2849eb23c7ea1dd53fe5d0c06c840a18a1) Signed-off-by: Armin Kuster --- meta-webserver/recipes-webadmin/netdata/netdata_git.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-webserver/recipes-webadmin/netdata/netdata_git.bb b/meta-webserver/recipes-webadmin/netdata/netdata_git.bb index d179e84e33..d6a5ce0662 100644 --- a/meta-webserver/recipes-webadmin/netdata/netdata_git.bb +++ b/meta-webserver/recipes-webadmin/netdata/netdata_git.bb @@ -26,6 +26,8 @@ DEPENDS += "zlib util-linux" inherit pkgconfig autotools-brokensep useradd systemd LIBS_toolchain-clang_x86 = "-latomic" +LIBS_riscv64 = "-latomic" +LIBS_riscv32 = "-latomic" export LIBS #systemd -- 2.17.1 From akuster808 at gmail.com Sun Feb 9 16:17:19 2020 From: akuster808 at gmail.com (Armin Kuster) Date: Sun, 9 Feb 2020 08:17:19 -0800 Subject: [oe] [zeus 11/11] fluentbit: Fix packaging in multilib env In-Reply-To: References: Message-ID: From: Khem Raj Fixes ERROR: fluentbit-0.12.19-r0 do_package: QA Issue: fluentbit: Files/directories were installed but not shipped in any package: /usr/lib/libfluent-bit.so Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install. Signed-off-by: Khem Raj (cherry picked from commit 99fe1dec83456100e0bc1c02581defa7aaf04a16) Signed-off-by: Armin Kuster --- .../fluentbit/fluentbit/cmake_multilib.patch | 18 ++++++++++++++++++ .../fluentbit/fluentbit_0.12.19.bb | 1 + 2 files changed, 19 insertions(+) create mode 100644 meta-oe/recipes-extended/fluentbit/fluentbit/cmake_multilib.patch diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/cmake_multilib.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/cmake_multilib.patch new file mode 100644 index 0000000000..8fe9f3e703 --- /dev/null +++ b/meta-oe/recipes-extended/fluentbit/fluentbit/cmake_multilib.patch @@ -0,0 +1,18 @@ +Use CMAKE_INSTALL_LIBDIR instead of hardcoding lib path + +Helps build on platforms where libpaths are not lib/ but say lib64/ + +Upstream-Status: Pending +Signed-off-by: Khem Raj + +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -182,7 +182,7 @@ if(NOT FLB_WITHOUT_SHARED_LIB) + PROPERTIES OUTPUT_NAME fluent-bit) + + # Library install routines +- install(TARGETS fluent-bit-shared LIBRARY DESTINATION lib) ++ install(TARGETS fluent-bit-shared LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() + + # Static Library diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit_0.12.19.bb b/meta-oe/recipes-extended/fluentbit/fluentbit_0.12.19.bb index e50aa71a9f..27b910b8be 100644 --- a/meta-oe/recipes-extended/fluentbit/fluentbit_0.12.19.bb +++ b/meta-oe/recipes-extended/fluentbit/fluentbit_0.12.19.bb @@ -4,6 +4,7 @@ BUGTRACKER = "https://github.com/fluent/fluent-bit/issues" SRC_URI = "http://fluentbit.io/releases/0.12/fluent-bit-${PV}.tar.gz \ file://jemalloc.patch \ + file://cmake_multilib.patch \ " SRC_URI[md5sum] = "7c8708312ac9122faacf9e2a4751eb34" SRC_URI[sha256sum] = "23a81087edf0e2c6f2d49411c6a82308afc5224f67bbaa45729c057af62e9241" -- 2.17.1 From derek at asterius.io Sun Feb 9 16:20:58 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 11:20:58 -0500 Subject: [oe] [meta-python][PATCH 1/2] python3-aiohttp: update to version 3.6.2 Message-ID: <20200209162059.18011-1-derek@asterius.io> Consolidate inc & bb file into a single python3 version Signed-off-by: Derek Straka --- .../recipes-devtools/python/python3-aiohttp_3.5.4.bb | 2 -- .../python/{python-aiohttp.inc => python3-aiohttp_3.6.2.bb} | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python3-aiohttp_3.5.4.bb rename meta-python/recipes-devtools/python/{python-aiohttp.inc => python3-aiohttp_3.6.2.bb} (76%) diff --git a/meta-python/recipes-devtools/python/python3-aiohttp_3.5.4.bb b/meta-python/recipes-devtools/python/python3-aiohttp_3.5.4.bb deleted file mode 100644 index cd0303f05b..0000000000 --- a/meta-python/recipes-devtools/python/python3-aiohttp_3.5.4.bb +++ /dev/null @@ -1,2 +0,0 @@ -inherit setuptools3 -require python-aiohttp.inc diff --git a/meta-python/recipes-devtools/python/python-aiohttp.inc b/meta-python/recipes-devtools/python/python3-aiohttp_3.6.2.bb similarity index 76% rename from meta-python/recipes-devtools/python/python-aiohttp.inc rename to meta-python/recipes-devtools/python/python3-aiohttp_3.6.2.bb index e711ad71da..979acc9cff 100644 --- a/meta-python/recipes-devtools/python/python-aiohttp.inc +++ b/meta-python/recipes-devtools/python/python3-aiohttp_3.6.2.bb @@ -4,11 +4,11 @@ HOMEPAGE = "https://github.com/aio-libs/aiohttp" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cf056e8e7a0a5477451af18b7b5aa98c" -SRC_URI[md5sum] = "85fe5c9037256c58d4678148bd91b3f3" -SRC_URI[sha256sum] = "9c4c83f4fa1938377da32bc2d59379025ceeee8e24b89f72fcbccd8ca22dc9bf" +SRC_URI[md5sum] = "ca40144c199a09fc1a141960cf6295f0" +SRC_URI[sha256sum] = "259ab809ff0727d0e834ac5e8a283dc5e3e0ecc30c4d80b3cd17a4139ce1f326" PYPI_PACKAGE = "aiohttp" -inherit pypi +inherit setuptools3 pypi RDEPENDS_${PN} = "\ ${PYTHON_PN}-async-timeout \ ${PYTHON_PN}-chardet \ -- 2.17.1 From derek at asterius.io Sun Feb 9 16:20:59 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 11:20:59 -0500 Subject: [oe] [meta-python][PATCH 2/2] python3-aiohttp: alphabetize RDEPENDS for readability In-Reply-To: <20200209162059.18011-1-derek@asterius.io> References: <20200209162059.18011-1-derek@asterius.io> Message-ID: <20200209162059.18011-2-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python3-aiohttp_3.6.2.bb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/meta-python/recipes-devtools/python/python3-aiohttp_3.6.2.bb b/meta-python/recipes-devtools/python/python3-aiohttp_3.6.2.bb index 979acc9cff..6a466acb10 100644 --- a/meta-python/recipes-devtools/python/python3-aiohttp_3.6.2.bb +++ b/meta-python/recipes-devtools/python/python3-aiohttp_3.6.2.bb @@ -11,11 +11,11 @@ PYPI_PACKAGE = "aiohttp" inherit setuptools3 pypi RDEPENDS_${PN} = "\ ${PYTHON_PN}-async-timeout \ + ${PYTHON_PN}-attrs ${PYTHON_PN}-chardet \ ${PYTHON_PN}-idna-ssl \ + ${PYTHON_PN}-misc ${PYTHON_PN}-multidict \ - ${PYTHON_PN}-yarl \ ${PYTHON_PN}-typing \ - ${PYTHON_PN}-misc \ - ${PYTHON_PN}-attrs \ + ${PYTHON_PN}-yarl \ " -- 2.17.1 From derek at asterius.io Sun Feb 9 16:32:59 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 11:32:59 -0500 Subject: [oe] [meta-python][PATCH][v2 1/2] python3-aiohttp: update to version 3.6.2 Message-ID: <20200209163300.19063-1-derek@asterius.io> Consolidate inc & bb file into a single python3 version Signed-off-by: Derek Straka --- .../recipes-devtools/python/python3-aiohttp_3.5.4.bb | 2 -- .../python/{python-aiohttp.inc => python3-aiohttp_3.6.2.bb} | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python3-aiohttp_3.5.4.bb rename meta-python/recipes-devtools/python/{python-aiohttp.inc => python3-aiohttp_3.6.2.bb} (76%) diff --git a/meta-python/recipes-devtools/python/python3-aiohttp_3.5.4.bb b/meta-python/recipes-devtools/python/python3-aiohttp_3.5.4.bb deleted file mode 100644 index cd0303f05b..0000000000 --- a/meta-python/recipes-devtools/python/python3-aiohttp_3.5.4.bb +++ /dev/null @@ -1,2 +0,0 @@ -inherit setuptools3 -require python-aiohttp.inc diff --git a/meta-python/recipes-devtools/python/python-aiohttp.inc b/meta-python/recipes-devtools/python/python3-aiohttp_3.6.2.bb similarity index 76% rename from meta-python/recipes-devtools/python/python-aiohttp.inc rename to meta-python/recipes-devtools/python/python3-aiohttp_3.6.2.bb index e711ad71da..979acc9cff 100644 --- a/meta-python/recipes-devtools/python/python-aiohttp.inc +++ b/meta-python/recipes-devtools/python/python3-aiohttp_3.6.2.bb @@ -4,11 +4,11 @@ HOMEPAGE = "https://github.com/aio-libs/aiohttp" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cf056e8e7a0a5477451af18b7b5aa98c" -SRC_URI[md5sum] = "85fe5c9037256c58d4678148bd91b3f3" -SRC_URI[sha256sum] = "9c4c83f4fa1938377da32bc2d59379025ceeee8e24b89f72fcbccd8ca22dc9bf" +SRC_URI[md5sum] = "ca40144c199a09fc1a141960cf6295f0" +SRC_URI[sha256sum] = "259ab809ff0727d0e834ac5e8a283dc5e3e0ecc30c4d80b3cd17a4139ce1f326" PYPI_PACKAGE = "aiohttp" -inherit pypi +inherit setuptools3 pypi RDEPENDS_${PN} = "\ ${PYTHON_PN}-async-timeout \ ${PYTHON_PN}-chardet \ -- 2.17.1 From derek at asterius.io Sun Feb 9 16:33:00 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 11:33:00 -0500 Subject: [oe] [meta-python][PATCH][v2 2/2] python3-aiohttp: alphabetize RDEPENDS for readability In-Reply-To: <20200209163300.19063-1-derek@asterius.io> References: <20200209163300.19063-1-derek@asterius.io> Message-ID: <20200209163300.19063-2-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python3-aiohttp_3.6.2.bb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/meta-python/recipes-devtools/python/python3-aiohttp_3.6.2.bb b/meta-python/recipes-devtools/python/python3-aiohttp_3.6.2.bb index 979acc9cff..121447cdb7 100644 --- a/meta-python/recipes-devtools/python/python3-aiohttp_3.6.2.bb +++ b/meta-python/recipes-devtools/python/python3-aiohttp_3.6.2.bb @@ -11,11 +11,11 @@ PYPI_PACKAGE = "aiohttp" inherit setuptools3 pypi RDEPENDS_${PN} = "\ ${PYTHON_PN}-async-timeout \ + ${PYTHON_PN}-attrs \ ${PYTHON_PN}-chardet \ ${PYTHON_PN}-idna-ssl \ + ${PYTHON_PN}-misc \ ${PYTHON_PN}-multidict \ - ${PYTHON_PN}-yarl \ ${PYTHON_PN}-typing \ - ${PYTHON_PN}-misc \ - ${PYTHON_PN}-attrs \ + ${PYTHON_PN}-yarl \ " -- 2.17.1 From derek at asterius.io Sun Feb 9 16:38:59 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 11:38:59 -0500 Subject: [oe] [meta-python][PATCH] python3-alembic: update to version 1.4.0 Message-ID: <20200209163859.24667-1-derek@asterius.io> Update license checksum for copyright change to 2020 Verified license remains MIT Consolidated inc & bb file for python3 only recipe Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-alembic.inc | 15 --------------- .../python/python3-alembic_1.3.2.bb | 2 -- .../python/python3-alembic_1.4.0.bb | 17 +++++++++++++++++ 3 files changed, 17 insertions(+), 17 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-alembic.inc delete mode 100644 meta-python/recipes-devtools/python/python3-alembic_1.3.2.bb create mode 100644 meta-python/recipes-devtools/python/python3-alembic_1.4.0.bb diff --git a/meta-python/recipes-devtools/python/python-alembic.inc b/meta-python/recipes-devtools/python/python-alembic.inc deleted file mode 100644 index c94c142ddb..0000000000 --- a/meta-python/recipes-devtools/python/python-alembic.inc +++ /dev/null @@ -1,15 +0,0 @@ -DESCRIPTION = "A database migration tool for SQLAlchemy" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=28aaf14a6592d14dbfb2f4abd597aa27" - -SRC_URI[md5sum] = "3d7584a8fb0203ec82b90baa726d2bd9" -SRC_URI[sha256sum] = "3b0cb1948833e062f4048992fbc97ecfaaaac24aaa0d83a1202a99fb58af8c6d" - -PYPI_PACKAGE = "alembic" - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-dateutil \ - ${PYTHON_PN}-editor \ - ${PYTHON_PN}-mako \ - ${PYTHON_PN}-sqlalchemy \ -" diff --git a/meta-python/recipes-devtools/python/python3-alembic_1.3.2.bb b/meta-python/recipes-devtools/python/python3-alembic_1.3.2.bb deleted file mode 100644 index e248fe7ce9..0000000000 --- a/meta-python/recipes-devtools/python/python3-alembic_1.3.2.bb +++ /dev/null @@ -1,2 +0,0 @@ -inherit pypi setuptools3 -require python-alembic.inc diff --git a/meta-python/recipes-devtools/python/python3-alembic_1.4.0.bb b/meta-python/recipes-devtools/python/python3-alembic_1.4.0.bb new file mode 100644 index 0000000000..8247166da6 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-alembic_1.4.0.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "A database migration tool for SQLAlchemy" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=bd64aba1b968c2bfbc2b525a181ce85c" + +inherit pypi setuptools3 + +SRC_URI[md5sum] = "758b28361557e45c79c454d662131a83" +SRC_URI[sha256sum] = "2df2519a5b002f881517693b95626905a39c5faf4b5a1f94de4f1441095d1d26" + +PYPI_PACKAGE = "alembic" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-dateutil \ + ${PYTHON_PN}-editor \ + ${PYTHON_PN}-mako \ + ${PYTHON_PN}-sqlalchemy \ +" -- 2.17.1 From raj.khem at gmail.com Sun Feb 9 16:56:20 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sun, 9 Feb 2020 08:56:20 -0800 Subject: [oe] [meta-oe][PATCH] abseil-cpp: add recipe for git version In-Reply-To: References: <20200209034641.19378-1-okaya@kernel.org> Message-ID: It also fails to build on musl https://errors.yoctoproject.org/Errors/Details/390527/ On Sat, Feb 8, 2020 at 11:53 PM Khem Raj wrote: > > On Sat, Feb 8, 2020 at 7:56 PM Sinan Kaya wrote: > > > > The repository contains the Abseil C++ library code. Abseil is an > > open-source collection of C++ code (compliant to C++11) designed to > > augment the C++ standard library. > > > > https://github.com/abseil/abseil-cpp > > > > Signed-off-by: Changyi Li > > Signed-off-by: Sinan Kaya > > --- > > ...e-maes-option-from-cross-compilation.patch | 53 +++++++++++++++++++ > > .../abseil-cpp/abseil-cpp_git.bb | 27 ++++++++++ > > 2 files changed, 80 insertions(+) > > create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch > > create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb > > > > diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch > > new file mode 100644 > > index 0000000000..4c41cd8902 > > --- /dev/null > > +++ b/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 > > +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-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb > > new file mode 100644 > > index 0000000000..c7077c129f > > --- /dev/null > > +++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb > > @@ -0,0 +1,27 @@ > > +SUMMARY = "Abseil is a cpp library like STL" > > +DESCRIPTION = "It's got containers, algorithms, useful stuff!" > > maybe we can be more specific about it from > https://github.com/abseil/abseil-cpp/blob/master/README.md > > > +HOMEPAGE = "" > > perhaps https://abseil.io/ instead of leaving it empty is better. > > > +SECTION = "libs" > > +LICENSE = "Apache-2" > > The current value is not wrong but Apache-2.0 would be better to match SPDX > > > +LIC_FILES_CHKSUM = "file://LICENSE;md5=df52c6edb7adc22e533b2bacc3bd3915" > > + > > +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 \ > > + " > > + > > +S = "${WORKDIR}/git" > > + > > +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'aarch64', ' -march=armv8-a+crypto', '', d)}" > > +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'x64', ' -maes -msse4.1', '', d)}" > > + > > +CXXFLAGS_append_class-nativesdk = " -Wl,--no-as-needed -fPIC" > > +CXXFLAGS_append_class-native = " -Wl,--no-as-needed -fPIC" > > perhaps use ASNEEDED_ = "" > > > +CXXFLAGS_append_class-target = " -fPIC" > > + > > +inherit cmake > > + > > +BBCLASSEXTEND = "native nativesdk" > > +ALLOW_EMPTY_${PN} = "1" > > why do we need this ? From okaya at kernel.org Sun Feb 9 17:45:50 2020 From: okaya at kernel.org (Sinan Kaya) Date: Sun, 9 Feb 2020 12:45:50 -0500 Subject: [oe] [meta-oe][PATCH] abseil-cpp: add recipe for git version In-Reply-To: References: <20200209034641.19378-1-okaya@kernel.org> Message-ID: On 2/9/2020 11:56 AM, Khem Raj wrote: > It also fails to build on musl > https://errors.yoctoproject.org/Errors/Details/390527/ > > On Sat, Feb 8, 2020 at 11:53 PM Khem Raj wrote: This library requires "-march=armv8-a+crypto" -fvisibility-inlines-hidden Yet, it is getting compiled with: -march=armv8-a+crc What's the bet way to handle this From raj.khem at gmail.com Sun Feb 9 18:40:58 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sun, 9 Feb 2020 10:40:58 -0800 Subject: [oe] [meta-oe][PATCH] abseil-cpp: add recipe for git version In-Reply-To: References: <20200209034641.19378-1-okaya@kernel.org> Message-ID: On Sun, Feb 9, 2020 at 9:45 AM Sinan Kaya wrote: > > On 2/9/2020 11:56 AM, Khem Raj wrote: > > It also fails to build on musl > > https://errors.yoctoproject.org/Errors/Details/390527/ > > > > On Sat, Feb 8, 2020 at 11:53 PM Khem Raj wrote: > > > This library requires "-march=armv8-a+crypto" > > -fvisibility-inlines-hidden > > Yet, it is getting compiled with: -march=armv8-a+crc > This means the recipe should be checking for crypto being present in TUNE_FEATURES and be marked incompatible if this is not available. mark it compatible only on architectures where it works which it seems are only arm/x86, and on aarch64 particularly check for CPU feature it requires something on the lines below python () { arch = d.getVar("TARGET_ARCH") if arch == "aarch64": tunes = d.getVar("TUNE_FEATURES") if not tunes: 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)) } > What's the bet way to handle this From raj.khem at gmail.com Sun Feb 9 18:47:06 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sun, 9 Feb 2020 10:47:06 -0800 Subject: [oe] [meta-oe][PATCH] tigervnc: Do not depend on chkconfig Message-ID: <20200209184706.3574596-1-raj.khem@gmail.com> This recipe is gone from core Signed-off-by: Khem Raj --- meta-oe/recipes-graphics/tigervnc/tigervnc_1.10.1.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-oe/recipes-graphics/tigervnc/tigervnc_1.10.1.bb b/meta-oe/recipes-graphics/tigervnc/tigervnc_1.10.1.bb index 16937792eb..f97c2b2d6c 100644 --- a/meta-oe/recipes-graphics/tigervnc/tigervnc_1.10.1.bb +++ b/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" -- 2.25.0 From derek at asterius.io Mon Feb 10 00:08:28 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 19:08:28 -0500 Subject: [oe] [meta-python][PATCH] python3-aiofiles: consolidate inc and bb files into a single bb file Message-ID: <20200210000828.3756-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../python/python-aiofiles.inc | 14 -------------- .../python/python3-aiofiles_0.4.0.bb | 18 ++++++++++++++++-- 2 files changed, 16 insertions(+), 16 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-aiofiles.inc diff --git a/meta-python/recipes-devtools/python/python-aiofiles.inc b/meta-python/recipes-devtools/python/python-aiofiles.inc deleted file mode 100644 index 3ecb21c86d..0000000000 --- a/meta-python/recipes-devtools/python/python-aiofiles.inc +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "File support for asyncio" -DESCRIPTION = "Asynchronous local file IO library for asyncio and Python" -HOMEPAGE = "https://github.com/aio-libs/aiohttp" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314" - -SRC_URI[md5sum] = "cb33cf96c371fbd56fc27ab0bd81bd61" -SRC_URI[sha256sum] = "021ea0ba314a86027c166ecc4b4c07f2d40fc0f4b3a950d1868a0f2571c2bbee" - -PYPI_PACKAGE = "aiofiles" -inherit pypi -RDEPENDS_${PN} = "\ - ${PYTHON_PN}-asyncio \ -" diff --git a/meta-python/recipes-devtools/python/python3-aiofiles_0.4.0.bb b/meta-python/recipes-devtools/python/python3-aiofiles_0.4.0.bb index b4d188b2ed..b21cade522 100644 --- a/meta-python/recipes-devtools/python/python3-aiofiles_0.4.0.bb +++ b/meta-python/recipes-devtools/python/python3-aiofiles_0.4.0.bb @@ -1,2 +1,16 @@ -inherit setuptools3 -require python-aiofiles.inc +SUMMARY = "File support for asyncio" +DESCRIPTION = "Asynchronous local file IO library for asyncio and Python" +HOMEPAGE = "https://github.com/aio-libs/aiohttp" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314" + +SRC_URI[md5sum] = "cb33cf96c371fbd56fc27ab0bd81bd61" +SRC_URI[sha256sum] = "021ea0ba314a86027c166ecc4b4c07f2d40fc0f4b3a950d1868a0f2571c2bbee" + +PYPI_PACKAGE = "aiofiles" + +inherit pypi setuptools3 + +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-asyncio \ +" -- 2.17.1 From derek at asterius.io Mon Feb 10 00:12:36 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 19:12:36 -0500 Subject: [oe] [meta-python][PATCH] python3-anyjson: consolidate inc and bb files into a single bb file Message-ID: <20200210001236.5421-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-anyjson.inc | 13 ------------- .../python/python3-anyjson_0.3.3.bb | 15 +++++++++++++-- 2 files changed, 13 insertions(+), 15 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-anyjson.inc diff --git a/meta-python/recipes-devtools/python/python-anyjson.inc b/meta-python/recipes-devtools/python/python-anyjson.inc deleted file mode 100644 index a0d20ff4d0..0000000000 --- a/meta-python/recipes-devtools/python/python-anyjson.inc +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "Wraps the best available JSON implementation available in a common interface" -DESCRIPTION = "Anyjson loads whichever is the fastest JSON module installed and \ -provides a uniform API regardless of which JSON implementation is used." -HOMEPAGE = "https://bitbucket.org/runeh/anyjson" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=989aa97e73c912a83a3c873fa11deb08" - -inherit pypi - -SRC_URI[md5sum] = "2ea28d6ec311aeeebaf993cb3008b27c" -SRC_URI[sha256sum] = "37812d863c9ad3e35c0734c42e0bf0320ce8c3bed82cd20ad54cb34d158157ba" - -RDEPENDS_${PN} += "${PYTHON_PN}-simplejson" diff --git a/meta-python/recipes-devtools/python/python3-anyjson_0.3.3.bb b/meta-python/recipes-devtools/python/python3-anyjson_0.3.3.bb index 199e225b23..91c66724f5 100644 --- a/meta-python/recipes-devtools/python/python3-anyjson_0.3.3.bb +++ b/meta-python/recipes-devtools/python/python3-anyjson_0.3.3.bb @@ -1,2 +1,13 @@ -inherit setuptools3 -require python-anyjson.inc +SUMMARY = "Wraps the best available JSON implementation available in a common interface" +DESCRIPTION = "Anyjson loads whichever is the fastest JSON module installed and \ +provides a uniform API regardless of which JSON implementation is used." +HOMEPAGE = "https://bitbucket.org/runeh/anyjson" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=989aa97e73c912a83a3c873fa11deb08" + +inherit pypi setuptools3 + +SRC_URI[md5sum] = "2ea28d6ec311aeeebaf993cb3008b27c" +SRC_URI[sha256sum] = "37812d863c9ad3e35c0734c42e0bf0320ce8c3bed82cd20ad54cb34d158157ba" + +RDEPENDS_${PN} += "${PYTHON_PN}-simplejson" -- 2.17.1 From derek at asterius.io Mon Feb 10 00:17:29 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 19:17:29 -0500 Subject: [oe] [meta-python][PATCH] python3-appdirs: consolidate inc and bb files into a single bb file Message-ID: <20200210001729.6192-1-derek@asterius.io> Signed-off-by: Derek Straka --- meta-python/recipes-devtools/python/python-appdirs.inc | 8 -------- .../recipes-devtools/python/python3-appdirs_1.4.3.bb | 10 ++++++++-- 2 files changed, 8 insertions(+), 10 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-appdirs.inc diff --git a/meta-python/recipes-devtools/python/python-appdirs.inc b/meta-python/recipes-devtools/python/python-appdirs.inc deleted file mode 100644 index c4826723e8..0000000000 --- a/meta-python/recipes-devtools/python/python-appdirs.inc +++ /dev/null @@ -1,8 +0,0 @@ -SUMMARY = "A small Python module for determining appropriate + platform-specific dirs, e.g. a user data dir." -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=31625363c45eb0c67c630a2f73e438e4" - -SRC_URI[md5sum] = "44c679904082a2133f5566c8a0d3ab42" -SRC_URI[sha256sum] = "9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92" - -inherit pypi diff --git a/meta-python/recipes-devtools/python/python3-appdirs_1.4.3.bb b/meta-python/recipes-devtools/python/python3-appdirs_1.4.3.bb index d24e1d8b6a..6c01580724 100644 --- a/meta-python/recipes-devtools/python/python3-appdirs_1.4.3.bb +++ b/meta-python/recipes-devtools/python/python3-appdirs_1.4.3.bb @@ -1,2 +1,8 @@ -inherit setuptools3 -require python-appdirs.inc +SUMMARY = "A small Python module for determining appropriate + platform-specific dirs, e.g. a user data dir." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=31625363c45eb0c67c630a2f73e438e4" + +SRC_URI[md5sum] = "44c679904082a2133f5566c8a0d3ab42" +SRC_URI[sha256sum] = "9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92" + +inherit pypi setuptools3 -- 2.17.1 From derek at asterius.io Mon Feb 10 00:21:54 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 19:21:54 -0500 Subject: [oe] [meta-python][PATCH] python3-asn1crypto: consolidate inc and bb files into a single bb file Message-ID: <20200210002154.7090-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../python/python-asn1crypto.inc | 23 ------------------- .../python/python3-asn1crypto_1.3.0.bb | 22 ++++++++++++++++-- 2 files changed, 20 insertions(+), 25 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-asn1crypto.inc diff --git a/meta-python/recipes-devtools/python/python-asn1crypto.inc b/meta-python/recipes-devtools/python/python-asn1crypto.inc deleted file mode 100644 index de6e1a55bb..0000000000 --- a/meta-python/recipes-devtools/python/python-asn1crypto.inc +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION = "A fast, pure Python library for parsing and serializing ASN.1 structures" -HOMEPAGE = "https://github.com/wbond/asn1crypto" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=7439e38f5e04ff62fae436184786b7ca" - -PYPI_PACKAGE = "asn1crypto" - -SRC_URI[md5sum] = "daad112940181917e3ff169b47b9bd9a" -SRC_URI[sha256sum] = "5a215cb8dc12f892244e3a113fe05397ee23c5c4ca7a69cd6e69811755efc42d" - -inherit pypi - -RDEPENDS_${PN}_class-target += " \ - ${PYTHON_PN}-codecs \ - ${PYTHON_PN}-crypt \ - ${PYTHON_PN}-ctypes \ - ${PYTHON_PN}-datetime \ - ${PYTHON_PN}-io \ - ${PYTHON_PN}-netclient \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python3-asn1crypto_1.3.0.bb b/meta-python/recipes-devtools/python/python3-asn1crypto_1.3.0.bb index cfbe57520c..1b03c666a4 100644 --- a/meta-python/recipes-devtools/python/python3-asn1crypto_1.3.0.bb +++ b/meta-python/recipes-devtools/python/python3-asn1crypto_1.3.0.bb @@ -1,6 +1,24 @@ -inherit setuptools3 -require python-asn1crypto.inc +DESCRIPTION = "A fast, pure Python library for parsing and serializing ASN.1 structures" +HOMEPAGE = "https://github.com/wbond/asn1crypto" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=7439e38f5e04ff62fae436184786b7ca" + +PYPI_PACKAGE = "asn1crypto" + +SRC_URI[md5sum] = "daad112940181917e3ff169b47b9bd9a" +SRC_URI[sha256sum] = "5a215cb8dc12f892244e3a113fe05397ee23c5c4ca7a69cd6e69811755efc42d" + +inherit pypi setuptools3 RDEPENDS_${PN}_class-target += " \ + ${PYTHON_PN}-codecs \ + ${PYTHON_PN}-crypt \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-netclient \ ${PYTHON_PN}-shell \ " + +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From derek at asterius.io Mon Feb 10 00:27:50 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 19:27:50 -0500 Subject: [oe] [meta-python][PATCH] python3-astroid: consolidate inc and bb files into a single bb file Message-ID: <20200210002750.10772-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../python/python-astroid.inc | 33 ----------------- .../python/python3-astroid_2.3.3.bb | 35 +++++++++++++++++-- 2 files changed, 33 insertions(+), 35 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-astroid.inc diff --git a/meta-python/recipes-devtools/python/python-astroid.inc b/meta-python/recipes-devtools/python/python-astroid.inc deleted file mode 100644 index e9a68789e0..0000000000 --- a/meta-python/recipes-devtools/python/python-astroid.inc +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "An abstract syntax tree for Python with inference support." -HOMEPAGE = "https://pypi.python.org/pypi/astroid" -SECTION = "devel/python" -LICENSE = "LGPL-2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -SRC_URI[md5sum] = "5f3d73d82d1753b59bb49a6bc6046dee" -SRC_URI[sha256sum] = "71ea07f44df9568a75d0f354c49143a4575d90645e9fead6dfb52c26a85ed13a" - -inherit pypi - -DEPENDS += "${PYTHON_PN}-pytest-runner-native" - -PACKAGES =+ "${PN}-tests" - -FILES_${PN}-tests += " \ - ${PYTHON_SITEPACKAGES_DIR}/astroid/test* \ - ${PYTHON_SITEPACKAGES_DIR}/astroid/__pycache__/test* \ -" - -RDEPENDS_${PN}_class-target += "\ - ${PYTHON_PN}-distutils \ - ${PYTHON_PN}-lazy-object-proxy \ - ${PYTHON_PN}-logging \ - ${PYTHON_PN}-six \ - ${PYTHON_PN}-wrapt \ - ${PYTHON_PN}-setuptools \ -" - -RDEPENDS_${PN}-tests_class-target += "\ - ${PYTHON_PN}-unittest \ - ${PYTHON_PN}-xml \ -" diff --git a/meta-python/recipes-devtools/python/python3-astroid_2.3.3.bb b/meta-python/recipes-devtools/python/python3-astroid_2.3.3.bb index 6e32c288f2..dc1ce0eb4c 100644 --- a/meta-python/recipes-devtools/python/python3-astroid_2.3.3.bb +++ b/meta-python/recipes-devtools/python/python3-astroid_2.3.3.bb @@ -1,2 +1,33 @@ -inherit setuptools3 -require python-astroid.inc +SUMMARY = "An abstract syntax tree for Python with inference support." +HOMEPAGE = "https://pypi.python.org/pypi/astroid" +SECTION = "devel/python" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +SRC_URI[md5sum] = "5f3d73d82d1753b59bb49a6bc6046dee" +SRC_URI[sha256sum] = "71ea07f44df9568a75d0f354c49143a4575d90645e9fead6dfb52c26a85ed13a" + +inherit pypi setuptools3 + +DEPENDS += "${PYTHON_PN}-pytest-runner-native" + +PACKAGES =+ "${PN}-tests" + +FILES_${PN}-tests += " \ + ${PYTHON_SITEPACKAGES_DIR}/astroid/test* \ + ${PYTHON_SITEPACKAGES_DIR}/astroid/__pycache__/test* \ +" + +RDEPENDS_${PN}_class-target += "\ + ${PYTHON_PN}-distutils \ + ${PYTHON_PN}-lazy-object-proxy \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-wrapt \ + ${PYTHON_PN}-setuptools \ +" + +RDEPENDS_${PN}-tests_class-target += "\ + ${PYTHON_PN}-unittest \ + ${PYTHON_PN}-xml \ +" -- 2.17.1 From derek at asterius.io Mon Feb 10 00:31:01 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 19:31:01 -0500 Subject: [oe] [meta-python][PATCH] python3-async-timeout: consolidate inc and bb files into a single bb file Message-ID: <20200210003101.11087-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../python/python-async-timeout.inc | 19 ----------------- .../python/python3-async-timeout_3.0.1.bb | 21 +++++++++++++++++-- 2 files changed, 19 insertions(+), 21 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-async-timeout.inc diff --git a/meta-python/recipes-devtools/python/python-async-timeout.inc b/meta-python/recipes-devtools/python/python-async-timeout.inc deleted file mode 100644 index e71a00262b..0000000000 --- a/meta-python/recipes-devtools/python/python-async-timeout.inc +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "asyncio-compatible timeout context manager" -DESCRIPTION = "\ -The context manager is useful in cases when you want to apply \ -timeout logic around block of code or in cases when asyncio.wait_for() \ -is not suitable. Also it's much faster than asyncio.wait_for() because \ -timeout doesn't create a new task." -HOMEPAGE = "https://github.com/aio-libs/async-timeout" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" - -SRC_URI[md5sum] = "305c4fa529f2485c403d0dbe14390175" -SRC_URI[sha256sum] = "0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f" - -PYPI_PACKAGE = "async-timeout" -inherit pypi - -RDEPENDS_${PN} = "\ - ${PYTHON_PN}-asyncio \ -" diff --git a/meta-python/recipes-devtools/python/python3-async-timeout_3.0.1.bb b/meta-python/recipes-devtools/python/python3-async-timeout_3.0.1.bb index 7e2ffdb05b..22dffe6462 100644 --- a/meta-python/recipes-devtools/python/python3-async-timeout_3.0.1.bb +++ b/meta-python/recipes-devtools/python/python3-async-timeout_3.0.1.bb @@ -1,2 +1,19 @@ -inherit setuptools3 -require python-async-timeout.inc +SUMMARY = "asyncio-compatible timeout context manager" +DESCRIPTION = "\ +The context manager is useful in cases when you want to apply \ +timeout logic around block of code or in cases when asyncio.wait_for() \ +is not suitable. Also it's much faster than asyncio.wait_for() because \ +timeout doesn't create a new task." +HOMEPAGE = "https://github.com/aio-libs/async-timeout" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" + +SRC_URI[md5sum] = "305c4fa529f2485c403d0dbe14390175" +SRC_URI[sha256sum] = "0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f" + +PYPI_PACKAGE = "async-timeout" +inherit pypi setuptools3 + +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-asyncio \ +" -- 2.17.1 From derek at asterius.io Mon Feb 10 00:35:12 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 19:35:12 -0500 Subject: [oe] [meta-python][PATCH] python3-atomicwrites: consolidate inc and bb files into a single bb file Message-ID: <20200210003512.11758-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-atomicwrites.inc | 7 ------- .../python/python3-atomicwrites_1.3.0.bb | 9 ++++++++- 2 files changed, 8 insertions(+), 8 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-atomicwrites.inc diff --git a/meta-python/recipes-devtools/python/python-atomicwrites.inc b/meta-python/recipes-devtools/python/python-atomicwrites.inc deleted file mode 100644 index 773e9dd770..0000000000 --- a/meta-python/recipes-devtools/python/python-atomicwrites.inc +++ /dev/null @@ -1,7 +0,0 @@ -DESCRIPTION = "Powerful Python library for atomic file writes" -HOMEPAGE = "https://github.com/untitaker/python-atomicwrites" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=91cc36cfafeefb7863673bcfcb1d4da4" - -SRC_URI[md5sum] = "ce11f780a4ce0fce8a55d64494a88178" -SRC_URI[sha256sum] = "75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6" diff --git a/meta-python/recipes-devtools/python/python3-atomicwrites_1.3.0.bb b/meta-python/recipes-devtools/python/python3-atomicwrites_1.3.0.bb index 9f306e60d6..04bbed7074 100644 --- a/meta-python/recipes-devtools/python/python3-atomicwrites_1.3.0.bb +++ b/meta-python/recipes-devtools/python/python3-atomicwrites_1.3.0.bb @@ -1,2 +1,9 @@ +DESCRIPTION = "Powerful Python library for atomic file writes" +HOMEPAGE = "https://github.com/untitaker/python-atomicwrites" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=91cc36cfafeefb7863673bcfcb1d4da4" + +SRC_URI[md5sum] = "ce11f780a4ce0fce8a55d64494a88178" +SRC_URI[sha256sum] = "75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6" + inherit pypi setuptools3 -require python-atomicwrites.inc -- 2.17.1 From derek at asterius.io Mon Feb 10 00:37:48 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 19:37:48 -0500 Subject: [oe] [meta-python][PATCH] python3-attr: consolidate inc and bb files into a single bb file Message-ID: <20200210003748.12437-1-derek@asterius.io> Signed-off-by: Derek Straka --- meta-python/recipes-devtools/python/python-attr.inc | 9 --------- .../recipes-devtools/python/python3-attr_0.3.1.bb | 11 +++++++++-- 2 files changed, 9 insertions(+), 11 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-attr.inc diff --git a/meta-python/recipes-devtools/python/python-attr.inc b/meta-python/recipes-devtools/python/python-attr.inc deleted file mode 100644 index 1d93dd7156..0000000000 --- a/meta-python/recipes-devtools/python/python-attr.inc +++ /dev/null @@ -1,9 +0,0 @@ -DESCRIPTION = "Simple decorator to set attributes of target function or class in a DRY way" -HOMEPAGE = "https://github.com/denis-ryzhkov/attr" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=59805a0285f4d2b6abdedae73db4f5c1" - -SRC_URI[md5sum] = "68b9a503991241fb2df28488686b0e1e" -SRC_URI[sha256sum] = "9091548058d17f132596e61fa7518e504f76b9a4c61ca7d86e1f96dbf7d4775d" - -inherit pypi diff --git a/meta-python/recipes-devtools/python/python3-attr_0.3.1.bb b/meta-python/recipes-devtools/python/python3-attr_0.3.1.bb index e80648c8c3..22c5218c70 100644 --- a/meta-python/recipes-devtools/python/python3-attr_0.3.1.bb +++ b/meta-python/recipes-devtools/python/python3-attr_0.3.1.bb @@ -1,2 +1,9 @@ -inherit setuptools3 -require python-attr.inc +DESCRIPTION = "Simple decorator to set attributes of target function or class in a DRY way" +HOMEPAGE = "https://github.com/denis-ryzhkov/attr" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=59805a0285f4d2b6abdedae73db4f5c1" + +SRC_URI[md5sum] = "68b9a503991241fb2df28488686b0e1e" +SRC_URI[sha256sum] = "9091548058d17f132596e61fa7518e504f76b9a4c61ca7d86e1f96dbf7d4775d" + +inherit pypi setuptools3 -- 2.17.1 From derek at asterius.io Mon Feb 10 00:40:54 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 19:40:54 -0500 Subject: [oe] [meta-python][PATCH] python3-attrs: consolidate inc and bb files into a single bb file Message-ID: <20200210004054.12771-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-attrs.inc | 16 ---------------- .../python/python3-attrs_19.3.0.bb | 18 ++++++++++++++++-- 2 files changed, 16 insertions(+), 18 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-attrs.inc diff --git a/meta-python/recipes-devtools/python/python-attrs.inc b/meta-python/recipes-devtools/python/python-attrs.inc deleted file mode 100644 index 35d28a44d0..0000000000 --- a/meta-python/recipes-devtools/python/python-attrs.inc +++ /dev/null @@ -1,16 +0,0 @@ -DESCRIPTION = "Classes Without Boilerplate" -HOMEPAGE = "http://www.attrs.org/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=d4ab25949a73fe7d4fdee93bcbdbf8ff" - -SRC_URI[sha256sum] = "f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72" -SRC_URI[md5sum] = "5b2db50fcc31be34d32798183c9bd062" - -inherit pypi - -RDEPENDS_${PN}_class-target += " \ - ${PYTHON_PN}-crypt \ - ${PYTHON_PN}-ctypes \ -" - -BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-devtools/python/python3-attrs_19.3.0.bb b/meta-python/recipes-devtools/python/python3-attrs_19.3.0.bb index c34693f506..b3739fda8c 100644 --- a/meta-python/recipes-devtools/python/python3-attrs_19.3.0.bb +++ b/meta-python/recipes-devtools/python/python3-attrs_19.3.0.bb @@ -1,2 +1,16 @@ -inherit setuptools3 -require python-attrs.inc +DESCRIPTION = "Classes Without Boilerplate" +HOMEPAGE = "http://www.attrs.org/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d4ab25949a73fe7d4fdee93bcbdbf8ff" + +SRC_URI[sha256sum] = "f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72" +SRC_URI[md5sum] = "5b2db50fcc31be34d32798183c9bd062" + +inherit pypi setuptools3 + +RDEPENDS_${PN}_class-target += " \ + ${PYTHON_PN}-crypt \ + ${PYTHON_PN}-ctypes \ +" + +BBCLASSEXTEND = "native" -- 2.17.1 From derek at asterius.io Mon Feb 10 00:55:10 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 19:55:10 -0500 Subject: [oe] [meta-python][PATCH] python3-automat: consolidate inc and bb files into a single bb file Message-ID: <20200210005510.15298-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../python/python-automat.inc | 24 ------------------- ...etup.py-remove-the-dependency-on-m2r.patch | 0 .../python/python3-automat_0.8.0.bb | 23 ++++++++++++++++-- 3 files changed, 21 insertions(+), 26 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-automat.inc rename meta-python/recipes-devtools/python/{python-automat => python3-automat}/0001-setup.py-remove-the-dependency-on-m2r.patch (100%) diff --git a/meta-python/recipes-devtools/python/python-automat.inc b/meta-python/recipes-devtools/python/python-automat.inc deleted file mode 100644 index ec392216e8..0000000000 --- a/meta-python/recipes-devtools/python/python-automat.inc +++ /dev/null @@ -1,24 +0,0 @@ -DESCRIPTION = "Self-service finite-state machines for the programmer on the go" -HOMEPAGE = "https://github.com/glyph/Automat" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=4ad213bcca81688e94593e5f60c87477" - -FILESEXTRAPATHS_prepend := "${THISDIR}/python-automat:" - -SRC_URI[md5sum] = "47e980a48201a1dabe37fa11f0187013" -SRC_URI[sha256sum] = "269a09dfb063a3b078983f4976d83f0a0d3e6e7aaf8e27d8df1095e09dc4a484" - -PYPI_PACKAGE = "Automat" - -inherit pypi - -SRC_URI_append = " \ - file://0001-setup.py-remove-the-dependency-on-m2r.patch \ -" - -DEPENDS += "${PYTHON_PN}-setuptools-scm-native" - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-attrs \ - ${PYTHON_PN}-six \ -" diff --git a/meta-python/recipes-devtools/python/python-automat/0001-setup.py-remove-the-dependency-on-m2r.patch b/meta-python/recipes-devtools/python/python3-automat/0001-setup.py-remove-the-dependency-on-m2r.patch similarity index 100% rename from meta-python/recipes-devtools/python/python-automat/0001-setup.py-remove-the-dependency-on-m2r.patch rename to meta-python/recipes-devtools/python/python3-automat/0001-setup.py-remove-the-dependency-on-m2r.patch diff --git a/meta-python/recipes-devtools/python/python3-automat_0.8.0.bb b/meta-python/recipes-devtools/python/python3-automat_0.8.0.bb index 2c747643ff..f8981bcb19 100644 --- a/meta-python/recipes-devtools/python/python3-automat_0.8.0.bb +++ b/meta-python/recipes-devtools/python/python3-automat_0.8.0.bb @@ -1,2 +1,21 @@ -inherit setuptools3 -require python-automat.inc +DESCRIPTION = "Self-service finite-state machines for the programmer on the go" +HOMEPAGE = "https://github.com/glyph/Automat" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4ad213bcca81688e94593e5f60c87477" + +SRC_URI[md5sum] = "47e980a48201a1dabe37fa11f0187013" +SRC_URI[sha256sum] = "269a09dfb063a3b078983f4976d83f0a0d3e6e7aaf8e27d8df1095e09dc4a484" + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" + +SRC_URI_append = " \ + file://0001-setup.py-remove-the-dependency-on-m2r.patch \ +" + +PYPI_PACKAGE = "Automat" +inherit pypi setuptools3 + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-attrs \ + ${PYTHON_PN}-six \ +" -- 2.17.1 From derek at asterius.io Mon Feb 10 00:59:42 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 19:59:42 -0500 Subject: [oe] [meta-python][PATCH] python3-aws-iot-device-sdk-python: consolidate inc and bb files into a single bb file Message-ID: <20200210005942.16312-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../python-aws-iot-device-sdk-python.inc | 41 ------------------ ...python3-aws-iot-device-sdk-python_1.4.7.bb | 43 ++++++++++++++++++- 2 files changed, 41 insertions(+), 43 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc diff --git a/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc b/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc deleted file mode 100644 index 60493e1dec..0000000000 --- a/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc +++ /dev/null @@ -1,41 +0,0 @@ -DESCRIPTION = "SDK for connecting to AWS IoT using Python." -HOMEPAGE = "https://github.com/aws/aws-iot-device-sdk-python" -LICENSE = "Apache-2.0 & (EPL-1.0 | EDL-1.0)" -LICENSE_${PN}-examples = "Apache-2.0" -LIC_FILES_CHKSUM = "\ - file://LICENSE.txt;md5=9ac49901b833e769c7d6f21e8dbd7b30 \ - file://AWSIoTPythonSDK/core/protocol/paho/client.py;endline=14;md5=5a3c8a1a4bb71bd934f450ecff972ad9 \ -" - -SRC_URI[md5sum] = "2b3df629827d8bc18ca4d927b4885a17" -SRC_URI[sha256sum] = "7e67c8cfeee8a1c8fd251bcc418de9d4dca697753565c9a9e614525179d9555d" - -inherit pypi - -PYPI_PACKAGE = "AWSIoTPythonSDK" - -do_install_append() { - install -d -m0755 ${D}${datadir}/${BPN}/examples - cp --preserve=mode,timestamps -R ${S}/samples/* ${D}${datadir}/${BPN}/examples - # this requires the full blown AWS Python SDK - rm -r ${D}${datadir}/${BPN}/examples/basicPubSub -} - -PACKAGES =+ "${PN}-examples" - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-crypt \ - ${PYTHON_PN}-datetime \ - ${PYTHON_PN}-io \ - ${PYTHON_PN}-json \ - ${PYTHON_PN}-logging \ - ${PYTHON_PN}-math \ - ${PYTHON_PN}-netclient \ - ${PYTHON_PN}-numbers \ - ${PYTHON_PN}-threading \ -" -RDEPENDS_${PN}-examples += "${PN}" - -FILES_${PN}-examples = "${datadir}/${BPN}/examples" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.7.bb b/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.7.bb index c43649dbfe..78e024bd19 100644 --- a/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.7.bb +++ b/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.7.bb @@ -1,2 +1,41 @@ -inherit setuptools3 -require python-aws-iot-device-sdk-python.inc +DESCRIPTION = "SDK for connecting to AWS IoT using Python." +HOMEPAGE = "https://github.com/aws/aws-iot-device-sdk-python" +LICENSE = "Apache-2.0 & (EPL-1.0 | EDL-1.0)" +LICENSE_${PN}-examples = "Apache-2.0" +LIC_FILES_CHKSUM = "\ + file://LICENSE.txt;md5=9ac49901b833e769c7d6f21e8dbd7b30 \ + file://AWSIoTPythonSDK/core/protocol/paho/client.py;endline=14;md5=5a3c8a1a4bb71bd934f450ecff972ad9 \ +" + +SRC_URI[md5sum] = "2b3df629827d8bc18ca4d927b4885a17" +SRC_URI[sha256sum] = "7e67c8cfeee8a1c8fd251bcc418de9d4dca697753565c9a9e614525179d9555d" + +inherit pypi setuptools3 + +PYPI_PACKAGE = "AWSIoTPythonSDK" + +do_install_append() { + install -d -m0755 ${D}${datadir}/${BPN}/examples + cp --preserve=mode,timestamps -R ${S}/samples/* ${D}${datadir}/${BPN}/examples + # this requires the full blown AWS Python SDK + rm -r ${D}${datadir}/${BPN}/examples/basicPubSub +} + +PACKAGES =+ "${PN}-examples" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-crypt \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-math \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-threading \ +" +RDEPENDS_${PN}-examples += "${PN}" + +FILES_${PN}-examples = "${datadir}/${BPN}/examples" + +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From derek at asterius.io Mon Feb 10 01:10:46 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 20:10:46 -0500 Subject: [oe] [meta-python][PATCH 1/2] python3-babel: consolidate inc and bb files into a single bb file Message-ID: <20200210011047.18827-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-babel.inc | 27 ----------------- .../python/python3-babel_2.7.0.bb | 29 +++++++++++++++++-- 2 files changed, 27 insertions(+), 29 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-babel.inc diff --git a/meta-python/recipes-devtools/python/python-babel.inc b/meta-python/recipes-devtools/python/python-babel.inc deleted file mode 100644 index c55b45922e..0000000000 --- a/meta-python/recipes-devtools/python/python-babel.inc +++ /dev/null @@ -1,27 +0,0 @@ -DESCRIPTION = "A collection of tools for internationalizing Python applications" -HOMEPAGE = "http://babel.edgewall.org/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=942469df9305abb1c59e95f778310384" - -SRC_URI[md5sum] = "83c158b7dae9135750a7cf204e6e2eea" -SRC_URI[sha256sum] = "e86135ae101e31e2c8ec20a4e0c5220f4eed12487d5cf3f78be7e98d3a57fc28" - -PYPI_PACKAGE = "Babel" - -inherit pypi - -CLEANBROKEN = "1" - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-codecs \ - ${PYTHON_PN}-difflib \ - ${PYTHON_PN}-distutils \ - ${PYTHON_PN}-netserver \ - ${PYTHON_PN}-numbers \ - ${PYTHON_PN}-pickle \ - ${PYTHON_PN}-pytz \ - ${PYTHON_PN}-shell \ - ${PYTHON_PN}-threading \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python3-babel_2.7.0.bb b/meta-python/recipes-devtools/python/python3-babel_2.7.0.bb index 0715d59f42..45ff948736 100644 --- a/meta-python/recipes-devtools/python/python3-babel_2.7.0.bb +++ b/meta-python/recipes-devtools/python/python3-babel_2.7.0.bb @@ -1,2 +1,27 @@ -inherit setuptools3 -require python-babel.inc +DESCRIPTION = "A collection of tools for internationalizing Python applications" +HOMEPAGE = "http://babel.edgewall.org/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=942469df9305abb1c59e95f778310384" + +SRC_URI[md5sum] = "83c158b7dae9135750a7cf204e6e2eea" +SRC_URI[sha256sum] = "e86135ae101e31e2c8ec20a4e0c5220f4eed12487d5cf3f78be7e98d3a57fc28" + +PYPI_PACKAGE = "Babel" + +inherit pypi setuptools3 + +CLEANBROKEN = "1" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-codecs \ + ${PYTHON_PN}-difflib \ + ${PYTHON_PN}-distutils \ + ${PYTHON_PN}-netserver \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-pytz \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-threading \ +" + +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From derek at asterius.io Mon Feb 10 01:10:47 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 20:10:47 -0500 Subject: [oe] [meta-python][PATCH 2/2] python3-babel: upgrade to version 2.8.0 In-Reply-To: <20200210011047.18827-1-derek@asterius.io> References: <20200210011047.18827-1-derek@asterius.io> Message-ID: <20200210011047.18827-2-derek@asterius.io> Signed-off-by: Derek Straka --- .../python/{python3-babel_2.7.0.bb => python3-babel_2.8.0.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-python/recipes-devtools/python/{python3-babel_2.7.0.bb => python3-babel_2.8.0.bb} (80%) diff --git a/meta-python/recipes-devtools/python/python3-babel_2.7.0.bb b/meta-python/recipes-devtools/python/python3-babel_2.8.0.bb similarity index 80% rename from meta-python/recipes-devtools/python/python3-babel_2.7.0.bb rename to meta-python/recipes-devtools/python/python3-babel_2.8.0.bb index 45ff948736..c69098b226 100644 --- a/meta-python/recipes-devtools/python/python3-babel_2.7.0.bb +++ b/meta-python/recipes-devtools/python/python3-babel_2.8.0.bb @@ -3,8 +3,8 @@ HOMEPAGE = "http://babel.edgewall.org/" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=942469df9305abb1c59e95f778310384" -SRC_URI[md5sum] = "83c158b7dae9135750a7cf204e6e2eea" -SRC_URI[sha256sum] = "e86135ae101e31e2c8ec20a4e0c5220f4eed12487d5cf3f78be7e98d3a57fc28" +SRC_URI[md5sum] = "6fad9772e75421969ddb41975483abdf" +SRC_URI[sha256sum] = "1aac2ae2d0d8ea368fa90906567f5c08463d98ade155c0c4bfedd6a0f7160e38" PYPI_PACKAGE = "Babel" -- 2.17.1 From derek at asterius.io Mon Feb 10 02:12:34 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 21:12:34 -0500 Subject: [oe] [meta-python][PATCH 1/2] python3-backports-functools-lru-cache: consolidate inc and bb files into a single bb file Message-ID: <20200210021235.20614-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../python-backports-functools-lru-cache.inc | 19 ----------------- ...thon3-backports-functools-lru-cache_1.5.bb | 21 +++++++++++++++++-- 2 files changed, 19 insertions(+), 21 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-backports-functools-lru-cache.inc diff --git a/meta-python/recipes-devtools/python/python-backports-functools-lru-cache.inc b/meta-python/recipes-devtools/python/python-backports-functools-lru-cache.inc deleted file mode 100644 index bce44a28b4..0000000000 --- a/meta-python/recipes-devtools/python/python-backports-functools-lru-cache.inc +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "Backport of functools.lru_cache from Python 3.3" -HOMEPAGE = "https://github.com/jaraco/backports.functools_lru_cache" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://setup.py;beginline=57;endline=57;md5=98fc3658e5970d26f6b2109808c766be" - -PYPI_PACKAGE = "backports.functools_lru_cache" - -SRC_URI[md5sum] = "20f53f54cd3f04b3346ce75a54959754" -SRC_URI[sha256sum] = "9d98697f088eb1b0fa451391f91afb5e3ebde16bbdb272819fd091151fda4f1a" - -DEPENDS += "${PYTHON_PN}-setuptools-scm-native" - -inherit pypi - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-pickle \ - ${PYTHON_PN}-threading \ - " diff --git a/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache_1.5.bb b/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache_1.5.bb index 91fcc41fc7..9182792baf 100644 --- a/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache_1.5.bb +++ b/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache_1.5.bb @@ -1,2 +1,19 @@ -require python-backports-functools-lru-cache.inc -inherit setuptools3 +SUMMARY = "Backport of functools.lru_cache from Python 3.3" +HOMEPAGE = "https://github.com/jaraco/backports.functools_lru_cache" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://setup.py;beginline=57;endline=57;md5=98fc3658e5970d26f6b2109808c766be" + +PYPI_PACKAGE = "backports.functools_lru_cache" + +SRC_URI[md5sum] = "20f53f54cd3f04b3346ce75a54959754" +SRC_URI[sha256sum] = "9d98697f088eb1b0fa451391f91afb5e3ebde16bbdb272819fd091151fda4f1a" + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-threading \ + " -- 2.17.1 From derek at asterius.io Mon Feb 10 02:12:35 2020 From: derek at asterius.io (Derek Straka) Date: Sun, 9 Feb 2020 21:12:35 -0500 Subject: [oe] [meta-python][PATCH 2/2] python3-backports-functools-lru-cache: update to version 1.6.1 In-Reply-To: <20200210021235.20614-1-derek@asterius.io> References: <20200210021235.20614-1-derek@asterius.io> Message-ID: <20200210021235.20614-2-derek@asterius.io> License-Checksum updated to use the actual license file Signed-off-by: Derek Straka --- ....5.bb => python3-backports-functools-lru-cache_1.6.1.bb} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename meta-python/recipes-devtools/python/{python3-backports-functools-lru-cache_1.5.bb => python3-backports-functools-lru-cache_1.6.1.bb} (61%) diff --git a/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache_1.5.bb b/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache_1.6.1.bb similarity index 61% rename from meta-python/recipes-devtools/python/python3-backports-functools-lru-cache_1.5.bb rename to meta-python/recipes-devtools/python/python3-backports-functools-lru-cache_1.6.1.bb index 9182792baf..c95a759abf 100644 --- a/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache_1.5.bb +++ b/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache_1.6.1.bb @@ -2,12 +2,12 @@ SUMMARY = "Backport of functools.lru_cache from Python 3.3" HOMEPAGE = "https://github.com/jaraco/backports.functools_lru_cache" SECTION = "devel/python" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://setup.py;beginline=57;endline=57;md5=98fc3658e5970d26f6b2109808c766be" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a33f38bbf47d48c70fe0d40e5f77498e" PYPI_PACKAGE = "backports.functools_lru_cache" -SRC_URI[md5sum] = "20f53f54cd3f04b3346ce75a54959754" -SRC_URI[sha256sum] = "9d98697f088eb1b0fa451391f91afb5e3ebde16bbdb272819fd091151fda4f1a" +SRC_URI[md5sum] = "103000b21a8e683647e2ce41929f2a9d" +SRC_URI[sha256sum] = "8fde5f188da2d593bd5bc0be98d9abc46c95bb8a9dde93429570192ee6cc2d4a" DEPENDS += "${PYTHON_PN}-setuptools-scm-native" -- 2.17.1 From richard.leitner at skidata.com Mon Feb 10 08:04:00 2020 From: richard.leitner at skidata.com (Richard Leitner) Date: Mon, 10 Feb 2020 09:04:00 +0100 Subject: [oe] [meta-java][master-next][PATCH] openjdk-8: Don't set TOPDIR bitbake variable In-Reply-To: <20200208110634.250922-1-jacob.kroon@gmail.com> References: <20200208110634.250922-1-jacob.kroon@gmail.com> Message-ID: <20200210080400.GA6809@pcleri> Hi, this is a note to let you know that I've just added this patch to the master-next branch of the meta-java repository at git://git.yoctoproject.org/meta-java As soon as it has gone through some more testing it will likely be merged to the master branch. If you have any questions, please let me know. regards;rl On Sat, Feb 08, 2020 at 12:06:34PM +0100, Jacob Kroon wrote: > It is used to set the default sstate cache location. > Just export it to the environment. > > Richard, feel free to squash this or someting similar into the > openjdk-8 update commit. I just added in on top of master-next ;-) > > Signed-off-by: Jacob Kroon > --- > recipes-core/openjdk/openjdk-8-common.inc | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/recipes-core/openjdk/openjdk-8-common.inc b/recipes-core/openjdk/openjdk-8-common.inc > index 0ef4750..d8b30b8 100644 > --- a/recipes-core/openjdk/openjdk-8-common.inc > +++ b/recipes-core/openjdk/openjdk-8-common.inc > @@ -12,7 +12,6 @@ FILESPATH =. "${FILE_DIRNAME}/patches-openjdk-8:" > > # for weird openjdk-common.inc > S = "${WORKDIR}/${OPENJDK_HG_U}-${OPENJDK_CHANGESET}" > -export TOPDIR="${S}" > > SRC_URI = "\ > ${OPENJDK_URI} \ > @@ -27,6 +26,10 @@ SRC_URI = "\ > ${PATCHES_URI} \ > " > > +do_configure_prepend () { > + export TOPDIR=${S} > +} > + > do_unpack_extract_submodules () { > cd "${S}" > # tar --transform > -- > 2.24.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From sander.visser.2 at consultant.volvo.com Mon Feb 10 09:18:38 2020 From: sander.visser.2 at consultant.volvo.com (Visser Sander (2) (Consultant)) Date: Mon, 10 Feb 2020 09:18:38 +0000 Subject: [oe] systemd-conf bbappend not working (warrior) In-Reply-To: References: Message-ID: Im on latest warrior. You are right - the systemd version is 241 and not 243 in warrior, but the systemd-conf package is built as 1.0-r0 despite recipe being systemd-conf_241.bb in warrior:4edf4eb9cc86fbd4b51240fae527c1b97a7ace74 poky. Any ideas why tmp/work decides to build the recipe as 1.0-r0. That seems to be the reason for my systemd-conf_241.bbappend task/changes not being applied... I have tried both a do_install_append() and inserting a task of my own before install to change the default configuration files. None of these changes are applied (it worked fine in sumo where config files are part of systemd recipe). If I name my bbappend "_1.0" then bitbake complains it can not be applied, so bitbake at some level seems to know the version is supposed to be 241. /Regards Sander -----Original Message----- From: Peter Kjellerstedt Sent: Friday, February 7, 2020 5:45 PM To: Visser Sander (2) (Consultant) ; openembedded-devel at lists.openembedded.org Subject: RE: systemd-conf bbappend not working (warrior) > -----Original Message----- > From: openembedded-devel-bounces at lists.openembedded.org devel-bounces at lists.openembedded.org> On Behalf Of Visser Sander (2) > (Consultant) > Sent: den 7 februari 2020 17:15 > To: openembedded-devel at lists.openembedded.org > Subject: [oe] systemd-conf bbappend not working (warrior) > > Hi > > In warrior there is systemd-conf_243.bb but in the build folder > tmp/work In Warrior, the version of systemd-conf is 241, not 243. * What versions of what layers do your really have? * Do you have any other layers than the layers in Poky? * Are there any other bb or bbappends for systemd-conf in any of the other layers? > the version is called 1.0-r0 "1.0" is the default version if no version is set in the recipe name or using PV. Before Warrior, systemd-conf did not have an explicit version set and would then use "1.0" as version. > If I create a systemd-conf_%.bbappend its content is not applied. For > instance if I set PR = "r1" that has no affect. I am also unable to > add tasks to modify the default configuration... > > Any ideas why this is happening for this recipe alone? > > /Regards Sander //Peter This email message and any attachments may contain confidential information and may be privileged. If you are not the intended recipient or otherwise not authorized to receive this message, you are prohibited to use, copy, disclose or take any action based on this email or any information contained herein. If you are not the intended recipient, please advise the sender immediately by replying to this email and permanently delete this message and any attachments from your system. From richard.leitner at skidata.com Mon Feb 10 10:17:21 2020 From: richard.leitner at skidata.com (Richard Leitner) Date: Mon, 10 Feb 2020 11:17:21 +0100 Subject: [oe] [meta-java] OpenJDK11 LTS In-Reply-To: References: Message-ID: <20200210101721.GB6809@pcleri> Hi Kyle, On Fri, Jan 31, 2020 at 04:22:40PM -0500, Kyle Russell wrote: > Has any work been done towards supporting OpenJDK11 with meta-java? I've > been using openjdk-8, and would be interested in helping contribute support > for the next LTS if there's interest. I wanted to know if anyone is > actively pursuing this first though, or if anyone has uncovered additional > dependencies that need to be sorted out first. Currently I haven't done any work regarding OpenJDK-11 integration in meta-java. Nonetheless I will fully support any work going in this direction! regards;rl > > Kyle From marek.belisko at gmail.com Mon Feb 10 13:45:29 2020 From: marek.belisko at gmail.com (Belisko Marek) Date: Mon, 10 Feb 2020 14:45:29 +0100 Subject: [oe] libusbgx functionfs mount Message-ID: Hello, I'm trying to add support for composite gadgets using configfs/functionfs. I discovered that there already exist recipe for config/start gadget in libusbgx and libusbx-config. I have run it on my platform (with added some default scheme) and only issue I see is that libcomposite should be probed before running gadget-start script. I'm bit puzzled how to start then my gadget code (e.g. gadget-ffs) and who will mount functionfs nodes? Are there any other recipes available? I found useful this [0] but seems to be bit different what is achieved in current oe. [0] - https://www.collabora.com/news-and-blog/blog/2019/03/27/modern-usb-gadget-on-linux-and-how-to-integrate-it-with-systemd-part-2/ Thanks a lot. BR, marek From Mike.Krupicka at panduit.com Mon Feb 10 14:41:43 2020 From: Mike.Krupicka at panduit.com (Mike Krupicka) Date: Mon, 10 Feb 2020 14:41:43 +0000 Subject: [oe] [meta-networking][zeus][PATCH] mosquitto.init In-Reply-To: References: Message-ID: Config file specification is missing in start) case. It is present already in restart) case. Mike --- .../recipes-connectivity/mosquitto/files/mosquitto.init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init b/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init index 6a0c12760..9d5963c41 100644 --- a/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init +++ b/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init @@ -38,7 +38,7 @@ export PATH="${PATH:+$PATH:}@SBINDIR@:@BASE_SBINDIR@" case "$1" in start) echo "Starting Mosquitto message broker" "mosquitto" - if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} ; then + if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} -- -c @SYSCONFDIR@/mosquitto/mosquitto.conf ; then exit 0 else exit 1 -- 2.17.1 From raj.khem at gmail.com Mon Feb 10 15:39:43 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 10 Feb 2020 07:39:43 -0800 Subject: [oe] [meta-oe][PATCH v2] mpv: 0.26.0 -> 0.32.0 In-Reply-To: <20200208192433.20869-1-twoerner@gmail.com> References: <20200208192433.20869-1-twoerner@gmail.com> Message-ID: Trevor Its failing for one of builds with musl/arm http://errors.yoctoproject.org/Errors/Details/390554/ On Sat, Feb 8, 2020 at 11:24 AM Trevor Woerner wrote: > > Remove mpv from the PNBLACKLIST by updating to the latest release and using a > newer, python3-aware waf for building (copied from glmark2). > > The name of the license file changed, but the licence of the software itself > did not. > > Added mime-xdg to inherit to handle mime artifacts. > > Added to the FILES command to scoop up additional files being generated by > the build. > > Re-added 'mpv' back to LICENSE_FLAGS_WHITELIST search list in > packagegroup-meta-oe. > > Extensively fixed and cleaned up the PACKAGECONFIG options to reflect the > current options available when configuring mpv. Also cleaned up any configure > options which are no longer available. > > Added the correct dependencies so mpv builds under wayland. > > Tested with core-image-x11 on a rock-pi-4 with > PACKAGECONFIG = "libass x11 opengl egl drm gbm vaapi vdpau" > # mpv --vo=help > Available video outputs: > libmpv render API for libmpv > gpu Shader-based GPU Renderer > vdpau VDPAU with X11 > vaapi VA API with X11 > x11 X11 (slow, old crap) > null Null video output > image Write video frames to image files > tct true-color terminals > drm Direct Rendering Manager > > Tested with core-image-weston on a rock-pi-4 with: > PACKAGECONFIG = "libass wayland x11 opengl" > # mpv -vo=help > Available video outputs: > libmpv render API for libmpv > gpu Shader-based GPU Renderer > wlshm Wayland SHM video output > x11 X11 (slow, old crap) > null Null video output > image Write video frames to image files > tct true-color terminals > > Signed-off-by: Trevor Woerner > --- > > changes in v2: > > - Martin Jansa pointed out that this patch should also re-add mpv to the > LICENSE_FLAGS_WHITELIST list in packagegroup-meta-oe > https://git.openembedded.org/meta-openembedded/commit/?id=0c182e58775966699c303c1e2561c273197bf445 > > - Khem Raj pointed out that this recipe fails to build with wayland > https://errors.yoctoproject.org/Errors/Details/390294/ > --- > .../packagegroups/packagegroup-meta-oe.bb | 2 +- > .../mplayer/mpv/python3.patch | 12 ++++ > .../mplayer/{mpv_0.26.0.bb => mpv_0.32.0.bb} | 60 ++++++++++++++----- > 3 files changed, 58 insertions(+), 16 deletions(-) > create mode 100644 meta-oe/recipes-multimedia/mplayer/mpv/python3.patch > rename meta-oe/recipes-multimedia/mplayer/{mpv_0.26.0.bb => mpv_0.32.0.bb} (46%) > > diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > index d5789a758..865cbb0bf 100644 > --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > +++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > @@ -207,7 +207,7 @@ RDEPENDS_packagegroup-meta-oe-multimedia ="\ > sound-theme-freedesktop v4l-utils yavta wavpack libvpx \ > ${@bb.utils.contains("DISTRO_FEATURES", "x11", "xpext pavucontrol xsp", "", d)} \ > libmikmod \ > - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libmad faad2", "", d)} \ > + ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libmad faad2 mpv", "", d)} \ > " > RDEPENDS_packagegroup-meta-oe-multimedia_remove_libc-musl = "alsa-oss" > > diff --git a/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch b/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch > new file mode 100644 > index 000000000..df208cf87 > --- /dev/null > +++ b/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch > @@ -0,0 +1,12 @@ > +Use Python 3 instead of Python 2. > + > +Upstream-Status: Pending > +Signed-off-by: Ross Burton > + > +diff --git a/waf b/waf > +index 6ce2a24..de3c898 100755 > +--- a/waf > ++++ b/waf > +@@ -1 +1 @@ > +-#!/usr/bin/env python > ++#!/usr/bin/env python3 > diff --git a/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb b/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb > similarity index 46% > rename from meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb > rename to meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb > index c98aa7ab0..bd2e389fe 100644 > --- a/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb > +++ b/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb > @@ -9,22 +9,23 @@ DEPENDS = "zlib ffmpeg jpeg virtual/libx11 xsp libxv \ > REQUIRED_DISTRO_FEATURES = "x11" > > LICENSE = "GPLv2+" > -LIC_FILES_CHKSUM = "file://LICENSE;md5=91f1cb870c1cc2d31351a4d2595441cb" > +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 = "4db82f04502cbcd20d9a975df9dfde91d8c389e3" > +SRCREV_mpv = "70b991749df389bcc0a4e145b5687233a03b4ed7" > 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 \ > + https://www.freehackers.org/~tnagy/release/waf-2.0.19;name=waf;downloadfilename=waf;subdir=git \ > + file://python3.patch \ > " > SRC_URI[waf.md5sum] = "cef4ee82206b1843db082d0b0506bf71" > SRC_URI[waf.sha256sum] = "01bf2beab2106d1558800c8709bc2c8e496d3da4a2ca343fe091f22fca60c98b" > > S = "${WORKDIR}/git" > > -inherit waf pkgconfig python3native features_check > +inherit waf pkgconfig features_check mime-xdg > > LUA ?= "lua" > LUA_mips64 = "" > @@ -38,18 +39,49 @@ 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/mesa" > +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 libxkbcommon" > +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}', '')}" > > @@ -59,18 +91,14 @@ EXTRA_OECONF = " \ > --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} \ > " > > @@ -80,6 +108,8 @@ adjust_waf_perms() { > > do_patch[postfuncs] += "adjust_waf_perms" > > -FILES_${PN} += "${datadir}/icons" > - > -PNBLACKLIST[mpv] = "Needs forward porting to use python3" > +FILES_${PN} += " \ > + ${datadir}/icons \ > + ${datadir}/zsh \ > + ${datadir}/bash-completion \ > + " > -- > 2.25.0.114.g5b0ca878e0 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From okaya at kernel.org Mon Feb 10 16:31:33 2020 From: okaya at kernel.org (Sinan Kaya) Date: Mon, 10 Feb 2020 11:31:33 -0500 Subject: [oe] [meta-oe][PATCH] abseil-cpp: add recipe for git version In-Reply-To: References: <20200209034641.19378-1-okaya@kernel.org> Message-ID: <784d11f6-ae33-dc1e-da43-6a71824ec0a6@kernel.org> On 2/9/2020 2:53 AM, Khem Raj wrote: >> +SUMMARY = "Abseil is a cpp library like STL" >> +DESCRIPTION = "It's got containers, algorithms, useful stuff!" > maybe we can be more specific about it from > https://github.com/abseil/abseil-cpp/blob/master/README.md > >> +HOMEPAGE = "" > perhaps https://abseil.io/ instead of leaving it empty is better. > done >> +SECTION = "libs" >> +LICENSE = "Apache-2" > The current value is not wrong but Apache-2.0 would be better to match SPDX > done >> +LIC_FILES_CHKSUM = "file://LICENSE;md5=df52c6edb7adc22e533b2bacc3bd3915" >> + >> +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 \ >> + " >> + >> +S = "${WORKDIR}/git" >> + >> +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'aarch64', ' >> -march=armv8-a+crypto', '', d)}" >> +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'x64', ' -maes -msse4.1', '', d)}" >> + >> +CXXFLAGS_append_class-nativesdk = " -Wl,--no-as-needed -fPIC" >> +CXXFLAGS_append_class-native = " -Wl,--no-as-needed -fPIC" > perhaps use ASNEEDED_ = "" done > >> +CXXFLAGS_append_class-target = " -fPIC" >> + >> +inherit cmake >> + >> +BBCLASSEXTEND = "native nativesdk" >> +ALLOW_EMPTY_${PN} = "1" > why do we need this ? Library generates an empty $PN package and I had problems linking the library to the new grpc version without producing the empty ${PN}. This library is requires by the newer grpc versions. From okaya at kernel.org Mon Feb 10 16:33:23 2020 From: okaya at kernel.org (Sinan Kaya) Date: Mon, 10 Feb 2020 11:33:23 -0500 Subject: [oe] [meta-oe][PATCH] abseil-cpp: add recipe for git version In-Reply-To: References: <20200209034641.19378-1-okaya@kernel.org> Message-ID: <744b282f-eb9c-4831-dcf3-5fcec52958ab@kernel.org> On 2/9/2020 1:40 PM, Khem Raj wrote: > python () { > arch = d.getVar("TARGET_ARCH") > > if arch == "aarch64": > tunes = d.getVar("TUNE_FEATURES") > if not tunes: > 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)) > } thanks, I'm adding this now. From akuster808 at gmail.com Mon Feb 10 16:47:41 2020 From: akuster808 at gmail.com (akuster808) Date: Mon, 10 Feb 2020 08:47:41 -0800 Subject: [oe] [meta-networking][zeus][PATCH] mosquitto.init In-Reply-To: References: Message-ID: On 2/10/20 6:41 AM, Mike Krupicka wrote: > Config file specification is missing in start) case. It is present already in restart) case. This needs to go into master first. Should just apply. - armin > > Mike > --- > .../recipes-connectivity/mosquitto/files/mosquitto.init | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init b/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init > index 6a0c12760..9d5963c41 100644 > --- a/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init > +++ b/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init > @@ -38,7 +38,7 @@ export PATH="${PATH:+$PATH:}@SBINDIR@:@BASE_SBINDIR@" > case "$1" in > start) > echo "Starting Mosquitto message broker" "mosquitto" > - if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} ; then > + if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} -- -c @SYSCONFDIR@/mosquitto/mosquitto.conf ; then > exit 0 > else > exit 1 > -- > 2.17.1 From okaya at kernel.org Mon Feb 10 17:14:52 2020 From: okaya at kernel.org (Sinan Kaya) Date: Mon, 10 Feb 2020 12:14:52 -0500 Subject: [oe] [meta-oe][PATCH] abseil-cpp: add recipe for git version In-Reply-To: <744b282f-eb9c-4831-dcf3-5fcec52958ab@kernel.org> References: <20200209034641.19378-1-okaya@kernel.org> <744b282f-eb9c-4831-dcf3-5fcec52958ab@kernel.org> Message-ID: On 2/10/2020 11:33 AM, Sinan Kaya wrote: > On 2/9/2020 1:40 PM, Khem Raj wrote: >> python () { >> arch = d.getVar("TARGET_ARCH") >> >> if arch == "aarch64": >> tunes = d.getVar("TUNE_FEATURES") >> if not tunes: >> 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)) >> } > thanks, I'm adding this now. > Hmm.... I don't see a crypto feature on aarch64. tunes value return just aarch64. From twoerner at gmail.com Mon Feb 10 17:18:20 2020 From: twoerner at gmail.com (Trevor Woerner) Date: Mon, 10 Feb 2020 12:18:20 -0500 Subject: [oe] [meta-oe][PATCH v2] mpv: 0.26.0 -> 0.32.0 In-Reply-To: References: <20200208192433.20869-1-twoerner@gmail.com> Message-ID: Okay, I'll take a look. Thanks! On Mon, Feb 10, 2020 at 10:40 AM Khem Raj wrote: > Trevor > > Its failing for one of builds with musl/arm > http://errors.yoctoproject.org/Errors/Details/390554/ > > On Sat, Feb 8, 2020 at 11:24 AM Trevor Woerner wrote: > > > > Remove mpv from the PNBLACKLIST by updating to the latest release and > using a > > newer, python3-aware waf for building (copied from glmark2). > > > > The name of the license file changed, but the licence of the software > itself > > did not. > > > > Added mime-xdg to inherit to handle mime artifacts. > > > > Added to the FILES command to scoop up additional files being generated > by > > the build. > > > > Re-added 'mpv' back to LICENSE_FLAGS_WHITELIST search list in > > packagegroup-meta-oe. > > > > Extensively fixed and cleaned up the PACKAGECONFIG options to reflect the > > current options available when configuring mpv. Also cleaned up any > configure > > options which are no longer available. > > > > Added the correct dependencies so mpv builds under wayland. > > > > Tested with core-image-x11 on a rock-pi-4 with > > PACKAGECONFIG = "libass x11 opengl egl drm gbm vaapi vdpau" > > # mpv --vo=help > > Available video outputs: > > libmpv render API for libmpv > > gpu Shader-based GPU Renderer > > vdpau VDPAU with X11 > > vaapi VA API with X11 > > x11 X11 (slow, old crap) > > null Null video output > > image Write video frames to image files > > tct true-color terminals > > drm Direct Rendering Manager > > > > Tested with core-image-weston on a rock-pi-4 with: > > PACKAGECONFIG = "libass wayland x11 opengl" > > # mpv -vo=help > > Available video outputs: > > libmpv render API for libmpv > > gpu Shader-based GPU Renderer > > wlshm Wayland SHM video output > > x11 X11 (slow, old crap) > > null Null video output > > image Write video frames to image files > > tct true-color terminals > > > > Signed-off-by: Trevor Woerner > > --- > > > > changes in v2: > > > > - Martin Jansa pointed out that this patch should also re-add mpv to the > > LICENSE_FLAGS_WHITELIST list in packagegroup-meta-oe > > > https://git.openembedded.org/meta-openembedded/commit/?id=0c182e58775966699c303c1e2561c273197bf445 > > > > - Khem Raj pointed out that this recipe fails to build with wayland > > https://errors.yoctoproject.org/Errors/Details/390294/ > > --- > > .../packagegroups/packagegroup-meta-oe.bb | 2 +- > > .../mplayer/mpv/python3.patch | 12 ++++ > > .../mplayer/{mpv_0.26.0.bb => mpv_0.32.0.bb} | 60 ++++++++++++++----- > > 3 files changed, 58 insertions(+), 16 deletions(-) > > create mode 100644 meta-oe/recipes-multimedia/mplayer/mpv/python3.patch > > rename meta-oe/recipes-multimedia/mplayer/{mpv_0.26.0.bb => > mpv_0.32.0.bb} (46%) > > > > diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > > index d5789a758..865cbb0bf 100644 > > --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > > +++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > > @@ -207,7 +207,7 @@ RDEPENDS_packagegroup-meta-oe-multimedia ="\ > > sound-theme-freedesktop v4l-utils yavta wavpack libvpx \ > > ${@bb.utils.contains("DISTRO_FEATURES", "x11", "xpext pavucontrol > xsp", "", d)} \ > > libmikmod \ > > - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", > "libmad faad2", "", d)} \ > > + ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", > "libmad faad2 mpv", "", d)} \ > > " > > RDEPENDS_packagegroup-meta-oe-multimedia_remove_libc-musl = "alsa-oss" > > > > diff --git a/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch > b/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch > > new file mode 100644 > > index 000000000..df208cf87 > > --- /dev/null > > +++ b/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch > > @@ -0,0 +1,12 @@ > > +Use Python 3 instead of Python 2. > > + > > +Upstream-Status: Pending > > +Signed-off-by: Ross Burton > > + > > +diff --git a/waf b/waf > > +index 6ce2a24..de3c898 100755 > > +--- a/waf > > ++++ b/waf > > +@@ -1 +1 @@ > > +-#!/usr/bin/env python > > ++#!/usr/bin/env python3 > > diff --git a/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb > b/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb > > similarity index 46% > > rename from meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb > > rename to meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb > > index c98aa7ab0..bd2e389fe 100644 > > --- a/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb > > +++ b/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb > > @@ -9,22 +9,23 @@ DEPENDS = "zlib ffmpeg jpeg virtual/libx11 xsp libxv \ > > REQUIRED_DISTRO_FEATURES = "x11" > > > > LICENSE = "GPLv2+" > > -LIC_FILES_CHKSUM = "file://LICENSE;md5=91f1cb870c1cc2d31351a4d2595441cb" > > +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 = "4db82f04502cbcd20d9a975df9dfde91d8c389e3" > > +SRCREV_mpv = "70b991749df389bcc0a4e145b5687233a03b4ed7" > > 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 > \ > > + > https://www.freehackers.org/~tnagy/release/waf-2.0.19;name=waf;downloadfilename=waf;subdir=git > \ > > + file://python3.patch \ > > " > > SRC_URI[waf.md5sum] = "cef4ee82206b1843db082d0b0506bf71" > > SRC_URI[waf.sha256sum] = > "01bf2beab2106d1558800c8709bc2c8e496d3da4a2ca343fe091f22fca60c98b" > > > > S = "${WORKDIR}/git" > > > > -inherit waf pkgconfig python3native features_check > > +inherit waf pkgconfig features_check mime-xdg > > > > LUA ?= "lua" > > LUA_mips64 = "" > > @@ -38,18 +39,49 @@ 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/mesa" > > +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 > libxkbcommon" > > +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}', > '')}" > > > > @@ -59,18 +91,14 @@ EXTRA_OECONF = " \ > > --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} \ > > " > > > > @@ -80,6 +108,8 @@ adjust_waf_perms() { > > > > do_patch[postfuncs] += "adjust_waf_perms" > > > > -FILES_${PN} += "${datadir}/icons" > > - > > -PNBLACKLIST[mpv] = "Needs forward porting to use python3" > > +FILES_${PN} += " \ > > + ${datadir}/icons \ > > + ${datadir}/zsh \ > > + ${datadir}/bash-completion \ > > + " > > -- > > 2.25.0.114.g5b0ca878e0 > > > > -- > > _______________________________________________ > > Openembedded-devel mailing list > > Openembedded-devel at lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From andrey.z at gmail.com Mon Feb 10 17:22:50 2020 From: andrey.z at gmail.com (Andrey Zhizhikin) Date: Mon, 10 Feb 2020 18:22:50 +0100 Subject: [oe] [meta-oe][PATCH] abseil-cpp: add recipe for git version In-Reply-To: References: <20200209034641.19378-1-okaya@kernel.org> <744b282f-eb9c-4831-dcf3-5fcec52958ab@kernel.org> Message-ID: On Mon, Feb 10, 2020 at 6:15 PM Sinan Kaya wrote: > > On 2/10/2020 11:33 AM, Sinan Kaya wrote: > > On 2/9/2020 1:40 PM, Khem Raj wrote: > >> python () { > >> arch = d.getVar("TARGET_ARCH") > >> > >> if arch == "aarch64": > >> tunes = d.getVar("TUNE_FEATURES") > >> if not tunes: > >> 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)) > >> } > > thanks, I'm adding this now. > > > > Hmm.... > > I don't see a crypto feature on aarch64. tunes value return just > aarch64. AFAIK, this is a AArch64 derivative-specific tune. For example, extracted from [meta/conf/machine/include/tune-cortexa53.inc]: TUNE_FEATURES_tune-cortexa53 = "aarch64 cortexa53 crc" TUNE_FEATURES_tune-cortexa53-crypto = "aarch64 cortexa53 crc crypto" As you can see, there are 2 sets of features listed. Generic ARMv8 does not provide a Crypto extension, but individual A-profiles might have those integrated. > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel -- Regards, Andrey. From okaya at kernel.org Mon Feb 10 17:39:58 2020 From: okaya at kernel.org (Sinan Kaya) Date: Mon, 10 Feb 2020 12:39:58 -0500 Subject: [oe] [meta-oe][PATCH] abseil-cpp: add recipe for git version In-Reply-To: References: <20200209034641.19378-1-okaya@kernel.org> <744b282f-eb9c-4831-dcf3-5fcec52958ab@kernel.org> Message-ID: <54764fac-ae97-ece7-8a30-561530f5cff0@kernel.org> On 2/10/2020 12:22 PM, Andrey Zhizhikin wrote: > AFAIK, this is a AArch64 derivative-specific tune. For example, > extracted from [meta/conf/machine/include/tune-cortexa53.inc]: > TUNE_FEATURES_tune-cortexa53 = "aarch64 cortexa53 crc" > TUNE_FEATURES_tune-cortexa53-crypto = "aarch64 cortexa53 crc crypto" > > As you can see, there are 2 sets of features listed. Generic ARMv8 > does not provide a Crypto extension, but individual A-profiles might > have those integrated. I see. I'll use this to test the recipe. From okaya at kernel.org Mon Feb 10 17:47:20 2020 From: okaya at kernel.org (Sinan Kaya) Date: Mon, 10 Feb 2020 17:47:20 +0000 Subject: [oe] [meta-oe][PATCH v2] abseil-cpp: add recipe for git version Message-ID: <20200210174720.31886-1-okaya@kernel.org> The repository contains the Abseil C++ library code. Abseil is an open-source collection of C++ code (compliant to C++11) designed to augment the C++ standard library. https://github.com/abseil/abseil-cpp Signed-off-by: Changyu Li Signed-off-by: Sinan Kaya --- ...e-maes-option-from-cross-compilation.patch | 53 +++++++++++++++++++ .../abseil-cpp/abseil-cpp_git.bb | 42 +++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch new file mode 100644 index 0000000000..4c41cd8902 --- /dev/null +++ b/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 +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-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb new file mode 100644 index 0000000000..5090dc9fae --- /dev/null +++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb @@ -0,0 +1,42 @@ +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" + +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 \ + " + +S = "${WORKDIR}/git" + +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'aarch64', ' -march=armv8-a+crypto', '', d)}" +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'x64', ' -maes -msse4.1', '', d)}" + +CXXFLAGS_append = " -fPIC" +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: + 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)) +} + -- 2.23.0 From okaya at kernel.org Mon Feb 10 17:49:29 2020 From: okaya at kernel.org (Sinan Kaya) Date: Mon, 10 Feb 2020 17:49:29 +0000 Subject: [oe] [meta-oe][PATCH v3] abseil-cpp: add recipe for git version Message-ID: <20200210174929.34851-1-okaya@kernel.org> The repository contains the Abseil C++ library code. Abseil is an open-source collection of C++ code (compliant to C++11) designed to augment the C++ standard library. https://github.com/abseil/abseil-cpp Signed-off-by: Changyu Li Signed-off-by: Sinan Kaya --- ...e-maes-option-from-cross-compilation.patch | 53 +++++++++++++++++++ .../abseil-cpp/abseil-cpp_git.bb | 41 ++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch new file mode 100644 index 0000000000..4c41cd8902 --- /dev/null +++ b/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 +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-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb new file mode 100644 index 0000000000..2d4ee0bb92 --- /dev/null +++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb @@ -0,0 +1,41 @@ +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" + +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 \ + " + +S = "${WORKDIR}/git" + +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'x64', ' -maes -msse4.1', '', d)}" + +CXXFLAGS_append = " -fPIC" +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: + 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)) +} + -- 2.23.0 From Mike.Krupicka at panduit.com Mon Feb 10 18:06:02 2020 From: Mike.Krupicka at panduit.com (Mike Krupicka) Date: Mon, 10 Feb 2020 18:06:02 +0000 Subject: [oe] FW: [meta-networking][master][zeus][PATCH] mosquitto.init Message-ID: Reposting to tag master branch Config file specification is missing in start) case. It is present already in restart) case. Mike --- .../recipes-connectivity/mosquitto/files/mosquitto.init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init b/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init index 6a0c12760..9d5963c41 100644 --- a/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init +++ b/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init @@ -38,7 +38,7 @@ export PATH="${PATH:+$PATH:}@SBINDIR@:@BASE_SBINDIR@" case "$1" in start) echo "Starting Mosquitto message broker" "mosquitto" - if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} ; then + if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} -- -c @SYSCONFDIR@/mosquitto/mosquitto.conf ; then exit 0 else exit 1 -- 2.17.1 From okaya at kernel.org Mon Feb 10 18:11:19 2020 From: okaya at kernel.org (Sinan Kaya) Date: Mon, 10 Feb 2020 18:11:19 +0000 Subject: [oe] [meta-oe][PATCH] protobuf: upgrade to 3.11.3 Message-ID: <20200210181119.56826-1-okaya@kernel.org> From: Sinan Kaya Signed-off-by: Sinan Kaya --- .../protobuf/{protobuf_3.10.1.bb => protobuf_3.11.3.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-devtools/protobuf/{protobuf_3.10.1.bb => protobuf_3.11.3.bb} (96%) diff --git a/meta-oe/recipes-devtools/protobuf/protobuf_3.10.1.bb b/meta-oe/recipes-devtools/protobuf/protobuf_3.11.3.bb similarity index 96% rename from meta-oe/recipes-devtools/protobuf/protobuf_3.10.1.bb rename to meta-oe/recipes-devtools/protobuf/protobuf_3.11.3.bb index 58526f1315..4fa576a1ad 100644 --- a/meta-oe/recipes-devtools/protobuf/protobuf_3.10.1.bb +++ b/meta-oe/recipes-devtools/protobuf/protobuf_3.11.3.bb @@ -10,9 +10,9 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=37b5762e07f0af8c74ce80a8bda4266b" DEPENDS = "zlib" DEPENDS_append_class-target = " protobuf-native" -SRCREV = "d09d649aea36f02c03f8396ba39a8d4db8a607e4" +SRCREV = "498de9f761bef56a032815ee44b6e6dbe0892cc4" -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 \ -- 2.23.0 From andrey.z at gmail.com Mon Feb 10 18:17:50 2020 From: andrey.z at gmail.com (Andrey Zhizhikin) Date: Mon, 10 Feb 2020 19:17:50 +0100 Subject: [oe] [meta-oe][PATCH v2] abseil-cpp: add recipe for git version In-Reply-To: <20200210174720.31886-1-okaya@kernel.org> References: <20200210174720.31886-1-okaya@kernel.org> Message-ID: On Mon, Feb 10, 2020 at 6:47 PM Sinan Kaya wrote: > > The repository contains the Abseil C++ library code. Abseil is an > open-source collection of C++ code (compliant to C++11) designed to > augment the C++ standard library. > > https://github.com/abseil/abseil-cpp > > Signed-off-by: Changyu Li > Signed-off-by: Sinan Kaya > --- > ...e-maes-option-from-cross-compilation.patch | 53 +++++++++++++++++++ > .../abseil-cpp/abseil-cpp_git.bb | 42 +++++++++++++++ > 2 files changed, 95 insertions(+) > create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch > create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb > > diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch > new file mode 100644 > index 0000000000..4c41cd8902 > --- /dev/null > +++ b/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 > +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-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb > new file mode 100644 > index 0000000000..5090dc9fae > --- /dev/null > +++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb > @@ -0,0 +1,42 @@ > +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" > + > +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 \ > + " > + > +S = "${WORKDIR}/git" > + > +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'aarch64', ' -march=armv8-a+crypto', '', d)}" This cannot be enforced, as it would break those AArch64 derivatives, which does not have Crypto extension. See my comment above, where I extracted 2 sets of tune features for Cortex-A53. That means that there are SoCs there from different vendors, and some vendors decided to license Crypto extensions from ARM to include it in their RTL, but some opted out to save either space on a die or cost of the processor. If you would base your build with '+crypto' unconditionally, then the binary would segfault on those SoCs which has Crypto opted out. Moreover, enabling crypto extension in GCC automatically enables inlined NEON and VFP opcodes (see [1]), and there are more side effects to be expected on those SOCs which does not have those integrated. > +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'x64', ' -maes -msse4.1', '', d)}" > + > +CXXFLAGS_append = " -fPIC" > +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: > + 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)) > +} > + > -- > 2.23.0 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel [1]: https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html#aarch64-feature-modifiers -- Regards, Andrey. From okaya at kernel.org Mon Feb 10 19:31:11 2020 From: okaya at kernel.org (Sinan Kaya) Date: Mon, 10 Feb 2020 14:31:11 -0500 Subject: [oe] [meta-oe][PATCH v2] abseil-cpp: add recipe for git version In-Reply-To: References: <20200210174720.31886-1-okaya@kernel.org> Message-ID: <0bf0b668-9fd5-aae9-bf7b-7b741beb84bd@kernel.org> On 2/10/2020 1:17 PM, Andrey Zhizhikin wrote: >> +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'aarch64', ' >> -march=armv8-a+crypto', '', d)}" > This cannot be enforced, as it would break those AArch64 derivatives, > which does not have Crypto extension. See my comment above, where I > extracted 2 sets of tune features for Cortex-A53. That means that > there are SoCs there from different vendors, and some vendors decided > to license Crypto extensions from ARM to include it in their RTL, but > some opted out to save either space on a die or cost of the processor. > > If you would base your build with '+crypto' unconditionally, then the > binary would segfault on those SoCs which has Crypto opted out. > > Moreover, enabling crypto extension in GCC automatically enables > inlined NEON and VFP opcodes (see [1]), and there are more side > effects to be expected on those SOCs which does not have those > integrated. > I agree. I dropped this line on v3. I was curious about TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'x64', ' -maes -msse4.1', '', d)}" do we have a feature flag for this too? Code doesn't compile without arch crypt support. From raj.khem at gmail.com Mon Feb 10 19:32:59 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 10 Feb 2020 11:32:59 -0800 Subject: [oe] FW: [meta-networking][master][zeus][PATCH] mosquitto.init In-Reply-To: References: Message-ID: On Mon, Feb 10, 2020 at 10:06 AM Mike Krupicka wrote: > > Reposting to tag master branch > > Config file specification is missing in start) case. It is present already in restart) case. > > Mike Perhaps the commit message could be improved a nit. I have already tweaked it locally but for future reference its good to make it like described here https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines > --- > .../recipes-connectivity/mosquitto/files/mosquitto.init | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init b/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init > index 6a0c12760..9d5963c41 100644 > --- a/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init > +++ b/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init > @@ -38,7 +38,7 @@ export PATH="${PATH:+$PATH:}@SBINDIR@:@BASE_SBINDIR@" > case "$1" in > start) > echo "Starting Mosquitto message broker" "mosquitto" > - if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} ; then > + if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} -- -c @SYSCONFDIR@/mosquitto/mosquitto.conf ; then > exit 0 > else > exit 1 > -- > 2.17.1 > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From raj.khem at gmail.com Mon Feb 10 19:36:50 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 10 Feb 2020 11:36:50 -0800 Subject: [oe] [meta-oe][PATCH v2] abseil-cpp: add recipe for git version In-Reply-To: <0bf0b668-9fd5-aae9-bf7b-7b741beb84bd@kernel.org> References: <20200210174720.31886-1-okaya@kernel.org> <0bf0b668-9fd5-aae9-bf7b-7b741beb84bd@kernel.org> Message-ID: On Mon, Feb 10, 2020 at 11:31 AM Sinan Kaya wrote: > > On 2/10/2020 1:17 PM, Andrey Zhizhikin wrote: > >> +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'aarch64', ' > >> -march=armv8-a+crypto', '', d)}" > > This cannot be enforced, as it would break those AArch64 derivatives, > > which does not have Crypto extension. See my comment above, where I > > extracted 2 sets of tune features for Cortex-A53. That means that > > there are SoCs there from different vendors, and some vendors decided > > to license Crypto extensions from ARM to include it in their RTL, but > > some opted out to save either space on a die or cost of the processor. > > > > If you would base your build with '+crypto' unconditionally, then the > > binary would segfault on those SoCs which has Crypto opted out. > > > > Moreover, enabling crypto extension in GCC automatically enables > > inlined NEON and VFP opcodes (see [1]), and there are more side > > effects to be expected on those SOCs which does not have those > > integrated. > > > > I agree. I dropped this line on v3. > > I was curious about > > TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'x64', ' -maes > -msse4.1', '', d)}" > > do we have a feature flag for this too? > perhaps look for corei7 in TUNE_FEATURES > Code doesn't compile without arch crypt support. > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From raj.khem at gmail.com Mon Feb 10 20:00:31 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 10 Feb 2020 12:00:31 -0800 Subject: [oe] [zeus 01/11] libldb: upgrade 1.5.5 -> 1.5.6 In-Reply-To: References: Message-ID: patch series looks good to me. On Sun, Feb 9, 2020 at 8:17 AM Armin Kuster wrote: > > From: Yi Zhao > > Signed-off-by: Yi Zhao > Signed-off-by: Khem Raj > (cherry picked from commit 2b3fd534874aee125a6c79c70c93b1aa498fda3f) > [Samba's update via ee5aa6911b2e93b89e67ae6167ee7d9a029b9262 required > libldb upgrade to 1.5.6 Yocto # 13750] > Signed-off-by: Armin Kuster > --- > .../libldb/{libldb_1.5.5.bb => libldb_1.5.6.bb} | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > rename meta-networking/recipes-support/libldb/{libldb_1.5.5.bb => libldb_1.5.6.bb} (95%) > > diff --git a/meta-networking/recipes-support/libldb/libldb_1.5.5.bb b/meta-networking/recipes-support/libldb/libldb_1.5.6.bb > similarity index 95% > rename from meta-networking/recipes-support/libldb/libldb_1.5.5.bb > rename to meta-networking/recipes-support/libldb/libldb_1.5.6.bb > index b19c964d85..99eb6f9ce8 100644 > --- a/meta-networking/recipes-support/libldb/libldb_1.5.5.bb > +++ b/meta-networking/recipes-support/libldb/libldb_1.5.6.bb > @@ -33,8 +33,8 @@ LIC_FILES_CHKSUM = "file://pyldb.h;endline=24;md5=dfbd238cecad76957f7f860fbe9ada > file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \ > file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42" > > -SRC_URI[md5sum] = "339a41ac9efaec680e6d1469dd9aa35b" > -SRC_URI[sha256sum] = "199f5861aa863f538ec66d5fa95ecc13254a2030c53daf0e47363fa9ba235c68" > +SRC_URI[md5sum] = "fc58ef432c1fcb03fc3bb6cccce08977" > +SRC_URI[sha256sum] = "ff82474d0bf109e415a2d50334bde5715f486a53ff4bb8c7f74459dd229e975b" > > inherit waf-samba distro_features_check > REQUIRED_DISTRO_FEATURES = "pam" > -- > 2.17.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From raj.khem at gmail.com Mon Feb 10 20:10:44 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 10 Feb 2020 12:10:44 -0800 Subject: [oe] [PATCH 1/4] mozjs: port build to python3 In-Reply-To: <9f2e4677-9acd-f0d7-2eda-140b954ae58f@gmail.com> References: <20200201163703.4264-1-schnitzeltony@gmail.com> <20200201163703.4264-2-schnitzeltony@gmail.com> <9f2e4677-9acd-f0d7-2eda-140b954ae58f@gmail.com> Message-ID: Hi Andreas I am seeing failure on OE builders like below TypeError: a bytes-like object is required, not 'str' detailed log http://errors.yoctoproject.org/Errors/Details/390559/ On Sat, Feb 1, 2020 at 9:49 AM Khem Raj wrote: > > Andreas > > Thanks a bunch for doing this work. This is a significant patch to > support deprecating py2, I have put it through CI lets see what we find > > Cheers > -Khem > > On 2/1/20 8:37 AM, Andreas M?ller wrote: > > While at it: > > > > * cleanup our patches > > * remove useless sed in do_configure > > > > > > Signed-off-by: Andreas M?ller > > --- > > .../mozjs/0001-Port-build-to-python3.patch | 6888 +++++++++++++++++ > > ...nclude-RequiredDefines.h-for-depend.patch} | 0 > > ...x-cross-compilation-on-i586-targets.patch} | 0 > > ...04-do-not-create-python-environment.patch} | 0 > > ....patch => 0005-fix-cannot-find-link.patch} | 0 > > ...ound-autoconf-2.13-detection-failed.patch} | 0 > > ... 0007-fix-do_compile-failed-on-mips.patch} | 0 > > ...ort.patch => 0008-add-riscv-support.patch} | 0 > > ...mozjs-fix-coredump-caused-by-getenv.patch} | 0 > > ...rflow.patch => 0010-format-overflow.patch} | 0 > > ... 0011-To-fix-build-error-on-arm32BE.patch} | 0 > > ...LIC_API.patch => 0012-JS_PUBLIC_API.patch} | 0 > > ...013-riscv-Disable-atomic-operations.patch} | 0 > > ... 0014-fallback-to-2011-C++-standard.patch} | 0 > > ...-compiling-failure-on-mips64-n32-bsp.patch | 0 > > .../0001-support-musl.patch} | 0 > > .../0002-js-Fix-build-with-musl.patch} | 0 > > .../recipes-extended/mozjs/mozjs_60.9.0.bb | 56 +- > > 18 files changed, 6917 insertions(+), 27 deletions(-) > > create mode 100644 meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch > > rename meta-oe/recipes-extended/mozjs/mozjs/{0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch => 0002-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch} (100%) > > rename meta-oe/recipes-extended/mozjs/mozjs/{0010-fix-cross-compilation-on-i586-targets.patch => 0003-fix-cross-compilation-on-i586-targets.patch} (100%) > > rename meta-oe/recipes-extended/mozjs/mozjs/{0001-do-not-create-python-environment.patch => 0004-do-not-create-python-environment.patch} (100%) > > rename meta-oe/recipes-extended/mozjs/mozjs/{0002-fix-cannot-find-link.patch => 0005-fix-cannot-find-link.patch} (100%) > > rename meta-oe/recipes-extended/mozjs/mozjs/{0003-workaround-autoconf-2.13-detection-failed.patch => 0006-workaround-autoconf-2.13-detection-failed.patch} (100%) > > rename meta-oe/recipes-extended/mozjs/mozjs/{0005-fix-do_compile-failed-on-mips.patch => 0007-fix-do_compile-failed-on-mips.patch} (100%) > > rename meta-oe/recipes-extended/mozjs/mozjs/{add-riscv-support.patch => 0008-add-riscv-support.patch} (100%) > > rename meta-oe/recipes-extended/mozjs/mozjs/{0001-mozjs-fix-coredump-caused-by-getenv.patch => 0009-mozjs-fix-coredump-caused-by-getenv.patch} (100%) > > rename meta-oe/recipes-extended/mozjs/mozjs/{format-overflow.patch => 0010-format-overflow.patch} (100%) > > rename meta-oe/recipes-extended/mozjs/mozjs/{0001-To-fix-build-error-on-arm32BE.patch => 0011-To-fix-build-error-on-arm32BE.patch} (100%) > > rename meta-oe/recipes-extended/mozjs/mozjs/{JS_PUBLIC_API.patch => 0012-JS_PUBLIC_API.patch} (100%) > > rename meta-oe/recipes-extended/mozjs/mozjs/{0001-riscv-Disable-atomic-operations.patch => 0013-riscv-Disable-atomic-operations.patch} (100%) > > rename meta-oe/recipes-extended/mozjs/mozjs/{fallback-to-2011-C++-standard.patch => 0014-fallback-to-2011-C++-standard.patch} (100%) > > rename meta-oe/recipes-extended/mozjs/mozjs/{ => mipsarchn32}/0001-fix-compiling-failure-on-mips64-n32-bsp.patch (100%) > > rename meta-oe/recipes-extended/mozjs/mozjs/{0006-support-musl.patch => musl/0001-support-musl.patch} (100%) > > rename meta-oe/recipes-extended/mozjs/mozjs/{0001-js-Fix-build-with-musl.patch => musl/0002-js-Fix-build-with-musl.patch} (100%) > > > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch b/meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch > > new file mode 100644 > > index 000000000..695dd97f6 > > --- /dev/null > > +++ b/meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch > > @@ -0,0 +1,6888 @@ > > +From 33a373ba41d978af60c2f0230bcba6ad27357ec8 Mon Sep 17 00:00:00 2001 > > +From: =?UTF-8?q?Andreas=20M=C3=BCller?= > > +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 > > +--- > > + 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 | 16 +- > > + 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 < > + > > +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') > > +- at imports(_from='__builtin__', _import='ValueError') > > ++ at 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') > > +- at imports(_from='__builtin__', _import='open') > > ++ at 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 > > +- at imports(_from='__builtin__', _import='Exception') > > ++ at 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') > > +- at imports(_from='__builtin__', _import='open') > > ++ at 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') > > +- at imports(_from='__builtin__', _import='Exception') > > ++ at 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') > > +- at imports(_from='__builtin__', _import='KeyError') > > +- at imports(_from='__builtin__', _import='ValueError') > > ++ at imports(_from='builtins', _import='KeyError') > > ++ at 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') > > +- at imports(_from='__builtin__', _import='open') > > ++ at 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) > > +- at imports(_from='__builtin__', _import='open') > > +- at imports(_from='__builtin__', _import='print') > > +- at imports(_from='__builtin__', _import='sorted') > > ++ at imports(_from='builtins', _import='open') > > ++ at imports(_from='builtins', _import='print') > > ++ at 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', > > + ) > > +- at imports(_from='__builtin__', _import='compile') > > +- at imports(_from='__builtin__', _import='open') > > ++ at imports(_from='builtins', _import='compile') > > ++ at 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): > > + ) > > + > > + > > +- at imports(_from='__builtin__', _import='open') > > ++ at 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') > > +- at imports(_from='__builtin__', _import='sorted') > > ++ at 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') > > +- at imports(_from='__builtin__', _import='min') > > ++ at imports(_from='builtins', _import='min') > > + def pgo_flags(compiler): > > + if compiler.type in ('gcc', 'clang'): > > + return namespace( > > +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. > > + > > + > > +- at 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') > > +- at imports(_from='__builtin__', _import='WindowsError') > > ++ at 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') > > +- at imports(_from='__builtin__', _import='ValueError') > > ++ at 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') > > +- at imports(_from='__builtin__', _import='sorted') > > +- at imports(_from='__builtin__', _import='WindowsError') > > ++ at imports(_from='builtins', _import='sorted') > > ++ at 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) > > +- at imports(_from='__builtin__', _import='sorted') > > ++ at 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') > > +- at imports(_from='__builtin__', _import='sorted') > > ++ at 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'(? > + > > + # 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 `` 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(' > +- 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(' > +- 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-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch b/meta-oe/recipes-extended/mozjs/mozjs/0002-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch > > similarity index 100% > > rename from meta-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch > > rename to meta-oe/recipes-extended/mozjs/mozjs/0002-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch b/meta-oe/recipes-extended/mozjs/mozjs/0003-fix-cross-compilation-on-i586-targets.patch > > similarity index 100% > > rename from meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch > > rename to meta-oe/recipes-extended/mozjs/mozjs/0003-fix-cross-compilation-on-i586-targets.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-do-not-create-python-environment.patch b/meta-oe/recipes-extended/mozjs/mozjs/0004-do-not-create-python-environment.patch > > similarity index 100% > > rename from meta-oe/recipes-extended/mozjs/mozjs/0001-do-not-create-python-environment.patch > > rename to meta-oe/recipes-extended/mozjs/mozjs/0004-do-not-create-python-environment.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0002-fix-cannot-find-link.patch b/meta-oe/recipes-extended/mozjs/mozjs/0005-fix-cannot-find-link.patch > > similarity index 100% > > rename from meta-oe/recipes-extended/mozjs/mozjs/0002-fix-cannot-find-link.patch > > rename to meta-oe/recipes-extended/mozjs/mozjs/0005-fix-cannot-find-link.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0003-workaround-autoconf-2.13-detection-failed.patch b/meta-oe/recipes-extended/mozjs/mozjs/0006-workaround-autoconf-2.13-detection-failed.patch > > similarity index 100% > > rename from meta-oe/recipes-extended/mozjs/mozjs/0003-workaround-autoconf-2.13-detection-failed.patch > > rename to meta-oe/recipes-extended/mozjs/mozjs/0006-workaround-autoconf-2.13-detection-failed.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0005-fix-do_compile-failed-on-mips.patch b/meta-oe/recipes-extended/mozjs/mozjs/0007-fix-do_compile-failed-on-mips.patch > > similarity index 100% > > rename from meta-oe/recipes-extended/mozjs/mozjs/0005-fix-do_compile-failed-on-mips.patch > > rename to meta-oe/recipes-extended/mozjs/mozjs/0007-fix-do_compile-failed-on-mips.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/add-riscv-support.patch b/meta-oe/recipes-extended/mozjs/mozjs/0008-add-riscv-support.patch > > similarity index 100% > > rename from meta-oe/recipes-extended/mozjs/mozjs/add-riscv-support.patch > > rename to meta-oe/recipes-extended/mozjs/mozjs/0008-add-riscv-support.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs-fix-coredump-caused-by-getenv.patch b/meta-oe/recipes-extended/mozjs/mozjs/0009-mozjs-fix-coredump-caused-by-getenv.patch > > similarity index 100% > > rename from meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs-fix-coredump-caused-by-getenv.patch > > rename to meta-oe/recipes-extended/mozjs/mozjs/0009-mozjs-fix-coredump-caused-by-getenv.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/format-overflow.patch b/meta-oe/recipes-extended/mozjs/mozjs/0010-format-overflow.patch > > similarity index 100% > > rename from meta-oe/recipes-extended/mozjs/mozjs/format-overflow.patch > > rename to meta-oe/recipes-extended/mozjs/mozjs/0010-format-overflow.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-To-fix-build-error-on-arm32BE.patch b/meta-oe/recipes-extended/mozjs/mozjs/0011-To-fix-build-error-on-arm32BE.patch > > similarity index 100% > > rename from meta-oe/recipes-extended/mozjs/mozjs/0001-To-fix-build-error-on-arm32BE.patch > > rename to meta-oe/recipes-extended/mozjs/mozjs/0011-To-fix-build-error-on-arm32BE.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/JS_PUBLIC_API.patch b/meta-oe/recipes-extended/mozjs/mozjs/0012-JS_PUBLIC_API.patch > > similarity index 100% > > rename from meta-oe/recipes-extended/mozjs/mozjs/JS_PUBLIC_API.patch > > rename to meta-oe/recipes-extended/mozjs/mozjs/0012-JS_PUBLIC_API.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-riscv-Disable-atomic-operations.patch b/meta-oe/recipes-extended/mozjs/mozjs/0013-riscv-Disable-atomic-operations.patch > > similarity index 100% > > rename from meta-oe/recipes-extended/mozjs/mozjs/0001-riscv-Disable-atomic-operations.patch > > rename to meta-oe/recipes-extended/mozjs/mozjs/0013-riscv-Disable-atomic-operations.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/fallback-to-2011-C++-standard.patch b/meta-oe/recipes-extended/mozjs/mozjs/0014-fallback-to-2011-C++-standard.patch > > similarity index 100% > > rename from meta-oe/recipes-extended/mozjs/mozjs/fallback-to-2011-C++-standard.patch > > rename to meta-oe/recipes-extended/mozjs/mozjs/0014-fallback-to-2011-C++-standard.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-fix-compiling-failure-on-mips64-n32-bsp.patch b/meta-oe/recipes-extended/mozjs/mozjs/mipsarchn32/0001-fix-compiling-failure-on-mips64-n32-bsp.patch > > similarity index 100% > > rename from meta-oe/recipes-extended/mozjs/mozjs/0001-fix-compiling-failure-on-mips64-n32-bsp.patch > > rename to meta-oe/recipes-extended/mozjs/mozjs/mipsarchn32/0001-fix-compiling-failure-on-mips64-n32-bsp.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0006-support-musl.patch b/meta-oe/recipes-extended/mozjs/mozjs/musl/0001-support-musl.patch > > similarity index 100% > > rename from meta-oe/recipes-extended/mozjs/mozjs/0006-support-musl.patch > > rename to meta-oe/recipes-extended/mozjs/mozjs/musl/0001-support-musl.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-js-Fix-build-with-musl.patch b/meta-oe/recipes-extended/mozjs/mozjs/musl/0002-js-Fix-build-with-musl.patch > > similarity index 100% > > rename from meta-oe/recipes-extended/mozjs/mozjs/0001-js-Fix-build-with-musl.patch > > rename to meta-oe/recipes-extended/mozjs/mozjs/musl/0002-js-Fix-build-with-musl.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs_60.9.0.bb b/meta-oe/recipes-extended/mozjs/mozjs_60.9.0.bb > > index 4f2da492f..9466c62aa 100644 > > --- a/meta-oe/recipes-extended/mozjs/mozjs_60.9.0.bb > > +++ b/meta-oe/recipes-extended/mozjs/mozjs_60.9.0.bb > > @@ -3,42 +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://archive.mozilla.org/pub/firefox/releases/${PV}esr/source/firefox-${PV}esr.source.tar.xz \ > > - 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://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 \ > > - " > > + 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 ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "pythonnative", "", d)} > > +inherit autotools pkgconfig perlnative python3native > > > > inherit features_check > > CONFLICT_DISTRO_FEATURES_mipsarchn32 = "ld-is-gold" > > > > -DEPENDS += "nspr zlib autoconf-2.13-native \ > > - 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 > > @@ -82,7 +85,7 @@ do_configure() { > > export SHELL="/bin/sh" > > cd ${S} > > # Add mozjs python-modules necessary > > - PYTHONPATH="$PYTHONPATH:${S}/config:${S}/build" > > + 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 > > @@ -96,7 +99,6 @@ do_configure() { > > > > cd ${S}/js/src > > autoconf213 --macrodir=${STAGING_DATADIR_NATIVE}/autoconf213 old-configure.in > old-configure > > - sed -i 's:refresh = True:refresh = False:g' ${S}/build/moz.configure/old.configure > > > > cd ${B} > > ${S}/js/src/configure ${EXTRA_OECONF} > > > From schnitzeltony at gmail.com Mon Feb 10 21:15:10 2020 From: schnitzeltony at gmail.com (=?UTF-8?Q?Andreas_M=C3=BCller?=) Date: Mon, 10 Feb 2020 22:15:10 +0100 Subject: [oe] [PATCH 1/4] mozjs: port build to python3 In-Reply-To: References: <20200201163703.4264-1-schnitzeltony@gmail.com> <20200201163703.4264-2-schnitzeltony@gmail.com> <9f2e4677-9acd-f0d7-2eda-140b954ae58f@gmail.com> Message-ID: On Mon, Feb 10, 2020 at 9:11 PM Khem Raj wrote: > > Hi Andreas > > I am seeing failure on OE builders like below > > TypeError: a bytes-like object is required, not 'str' > > detailed log > > http://errors.yoctoproject.org/Errors/Details/390559/ > > Yeah I've seen this kind of error dozens of times. >From the first glance I think it is gold which makes the difference. Hope to get it reproduced and fixed soon and come back BTW / off-topic: I sent similar patch for qtwebkit. Is that part of your builds? Andreas From raj.khem at gmail.com Mon Feb 10 21:17:31 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 10 Feb 2020 13:17:31 -0800 Subject: [oe] [PATCH 1/4] mozjs: port build to python3 In-Reply-To: References: <20200201163703.4264-1-schnitzeltony@gmail.com> <20200201163703.4264-2-schnitzeltony@gmail.com> <9f2e4677-9acd-f0d7-2eda-140b954ae58f@gmail.com> Message-ID: On Mon, Feb 10, 2020 at 1:15 PM Andreas M?ller wrote: > > On Mon, Feb 10, 2020 at 9:11 PM Khem Raj wrote: > > > > Hi Andreas > > > > I am seeing failure on OE builders like below > > > > TypeError: a bytes-like object is required, not 'str' > > > > detailed log > > > > http://errors.yoctoproject.org/Errors/Details/390559/ > > > > > Yeah I've seen this kind of error dozens of times. > > From the first glance I think it is gold which makes the difference. > Hope to get it reproduced and fixed soon and come back > > BTW / off-topic: I sent similar patch for qtwebkit. Is that part of your builds? > I use master-next of meta-qt5 so it does get built on some builders but on some where not enough compute is available, meta-qt5 is disabled. > Andreas From twoerner at gmail.com Mon Feb 10 22:45:30 2020 From: twoerner at gmail.com (Trevor Woerner) Date: Mon, 10 Feb 2020 17:45:30 -0500 Subject: [oe] [meta-python][PATCH] python3-bitarray: fix name Message-ID: <20200210224530.18390-1-twoerner@gmail.com> This recipe's filename is missing a trailing 'b'. Signed-off-by: Trevor Woerner --- .../{python3-bitarray_1.2.1.b => python3-bitarray_1.2.1.bb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename meta-python/recipes-devtools/python/{python3-bitarray_1.2.1.b => python3-bitarray_1.2.1.bb} (100%) diff --git a/meta-python/recipes-devtools/python/python3-bitarray_1.2.1.b b/meta-python/recipes-devtools/python/python3-bitarray_1.2.1.bb similarity index 100% rename from meta-python/recipes-devtools/python/python3-bitarray_1.2.1.b rename to meta-python/recipes-devtools/python/python3-bitarray_1.2.1.bb -- 2.25.0.114.g5b0ca878e0 From raj.khem at gmail.com Mon Feb 10 22:48:06 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 10 Feb 2020 14:48:06 -0800 Subject: [oe] [meta-oe][PATCH] mozjs: Fix gold linker detection with py3 Message-ID: <20200210224806.3303847-1-raj.khem@gmail.com> Signed-off-by: Khem Raj Cc: Andreas M?ller --- .../mozjs/mozjs/python3_string_encoding.patch | 20 +++++++++++++++++++ .../recipes-extended/mozjs/mozjs_60.9.0.bb | 1 + 2 files changed, 21 insertions(+) create mode 100644 meta-oe/recipes-extended/mozjs/mozjs/python3_string_encoding.patch diff --git a/meta-oe/recipes-extended/mozjs/mozjs/python3_string_encoding.patch b/meta-oe/recipes-extended/mozjs/mozjs/python3_string_encoding.patch new file mode 100644 index 0000000000..97eb012e83 --- /dev/null +++ b/meta-oe/recipes-extended/mozjs/mozjs/python3_string_encoding.patch @@ -0,0 +1,20 @@ +Fixes python3 erros like below + +AttributeError: 'bytes' object has no attribute 'encode' + +Upstream-Status: Pending +Signed-off-by: Khem Raj + +Index: firefox-60.9.0/build/moz.configure/toolchain.configure +=================================================================== +--- firefox-60.9.0.orig/build/moz.configure/toolchain.configure ++++ firefox-60.9.0/build/moz.configure/toolchain.configure +@@ -1518,7 +1518,7 @@ def enable_gnu_linker(enable_gold_option + if not gold: + return + +- goldFullPath = find_program(gold) ++ goldFullPath = find_program(gold.decode()) + if goldFullPath is None: + return + diff --git a/meta-oe/recipes-extended/mozjs/mozjs_60.9.0.bb b/meta-oe/recipes-extended/mozjs/mozjs_60.9.0.bb index 9466c62aac..b7731c7a2a 100644 --- a/meta-oe/recipes-extended/mozjs/mozjs_60.9.0.bb +++ b/meta-oe/recipes-extended/mozjs/mozjs_60.9.0.bb @@ -19,6 +19,7 @@ SRC_URI = " \ file://0012-JS_PUBLIC_API.patch \ file://0013-riscv-Disable-atomic-operations.patch \ file://0014-fallback-to-2011-C++-standard.patch \ + file://python3_string_encoding.patch \ " SRC_URI_append_libc-musl = " \ file://musl/0001-support-musl.patch \ -- 2.25.0 From twoerner at gmail.com Mon Feb 10 22:49:08 2020 From: twoerner at gmail.com (Trevor Woerner) Date: Mon, 10 Feb 2020 17:49:08 -0500 Subject: [oe] [meta-perl][PATCH] packagegroup-meta-perl: fix package name Message-ID: <20200210224908.13941-1-twoerner@gmail.com> There is no libcrypt-openssl-guess package, but there is a libcrypt-openssl-guess-perl. Signed-off-by: Trevor Woerner --- meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb b/meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb index 9d0e33baf..9b2406ba6 100644 --- a/meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb +++ b/meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb @@ -16,7 +16,7 @@ RDEPENDS_packagegroup-meta-perl = "\ libtext-wrapi18n-perl liblocale-gettext-perl libdata-hexdump-perl \ libextutils-installpaths-perl libextutils-helpers-perl libextutils-parsexs-perl \ libextutils-config-perl libextutils-cppguess-perl libimport-into-perl \ - libcrypt-openssl-rsa-perl libcrypt-openssl-guess libcrypt-openssl-random-perl \ + libcrypt-openssl-rsa-perl libcrypt-openssl-guess-perl libcrypt-openssl-random-perl \ libxml-sax-writer-perl libxml-libxml-perl libxml-filter-buffertext-perl \ adduser \ libauthen-sasl-perl libnet-ldap-perl libnet-dns-perl \ -- 2.25.0.114.g5b0ca878e0 From schnitzeltony at gmail.com Mon Feb 10 23:22:15 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Tue, 11 Feb 2020 00:22:15 +0100 Subject: [oe] [PATCH] mozjs: Fix python3 build with gold Message-ID: <20200210232215.8815-1-schnitzeltony@gmail.com> Fixes [1] [1] http://errors.yoctoproject.org/Errors/Details/390559/ Signed-off-by: Andreas M?ller --- .../mozjs/mozjs/0001-Port-build-to-python3.patch | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch b/meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch index 695dd97f6..e525047df 100644 --- a/meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch +++ b/meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch @@ -35,7 +35,7 @@ Signed-off-by: Andreas M?ller build/moz.configure/init.configure | 31 +- build/moz.configure/keyfiles.configure | 4 +- build/moz.configure/old.configure | 32 +- - build/moz.configure/toolchain.configure | 16 +- + build/moz.configure/toolchain.configure | 18 +- build/moz.configure/util.configure | 9 +- build/moz.configure/windows.configure | 10 +- build/templates.mozbuild | 2 +- @@ -451,6 +451,15 @@ index fc640c75e..c5508dfb7 100755 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 -- 2.21.0 From schnitzeltony at gmail.com Mon Feb 10 23:25:28 2020 From: schnitzeltony at gmail.com (=?UTF-8?Q?Andreas_M=C3=BCller?=) Date: Tue, 11 Feb 2020 00:25:28 +0100 Subject: [oe] [meta-oe][PATCH] mozjs: Fix gold linker detection with py3 In-Reply-To: <20200210224806.3303847-1-raj.khem@gmail.com> References: <20200210224806.3303847-1-raj.khem@gmail.com> Message-ID: On Mon, Feb 10, 2020 at 11:48 PM Khem Raj wrote: > > Signed-off-by: Khem Raj > Cc: Andreas M?ller > --- > .../mozjs/mozjs/python3_string_encoding.patch | 20 +++++++++++++++++++ > .../recipes-extended/mozjs/mozjs_60.9.0.bb | 1 + > 2 files changed, 21 insertions(+) > create mode 100644 meta-oe/recipes-extended/mozjs/mozjs/python3_string_encoding.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/python3_string_encoding.patch b/meta-oe/recipes-extended/mozjs/mozjs/python3_string_encoding.patch > new file mode 100644 > index 0000000000..97eb012e83 > --- /dev/null > +++ b/meta-oe/recipes-extended/mozjs/mozjs/python3_string_encoding.patch > @@ -0,0 +1,20 @@ > +Fixes python3 erros like below > + > +AttributeError: 'bytes' object has no attribute 'encode' > + > +Upstream-Status: Pending > +Signed-off-by: Khem Raj > + > +Index: firefox-60.9.0/build/moz.configure/toolchain.configure > +=================================================================== > +--- firefox-60.9.0.orig/build/moz.configure/toolchain.configure > ++++ firefox-60.9.0/build/moz.configure/toolchain.configure > +@@ -1518,7 +1518,7 @@ def enable_gnu_linker(enable_gold_option > + if not gold: > + return > + > +- goldFullPath = find_program(gold) > ++ goldFullPath = find_program(gold.decode()) > + if goldFullPath is None: > + return > + > diff --git a/meta-oe/recipes-extended/mozjs/mozjs_60.9.0.bb b/meta-oe/recipes-extended/mozjs/mozjs_60.9.0.bb > index 9466c62aac..b7731c7a2a 100644 > --- a/meta-oe/recipes-extended/mozjs/mozjs_60.9.0.bb > +++ b/meta-oe/recipes-extended/mozjs/mozjs_60.9.0.bb > @@ -19,6 +19,7 @@ SRC_URI = " \ > file://0012-JS_PUBLIC_API.patch \ > file://0013-riscv-Disable-atomic-operations.patch \ > file://0014-fallback-to-2011-C++-standard.patch \ > + file://python3_string_encoding.patch \ Just sent out similar. Would prefer to keep single patch for py3 at first position. Just in the unlikely case others want to use it :) Andreas From raj.khem at gmail.com Tue Feb 11 00:18:23 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 10 Feb 2020 16:18:23 -0800 Subject: [oe] [PATCH] mozjs: Fix python3 build with gold In-Reply-To: <20200210232215.8815-1-schnitzeltony@gmail.com> References: <20200210232215.8815-1-schnitzeltony@gmail.com> Message-ID: I will take this one instead of patch I posted. Thanks for quick response On Mon, Feb 10, 2020 at 3:22 PM Andreas M?ller wrote: > > Fixes [1] > > [1] http://errors.yoctoproject.org/Errors/Details/390559/ > > Signed-off-by: Andreas M?ller > --- > .../mozjs/mozjs/0001-Port-build-to-python3.patch | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch b/meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch > index 695dd97f6..e525047df 100644 > --- a/meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch > +++ b/meta-oe/recipes-extended/mozjs/mozjs/0001-Port-build-to-python3.patch > @@ -35,7 +35,7 @@ Signed-off-by: Andreas M?ller > build/moz.configure/init.configure | 31 +- > build/moz.configure/keyfiles.configure | 4 +- > build/moz.configure/old.configure | 32 +- > - build/moz.configure/toolchain.configure | 16 +- > + build/moz.configure/toolchain.configure | 18 +- > build/moz.configure/util.configure | 9 +- > build/moz.configure/windows.configure | 10 +- > build/templates.mozbuild | 2 +- > @@ -451,6 +451,15 @@ index fc640c75e..c5508dfb7 100755 > 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 > -- > 2.21.0 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From dan.callaghan at opengear.com Tue Feb 11 06:08:33 2020 From: dan.callaghan at opengear.com (Dan Callaghan) Date: Tue, 11 Feb 2020 16:08:33 +1000 Subject: [oe] [meta-networking][PATCH 1/2] quagga: fix tmpfiles snippet to refer to /run instead of /var/run Message-ID: <20200211060834.19790-1-dan.callaghan@opengear.com> This fixes a complaint from systemd on boot: systemd-tmpfiles[393]: [/etc/tmpfiles.d/quagga.conf:1] Line references path below legacy directory /var/run/, updating /var/run/quagga ? /run/quagga; please update the tmpfiles.d/ drop-in file accordingly. Signed-off-by: Dan Callaghan --- meta-networking/recipes-protocols/quagga/quagga.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-networking/recipes-protocols/quagga/quagga.inc b/meta-networking/recipes-protocols/quagga/quagga.inc index dfd6aa7eb..2673a8976 100644 --- a/meta-networking/recipes-protocols/quagga/quagga.inc +++ b/meta-networking/recipes-protocols/quagga/quagga.inc @@ -117,7 +117,7 @@ do_install () { if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then install -d ${D}${sysconfdir}/tmpfiles.d - echo "d /var/run/quagga 0755 quagga quagga -" \ + echo "d /run/quagga 0755 quagga quagga -" \ > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf fi -- 2.21.1 From dan.callaghan at opengear.com Tue Feb 11 06:08:34 2020 From: dan.callaghan at opengear.com (Dan Callaghan) Date: Tue, 11 Feb 2020 16:08:34 +1000 Subject: [oe] [meta-networking][PATCH 2/2] quagga: install tmpfiles snippet to /usr/lib/tmpfiles.d In-Reply-To: <20200211060834.19790-1-dan.callaghan@opengear.com> References: <20200211060834.19790-1-dan.callaghan@opengear.com> Message-ID: <20200211060834.19790-2-dan.callaghan@opengear.com> Package-owned tmpfiles snippets belong in /usr/lib/tmpfiles.d, /etc/tmpfiles.d is for administrator customisations. Signed-off-by: Dan Callaghan --- meta-networking/recipes-protocols/quagga/quagga.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-networking/recipes-protocols/quagga/quagga.inc b/meta-networking/recipes-protocols/quagga/quagga.inc index 2673a8976..f35b27160 100644 --- a/meta-networking/recipes-protocols/quagga/quagga.inc +++ b/meta-networking/recipes-protocols/quagga/quagga.inc @@ -116,9 +116,9 @@ do_install () { done if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/tmpfiles.d + install -d ${D}${nonarch_libdir}/tmpfiles.d echo "d /run/quagga 0755 quagga quagga -" \ - > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf + > ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf fi # Remove sysinit script if sysvinit is not in DISTRO_FEATURES -- 2.21.1 From raj.khem at gmail.com Tue Feb 11 07:06:22 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 10 Feb 2020 23:06:22 -0800 Subject: [oe] [meta-oe][PATCH v2] abseil-cpp: add recipe for git version In-Reply-To: References: <20200210174720.31886-1-okaya@kernel.org> <0bf0b668-9fd5-aae9-bf7b-7b741beb84bd@kernel.org> Message-ID: also fails on x86/musl http://errors.yoctoproject.org/Errors/Details/390565/ On Mon, Feb 10, 2020 at 11:36 AM Khem Raj wrote: > > On Mon, Feb 10, 2020 at 11:31 AM Sinan Kaya wrote: > > > > On 2/10/2020 1:17 PM, Andrey Zhizhikin wrote: > > >> +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'aarch64', ' > > >> -march=armv8-a+crypto', '', d)}" > > > This cannot be enforced, as it would break those AArch64 derivatives, > > > which does not have Crypto extension. See my comment above, where I > > > extracted 2 sets of tune features for Cortex-A53. That means that > > > there are SoCs there from different vendors, and some vendors decided > > > to license Crypto extensions from ARM to include it in their RTL, but > > > some opted out to save either space on a die or cost of the processor. > > > > > > If you would base your build with '+crypto' unconditionally, then the > > > binary would segfault on those SoCs which has Crypto opted out. > > > > > > Moreover, enabling crypto extension in GCC automatically enables > > > inlined NEON and VFP opcodes (see [1]), and there are more side > > > effects to be expected on those SOCs which does not have those > > > integrated. > > > > > > > I agree. I dropped this line on v3. > > > > I was curious about > > > > TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'x64', ' -maes > > -msse4.1', '', d)}" > > > > do we have a feature flag for this too? > > > > perhaps look for corei7 in TUNE_FEATURES > > > Code doesn't compile without arch crypt support. > > -- > > _______________________________________________ > > Openembedded-devel mailing list > > Openembedded-devel at lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From wangmy at cn.fujitsu.com Tue Feb 11 17:21:32 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Tue, 11 Feb 2020 09:21:32 -0800 Subject: [oe] [meta-oe][PATCH] xterm: upgrade 351 -> 353 In-Reply-To: <1581441693-85373-1-git-send-email-wangmy@cn.fujitsu.com> References: <1581441693-85373-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1581441693-85373-3-git-send-email-wangmy@cn.fujitsu.com> Copyright updated: 1996-2018,2019 -> 1999-2019,2020 Signed-off-by: Wang Mingyu --- .../xorg-app/{xterm_351.bb => xterm_353.bb} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename meta-oe/recipes-graphics/xorg-app/{xterm_351.bb => xterm_353.bb} (81%) diff --git a/meta-oe/recipes-graphics/xorg-app/xterm_351.bb b/meta-oe/recipes-graphics/xorg-app/xterm_353.bb similarity index 81% rename from meta-oe/recipes-graphics/xorg-app/xterm_351.bb rename to meta-oe/recipes-graphics/xorg-app/xterm_353.bb index 40ee555db..6de704d0b 100644 --- a/meta-oe/recipes-graphics/xorg-app/xterm_351.bb +++ b/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" -- 2.17.1 From wangmy at cn.fujitsu.com Tue Feb 11 17:21:31 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Tue, 11 Feb 2020 09:21:31 -0800 Subject: [oe] [meta-networking][PATCH] wireshark: upgrade 3.2.0 -> 3.2.1 In-Reply-To: <1581441693-85373-1-git-send-email-wangmy@cn.fujitsu.com> References: <1581441693-85373-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1581441693-85373-2-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../wireshark/{wireshark_3.2.0.bb => wireshark_3.2.1.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-networking/recipes-support/wireshark/{wireshark_3.2.0.bb => wireshark_3.2.1.bb} (95%) diff --git a/meta-networking/recipes-support/wireshark/wireshark_3.2.0.bb b/meta-networking/recipes-support/wireshark/wireshark_3.2.1.bb similarity index 95% rename from meta-networking/recipes-support/wireshark/wireshark_3.2.0.bb rename to meta-networking/recipes-support/wireshark/wireshark_3.2.1.bb index df46b3326..5f89ec812 100644 --- a/meta-networking/recipes-support/wireshark/wireshark_3.2.0.bb +++ b/meta-networking/recipes-support/wireshark/wireshark_3.2.1.bb @@ -12,8 +12,8 @@ SRC_URI = "https://1.eu.dl.wireshark.org/src/all-versions/wireshark-${PV}.tar.xz UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src" -SRC_URI[md5sum] = "259915adbbaded15de075afe7b4b03b6" -SRC_URI[sha256sum] = "4cfd33a19a454ff4002243e9d04d6afd64280a109a21ae652a192f2be2b1b66c" +SRC_URI[md5sum] = "e699b1e001c6303013791d81faf7727d" +SRC_URI[sha256sum] = "589f640058d6408ebbd695a80ebbd6e7bd99d8db64ecda253d27100dfd27e85b" PE = "1" -- 2.17.1 From wangmy at cn.fujitsu.com Tue Feb 11 17:21:33 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Tue, 11 Feb 2020 09:21:33 -0800 Subject: [oe] [meta-oe][PATCH] zabbix: upgrade 4.4.1 -> 4.4.5 In-Reply-To: <1581441693-85373-1-git-send-email-wangmy@cn.fujitsu.com> References: <1581441693-85373-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1581441693-85373-4-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../zabbix/{zabbix_4.4.1.bb => zabbix_4.4.5.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-connectivity/zabbix/{zabbix_4.4.1.bb => zabbix_4.4.5.bb} (95%) diff --git a/meta-oe/recipes-connectivity/zabbix/zabbix_4.4.1.bb b/meta-oe/recipes-connectivity/zabbix/zabbix_4.4.5.bb similarity index 95% rename from meta-oe/recipes-connectivity/zabbix/zabbix_4.4.1.bb rename to meta-oe/recipes-connectivity/zabbix/zabbix_4.4.5.bb index 656ff0dd8..108813f1e 100644 --- a/meta-oe/recipes-connectivity/zabbix/zabbix_4.4.1.bb +++ b/meta-oe/recipes-connectivity/zabbix/zabbix_4.4.5.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] = "69ab0c1bbf9d1f8979664498d36cc9a6" +SRC_URI[sha256sum] = "94a897825b062e17b34767c0864305cee6a87476dda8bee88dcf845b24bed0ea" inherit autotools-brokensep linux-kernel-base pkgconfig systemd useradd -- 2.17.1 From wangmy at cn.fujitsu.com Tue Feb 11 17:21:30 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Tue, 11 Feb 2020 09:21:30 -0800 Subject: [oe] [meta-filesystems][PATCH] xfsprogs: 5.2.1 -> 5.4.0 Message-ID: <1581441693-85373-1-git-send-email-wangmy@cn.fujitsu.com> Update license checksum : GPL-2.0-only and GPL-2.0-or-later are added to Valid-License-Identifier Signed-off-by: Wang Mingyu --- .../xfsprogs/{xfsprogs_5.2.1.bb => xfsprogs_5.4.0.bb} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename meta-filesystems/recipes-utils/xfsprogs/{xfsprogs_5.2.1.bb => xfsprogs_5.4.0.bb} (91%) diff --git a/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.2.1.bb b/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.4.0.bb similarity index 91% rename from meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.2.1.bb rename to meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.4.0.bb index 34b338640..288ec72f9 100644 --- a/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.2.1.bb +++ b/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.4.0.bb @@ -3,7 +3,7 @@ HOMEPAGE = "http://oss.sgi.com/projects/xfs" SECTION = "base" LICENSE = "GPLv2 & LGPLv2.1" LICENSE_libhandle = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0;md5=74274e8a218423e49eefdea80bc55038 \ +LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0;md5=e6a75371ba4d16749254a51215d13f97 \ file://LICENSES/LGPL-2.1;md5=b370887980db5dd40659b50909238dbd" DEPENDS = "util-linux util-linux-native" SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/${BP}.tar.xz \ @@ -12,8 +12,8 @@ SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/${BP}.tar.xz \ file://0002-include-include-xfs-linux.h-after-sys-mman.h.patch \ file://0001-support-usrmerge.patch \ " -SRC_URI[md5sum] = "5ca3f79e76e3fb984a03d1b42a2e60ba" -SRC_URI[sha256sum] = "7b500e148cebd08f99e37cf744c7843817b37e7be2a32c4dc57d6ea16e3019ae" +SRC_URI[md5sum] = "61232b1cc453780517d9b0c12ff1699b" +SRC_URI[sha256sum] = "fa9c3a50bbd9f1619bb42249106f83a22883b79a02de6606ce14afb2f807213f" inherit autotools-brokensep -- 2.17.1 From marek.bykowski at gmail.com Tue Feb 11 14:41:20 2020 From: marek.bykowski at gmail.com (Marek) Date: Tue, 11 Feb 2020 15:41:20 +0100 Subject: [oe] [meta-oe] [PATCHv3] lmbench: Fix/clean-up the build for lmbench In-Reply-To: References: <1571141621-20235-1-git-send-email-marek.bykowski@gmail.com> <20191016104557.GA7998@localhost> <20191016142112.10a645d2@gmail.com> <20191018134224.62ca6095@gmail.com> <83e0f896-8ec4-df4f-d14c-256cb70774c1@windriver.com> <20191021113018.3c684d51@gmail.com> <0411e8da-91a7-f586-2d65-490e8c327c2d@windriver.com> <20191022091523.60d5434a@gmail.com> <20191022120320.71fb6436@gmail.com> Message-ID: Any updates if it is going to be taken in? Thanks, Marek On Thu, 19 Dec 2019 at 13:34, Marek wrote: > I don't think Intel is interested in the pull request ( > https://github.com/intel/lmbench/pull/9). With that are you still > planning on taking the change in? > > Thanks, > Marek > > On Fri, 8 Nov 2019 at 18:13, Khem Raj wrote: > >> Hi Marek >> >> I thought there are some feedbacks to be addressed, so I was hoping to >> get a v3 >> >> On Fri, Nov 8, 2019 at 5:24 AM Marek wrote: >> > >> > Any thoughts if this is going to be included in the upstream? >> > Thanks, >> > Marek >> > >> > On Tue, 22 Oct 2019 at 12:03, marek.bykowski at gmail.com >> > wrote: >> > > >> > > On Tue, 22 Oct 2019 09:15:23 +0200 >> > > "marek.bykowski at gmail.com" wrote: >> > > >> > > > On Mon, 21 Oct 2019 19:42:45 -0400 >> > > > Randy MacLeod wrote: >> > > > >> > > > > We have had Intel employees working on oe-core / meta-openembedded >> > > > > for years so I hope that you will send the commit to that repo on >> > > > > github and indicate the >> > > > > upstream-status in the patch what we integrate into meta-oe. >> > > > >> > > > Hi Randy, >> > > > >> > > > I'm Intel (actually a subcontractor to them) working on occasion >> with >> > > > Daniel Drogomir, Charlie Paul, and Chantale Ouimet from Windriver. I >> > > > have put the names as chances they may be your colleagues. Even >> > > > though I'm Intel I didn't know of lmbench Intel repo on github - >> this >> > > > must a totally different team. Sure I'll send the patch onto that >> > > > repo indicating these are the changes integration planned into >> > > > meta-oe. >> > > > >> > > > Regards, >> > > > Marek >> > > >> > > Done https://github.com/intel/lmbench/pull/9 >> > >> > >> > >> > -- >> > Sl?n, >> > Marek >> > > > -- > Sl?n, > Marek > -- Sl?n, Marek From raj.khem at gmail.com Tue Feb 11 16:31:18 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 11 Feb 2020 08:31:18 -0800 Subject: [oe] [meta-oe] [PATCHv3] lmbench: Fix/clean-up the build for lmbench In-Reply-To: References: <1571141621-20235-1-git-send-email-marek.bykowski@gmail.com> <20191016104557.GA7998@localhost> <20191016142112.10a645d2@gmail.com> <20191018134224.62ca6095@gmail.com> <83e0f896-8ec4-df4f-d14c-256cb70774c1@windriver.com> <20191021113018.3c684d51@gmail.com> <0411e8da-91a7-f586-2d65-490e8c327c2d@windriver.com> <20191022091523.60d5434a@gmail.com> <20191022120320.71fb6436@gmail.com> Message-ID: On Tue, Feb 11, 2020 at 6:41 AM Marek wrote: > > Any updates if it is going to be taken in? Can you resend the latest patch once again? with all feedbacks addressed > Thanks, > Marek > > On Thu, 19 Dec 2019 at 13:34, Marek wrote: >> >> I don't think Intel is interested in the pull request (https://github.com/intel/lmbench/pull/9). With that are you still planning on taking the change in? >> >> Thanks, >> Marek >> >> On Fri, 8 Nov 2019 at 18:13, Khem Raj wrote: >>> >>> Hi Marek >>> >>> I thought there are some feedbacks to be addressed, so I was hoping to get a v3 >>> >>> On Fri, Nov 8, 2019 at 5:24 AM Marek wrote: >>> > >>> > Any thoughts if this is going to be included in the upstream? >>> > Thanks, >>> > Marek >>> > >>> > On Tue, 22 Oct 2019 at 12:03, marek.bykowski at gmail.com >>> > wrote: >>> > > >>> > > On Tue, 22 Oct 2019 09:15:23 +0200 >>> > > "marek.bykowski at gmail.com" wrote: >>> > > >>> > > > On Mon, 21 Oct 2019 19:42:45 -0400 >>> > > > Randy MacLeod wrote: >>> > > > >>> > > > > We have had Intel employees working on oe-core / meta-openembedded >>> > > > > for years so I hope that you will send the commit to that repo on >>> > > > > github and indicate the >>> > > > > upstream-status in the patch what we integrate into meta-oe. >>> > > > >>> > > > Hi Randy, >>> > > > >>> > > > I'm Intel (actually a subcontractor to them) working on occasion with >>> > > > Daniel Drogomir, Charlie Paul, and Chantale Ouimet from Windriver. I >>> > > > have put the names as chances they may be your colleagues. Even >>> > > > though I'm Intel I didn't know of lmbench Intel repo on github - this >>> > > > must a totally different team. Sure I'll send the patch onto that >>> > > > repo indicating these are the changes integration planned into >>> > > > meta-oe. >>> > > > >>> > > > Regards, >>> > > > Marek >>> > > >>> > > Done https://github.com/intel/lmbench/pull/9 >>> > >>> > >>> > >>> > -- >>> > Sl?n, >>> > Marek >> >> >> >> -- >> Sl?n, >> Marek > > > > -- > Sl?n, > Marek From okaya at kernel.org Tue Feb 11 16:41:01 2020 From: okaya at kernel.org (Sinan Kaya) Date: Tue, 11 Feb 2020 16:41:01 +0000 Subject: [oe] [meta-oe][PATCH v4] abseil-cpp: add recipe for git version Message-ID: <20200211164101.75963-1-okaya@kernel.org> The repository contains the Abseil C++ library code. Abseil is an open-source collection of C++ code (compliant to C++11) designed to augment the C++ standard library. https://github.com/abseil/abseil-cpp Signed-off-by: Changyu Li Signed-off-by: Sinan Kaya --- ...e-maes-option-from-cross-compilation.patch | 53 +++++++++++++++++++ ...n-ABSL_HAVE_VDSO_SUPPORT-conditional.patch | 35 ++++++++++++ .../abseil-cpp/abseil-cpp_git.bb | 52 ++++++++++++++++++ 3 files changed, 140 insertions(+) create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch new file mode 100644 index 0000000000..4c41cd8902 --- /dev/null +++ b/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 +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-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch new file mode 100644 index 0000000000..fab4a738ea --- /dev/null +++ b/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 +Date: Tue, 11 Feb 2020 11:36:00 -0500 +Subject: [PATCH] Add forgotten ABSL_HAVE_VDSO_SUPPORT conditional + +Signed-off-by: Sinan Kaya +--- + 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-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb new file mode 100644 index 0000000000..1f7681a563 --- /dev/null +++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb @@ -0,0 +1,52 @@ +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" + +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 \ + " + +S = "${WORKDIR}/git" + +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'x64', ' -maes -msse4.1', '', d)}" + +CXXFLAGS_append = " -fPIC" +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: + 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: + 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)) + +} + -- 2.23.0 From okaya at kernel.org Tue Feb 11 16:41:37 2020 From: okaya at kernel.org (Sinan Kaya) Date: Tue, 11 Feb 2020 11:41:37 -0500 Subject: [oe] [meta-oe][PATCH v2] abseil-cpp: add recipe for git version In-Reply-To: References: <20200210174720.31886-1-okaya@kernel.org> <0bf0b668-9fd5-aae9-bf7b-7b741beb84bd@kernel.org> Message-ID: <51885d97-336f-1a67-cde5-e996ee378d39@kernel.org> On 2/11/2020 2:06 AM, Khem Raj wrote: > also fails on x86/musl > > http://errors.yoctoproject.org/Errors/Details/390565/ Upstream bug. Posted v4. From okaya at kernel.org Tue Feb 11 16:42:16 2020 From: okaya at kernel.org (Sinan Kaya) Date: Tue, 11 Feb 2020 16:42:16 +0000 Subject: [oe] [meta-oe][PATCH v5] abseil-cpp: add recipe for git version Message-ID: <20200211164216.77115-1-okaya@kernel.org> The repository contains the Abseil C++ library code. Abseil is an open-source collection of C++ code (compliant to C++11) designed to augment the C++ standard library. https://github.com/abseil/abseil-cpp Signed-off-by: Changyu Li Signed-off-by: Sinan Kaya --- ...e-maes-option-from-cross-compilation.patch | 53 +++++++++++++++++++ ...n-ABSL_HAVE_VDSO_SUPPORT-conditional.patch | 35 ++++++++++++ .../abseil-cpp/abseil-cpp_git.bb | 50 +++++++++++++++++ 3 files changed, 138 insertions(+) create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch new file mode 100644 index 0000000000..4c41cd8902 --- /dev/null +++ b/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 +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-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch new file mode 100644 index 0000000000..fab4a738ea --- /dev/null +++ b/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 +Date: Tue, 11 Feb 2020 11:36:00 -0500 +Subject: [PATCH] Add forgotten ABSL_HAVE_VDSO_SUPPORT conditional + +Signed-off-by: Sinan Kaya +--- + 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-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb new file mode 100644 index 0000000000..6d5289e27b --- /dev/null +++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb @@ -0,0 +1,50 @@ +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" + +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 \ + " + +S = "${WORKDIR}/git" + +CXXFLAGS_append = " -fPIC" +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: + 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: + 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)) + +} + -- 2.23.0 From okaya at kernel.org Tue Feb 11 16:43:19 2020 From: okaya at kernel.org (Sinan Kaya) Date: Tue, 11 Feb 2020 11:43:19 -0500 Subject: [oe] [meta-oe][PATCH v2] abseil-cpp: add recipe for git version In-Reply-To: References: <20200210174720.31886-1-okaya@kernel.org> <0bf0b668-9fd5-aae9-bf7b-7b741beb84bd@kernel.org> Message-ID: <6cab4c90-f1f5-ac8b-6565-a4bdd2830608@kernel.org> On 2/10/2020 2:36 PM, Khem Raj wrote: >> do we have a feature flag for this too? >> > perhaps look for corei7 in TUNE_FEATURES > done From raj.khem at gmail.com Tue Feb 11 16:46:10 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 11 Feb 2020 08:46:10 -0800 Subject: [oe] [meta-oe][PATCH v4] abseil-cpp: add recipe for git version In-Reply-To: <20200211164101.75963-1-okaya@kernel.org> References: <20200211164101.75963-1-okaya@kernel.org> Message-ID: Thanks Sinan, this looks good. Although I wonder why do we need to add -fPIC manually. On Tue, Feb 11, 2020 at 8:41 AM Sinan Kaya wrote: > > The repository contains the Abseil C++ library code. Abseil is an > open-source collection of C++ code (compliant to C++11) designed to > augment the C++ standard library. > > https://github.com/abseil/abseil-cpp > > Signed-off-by: Changyu Li > Signed-off-by: Sinan Kaya > --- > ...e-maes-option-from-cross-compilation.patch | 53 +++++++++++++++++++ > ...n-ABSL_HAVE_VDSO_SUPPORT-conditional.patch | 35 ++++++++++++ > .../abseil-cpp/abseil-cpp_git.bb | 52 ++++++++++++++++++ > 3 files changed, 140 insertions(+) > create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch > create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch > create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb > > diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch > new file mode 100644 > index 0000000000..4c41cd8902 > --- /dev/null > +++ b/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 > +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-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch > new file mode 100644 > index 0000000000..fab4a738ea > --- /dev/null > +++ b/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 > +Date: Tue, 11 Feb 2020 11:36:00 -0500 > +Subject: [PATCH] Add forgotten ABSL_HAVE_VDSO_SUPPORT conditional > + > +Signed-off-by: Sinan Kaya > +--- > + 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-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb > new file mode 100644 > index 0000000000..1f7681a563 > --- /dev/null > +++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb > @@ -0,0 +1,52 @@ > +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" > + > +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 \ > + " > + > +S = "${WORKDIR}/git" > + > +TARGET_CXXFLAGS += "${@bb.utils.contains('TARGET_ARCH', 'x64', ' -maes -msse4.1', '', d)}" > + > +CXXFLAGS_append = " -fPIC" > +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: > + 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: > + 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)) > + > +} > + > -- > 2.23.0 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From okaya at kernel.org Tue Feb 11 16:48:39 2020 From: okaya at kernel.org (Sinan Kaya) Date: Tue, 11 Feb 2020 11:48:39 -0500 Subject: [oe] [meta-oe][PATCH v4] abseil-cpp: add recipe for git version In-Reply-To: References: <20200211164101.75963-1-okaya@kernel.org> Message-ID: <63d3f5f5-ab3f-4587-b1f9-78aa77fd3560@kernel.org> On 2/11/2020 11:46 AM, Khem Raj wrote: > Thanks Sinan, this looks good. Although I wonder why do we need to add > -fPIC manually. I searched the library. It is not being set there and I had linker errors on both arm64 and x86_64 without it. From raj.khem at gmail.com Tue Feb 11 16:53:05 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 11 Feb 2020 08:53:05 -0800 Subject: [oe] [meta-oe][PATCH v4] abseil-cpp: add recipe for git version In-Reply-To: <63d3f5f5-ab3f-4587-b1f9-78aa77fd3560@kernel.org> References: <20200211164101.75963-1-okaya@kernel.org> <63d3f5f5-ab3f-4587-b1f9-78aa77fd3560@kernel.org> Message-ID: On Tue, Feb 11, 2020 at 8:48 AM Sinan Kaya wrote: > > On 2/11/2020 11:46 AM, Khem Raj wrote: > > Thanks Sinan, this looks good. Although I wonder why do we need to add > > -fPIC manually. > > I searched the library. It is not being set there and I had linker > errors on both arm64 and x86_64 without it. right, so I wonder if it should be patches in the makery of the component separately and sent upstream From okaya at kernel.org Tue Feb 11 16:55:03 2020 From: okaya at kernel.org (Sinan Kaya) Date: Tue, 11 Feb 2020 11:55:03 -0500 Subject: [oe] [meta-oe][PATCH v4] abseil-cpp: add recipe for git version In-Reply-To: References: <20200211164101.75963-1-okaya@kernel.org> <63d3f5f5-ab3f-4587-b1f9-78aa77fd3560@kernel.org> Message-ID: <15178cd4-7e19-65b6-9768-7de080f2cb57@kernel.org> On 2/11/2020 11:53 AM, Khem Raj wrote: > right, so I wonder if it should be patches in the makery of the > component separately and sent upstream Yes, I can do that. From okaya at kernel.org Tue Feb 11 17:01:21 2020 From: okaya at kernel.org (Sinan Kaya) Date: Tue, 11 Feb 2020 17:01:21 +0000 Subject: [oe] [meta-oe][PATCH v6] abseil-cpp: add recipe for git version Message-ID: <20200211170121.95431-1-okaya@kernel.org> The repository contains the Abseil C++ library code. Abseil is an open-source collection of C++ code (compliant to C++11) designed to augment the C++ standard library. https://github.com/abseil/abseil-cpp Signed-off-by: Changyu Li Signed-off-by: Sinan Kaya --- ...e-maes-option-from-cross-compilation.patch | 53 +++++++++++++++++++ ...n-ABSL_HAVE_VDSO_SUPPORT-conditional.patch | 35 ++++++++++++ .../abseil-cpp/0003-Add-fPIC-option.patch | 27 ++++++++++ .../abseil-cpp/abseil-cpp_git.bb | 50 +++++++++++++++++ 4 files changed, 165 insertions(+) create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Add-fPIC-option.patch create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch new file mode 100644 index 0000000000..4c41cd8902 --- /dev/null +++ b/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 +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-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch new file mode 100644 index 0000000000..fab4a738ea --- /dev/null +++ b/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 +Date: Tue, 11 Feb 2020 11:36:00 -0500 +Subject: [PATCH] Add forgotten ABSL_HAVE_VDSO_SUPPORT conditional + +Signed-off-by: Sinan Kaya +--- + 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-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Add-fPIC-option.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Add-fPIC-option.patch new file mode 100644 index 0000000000..bb78813a7f --- /dev/null +++ b/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 +Date: Tue, 11 Feb 2020 11:58:02 -0500 +Subject: [PATCH] Add fPIC option + +Signed-off-by: Sinan Kaya +--- + 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-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb new file mode 100644 index 0000000000..535d041b35 --- /dev/null +++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb @@ -0,0 +1,50 @@ +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" + +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 \ + " + +S = "${WORKDIR}/git" + +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: + 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: + 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)) + +} + -- 2.23.0 From andrey.z at gmail.com Tue Feb 11 19:28:16 2020 From: andrey.z at gmail.com (Andrey Zhizhikin) Date: Tue, 11 Feb 2020 20:28:16 +0100 Subject: [oe] [meta-oe][PATCH v6] abseil-cpp: add recipe for git version In-Reply-To: <20200211170121.95431-1-okaya@kernel.org> References: <20200211170121.95431-1-okaya@kernel.org> Message-ID: Hello Sinan, First of - is it a v2 of the previous patch you sent earlier? It was not mentioned in the header... On Tue, Feb 11, 2020 at 6:01 PM Sinan Kaya wrote: > > The repository contains the Abseil C++ library code. Abseil is an > open-source collection of C++ code (compliant to C++11) designed to > augment the C++ standard library. > > https://github.com/abseil/abseil-cpp > > Signed-off-by: Changyu Li > Signed-off-by: Sinan Kaya > --- > ...e-maes-option-from-cross-compilation.patch | 53 +++++++++++++++++++ > ...n-ABSL_HAVE_VDSO_SUPPORT-conditional.patch | 35 ++++++++++++ > .../abseil-cpp/0003-Add-fPIC-option.patch | 27 ++++++++++ > .../abseil-cpp/abseil-cpp_git.bb | 50 +++++++++++++++++ > 4 files changed, 165 insertions(+) > create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch > create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch > create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Add-fPIC-option.patch > create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb > > diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch > new file mode 100644 > index 0000000000..4c41cd8902 > --- /dev/null > +++ b/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 > +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-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch > new file mode 100644 > index 0000000000..fab4a738ea > --- /dev/null > +++ b/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 > +Date: Tue, 11 Feb 2020 11:36:00 -0500 > +Subject: [PATCH] Add forgotten ABSL_HAVE_VDSO_SUPPORT conditional > + > +Signed-off-by: Sinan Kaya > +--- > + 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-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Add-fPIC-option.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Add-fPIC-option.patch > new file mode 100644 > index 0000000000..bb78813a7f > --- /dev/null > +++ b/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 > +Date: Tue, 11 Feb 2020 11:58:02 -0500 > +Subject: [PATCH] Add fPIC option > + > +Signed-off-by: Sinan Kaya > +--- > + 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-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb > new file mode 100644 > index 0000000000..535d041b35 > --- /dev/null > +++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb > @@ -0,0 +1,50 @@ > +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" > + > +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 \ > + " > + > +S = "${WORKDIR}/git" > + > +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: > + return This sounds to me that if there are no TUNES set - recipe safely assumes that Crypto feature is available... Even though it contradicts the logic below: > + 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)) this says: "No Crypto - would not build". > + > + if arch == "x86_64": > + tunes = d.getVar("TUNE_FEATURES") > + if not tunes: > + return Same here for x86-64... > + 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)) > + > +} > + > -- > 2.23.0 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel -- Regards, Andrey. From okaya at kernel.org Tue Feb 11 19:35:23 2020 From: okaya at kernel.org (Sinan Kaya) Date: Tue, 11 Feb 2020 14:35:23 -0500 Subject: [oe] [meta-oe][PATCH v6] abseil-cpp: add recipe for git version In-Reply-To: References: <20200211170121.95431-1-okaya@kernel.org> Message-ID: <5fdceb29-7c35-9682-7145-fb5cbb725c86@kernel.org> On 2/11/2020 2:28 PM, Andrey Zhizhikin wrote: > Hello Sinan, > > First of - is it a v2 of the previous patch you sent earlier? It was > not mentioned in the header... I agree, I am and was lazy. I have been addressing the comments from Khem. I tried to get it out of my devbox ASAP. > > > This sounds to me that if there are no TUNES set - recipe safely > assumes that Crypto feature is available... Even though it contradicts > the logic below: makes sense > >> + 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)) > this says: "No Crypto - would not build". > >> + >> + if arch == "x86_64": >> + tunes = d.getVar("TUNE_FEATURES") >> + if not tunes: >> + return > > Same here for x86-64... sure, makes sense > >> + 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)) >> + >> +} >> + >> -- >> 2.23.0 >> >> -- >> _______________________________________________ >> Openembedded-devel mailing list >> Openembedded-devel at lists.openembedded.org >> http://lists.openembedded.org/mailman/listinfo/openembedded-devel > > > From raj.khem at gmail.com Wed Feb 12 00:43:27 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 11 Feb 2020 16:43:27 -0800 Subject: [oe] [meta-filesystems][PATCH] xfsprogs: 5.2.1 -> 5.4.0 In-Reply-To: <1581441693-85373-1-git-send-email-wangmy@cn.fujitsu.com> References: <1581441693-85373-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: Fails build http://errors.yoctoproject.org/Errors/Details/390596/ On 2/11/20 9:21 AM, Wang Mingyu wrote: > Update license checksum : GPL-2.0-only and GPL-2.0-or-later are added to Valid-License-Identifier > > Signed-off-by: Wang Mingyu > --- > .../xfsprogs/{xfsprogs_5.2.1.bb => xfsprogs_5.4.0.bb} | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > rename meta-filesystems/recipes-utils/xfsprogs/{xfsprogs_5.2.1.bb => xfsprogs_5.4.0.bb} (91%) > > diff --git a/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.2.1.bb b/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.4.0.bb > similarity index 91% > rename from meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.2.1.bb > rename to meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.4.0.bb > index 34b338640..288ec72f9 100644 > --- a/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.2.1.bb > +++ b/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.4.0.bb > @@ -3,7 +3,7 @@ HOMEPAGE = "http://oss.sgi.com/projects/xfs" > SECTION = "base" > LICENSE = "GPLv2 & LGPLv2.1" > LICENSE_libhandle = "LGPLv2.1" > -LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0;md5=74274e8a218423e49eefdea80bc55038 \ > +LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0;md5=e6a75371ba4d16749254a51215d13f97 \ > file://LICENSES/LGPL-2.1;md5=b370887980db5dd40659b50909238dbd" > DEPENDS = "util-linux util-linux-native" > SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/${BP}.tar.xz \ > @@ -12,8 +12,8 @@ SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/${BP}.tar.xz \ > file://0002-include-include-xfs-linux.h-after-sys-mman.h.patch \ > file://0001-support-usrmerge.patch \ > " > -SRC_URI[md5sum] = "5ca3f79e76e3fb984a03d1b42a2e60ba" > -SRC_URI[sha256sum] = "7b500e148cebd08f99e37cf744c7843817b37e7be2a32c4dc57d6ea16e3019ae" > +SRC_URI[md5sum] = "61232b1cc453780517d9b0c12ff1699b" > +SRC_URI[sha256sum] = "fa9c3a50bbd9f1619bb42249106f83a22883b79a02de6606ce14afb2f807213f" > > inherit autotools-brokensep > > From raj.khem at gmail.com Wed Feb 12 00:44:45 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 11 Feb 2020 16:44:45 -0800 Subject: [oe] [meta-networking][PATCH 2/2] quagga: install tmpfiles snippet to /usr/lib/tmpfiles.d In-Reply-To: <20200211060834.19790-2-dan.callaghan@opengear.com> References: <20200211060834.19790-1-dan.callaghan@opengear.com> <20200211060834.19790-2-dan.callaghan@opengear.com> Message-ID: <1d4e0221-9376-b5e5-9a85-9c59559e0c43@gmail.com> On 2/10/20 10:08 PM, Dan Callaghan wrote: > Package-owned tmpfiles snippets belong in /usr/lib/tmpfiles.d, > /etc/tmpfiles.d is for administrator customisations. > > Signed-off-by: Dan Callaghan > --- > meta-networking/recipes-protocols/quagga/quagga.inc | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/meta-networking/recipes-protocols/quagga/quagga.inc b/meta-networking/recipes-protocols/quagga/quagga.inc > index 2673a8976..f35b27160 100644 > --- a/meta-networking/recipes-protocols/quagga/quagga.inc > +++ b/meta-networking/recipes-protocols/quagga/quagga.inc > @@ -116,9 +116,9 @@ do_install () { > done > > if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then > - install -d ${D}${sysconfdir}/tmpfiles.d > + install -d ${D}${nonarch_libdir}/tmpfiles.d > echo "d /run/quagga 0755 quagga quagga -" \ > - > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf > + > ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf > fi > > # Remove sysinit script if sysvinit is not in DISTRO_FEATURES > Fails packaging ERROR: QA Issue: quagga: Files/directories were installed but not shipped in any package: /usr/lib/tmpfiles.d /usr/lib/tmpfiles.d/quagga.conf http://errors.yoctoproject.org/Errors/Details/390597/ From raj.khem at gmail.com Wed Feb 12 01:30:39 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 11 Feb 2020 17:30:39 -0800 Subject: [oe] [meta-perl][PATCH] libconfig, libfile, libtest: Do not inherit allarch Message-ID: <20200212013039.4054793-1-raj.khem@gmail.com> These perl modules use cpan class, which adds build time dependency on perl, and since perl is arch specific this ends up with sstate signature differences for do_configure when arch is changed, therefore these packages needs to be made part of arch package-arch Fixes ERROR: libconfig-autoconf-perl different signature for task do_configure.sigdata between qemux86copy and qemuarm NOTE: Starting bitbake server... NOTE: Started PRServer with DBfile: /home/jenkins/oe/world/yoe/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 43053, PID: 16399 Hash for dependent task libconfig/libconfig-autoconf-perl_0.318.bb:do_prepare_recipe_sysroot changed from 66cd7f8d93afb36b314a0604e94f72151cb18410f395bc949156188a764ad68c to d9752dd39f67802473ebfe048ca1a688d684c7c31483e648c4e43bde9b16e3b5 Unable to find matching sigdata for /home/jenkins/oe/world/yoe/sources/meta-openembedded/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb:do_prepare_recipe_sysroot with hashes 66cd7f8d93afb36b314a0604e94f72151cb18410f395bc949156188a764ad68c or d9752dd39f67802473ebfe048ca1a688d684c7c31483e648c4e43bde9b16e3b5 ERROR: libfile-slurper-perl different signature for task do_configure.sigdata between qemux86copy and qemuarm NOTE: Starting bitbake server... NOTE: Started PRServer with DBfile: /home/jenkins/oe/world/yoe/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 39201, PID: 16448 Hash for dependent task libfile/libfile-slurper-perl_0.012.bb:do_prepare_recipe_sysroot changed from d6fd4eb704e706ed44daf37099d47fd188f6ac8c212c779dbfa7e40cff7bf449 to 9f0c17d2bf8389c634c143cc908e81f85b4d4bdab245199c86d4ae4480856d0d Unable to find matching sigdata for /home/jenkins/oe/world/yoe/sources/meta-openembedded/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb:do_prepare_recipe_sysroot with hashes d6fd4eb704e706ed44daf37099d47fd188f6ac8c212c779dbfa7e40cff7bf449 or 9f0c17d2bf8389c634c143cc908e81f85b4d4bdab245199c86d4ae4480856d0d ERROR: libtest-warnings-perl different signature for task do_configure.sigdata between qemux86copy and qemuarm NOTE: Starting bitbake server... NOTE: Started PRServer with DBfile: /home/jenkins/oe/world/yoe/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 43651, PID: 16479 Hash for dependent task libtest/libtest-warnings-perl_0.028.bb:do_prepare_recipe_sysroot changed from 77d070ada82799a51cce33ae63f70dafb2c20111e0dca15afc041efea22f1cd4 to 3d0bd29b23c66f14d4041153683eaa3d4ee0098e2b023747801748eb49da6300 Unable to find matching sigdata for /home/jenkins/oe/world/yoe/sources/meta-openembedded/meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.028.bb:do_prepare_recipe_sysroot with hashes 77d070ada82799a51cce33ae63f70dafb2c20111e0dca15afc041efea22f1cd4 or 3d0bd29b23c66f14d4041153683eaa3d4ee0098e2b023747801748eb49da6300 Signed-off-by: Khem Raj Cc: Jens Rehsack --- .../recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb | 2 +- meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb | 2 +- meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.028.bb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb b/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb index e4f8fe7e24..9e1350c705 100644 --- a/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb +++ b/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb @@ -36,6 +36,6 @@ RRECOMMENDS_${PN} += "libfile-slurper-perl" S = "${WORKDIR}/Config-AutoConf-${PV}" -inherit cpan ptest-perl allarch +inherit cpan_build ptest-perl BBCLASSEXTEND = "native nativesdk" diff --git a/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb b/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb index b684abd4be..3678ad7621 100644 --- a/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb +++ b/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb @@ -31,6 +31,6 @@ RDEPENDS_${PN}-ptest += "libtest-warnings-perl \ S = "${WORKDIR}/File-Slurper-${PV}" -inherit cpan allarch ptest-perl +inherit cpan ptest-perl BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.028.bb b/meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.028.bb index b40a5456eb..f2dda194dc 100644 --- a/meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.028.bb +++ b/meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.028.bb @@ -24,6 +24,6 @@ SRC_URI[sha256sum] = "26fda9f8d279e943d27e43a4a3a5cea8a6592cd36e7308695f8dc66022 S = "${WORKDIR}/Test-Warnings-${PV}" -inherit cpan allarch ptest-perl +inherit cpan ptest-perl BBCLASSEXTEND = "native nativesdk" -- 2.25.0 From raj.khem at gmail.com Wed Feb 12 01:49:20 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 11 Feb 2020 17:49:20 -0800 Subject: [oe] [meta-perl][PATCH v2] libconfig, libfile, libtest: Do not inherit allarch Message-ID: <20200212014920.4109919-1-raj.khem@gmail.com> These perl modules use cpan class, which adds build time dependency on perl, and since perl is arch specific this ends up with sstate signature differences for do_configure when arch is changed, therefore these packages needs to be made part of arch package-arch Fixes ERROR: libconfig-autoconf-perl different signature for task do_configure.sigdata between qemux86copy and qemuarm NOTE: Starting bitbake server... NOTE: Started PRServer with DBfile: /home/jenkins/oe/world/yoe/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 43053, PID: 16399 Hash for dependent task libconfig/libconfig-autoconf-perl_0.318.bb:do_prepare_recipe_sysroot changed from 66cd7f8d93afb36b314a0604e94f72151cb18410f395bc949156188a764ad68c to d9752dd39f67802473ebfe048ca1a688d684c7c31483e648c4e43bde9b16e3b5 Unable to find matching sigdata for /home/jenkins/oe/world/yoe/sources/meta-openembedded/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb:do_prepare_recipe_sysroot with hashes 66cd7f8d93afb36b314a0604e94f72151cb18410f395bc949156188a764ad68c or d9752dd39f67802473ebfe048ca1a688d684c7c31483e648c4e43bde9b16e3b5 ERROR: libfile-slurper-perl different signature for task do_configure.sigdata between qemux86copy and qemuarm NOTE: Starting bitbake server... NOTE: Started PRServer with DBfile: /home/jenkins/oe/world/yoe/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 39201, PID: 16448 Hash for dependent task libfile/libfile-slurper-perl_0.012.bb:do_prepare_recipe_sysroot changed from d6fd4eb704e706ed44daf37099d47fd188f6ac8c212c779dbfa7e40cff7bf449 to 9f0c17d2bf8389c634c143cc908e81f85b4d4bdab245199c86d4ae4480856d0d Unable to find matching sigdata for /home/jenkins/oe/world/yoe/sources/meta-openembedded/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb:do_prepare_recipe_sysroot with hashes d6fd4eb704e706ed44daf37099d47fd188f6ac8c212c779dbfa7e40cff7bf449 or 9f0c17d2bf8389c634c143cc908e81f85b4d4bdab245199c86d4ae4480856d0d ERROR: libtest-warnings-perl different signature for task do_configure.sigdata between qemux86copy and qemuarm NOTE: Starting bitbake server... NOTE: Started PRServer with DBfile: /home/jenkins/oe/world/yoe/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 43651, PID: 16479 Hash for dependent task libtest/libtest-warnings-perl_0.028.bb:do_prepare_recipe_sysroot changed from 77d070ada82799a51cce33ae63f70dafb2c20111e0dca15afc041efea22f1cd4 to 3d0bd29b23c66f14d4041153683eaa3d4ee0098e2b023747801748eb49da6300 Unable to find matching sigdata for /home/jenkins/oe/world/yoe/sources/meta-openembedded/meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.028.bb:do_prepare_recipe_sysroot with hashes 77d070ada82799a51cce33ae63f70dafb2c20111e0dca15afc041efea22f1cd4 or 3d0bd29b23c66f14d4041153683eaa3d4ee0098e2b023747801748eb49da6300 Signed-off-by: Khem Raj Cc: Jens Rehsack --- v2: Fix type which accidentally replace cpan with cpan_build .../recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb | 2 +- meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb | 2 +- meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.028.bb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb b/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb index e4f8fe7e24..afd26fa1c4 100644 --- a/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb +++ b/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb @@ -36,6 +36,6 @@ RRECOMMENDS_${PN} += "libfile-slurper-perl" S = "${WORKDIR}/Config-AutoConf-${PV}" -inherit cpan ptest-perl allarch +inherit cpan ptest-perl BBCLASSEXTEND = "native nativesdk" diff --git a/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb b/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb index b684abd4be..3678ad7621 100644 --- a/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb +++ b/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.012.bb @@ -31,6 +31,6 @@ RDEPENDS_${PN}-ptest += "libtest-warnings-perl \ S = "${WORKDIR}/File-Slurper-${PV}" -inherit cpan allarch ptest-perl +inherit cpan ptest-perl BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.028.bb b/meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.028.bb index b40a5456eb..f2dda194dc 100644 --- a/meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.028.bb +++ b/meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.028.bb @@ -24,6 +24,6 @@ SRC_URI[sha256sum] = "26fda9f8d279e943d27e43a4a3a5cea8a6592cd36e7308695f8dc66022 S = "${WORKDIR}/Test-Warnings-${PV}" -inherit cpan allarch ptest-perl +inherit cpan ptest-perl BBCLASSEXTEND = "native nativesdk" -- 2.25.0 From mingli.yu at windriver.com Wed Feb 12 02:28:57 2020 From: mingli.yu at windriver.com (mingli.yu at windriver.com) Date: Wed, 12 Feb 2020 10:28:57 +0800 Subject: [oe] [meta-oe][PATCH] libteam: Upgrade to 1.30 Message-ID: <1581474537-285529-1-git-send-email-mingli.yu@windriver.com> From: Mingli Yu Signed-off-by: Mingli Yu --- meta-oe/recipes-support/libteam/{libteam_1.29.bb => libteam_1.30.bb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename meta-oe/recipes-support/libteam/{libteam_1.29.bb => libteam_1.30.bb} (95%) diff --git a/meta-oe/recipes-support/libteam/libteam_1.29.bb b/meta-oe/recipes-support/libteam/libteam_1.30.bb similarity index 95% rename from meta-oe/recipes-support/libteam/libteam_1.29.bb rename to meta-oe/recipes-support/libteam/libteam_1.30.bb index 4ccc280..9cd02b0 100644 --- a/meta-oe/recipes-support/libteam/libteam_1.29.bb +++ b/meta-oe/recipes-support/libteam/libteam_1.30.bb @@ -14,7 +14,7 @@ SRC_URI = "git://github.com/jpirko/libteam \ file://0001-team_basic_test.py-use-python3-interpreter.patch \ file://run-ptest \ " -SRCREV = "e897f02bf2403d4859a99e090e34ea768b4c0540" +SRCREV = "471fb50d206e5a3f2eef9e4247329b51edc5c493" S = "${WORKDIR}/git" -- 2.7.4 From mingli.yu at windriver.com Wed Feb 12 06:13:20 2020 From: mingli.yu at windriver.com (mingli.yu at windriver.com) Date: Wed, 12 Feb 2020 14:13:20 +0800 Subject: [oe] [meta-oe][PATCH] mcelog: Upgrade to 168 Message-ID: <1581488000-270719-1-git-send-email-mingli.yu@windriver.com> From: Mingli Yu Signed-off-by: Mingli Yu --- meta-oe/recipes-support/mcelog/{mcelog_166.bb => mcelog_168.bb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename meta-oe/recipes-support/mcelog/{mcelog_166.bb => mcelog_168.bb} (95%) diff --git a/meta-oe/recipes-support/mcelog/mcelog_166.bb b/meta-oe/recipes-support/mcelog/mcelog_168.bb similarity index 95% rename from meta-oe/recipes-support/mcelog/mcelog_166.bb rename to meta-oe/recipes-support/mcelog/mcelog_168.bb index 3b4ea1f..e2ef6ea 100644 --- a/meta-oe/recipes-support/mcelog/mcelog_166.bb +++ b/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" -- 2.7.4 From wangmy at cn.fujitsu.com Wed Feb 12 18:35:56 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Wed, 12 Feb 2020 10:35:56 -0800 Subject: [oe] [meta-python][PATCH] python3-cffi: upgrade 1.13.2 -> 1.14.0 Message-ID: <1581532558-107111-1-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- meta-python/recipes-devtools/python/python-cffi.inc | 4 ++-- .../python/{python3-cffi_1.13.2.bb => python3-cffi_1.14.0.bb} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename meta-python/recipes-devtools/python/{python3-cffi_1.13.2.bb => python3-cffi_1.14.0.bb} (100%) diff --git a/meta-python/recipes-devtools/python/python-cffi.inc b/meta-python/recipes-devtools/python/python-cffi.inc index a2b0c3bb0..af10c5f36 100644 --- a/meta-python/recipes-devtools/python/python-cffi.inc +++ b/meta-python/recipes-devtools/python/python-cffi.inc @@ -4,8 +4,8 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf" DEPENDS += "libffi ${PYTHON_PN}-pycparser" -SRC_URI[md5sum] = "652203cf99faa254efff7fab23c2f3a2" -SRC_URI[sha256sum] = "599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346" +SRC_URI[md5sum] = "74845f8d2b7b583dd9a3574f402edf39" +SRC_URI[sha256sum] = "2d384f4a127a15ba701207f7639d94106693b6cd64173d6c8988e2c25f3ac2b6" RDEPENDS_${PN}_class-target = " \ ${PYTHON_PN}-ctypes \ diff --git a/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb b/meta-python/recipes-devtools/python/python3-cffi_1.14.0.bb similarity index 100% rename from meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb rename to meta-python/recipes-devtools/python/python3-cffi_1.14.0.bb -- 2.17.1 From wangmy at cn.fujitsu.com Wed Feb 12 18:35:58 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Wed, 12 Feb 2020 10:35:58 -0800 Subject: [oe] [meta-python][PATCH] python3-pytest: upgrade 5.3.2 -> 5.3.5 In-Reply-To: <1581532558-107111-1-git-send-email-wangmy@cn.fujitsu.com> References: <1581532558-107111-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1581532558-107111-3-git-send-email-wangmy@cn.fujitsu.com> Copyright updated: 2004-2019 -> 2004-2020 Signed-off-by: Wang Mingyu --- meta-python/recipes-devtools/python/python-pytest.inc | 6 +++--- .../{python3-pytest_5.3.2.bb => python3-pytest_5.3.5.bb} | 0 2 files changed, 3 insertions(+), 3 deletions(-) rename meta-python/recipes-devtools/python/{python3-pytest_5.3.2.bb => python3-pytest_5.3.5.bb} (100%) diff --git a/meta-python/recipes-devtools/python/python-pytest.inc b/meta-python/recipes-devtools/python/python-pytest.inc index 752d67e36..402126300 100644 --- a/meta-python/recipes-devtools/python/python-pytest.inc +++ b/meta-python/recipes-devtools/python/python-pytest.inc @@ -1,10 +1,10 @@ SUMMARY = "Simple powerful teting with python" HOMEPAGE = "http://pytest.org" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=640061b8cee64b308a4d2f9f556c12f2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=81eb9f71d006c6b268cf4388e3c98f7b" -SRC_URI[md5sum] = "71a8eb2ab5efb76512d9a69bd6477034" -SRC_URI[sha256sum] = "6b571215b5a790f9b41f19f3531c53a45cf6bb8ef2988bc1ff9afb38270b25fa" +SRC_URI[md5sum] = "d5ef453f723be46d93e0795f3be86c88" +SRC_URI[sha256sum] = "0d5fe9189a148acc3c3eb2ac8e1ac0742cb7618c084f3d228baaec0c254b318d" SRC_URI_append = " file://0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch \ " diff --git a/meta-python/recipes-devtools/python/python3-pytest_5.3.2.bb b/meta-python/recipes-devtools/python/python3-pytest_5.3.5.bb similarity index 100% rename from meta-python/recipes-devtools/python/python3-pytest_5.3.2.bb rename to meta-python/recipes-devtools/python/python3-pytest_5.3.5.bb -- 2.17.1 From wangmy at cn.fujitsu.com Wed Feb 12 18:35:57 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Wed, 12 Feb 2020 10:35:57 -0800 Subject: [oe] [meta-python] [PATCH] python3-configparser: upgrade 3.8.1 -> 4.0.2 In-Reply-To: <1581532558-107111-1-git-send-email-wangmy@cn.fujitsu.com> References: <1581532558-107111-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1581532558-107111-2-git-send-email-wangmy@cn.fujitsu.com> Add build dependency of setuptools-scm-native for python3-configparser. Error message: ERROR: Do not try to fetch `setuptools_scm>=1.15.0' for building. Please add its native recipe to DEPENDS. Signed-off-by: Wang Mingyu --- .../recipes-devtools/python/python-configparser.inc | 7 ++++--- ...configparser_3.8.1.bb => python3-configparser_4.0.2.bb} | 0 2 files changed, 4 insertions(+), 3 deletions(-) rename meta-python/recipes-devtools/python/{python3-configparser_3.8.1.bb => python3-configparser_4.0.2.bb} (100%) diff --git a/meta-python/recipes-devtools/python/python-configparser.inc b/meta-python/recipes-devtools/python/python-configparser.inc index 8ecfe221d..bce7cee46 100644 --- a/meta-python/recipes-devtools/python/python-configparser.inc +++ b/meta-python/recipes-devtools/python/python-configparser.inc @@ -5,9 +5,10 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=10;endline=10;md5=23f9ad5cad3d8cc0336e2a5d8a87e1fa" -SRC_URI[md5sum] = "bc1558ed941cb1acb80ff650726d5af8" -SRC_URI[sha256sum] = "bc37850f0cc42a1725a796ef7d92690651bf1af37d744cc63161dac62cabee17" +SRC_URI[md5sum] = "35926cc4b9133f1f9ca70a1fd2fdf237" +SRC_URI[sha256sum] = "c7d282687a5308319bf3d2e7706e575c635b0a470342641c93bea0ea3b5331df" +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" inherit pypi -BBCLASSEXTEND = "native nativesdk" \ No newline at end of file +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python3-configparser_3.8.1.bb b/meta-python/recipes-devtools/python/python3-configparser_4.0.2.bb similarity index 100% rename from meta-python/recipes-devtools/python/python3-configparser_3.8.1.bb rename to meta-python/recipes-devtools/python/python3-configparser_4.0.2.bb -- 2.17.1 From raj.khem at gmail.com Wed Feb 12 19:20:25 2020 From: raj.khem at gmail.com (Khem Raj) Date: Wed, 12 Feb 2020 11:20:25 -0800 Subject: [oe] [meta-oe][PATCH] meta-oe: Remove dnf dependent package for non-rpm package backend Message-ID: <20200212192025.2736436-1-raj.khem@gmail.com> dnf is not built when rpm is not in chosen backends Signed-off-by: Khem Raj --- meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb | 5 ++++- .../recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb | 1 + meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb index 929e7d5591..777623ba88 100644 --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb +++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb @@ -172,7 +172,8 @@ RDEPENDS_packagegroup-meta-oe-gnome ="\ " RDEPENDS_packagegroup-meta-oe-graphics ="\ - cairomm dietsplash directfb directfb-examples dnfdragora \ + 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 \ @@ -190,6 +191,8 @@ 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 \ diff --git a/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb b/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb index a8367b5d91..5ecf649662 100644 --- a/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb +++ b/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb @@ -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-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb b/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb index 9cd1efb8e8..3f2dc3060b 100644 --- a/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb +++ b/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb @@ -28,3 +28,6 @@ EXTRA_OECMAKE = " -DWITH_MAN=OFF -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} BBCLASSEXTEND = "nativesdk" FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}/ ${datadir}/ ${bindir}/ ${sysconfdir}/dnfdragora " + +PNBLACKLIST[dnfdragora] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build correctly without package_rpm in PACKAGE_CLASSES', d)}" + -- 2.25.0 From okaya at kernel.org Wed Feb 12 20:18:25 2020 From: okaya at kernel.org (Sinan Kaya) Date: Wed, 12 Feb 2020 20:18:25 +0000 Subject: [oe] [meta-oe][PATCH v7] abseil-cpp: add recipe for git version Message-ID: <20200212201825.53231-1-okaya@kernel.org> The repository contains the Abseil C++ library code. Abseil is an open-source collection of C++ code (compliant to C++11) designed to augment the C++ standard library. https://github.com/abseil/abseil-cpp Signed-off-by: Changyu Li Signed-off-by: Sinan Kaya --- ...e-maes-option-from-cross-compilation.patch | 53 +++++++++++++++++++ ...n-ABSL_HAVE_VDSO_SUPPORT-conditional.patch | 35 ++++++++++++ .../abseil-cpp/0003-Add-fPIC-option.patch | 27 ++++++++++ .../abseil-cpp/abseil-cpp_git.bb | 52 ++++++++++++++++++ 4 files changed, 167 insertions(+) create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Add-fPIC-option.patch create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Remove-maes-option-from-cross-compilation.patch new file mode 100644 index 0000000000..4c41cd8902 --- /dev/null +++ b/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 +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-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Add-forgotten-ABSL_HAVE_VDSO_SUPPORT-conditional.patch new file mode 100644 index 0000000000..fab4a738ea --- /dev/null +++ b/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 +Date: Tue, 11 Feb 2020 11:36:00 -0500 +Subject: [PATCH] Add forgotten ABSL_HAVE_VDSO_SUPPORT conditional + +Signed-off-by: Sinan Kaya +--- + 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-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Add-fPIC-option.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Add-fPIC-option.patch new file mode 100644 index 0000000000..bb78813a7f --- /dev/null +++ b/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 +Date: Tue, 11 Feb 2020 11:58:02 -0500 +Subject: [PATCH] Add fPIC option + +Signed-off-by: Sinan Kaya +--- + 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-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb new file mode 100644 index 0000000000..77afba8de9 --- /dev/null +++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb @@ -0,0 +1,52 @@ +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" + +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 \ + " + +S = "${WORKDIR}/git" + +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)) + +} + -- 2.23.0 From mingli.yu at windriver.com Thu Feb 13 02:05:06 2020 From: mingli.yu at windriver.com (mingli.yu at windriver.com) Date: Thu, 13 Feb 2020 10:05:06 +0800 Subject: [oe] [meta-oe][PATCH] iozone3: Upgrade to 489 Message-ID: <1581559506-246673-1-git-send-email-mingli.yu@windriver.com> From: Mingli Yu Signed-off-by: Mingli Yu --- meta-oe/recipes-benchmark/iozone3/{iozone3_488.bb => iozone3_489.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-benchmark/iozone3/{iozone3_488.bb => iozone3_489.bb} (97%) diff --git a/meta-oe/recipes-benchmark/iozone3/iozone3_488.bb b/meta-oe/recipes-benchmark/iozone3/iozone3_489.bb similarity index 97% rename from meta-oe/recipes-benchmark/iozone3/iozone3_488.bb rename to meta-oe/recipes-benchmark/iozone3/iozone3_489.bb index 222a956..e4b7e4f 100644 --- a/meta-oe/recipes-benchmark/iozone3/iozone3_488.bb +++ b/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\d+).tar" -- 2.7.4 From raj.khem at gmail.com Thu Feb 13 05:55:19 2020 From: raj.khem at gmail.com (Khem Raj) Date: Wed, 12 Feb 2020 21:55:19 -0800 Subject: [oe] [meta-python2][PATCH] python-grpcio: Upgrade to 1.27.1 Message-ID: <20200213055519.1978873-1-raj.khem@gmail.com> Delete gettid patch, fixed differenty upstream Add code to use cross compiler in setup.py Define GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY so it does not use SYS_clock_gettime syscalls since it does not work when 64bit time_t is used on 32bit arches Signed-off-by: Khem Raj --- ...-Do-not-mix-C-and-C-compiler-options.patch | 44 ++++++++++++++----- .../python/python-grpcio/gettid.patch | 26 ----------- .../python-grpcio/ppc-boringssl-support.patch | 2 +- .../python-grpcio/riscv64_support.patch | 2 +- ...pcio_1.19.0.bb => python-grpcio_1.27.1.bb} | 11 ++--- 5 files changed, 40 insertions(+), 45 deletions(-) delete mode 100644 recipes-devtools/python/python-grpcio/gettid.patch rename recipes-devtools/python/{python-grpcio_1.19.0.bb => python-grpcio_1.27.1.bb} (74%) diff --git a/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch b/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch index f17f048..131daac 100644 --- a/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch +++ b/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch @@ -20,21 +20,45 @@ Signed-off-by: Khem Raj --- a/setup.py +++ b/setup.py -@@ -145,7 +145,7 @@ ENABLE_DOCUMENTATION_BUILD = os.environ. +@@ -144,9 +144,10 @@ ENABLE_DOCUMENTATION_BUILD = os.environ. + + def check_linker_need_libatomic(): + """Test if linker on system needs libatomic.""" ++ compiler, cc_args = os.environ.get('CC').split(' ', 1) or 'cc' + code_test = (b'#include \n' + + b'int main() { return std::atomic{}; }') +- cc_test = subprocess.Popen(['cc', '-x', 'c++', '-std=c++11', '-'], ++ cc_test = subprocess.Popen([compiler, cc_args, '-x', 'c++', '-std=c++11', '-'], + stdin=PIPE, + stdout=PIPE, + stderr=PIPE) +@@ -163,7 +164,7 @@ def check_linker_need_libatomic(): EXTRA_ENV_COMPILE_ARGS = os.environ.get('GRPC_PYTHON_CFLAGS', None) EXTRA_ENV_LINK_ARGS = os.environ.get('GRPC_PYTHON_LDFLAGS', None) if EXTRA_ENV_COMPILE_ARGS is None: - EXTRA_ENV_COMPILE_ARGS = ' -std=c++11' -+ EXTRA_ENV_COMPILE_ARGS = "" - if 'win32' in sys.platform and sys.version_info < (3, 5): - EXTRA_ENV_COMPILE_ARGS += ' -D_hypot=hypot' - # We use define flags here and don't directly add to DEFINE_MACROS below to -@@ -157,7 +157,7 @@ if EXTRA_ENV_COMPILE_ARGS is None: - else: - EXTRA_ENV_COMPILE_ARGS += ' -D_ftime=_ftime64 -D_timeb=__timeb64' ++ EXTRA_ENV_COMPILE_ARGS = ' ' + if 'win32' in sys.platform: + if sys.version_info < (3, 5): + EXTRA_ENV_COMPILE_ARGS += ' -D_hypot=hypot' +@@ -180,7 +181,7 @@ if EXTRA_ENV_COMPILE_ARGS is None: + # available dynamically + EXTRA_ENV_COMPILE_ARGS += ' /MT' elif "linux" in sys.platform: - EXTRA_ENV_COMPILE_ARGS += ' -std=gnu99 -fvisibility=hidden -fno-wrapv -fno-exceptions' + EXTRA_ENV_COMPILE_ARGS += ' -fvisibility=hidden -fno-wrapv -fno-exceptions' elif "darwin" in sys.platform: - EXTRA_ENV_COMPILE_ARGS += ' -fvisibility=hidden -fno-wrapv -fno-exceptions' - EXTRA_ENV_COMPILE_ARGS += ' -DPB_FIELD_32BIT' + EXTRA_ENV_COMPILE_ARGS += ' -stdlib=libc++ -fvisibility=hidden -fno-wrapv -fno-exceptions' + +--- a/src/python/grpcio/commands.py ++++ b/src/python/grpcio/commands.py +@@ -216,7 +216,8 @@ class BuildExt(build_ext.build_ext): + when invoked in C mode. GCC is okay with this, while clang is not. + """ + # TODO(lidiz) Remove the generated a.out for success tests. +- cc_test = subprocess.Popen(['cc', '-x', 'c', '-std=c++11', '-'], ++ compiler, cc_args = os.environ.get('CC').split(' ', 1) or 'cc' ++ cc_test = subprocess.Popen([compiler, cc_args, '-x', 'c', '-std=c++11', '-'], + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) diff --git a/recipes-devtools/python/python-grpcio/gettid.patch b/recipes-devtools/python/python-grpcio/gettid.patch deleted file mode 100644 index fb15cf7..0000000 --- a/recipes-devtools/python/python-grpcio/gettid.patch +++ /dev/null @@ -1,26 +0,0 @@ -use glibc provided gettid API for glibc 2.30+ - -glibc 2.30 introduced this function see [1] -so it's best to detect it -and provide fallback only if it's not present - -[1] https://sourceware.org/bugzilla/show_bug.cgi?id=6399 - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- a/src/core/lib/gpr/log_linux.cc -+++ b/src/core/lib/gpr/log_linux.cc -@@ -40,7 +40,13 @@ - #include - #include - -+#if defined(__GLIBC__) -+#if !__GLIBC_PREREQ(2,29) - static long gettid(void) { return syscall(__NR_gettid); } -+#endif -+#else -+static long gettid(void) { return syscall(__NR_gettid); } -+#endif - - void gpr_log(const char* file, int line, gpr_log_severity severity, - const char* format, ...) { diff --git a/recipes-devtools/python/python-grpcio/ppc-boringssl-support.patch b/recipes-devtools/python/python-grpcio/ppc-boringssl-support.patch index 6435abb..8ac2aef 100644 --- a/recipes-devtools/python/python-grpcio/ppc-boringssl-support.patch +++ b/recipes-devtools/python/python-grpcio/ppc-boringssl-support.patch @@ -5,7 +5,7 @@ Signed-off-by: Khem Raj --- a/third_party/boringssl/include/openssl/base.h +++ b/third_party/boringssl/include/openssl/base.h -@@ -95,6 +95,9 @@ extern "C" { +@@ -99,6 +99,9 @@ extern "C" { #elif (defined(__PPC64__) || defined(__powerpc64__)) && defined(_LITTLE_ENDIAN) #define OPENSSL_64_BIT #define OPENSSL_PPC64LE diff --git a/recipes-devtools/python/python-grpcio/riscv64_support.patch b/recipes-devtools/python/python-grpcio/riscv64_support.patch index fef7d9e..b55d50b 100644 --- a/recipes-devtools/python/python-grpcio/riscv64_support.patch +++ b/recipes-devtools/python/python-grpcio/riscv64_support.patch @@ -4,7 +4,7 @@ Upstream-Status: Pending Signed-off-by: Khem Raj --- a/third_party/boringssl/include/openssl/base.h +++ b/third_party/boringssl/include/openssl/base.h -@@ -104,6 +104,9 @@ extern "C" { +@@ -108,6 +108,9 @@ extern "C" { #elif defined(__mips__) && defined(__LP64__) #define OPENSSL_64_BIT #define OPENSSL_MIPS64 diff --git a/recipes-devtools/python/python-grpcio_1.19.0.bb b/recipes-devtools/python/python-grpcio_1.27.1.bb similarity index 74% rename from recipes-devtools/python/python-grpcio_1.19.0.bb rename to recipes-devtools/python/python-grpcio_1.27.1.bb index 8a5f71a..6768e7e 100644 --- a/recipes-devtools/python/python-grpcio_1.19.0.bb +++ b/recipes-devtools/python/python-grpcio_1.27.1.bb @@ -5,16 +5,12 @@ SECTION = "devel/python" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" -SRC_URI[md5sum] = "188565f150f34d1927b87e014f0f4b73" -SRC_URI[sha256sum] = "2ddbca16c2e7b3f2ffc6e34c7cfa6886fb01de9f156ad3f77b72ad652d632097" - -FILESEXTRAPATHS_prepend := "${THISDIR}/python-grpcio:" - SRC_URI_append_class-target = " file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch \ file://ppc-boringssl-support.patch \ file://riscv64_support.patch \ - file://gettid.patch \ " +SRC_URI[md5sum] = "ccaf4e7eb4f031d926fb80035d193b98" +SRC_URI[sha256sum] = "a899725d34769a498ecd3be154021c4368dd22bdc69473f6ec46779696f626c4" DEPENDS_append = " ${PYTHON_PN}-protobuf" @@ -28,7 +24,8 @@ RDEPENDS_${PN} = "\ python-futures \ " +export GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY = "1" + CLEANBROKEN = "1" BBCLASSEXTEND = "native nativesdk" - -- 2.25.0 From yi.zhao at windriver.com Thu Feb 13 08:58:28 2020 From: yi.zhao at windriver.com (Yi Zhao) Date: Thu, 13 Feb 2020 16:58:28 +0800 Subject: [oe] [meta-networking][PATCH] samba: upgrade 4.10.11 -> 4.10.13 Message-ID: <20200213085828.3788-1-yi.zhao@windriver.com> Changelog: https://www.samba.org/samba/history/samba-4.10.13.html Signed-off-by: Yi Zhao --- .../samba/{samba_4.10.11.bb => samba_4.10.13.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-networking/recipes-connectivity/samba/{samba_4.10.11.bb => samba_4.10.13.bb} (98%) diff --git a/meta-networking/recipes-connectivity/samba/samba_4.10.11.bb b/meta-networking/recipes-connectivity/samba/samba_4.10.13.bb similarity index 98% rename from meta-networking/recipes-connectivity/samba/samba_4.10.11.bb rename to meta-networking/recipes-connectivity/samba/samba_4.10.13.bb index ffdc15ac4..71d8fa2f8 100644 --- a/meta-networking/recipes-connectivity/samba/samba_4.10.11.bb +++ b/meta-networking/recipes-connectivity/samba/samba_4.10.13.bb @@ -34,8 +34,8 @@ SRC_URI_append_libc-musl = " \ file://0001-samba-fix-musl-lib-without-innetgr.patch \ " -SRC_URI[md5sum] = "eebd021de840312d7e08959e8a3d0ba1" -SRC_URI[sha256sum] = "609f4232e04c6eaad0e3b8e00cd837683a960ebb95c1fe3349e968d1d1dff894" +SRC_URI[md5sum] = "e7906580bf06dae087e99ef8254f327d" +SRC_URI[sha256sum] = "49eb6426e97cbf538e416e51ed8535930382512ad2d13d5ffd7f4336aa7faf63" UPSTREAM_CHECK_REGEX = "samba\-(?P4\.10(\.\d+)+).tar.gz" -- 2.17.1 From asmithakarun at gmail.com Thu Feb 13 09:19:50 2020 From: asmithakarun at gmail.com (asmithakarun at gmail.com) Date: Thu, 13 Feb 2020 14:49:50 +0530 Subject: [oe] [meta-oe][PATCH v2] libmimetic: Library to aid multi-part form data parsing Message-ID: <20200213091950.25001-1-asmithakarun@gmail.com> From: asmitha Mimetic library helps parsing the multi-part form data. This library can be used for scenarios that includes multi-part form data file uploads to the system. The patch file includes: i) 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. ii) 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: asmitha --- ...ing-test-directory-from-the-Makefile.patch | 67 +++++++++++++++++++ .../libmimetic/libmimetic_0.9.8.bb | 21 ++++++ 2 files changed, 88 insertions(+) create mode 100644 meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch create mode 100644 meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb diff --git a/meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch b/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-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 +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 +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 + ++#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 + #include + ++#ifndef __GLIBC__ ++ typedef unsigned int uint; ++#endif ++ + namespace mimetic + { + using namespace std; +-- +2.9.3 + diff --git a/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb b/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb new file mode 100644 index 000000000..fd65db2d3 --- /dev/null +++ b/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb @@ -0,0 +1,21 @@ +# 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 " +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 \ + " + +S = "${WORKDIR}/git" + +CXXFLAGS += "-Wno-narrowing" + +inherit autotools -- 2.23.0 From raj.khem at gmail.com Thu Feb 13 17:13:25 2020 From: raj.khem at gmail.com (Khem Raj) Date: Thu, 13 Feb 2020 09:13:25 -0800 Subject: [oe] [meta-oe][PATCH v2] libmimetic: Library to aid multi-part form data parsing In-Reply-To: <20200213091950.25001-1-asmithakarun@gmail.com> References: <20200213091950.25001-1-asmithakarun@gmail.com> Message-ID: On Thu, Feb 13, 2020 at 1:20 AM wrote: > > From: asmitha > > Mimetic library helps parsing the multi-part form data. This library > can be used for scenarios that includes multi-part form data file uploads > to the system. > > The patch file includes: > i) 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. > > ii) 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. > Thanks for sending a v2, There is another error I see when using clang compiler mimetic/os/mmfile.cxx:60:14: error: ordered comparison between pointer and zero ('char *' and 'int') Details here. https://errors.yoctoproject.org/Errors/Details/390682/ Will you be able to work on it ? > Signed-off-by: asmitha > --- > ...ing-test-directory-from-the-Makefile.patch | 67 +++++++++++++++++++ > .../libmimetic/libmimetic_0.9.8.bb | 21 ++++++ > 2 files changed, 88 insertions(+) > create mode 100644 meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch > create mode 100644 meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb > > diff --git a/meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch b/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-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 > +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 > +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 > + > ++#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 > + #include > + > ++#ifndef __GLIBC__ > ++ typedef unsigned int uint; > ++#endif > ++ > + namespace mimetic > + { > + using namespace std; > +-- > +2.9.3 > + > diff --git a/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb b/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb > new file mode 100644 > index 000000000..fd65db2d3 > --- /dev/null > +++ b/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb > @@ -0,0 +1,21 @@ > +# 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 " > +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 \ > + " > + > +S = "${WORKDIR}/git" > + > +CXXFLAGS += "-Wno-narrowing" > + > +inherit autotools > -- > 2.23.0 > From scott.branden at broadcom.com Thu Feb 13 19:35:36 2020 From: scott.branden at broadcom.com (Scott Branden) Date: Thu, 13 Feb 2020 11:35:36 -0800 Subject: [oe] [meta-multimedia][PATCH] x265: add x265 recipe Message-ID: <20200213193536.23301-1-scott.branden@broadcom.com> Add x265 recipe for latest tag of Release_3.2 branch (3.2.1). Signed-off-by: Scott Branden --- .../recipes-multimedia/x265/x265_3.2.1.bb | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb new file mode 100644 index 0000000000..68c1a55c8c --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb @@ -0,0 +1,24 @@ +SUMMARY = "H.265/HEVC video encoder" +DESCRIPTION = "A free software library and application for encoding video streams into the H.265/HEVC format." +HOMEPAGE = "http://www.videolan.org/developers/x265.html" + +LICENSE = "GPLv2" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://../COPYING;md5=c9e0427bc58f129f99728c62d4ad4091" + +DEPENDS = "nasm-native gnutls zlib libpcre" + +SRC_URI = "http://ftp.videolan.org/pub/videolan/x265/x265_${PV}.tar.gz" + +S = "${WORKDIR}/x265_${PV}/source" + +SRC_URI[md5sum] = "94808045a34d88a857e5eaf3f68f4bca" +SRC_URI[sha256sum] = "fb9badcf92364fd3567f8b5aa0e5e952aeea7a39a2b864387cec31e3b58cbbcc" + +inherit lib_package pkgconfig cmake + +AS[unexport] = "1" + +COMPATIBLE_MACHINE = "^$" +COMPATIBLE_MACHINE_x86 = ".*" +COMPATIBLE_MACHINE_x86-64 = ".*" -- 2.17.1 From jpuhlman at mvista.com Thu Feb 13 20:15:07 2020 From: jpuhlman at mvista.com (Jeremy A. Puhlman) Date: Thu, 13 Feb 2020 12:15:07 -0800 Subject: [oe] Cherry pick patches breaking zeus/thud/master. Message-ID: <22639ede-b55a-3e33-3ac3-c462b1e37b62@mvista.com> Richard, Is it possible to cherry pick d0a9fe08be6e1c2e7f7afc79abc292d3bffeb9fe Revert "openjdk-8: disable, stringop-overflow compiler errors" to zeus/thud/master, since they are breaking for the same reason as warrior? TIA -- Jeremy A. Puhlman jpuhlman at mvista.com From jonathan.richardson at broadcom.com Thu Feb 13 23:22:20 2020 From: jonathan.richardson at broadcom.com (Jonathan Richardson) Date: Thu, 13 Feb 2020 15:22:20 -0800 Subject: [oe] [meta-oe] pcimem: add initial version 2.0 Message-ID: <20200213232220.109189-1-jonathan.richardson@broadcom.com> From: Randy Schacher Initial revision from 09724edb1783a98da2b7ae53c5aaa87493aabc9b Reviewed-by: Jonathan Richardson Reviewed-by: Randy Schacher Signed-off-by: Jonathan Richardson --- meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb diff --git a/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb b/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb new file mode 100644 index 000000000..ee2b1846b --- /dev/null +++ b/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb @@ -0,0 +1,18 @@ +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 ${D}${bindir} + install -m 0755 ${B}/pcimem ${D}${bindir} +} -- 2.17.1 From jonathan.richardson at broadcom.com Thu Feb 13 23:23:46 2020 From: jonathan.richardson at broadcom.com (Jonathan Richardson) Date: Thu, 13 Feb 2020 15:23:46 -0800 Subject: [oe] [meta-oe] spidev-test: Add initial version of recipe Message-ID: <20200213232346.109257-1-jonathan.richardson@broadcom.com> From: Arun Parameswaran Allows for testing SPI interface using spidev driver and is part of the kernel tools. Signed-off-by: Arun Parameswaran Reviewed-by: Jonathan Richardson Tested-by: Jonathan Richardson Signed-off-by: Jonathan Richardson --- .../recipes-kernel/spidev-test/spidev-test.bb | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 meta-oe/recipes-kernel/spidev-test/spidev-test.bb diff --git a/meta-oe/recipes-kernel/spidev-test/spidev-test.bb b/meta-oe/recipes-kernel/spidev-test/spidev-test.bb new file mode 100644 index 000000000..7dd199fe9 --- /dev/null +++ b/meta-oe/recipes-kernel/spidev-test/spidev-test.bb @@ -0,0 +1,30 @@ +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" +DEPENDS = "binutils elfutils" +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}" -- 2.17.1 From raj.khem at gmail.com Fri Feb 14 01:41:59 2020 From: raj.khem at gmail.com (Khem Raj) Date: Thu, 13 Feb 2020 17:41:59 -0800 Subject: [oe] [meta-oe] pcimem: add initial version 2.0 In-Reply-To: <20200213232220.109189-1-jonathan.richardson@broadcom.com> References: <20200213232220.109189-1-jonathan.richardson@broadcom.com> Message-ID: On Thu, Feb 13, 2020 at 3:22 PM Jonathan Richardson via Openembedded-devel wrote: > > From: Randy Schacher > > Initial revision from 09724edb1783a98da2b7ae53c5aaa87493aabc9b > > Reviewed-by: Jonathan Richardson > Reviewed-by: Randy Schacher > Signed-off-by: Jonathan Richardson > --- > meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > create mode 100644 meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb > > diff --git a/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb b/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb > new file mode 100644 > index 000000000..ee2b1846b > --- /dev/null > +++ b/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb > @@ -0,0 +1,18 @@ > +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 ${D}${bindir} > + install -m 0755 ${B}/pcimem ${D}${bindir} both installs could be squashed with install -D -m 0755 ${B}/pcimem ${D}${bindir}/pcimem > +} > -- > 2.17.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From raj.khem at gmail.com Fri Feb 14 01:47:43 2020 From: raj.khem at gmail.com (Khem Raj) Date: Thu, 13 Feb 2020 17:47:43 -0800 Subject: [oe] [meta-multimedia][PATCH] x265: add x265 recipe In-Reply-To: <20200213193536.23301-1-scott.branden@broadcom.com> References: <20200213193536.23301-1-scott.branden@broadcom.com> Message-ID: On Thu, Feb 13, 2020 at 11:36 AM Scott Branden via Openembedded-devel wrote: > > Add x265 recipe for latest tag of Release_3.2 branch (3.2.1). > > Signed-off-by: Scott Branden > --- > .../recipes-multimedia/x265/x265_3.2.1.bb | 24 +++++++++++++++++++ > 1 file changed, 24 insertions(+) > create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb > > diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb > new file mode 100644 > index 0000000000..68c1a55c8c > --- /dev/null > +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb > @@ -0,0 +1,24 @@ > +SUMMARY = "H.265/HEVC video encoder" > +DESCRIPTION = "A free software library and application for encoding video streams into the H.265/HEVC format." > +HOMEPAGE = "http://www.videolan.org/developers/x265.html" > + > +LICENSE = "GPLv2" > +LICENSE_FLAGS = "commercial" > +LIC_FILES_CHKSUM = "file://../COPYING;md5=c9e0427bc58f129f99728c62d4ad4091" > + > +DEPENDS = "nasm-native gnutls zlib libpcre" > + > +SRC_URI = "http://ftp.videolan.org/pub/videolan/x265/x265_${PV}.tar.gz" > + > +S = "${WORKDIR}/x265_${PV}/source" > + > +SRC_URI[md5sum] = "94808045a34d88a857e5eaf3f68f4bca" > +SRC_URI[sha256sum] = "fb9badcf92364fd3567f8b5aa0e5e952aeea7a39a2b864387cec31e3b58cbbcc" > + > +inherit lib_package pkgconfig cmake > + > +AS[unexport] = "1" > + > +COMPATIBLE_MACHINE = "^$" > +COMPATIBLE_MACHINE_x86 = ".*" > +COMPATIBLE_MACHINE_x86-64 = ".*" perhaps better to use COMPATIBLE_HOST = '(x86_64|i.86).*-linux' > -- > 2.17.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From wenlin.kang at windriver.com Fri Feb 14 09:08:19 2020 From: wenlin.kang at windriver.com (Wenlin Kang) Date: Fri, 14 Feb 2020 17:08:19 +0800 Subject: [oe] [meta-oe][PATCH] ipmitool: fix CVE-2020-5208 Message-ID: <20200214090819.15989-1-wenlin.kang@windriver.com> Fix CVE-2020-5208 Signed-off-by: Wenlin Kang --- ...-Fix-buffer-overflow-vulnerabilities.patch | 133 ++++++++++++++++++ .../ipmitool/ipmitool_1.8.18.bb | 1 + 2 files changed, 134 insertions(+) create mode 100644 meta-oe/recipes-kernel/ipmitool/ipmitool/0001-fru-Fix-buffer-overflow-vulnerabilities.patch diff --git a/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-fru-Fix-buffer-overflow-vulnerabilities.patch b/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-fru-Fix-buffer-overflow-vulnerabilities.patch new file mode 100644 index 000000000..b65e3ef1a --- /dev/null +++ b/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 +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 +--- + 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-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb b/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb index b7f1aa914..500d5bd0b 100644 --- a/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb +++ b/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb @@ -24,6 +24,7 @@ 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 \ " SRC_URI[md5sum] = "bab7ea104c7b85529c3ef65c54427aa3" SRC_URI[sha256sum] = "0c1ba3b1555edefb7c32ae8cd6a3e04322056bc087918f07189eeedfc8b81e01" -- 2.17.1 From ticotimo at gmail.com Fri Feb 14 16:06:25 2020 From: ticotimo at gmail.com (Tim Orling) Date: Fri, 14 Feb 2020 08:06:25 -0800 Subject: [oe] [meta-python2][PATCH] python-grpcio: Upgrade to 1.27.1 In-Reply-To: <20200213055519.1978873-1-raj.khem@gmail.com> References: <20200213055519.1978873-1-raj.khem@gmail.com> Message-ID: Thank you. I've merged this, but noticed 1.27.2 was released to patch python. Can you have a look? https://github.com/grpc/grpc/releases/tag/v1.27.2 On Wed, Feb 12, 2020 at 9:55 PM Khem Raj wrote: > Delete gettid patch, fixed differenty upstream > Add code to use cross compiler in setup.py > > Define GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY so it does not use > SYS_clock_gettime syscalls since it does not work when 64bit time_t is > used on 32bit arches > > Signed-off-by: Khem Raj > --- > ...-Do-not-mix-C-and-C-compiler-options.patch | 44 ++++++++++++++----- > .../python/python-grpcio/gettid.patch | 26 ----------- > .../python-grpcio/ppc-boringssl-support.patch | 2 +- > .../python-grpcio/riscv64_support.patch | 2 +- > ...pcio_1.19.0.bb => python-grpcio_1.27.1.bb} | 11 ++--- > 5 files changed, 40 insertions(+), 45 deletions(-) > delete mode 100644 recipes-devtools/python/python-grpcio/gettid.patch > rename recipes-devtools/python/{python-grpcio_1.19.0.bb => > python-grpcio_1.27.1.bb} (74%) > > > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From wangmy at cn.fujitsu.com Fri Feb 14 23:43:39 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Fri, 14 Feb 2020 15:43:39 -0800 Subject: [oe] [meta-oe][PATCH] cryptsetup: upgrade 2.2.2 -> 2.3.0 Message-ID: <1581723823-21171-1-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../cryptsetup/{cryptsetup_2.2.2.bb => cryptsetup_2.3.0.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-crypto/cryptsetup/{cryptsetup_2.2.2.bb => cryptsetup_2.3.0.bb} (96%) diff --git a/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.2.2.bb b/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.3.0.bb similarity index 96% rename from meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.2.2.bb rename to meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.3.0.bb index 479b9eb37..0e36ed4a2 100644 --- a/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.2.2.bb +++ b/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.3.0.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] = "48be3bd7c557d051f638047d280e93ee" +SRC_URI[sha256sum] = "395690de99509428354d3cd15cf023bed01487e6f1565b2181e013dc847bbc85" inherit autotools gettext pkgconfig -- 2.17.1 From wangmy at cn.fujitsu.com Fri Feb 14 23:43:40 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Fri, 14 Feb 2020 15:43:40 -0800 Subject: [oe] [meta-oe][PATCH] fio: upgrade 3.17 -> 3.18 In-Reply-To: <1581723823-21171-1-git-send-email-wangmy@cn.fujitsu.com> References: <1581723823-21171-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1581723823-21171-2-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- meta-oe/recipes-benchmark/fio/{fio_3.17.bb => fio_3.18.bb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename meta-oe/recipes-benchmark/fio/{fio_3.17.bb => fio_3.18.bb} (96%) diff --git a/meta-oe/recipes-benchmark/fio/fio_3.17.bb b/meta-oe/recipes-benchmark/fio/fio_3.18.bb similarity index 96% rename from meta-oe/recipes-benchmark/fio/fio_3.17.bb rename to meta-oe/recipes-benchmark/fio/fio_3.18.bb index 482928c31..b6484290f 100644 --- a/meta-oe/recipes-benchmark/fio/fio_3.17.bb +++ b/meta-oe/recipes-benchmark/fio/fio_3.18.bb @@ -22,7 +22,7 @@ PACKAGECONFIG_NUMA_armeb = "" PACKAGECONFIG ??= "${PACKAGECONFIG_NUMA}" PACKAGECONFIG[numa] = ",--disable-numa,numactl" -SRCREV = "08ce9dc20b8a4e55db7af6d869ddfa49b4a02d03" +SRCREV = "ac694f66968fe7b18c820468abd8333f3df333fb" SRC_URI = "git://git.kernel.dk/fio.git \ file://0001-update-the-interpreter-paths.patch \ " -- 2.17.1 From wangmy at cn.fujitsu.com Fri Feb 14 23:43:41 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Fri, 14 Feb 2020 15:43:41 -0800 Subject: [oe] [meta-oe][PATCH] hwdata: upgrade 0.331 -> 0.332 In-Reply-To: <1581723823-21171-1-git-send-email-wangmy@cn.fujitsu.com> References: <1581723823-21171-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1581723823-21171-3-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- meta-oe/recipes-support/hwdata/hwdata_git.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-oe/recipes-support/hwdata/hwdata_git.bb b/meta-oe/recipes-support/hwdata/hwdata_git.bb index e63838f9a..77bb60aed 100644 --- a/meta-oe/recipes-support/hwdata/hwdata_git.bb +++ b/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.331" -SRCREV = "337be5f6acbe15aa06063914e1fd25d49a05523b" +PV = "0.332" +SRCREV = "17cc5d636a559ae1073865846980e4db35f7989a" SRC_URI = "git://github.com/vcrhonek/${BPN}.git" S = "${WORKDIR}/git" -- 2.17.1 From wangmy at cn.fujitsu.com Fri Feb 14 23:43:42 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Fri, 14 Feb 2020 15:43:42 -0800 Subject: [oe] [meta-oe][PATCH] libdbi-perl: upgrade 1.642 -> 1.643 In-Reply-To: <1581723823-21171-1-git-send-email-wangmy@cn.fujitsu.com> References: <1581723823-21171-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1581723823-21171-4-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../perl/{libdbi-perl_1.642.bb => libdbi-perl_1.643.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-devtools/perl/{libdbi-perl_1.642.bb => libdbi-perl_1.643.bb} (92%) diff --git a/meta-oe/recipes-devtools/perl/libdbi-perl_1.642.bb b/meta-oe/recipes-devtools/perl/libdbi-perl_1.643.bb similarity index 92% rename from meta-oe/recipes-devtools/perl/libdbi-perl_1.642.bb rename to meta-oe/recipes-devtools/perl/libdbi-perl_1.643.bb index 7532b3fa2..75fad46bf 100644 --- a/meta-oe/recipes-devtools/perl/libdbi-perl_1.642.bb +++ b/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}" -- 2.17.1 From wangmy at cn.fujitsu.com Fri Feb 14 23:43:43 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Fri, 14 Feb 2020 15:43:43 -0800 Subject: [oe] [meta-oe][PATCH] libp11: upgrade 0.4.10 -> 11 In-Reply-To: <1581723823-21171-1-git-send-email-wangmy@cn.fujitsu.com> References: <1581723823-21171-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1581723823-21171-5-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../recipes-support/libp11/{libp11_0.4.10.bb => libp11_11.bb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename meta-oe/recipes-support/libp11/{libp11_0.4.10.bb => libp11_11.bb} (93%) diff --git a/meta-oe/recipes-support/libp11/libp11_0.4.10.bb b/meta-oe/recipes-support/libp11/libp11_11.bb similarity index 93% rename from meta-oe/recipes-support/libp11/libp11_0.4.10.bb rename to meta-oe/recipes-support/libp11/libp11_11.bb index 655db4907..5a0951df2 100644 --- a/meta-oe/recipes-support/libp11/libp11_0.4.10.bb +++ b/meta-oe/recipes-support/libp11/libp11_11.bb @@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29" DEPENDS = "libtool openssl" SRC_URI = "git://github.com/OpenSC/libp11.git" -SRCREV = "973d31f3f58d5549ddd8b1f822ce8f72186f9d68" +SRCREV = "e1210903291b1de9eabcad26e740a4b2fbcca692" S = "${WORKDIR}/git" -- 2.17.1 From pkj at axis.com Fri Feb 14 16:40:21 2020 From: pkj at axis.com (Peter Kjellerstedt) Date: Fri, 14 Feb 2020 17:40:21 +0100 Subject: [oe] [meta-oe][master][zeus][PATCH] ntfs-3g-ntfsprogs: Make it support usrmerge properly Message-ID: <20200214164021.1944-1-pkj@axis.com> An attempt to solve the problem that some files are installed to /sbin even though the usrmerge distro feature is enabled was made in commit 97c0af59 ("ntfs-3g-ntfsprogs: support usrmerge"). However, it merely just removed the problematic files, which meant that the package was rendered unusable. Solve the problem properly by moving all files that are installed in /sbin to ${base_sbindir} instead. Also clear up a cryptic comment. Signed-off-by: Peter Kjellerstedt --- .../0001-Make-build-support-usrmerge.patch | 43 ------------------- .../ntfs-3g-ntfsprogs_2017.3.23.bb | 15 +++++-- 2 files changed, 11 insertions(+), 47 deletions(-) delete mode 100644 meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/files/0001-Make-build-support-usrmerge.patch diff --git a/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/files/0001-Make-build-support-usrmerge.patch b/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/files/0001-Make-build-support-usrmerge.patch deleted file mode 100644 index fce10b999..000000000 --- a/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/files/0001-Make-build-support-usrmerge.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 33f678bf74367aab8ddc2858a9f7797455ea9b9f Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Thu, 29 Aug 2019 10:21:58 +0800 -Subject: [PATCH] Make build support usrmerge - -Upstream-Status: Inappropriate[oe-specific] - -Signed-off-by: Changqing Li ---- - ntfsprogs/Makefile.am | 2 -- - src/Makefile.am | 3 --- - 2 files changed, 5 deletions(-) - -diff --git a/ntfsprogs/Makefile.am b/ntfsprogs/Makefile.am -index f4f9d1b..1f6a673 100644 ---- a/ntfsprogs/Makefile.am -+++ b/ntfsprogs/Makefile.am -@@ -165,8 +165,6 @@ extras: libs $(EXTRA_PROGRAMS) - - if ENABLE_MOUNT_HELPER - install-exec-hook: -- $(INSTALL) -d $(DESTDIR)/sbin -- $(LN_S) -f $(sbindir)/mkntfs $(DESTDIR)/sbin/mkfs.ntfs - - install-data-hook: - $(INSTALL) -d $(DESTDIR)$(man8dir) -diff --git a/src/Makefile.am b/src/Makefile.am -index 8d98408..d0a6a45 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -66,9 +66,6 @@ endif - - if ENABLE_MOUNT_HELPER - install-exec-local: install-rootbinPROGRAMS -- $(MKDIR_P) "$(DESTDIR)/sbin" -- $(LN_S) -f "$(rootbindir)/ntfs-3g" "$(DESTDIR)/sbin/mount.ntfs-3g" -- $(LN_S) -f "$(rootbindir)/lowntfs-3g" "$(DESTDIR)/sbin/mount.lowntfs-3g" - - install-data-local: install-man8 - $(LN_S) -f ntfs-3g.8 "$(DESTDIR)$(man8dir)/mount.ntfs-3g.8" --- -2.7.4 - diff --git a/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb b/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb index 1559bfd3f..6f5cb6cee 100644 --- a/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb +++ b/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb @@ -8,7 +8,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ SRC_URI = "http://tuxera.com/opensource/ntfs-3g_ntfsprogs-${PV}.tgz \ file://0001-libntfs-3g-Makefile.am-fix-install-failed-while-host.patch \ - ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','file://0001-Make-build-support-usrmerge.patch','',d)} \ " S = "${WORKDIR}/ntfs-3g_ntfsprogs-${PV}" SRC_URI[md5sum] = "d97474ae1954f772c6d2fa386a6f462c" @@ -35,10 +34,18 @@ FILES_ntfsprogs = "${base_sbindir}/* ${bindir}/* ${sbindir}/*" FILES_libntfs-3g = "${libdir}/*${SOLIBS}" do_install_append() { - # Standard mount will execute the program /sbin/mount.TYPE - # when called. Add the symbolic to let mount could find ntfs. - ln -sf mount.ntfs-3g ${D}/${base_sbindir}/mount.ntfs + # Standard mount will execute the program /sbin/mount.TYPE when called. + # Add a symbolic link to let mount find ntfs. + ln -sf mount.ntfs-3g ${D}${base_sbindir}/mount.ntfs rmdir ${D}${libdir}/ntfs-3g + + # Handle when usrmerge is in effect. Some files are installed to /sbin + # regardless of the value of ${base_sbindir}. + if [ "${base_sbindir}" != /sbin ] && [ -d ${D}/sbin ]; then + mkdir -p ${D}${base_sbindir} + mv ${D}/sbin/* ${D}${base_sbindir} + rmdir ${D}/sbin + fi } # Satisfy the -dev runtime dependency -- 2.21.1 From pkj at axis.com Fri Feb 14 16:42:52 2020 From: pkj at axis.com (Peter Kjellerstedt) Date: Fri, 14 Feb 2020 17:42:52 +0100 Subject: [oe] [meta-filesystems][master][zeus][PATCHv2] ntfs-3g-ntfsprogs: Make it support usrmerge properly Message-ID: <20200214164252.2607-1-pkj@axis.com> An attempt to solve the problem that some files are installed to /sbin even though the usrmerge distro feature is enabled was made in commit 97c0af59 ("ntfs-3g-ntfsprogs: support usrmerge"). However, it merely just removed the problematic files, which meant that the package was rendered unusable. Solve the problem properly by moving all files that are installed in /sbin to ${base_sbindir} instead. Also clear up a cryptic comment. Signed-off-by: Peter Kjellerstedt --- PATCHv2: Correct [meta-oe] to [meta-filesystems] in the subject. .../0001-Make-build-support-usrmerge.patch | 43 ------------------- .../ntfs-3g-ntfsprogs_2017.3.23.bb | 15 +++++-- 2 files changed, 11 insertions(+), 47 deletions(-) delete mode 100644 meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/files/0001-Make-build-support-usrmerge.patch diff --git a/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/files/0001-Make-build-support-usrmerge.patch b/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/files/0001-Make-build-support-usrmerge.patch deleted file mode 100644 index fce10b999..000000000 --- a/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/files/0001-Make-build-support-usrmerge.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 33f678bf74367aab8ddc2858a9f7797455ea9b9f Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Thu, 29 Aug 2019 10:21:58 +0800 -Subject: [PATCH] Make build support usrmerge - -Upstream-Status: Inappropriate[oe-specific] - -Signed-off-by: Changqing Li ---- - ntfsprogs/Makefile.am | 2 -- - src/Makefile.am | 3 --- - 2 files changed, 5 deletions(-) - -diff --git a/ntfsprogs/Makefile.am b/ntfsprogs/Makefile.am -index f4f9d1b..1f6a673 100644 ---- a/ntfsprogs/Makefile.am -+++ b/ntfsprogs/Makefile.am -@@ -165,8 +165,6 @@ extras: libs $(EXTRA_PROGRAMS) - - if ENABLE_MOUNT_HELPER - install-exec-hook: -- $(INSTALL) -d $(DESTDIR)/sbin -- $(LN_S) -f $(sbindir)/mkntfs $(DESTDIR)/sbin/mkfs.ntfs - - install-data-hook: - $(INSTALL) -d $(DESTDIR)$(man8dir) -diff --git a/src/Makefile.am b/src/Makefile.am -index 8d98408..d0a6a45 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -66,9 +66,6 @@ endif - - if ENABLE_MOUNT_HELPER - install-exec-local: install-rootbinPROGRAMS -- $(MKDIR_P) "$(DESTDIR)/sbin" -- $(LN_S) -f "$(rootbindir)/ntfs-3g" "$(DESTDIR)/sbin/mount.ntfs-3g" -- $(LN_S) -f "$(rootbindir)/lowntfs-3g" "$(DESTDIR)/sbin/mount.lowntfs-3g" - - install-data-local: install-man8 - $(LN_S) -f ntfs-3g.8 "$(DESTDIR)$(man8dir)/mount.ntfs-3g.8" --- -2.7.4 - diff --git a/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb b/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb index 1559bfd3f..6f5cb6cee 100644 --- a/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb +++ b/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb @@ -8,7 +8,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ SRC_URI = "http://tuxera.com/opensource/ntfs-3g_ntfsprogs-${PV}.tgz \ file://0001-libntfs-3g-Makefile.am-fix-install-failed-while-host.patch \ - ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','file://0001-Make-build-support-usrmerge.patch','',d)} \ " S = "${WORKDIR}/ntfs-3g_ntfsprogs-${PV}" SRC_URI[md5sum] = "d97474ae1954f772c6d2fa386a6f462c" @@ -35,10 +34,18 @@ FILES_ntfsprogs = "${base_sbindir}/* ${bindir}/* ${sbindir}/*" FILES_libntfs-3g = "${libdir}/*${SOLIBS}" do_install_append() { - # Standard mount will execute the program /sbin/mount.TYPE - # when called. Add the symbolic to let mount could find ntfs. - ln -sf mount.ntfs-3g ${D}/${base_sbindir}/mount.ntfs + # Standard mount will execute the program /sbin/mount.TYPE when called. + # Add a symbolic link to let mount find ntfs. + ln -sf mount.ntfs-3g ${D}${base_sbindir}/mount.ntfs rmdir ${D}${libdir}/ntfs-3g + + # Handle when usrmerge is in effect. Some files are installed to /sbin + # regardless of the value of ${base_sbindir}. + if [ "${base_sbindir}" != /sbin ] && [ -d ${D}/sbin ]; then + mkdir -p ${D}${base_sbindir} + mv ${D}/sbin/* ${D}${base_sbindir} + rmdir ${D}/sbin + fi } # Satisfy the -dev runtime dependency -- 2.21.1 From derek at asterius.io Fri Feb 14 18:45:18 2020 From: derek at asterius.io (Derek Straka) Date: Fri, 14 Feb 2020 13:45:18 -0500 Subject: [oe] [meta-python][PATCH] python3-bcrypt: consolidate inc and bb files into a single bb file Message-ID: <20200214184518.18006-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-bcrypt.inc | 17 ----------------- .../python/python3-bcrypt_3.1.7.bb | 19 +++++++++++++++++-- 2 files changed, 17 insertions(+), 19 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-bcrypt.inc diff --git a/meta-python/recipes-devtools/python/python-bcrypt.inc b/meta-python/recipes-devtools/python/python-bcrypt.inc deleted file mode 100644 index a264003293..0000000000 --- a/meta-python/recipes-devtools/python/python-bcrypt.inc +++ /dev/null @@ -1,17 +0,0 @@ -DESCRIPTION = "Modern password hashing for your software and your servers." -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=8f7bb094c7232b058c7e9f2e431f389c" - -DEPENDS += "${PYTHON_PN}-cffi-native" - -SRC_URI[md5sum] = "5d6f93b575ce52470af37a8e7dce76fe" -SRC_URI[sha256sum] = "0b0069c752ec14172c5f78208f1863d7ad6755a6fae6fe76ec2c80d13be41e42" - -inherit pypi - -RDEPENDS_${PN}_class-target += "\ - ${PYTHON_PN}-cffi \ - ${PYTHON_PN}-ctypes \ - ${PYTHON_PN}-shell \ - ${PYTHON_PN}-six \ -" diff --git a/meta-python/recipes-devtools/python/python3-bcrypt_3.1.7.bb b/meta-python/recipes-devtools/python/python3-bcrypt_3.1.7.bb index d2ec9e386c..0f2d31f537 100644 --- a/meta-python/recipes-devtools/python/python3-bcrypt_3.1.7.bb +++ b/meta-python/recipes-devtools/python/python3-bcrypt_3.1.7.bb @@ -1,2 +1,17 @@ -inherit setuptools3 -require python-bcrypt.inc +DESCRIPTION = "Modern password hashing for your software and your servers." +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8f7bb094c7232b058c7e9f2e431f389c" + +DEPENDS += "${PYTHON_PN}-cffi-native" + +SRC_URI[md5sum] = "5d6f93b575ce52470af37a8e7dce76fe" +SRC_URI[sha256sum] = "0b0069c752ec14172c5f78208f1863d7ad6755a6fae6fe76ec2c80d13be41e42" + +inherit pypi setuptools3 + +RDEPENDS_${PN}_class-target += "\ + ${PYTHON_PN}-cffi \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-six \ +" -- 2.17.1 From derek at asterius.io Fri Feb 14 18:53:45 2020 From: derek at asterius.io (Derek Straka) Date: Fri, 14 Feb 2020 13:53:45 -0500 Subject: [oe] [meta-python][PATCH] python-beautifulsoup4: consolidate inc and bb files into a single bb file Message-ID: <20200214185345.27235-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../python/python-beautifulsoup4.inc | 17 ----------------- .../python/python3-beautifulsoup4_4.8.2.bb | 19 +++++++++++++++++-- 2 files changed, 17 insertions(+), 19 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-beautifulsoup4.inc diff --git a/meta-python/recipes-devtools/python/python-beautifulsoup4.inc b/meta-python/recipes-devtools/python/python-beautifulsoup4.inc deleted file mode 100644 index 3e95bb7f21..0000000000 --- a/meta-python/recipes-devtools/python/python-beautifulsoup4.inc +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Screen-scraping library" -HOMEPAGE = " https://www.crummy.com/software/BeautifulSoup/bs4" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING.txt;md5=f2d38d8a40bf73fd4b3d16ca2e5882d1" - -SRC_URI[md5sum] = "5dbdb56c009e4632bae7bed1b385804b" -SRC_URI[sha256sum] = "05fd825eb01c290877657a56df4c6e4c311b3965bda790c613a3d6fb01a5462a" - -inherit pypi - -RDEPENDS_${PN} = "\ - ${PYTHON_PN}-html5lib \ - ${PYTHON_PN}-lxml \ - ${PYTHON_PN}-soupsieve \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.8.2.bb b/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.8.2.bb index d98df11e3d..63fbd09582 100644 --- a/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.8.2.bb +++ b/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.8.2.bb @@ -1,2 +1,17 @@ -inherit setuptools3 -require python-beautifulsoup4.inc +SUMMARY = "Screen-scraping library" +HOMEPAGE = " https://www.crummy.com/software/BeautifulSoup/bs4" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=f2d38d8a40bf73fd4b3d16ca2e5882d1" + +SRC_URI[md5sum] = "5dbdb56c009e4632bae7bed1b385804b" +SRC_URI[sha256sum] = "05fd825eb01c290877657a56df4c6e4c311b3965bda790c613a3d6fb01a5462a" + +inherit pypi setuptools3 + +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-html5lib \ + ${PYTHON_PN}-lxml \ + ${PYTHON_PN}-soupsieve \ +" + +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From derek at asterius.io Fri Feb 14 18:57:24 2020 From: derek at asterius.io (Derek Straka) Date: Fri, 14 Feb 2020 13:57:24 -0500 Subject: [oe] [meta-python][PATCH] python3-behave: consolidate inc and bb files into a single bb file Message-ID: <20200214185724.30409-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-behave.inc | 15 --------------- .../python/python3-behave_1.2.6.bb | 17 +++++++++++++++-- 2 files changed, 15 insertions(+), 17 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-behave.inc diff --git a/meta-python/recipes-devtools/python/python-behave.inc b/meta-python/recipes-devtools/python/python-behave.inc deleted file mode 100644 index ded75801dd..0000000000 --- a/meta-python/recipes-devtools/python/python-behave.inc +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "A behavior-driven development framework, Python style" -HOMEPAGE = "https://github.com/behave/behave" -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=d950439e8ea6ed233e4288f5e1a49c06" - -SRC_URI[md5sum] = "3f05c859a1c45f5ed33e925817ad887d" -SRC_URI[sha256sum] = "b9662327aa53294c1351b0a9c369093ccec1d21026f050c3bd9b3e5cccf81a86" - -inherit pypi - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-parse-type \ - ${PYTHON_PN}-setuptools \ - ${PYTHON_PN}-six \ - " diff --git a/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb b/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb index 1c55871b10..a28e527315 100644 --- a/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb +++ b/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb @@ -1,2 +1,15 @@ -inherit setuptools3 -require python-behave.inc +SUMMARY = "A behavior-driven development framework, Python style" +HOMEPAGE = "https://github.com/behave/behave" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d950439e8ea6ed233e4288f5e1a49c06" + +SRC_URI[md5sum] = "3f05c859a1c45f5ed33e925817ad887d" +SRC_URI[sha256sum] = "b9662327aa53294c1351b0a9c369093ccec1d21026f050c3bd9b3e5cccf81a86" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-parse-type \ + ${PYTHON_PN}-setuptools \ + ${PYTHON_PN}-six \ + " -- 2.17.1 From jonathan.richardson at broadcom.com Fri Feb 14 19:07:46 2020 From: jonathan.richardson at broadcom.com (Jonathan Richardson) Date: Fri, 14 Feb 2020 11:07:46 -0800 Subject: [oe] [meta-oe][PATCH v2 1/1] pcimem: add initial version 2.0 Message-ID: <20200214190746.49762-1-jonathan.richardson@broadcom.com> From: Randy Schacher Initial revision from 09724edb1783a98da2b7ae53c5aaa87493aabc9b Reviewed-by: Jonathan Richardson Reviewed-by: Randy Schacher Signed-off-by: Jonathan Richardson --- meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb diff --git a/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb b/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb new file mode 100644 index 000000000..107d5a8b7 --- /dev/null +++ b/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 +} -- 2.17.1 From derek at asterius.io Fri Feb 14 19:13:55 2020 From: derek at asterius.io (Derek Straka) Date: Fri, 14 Feb 2020 14:13:55 -0500 Subject: [oe] [meta-python][PATCH] python3-blinker: consolidate inc and bb files into a single bb file Message-ID: <20200214191355.31600-1-derek@asterius.io> Signed-off-by: Derek Straka --- meta-python/recipes-devtools/python/python-blinker.inc | 7 ------- .../recipes-devtools/python/python3-blinker_1.4.bb | 8 +++++++- 2 files changed, 7 insertions(+), 8 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-blinker.inc diff --git a/meta-python/recipes-devtools/python/python-blinker.inc b/meta-python/recipes-devtools/python/python-blinker.inc deleted file mode 100644 index eaf3908370..0000000000 --- a/meta-python/recipes-devtools/python/python-blinker.inc +++ /dev/null @@ -1,7 +0,0 @@ -DESCRIPTION = "Fast, simple object-to-object and broadcast signaling." -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=946d7e89af6f7733aeaebed5635d2682" - -SRC_URI[md5sum] = "8b3722381f83c2813c52de3016b68d33" -SRC_URI[sha256sum] = "471aee25f3992bd325afa3772f1063dbdbbca947a041b8b89466dc00d606f8b6" - diff --git a/meta-python/recipes-devtools/python/python3-blinker_1.4.bb b/meta-python/recipes-devtools/python/python3-blinker_1.4.bb index 924b3cf51d..e2f76c33d8 100644 --- a/meta-python/recipes-devtools/python/python3-blinker_1.4.bb +++ b/meta-python/recipes-devtools/python/python3-blinker_1.4.bb @@ -1,2 +1,8 @@ +DESCRIPTION = "Fast, simple object-to-object and broadcast signaling." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=946d7e89af6f7733aeaebed5635d2682" + +SRC_URI[md5sum] = "8b3722381f83c2813c52de3016b68d33" +SRC_URI[sha256sum] = "471aee25f3992bd325afa3772f1063dbdbbca947a041b8b89466dc00d606f8b6" + inherit pypi setuptools3 -require python-blinker.inc -- 2.17.1 From jonathan.richardson at broadcom.com Fri Feb 14 19:41:12 2020 From: jonathan.richardson at broadcom.com (Jonathan Richardson) Date: Fri, 14 Feb 2020 11:41:12 -0800 Subject: [oe] [meta-oe] spidev-test: Add initial version of recipe In-Reply-To: <20200213232346.109257-1-jonathan.richardson@broadcom.com> References: <20200213232346.109257-1-jonathan.richardson@broadcom.com> Message-ID: -----Original Message----- From: Jonathan Richardson [mailto:jonathan.richardson at broadcom.com] Sent: Thursday, February 13, 2020 3:24 PM To: openembedded-devel at lists.openembedded.org Cc: Arun Parameswaran; Jonathan Richardson Subject: [meta-oe] spidev-test: Add initial version of recipe From: Arun Parameswaran Allows for testing SPI interface using spidev driver and is part of the kernel tools. Signed-off-by: Arun Parameswaran Reviewed-by: Jonathan Richardson Tested-by: Jonathan Richardson Signed-off-by: Jonathan Richardson --- .../recipes-kernel/spidev-test/spidev-test.bb | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 meta-oe/recipes-kernel/spidev-test/spidev-test.bb diff --git a/meta-oe/recipes-kernel/spidev-test/spidev-test.bb b/meta-oe/recipes-kernel/spidev-test/spidev-test.bb new file mode 100644 index 000000000..7dd199fe9 --- /dev/null +++ b/meta-oe/recipes-kernel/spidev-test/spidev-test.bb @@ -0,0 +1,30 @@ +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 " +DEPENDS = "binutils elfutils" Doesn't look like these dependencies aren't required. I'm going to remove them. From derek at asterius.io Fri Feb 14 19:44:14 2020 From: derek at asterius.io (Derek Straka) Date: Fri, 14 Feb 2020 14:44:14 -0500 Subject: [oe] [meta-python][PATCH] python3-booleanpy: consolidate inc and bb files into a single bb file Message-ID: <20200214194414.32332-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-booleanpy.inc | 14 -------------- .../python/python3-booleanpy_3.7.bb | 16 ++++++++++++++-- 2 files changed, 14 insertions(+), 16 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-booleanpy.inc diff --git a/meta-python/recipes-devtools/python/python-booleanpy.inc b/meta-python/recipes-devtools/python/python-booleanpy.inc deleted file mode 100644 index 335d7d396d..0000000000 --- a/meta-python/recipes-devtools/python/python-booleanpy.inc +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "Define boolean algebras, create and parse boolean expressions and create custom boolean DSL" -HOMEPAGE = "https://github.com/bastikr/boolean.py" - -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e319747a5eb94cddf646037c01ddba47" - -SRC_URI[md5sum] = "1189d115a38f84f5df743014926a9159" -SRC_URI[sha256sum] = "bd19b412435611ecc712603d0fd7d0e280e24698e7a6e3d5f610473870c5dd1e" - -PYPI_PACKAGE = "boolean.py" - -inherit pypi - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python3-booleanpy_3.7.bb b/meta-python/recipes-devtools/python/python3-booleanpy_3.7.bb index 5f8602d187..ebf7ba4e74 100644 --- a/meta-python/recipes-devtools/python/python3-booleanpy_3.7.bb +++ b/meta-python/recipes-devtools/python/python3-booleanpy_3.7.bb @@ -1,2 +1,14 @@ -inherit setuptools3 -require python-booleanpy.inc +SUMMARY = "Define boolean algebras, create and parse boolean expressions and create custom boolean DSL" +HOMEPAGE = "https://github.com/bastikr/boolean.py" + +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e319747a5eb94cddf646037c01ddba47" + +SRC_URI[md5sum] = "1189d115a38f84f5df743014926a9159" +SRC_URI[sha256sum] = "bd19b412435611ecc712603d0fd7d0e280e24698e7a6e3d5f610473870c5dd1e" + +PYPI_PACKAGE = "boolean.py" + +inherit pypi setuptools3 + +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From jonathan.richardson at broadcom.com Fri Feb 14 19:44:20 2020 From: jonathan.richardson at broadcom.com (Jonathan Richardson) Date: Fri, 14 Feb 2020 11:44:20 -0800 Subject: [oe] [meta-oe][PATCH v2 1/1] spidev-test: Add initial version of recipe Message-ID: <20200214194420.106483-1-jonathan.richardson@broadcom.com> From: Arun Parameswaran Allows for testing SPI interface using spidev driver and is part of the kernel tools. Signed-off-by: Arun Parameswaran Reviewed-by: Jonathan Richardson Tested-by: Jonathan Richardson Signed-off-by: Jonathan Richardson --- .../recipes-kernel/spidev-test/spidev-test.bb | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 meta-oe/recipes-kernel/spidev-test/spidev-test.bb diff --git a/meta-oe/recipes-kernel/spidev-test/spidev-test.bb b/meta-oe/recipes-kernel/spidev-test/spidev-test.bb new file mode 100644 index 000000000..662630291 --- /dev/null +++ b/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}" -- 2.17.1 From derek at asterius.io Fri Feb 14 19:47:39 2020 From: derek at asterius.io (Derek Straka) Date: Fri, 14 Feb 2020 14:47:39 -0500 Subject: [oe] [meta-python][PATCH] python3-cachetools: consolidate inc and bb files into a single bb file Message-ID: <20200214194739.727-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../python/python-cachetools.inc | 16 ---------------- .../python/python3-cachetools_4.0.0.bb | 18 ++++++++++++++++-- 2 files changed, 16 insertions(+), 18 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-cachetools.inc diff --git a/meta-python/recipes-devtools/python/python-cachetools.inc b/meta-python/recipes-devtools/python/python-cachetools.inc deleted file mode 100644 index f3d3bc6bc5..0000000000 --- a/meta-python/recipes-devtools/python/python-cachetools.inc +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "Extensible memoizing collections and decorators" -HOMEPAGE = "https://github.com/tkem/cachetools" -DESCRIPTION = "This module provides various memoizing \ -collections and decorators, including variants of the \ -Python 3 Standard Library @lru_cache function decorator." -SECTION = "devel/python" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=27f7518eb6f7dc686d0f953b2f28dae5" - -inherit pypi - -SRC_URI[md5sum] = "6a88df13467e80eb61dd2bedad19b83c" -SRC_URI[sha256sum] = "9a52dd97a85f257f4e4127f15818e71a0c7899f121b34591fcc1173ea79a0198" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python3-cachetools_4.0.0.bb b/meta-python/recipes-devtools/python/python3-cachetools_4.0.0.bb index 76b2f6785c..50d0f25739 100644 --- a/meta-python/recipes-devtools/python/python3-cachetools_4.0.0.bb +++ b/meta-python/recipes-devtools/python/python3-cachetools_4.0.0.bb @@ -1,2 +1,16 @@ -inherit setuptools3 -require python-cachetools.inc +SUMMARY = "Extensible memoizing collections and decorators" +HOMEPAGE = "https://github.com/tkem/cachetools" +DESCRIPTION = "This module provides various memoizing \ +collections and decorators, including variants of the \ +Python 3 Standard Library @lru_cache function decorator." +SECTION = "devel/python" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=27f7518eb6f7dc686d0f953b2f28dae5" + +inherit pypi setuptools3 + +SRC_URI[md5sum] = "6a88df13467e80eb61dd2bedad19b83c" +SRC_URI[sha256sum] = "9a52dd97a85f257f4e4127f15818e71a0c7899f121b34591fcc1173ea79a0198" + +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From derek at asterius.io Fri Feb 14 19:56:19 2020 From: derek at asterius.io (Derek Straka) Date: Fri, 14 Feb 2020 14:56:19 -0500 Subject: [oe] [meta-python][PATCH] python3-can: consolidate inc and bb files into a single bb file Message-ID: <20200214195619.2731-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-can.inc | 18 ------------------ .../python/python3-can_3.3.2.bb | 17 ++++++++++++++++- 2 files changed, 16 insertions(+), 19 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-can.inc diff --git a/meta-python/recipes-devtools/python/python-can.inc b/meta-python/recipes-devtools/python/python-can.inc deleted file mode 100644 index 7d0100d7d7..0000000000 --- a/meta-python/recipes-devtools/python/python-can.inc +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Controller Area Network (CAN) interface module for Python" -SECTION = "devel/python" -LICENSE = "LGPLv3" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e6a600fd5e1d9cbde2d983680233ad02" - -SRC_URI[md5sum] = "b724553a330478270267380b4888a18e" -SRC_URI[sha256sum] = "5fefb5c1e7e7f07faefc02c6eac79f9b58376f007048a04d8e7f325d48ec6b2e" - -PYPI_PACKAGE="python-can" - -RDEPENDS_${PN}_class-target += "\ - ${PYTHON_PN}-ctypes \ - ${PYTHON_PN}-logging \ - ${PYTHON_PN}-misc \ - ${PYTHON_PN}-netserver \ - ${PYTHON_PN}-sqlite3 \ - ${PYTHON_PN}-wrapt \ -" diff --git a/meta-python/recipes-devtools/python/python3-can_3.3.2.bb b/meta-python/recipes-devtools/python/python3-can_3.3.2.bb index aaa9e811ce..4597795d50 100644 --- a/meta-python/recipes-devtools/python/python3-can_3.3.2.bb +++ b/meta-python/recipes-devtools/python/python3-can_3.3.2.bb @@ -1,7 +1,22 @@ -require python-can.inc +SUMMARY = "Controller Area Network (CAN) interface module for Python" +SECTION = "devel/python" +LICENSE = "LGPLv3" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e6a600fd5e1d9cbde2d983680233ad02" + +SRC_URI[md5sum] = "b724553a330478270267380b4888a18e" +SRC_URI[sha256sum] = "5fefb5c1e7e7f07faefc02c6eac79f9b58376f007048a04d8e7f325d48ec6b2e" + +PYPI_PACKAGE="python-can" + inherit pypi setuptools3 RDEPENDS_${PN}_class-target += "\ + ${PYTHON_PN}-ctypes \ ${PYTHON_PN}-codecs \ ${PYTHON_PN}-compression \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-misc \ + ${PYTHON_PN}-netserver \ + ${PYTHON_PN}-sqlite3 \ + ${PYTHON_PN}-wrapt \ " -- 2.17.1 From derek at asterius.io Fri Feb 14 22:33:46 2020 From: derek at asterius.io (Derek Straka) Date: Fri, 14 Feb 2020 17:33:46 -0500 Subject: [oe] [meta-python][PATCH] python3-cassandra-driver: consolidate inc and bb files into a single bb file Message-ID: <20200214223346.14550-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../python/python-cassandra-driver.inc | 33 ----------------- .../python/python3-cassandra-driver_3.14.0.bb | 35 ++++++++++++++++--- 2 files changed, 31 insertions(+), 37 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-cassandra-driver.inc diff --git a/meta-python/recipes-devtools/python/python-cassandra-driver.inc b/meta-python/recipes-devtools/python/python-cassandra-driver.inc deleted file mode 100644 index 53ebfec337..0000000000 --- a/meta-python/recipes-devtools/python/python-cassandra-driver.inc +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "DataStax Python Driver for Apache Cassandra" -DESCRIPTION = "A modern, feature-rich and highly-tunable Python client \ -library for Apache Cassandra (1.2+) and DataStax Enterprise (3.1+) using \ -exclusively Cassandra's binary protocol and Cassandra Query Language v3." -HOMEPAGE = "https://github.com/datastax/python-driver" -SECTION = "devel/python" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93" -SRCNAME = "cassandra-driver" - -SRC_URI[md5sum] = "c5bed026bf48c821424c1f6296193908" -SRC_URI[sha256sum] = "b65218e2582277f5b77d1436e420db8616f63e3437a9e839cdcd7172d760e861" - -DISTUTILS_BUILD_ARGS += " \ - --no-libev \ -" -DISTUTILS_INSTALL_ARGS += " \ - --no-libev \ -" - -inherit pypi - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-cython \ - ${PYTHON_PN}-multiprocessing \ - ${PYTHON_PN}-six \ - ${PYTHON_PN}-json \ - libevent \ -" - -DEPENDS += "\ - ${PYTHON_PN}-cython \ -" diff --git a/meta-python/recipes-devtools/python/python3-cassandra-driver_3.14.0.bb b/meta-python/recipes-devtools/python/python3-cassandra-driver_3.14.0.bb index 34f149d3f5..768e557b94 100644 --- a/meta-python/recipes-devtools/python/python3-cassandra-driver_3.14.0.bb +++ b/meta-python/recipes-devtools/python/python3-cassandra-driver_3.14.0.bb @@ -1,8 +1,35 @@ -inherit setuptools3 -require python-cassandra-driver.inc +SUMMARY = "DataStax Python Driver for Apache Cassandra" +DESCRIPTION = "A modern, feature-rich and highly-tunable Python client \ +library for Apache Cassandra (1.2+) and DataStax Enterprise (3.1+) using \ +exclusively Cassandra's binary protocol and Cassandra Query Language v3." +HOMEPAGE = "https://github.com/datastax/python-driver" +SECTION = "devel/python" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93" +SRCNAME = "cassandra-driver" -# Requires concurrent which is currently in -misc -RDEPENDS_${PN} += " \ +SRC_URI[md5sum] = "c5bed026bf48c821424c1f6296193908" +SRC_URI[sha256sum] = "b65218e2582277f5b77d1436e420db8616f63e3437a9e839cdcd7172d760e861" + +DISTUTILS_BUILD_ARGS += " \ + --no-libev \ +" +DISTUTILS_INSTALL_ARGS += " \ + --no-libev \ +" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-cython \ + ${PYTHON_PN}-json \ ${PYTHON_PN}-misc \ + ${PYTHON_PN}-multiprocessing \ ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-six \ + libevent \ +" + +DEPENDS += "\ + ${PYTHON_PN}-cython \ " -- 2.17.1 From derek at asterius.io Fri Feb 14 22:35:27 2020 From: derek at asterius.io (Derek Straka) Date: Fri, 14 Feb 2020 17:35:27 -0500 Subject: [oe] [meta-python][PATCH] python3-certifi: consolidate inc and bb files into a single bb file Message-ID: <20200214223527.14658-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-certifi.inc | 13 ------------- .../python/python3-certifi_2019.11.28.bb | 15 ++++++++++++++- 2 files changed, 14 insertions(+), 14 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-certifi.inc diff --git a/meta-python/recipes-devtools/python/python-certifi.inc b/meta-python/recipes-devtools/python/python-certifi.inc deleted file mode 100644 index 98fa1f2889..0000000000 --- a/meta-python/recipes-devtools/python/python-certifi.inc +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "Python package for providing Mozilla's CA Bundle." -DESCRIPTION = "This installable Python package contains a CA Bundle that you can reference in your \ -Python code. This is useful for verifying HTTP requests, for example. This is the same CA Bundle \ -which ships with the Requests codebase, and is derived from Mozilla Firefox's canonical set." -HOMEPAGE = " http://certifi.io/" - -LICENSE = "ISC" -LIC_FILES_CHKSUM = "file://LICENSE;md5=f77f61d14ee6feac4228d3ebd26cc1f1" - -SRC_URI[md5sum] = "4d5229c4d9f0a4a79106f9e2c2cfd381" -SRC_URI[sha256sum] = "25b64c7da4cd7479594d035c08c2d809eb4aab3a26e5a990ea98cc450c320f1f" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python3-certifi_2019.11.28.bb b/meta-python/recipes-devtools/python/python3-certifi_2019.11.28.bb index 70f674b22c..c9e945f271 100644 --- a/meta-python/recipes-devtools/python/python3-certifi_2019.11.28.bb +++ b/meta-python/recipes-devtools/python/python3-certifi_2019.11.28.bb @@ -1,2 +1,15 @@ +SUMMARY = "Python package for providing Mozilla's CA Bundle." +DESCRIPTION = "This installable Python package contains a CA Bundle that you can reference in your \ +Python code. This is useful for verifying HTTP requests, for example. This is the same CA Bundle \ +which ships with the Requests codebase, and is derived from Mozilla Firefox's canonical set." +HOMEPAGE = " http://certifi.io/" + +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://LICENSE;md5=f77f61d14ee6feac4228d3ebd26cc1f1" + +SRC_URI[md5sum] = "4d5229c4d9f0a4a79106f9e2c2cfd381" +SRC_URI[sha256sum] = "25b64c7da4cd7479594d035c08c2d809eb4aab3a26e5a990ea98cc450c320f1f" + inherit pypi setuptools3 -require python-certifi.inc + +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From derek at asterius.io Fri Feb 14 22:37:51 2020 From: derek at asterius.io (Derek Straka) Date: Fri, 14 Feb 2020 17:37:51 -0500 Subject: [oe] [meta-python][PATCH] python3-cffi: consolidate inc and bb files into a single bb file Message-ID: <20200214223751.16148-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-cffi.inc | 17 ----------------- .../python/python3-cffi_1.13.2.bb | 19 ++++++++++++++++++- 2 files changed, 18 insertions(+), 18 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-cffi.inc diff --git a/meta-python/recipes-devtools/python/python-cffi.inc b/meta-python/recipes-devtools/python/python-cffi.inc deleted file mode 100644 index a2b0c3bb0c..0000000000 --- a/meta-python/recipes-devtools/python/python-cffi.inc +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Foreign Function Interface for Python calling C code" -HOMEPAGE = "http://cffi.readthedocs.org/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf" -DEPENDS += "libffi ${PYTHON_PN}-pycparser" - -SRC_URI[md5sum] = "652203cf99faa254efff7fab23c2f3a2" -SRC_URI[sha256sum] = "599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346" - -RDEPENDS_${PN}_class-target = " \ - ${PYTHON_PN}-ctypes \ - ${PYTHON_PN}-io \ - ${PYTHON_PN}-pycparser \ - ${PYTHON_PN}-shell \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb b/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb index e888084347..6156081126 100644 --- a/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb +++ b/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb @@ -1,2 +1,19 @@ +SUMMARY = "Foreign Function Interface for Python calling C code" +HOMEPAGE = "http://cffi.readthedocs.org/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf" +DEPENDS += "libffi ${PYTHON_PN}-pycparser" + +SRC_URI[md5sum] = "652203cf99faa254efff7fab23c2f3a2" +SRC_URI[sha256sum] = "599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346" + inherit pypi setuptools3 -require python-cffi.inc + +RDEPENDS_${PN}_class-target = " \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-pycparser \ + ${PYTHON_PN}-shell \ +" + +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From raj.khem at gmail.com Fri Feb 14 22:47:42 2020 From: raj.khem at gmail.com (Khem Raj) Date: Fri, 14 Feb 2020 14:47:42 -0800 Subject: [oe] [meta-oe][PATCH] packagegroup-meta-oe: Remove python2 packages from packagegroup-meta-oe-devtools Message-ID: <20200214224742.3270717-1-raj.khem@gmail.com> Signed-off-by: Khem Raj --- meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb | 1 - 1 file changed, 1 deletion(-) diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb index 777623ba88..bad4aa769e 100644 --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb +++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb @@ -116,7 +116,6 @@ RDEPENDS_packagegroup-meta-oe-devtools ="\ 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 tclap uftrace uw-imap valijson \ xmlrpc-c yajl yasm \ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "geany geany-plugins glade tk", "", d)} \ -- 2.25.0 From derek at asterius.io Fri Feb 14 22:48:02 2020 From: derek at asterius.io (Derek Straka) Date: Fri, 14 Feb 2020 17:48:02 -0500 Subject: [oe] [meta-python][PATCH] python3-chardet: consolidate inc and bb files into a single bb file Message-ID: <20200214224802.17411-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../python/python-chardet.inc | 23 --------------- .../python/python3-chardet_3.0.4.bb | 29 +++++++++++++++---- 2 files changed, 23 insertions(+), 29 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-chardet.inc diff --git a/meta-python/recipes-devtools/python/python-chardet.inc b/meta-python/recipes-devtools/python/python-chardet.inc deleted file mode 100644 index 6305299780..0000000000 --- a/meta-python/recipes-devtools/python/python-chardet.inc +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "Universal encoding detector for Python 2 and 3" -LICENSE = "LGPL-2.1" -LIC_FILES_CHKSUM = "file://LICENSE;md5=a6f89e2100d9b6cdffcea4f398e37343" - -inherit pypi - -# setup.py of chardet needs this. -DEPENDS += "${PYTHON_PN}-pytest-runner-native" - -SRC_URI[md5sum] = "7dd1ba7f9c77e32351b0a0cfacf4055c" -SRC_URI[sha256sum] = "84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae" - -BBCLASSEXTEND = "native nativesdk" - -PACKAGES =+ "${PN}-cli" -RDEPENDS_${PN}-cli = "${PN} " -FILES_${PN}-cli += " \ - ${PYTHON_SITEPACKAGES_DIR}/chardet/cli \ -" - -RDEPENDS_${PN}_class-target += " \ - ${PYTHON_PN}-logging \ -" diff --git a/meta-python/recipes-devtools/python/python3-chardet_3.0.4.bb b/meta-python/recipes-devtools/python/python3-chardet_3.0.4.bb index 38d8122ce9..80785b8d4e 100644 --- a/meta-python/recipes-devtools/python/python3-chardet_3.0.4.bb +++ b/meta-python/recipes-devtools/python/python3-chardet_3.0.4.bb @@ -1,7 +1,24 @@ -inherit setuptools3 -require python-chardet.inc +SUMMARY = "Universal encoding detector for Python 2 and 3" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a6f89e2100d9b6cdffcea4f398e37343" -do_install_append () { - # rename scripts that would conflict with the Python 2 build of chardet - mv ${D}${bindir}/chardetect ${D}${bindir}/chardetect3 -} +SRC_URI[md5sum] = "7dd1ba7f9c77e32351b0a0cfacf4055c" +SRC_URI[sha256sum] = "84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae" + +# setup.py of chardet needs this. +DEPENDS += "${PYTHON_PN}-pytest-runner-native" + +inherit pypi setuptools3 + +PACKAGES =+ "${PN}-cli" +FILES_${PN}-cli += " \ + ${PYTHON_SITEPACKAGES_DIR}/chardet/cli \ +" + +RDEPENDS_${PN}-cli = "${PN} " + +RDEPENDS_${PN}_class-target += " \ + ${PYTHON_PN}-logging \ +" + +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From derek at asterius.io Fri Feb 14 22:52:06 2020 From: derek at asterius.io (Derek Straka) Date: Fri, 14 Feb 2020 17:52:06 -0500 Subject: [oe] [meta-python][PATCH] python3-click: consolidate inc and bb files into a single bb file Message-ID: <20200214225206.18243-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-click.inc | 25 ------------------ .../python/python3-click_7.0.bb | 26 ++++++++++++++++++- 2 files changed, 25 insertions(+), 26 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-click.inc diff --git a/meta-python/recipes-devtools/python/python-click.inc b/meta-python/recipes-devtools/python/python-click.inc deleted file mode 100644 index f9dfd5627f..0000000000 --- a/meta-python/recipes-devtools/python/python-click.inc +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "A simple wrapper around optparse for powerful command line utilities." -DESCRIPTION = "\ -Click is a Python package for creating beautiful command line interfaces \ -in a composable way with as little code as necessary. It's the "Command \ -Line Interface Creation Kit". It's highly configurable but comes with \ -sensible defaults out of the box." -HOMEPAGE = "http://click.pocoo.org/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=c13ed890b210a882c1778216694c98c7" - -SRC_URI[md5sum] = "7f53d50f7b7373ebc7963f9ff697450a" -SRC_URI[sha256sum] = "5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7" - -UPSTREAM_CHECK_REGEX = "click/(?P\d+(\.\d+)+)/" - -CLEANBROKEN = "1" - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-io \ - ${PYTHON_PN}-threading \ - " - -BBCLASSEXTEND = "native nativesdk" - -PYPI_PACKAGE = "Click" diff --git a/meta-python/recipes-devtools/python/python3-click_7.0.bb b/meta-python/recipes-devtools/python/python3-click_7.0.bb index 1920644042..cfa3e0fe4f 100644 --- a/meta-python/recipes-devtools/python/python3-click_7.0.bb +++ b/meta-python/recipes-devtools/python/python3-click_7.0.bb @@ -1,2 +1,26 @@ +SUMMARY = "A simple wrapper around optparse for powerful command line utilities." +DESCRIPTION = "\ +Click is a Python package for creating beautiful command line interfaces \ +in a composable way with as little code as necessary. It's the "Command \ +Line Interface Creation Kit". It's highly configurable but comes with \ +sensible defaults out of the box." +HOMEPAGE = "http://click.pocoo.org/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=c13ed890b210a882c1778216694c98c7" + +SRC_URI[md5sum] = "7f53d50f7b7373ebc7963f9ff697450a" +SRC_URI[sha256sum] = "5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7" + +PYPI_PACKAGE = "Click" inherit pypi setuptools3 -require python-click.inc + +UPSTREAM_CHECK_REGEX = "click/(?P\d+(\.\d+)+)/" + +CLEANBROKEN = "1" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-threading \ + " + +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From derek at asterius.io Fri Feb 14 22:56:59 2020 From: derek at asterius.io (Derek Straka) Date: Fri, 14 Feb 2020 17:56:59 -0500 Subject: [oe] [meta-python][PATCH] python3-cmd2: consolidate inc and bb files into a single bb file Message-ID: <20200214225659.21361-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-cmd2.inc | 13 ------------ .../python/python3-cmd2_0.9.23.bb | 20 +++++++++++++++---- 2 files changed, 16 insertions(+), 17 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-cmd2.inc diff --git a/meta-python/recipes-devtools/python/python-cmd2.inc b/meta-python/recipes-devtools/python/python-cmd2.inc deleted file mode 100644 index 68381ad220..0000000000 --- a/meta-python/recipes-devtools/python/python-cmd2.inc +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "Extra features for standard library's cmd module" -HOMEPAGE = "http://packages.python.org/cmd2/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=9791cd24ca7d1807388ccd55cd066def" - -SRC_URI[md5sum] = "6db66a06210d5f1edb44693b887ed62b" -SRC_URI[sha256sum] = "8ad12ef3cc46d03073c545b6e80a3f84a5921f6653073a60e7d9a7ff3b352c9e" - -inherit pypi - -DEPENDS += "${PYTHON_PN}-setuptools-scm-native" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python3-cmd2_0.9.23.bb b/meta-python/recipes-devtools/python/python3-cmd2_0.9.23.bb index f5c5c7e1a3..a2bf0c45e2 100644 --- a/meta-python/recipes-devtools/python/python3-cmd2_0.9.23.bb +++ b/meta-python/recipes-devtools/python/python3-cmd2_0.9.23.bb @@ -1,9 +1,21 @@ -inherit setuptools3 -require python-cmd2.inc +SUMMARY = "Extra features for standard library's cmd module" +HOMEPAGE = "http://packages.python.org/cmd2/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=9791cd24ca7d1807388ccd55cd066def" + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" + +SRC_URI[md5sum] = "6db66a06210d5f1edb44693b887ed62b" +SRC_URI[sha256sum] = "8ad12ef3cc46d03073c545b6e80a3f84a5921f6653073a60e7d9a7ff3b352c9e" + +inherit pypi setuptools3 RDEPENDS_${PN} += "\ + ${PYTHON_PN}-attrs \ + ${PYTHON_PN}-colorama \ ${PYTHON_PN}-pyperclip \ ${PYTHON_PN}-colorama \ - ${PYTHON_PN}-attrs \ ${PYTHON_PN}-wcwidth \ - " +" + +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From raj.khem at gmail.com Fri Feb 14 23:02:23 2020 From: raj.khem at gmail.com (Khem Raj) Date: Fri, 14 Feb 2020 15:02:23 -0800 Subject: [oe] [meta-python][PATCH] python3-cffi: consolidate inc and bb files into a single bb file In-Reply-To: <20200214223751.16148-1-derek@asterius.io> References: <20200214223751.16148-1-derek@asterius.io> Message-ID: <4316c976-5fda-d89c-70a1-729496c0e98b@gmail.com> On 2/14/20 2:37 PM, Derek Straka wrote: > Signed-off-by: Derek Straka > --- > .../recipes-devtools/python/python-cffi.inc | 17 ----------------- > .../python/python3-cffi_1.13.2.bb | 19 ++++++++++++++++++- > 2 files changed, 18 insertions(+), 18 deletions(-) > delete mode 100644 meta-python/recipes-devtools/python/python-cffi.inc > > diff --git a/meta-python/recipes-devtools/python/python-cffi.inc b/meta-python/recipes-devtools/python/python-cffi.inc > deleted file mode 100644 > index a2b0c3bb0c..0000000000 > --- a/meta-python/recipes-devtools/python/python-cffi.inc > +++ /dev/null > @@ -1,17 +0,0 @@ > -SUMMARY = "Foreign Function Interface for Python calling C code" > -HOMEPAGE = "http://cffi.readthedocs.org/" > -LICENSE = "MIT" > -LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf" > -DEPENDS += "libffi ${PYTHON_PN}-pycparser" > - > -SRC_URI[md5sum] = "652203cf99faa254efff7fab23c2f3a2" > -SRC_URI[sha256sum] = "599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346" > - > -RDEPENDS_${PN}_class-target = " \ > - ${PYTHON_PN}-ctypes \ > - ${PYTHON_PN}-io \ > - ${PYTHON_PN}-pycparser \ > - ${PYTHON_PN}-shell \ > -" > - > -BBCLASSEXTEND = "native nativesdk" > diff --git a/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb b/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb > index e888084347..6156081126 100644 > --- a/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb > +++ b/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb > @@ -1,2 +1,19 @@ > +SUMMARY = "Foreign Function Interface for Python calling C code" > +HOMEPAGE = "http://cffi.readthedocs.org/" > +LICENSE = "MIT" > +LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf" > +DEPENDS += "libffi ${PYTHON_PN}-pycparser" > + > +SRC_URI[md5sum] = "652203cf99faa254efff7fab23c2f3a2" > +SRC_URI[sha256sum] = "599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346" > + > inherit pypi setuptools3 > -require python-cffi.inc > + > +RDEPENDS_${PN}_class-target = " \ > + ${PYTHON_PN}-ctypes \ > + ${PYTHON_PN}-io \ > + ${PYTHON_PN}-pycparser \ > + ${PYTHON_PN}-shell \ > +" > + > +BBCLASSEXTEND = "native nativesdk" > this patch does not apply cleanly on master-next, can you rebase and send v2 please ? From raj.khem at gmail.com Fri Feb 14 23:04:04 2020 From: raj.khem at gmail.com (Khem Raj) Date: Fri, 14 Feb 2020 15:04:04 -0800 Subject: [oe] [meta-python2][PATCH] python-grpcio: Upgrade to 1.27.1 In-Reply-To: References: <20200213055519.1978873-1-raj.khem@gmail.com> Message-ID: <94881089-5174-c0d0-55f5-bd3f93d00b12@gmail.com> On 2/14/20 8:06 AM, Tim Orling wrote: > Thank you. I've merged this, but noticed 1.27.2 was released to patch > python. Can you have a look? > https://github.com/grpc/grpc/releases/tag/v1.27.2 > interesting timing. My intention was to get 64bit time_t fixes only. > On Wed, Feb 12, 2020 at 9:55 PM Khem Raj > wrote: > > Delete gettid patch, fixed differenty upstream > Add code to use cross compiler in setup.py > > Define GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY so it does not use > SYS_clock_gettime syscalls since it does not work when 64bit time_t is > used on 32bit arches > > Signed-off-by: Khem Raj > > --- > ?...-Do-not-mix-C-and-C-compiler-options.patch | 44 ++++++++++++++----- > ?.../python/python-grpcio/gettid.patch? ? ? ? ?| 26 ----------- > ?.../python-grpcio/ppc-boringssl-support.patch |? 2 +- > ?.../python-grpcio/riscv64_support.patch? ? ? ?|? 2 +- > ?...pcio_1.19.0.bb => > python-grpcio_1.27.1.bb } | 11 ++--- > ?5 files changed, 40 insertions(+), 45 deletions(-) > ?delete mode 100644 recipes-devtools/python/python-grpcio/gettid.patch > ?rename recipes-devtools/python/{python-grpcio_1.19.0.bb > => python-grpcio_1.27.1.bb > } (74%) > > > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From derek at asterius.io Fri Feb 14 23:06:41 2020 From: derek at asterius.io (Derek Straka) Date: Fri, 14 Feb 2020 18:06:41 -0500 Subject: [oe] [meta-python][PATCH] python3-bitarray: consolidate inc and bb files into a single bb file Message-ID: <20200214230641.22376-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-bitarray.inc | 11 ----------- .../python/python3-bitarray_1.2.1.bb | 13 +++++++++++-- 2 files changed, 11 insertions(+), 13 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-bitarray.inc diff --git a/meta-python/recipes-devtools/python/python-bitarray.inc b/meta-python/recipes-devtools/python/python-bitarray.inc deleted file mode 100644 index 32da348c41..0000000000 --- a/meta-python/recipes-devtools/python/python-bitarray.inc +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "A high-level Python efficient arrays of booleans -- C extension" -HOMEPAGE = "https://github.com/ilanschnell/bitarray" -LICENSE = "PSF" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=dc301a25ebe210dcc53b0a2d5a038eae" - -SRC_URI[md5sum] = "a46bf869f6adf34f5b0dc82b469793b7" -SRC_URI[sha256sum] = "2ed675f460bb0d3d66fd8042a6f1f0d36cf213e52e72a745283ddb245da7b9cf" - -inherit pypi - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python3-bitarray_1.2.1.bb b/meta-python/recipes-devtools/python/python3-bitarray_1.2.1.bb index 7ee444dc9e..7970da43f2 100644 --- a/meta-python/recipes-devtools/python/python3-bitarray_1.2.1.bb +++ b/meta-python/recipes-devtools/python/python3-bitarray_1.2.1.bb @@ -1,2 +1,11 @@ -inherit setuptools3 -require python-bitarray.inc +SUMMARY = "A high-level Python efficient arrays of booleans -- C extension" +HOMEPAGE = "https://github.com/ilanschnell/bitarray" +LICENSE = "PSF" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=dc301a25ebe210dcc53b0a2d5a038eae" + +SRC_URI[md5sum] = "a46bf869f6adf34f5b0dc82b469793b7" +SRC_URI[sha256sum] = "2ed675f460bb0d3d66fd8042a6f1f0d36cf213e52e72a745283ddb245da7b9cf" + +inherit pypi setuptools3 + +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From derek at asterius.io Fri Feb 14 23:08:19 2020 From: derek at asterius.io (Derek Straka) Date: Fri, 14 Feb 2020 18:08:19 -0500 Subject: [oe] [meta-python][PATCH v2] python3-cffi: consolidate inc and bb files into a single bb file Message-ID: <20200214230819.23318-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-cffi.inc | 17 ----------------- .../python/python3-cffi_1.14.0.bb | 19 ++++++++++++++++++- 2 files changed, 18 insertions(+), 18 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-cffi.inc diff --git a/meta-python/recipes-devtools/python/python-cffi.inc b/meta-python/recipes-devtools/python/python-cffi.inc deleted file mode 100644 index af10c5f36d..0000000000 --- a/meta-python/recipes-devtools/python/python-cffi.inc +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Foreign Function Interface for Python calling C code" -HOMEPAGE = "http://cffi.readthedocs.org/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf" -DEPENDS += "libffi ${PYTHON_PN}-pycparser" - -SRC_URI[md5sum] = "74845f8d2b7b583dd9a3574f402edf39" -SRC_URI[sha256sum] = "2d384f4a127a15ba701207f7639d94106693b6cd64173d6c8988e2c25f3ac2b6" - -RDEPENDS_${PN}_class-target = " \ - ${PYTHON_PN}-ctypes \ - ${PYTHON_PN}-io \ - ${PYTHON_PN}-pycparser \ - ${PYTHON_PN}-shell \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python3-cffi_1.14.0.bb b/meta-python/recipes-devtools/python/python3-cffi_1.14.0.bb index e888084347..53c8ee2650 100644 --- a/meta-python/recipes-devtools/python/python3-cffi_1.14.0.bb +++ b/meta-python/recipes-devtools/python/python3-cffi_1.14.0.bb @@ -1,2 +1,19 @@ +SUMMARY = "Foreign Function Interface for Python calling C code" +HOMEPAGE = "http://cffi.readthedocs.org/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf" +DEPENDS += "libffi ${PYTHON_PN}-pycparser" + +SRC_URI[md5sum] = "74845f8d2b7b583dd9a3574f402edf39" +SRC_URI[sha256sum] = "2d384f4a127a15ba701207f7639d94106693b6cd64173d6c8988e2c25f3ac2b6" + inherit pypi setuptools3 -require python-cffi.inc + +RDEPENDS_${PN}_class-target = " \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-pycparser \ + ${PYTHON_PN}-shell \ +" + +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From derek at asterius.io Fri Feb 14 23:09:07 2020 From: derek at asterius.io (Derek Straka) Date: Fri, 14 Feb 2020 17:09:07 -0600 Subject: [oe] [meta-python][PATCH] python3-cffi: consolidate inc and bb files into a single bb file In-Reply-To: <4316c976-5fda-d89c-70a1-729496c0e98b@gmail.com> References: <20200214223751.16148-1-derek@asterius.io> <4316c976-5fda-d89c-70a1-729496c0e98b@gmail.com> Message-ID: On Fri, Feb 14, 2020 at 5:02 PM Khem Raj wrote: > On 2/14/20 2:37 PM, Derek Straka wrote: > > Signed-off-by: Derek Straka > > --- > > .../recipes-devtools/python/python-cffi.inc | 17 ----------------- > > .../python/python3-cffi_1.13.2.bb | 19 ++++++++++++++++++- > > 2 files changed, 18 insertions(+), 18 deletions(-) > > delete mode 100644 meta-python/recipes-devtools/python/python-cffi.inc > > > > diff --git a/meta-python/recipes-devtools/python/python-cffi.inc > b/meta-python/recipes-devtools/python/python-cffi.inc > > deleted file mode 100644 > > index a2b0c3bb0c..0000000000 > > --- a/meta-python/recipes-devtools/python/python-cffi.inc > > +++ /dev/null > > @@ -1,17 +0,0 @@ > > -SUMMARY = "Foreign Function Interface for Python calling C code" > > -HOMEPAGE = "http://cffi.readthedocs.org/" > > -LICENSE = "MIT" > > -LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf" > > -DEPENDS += "libffi ${PYTHON_PN}-pycparser" > > - > > -SRC_URI[md5sum] = "652203cf99faa254efff7fab23c2f3a2" > > -SRC_URI[sha256sum] = > "599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346" > > - > > -RDEPENDS_${PN}_class-target = " \ > > - ${PYTHON_PN}-ctypes \ > > - ${PYTHON_PN}-io \ > > - ${PYTHON_PN}-pycparser \ > > - ${PYTHON_PN}-shell \ > > -" > > - > > -BBCLASSEXTEND = "native nativesdk" > > diff --git a/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb > b/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb > > index e888084347..6156081126 100644 > > --- a/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb > > +++ b/meta-python/recipes-devtools/python/python3-cffi_1.13.2.bb > > @@ -1,2 +1,19 @@ > > +SUMMARY = "Foreign Function Interface for Python calling C code" > > +HOMEPAGE = "http://cffi.readthedocs.org/" > > +LICENSE = "MIT" > > +LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf" > > +DEPENDS += "libffi ${PYTHON_PN}-pycparser" > > + > > +SRC_URI[md5sum] = "652203cf99faa254efff7fab23c2f3a2" > > +SRC_URI[sha256sum] = > "599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346" > > + > > inherit pypi setuptools3 > > -require python-cffi.inc > > + > > +RDEPENDS_${PN}_class-target = " \ > > + ${PYTHON_PN}-ctypes \ > > + ${PYTHON_PN}-io \ > > + ${PYTHON_PN}-pycparser \ > > + ${PYTHON_PN}-shell \ > > +" > > + > > +BBCLASSEXTEND = "native nativesdk" > > > > this patch does not apply cleanly on master-next, can you rebase and > send v2 please ? > No problem. v2 sent. From jpuhlman at mvista.com Fri Feb 14 23:18:26 2020 From: jpuhlman at mvista.com (Jeremy Puhlman) Date: Fri, 14 Feb 2020 15:18:26 -0800 Subject: [oe] [meta-python][PATCH 1/3] pytest-timeout: New package Message-ID: <20200214231828.9286-1-jpuhlman@mvista.com> Adds plugin for pytest to abort tests after a certain time out. Signed-off-by: Jeremy Puhlman --- .../recipes-devtools/python/python3-pytest-timeout_1.3.4.bb | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 meta-python/recipes-devtools/python/python3-pytest-timeout_1.3.4.bb diff --git a/meta-python/recipes-devtools/python/python3-pytest-timeout_1.3.4.bb b/meta-python/recipes-devtools/python/python3-pytest-timeout_1.3.4.bb new file mode 100644 index 000000000..a359969ed --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pytest-timeout_1.3.4.bb @@ -0,0 +1,13 @@ +SUMMARY = "py.test plugin to abort hanging tests" +HOMEPAGE = "https://github.com/pytest-dev/pytest-timeout/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d8048cd156eda3df2e7f111b0ae9ceff" + +PYPI_PACKAGE = "pytest-timeout" + +SRC_URI[md5sum] = "1594762ae77ed7c6c2727aa8b4aa8bfb" +SRC_URI[sha256sum] = "80faa19cd245a42b87a51699d640c00d937c02b749052bfca6bae8bdbe12c48e" + +inherit pypi setuptools3 + +RDEPENDS_${PN} = "${PYTHON_PN}-pytest" -- 2.13.3 From jpuhlman at mvista.com Fri Feb 14 23:18:27 2020 From: jpuhlman at mvista.com (Jeremy Puhlman) Date: Fri, 14 Feb 2020 15:18:27 -0800 Subject: [oe] [meta-python][PATCH 2/3] pytest-metadata: Add new package In-Reply-To: <20200214231828.9286-1-jpuhlman@mvista.com> References: <20200214231828.9286-1-jpuhlman@mvista.com> Message-ID: <20200214231828.9286-2-jpuhlman@mvista.com> Adds plugin support for accessing pytest metadata. Signed-off-by: Jeremy Puhlman --- .../python/python3-pytest-metadata_1.8.0.bb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 meta-python/recipes-devtools/python/python3-pytest-metadata_1.8.0.bb diff --git a/meta-python/recipes-devtools/python/python3-pytest-metadata_1.8.0.bb b/meta-python/recipes-devtools/python/python3-pytest-metadata_1.8.0.bb new file mode 100644 index 000000000..807b0cedb --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pytest-metadata_1.8.0.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "pytest-metadata is a plugin that allowed for accessing pytest metadata" +HOMEPAGE = "https://github.com/pytest-dev/pytest-metadata" +LICENSE = "MPL-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5d425c8f3157dbf212db2ec53d9e5132" + +PYPI_PACKAGE = "pytest-metadata" + +inherit pypi setuptools3 + +SRC_URI[md5sum] = "95674c2390b58e0138cabac5101d1908" +SRC_URI[sha256sum] = "2071a59285de40d7541fde1eb9f1ddea1c9db165882df82781367471238b66ba" + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" + +RDEPENDS_${PN} = "${PYTHON_PN}-pytest" -- 2.13.3 From jpuhlman at mvista.com Fri Feb 14 23:18:28 2020 From: jpuhlman at mvista.com (Jeremy Puhlman) Date: Fri, 14 Feb 2020 15:18:28 -0800 Subject: [oe] [meta-python][PATCH 3/3] pytest-html: Add new package In-Reply-To: <20200214231828.9286-1-jpuhlman@mvista.com> References: <20200214231828.9286-1-jpuhlman@mvista.com> Message-ID: <20200214231828.9286-3-jpuhlman@mvista.com> pytest-html add support for outputing html reports from ptest runs. Signed-off-by: Jeremy Puhlman --- .../python/python3-pytest-html_1.6.bb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 meta-python/recipes-devtools/python/python3-pytest-html_1.6.bb diff --git a/meta-python/recipes-devtools/python/python3-pytest-html_1.6.bb b/meta-python/recipes-devtools/python/python3-pytest-html_1.6.bb new file mode 100644 index 000000000..8ace29ed1 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pytest-html_1.6.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "pytest plugin for generating html reports from test results" +HOMEPAGE = "https://github.com/pytest-dev/pytest-html" +LICENSE = "MPL-2.0" +LIC_FILES_CHKSUM = "file://../pytest-html.LICENSE;md5=5d425c8f3157dbf212db2ec53d9e5132" + +# Per README.rst the license statement is fetched from +# https://raw.githubusercontent.com/davehunt/pytest-html/master/LICENSE +SRC_URI += "https://raw.githubusercontent.com/davehunt/pytest-html/master/LICENSE;name=license;downloadfilename=pytest-html.LICENSE" + +PYPI_PACKAGE = "pytest-html" + +inherit pypi setuptools3 + +SRC_URI[md5sum] = "ac956864a9b3392203dacd287ae450f0" +SRC_URI[sha256sum] = "a359de04273239587bd1a15b29b2266daeaf56b7a13f8224bc4fb3ae0ba72c3f" +SRC_URI[license.md5sum] = "5d425c8f3157dbf212db2ec53d9e5132" +SRC_URI[license.sha256sum] = "2bfdca60adf803108d4c7f009000bea76ad00e621e163197881b0eaae91b530e" + +RDEPENDS_${PN} = "${PYTHON_PN}-pytest" -- 2.13.3 From raj.khem at gmail.com Fri Feb 14 23:21:38 2020 From: raj.khem at gmail.com (Khem Raj) Date: Fri, 14 Feb 2020 15:21:38 -0800 Subject: [oe] [PATCH] image.bbclass, package-index.bb: Delete do_populate_lic task Message-ID: <20200214232138.3340484-2-raj.khem@gmail.com> These are meta packages Signed-off-by: Khem Raj --- meta/classes/image.bbclass | 1 + meta/recipes-core/meta/package-index.bb | 1 + 2 files changed, 2 insertions(+) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index c2824395c9..07aa1f1fa5 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -609,6 +609,7 @@ do_patch[noexec] = "1" do_configure[noexec] = "1" do_compile[noexec] = "1" do_install[noexec] = "1" +deltask do_populate_lic deltask do_populate_sysroot do_package[noexec] = "1" deltask do_package_qa diff --git a/meta/recipes-core/meta/package-index.bb b/meta/recipes-core/meta/package-index.bb index a4123b7622..98c5bcb372 100644 --- a/meta/recipes-core/meta/package-index.bb +++ b/meta/recipes-core/meta/package-index.bb @@ -12,6 +12,7 @@ deltask do_patch deltask do_configure deltask do_compile deltask do_install +deltask do_populate_lic deltask do_populate_sysroot do_package_index[nostamp] = "1" -- 2.25.0 From timothy.t.orling at linux.intel.com Fri Feb 14 23:28:51 2020 From: timothy.t.orling at linux.intel.com (Tim Orling) Date: Fri, 14 Feb 2020 15:28:51 -0800 Subject: [oe] [meta-oe][PATCH] phoronix-test-suite: add missing mime and mime-xdg inherit Message-ID: <20200214232851.3078-1-timothy.t.orling@linux.intel.com> Fixes: " WARNING: phoronix-test-suite-9.2.1-r0 do_package_qa: QA Issue: package contains desktop file with key 'MimeType' but does not inhert mime-xdg: phoronix-test-suite path '/work/all-oe-linux/phoronix-test-suite/9.2.1-r0/packages-split/ \ phoronix-test-suite/usr/share/applications/phoronix-test-suite-launcher.desktop' [mime-xdg] WARNING: phoronix-test-suite-9.2.1-r0 do_package_qa: QA Issue: package contains mime types but does not inhert mime: phoronix-test-suite path '/work/all-oe-linux/phoronix-test-suite/9.2.1-r0/packages-split/ \ phoronix-test-suite/usr/share/mime/packages/openbenchmarking-mime.xml' [mime] " Signed-off-by: Tim Orling --- .../phoronix-test-suite/phoronix-test-suite_9.2.1.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.2.1.bb b/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.2.1.bb index 6525b8ec0b..4a8e5b5b2a 100644 --- a/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.2.1.bb +++ b/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} -- 2.20.1 From jpuhlman at mvista.com Sat Feb 15 00:50:20 2020 From: jpuhlman at mvista.com (Jeremy Puhlman) Date: Fri, 14 Feb 2020 16:50:20 -0800 Subject: [oe] [meta-python][PATCH] python-pytest: Fix typo in SUMMARY Message-ID: <20200215005020.31970-1-jpuhlman@mvista.com> Signed-off-by: Jeremy Puhlman --- meta-python/recipes-devtools/python/python-pytest.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-python/recipes-devtools/python/python-pytest.inc b/meta-python/recipes-devtools/python/python-pytest.inc index 752d67e36..00f2d6021 100644 --- a/meta-python/recipes-devtools/python/python-pytest.inc +++ b/meta-python/recipes-devtools/python/python-pytest.inc @@ -1,4 +1,4 @@ -SUMMARY = "Simple powerful teting with python" +SUMMARY = "Simple powerful testing with python" HOMEPAGE = "http://pytest.org" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=640061b8cee64b308a4d2f9f556c12f2" -- 2.13.3 From scott.branden at broadcom.com Sat Feb 15 00:54:02 2020 From: scott.branden at broadcom.com (Scott Branden) Date: Fri, 14 Feb 2020 16:54:02 -0800 Subject: [oe] [meta-multimedia][PATCH v2] x265: add x265 recipe Message-ID: <20200215005402.18661-1-scott.branden@broadcom.com> Add x265 recipe for latest tag of Release_3.2 branch (3.2.1). Signed-off-by: Scott Branden --- .../recipes-multimedia/x265/x265_3.2.1.bb | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb new file mode 100644 index 0000000000..21ae596e05 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb @@ -0,0 +1,22 @@ +SUMMARY = "H.265/HEVC video encoder" +DESCRIPTION = "A free software library and application for encoding video streams into the H.265/HEVC format." +HOMEPAGE = "http://www.videolan.org/developers/x265.html" + +LICENSE = "GPLv2" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://../COPYING;md5=c9e0427bc58f129f99728c62d4ad4091" + +DEPENDS = "nasm-native gnutls zlib libpcre" + +SRC_URI = "http://ftp.videolan.org/pub/videolan/x265/x265_${PV}.tar.gz" + +S = "${WORKDIR}/x265_${PV}/source" + +SRC_URI[md5sum] = "94808045a34d88a857e5eaf3f68f4bca" +SRC_URI[sha256sum] = "fb9badcf92364fd3567f8b5aa0e5e952aeea7a39a2b864387cec31e3b58cbbcc" + +inherit lib_package pkgconfig cmake + +AS[unexport] = "1" + +COMPATIBLE_HOST = '(x86_64|i.86).*-linux' -- 2.17.1 From raj.khem at gmail.com Sat Feb 15 01:15:27 2020 From: raj.khem at gmail.com (Khem Raj) Date: Fri, 14 Feb 2020 17:15:27 -0800 Subject: [oe] [PATCH] libmimetic: Fix ordrered comparision between pointer and zero Message-ID: <20200215011527.217227-1-raj.khem@gmail.com> Found with clang Signed-off-by: Khem Raj Cc: asmitha --- ...eck-for-MMAP_FAILED-return-from-mmap.patch | 49 +++++++++++++++++++ .../libmimetic/libmimetic_0.9.8.bb | 1 + 2 files changed, 50 insertions(+) create mode 100644 meta-oe/recipes-support/libmimetic/libmimetic/0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch diff --git a/meta-oe/recipes-support/libmimetic/libmimetic/0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch b/meta-oe/recipes-support/libmimetic/libmimetic/0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch new file mode 100644 index 0000000000..c7c8d62aaa --- /dev/null +++ b/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 +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 +--- + 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-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb b/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb index fd65db2d39..d0fe498adc 100644 --- a/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb +++ b/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb @@ -12,6 +12,7 @@ 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 \ " S = "${WORKDIR}/git" -- 2.25.0 From raj.khem at gmail.com Sat Feb 15 01:16:44 2020 From: raj.khem at gmail.com (Khem Raj) Date: Fri, 14 Feb 2020 17:16:44 -0800 Subject: [oe] [meta-python][PATCH] python-pytest: Fix typo in SUMMARY In-Reply-To: <20200215005020.31970-1-jpuhlman@mvista.com> References: <20200215005020.31970-1-jpuhlman@mvista.com> Message-ID: Can you rebase on top of master-next and resend, please On Fri, Feb 14, 2020 at 4:50 PM Jeremy Puhlman wrote: > > Signed-off-by: Jeremy Puhlman > --- > meta-python/recipes-devtools/python/python-pytest.inc | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/meta-python/recipes-devtools/python/python-pytest.inc b/meta-python/recipes-devtools/python/python-pytest.inc > index 752d67e36..00f2d6021 100644 > --- a/meta-python/recipes-devtools/python/python-pytest.inc > +++ b/meta-python/recipes-devtools/python/python-pytest.inc > @@ -1,4 +1,4 @@ > -SUMMARY = "Simple powerful teting with python" > +SUMMARY = "Simple powerful testing with python" > HOMEPAGE = "http://pytest.org" > LICENSE = "MIT" > LIC_FILES_CHKSUM = "file://LICENSE;md5=640061b8cee64b308a4d2f9f556c12f2" > -- > 2.13.3 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From jonathan.richardson at broadcom.com Sat Feb 15 01:18:09 2020 From: jonathan.richardson at broadcom.com (Jonathan Richardson) Date: Fri, 14 Feb 2020 17:18:09 -0800 Subject: [oe] [meta-oe] [PATCH] python3-et-xmlfile: add initial recipe version 1.0.1 Message-ID: <20200215011809.112941-1-jonathan.richardson@broadcom.com> --- .../python/python3-et-xmlfile_1.0.1.bb | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 meta-python/recipes-devtools/python/python3-et-xmlfile_1.0.1.bb diff --git a/meta-python/recipes-devtools/python/python3-et-xmlfile_1.0.1.bb b/meta-python/recipes-devtools/python/python3-et-xmlfile_1.0.1.bb new file mode 100644 index 000000000..cfff150cc --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-et-xmlfile_1.0.1.bb @@ -0,0 +1,20 @@ +SUMMARY = "et_xmlfile is a low memory library for creating large XML files" +DESCRIPTION = "It is based upon the xmlfile module from lxml with the aim of allowing code \ +to be developed that will work with both libraries. It was developed initially for \ +the openpyxl project but is now a standalone module." + +HOMEPAGE = "https://bitbucket.org/openpyxl/et_xmlfile/src/default/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=b3d89cae66f26c3a0799be8a96f3178b" + +SRC_URI[md5sum] = "f47940fd9d556375420b2e276476cfaf" +SRC_URI[sha256sum] = "614d9722d572f6246302c4491846d2c393c199cfa4edc9af593437691683335b" + +RDEPENDS_${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-io ${PYTHON_PN}-pprint ${PYTHON_PN}-shell" + +inherit setuptools3 +PYPI_PACKAGE ?= "et_xmlfile" +PYPI_SRC_URI ?= "https://files.pythonhosted.org/packages/source/e/et_xmlfile/et_xmlfile-1.0.1.tar.gz" +SECTION = "devel/python" +SRC_URI += "${PYPI_SRC_URI}" +S = "${WORKDIR}/${PYPI_PACKAGE}-${PV}" -- 2.17.1 From jonathan.richardson at broadcom.com Sat Feb 15 01:18:35 2020 From: jonathan.richardson at broadcom.com (Jonathan Richardson) Date: Fri, 14 Feb 2020 17:18:35 -0800 Subject: [oe] [meta-oe] [PATCH] python3-jdcal: add initial recipe version 1.4.1 Message-ID: <20200215011835.112992-1-jonathan.richardson@broadcom.com> --- .../python/python3-jdcal_1.4.1.bb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 meta-python/recipes-devtools/python/python3-jdcal_1.4.1.bb diff --git a/meta-python/recipes-devtools/python/python3-jdcal_1.4.1.bb b/meta-python/recipes-devtools/python/python3-jdcal_1.4.1.bb new file mode 100644 index 000000000..c8b5c953b --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-jdcal_1.4.1.bb @@ -0,0 +1,15 @@ +SUMMARY = "This module contains functions for converting between Julian dates and calendar dates" +DESCRIPTION = "A function for converting Gregorian calendar dates to Julian dates, \ +and another function for converting Julian calendar dates to Julian dates are defined. \ +Two functions for the reverse calculations are also defined." + +HOMEPAGE = "https://github.com/phn/jdcal" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=bd236e1f590973467a427bb354be0f46" + +inherit pypi setuptools3 + +SRC_URI[md5sum] = "e05bdb60fa80f25bc60e73e0c6b7c5dc" +SRC_URI[sha256sum] = "472872e096eb8df219c23f2689fc336668bdb43d194094b5cc1707e1640acfc8" + +RDEPENDS_${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-io ${PYTHON_PN}-pprint ${PYTHON_PN}-shell" -- 2.17.1 From jonathan.richardson at broadcom.com Sat Feb 15 01:19:07 2020 From: jonathan.richardson at broadcom.com (Jonathan Richardson) Date: Fri, 14 Feb 2020 17:19:07 -0800 Subject: [oe] [meta-oe] [PATCH] python3-openpyxl: Add initial version 2.6.3 Message-ID: <20200215011907.113092-1-jonathan.richardson@broadcom.com> openpyxl depends on et-xmlfile and jdcal. --- .../python/python3-openpyxl_2.6.3.bb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 meta-python/recipes-devtools/python/python3-openpyxl_2.6.3.bb diff --git a/meta-python/recipes-devtools/python/python3-openpyxl_2.6.3.bb b/meta-python/recipes-devtools/python/python3-openpyxl_2.6.3.bb new file mode 100644 index 000000000..87cb46ea9 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-openpyxl_2.6.3.bb @@ -0,0 +1,15 @@ +SUMMARY = "openpyxl is a Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files" +DESCRIPTION = "It was born from lack of existing library to read/write natively \ +from Python the Office Open XML format. All kudos to the PHPExcel team as openpyxl \ +was initially based on PHPExcel." + +HOMEPAGE = "http://www.python-excel.org/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=3baf26d8abf08632beaf913ea973cb8a" + +inherit pypi setuptools3 + +SRC_URI[md5sum] = "b067750e51f17a1a9cc6bacfdd668218" +SRC_URI[sha256sum] = "72d1ed243972cad0b3c236230083cac00d9c72804e64a2ae93d7901aec1a8f1c" + +RDEPENDS_${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-io ${PYTHON_PN}-pprint ${PYTHON_PN}-shell ${PYTHON_PN}-jdcal ${PYTHON_PN}-et-xmlfile" -- 2.17.1 From jpuhlman at mvista.com Sat Feb 15 02:01:45 2020 From: jpuhlman at mvista.com (Jeremy Puhlman) Date: Fri, 14 Feb 2020 18:01:45 -0800 Subject: [oe] [meta-python][PATCH] python-pytest: Fix typo in SUMMARY Message-ID: <20200215020145.1672-1-jpuhlman@mvista.com> Signed-off-by: Jeremy Puhlman --- meta-python/recipes-devtools/python/python-pytest.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-python/recipes-devtools/python/python-pytest.inc b/meta-python/recipes-devtools/python/python-pytest.inc index 402126300..40ca9c2f1 100644 --- a/meta-python/recipes-devtools/python/python-pytest.inc +++ b/meta-python/recipes-devtools/python/python-pytest.inc @@ -1,4 +1,4 @@ -SUMMARY = "Simple powerful teting with python" +SUMMARY = "Simple powerful testing with python" HOMEPAGE = "http://pytest.org" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=81eb9f71d006c6b268cf4388e3c98f7b" -- 2.13.3 From mingli.yu at windriver.com Sat Feb 15 02:52:20 2020 From: mingli.yu at windriver.com (mingli.yu at windriver.com) Date: Sat, 15 Feb 2020 10:52:20 +0800 Subject: [oe] [meta-oe][PATCH] nmap: make ndiff support python3 Message-ID: <1581735140-294015-1-git-send-email-mingli.yu@windriver.com> From: Mingli Yu The ndiff is python2 compatible now, backport a patch from debian to make ndiff port to python3. Refer to https://sources.debian.org/data/main/n/nmap/7.80+dfsg1-2/debian/patches/0004-Python3-port-of-ndiff.patch Signed-off-by: Mingli Yu --- .../files/0001-Make-ndiff-support-python3.patch | 1720 ++++++++++++++++++++ ...configure.ac-make-ndiff-depend-on-python3.patch | 48 + meta-oe/recipes-security/nmap/nmap_7.80.bb | 12 +- 3 files changed, 1778 insertions(+), 2 deletions(-) create mode 100644 meta-oe/recipes-security/nmap/files/0001-Make-ndiff-support-python3.patch create mode 100644 meta-oe/recipes-security/nmap/files/0001-configure.ac-make-ndiff-depend-on-python3.patch diff --git a/meta-oe/recipes-security/nmap/files/0001-Make-ndiff-support-python3.patch b/meta-oe/recipes-security/nmap/files/0001-Make-ndiff-support-python3.patch new file mode 100644 index 0000000..2ca18b0 --- /dev/null +++ b/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 +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 +--- + 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"" ++ return "" + + 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-oe/recipes-security/nmap/files/0001-configure.ac-make-ndiff-depend-on-python3.patch b/meta-oe/recipes-security/nmap/files/0001-configure.ac-make-ndiff-depend-on-python3.patch new file mode 100644 index 0000000..c43ff9f --- /dev/null +++ b/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 +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 +--- + .../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-oe/recipes-security/nmap/nmap_7.80.bb b/meta-oe/recipes-security/nmap/nmap_7.80.bb index 96af17e..c76d232 100644 --- a/meta-oe/recipes-security/nmap/nmap_7.80.bb +++ b/meta-oe/recipes-security/nmap/nmap_7.80.bb @@ -10,6 +10,8 @@ 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" @@ -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,python3" +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 at g' ${D}${bindir}/ndiff + fi +} + FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR} ${datadir}/ncat" -RDEPENDS_${PN} = "python3" +RDEPENDS_${PN} += "python3-core" -- 2.7.4 From raj.khem at gmail.com Sat Feb 15 08:08:46 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sat, 15 Feb 2020 00:08:46 -0800 Subject: [oe] [meta-oe][PATCH] mpv: Fix build with python3 Message-ID: <20200215080846.732993-1-raj.khem@gmail.com> Use bootstrap.py to download right waf version turn the python3 patch into a sed command Signed-off-by: Khem Raj --- .../recipes-multimedia/mplayer/mpv/python3.patch | 12 ------------ meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb | 15 +++++++-------- 2 files changed, 7 insertions(+), 20 deletions(-) delete mode 100644 meta-oe/recipes-multimedia/mplayer/mpv/python3.patch diff --git a/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch b/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch deleted file mode 100644 index df208cf878..0000000000 --- a/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch +++ /dev/null @@ -1,12 +0,0 @@ -Use Python 3 instead of Python 2. - -Upstream-Status: Pending -Signed-off-by: Ross Burton - -diff --git a/waf b/waf -index 6ce2a24..de3c898 100755 ---- a/waf -+++ b/waf -@@ -1 +1 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 diff --git a/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb b/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb index bd2e389fee..066e18aa86 100644 --- a/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb +++ b/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb @@ -17,11 +17,7 @@ LICENSE_FLAGS = "commercial" SRCREV_mpv = "70b991749df389bcc0a4e145b5687233a03b4ed7" SRC_URI = " \ git://github.com/mpv-player/mpv;name=mpv \ - https://www.freehackers.org/~tnagy/release/waf-2.0.19;name=waf;downloadfilename=waf;subdir=git \ - file://python3.patch \ " -SRC_URI[waf.md5sum] = "cef4ee82206b1843db082d0b0506bf71" -SRC_URI[waf.sha256sum] = "01bf2beab2106d1558800c8709bc2c8e496d3da4a2ca343fe091f22fca60c98b" S = "${WORKDIR}/git" @@ -102,11 +98,14 @@ EXTRA_OECONF = " \ ${PACKAGECONFIG_CONFARGS} \ " -adjust_waf_perms() { - chmod +x ${S}/waf -} +do_patch[postfuncs] += "get_waf" -do_patch[postfuncs] += "adjust_waf_perms" +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 \ -- 2.25.0 From raj.khem at gmail.com Sat Feb 15 08:40:00 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sat, 15 Feb 2020 00:40:00 -0800 Subject: [oe] [meta-oe][PATCH] fio: upgrade 3.17 -> 3.18 In-Reply-To: <1581723823-21171-2-git-send-email-wangmy@cn.fujitsu.com> References: <1581723823-21171-1-git-send-email-wangmy@cn.fujitsu.com> <1581723823-21171-2-git-send-email-wangmy@cn.fujitsu.com> Message-ID: https://errors.yoctoproject.org/Errors/Details/391129/ On Fri, Feb 14, 2020 at 8:11 AM Wang Mingyu wrote: > > Signed-off-by: Wang Mingyu > --- > meta-oe/recipes-benchmark/fio/{fio_3.17.bb => fio_3.18.bb} | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > rename meta-oe/recipes-benchmark/fio/{fio_3.17.bb => fio_3.18.bb} (96%) > > diff --git a/meta-oe/recipes-benchmark/fio/fio_3.17.bb b/meta-oe/recipes-benchmark/fio/fio_3.18.bb > similarity index 96% > rename from meta-oe/recipes-benchmark/fio/fio_3.17.bb > rename to meta-oe/recipes-benchmark/fio/fio_3.18.bb > index 482928c31..b6484290f 100644 > --- a/meta-oe/recipes-benchmark/fio/fio_3.17.bb > +++ b/meta-oe/recipes-benchmark/fio/fio_3.18.bb > @@ -22,7 +22,7 @@ PACKAGECONFIG_NUMA_armeb = "" > PACKAGECONFIG ??= "${PACKAGECONFIG_NUMA}" > PACKAGECONFIG[numa] = ",--disable-numa,numactl" > > -SRCREV = "08ce9dc20b8a4e55db7af6d869ddfa49b4a02d03" > +SRCREV = "ac694f66968fe7b18c820468abd8333f3df333fb" > SRC_URI = "git://git.kernel.dk/fio.git \ > file://0001-update-the-interpreter-paths.patch \ > " > -- > 2.17.1 > > > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From max.oss.09 at gmail.com Sat Feb 15 15:52:59 2020 From: max.oss.09 at gmail.com (Max Krummenacher) Date: Sat, 15 Feb 2020 16:52:59 +0100 Subject: [oe] [meta-oe][PATCH] lirc: build and deploy with python3 Message-ID: <20200215155259.5977-1-max.krummenacher@toradex.com> lirc already uses python3 for the build, reflect that in the recipe. Add the relevant python modules used in the scripts to RDEPENDS. Deploy all python scripts in the lirc-python package. Signed-off-by: Max Krummenacher --- meta-oe/recipes-connectivity/lirc/lirc_0.9.4d.bb | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/meta-oe/recipes-connectivity/lirc/lirc_0.9.4d.bb b/meta-oe/recipes-connectivity/lirc/lirc_0.9.4d.bb index 606caee89..f59969673 100644 --- a/meta-oe/recipes-connectivity/lirc/lirc_0.9.4d.bb +++ b/meta-oe/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" -- 2.20.1 From max.oss.09 at gmail.com Sat Feb 15 15:59:33 2020 From: max.oss.09 at gmail.com (Max Krummenacher) Date: Sat, 15 Feb 2020 16:59:33 +0100 Subject: [oe] [meta-oe][PATCH 1/3] vpnc: splitout the vpnc-script into its own package Message-ID: <20200215155935.6255-1-max.krummenacher@toradex.com> The vpnc-script can be used unchanged with the openconnect package. Provide it in its own package and make vpnc RDEPEND on it. Signed-off-by: Max Krummenacher --- meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb b/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb index ea2179985..54e855a09 100644 --- a/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb +++ b/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb @@ -28,6 +28,8 @@ PACKAGECONFIG ?= "gnutls" PACKAGECONFIG[gnutls] = ",,gnutls" PACKAGECONFIG[openssl] = ",,openssl" +PACKAGES =+ "${PN}-script" + S = "${WORKDIR}/git" inherit perlnative pkgconfig @@ -54,6 +56,8 @@ vpnc_sysroot_preprocess () { install -m 755 ${D}${sysconfdir}/vpnc/vpnc-script ${SYSROOT_DESTDIR}${sysconfdir}/vpnc } +FILES_${PN}-script = "${sysconfdir}/vpnc/vpnc-script" + CONFFILES_${PN} = "${sysconfdir}/vpnc/default.conf" -RDEPENDS_${PN} = "perl-module-io-file" +RDEPENDS_${PN} = "perl-module-io-file ${PN}-script" RRECOMMENDS_${PN} = "kernel-module-tun" -- 2.20.1 From max.oss.09 at gmail.com Sat Feb 15 15:59:34 2020 From: max.oss.09 at gmail.com (Max Krummenacher) Date: Sat, 15 Feb 2020 16:59:34 +0100 Subject: [oe] [meta-oe][PATCH 2/3] openconnect: build with python3 In-Reply-To: <20200215155935.6255-1-max.krummenacher@toradex.com> References: <20200215155935.6255-1-max.krummenacher@toradex.com> Message-ID: <20200215155935.6255-2-max.krummenacher@toradex.com> Signed-off-by: Max Krummenacher --- ...s-tncc-wrapper.py-convert-to-python3.patch | 71 +++++++++++++++++++ .../openconnect/openconnect_8.03.bb | 12 ++-- 2 files changed, 76 insertions(+), 7 deletions(-) create mode 100644 meta-networking/recipes-connectivity/openconnect/openconnect/0001-trojans-tncc-wrapper.py-convert-to-python3.patch diff --git a/meta-networking/recipes-connectivity/openconnect/openconnect/0001-trojans-tncc-wrapper.py-convert-to-python3.patch b/meta-networking/recipes-connectivity/openconnect/openconnect/0001-trojans-tncc-wrapper.py-convert-to-python3.patch new file mode 100644 index 000000000..623ec101d --- /dev/null +++ b/meta-networking/recipes-connectivity/openconnect/openconnect/0001-trojans-tncc-wrapper.py-convert-to-python3.patch @@ -0,0 +1,71 @@ +From de78bcac5e1fd13de0371c8e14b062b8786ade56 Mon Sep 17 00:00:00 2001 +From: Max Krummenacher +Date: Sun, 2 Feb 2020 15:53:05 +0000 +Subject: [PATCH] trojans/tncc-wrapper.py: convert to python3 + +Use 2to3 to convert the script to python3. + +Upstream-Status: Pending + +Signed-off-by: Max Krummenacher +--- + trojans/tncc-wrapper.py | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/trojans/tncc-wrapper.py b/trojans/tncc-wrapper.py +index 0d4587bf..1a9a1f4d 100755 +--- a/trojans/tncc-wrapper.py ++++ b/trojans/tncc-wrapper.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2 ++#!/usr/bin/python3 + + # Lifted from Russ Dill's juniper-vpn-wrap.py, thus: + # +@@ -18,19 +18,19 @@ + + import subprocess + import mechanize +-import cookielib ++import http.cookiejar + import getpass + import sys + import os + import zipfile +-import urllib ++import urllib.request, urllib.parse, urllib.error + import socket + import ssl + import errno + import argparse + import atexit + import signal +-import ConfigParser ++import configparser + import time + import binascii + import hmac +@@ -39,7 +39,7 @@ import hashlib + def mkdir_p(path): + try: + os.mkdir(path) +- except OSError, exc: ++ except OSError as exc: + if exc.errno == errno.EEXIST and os.path.isdir(path): + pass + else: +@@ -64,9 +64,9 @@ class Tncc: + if zipfile.ZipFile(self.tncc_jar, 'r').testzip() is not None: + raise Exception() + except: +- print 'Downloading tncc.jar...' ++ print('Downloading tncc.jar...') + mkdir_p(os.path.expanduser('~/.juniper_networks')) +- urllib.urlretrieve('https://' + self.vpn_host ++ urllib.request.urlretrieve('https://' + self.vpn_host + + '/dana-cached/hc/tncc.jar', self.tncc_jar) + + with zipfile.ZipFile(self.tncc_jar, 'r') as jar: +-- +2.20.1 + diff --git a/meta-networking/recipes-connectivity/openconnect/openconnect_8.03.bb b/meta-networking/recipes-connectivity/openconnect/openconnect_8.03.bb index ec36a375a..974ff4547 100644 --- a/meta-networking/recipes-connectivity/openconnect/openconnect_8.03.bb +++ b/meta-networking/recipes-connectivity/openconnect/openconnect_8.03.bb @@ -2,11 +2,14 @@ SUMMARY = "Open client for Cisco AnyConnect VPN" LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING.LGPL;md5=243b725d71bb5df4a1e5920b344b86ad" -SRC_URI = "git://git.infradead.org/users/dwmw2/openconnect.git" +SRC_URI = " \ + git://git.infradead.org/users/dwmw2/openconnect.git \ + file://0001-trojans-tncc-wrapper.py-convert-to-python3.patch \ +" SRCREV = "ea73851969ae7a6ea54fdd2d2b8c94776af24b2a" DEPENDS = "vpnc libxml2 krb5 gettext-native" -RDEPENDS_${PN} = "bash python" +RDEPENDS_${PN} = "bash python3-core" PACKAGECONFIG ??= "gnutls lz4 libproxy" @@ -24,8 +27,3 @@ inherit autotools pkgconfig EXTRA_OECONF += "--with-vpnc-script=${SYSROOT_DESTDIR}${sysconfdir}/vpnc/vpnc-script \ --disable-static" - -do_configure_append() { - # script has /usr/bin/python2 path hardcoded - sed -i -e 's=python2\.*=python=g' ${S}/trojans/tncc-wrapper.py -} -- 2.20.1 From max.oss.09 at gmail.com Sat Feb 15 15:59:35 2020 From: max.oss.09 at gmail.com (Max Krummenacher) Date: Sat, 15 Feb 2020 16:59:35 +0100 Subject: [oe] [meta-oe][PATCH 3/3] openconnect: use target path to script In-Reply-To: <20200215155935.6255-1-max.krummenacher@toradex.com> References: <20200215155935.6255-1-max.krummenacher@toradex.com> Message-ID: <20200215155935.6255-3-max.krummenacher@toradex.com> openconnect puts the default absolute path to the vpnc-script into its binary from the --with-vpnc-script configure options. So do not prepend the value with the path to the OE sysroot. RDEPEND on vpnc-script to have the script from vpnc installed on target. Signed-off-by: Max Krummenacher --- .../recipes-connectivity/openconnect/openconnect_8.03.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-networking/recipes-connectivity/openconnect/openconnect_8.03.bb b/meta-networking/recipes-connectivity/openconnect/openconnect_8.03.bb index 974ff4547..597c1920c 100644 --- a/meta-networking/recipes-connectivity/openconnect/openconnect_8.03.bb +++ b/meta-networking/recipes-connectivity/openconnect/openconnect_8.03.bb @@ -9,7 +9,7 @@ SRC_URI = " \ SRCREV = "ea73851969ae7a6ea54fdd2d2b8c94776af24b2a" DEPENDS = "vpnc libxml2 krb5 gettext-native" -RDEPENDS_${PN} = "bash python3-core" +RDEPENDS_${PN} = "bash python3-core vpnc-script" PACKAGECONFIG ??= "gnutls lz4 libproxy" @@ -25,5 +25,5 @@ S = "${WORKDIR}/git" inherit autotools pkgconfig -EXTRA_OECONF += "--with-vpnc-script=${SYSROOT_DESTDIR}${sysconfdir}/vpnc/vpnc-script \ +EXTRA_OECONF += "--with-vpnc-script=${sysconfdir}/vpnc/vpnc-script \ --disable-static" -- 2.20.1 From pjtexier at koncepto.io Sat Feb 15 16:24:00 2020 From: pjtexier at koncepto.io (Pierre-Jean Texier) Date: Sat, 15 Feb 2020 17:24:00 +0100 Subject: [oe] [oe-commits] [openembedded-core] 11/18: busybox: Backport patches to support removal of __NR_clock_gettime In-Reply-To: <20200215102807.938B8232818@git.openembedded.org> References: <158176248670.31260.7654152103178704127@git.openembedded.org> <20200215102807.938B8232818@git.openembedded.org> Message-ID: <65fcf6fa-6f55-b082-52fb-6d8a8ce2ef3c@koncepto.io> Hello All, Le 15/02/2020 ? 11:28, git at git.openembedded.org a ?crit?: > busybox: Backport patches to support removal of __NR_clock_gettime > > This helps compiling with musl on 32bit arches now that musl has > switched to 64bit time_t > > Signed-off-by: Khem Raj > Signed-off-by: Richard Purdie > --- > ...all-wrappers-around-clock_gettime-closes-.patch | 120 +++++++++++++++++++++ > ...-date-Use-64-prefix-syscall-if-we-have-to.patch | 53 +++++++++ > ...-time-Use-64-prefix-syscall-if-we-have-to.patch | 43 ++++++++ > ...runsv-Use-64-prefix-syscall-if-we-have-to.patch | 46 ++++++++ > meta/recipes-core/busybox/busybox_1.31.1.bb | 4 + > 5 files changed, 266 insertions(+) this commit causes the following build issue : ERROR: busybox-1.31.1-r0 do_patch: Command Error: 'quilt --quiltrc /home/runner/work/kas-files/kas-files/build/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/busybox/1.31.1-r0/recipe-sysroot-native/etc/quiltrc push' exited with 0 Output: Applying patch 0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch patching file Makefile.flags patching file coreutils/date.c Hunk #2 FAILED at 270. 1 out of 2 hunks FAILED -- rejects in file coreutils/date.c patching file libbb/time.c patching file runit/runsv.c Patch 0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch does not apply (enforce with -f) ERROR: Logfile of failure stored in: /home/runner/work/kas-files/kas-files/build/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/busybox/1.31.1-r0/temp/log.do_patch.62122 ERROR: Task (/home/runner/work/kas-files/kas-files/poky/meta/recipes-core/busybox/busybox_1.31.1.bb:do_patch) failed with exit code '1' Tested on top of poky master (commit 7f2af8bd795ace46828952a7812f0bbdf26529a [1]) [1] - https://github.com/texierp/kas-files/runs/447729194 Thanks ! Regards -- Pierre-Jean Texier Embedded Linux Engineer https://koncepto.io From martin.jansa at gmail.com Sat Feb 15 16:38:11 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Sat, 15 Feb 2020 17:38:11 +0100 Subject: [oe] [oe-commits] [openembedded-core] 11/18: busybox: Backport patches to support removal of __NR_clock_gettime In-Reply-To: <65fcf6fa-6f55-b082-52fb-6d8a8ce2ef3c@koncepto.io> References: <158176248670.31260.7654152103178704127@git.openembedded.org> <20200215102807.938B8232818@git.openembedded.org> <65fcf6fa-6f55-b082-52fb-6d8a8ce2ef3c@koncepto.io> Message-ID: Isn't it caused by some other layer prepending some busybox patch causing this? Can you check with bitbake -e? I'm not seeing this one in my builds (and I was just refreshing some of our webOS OSE patches to apply cleanly on 1.31.1) Regards, On Sat, Feb 15, 2020 at 5:30 PM Pierre-Jean Texier via Openembedded-commits wrote: > Hello All, > > Le 15/02/2020 ? 11:28, git at git.openembedded.org a ?crit : > > busybox: Backport patches to support removal of __NR_clock_gettime > > > > This helps compiling with musl on 32bit arches now that musl has > > switched to 64bit time_t > > > > Signed-off-by: Khem Raj > > Signed-off-by: Richard Purdie > > --- > > ...all-wrappers-around-clock_gettime-closes-.patch | 120 > +++++++++++++++++++++ > > ...-date-Use-64-prefix-syscall-if-we-have-to.patch | 53 +++++++++ > > ...-time-Use-64-prefix-syscall-if-we-have-to.patch | 43 ++++++++ > > ...runsv-Use-64-prefix-syscall-if-we-have-to.patch | 46 ++++++++ > > meta/recipes-core/busybox/busybox_1.31.1.bb | 4 + > > 5 files changed, 266 insertions(+) > > this commit causes the following build issue : > > ERROR: busybox-1.31.1-r0 do_patch: Command Error: 'quilt --quiltrc > /home/runner/work/kas-files/kas-files/build/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/busybox/1.31.1-r0/recipe-sysroot-native/etc/quiltrc > > push' exited with 0 Output: > Applying patch > 0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch > patching file Makefile.flags > patching file coreutils/date.c > Hunk #2 FAILED at 270. > 1 out of 2 hunks FAILED -- rejects in file coreutils/date.c > patching file libbb/time.c > patching file runit/runsv.c > Patch 0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch > does not apply (enforce with -f) > ERROR: Logfile of failure stored in: > > /home/runner/work/kas-files/kas-files/build/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/busybox/1.31.1-r0/temp/log.do_patch.62122 > ERROR: Task > > (/home/runner/work/kas-files/kas-files/poky/meta/recipes-core/busybox/busybox_1.31.1.bb:do_patch) > > failed with exit code '1' > > Tested on top of poky master (commit > 7f2af8bd795ace46828952a7812f0bbdf26529a [1]) > > [1] - https://github.com/texierp/kas-files/runs/447729194 > > Thanks ! > > Regards > -- > Pierre-Jean Texier > Embedded Linux Engineer > https://koncepto.io > -- > _______________________________________________ > Openembedded-commits mailing list > Openembedded-commits at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-commits > From pjtexier at koncepto.io Sat Feb 15 16:46:44 2020 From: pjtexier at koncepto.io (Pierre-Jean Texier) Date: Sat, 15 Feb 2020 17:46:44 +0100 Subject: [oe] [oe-commits] [openembedded-core] 11/18: busybox: Backport patches to support removal of __NR_clock_gettime In-Reply-To: References: <158176248670.31260.7654152103178704127@git.openembedded.org> <20200215102807.938B8232818@git.openembedded.org> <65fcf6fa-6f55-b082-52fb-6d8a8ce2ef3c@koncepto.io> Message-ID: <432947a2-e180-8799-c6dd-22aa89ba4e89@koncepto.io> Martin, Le 15/02/2020 ? 17:38, Martin Jansa a ?crit?: > Isn't it caused by some other layer prepending some busybox patch causing > this? Can you check with bitbake -e? > > I'm not seeing this one in my builds (and I was just refreshing some of our > webOS OSE patches to apply cleanly on 1.31.1) You're indeed right :(, after a quick check, it seems the build failure comes from the meta-riscv. Thanks, and sorry for the noise. Regards, -- Pierre-Jean Texier Embedded Linux Engineer https://koncepto.io From derek at asterius.io Sat Feb 15 17:29:24 2020 From: derek at asterius.io (Derek Straka) Date: Sat, 15 Feb 2020 12:29:24 -0500 Subject: [oe] [meta-python][PATCH] python3-coloredlogs: consolidate inc and bb files into a single bb file Message-ID: <20200215172924.27218-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../python/python-coloredlogs.inc | 24 ----------------- .../python/python3-coloredlogs_10.0.bb | 26 +++++++++++++++++-- 2 files changed, 24 insertions(+), 26 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-coloredlogs.inc diff --git a/meta-python/recipes-devtools/python/python-coloredlogs.inc b/meta-python/recipes-devtools/python/python-coloredlogs.inc deleted file mode 100644 index bdb1d752c5..0000000000 --- a/meta-python/recipes-devtools/python/python-coloredlogs.inc +++ /dev/null @@ -1,24 +0,0 @@ -DESCRIPTION = "Colored terminal output for Python's logging module" -HOMEPAGE = "https://coloredlogs.readthedocs.io" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=690da298a43805797a4fa7bbe180b3c6" - -SRC_URI[md5sum] = "0a186966a1955fff8cf9489373e691d9" -SRC_URI[sha256sum] = "b869a2dda3fa88154b9dd850e27828d8755bfab5a838a1c97fbc850c6e377c36" - -inherit pypi - -do_compile_prepend() { - sed -ie "s/find_pth_directory(),/'',/g" ${S}/setup.py -} - -do_install_append() { - rm -rf ${D}${datadir} -} - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-humanfriendly \ -" - -BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-devtools/python/python3-coloredlogs_10.0.bb b/meta-python/recipes-devtools/python/python3-coloredlogs_10.0.bb index 3872399665..88fac87c7e 100644 --- a/meta-python/recipes-devtools/python/python3-coloredlogs_10.0.bb +++ b/meta-python/recipes-devtools/python/python3-coloredlogs_10.0.bb @@ -1,2 +1,24 @@ -inherit setuptools3 -require python-coloredlogs.inc +DESCRIPTION = "Colored terminal output for Python's logging module" +HOMEPAGE = "https://coloredlogs.readthedocs.io" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=690da298a43805797a4fa7bbe180b3c6" + +SRC_URI[md5sum] = "0a186966a1955fff8cf9489373e691d9" +SRC_URI[sha256sum] = "b869a2dda3fa88154b9dd850e27828d8755bfab5a838a1c97fbc850c6e377c36" + +inherit pypi setuptools3 + +do_compile_prepend() { + sed -ie "s/find_pth_directory(),/'',/g" ${S}/setup.py +} + +do_install_append() { + rm -rf ${D}${datadir} +} + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-humanfriendly \ +" + +BBCLASSEXTEND = "native" -- 2.17.1 From derek at asterius.io Sat Feb 15 17:35:54 2020 From: derek at asterius.io (Derek Straka) Date: Sat, 15 Feb 2020 12:35:54 -0500 Subject: [oe] [meta-python][PATCH] python3-configargparse: consolidate inc and bb files into a single bb file Message-ID: <20200215173554.32726-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../python/python-configargparse.inc | 22 ------------------ .../python/python3-configargparse_0.15.1.bb | 23 +++++++++++++++++-- 2 files changed, 21 insertions(+), 24 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-configargparse.inc diff --git a/meta-python/recipes-devtools/python/python-configargparse.inc b/meta-python/recipes-devtools/python/python-configargparse.inc deleted file mode 100644 index 17d296ff8d..0000000000 --- a/meta-python/recipes-devtools/python/python-configargparse.inc +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "A drop-in replacement for argparse that allows options to also be set via config files and/or environment variables." -HOMEPAGE = "https://github.com/bw2/ConfigArgParse" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=da746463714cc35999ed9a42339f2943" - -SRC_URI[md5sum] = "aba15b7973b7a70bea86fd69289f8fe3" -SRC_URI[sha256sum] = "baaf0fd2c1c108d007f402dab5481ac5f12d77d034825bf5a27f8224757bd0ac" - -PYPI_PACKAGE = "ConfigArgParse" - -inherit pypi - -PACKAGECONFIG ?= "yaml" -PACKAGECONFIG[yaml] = ",,,${PYTHON_PN}-pyyaml" - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-core \ - ${PYTHON_PN}-shell \ -" - -BBCLASSEXTEND = "native nativesdk" - diff --git a/meta-python/recipes-devtools/python/python3-configargparse_0.15.1.bb b/meta-python/recipes-devtools/python/python3-configargparse_0.15.1.bb index 698eccf666..0797898a9c 100644 --- a/meta-python/recipes-devtools/python/python3-configargparse_0.15.1.bb +++ b/meta-python/recipes-devtools/python/python3-configargparse_0.15.1.bb @@ -1,3 +1,22 @@ -inherit setuptools3 -require python-configargparse.inc +SUMMARY = "A drop-in replacement for argparse that allows options to also be set via config files and/or environment variables." +HOMEPAGE = "https://github.com/bw2/ConfigArgParse" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=da746463714cc35999ed9a42339f2943" + +SRC_URI[md5sum] = "aba15b7973b7a70bea86fd69289f8fe3" +SRC_URI[sha256sum] = "baaf0fd2c1c108d007f402dab5481ac5f12d77d034825bf5a27f8224757bd0ac" + +PYPI_PACKAGE = "ConfigArgParse" + +inherit pypi setuptools3 + +PACKAGECONFIG ?= "yaml" +PACKAGECONFIG[yaml] = ",,,${PYTHON_PN}-pyyaml" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-shell \ +" + +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From derek at asterius.io Sat Feb 15 17:38:48 2020 From: derek at asterius.io (Derek Straka) Date: Sat, 15 Feb 2020 12:38:48 -0500 Subject: [oe] [meta-python][PATCH] python3-configparser: consolidate inc and bb files into a single bb file Message-ID: <20200215173848.1052-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../python/python-configparser.inc | 14 -------------- .../python/python3-configparser_4.0.2.bb | 16 ++++++++++++++-- 2 files changed, 14 insertions(+), 16 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-configparser.inc diff --git a/meta-python/recipes-devtools/python/python-configparser.inc b/meta-python/recipes-devtools/python/python-configparser.inc deleted file mode 100644 index bce7cee467..0000000000 --- a/meta-python/recipes-devtools/python/python-configparser.inc +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "This module provides the ConfigParser class which implements a basic configuration language which provides a structure similar to what's found in Microsoft Windows INI files." -SECTION = "devel/python" -HOMEPAGE = "https://docs.python.org/3/library/configparser.html" -LICENSE = "MIT" - -LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=10;endline=10;md5=23f9ad5cad3d8cc0336e2a5d8a87e1fa" - -SRC_URI[md5sum] = "35926cc4b9133f1f9ca70a1fd2fdf237" -SRC_URI[sha256sum] = "c7d282687a5308319bf3d2e7706e575c635b0a470342641c93bea0ea3b5331df" - -DEPENDS += "${PYTHON_PN}-setuptools-scm-native" -inherit pypi - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python3-configparser_4.0.2.bb b/meta-python/recipes-devtools/python/python3-configparser_4.0.2.bb index 770cba5962..196660925c 100644 --- a/meta-python/recipes-devtools/python/python3-configparser_4.0.2.bb +++ b/meta-python/recipes-devtools/python/python3-configparser_4.0.2.bb @@ -1,2 +1,14 @@ -inherit setuptools3 -require python-configparser.inc +SUMMARY = "This module provides the ConfigParser class which implements a basic configuration language which provides a structure similar to what's found in Microsoft Windows INI files." +SECTION = "devel/python" +HOMEPAGE = "https://docs.python.org/3/library/configparser.html" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=10;endline=10;md5=23f9ad5cad3d8cc0336e2a5d8a87e1fa" + +SRC_URI[md5sum] = "35926cc4b9133f1f9ca70a1fd2fdf237" +SRC_URI[sha256sum] = "c7d282687a5308319bf3d2e7706e575c635b0a470342641c93bea0ea3b5331df" + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" +inherit pypi setuptools3 + +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From derek at asterius.io Sat Feb 15 17:43:10 2020 From: derek at asterius.io (Derek Straka) Date: Sat, 15 Feb 2020 12:43:10 -0500 Subject: [oe] [meta-python][PATCH] python3-constantly: consolidate inc and bb files into a single bb file Message-ID: <20200215174310.1931-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-constantly.inc | 11 ----------- .../python/python3-constantly_15.1.0.bb | 13 +++++++++++-- 2 files changed, 11 insertions(+), 13 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-constantly.inc diff --git a/meta-python/recipes-devtools/python/python-constantly.inc b/meta-python/recipes-devtools/python/python-constantly.inc deleted file mode 100644 index 8153504929..0000000000 --- a/meta-python/recipes-devtools/python/python-constantly.inc +++ /dev/null @@ -1,11 +0,0 @@ -DESCRIPTION = "Symbolic constants in Python" -HOMEPAGE = "https://github.com/twisted/constantly" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e393e4ddd223e3a74982efa784f89fd7" - -SRC_URI[md5sum] = "f0762f083d83039758e53f8cf0086eef" -SRC_URI[sha256sum] = "586372eb92059873e29eba4f9dec8381541b4d3834660707faf8ba59146dfc35" - -inherit pypi - -RDEPENDS_${PN} += "${PYTHON_PN}-json" diff --git a/meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb b/meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb index 3f667540d9..ad24f6de6d 100644 --- a/meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb +++ b/meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb @@ -1,2 +1,11 @@ -inherit setuptools3 -require python-constantly.inc +DESCRIPTION = "Symbolic constants in Python" +HOMEPAGE = "https://github.com/twisted/constantly" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e393e4ddd223e3a74982efa784f89fd7" + +SRC_URI[md5sum] = "f0762f083d83039758e53f8cf0086eef" +SRC_URI[sha256sum] = "586372eb92059873e29eba4f9dec8381541b4d3834660707faf8ba59146dfc35" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "${PYTHON_PN}-json" -- 2.17.1 From derek at asterius.io Sat Feb 15 17:48:51 2020 From: derek at asterius.io (Derek Straka) Date: Sat, 15 Feb 2020 12:48:51 -0500 Subject: [oe] [meta-python][PATCH] python3-contextlib2: consolidate inc and bb files into a single bb file Message-ID: <20200215174851.2731-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-contextlib2.inc | 10 ---------- .../python/python3-contextlib2_0.6.0.bb | 11 ++++++++++- 2 files changed, 10 insertions(+), 11 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-contextlib2.inc diff --git a/meta-python/recipes-devtools/python/python-contextlib2.inc b/meta-python/recipes-devtools/python/python-contextlib2.inc deleted file mode 100644 index 750721f3d5..0000000000 --- a/meta-python/recipes-devtools/python/python-contextlib2.inc +++ /dev/null @@ -1,10 +0,0 @@ -DESCRIPTION = "Backports and enhancements for the contextlib module" -HOMEPAGE = "http://contextlib2.readthedocs.org/" -SECTION = "devel/python" -LICENSE = "PSF" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=43d1c7827e8fad6454b553caf0e1d734" - -SRC_URI[md5sum] = "d03a631073b40073b5c41364ad8f5979" -SRC_URI[sha256sum] = "7197aa736777caac513dbd800944c209a49765bf1979b12b037dce0277077ed3" - -BBCLASSEXTEND = "native nativesdk" \ No newline at end of file diff --git a/meta-python/recipes-devtools/python/python3-contextlib2_0.6.0.bb b/meta-python/recipes-devtools/python/python3-contextlib2_0.6.0.bb index 1c0b560b41..6074efa73e 100644 --- a/meta-python/recipes-devtools/python/python3-contextlib2_0.6.0.bb +++ b/meta-python/recipes-devtools/python/python3-contextlib2_0.6.0.bb @@ -1,3 +1,12 @@ +DESCRIPTION = "Backports and enhancements for the contextlib module" +HOMEPAGE = "http://contextlib2.readthedocs.org/" +SECTION = "devel/python" +LICENSE = "PSF" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=43d1c7827e8fad6454b553caf0e1d734" + +SRC_URI[md5sum] = "d03a631073b40073b5c41364ad8f5979" +SRC_URI[sha256sum] = "7197aa736777caac513dbd800944c209a49765bf1979b12b037dce0277077ed3" + inherit pypi setuptools3 -require python-contextlib2.inc +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From derek at asterius.io Sat Feb 15 17:51:19 2020 From: derek at asterius.io (Derek Straka) Date: Sat, 15 Feb 2020 12:51:19 -0500 Subject: [oe] [meta-python][PATCH] python3-crcmod: consolidate inc and bb files into a single bb file Message-ID: <20200215175119.3553-1-derek@asterius.io> Signed-off-by: Derek Straka --- .../recipes-devtools/python/python-crcmod.inc | 14 -------------- .../python/python3-crcmod_1.7.bb | 16 ++++++++++++++-- 2 files changed, 14 insertions(+), 16 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-crcmod.inc diff --git a/meta-python/recipes-devtools/python/python-crcmod.inc b/meta-python/recipes-devtools/python/python-crcmod.inc deleted file mode 100644 index 85da7cb3c2..0000000000 --- a/meta-python/recipes-devtools/python/python-crcmod.inc +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "A Python module for generating objects that compute the Cyclic Redundancy Check." -HOMEPAGE = "https://pypi.org/project/crcmod" -LICENSE = "MIT" -SECTION = "devel/python" -LIC_FILES_CHKSUM = "file://LICENSE;md5=f9a19291627cad2d1dfbfcf3c9fb85c2" - -SRC_URI[md5sum] = "2d5b92117d958dcead94f9e17f54cd32" -SRC_URI[sha256sum] = "dc7051a0db5f2bd48665a990d3ec1cc305a466a77358ca4492826f41f283601e" - -inherit pypi - -RDEPENDS_${PN} += "${PYTHON_PN}-unittest" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb b/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb index 6996b13d0d..14a344f76f 100644 --- a/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb +++ b/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb @@ -1,2 +1,14 @@ -inherit setuptools3 -require python-crcmod.inc +SUMMARY = "A Python module for generating objects that compute the Cyclic Redundancy Check." +HOMEPAGE = "https://pypi.org/project/crcmod" +LICENSE = "MIT" +SECTION = "devel/python" +LIC_FILES_CHKSUM = "file://LICENSE;md5=f9a19291627cad2d1dfbfcf3c9fb85c2" + +SRC_URI[md5sum] = "2d5b92117d958dcead94f9e17f54cd32" +SRC_URI[sha256sum] = "dc7051a0db5f2bd48665a990d3ec1cc305a466a77358ca4492826f41f283601e" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "${PYTHON_PN}-unittest" + +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From jpuhlman at mvista.com Sat Feb 15 17:51:43 2020 From: jpuhlman at mvista.com (Jeremy Puhlman) Date: Sat, 15 Feb 2020 09:51:43 -0800 Subject: [oe] [meta-python][PATCH 1/2] python3-ansi2html: add new package Message-ID: <20200215175144.23550-1-jpuhlman@mvista.com> Convert text with ANSI color codes to HTML or to LaTeX --- .../recipes-devtools/python/python3-ansi2html_1.5.2.bb | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 meta-python/recipes-devtools/python/python3-ansi2html_1.5.2.bb diff --git a/meta-python/recipes-devtools/python/python3-ansi2html_1.5.2.bb b/meta-python/recipes-devtools/python/python3-ansi2html_1.5.2.bb new file mode 100644 index 000000000..8e586ea3e --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-ansi2html_1.5.2.bb @@ -0,0 +1,13 @@ +DESCRPTION = "ansi2html - Convert text with ANSI color codes to HTML or to LaTeX" +HOMEPAGE = "https://github.com/ralphbean/ansi2html" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3000208d539ec061b899bce1d9ce9404" +LICENSE = "GPLv3" + +PYPI_PACKAGE = "ansi2html" + +SRC_URI[md5sum] = "52d6085ad1c5970082ea5305a26af981" +SRC_URI[sha256sum] = "96ae85ae7b26b7da674d87de2870ba4d1964bca733ae4614587080b6358c3ba9" + +inherit pypi setuptools3 + +RDEPENDS_${PN} = "${PYTHON_PN}-six" -- 2.13.3 From jpuhlman at mvista.com Sat Feb 15 17:51:44 2020 From: jpuhlman at mvista.com (Jeremy Puhlman) Date: Sat, 15 Feb 2020 09:51:44 -0800 Subject: [oe] [meta-python][PATCH 2/2] python3-colorlog: add new package In-Reply-To: <20200215175144.23550-1-jpuhlman@mvista.com> References: <20200215175144.23550-1-jpuhlman@mvista.com> Message-ID: <20200215175144.23550-2-jpuhlman@mvista.com> A colored formatter for the python logging module --- meta-python/recipes-devtools/python/python3-colorlog_4.1.0.bb | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 meta-python/recipes-devtools/python/python3-colorlog_4.1.0.bb diff --git a/meta-python/recipes-devtools/python/python3-colorlog_4.1.0.bb b/meta-python/recipes-devtools/python/python3-colorlog_4.1.0.bb new file mode 100644 index 000000000..ea4c575eb --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-colorlog_4.1.0.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "A colored formatter for the python logging module" +HOMEPAGE = "https://github.com/borntyping/python-colorlog" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://README.md;md5=05592f7a5b83bfc756f62dbd70a9b9b5" + +inherit pypi setuptools3 + +PYPI_PACKAGE = "colorlog" + +SRC_URI[md5sum] = "25f79b76421132e2a9e08da15e4e0a73" +SRC_URI[sha256sum] = "30aaef5ab2a1873dec5da38fd6ba568fa761c9fa10b40241027fa3edea47f3d2" -- 2.13.3 From martin.jansa at gmail.com Sat Feb 15 18:41:16 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Sat, 15 Feb 2020 19:41:16 +0100 Subject: [oe] [PATCH v2] gpsd: Only require and build for Python3 In-Reply-To: <20200202021738.7440-1-alistair@alistair23.me> References: <20200202021738.7440-1-alistair@alistair23.me> Message-ID: FYI: this doesn't prevent the scons to detect python(2) in HOSTTOOLS if some layers adds it there, like meta-updater does, reported here: https://github.com/advancedtelematic/meta-updater/issues/684 It would be nice to have python PACKAGECONFIG to explicitly disable this all when not needed. On Sun, Feb 2, 2020 at 3:17 AM Alistair Francis wrote: > Signed-off-by: Alistair Francis > --- > v2: > - Actually rename everything > > meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb | 24 ++++++++++---------- > 1 file changed, 12 insertions(+), 12 deletions(-) > > diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb > b/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb > index dbbc7140f..f74ebda5f 100644 > --- a/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb > +++ b/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 \ > @@ -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" > -- > 2.25.0 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From raj.khem at gmail.com Sat Feb 15 20:49:24 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sat, 15 Feb 2020 12:49:24 -0800 Subject: [oe] [oe-commits] [openembedded-core] 11/18: busybox: Backport patches to support removal of __NR_clock_gettime In-Reply-To: <432947a2-e180-8799-c6dd-22aa89ba4e89@koncepto.io> References: <158176248670.31260.7654152103178704127@git.openembedded.org> <20200215102807.938B8232818@git.openembedded.org> <65fcf6fa-6f55-b082-52fb-6d8a8ce2ef3c@koncepto.io> <432947a2-e180-8799-c6dd-22aa89ba4e89@koncepto.io> Message-ID: On Sat, Feb 15, 2020 at 8:46 AM Pierre-Jean Texier wrote: > > Martin, > > Le 15/02/2020 ? 17:38, Martin Jansa a ?crit : > > Isn't it caused by some other layer prepending some busybox patch causing > > this? Can you check with bitbake -e? > > > > I'm not seeing this one in my builds (and I was just refreshing some of our > > webOS OSE patches to apply cleanly on 1.31.1) > > You're indeed right :(, after a quick check, it seems the build failure > comes from the meta-riscv. > > Thanks, and sorry for the noise. > some of these patches were in meta-riscv which is fixed now. > Regards, > -- > Pierre-Jean Texier > Embedded Linux Engineer > https://koncepto.io From schnitzeltony at gmail.com Sun Feb 16 21:22:42 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sun, 16 Feb 2020 22:22:42 +0100 Subject: [oe] [PATCH 1/3] mutter: upgrade 3.34.3 -> 3.34.4 Message-ID: <20200216212244.30653-1-schnitzeltony@gmail.com> Backported patch is included see '<-' in annnouncement: News ==== * Handle mode set race conditions more gracefully [Jonas; !1007] * Fix fallback to GLES2 [Adam; #635] <- * Fix interoperation with wl_data_device_manager v1 [Carlos; #965] * Fix visual glitches with offscreen effects applied [Georges; !992] * Favor text over images in clipboard manager [Carlos; #919] * Fixes crashes [Jonas, Carlos; !961, !869] * Plugged memory leaks [Sebastian, Adam; !1002, !1011] * Misc. bug fixes [Carlos, Robert, Olivier; !1005, #878, !1031, !1034, !1040] Signed-off-by: Andreas M?ller --- .../mutter/0001-cogl-Fix-GLES2-fallback.patch | 37 ------------------- .../{mutter_3.34.3.bb => mutter_3.34.4.bb} | 5 +-- 2 files changed, 2 insertions(+), 40 deletions(-) delete mode 100644 meta-gnome/recipes-gnome/mutter/mutter/0001-cogl-Fix-GLES2-fallback.patch rename meta-gnome/recipes-gnome/mutter/{mutter_3.34.3.bb => mutter_3.34.4.bb} (93%) diff --git a/meta-gnome/recipes-gnome/mutter/mutter/0001-cogl-Fix-GLES2-fallback.patch b/meta-gnome/recipes-gnome/mutter/mutter/0001-cogl-Fix-GLES2-fallback.patch deleted file mode 100644 index ec9200042..000000000 --- a/meta-gnome/recipes-gnome/mutter/mutter/0001-cogl-Fix-GLES2-fallback.patch +++ /dev/null @@ -1,37 +0,0 @@ -From f4f7e31303d78b2a8a0881b61311b8d750301b8f Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Tue, 29 Oct 2019 11:53:27 -0400 -Subject: [PATCH] cogl: Fix GLES2 fallback - -Say you're using intel gen3, you poor soul. Your big-GL maxes out at 1.5 -unless you use dirty tricks, but you do have GLES2. We try to fall back -to GLES in this case, but we only ever say eglBindAPI(EGL_OPENGL_API). -So when we go to do CreateContext, even though we think we've requested -GLES 2.0, the driver will compare that "2.0" against the maximum big-GL -version, and things will fail. - -Fix this by binding EGL_OPENGL_ES_API before trying a GLES context. - -https://gitlab.gnome.org/GNOME/mutter/issues/635 - -Upstream-Status: Applied ---- - cogl/cogl/winsys/cogl-winsys-egl.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/cogl/cogl/winsys/cogl-winsys-egl.c b/cogl/cogl/winsys/cogl-winsys-egl.c -index 99dcb8bf3..f2b439a67 100644 ---- a/cogl/cogl/winsys/cogl-winsys-egl.c -+++ b/cogl/cogl/winsys/cogl-winsys-egl.c -@@ -329,6 +329,8 @@ try_create_context (CoglDisplay *display, - if (renderer->driver == COGL_DRIVER_GL || - renderer->driver == COGL_DRIVER_GL3) - eglBindAPI (EGL_OPENGL_API); -+ else if (renderer->driver == COGL_DRIVER_GLES2) -+ eglBindAPI (EGL_OPENGL_ES_API); - - egl_attributes_from_framebuffer_config (display, - &display->onscreen_template->config, --- -2.21.0 - diff --git a/meta-gnome/recipes-gnome/mutter/mutter_3.34.3.bb b/meta-gnome/recipes-gnome/mutter/mutter_3.34.4.bb similarity index 93% rename from meta-gnome/recipes-gnome/mutter/mutter_3.34.3.bb rename to meta-gnome/recipes-gnome/mutter/mutter_3.34.4.bb index 9afa269ed..b4ddc5dad 100644 --- a/meta-gnome/recipes-gnome/mutter/mutter_3.34.3.bb +++ b/meta-gnome/recipes-gnome/mutter/mutter_3.34.4.bb @@ -22,9 +22,8 @@ GNOMEBASEBUILDCLASS = "meson" inherit gnomebase gsettings gobject-introspection gettext upstream-version-is-even features_check -SRC_URI[archive.md5sum] = "c3ee46ae7b84d9d0e8dd3f9e04a61ab1" -SRC_URI[archive.sha256sum] = "cdf57ddd0bc35db952b732b77c796760e65d1ce2f7df31273e5c8d4759ed4a89" -SRC_URI += "file://0001-cogl-Fix-GLES2-fallback.patch" +SRC_URI[archive.md5sum] = "de19a6de98a2250dd7efdfca14359e39" +SRC_URI[archive.sha256sum] = "0134513515f605dd0858154d0b54d2e23c5779d52590533e266d407251e20ba2" # x11 is still manadatory - see meson.build REQUIRED_DISTRO_FEATURES = "x11" -- 2.21.0 From schnitzeltony at gmail.com Sun Feb 16 21:22:43 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sun, 16 Feb 2020 22:22:43 +0100 Subject: [oe] [PATCH 2/3] gnome-shell: upgrade 3.34.3 -> 3.34.4 In-Reply-To: <20200216212244.30653-1-schnitzeltony@gmail.com> References: <20200216212244.30653-1-schnitzeltony@gmail.com> Message-ID: <20200216212244.30653-2-schnitzeltony@gmail.com> >From announcement: News ==== * Switch screen-recorder back to VP8 [Bj?rn; #256] Signed-off-by: Andreas M?ller --- .../{gnome-shell_3.34.3.bb => gnome-shell_3.34.4.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-gnome/recipes-gnome/gnome-shell/{gnome-shell_3.34.3.bb => gnome-shell_3.34.4.bb} (91%) diff --git a/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_3.34.3.bb b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_3.34.4.bb similarity index 91% rename from meta-gnome/recipes-gnome/gnome-shell/gnome-shell_3.34.3.bb rename to meta-gnome/recipes-gnome/gnome-shell/gnome-shell_3.34.4.bb index 463fbf46f..33dd7e459 100644 --- a/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_3.34.3.bb +++ b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_3.34.4.bb @@ -30,8 +30,8 @@ GTKDOC_MESON_OPTION = "gtk_doc" REQUIRED_DISTRO_FEATURES += "gobject-introspection-data" UNKNOWN_CONFIGURE_WHITELIST_append = " introspection" -SRC_URI[archive.md5sum] = "a0f7d78f57616076890f0e3b7f12196a" -SRC_URI[archive.sha256sum] = "2474bef386c5a47d7be285aa22e24125c46ba5f860a25a1a36a90de4e456bd8a" +SRC_URI[archive.md5sum] = "692181c1a98be9e5f5b7e8738fd428ce" +SRC_URI[archive.sha256sum] = "e99cfb151307e1d5e5dff57b7026cf8aeace9d595a8c9e62537e934d0f14a366" PACKAGECONFIG ??= "bluetooth nm ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" PACKAGECONFIG[bluetooth] = ",,gnome-bluetooth" -- 2.21.0 From schnitzeltony at gmail.com Sun Feb 16 21:22:44 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Sun, 16 Feb 2020 22:22:44 +0100 Subject: [oe] [PATCH 3/3] xfce4-whiskermenu-plugin: upgrade 2.3.5 -> 2.4.2 In-Reply-To: <20200216212244.30653-1-schnitzeltony@gmail.com> References: <20200216212244.30653-1-schnitzeltony@gmail.com> Message-ID: <20200216212244.30653-3-schnitzeltony@gmail.com> Release notes for 2.4.2 ======================= - Fix crash when selecting desktop action. (bug #16445) - Translation updates: Chinese (China), Croatian, Georgian. Release notes for 2.4.1 ======================= - Fix narrow iconview columns. - Fix bad hyphenation by increasing iconview column width. - Translation updates: Finnish, Serbian. Release notes for 2.4.0 ======================= - Add option to show as icons. (bug #15675) - Add hiding menu items. (bug #14816) - Add searching keywords of menu items. (bug #15047) - Add tooltip to profile picture for editing profile. (bug #15501) - Adjust wording of switch user command. (bug #15398) - Add icons to context menu. - New default layout. - Make panel button square only if single row and title hidden. - Rearrange settings dialog. - Redesign session confirmation dialogs. - Refactor code. - Rewrite menu load to match GarconGtkMenu. - Switch categories with keyboard focus if hover enabled. - Use custom icon renderer. - Use link time optimization if available. - Increase C++ version. - Translation updates: Bulgarian, Catalan, Chinese (Taiwan), Czech, Danish, Dutch, Finnish, French, Galician, Georgian, German, Greek, Icelandic, Indonesian, Interlingue, Italian, Japanese, Lithuanian, Malay, Nepali, Norwegian Bokmal, Polish, Portuguese, Portuguese (Brazil), Slovak, Spanish, Turkish. Signed-off-by: Andreas M?ller --- ...menu-plugin_2.3.5.bb => xfce4-whiskermenu-plugin_2.4.2.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-xfce/recipes-panel-plugins/whiskermenu/{xfce4-whiskermenu-plugin_2.3.5.bb => xfce4-whiskermenu-plugin_2.4.2.bb} (66%) diff --git a/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.5.bb b/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.4.2.bb similarity index 66% rename from meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.5.bb rename to meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.4.2.bb index 75b5a319a..25fc72d97 100644 --- a/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.3.5.bb +++ b/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.4.2.bb @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" inherit xfce-panel-plugin cmake -SRC_URI[md5sum] = "b5242d7922fa4253cc99c253efcff7cf" -SRC_URI[sha256sum] = "8f7134f4c1b5ff5290048c5b96b130e1238a286002cbe35255c2cd7d5a1ab6b4" +SRC_URI[md5sum] = "f553d3be2ffebd8d9fa5b6415647e4ff" +SRC_URI[sha256sum] = "fb2e1d44744d851c5339900e7af9068397028efa9ee5235a66ab273e95740dee" RRECOMMENDS_${PN} += "menulibre" -- 2.21.0 From raj.khem at gmail.com Mon Feb 17 02:41:05 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sun, 16 Feb 2020 18:41:05 -0800 Subject: [oe] [meta-oe][PATCH] abseil-cpp: Fix build on risc-v Message-ID: <20200217024105.1105597-1-raj.khem@gmail.com> Port GetProgramCounter to support risc-v program counter Signed-off-by: Khem Raj --- ...d-RISCV-support-to-GetProgramCounter.patch | 29 +++++++++++++++++++ .../abseil-cpp/abseil-cpp_git.bb | 1 + 2 files changed, 30 insertions(+) create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Add-RISCV-support-to-GetProgramCounter.patch diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Add-RISCV-support-to-GetProgramCounter.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-Add-RISCV-support-to-GetProgramCounter.patch new file mode 100644 index 0000000000..95ec070f6c --- /dev/null +++ b/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 +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 +--- + 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(context->uc_mcontext.gp_regs[32]); + #elif defined(__powerpc__) + return reinterpret_cast(context->uc_mcontext.regs->nip); ++#elif defined(__riscv) ++ return reinterpret_cast(context->uc_mcontext.__gregs[REG_PC]); + #elif defined(__s390__) && !defined(__s390x__) + return reinterpret_cast(context->uc_mcontext.psw.addr & 0x7fffffff); + #elif defined(__s390__) && defined(__s390x__) +-- +2.25.0 + diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb index 77afba8de9..4d1636107e 100644 --- a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb +++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb @@ -13,6 +13,7 @@ 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 \ " S = "${WORKDIR}/git" -- 2.25.0 From raj.khem at gmail.com Mon Feb 17 02:42:58 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sun, 16 Feb 2020 18:42:58 -0800 Subject: [oe] [meta-oe][PATCH 1/7] sigrok-cli: Inherit mime-xdg Message-ID: <20200217024304.1131392-1-raj.khem@gmail.com> Fixes WARNING: sigrok-cli-0.7.1-r0 do_package_qa: QA Issue: package contains desktop file with key 'MimeType' but does not inhert mime-xdg Signed-off-by: Khem Raj --- meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.1.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.1.bb b/meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.1.bb index 2293f142b3..369e2f6f4a 100644 --- a/meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.1.bb +++ b/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" -- 2.25.0 From raj.khem at gmail.com Mon Feb 17 02:42:59 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sun, 16 Feb 2020 18:42:59 -0800 Subject: [oe] [meta-oe][PATCH 2/7] libsigrok: inherit mime In-Reply-To: <20200217024304.1131392-1-raj.khem@gmail.com> References: <20200217024304.1131392-1-raj.khem@gmail.com> Message-ID: <20200217024304.1131392-2-raj.khem@gmail.com> Fixes libsigrok-0.5.2: package contains mime types but does not inhert mime: libsigrok path '/work/aarch64-yoe-linux/libsigrok/0.5.2-r0/packages-split/libsigrok/usr/share/mime/packages/vnd.sigrok.session.xml' [mime] Signed-off-by: Khem Raj --- meta-oe/recipes-extended/sigrok/libsigrok_0.5.2.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-oe/recipes-extended/sigrok/libsigrok_0.5.2.bb b/meta-oe/recipes-extended/sigrok/libsigrok_0.5.2.bb index 35e59d6d7d..e8c36a81d7 100644 --- a/meta-oe/recipes-extended/sigrok/libsigrok_0.5.2.bb +++ b/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" -- 2.25.0 From raj.khem at gmail.com Mon Feb 17 02:43:00 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sun, 16 Feb 2020 18:43:00 -0800 Subject: [oe] [meta-oe][PATCH 3/7] joe: Inherit mime-xdg In-Reply-To: <20200217024304.1131392-1-raj.khem@gmail.com> References: <20200217024304.1131392-1-raj.khem@gmail.com> Message-ID: <20200217024304.1131392-3-raj.khem@gmail.com> Fixes joe-4.6: package contains desktop file with key 'MimeType' but does not inhert mime-xdg: joe path '/work/aarch64-yoe-linux/joe/4.6-r0/packages-split/joe/usr/share/applications/jpico.desktop' Signed-off-by: Khem Raj --- meta-oe/recipes-support/joe/joe_4.6.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-oe/recipes-support/joe/joe_4.6.bb b/meta-oe/recipes-support/joe/joe_4.6.bb index b79e028f30..674736a68a 100644 --- a/meta-oe/recipes-support/joe/joe_4.6.bb +++ b/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" -- 2.25.0 From raj.khem at gmail.com Mon Feb 17 02:43:01 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sun, 16 Feb 2020 18:43:01 -0800 Subject: [oe] [meta-oe][PATCH 4/7] remmina: Inherit mime-xdg In-Reply-To: <20200217024304.1131392-1-raj.khem@gmail.com> References: <20200217024304.1131392-1-raj.khem@gmail.com> Message-ID: <20200217024304.1131392-4-raj.khem@gmail.com> Fixes remmina-1.3.6: package contains desktop file with key 'MimeType' but does not inhert mime-xdg: remmina path '/work/aarch64-yoe-linux/remmina/1.3.6-r0/packages-split/remmina/usr/share/applications/remmina-file.desktop' Signed-off-by: Khem Raj --- meta-oe/recipes-support/remmina/remmina_1.3.6.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-oe/recipes-support/remmina/remmina_1.3.6.bb b/meta-oe/recipes-support/remmina/remmina_1.3.6.bb index 14fbc94b21..f9963ff65e 100644 --- a/meta-oe/recipes-support/remmina/remmina_1.3.6.bb +++ b/meta-oe/recipes-support/remmina/remmina_1.3.6.bb @@ -18,7 +18,7 @@ SRC_URI[sha256sum] = "fbed745438bb0c21467b60cbd67c8148a9289b5ebc7482d06db443bea5 S = "${WORKDIR}/Remmina-v${PV}" -inherit cmake features_check +inherit cmake features_check mime-xdg # depends on avahi-ui with this restriction ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" -- 2.25.0 From raj.khem at gmail.com Mon Feb 17 02:43:02 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sun, 16 Feb 2020 18:43:02 -0800 Subject: [oe] [meta-gnome][PATCH 5/7] sysprof: Inherit mime and mime-xdg In-Reply-To: <20200217024304.1131392-1-raj.khem@gmail.com> References: <20200217024304.1131392-1-raj.khem@gmail.com> Message-ID: <20200217024304.1131392-5-raj.khem@gmail.com> Use += for depends to not override prior ones Fixes sysprof-3.34.1: package contains mime types but does not inhert mime: sysprof path '/work/aarch64-yoe-linux/sysprof/3.34.1-r0/packages-split/sysprof/usr/share/mime/packages/sysprof-mime.xml' [mime] sysprof-3.34.1: package contains desktop file with key 'MimeType' but does not inhert mime-xdg: sysprof path '/work/aarch64-yoe-linux/sysprof/3.34.1-r0/packages-split/sysprof/usr/share/applications/org.gnome.Sysprof3.desktop' [mime-xdg] Signed-off-by: Khem Raj --- meta-gnome/recipes-kernel/sysprof/sysprof_3.34.1.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-gnome/recipes-kernel/sysprof/sysprof_3.34.1.bb b/meta-gnome/recipes-kernel/sysprof/sysprof_3.34.1.bb index 1e530efb17..ad69ab68c3 100644 --- a/meta-gnome/recipes-kernel/sysprof/sysprof_3.34.1.bb +++ b/meta-gnome/recipes-kernel/sysprof/sysprof_3.34.1.bb @@ -5,9 +5,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ file://src/sysprof/sysprof-application.c;endline=17;md5=a3de8df3b0f8876dd01e1388d2d4b607" GNOMEBASEBUILDCLASS = "meson" -inherit gnomebase gettext systemd upstream-version-is-even gsettings +inherit gnomebase gettext systemd upstream-version-is-even gsettings mime mime-xdg -DEPENDS = "glib-2.0 libxml2-native glib-2.0-native" +DEPENDS += "glib-2.0 libxml2-native glib-2.0-native" SRC_URI[archive.md5sum] = "cc32455277b31afb1965d627ae3e3629" SRC_URI[archive.sha256sum] = "844bbb8d8b65071b3bca96f8e921319ceef81f2d2c51fcc9da63a4b355c893d0" -- 2.25.0 From raj.khem at gmail.com Mon Feb 17 02:43:03 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sun, 16 Feb 2020 18:43:03 -0800 Subject: [oe] [meta-oe][PATCH 6/7] gtkwave: Inherit mime and mime-xdg In-Reply-To: <20200217024304.1131392-1-raj.khem@gmail.com> References: <20200217024304.1131392-1-raj.khem@gmail.com> Message-ID: <20200217024304.1131392-6-raj.khem@gmail.com> Use += for depends to not override prior ones Fixes gtkwave-3.3.103: package contains desktop file with key 'MimeType' but does not inhert mime-xdg: gtkwave path '/work/aarch64-yoe-linux/gtkwave/3.3.103-r0/packages-split/gtkwave/usr/share/applications/gtkwave.desktop' [mime-xdg] Signed-off-by: Khem Raj --- meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.103.bb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.103.bb b/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.103.bb index 286d9aa6a1..fec3c7ce1a 100644 --- a/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.103.bb +++ b/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.103.bb @@ -10,9 +10,9 @@ SRC_URI = "http://gtkwave.sourceforge.net/${BP}.tar.gz" SRC_URI[md5sum] = "5a9a5913f9a02a333b2b23626f153fd7" SRC_URI[sha256sum] = "c325abf7cf26c53309a67c0ecaaf196774fa982a717a102c599ac8a516eeeaf7" -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 -- 2.25.0 From raj.khem at gmail.com Mon Feb 17 02:43:04 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sun, 16 Feb 2020 18:43:04 -0800 Subject: [oe] [meta-gnome][PATCH 7/7] gimp: Depend on libexecinfo for musl In-Reply-To: <20200217024304.1131392-1-raj.khem@gmail.com> References: <20200217024304.1131392-1-raj.khem@gmail.com> Message-ID: <20200217024304.1131392-7-raj.khem@gmail.com> musl does not have internal backtrace implementation like glibc but we can use external library Signed-off-by: Khem Raj Cc: Andreas M?ller --- meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb b/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb index 045958d0a6..30f0579e2d 100644 --- a/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb +++ b/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb @@ -29,6 +29,7 @@ DEPENDS = " \ libmng \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxmu libxpm', '', d)} \ " +DEPENDS_append_libc-musl = " libexecinfo" inherit features_check gnomebase gtk-icon-cache gtk-doc mime-xdg -- 2.25.0 From schnitzeltony at gmail.com Mon Feb 17 05:55:41 2020 From: schnitzeltony at gmail.com (=?UTF-8?Q?Andreas_M=C3=BCller?=) Date: Mon, 17 Feb 2020 06:55:41 +0100 Subject: [oe] [meta-gnome][PATCH 7/7] gimp: Depend on libexecinfo for musl In-Reply-To: <20200217024304.1131392-7-raj.khem@gmail.com> References: <20200217024304.1131392-1-raj.khem@gmail.com> <20200217024304.1131392-7-raj.khem@gmail.com> Message-ID: On Mon, Feb 17, 2020 at 3:43 AM Khem Raj wrote: > > musl does not have internal backtrace implementation like glibc > but we can use external library Sound reasonable and does not affect non musl. BTW: Old email address still works but the email address changed form 'googlemail' to 'gmail'. Signed-off-by: Andreas M?ller > > Signed-off-by: Khem Raj > Cc: Andreas M?ller > --- > meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb b/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb > index 045958d0a6..30f0579e2d 100644 > --- a/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb > +++ b/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb > @@ -29,6 +29,7 @@ DEPENDS = " \ > libmng \ > ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxmu libxpm', '', d)} \ > " > +DEPENDS_append_libc-musl = " libexecinfo" > > inherit features_check gnomebase gtk-icon-cache gtk-doc mime-xdg > > -- > 2.25.0 > From richard.leitner at skidata.com Mon Feb 17 07:08:58 2020 From: richard.leitner at skidata.com (Richard Leitner) Date: Mon, 17 Feb 2020 08:08:58 +0100 Subject: [oe] Cherry pick patches breaking zeus/thud/master. In-Reply-To: <22639ede-b55a-3e33-3ac3-c462b1e37b62@mvista.com> References: <22639ede-b55a-3e33-3ac3-c462b1e37b62@mvista.com> Message-ID: <20200217070858.GA2701920@pcleri> Hi Jeremy, On Thu, Feb 13, 2020 at 12:15:07PM -0800, Jeremy A. Puhlman wrote: > Richard, > > Is it possible to cherry pick > > d0a9fe08be6e1c2e7f7afc79abc292d3bffeb9fe > Revert "openjdk-8: disable, stringop-overflow compiler errors" > > to zeus/thud/master, since they are breaking for the same reason as warrior? Sure, I'll push the changes today. regards;rl > > TIA > > -- > Jeremy A. Puhlman > jpuhlman at mvista.com > From raj.khem at gmail.com Mon Feb 17 07:46:46 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sun, 16 Feb 2020 23:46:46 -0800 Subject: [oe] [meta-gnome][PATCH 7/7] gimp: Depend on libexecinfo for musl In-Reply-To: References: <20200217024304.1131392-1-raj.khem@gmail.com> <20200217024304.1131392-7-raj.khem@gmail.com> Message-ID: On Sun, Feb 16, 2020 at 9:55 PM Andreas M?ller wrote: > > On Mon, Feb 17, 2020 at 3:43 AM Khem Raj wrote: > > > > musl does not have internal backtrace implementation like glibc > > but we can use external library > > Sound reasonable and does not affect non musl. > > BTW: Old email address still works but the email address changed form > 'googlemail' to 'gmail'. Thanks for info. perhaps update them in README of layers in meta-openembedded as well. > > Signed-off-by: Andreas M?ller > > > > Signed-off-by: Khem Raj > > Cc: Andreas M?ller > > --- > > meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb b/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb > > index 045958d0a6..30f0579e2d 100644 > > --- a/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb > > +++ b/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb > > @@ -29,6 +29,7 @@ DEPENDS = " \ > > libmng \ > > ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxmu libxpm', '', d)} \ > > " > > +DEPENDS_append_libc-musl = " libexecinfo" > > > > inherit features_check gnomebase gtk-icon-cache gtk-doc mime-xdg > > > > -- > > 2.25.0 > > From schnitzeltony at gmail.com Mon Feb 17 07:53:26 2020 From: schnitzeltony at gmail.com (=?UTF-8?Q?Andreas_M=C3=BCller?=) Date: Mon, 17 Feb 2020 08:53:26 +0100 Subject: [oe] [meta-gnome][PATCH 7/7] gimp: Depend on libexecinfo for musl In-Reply-To: References: <20200217024304.1131392-1-raj.khem@gmail.com> <20200217024304.1131392-7-raj.khem@gmail.com> Message-ID: On Mon, Feb 17, 2020 at 8:47 AM Khem Raj wrote: > > On Sun, Feb 16, 2020 at 9:55 PM Andreas M?ller wrote: > > > > On Mon, Feb 17, 2020 at 3:43 AM Khem Raj wrote: > > > > > > musl does not have internal backtrace implementation like glibc > > > but we can use external library > > > > Sound reasonable and does not affect non musl. > > > > BTW: Old email address still works but the email address changed form > > 'googlemail' to 'gmail'. > > Thanks for info. > perhaps update them in README of layers in meta-openembedded as well. Ahh sure that's where you got it from :) Will prepare a patch for that Andreas From richard.leitner at skidata.com Mon Feb 17 08:39:13 2020 From: richard.leitner at skidata.com (Richard Leitner) Date: Mon, 17 Feb 2020 09:39:13 +0100 Subject: [oe] Cherry pick patches breaking zeus/thud/master. In-Reply-To: <22639ede-b55a-3e33-3ac3-c462b1e37b62@mvista.com> References: <22639ede-b55a-3e33-3ac3-c462b1e37b62@mvista.com> Message-ID: <20200217083913.GB12279@pcleri> Hi Jeremy, On Thu, Feb 13, 2020 at 12:15:07PM -0800, Jeremy A. Puhlman wrote: > Richard, > > Is it possible to cherry pick > > d0a9fe08be6e1c2e7f7afc79abc292d3bffeb9fe > Revert "openjdk-8: disable, stringop-overflow compiler errors" > > to zeus/thud/master, since they are breaking for the same reason as warrior? Have you tried adding "-Wno-unknown-warning" instead of removing "-Wno-error=stringop-overflow" ? This would IMHO fix both cases (gcc >=9 and <9). regards;rl > > TIA > > -- > Jeremy A. Puhlman > jpuhlman at mvista.com > From yi.zhao at windriver.com Mon Feb 17 10:55:25 2020 From: yi.zhao at windriver.com (Yi Zhao) Date: Mon, 17 Feb 2020 18:55:25 +0800 Subject: [oe] [meta-oe][PATCH] libgphoto2: remove executable permission bits of udev rule file Message-ID: <20200217105525.28919-1-yi.zhao@windriver.com> Fixes systemd-udevd warning: systemd-udevd[156]: Configuration file /etc/udev/rules.d/40-libgphoto2.rules is marked executable. Please remove executable permission bits. Proceeding anyway. Signed-off-by: Yi Zhao --- meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.23.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.23.bb b/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.23.bb index a3bdf9cea..a012c499c 100644 --- a/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.23.bb +++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.23.bb @@ -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" -- 2.17.1 From viktor.rosendahl at gmail.com Mon Feb 17 16:39:34 2020 From: viktor.rosendahl at gmail.com (Viktor Rosendahl) Date: Mon, 17 Feb 2020 17:39:34 +0100 Subject: [oe] [meta-oe][PATCH 0/3] Make lcov work with gcc-9 Message-ID: <20200217163937.29925-1-viktor.rosendahl@bmw.de> Hi all, I have made this patch series in order to address the issue that lcov doesn't work with gcc-9 because it doesn't understand the fancy new JSON format. The last patch also adds a missing dependency and enables the building of native and nativesdk packages. These patches are intended for master but I can also send the series for zeus, if/when acceptable for master. best regards, Viktor Viktor Rosendahl (3): perl: Add libperlio-gzip-perl and libjson-perl lcov: Add support for intermediate JSON format lcov: Add missing missing RDEPEND and enable nativesdk .../perl/libjson-perl_4.02000.bb | 22 + .../perl/libperlio-gzip-perl_0.20.bb | 30 + ...Add-intermediate-text-format-support.patch | 898 ++++++++++++++++++ ...Add-intermediate-JSON-format-support.patch | 247 +++++ meta-oe/recipes-support/lcov/lcov_1.14.bb | 11 +- 5 files changed, 1207 insertions(+), 1 deletion(-) create mode 100644 meta-oe/recipes-devtools/perl/libjson-perl_4.02000.bb create mode 100644 meta-oe/recipes-devtools/perl/libperlio-gzip-perl_0.20.bb create mode 100644 meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch create mode 100644 meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch -- 2.17.1 From viktor.rosendahl at gmail.com Mon Feb 17 16:39:35 2020 From: viktor.rosendahl at gmail.com (Viktor Rosendahl) Date: Mon, 17 Feb 2020 17:39:35 +0100 Subject: [oe] [meta-oe][PATCH 1/3] perl: Add libperlio-gzip-perl and libjson-perl In-Reply-To: <20200217163937.29925-1-viktor.rosendahl@bmw.de> References: <20200217163937.29925-1-viktor.rosendahl@bmw.de> Message-ID: <20200217163937.29925-2-viktor.rosendahl@bmw.de> From: Viktor Rosendahl We need to add these perl modules in order to make lcov compatible with gcc9. Signed-off-by: Viktor Rosendahl --- .../perl/libjson-perl_4.02000.bb | 22 ++++++++++++++ .../perl/libperlio-gzip-perl_0.20.bb | 30 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 meta-oe/recipes-devtools/perl/libjson-perl_4.02000.bb create mode 100644 meta-oe/recipes-devtools/perl/libperlio-gzip-perl_0.20.bb diff --git a/meta-oe/recipes-devtools/perl/libjson-perl_4.02000.bb b/meta-oe/recipes-devtools/perl/libjson-perl_4.02000.bb new file mode 100644 index 000000000..4e5a8a6ff --- /dev/null +++ b/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-oe/recipes-devtools/perl/libperlio-gzip-perl_0.20.bb b/meta-oe/recipes-devtools/perl/libperlio-gzip-perl_0.20.bb new file mode 100644 index 000000000..ffe7a7d99 --- /dev/null +++ b/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" -- 2.17.1 From viktor.rosendahl at gmail.com Mon Feb 17 16:39:37 2020 From: viktor.rosendahl at gmail.com (Viktor Rosendahl) Date: Mon, 17 Feb 2020 17:39:37 +0100 Subject: [oe] [meta-oe][PATCH 3/3] lcov: Add missing missing RDEPEND and enable nativesdk In-Reply-To: <20200217163937.29925-1-viktor.rosendahl@bmw.de> References: <20200217163937.29925-1-viktor.rosendahl@bmw.de> Message-ID: <20200217163937.29925-4-viktor.rosendahl@bmw.de> From: Viktor Rosendahl It seems like geninfo is depending on gcov-symlinks, so it should be added here. Also, lcov is useful in SDKs, so let's enable the building of native and nativesdk packages. Signed-off-by: Viktor Rosendahl --- meta-oe/recipes-support/lcov/lcov_1.14.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-oe/recipes-support/lcov/lcov_1.14.bb b/meta-oe/recipes-support/lcov/lcov_1.14.bb index 484b1af5f..14718184b 100755 --- a/meta-oe/recipes-support/lcov/lcov_1.14.bb +++ b/meta-oe/recipes-support/lcov/lcov_1.14.bb @@ -10,6 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" RDEPENDS_${PN} += " \ gcov \ + gcov-symlinks \ libjson-perl \ libperlio-gzip-perl \ perl \ @@ -58,3 +59,4 @@ do_install() { oe_runmake install PREFIX=${D}${prefix} CFG_DIR=${D}${sysconfdir} } +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From viktor.rosendahl at gmail.com Mon Feb 17 16:39:36 2020 From: viktor.rosendahl at gmail.com (Viktor Rosendahl) Date: Mon, 17 Feb 2020 17:39:36 +0100 Subject: [oe] [meta-oe][PATCH 2/3] lcov: Add support for intermediate JSON format In-Reply-To: <20200217163937.29925-1-viktor.rosendahl@bmw.de> References: <20200217163937.29925-1-viktor.rosendahl@bmw.de> Message-ID: <20200217163937.29925-3-viktor.rosendahl@bmw.de> From: Viktor Rosendahl gcc-9 uses this intermediate JSON format, so we will need these two patches to make lcov work again. Signed-off-by: Viktor Rosendahl --- ...Add-intermediate-text-format-support.patch | 898 ++++++++++++++++++ ...Add-intermediate-JSON-format-support.patch | 247 +++++ meta-oe/recipes-support/lcov/lcov_1.14.bb | 9 +- 3 files changed, 1153 insertions(+), 1 deletion(-) create mode 100644 meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch create mode 100644 meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch diff --git a/meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch b/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-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 +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 +--- + 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:, ++ # lcount:,, ++ 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:,, ++ 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:,,, ++ # ++ 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:,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 () { + 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-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch b/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-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 +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 +--- + 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-oe/recipes-support/lcov/lcov_1.14.bb b/meta-oe/recipes-support/lcov/lcov_1.14.bb index 26e797aa6..484b1af5f 100755 --- a/meta-oe/recipes-support/lcov/lcov_1.14.bb +++ b/meta-oe/recipes-support/lcov/lcov_1.14.bb @@ -10,6 +10,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" RDEPENDS_${PN} += " \ gcov \ + libjson-perl \ + libperlio-gzip-perl \ perl \ perl-module-filehandle \ perl-module-getopt-std \ @@ -19,6 +21,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 +45,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" -- 2.17.1 From raj.khem at gmail.com Mon Feb 17 19:08:17 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 17 Feb 2020 11:08:17 -0800 Subject: [oe] [meta-oe][PATCH] mpv: Disable lua support for riscv Message-ID: <20200217190817.1798159-1-raj.khem@gmail.com> luajit port of risc-v does not exist yet Signed-off-by: Khem Raj --- meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb b/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb index 066e18aa86..3d325e24e6 100644 --- a/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb +++ b/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb @@ -28,6 +28,8 @@ 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) -- 2.25.0 From akuster808 at gmail.com Tue Feb 18 00:21:37 2020 From: akuster808 at gmail.com (akuster808) Date: Mon, 17 Feb 2020 16:21:37 -0800 Subject: [oe] zeus merge request Message-ID: The following changes since commit e855ecc6d35677e79780adc57b2552213c995731: ? ruli: Fix install step and build samples too (2020-01-05 14:44:11 -0800) are available in the Git repository at: ? https://git.openembedded.org/meta-openembedded zeus-next for you to fetch changes up to bb65c27a772723dfe2c15b5e1b27bcc1a1ed884c: ? fluentbit: Fix packaging in multilib env (2020-01-30 18:38:10 -0800) ---------------------------------------------------------------- Gianfranco Costamagna (3): ????? cpprest: fix cmake installation directory ????? websocketpp: add various upstream accepted and proposed patches to fix various issues, including: ????? websocketpp: refresh clang patch Kai Kang (1): ????? adduser: set default shell with /sbin/nologin Khem Raj (9): ????? nodejs: libatomic patch should be target specific ????? websocketapp: Fix multilib build ????? websocketpp: Fix clang specific flags in cmake files ????? squid: Link with libatomic on riscv ????? grpc: Link with libatomic on clang/x86 ????? grpc: Link with libatomic on powerpc ????? grpc: Link with libatomic on riscv ????? netdata: Add libatomic to link step ????? fluentbit: Fix packaging in multilib env Peter Kjellerstedt (1): ????? gitpkgv.bbclass: Add support for extending the supported tag formats Sumit Garg (1): ????? mariadb: fix library LZ4 lookup Trevor Gamblin (2): ????? python-twisted: add required RDEPENDS for twistd ????? pyhamcrest: add python3 version of recipe Yi Zhao (1): ????? libldb: upgrade 1.5.5 -> 1.5.6 Zhixiong Chi (1): ????? dnsmasq: CVE-2019-14834 ?meta-networking/recipes-daemons/squid/squid_4.6.bb |?? 2 + ?.../recipes-devtools/grpc/grpc_1.24.1.bb?????????? |? 16 +++ ?.../0001-dnsmasq-fix-memory-leak-in-helper-c.patch |? 49 ++++++++ ?.../recipes-support/dnsmasq/dnsmasq_2.80.bb??????? |?? 1 + ?.../libldb/{libldb_1.5.5.bb => libldb_1.5.6.bb}??? |?? 4 +- ?meta-oe/classes/gitpkgv.bbclass??????????????????? |? 14 ++- ?meta-oe/recipes-dbs/mysql/mariadb.inc????????????? |?? 1 + ?.../mariadb/0001-Fix-library-LZ4-lookup.patch????? |? 30 +++++ ?meta-oe/recipes-devtools/nodejs/nodejs_10.16.3.bb? |?? 2 +- ?.../fluentbit/fluentbit/cmake_multilib.patch?????? |? 18 +++ ?.../fluentbit/fluentbit_0.12.19.bb???????????????? |?? 1 + ?meta-oe/recipes-support/cpprest/cpprest_2.10.14.bb |?? 2 +- ?.../0001-Correct-clang-compiler-flags.patch??????? |? 32 +++++ ?.../0001-cmake-Use-GNUInstallDirs.patch??????????? |? 35 ++++++ ?.../websocketpp/websocketpp-0.8.1/771.patch??????? |? 22 ++++ ?.../websocketpp/websocketpp-0.8.1/842.patch??????? |? 30 +++++ ?.../websocketpp/websocketpp-0.8.1/855.patch??????? |? 23 ++++ ?.../websocketpp/websocketpp-0.8.1/857.patch??????? | 132 +++++++++++++++++++++ ?.../websocketpp/websocketpp_0.8.1.bb?????????????? |? 17 ++- ?meta-perl/recipes-perl/adduser/adduser_3.118.bb??? |?? 1 + ?...duser-set-default-shell-with-sbin-nologin.patch |? 34 ++++++ ?.../recipes-devtools/python/python-twisted.inc???? |? 18 ++- ?.../python/python3-pyhamcrest_1.9.0.bb???????????? |? 10 ++ ?.../recipes-webadmin/netdata/netdata_git.bb??????? |?? 2 + ?24 files changed, 486 insertions(+), 10 deletions(-) ?create mode 100644 meta-networking/recipes-support/dnsmasq/dnsmasq/0001-dnsmasq-fix-memory-leak-in-helper-c.patch ?rename meta-networking/recipes-support/libldb/{libldb_1.5.5.bb => libldb_1.5.6.bb} (95%) ?create mode 100644 meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch ?create mode 100644 meta-oe/recipes-extended/fluentbit/fluentbit/cmake_multilib.patch ?create mode 100644 meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Correct-clang-compiler-flags.patch ?create mode 100644 meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-cmake-Use-GNUInstallDirs.patch ?create mode 100644 meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/771.patch ?create mode 100644 meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/842.patch ?create mode 100644 meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/855.patch ?create mode 100644 meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/857.patch ?create mode 100644 meta-perl/recipes-perl/adduser/files/0001-adduser-set-default-shell-with-sbin-nologin.patch ?create mode 100644 meta-python/recipes-devtools/python/python3-pyhamcrest_1.9.0.bb ~???????????????????????????????????????????????????????????????????????????????????????? From leo.yan at linaro.org Tue Feb 18 05:25:40 2020 From: leo.yan at linaro.org (Leo Yan) Date: Tue, 18 Feb 2020 13:25:40 +0800 Subject: [oe] [meta-oe][PATCH v1 0/4] eBPF tools: Add recipes Message-ID: <20200218052544.9467-1-leo.yan@linaro.org> This patch series add recipes for three eBPF tools into OpenEmbedded: Ply, BCC and bpftrace; BCC is dependent on luajit so also adds a recipe for luajit 2.1.0-beta3 building. These tools have been tested with MACHINE=qemuarm64 building. Leo Yan (2): Ply: Add recipe for git version luajit: Add luajit 2.1.0-beta3 recipe Sumit Garg (2): BCC: Add build recipe bpftrace: Add build recipe ...-with-OE-LLVM-cross-compiled-package.patch | 32 +++++++ meta-oe/recipes-devtools/bcc/bcc_0.12.0.bb | 37 ++++++++ ...ith-OE-llvm-clang-cross-compiled-pac.patch | 65 +++++++++++++ .../bpftrace/bpftrace_0.9.4.bb | 34 +++++++ .../recipes-devtools/luajit/luajit_2.1.0.bb | 92 +++++++++++++++++++ meta-oe/recipes-devtools/ply/ply_git.bb | 27 ++++++ 6 files changed, 287 insertions(+) create mode 100644 meta-oe/recipes-devtools/bcc/bcc/0001-Allow-to-build-with-OE-LLVM-cross-compiled-package.patch create mode 100644 meta-oe/recipes-devtools/bcc/bcc_0.12.0.bb create mode 100644 meta-oe/recipes-devtools/bpftrace/bpftrace/0001-Allow-to-build-with-OE-llvm-clang-cross-compiled-pac.patch create mode 100644 meta-oe/recipes-devtools/bpftrace/bpftrace_0.9.4.bb create mode 100644 meta-oe/recipes-devtools/luajit/luajit_2.1.0.bb create mode 100644 meta-oe/recipes-devtools/ply/ply_git.bb -- 2.17.1 From leo.yan at linaro.org Tue Feb 18 05:25:41 2020 From: leo.yan at linaro.org (Leo Yan) Date: Tue, 18 Feb 2020 13:25:41 +0800 Subject: [oe] [meta-oe][PATCH v1 1/4] Ply: Add recipe for git version In-Reply-To: <20200218052544.9467-1-leo.yan@linaro.org> References: <20200218052544.9467-1-leo.yan@linaro.org> Message-ID: <20200218052544.9467-2-leo.yan@linaro.org> Ply is a light-weight eBPF tool which compiles ply script or one-liner to Linux BPF programs and attaches to kprobes and tracepoints. It doesn't require external dependencies except libc, so it's very friendly for embedded system usage. This patch adds the recipe to support ply building for git version. Signed-off-by: Leo Yan --- meta-oe/recipes-devtools/ply/ply_git.bb | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 meta-oe/recipes-devtools/ply/ply_git.bb diff --git a/meta-oe/recipes-devtools/ply/ply_git.bb b/meta-oe/recipes-devtools/ply/ply_git.bb new file mode 100644 index 000000000..b8295386c --- /dev/null +++ b/meta-oe/recipes-devtools/ply/ply_git.bb @@ -0,0 +1,27 @@ +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" + +do_configure_prepend() { + ( cd ${S}; ./autogen.sh; cd - ) +} + +do_configure() { + ( cd ${S}; ./configure --host=${TARGET_SYS} --prefix=${D}${prefix}; cd - ) +} + +do_compile() { + ( cd ${S}; oe_runmake; cd - ) +} + +do_install() { + ( cd ${S}; oe_runmake install; cd - ) +} -- 2.17.1 From leo.yan at linaro.org Tue Feb 18 05:25:42 2020 From: leo.yan at linaro.org (Leo Yan) Date: Tue, 18 Feb 2020 13:25:42 +0800 Subject: [oe] [meta-oe][PATCH v1 2/4] luajit: Add luajit 2.1.0-beta3 recipe In-Reply-To: <20200218052544.9467-1-leo.yan@linaro.org> References: <20200218052544.9467-1-leo.yan@linaro.org> Message-ID: <20200218052544.9467-3-leo.yan@linaro.org> Since luajit 2.1.0-beta3 can support architecture aarch64 and the old misses to support aarch64, this patch adds recipe for luajit 2.1.0-beta3 building. Signed-off-by: Leo Yan --- .../recipes-devtools/luajit/luajit_2.1.0.bb | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 meta-oe/recipes-devtools/luajit/luajit_2.1.0.bb diff --git a/meta-oe/recipes-devtools/luajit/luajit_2.1.0.bb b/meta-oe/recipes-devtools/luajit/luajit_2.1.0.bb new file mode 100644 index 000000000..167b5d229 --- /dev/null +++ b/meta-oe/recipes-devtools/luajit/luajit_2.1.0.bb @@ -0,0 +1,92 @@ +SUMMARY = "Just-In-Time Compiler for Lua" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=10a96c93403affcc34765f4c2612bc22" +HOMEPAGE = "http://luajit.org" + +PV .= "+git${SRCPV}" +SRCREV = "v2.1.0-beta3" +SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http;branch=v2.1" + +S = "${WORKDIR}/git" + +inherit pkgconfig binconfig siteinfo + +BBCLASSEXTEND = "native" + +# http://luajit.org/install.html#cross +# Host luajit needs to be compiled with the same pointer size +# If you want to cross-compile to any 32 bit target on an x64 OS, +# you need to install the multilib development package (e.g. +# libc6-dev-i386 on Debian/Ubuntu) and build a 32 bit host part +# (HOST_CC="gcc -m32"). +BUILD_CC_ARCH_append = " ${@['-m32',''][d.getVar('SITEINFO_BITS') != '32']}" + +# The lua makefiles expect the TARGET_SYS to be from uname -s +# Values: Windows, Linux, Darwin, iOS, SunOS, PS3, GNU/kFreeBSD +LUA_TARGET_OS = "Unknown" +LUA_TARGET_OS_darwin = "Darwin" +LUA_TARGET_OS_linux = "Linux" +LUA_TARGET_OS_linux-gnueabi = "Linux" +LUA_TARGET_OS_mingw32 = "Windows" + +# We don't want the lua buildsystem's compiler optimizations, or its +# stripping, and we don't want it to pick up CFLAGS or LDFLAGS, as those apply +# to both host and target compiles +EXTRA_OEMAKE = "\ + Q= E='@:' \ + \ + CCOPT= CCOPT_x86= CFLAGS= LDFLAGS= TARGET_STRIP='@:' \ + \ + 'TARGET_SYS=${LUA_TARGET_OS}' \ + \ + 'CC=${CC}' \ + 'TARGET_AR=${AR} rcus' \ + 'TARGET_CFLAGS=${CFLAGS}' \ + 'TARGET_LDFLAGS=${LDFLAGS}' \ + 'TARGET_SHLDFLAGS=${LDFLAGS}' \ + 'HOST_CC=${BUILD_CC}' \ + 'HOST_CFLAGS=${BUILD_CFLAGS}' \ + \ + 'PREFIX=${prefix}' \ + 'MULTILIB=${baselib}' \ + 'LDCONFIG=:' \ +" + +do_compile () { + oe_runmake +} + +# There's INSTALL_LIB and INSTALL_SHARE also, but the lua binary hardcodes the +# '/share' and '/' + LUA_MULTILIB paths, so we don't want to break those +# expectations. +EXTRA_OEMAKEINST = "\ + 'DESTDIR=${D}' \ + 'INSTALL_BIN=${D}${bindir}' \ + 'INSTALL_INC=${D}${includedir}/luajit-$(MAJVER).$(MINVER)' \ + 'INSTALL_MAN=${D}${mandir}/man1' \ +" +do_install () { + oe_runmake ${EXTRA_OEMAKEINST} install + rmdir ${D}${datadir}/lua/5.* \ + ${D}${datadir}/lua \ + ${D}${libdir}/lua/5.* \ + ${D}${libdir}/lua +} + +PACKAGES += 'luajit-common' + +# See the comment for EXTRA_OEMAKEINST. This is needed to ensure the hardcoded +# paths are packaged regardless of what the libdir and datadir paths are. +FILES_${PN} += "${prefix}/${baselib} ${prefix}/share" +FILES_${PN} += "${libdir}/libluajit-5.1.so.2 \ + ${libdir}/libluajit-5.1.so.${PV} \ +" +FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \ + ${libdir}/libluajit-5.1.so \ + ${libdir}/pkgconfig/luajit.pc \ +" +FILES_luajit-common = "${datadir}/${BPN}-${PV}" + +# mips64 is not supported in this release +COMPATIBLE_HOST_mipsarchn32 = "null" +COMPATIBLE_HOST_mipsarchn64 = "null" -- 2.17.1 From leo.yan at linaro.org Tue Feb 18 05:25:43 2020 From: leo.yan at linaro.org (Leo Yan) Date: Tue, 18 Feb 2020 13:25:43 +0800 Subject: [oe] [meta-oe][PATCH v1 3/4] BCC: Add build recipe In-Reply-To: <20200218052544.9467-1-leo.yan@linaro.org> References: <20200218052544.9467-1-leo.yan@linaro.org> Message-ID: <20200218052544.9467-4-leo.yan@linaro.org> From: Sumit Garg BPF Compiler Collection (BCC) is a toolkit for creating efficient kernel tracing and manipulation programs, and includes versatile tools and examples which based on eBPF. This tool is very widely used on server section, but we also can use it for embedded system, e.g. use its function trace utilities (trace.py and argdist.py) to trace kernel function parameters and return values. This patch adds recipe for BCC version 0.12.0. This patch also contains a patch to change cmake file so can look for libraries and headers which are installed in target sysroot-recipe path for cross compilation. Signed-off-by: Sumit Garg Co-developed-by: Leo Yan --- ...-with-OE-LLVM-cross-compiled-package.patch | 32 ++++++++++++++++ meta-oe/recipes-devtools/bcc/bcc_0.12.0.bb | 37 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 meta-oe/recipes-devtools/bcc/bcc/0001-Allow-to-build-with-OE-LLVM-cross-compiled-package.patch create mode 100644 meta-oe/recipes-devtools/bcc/bcc_0.12.0.bb diff --git a/meta-oe/recipes-devtools/bcc/bcc/0001-Allow-to-build-with-OE-LLVM-cross-compiled-package.patch b/meta-oe/recipes-devtools/bcc/bcc/0001-Allow-to-build-with-OE-LLVM-cross-compiled-package.patch new file mode 100644 index 000000000..b5acadc1b --- /dev/null +++ b/meta-oe/recipes-devtools/bcc/bcc/0001-Allow-to-build-with-OE-LLVM-cross-compiled-package.patch @@ -0,0 +1,32 @@ +From 93cf25ba663e68a6a6f4237fbe0ef8349b3f37ef Mon Sep 17 00:00:00 2001 +From: Sumit Garg +Date: Fri, 14 Feb 2020 07:40:11 +0000 +Subject: [PATCH] Allow to build with OE LLVM cross compiled package + +The default LLVM cmake package requires all libraries, headers and tools +to be present but in case of cross compilation, OE only provides +target specific libraries and headers and requires native llvm tools. + +So instead of looking for a complete llvm package, look for libraries and +headers which are installed in target sysroot-recipe path. + +Signed-off-by: Sumit Garg +--- + CMakeLists.txt | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7bd0f3b2..6f1f12c0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -39,8 +39,6 @@ endif() + if(NOT PYTHON_ONLY AND ENABLE_CLANG_JIT) + find_package(BISON) + find_package(FLEX) +-find_package(LLVM REQUIRED CONFIG) +-message(STATUS "Found LLVM: ${LLVM_INCLUDE_DIRS} ${LLVM_PACKAGE_VERSION}") + find_package(LibElf REQUIRED) + + # clang is linked as a library, but the library path searching is +-- +2.17.1 diff --git a/meta-oe/recipes-devtools/bcc/bcc_0.12.0.bb b/meta-oe/recipes-devtools/bcc/bcc_0.12.0.bb new file mode 100644 index 000000000..687fb64c7 --- /dev/null +++ b/meta-oe/recipes-devtools/bcc/bcc_0.12.0.bb @@ -0,0 +1,37 @@ +SUMMARY = "BPF Compiler Collection (BCC)" +HOMEPAGE = "https://github.com/iovisor/bcc" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e3fc50a88d0a364313df4b21ef20c29e" + +DEPENDS += "bison-native \ + ninja-native \ + elfutils-native \ + flex-native \ + ${MLPREFIX}elfutils \ + ${MLPREFIX}binutils \ + ${MLPREFIX}flex \ + luajit \ + clang \ + " + +RDEPENDS_${PN} += "bash python" + +SRC_URI = "git://github.com/iovisor/bcc \ + file://0001-Allow-to-build-with-OE-LLVM-cross-compiled-package.patch \ + " +SRCREV = "368a5b0714961953f3e3f61607fa16cb71449c1b" + +S = "${WORKDIR}/git" + +inherit cmake + +EXTRA_OECMAKE = " \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DENABLE_LLVM_SHARED=ON \ + -DENABLE_CLANG_JIT=ON \ + -DENABLE_MAN=OFF \ + -DLLVM_PACKAGE_VERSION=${LLVMVERSION} \ + -DPYTHON_CMD=python3 \ +" + +FILES_${PN} += "${libdir}/python*/dist-packages" -- 2.17.1 From leo.yan at linaro.org Tue Feb 18 05:25:44 2020 From: leo.yan at linaro.org (Leo Yan) Date: Tue, 18 Feb 2020 13:25:44 +0800 Subject: [oe] [meta-oe][PATCH v1 4/4] bpftrace: Add build recipe In-Reply-To: <20200218052544.9467-1-leo.yan@linaro.org> References: <20200218052544.9467-1-leo.yan@linaro.org> Message-ID: <20200218052544.9467-5-leo.yan@linaro.org> From: Sumit Garg bpftrace is a high-level tracing language for eBPF, its language is inspired by awk and C, and predecessor tracers such as DTrace and SystemTap. bpftrace was created by Alastair Robertson. bpftrace language supports the usages for one-liner and script, it's very powerful for tracing and profiling. bpftrace internal mechanism depends on BCC and LLVM/Clang, so the building dependency has contains these modules. Add recipe for bpftrace version 0.9.4. This patch also contains a patch to change cmake file so can look for libraries and headers which are installed in target sysroot-recipe path for cross compilation. Signed-off-by: Sumit Garg Co-developed-by: Leo Yan --- ...ith-OE-llvm-clang-cross-compiled-pac.patch | 65 +++++++++++++++++++ .../bpftrace/bpftrace_0.9.4.bb | 34 ++++++++++ 2 files changed, 99 insertions(+) create mode 100644 meta-oe/recipes-devtools/bpftrace/bpftrace/0001-Allow-to-build-with-OE-llvm-clang-cross-compiled-pac.patch create mode 100644 meta-oe/recipes-devtools/bpftrace/bpftrace_0.9.4.bb diff --git a/meta-oe/recipes-devtools/bpftrace/bpftrace/0001-Allow-to-build-with-OE-llvm-clang-cross-compiled-pac.patch b/meta-oe/recipes-devtools/bpftrace/bpftrace/0001-Allow-to-build-with-OE-llvm-clang-cross-compiled-pac.patch new file mode 100644 index 000000000..d6cb32222 --- /dev/null +++ b/meta-oe/recipes-devtools/bpftrace/bpftrace/0001-Allow-to-build-with-OE-llvm-clang-cross-compiled-pac.patch @@ -0,0 +1,65 @@ +From cdfd9284c7e83b1bd18c94c0f39c020f31759178 Mon Sep 17 00:00:00 2001 +From: Sumit Garg +Date: Mon, 17 Feb 2020 09:45:38 +0000 +Subject: [PATCH] Allow to build with OE llvm & clang cross compiled packages + +The default llvm and clang cmake packages requires all libraries, headers +and tools to be present but in case of cross compilation, OE only +provides target specific libraries and headers and requires native llvm +or clang tools. + +So instead of looking for a complete llvm & clang packages, look for +libraries and headers which are installed in target sysroot-recipe path. + +Also, fix name for clang library lookup. + +Signed-off-by: Sumit Garg +--- + CMakeLists.txt | 6 +++--- + src/ast/CMakeLists.txt | 2 +- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b766669..e4de1e3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -14,7 +14,7 @@ set(STATIC_LIBC OFF CACHE BOOL "Attempt to embed libc, only known to work with m + set(EMBED_LLVM OFF CACHE BOOL "Build LLVM static libs as an ExternalProject and link to these instead of system libs.") + set(EMBED_CLANG OFF CACHE BOOL "Build Clang static libs as an ExternalProject and link to these instead of system libs.") + set(EMBED_LIBCLANG_ONLY OFF CACHE BOOL "Build only libclang.a, and link to system libraries statically") +-set(LLVM_VERSION "8" CACHE STRING "Embedded LLVM/Clang version to build and link against.") ++set(LLVM_VERSION "9" CACHE STRING "Embedded LLVM/Clang version to build and link against.") + set(BUILD_ASAN OFF CACHE BOOL "Build bpftrace with -fsanitize=address") + + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) +@@ -122,7 +122,7 @@ check_include_file("sys/sdt.h" HAVE_SYSTEMTAP_SYS_SDT_H) + + if (EMBED_LLVM) + include(embed_llvm) +-else() ++elseif(0) + # Some users have multiple versions of llvm installed and would like to specify + # a specific llvm version. + if(${LLVM_REQUESTED_VERSION}) +@@ -142,7 +142,7 @@ endif() + + if(EMBED_CLANG) + include(embed_clang) +-else() ++elseif(0) + find_package(Clang REQUIRED) + include_directories(SYSTEM ${CLANG_INCLUDE_DIRS}) + endif() +diff --git a/src/ast/CMakeLists.txt b/src/ast/CMakeLists.txt +index f280f47..f8b9dff 100644 +--- a/src/ast/CMakeLists.txt ++++ b/src/ast/CMakeLists.txt +@@ -57,5 +57,5 @@ else() + llvm_expand_dependencies(llvm_libs ${_llvm_libs}) + target_link_libraries(ast ${llvm_libs}) + endif() +- target_link_libraries(ast libclang) ++ target_link_libraries(ast clang) + endif() +-- +2.17.1 diff --git a/meta-oe/recipes-devtools/bpftrace/bpftrace_0.9.4.bb b/meta-oe/recipes-devtools/bpftrace/bpftrace_0.9.4.bb new file mode 100644 index 000000000..32a8b0baf --- /dev/null +++ b/meta-oe/recipes-devtools/bpftrace/bpftrace_0.9.4.bb @@ -0,0 +1,34 @@ +SUMMARY = "bpftrace" +HOMEPAGE = "https://github.com/iovisor/bpftrace" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +DEPENDS += "bison-native \ + ninja-native \ + elfutils-native \ + flex-native \ + gtest-native \ + git-native \ + ${MLPREFIX}elfutils \ + ${MLPREFIX}binutils \ + ${MLPREFIX}flex \ + clang \ + bcc \ + " + +RDEPENDS_${PN} += "bash python3" + +SRC_URI = "git://github.com/iovisor/bpftrace \ + file://0001-Allow-to-build-with-OE-llvm-clang-cross-compiled-pac.patch \ + " +SRCREV = "85f9eea624c83443816e37654d0c1c93366a2e66" + +S = "${WORKDIR}/git" + +inherit cmake + +OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH" + +EXTRA_OECMAKE = " \ + -DCMAKE_BUILD_TYPE=Release \ +" -- 2.17.1 From wangmy at cn.fujitsu.com Tue Feb 18 13:40:39 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Tue, 18 Feb 2020 05:40:39 -0800 Subject: [oe] [meta-networking][PATCH] fetchmail: upgrade 6.4.1 -> 6.4.2 Message-ID: <1582033240-93392-1-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../fetchmail/{fetchmail_6.4.1.bb => fetchmail_6.4.2.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-networking/recipes-support/fetchmail/{fetchmail_6.4.1.bb => fetchmail_6.4.2.bb} (86%) diff --git a/meta-networking/recipes-support/fetchmail/fetchmail_6.4.1.bb b/meta-networking/recipes-support/fetchmail/fetchmail_6.4.2.bb similarity index 86% rename from meta-networking/recipes-support/fetchmail/fetchmail_6.4.1.bb rename to meta-networking/recipes-support/fetchmail/fetchmail_6.4.2.bb index 0faf19648..236c32bdd 100644 --- a/meta-networking/recipes-support/fetchmail/fetchmail_6.4.1.bb +++ b/meta-networking/recipes-support/fetchmail/fetchmail_6.4.2.bb @@ -9,8 +9,8 @@ DEPENDS = "openssl" SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz \ " -SRC_URI[md5sum] = "c2b836a919cdd4ec53b06b70e0aa3e63" -SRC_URI[sha256sum] = "3f33f11dd08c3e8cc3e9d18eec686b1626d4818f4d5a72791507bbc4dce6a9a0" +SRC_URI[md5sum] = "039b49a4f41f8544a51d82d2f4599dfc" +SRC_URI[sha256sum] = "e21f6b3326f29fdb0c4786b5602aa4b9e668805424d0708eb42be6395c1ca630" inherit autotools gettext python3-dir python3native -- 2.17.1 From wangmy at cn.fujitsu.com Tue Feb 18 13:40:40 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Tue, 18 Feb 2020 05:40:40 -0800 Subject: [oe] [meta-perl][PATCH] libnet-dns-perl: upgrade 1.21 -> 1.22 In-Reply-To: <1582033240-93392-1-git-send-email-wangmy@cn.fujitsu.com> References: <1582033240-93392-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1582033240-93392-2-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../{libnet-dns-perl_1.21.bb => libnet-dns-perl_1.22.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-perl/recipes-perl/libnet/{libnet-dns-perl_1.21.bb => libnet-dns-perl_1.22.bb} (92%) diff --git a/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.21.bb b/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.22.bb similarity index 92% rename from meta-perl/recipes-perl/libnet/libnet-dns-perl_1.21.bb rename to meta-perl/recipes-perl/libnet/libnet-dns-perl_1.22.bb index 58b8eec66..621908b3a 100644 --- a/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.21.bb +++ b/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.22.bb @@ -9,8 +9,8 @@ DEPENDS += "perl" SRC_URI = "http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-${PV}.tar.gz" -SRC_URI[md5sum] = "91e8593eb6eed41995e6edc567fb6fec" -SRC_URI[sha256sum] = "ddefe13b28084ffcc8f10a96b3c13c59449dbf6fc371c006d129630ea0ce767a" +SRC_URI[md5sum] = "f9b4f0b2613398d27434d94b456583ef" +SRC_URI[sha256sum] = "03cd6a733e1cab6f817b4c4dcb7b29575002f8c543fb85e94c6290bc224d4c12" UPSTREAM_CHECK_REGEX = "Net\-DNS\-(?P(\d+\.\d+))(?!_\d+).tar" -- 2.17.1 From raj.khem at gmail.com Tue Feb 18 06:23:41 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 17 Feb 2020 22:23:41 -0800 Subject: [oe] [meta-multimedia][PATCH 1/8] x265: Move into meta-multimedia Message-ID: <20200218062348.3742529-1-raj.khem@gmail.com> Signed-off-by: Khem Raj --- .../recipes-multimedia/x265/x265_3.2.1.bb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {meta-openembedded/meta-multimedia => meta-multimedia}/recipes-multimedia/x265/x265_3.2.1.bb (100%) diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb b/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb similarity index 100% rename from meta-openembedded/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb rename to meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb -- 2.25.1 From raj.khem at gmail.com Tue Feb 18 06:23:42 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 17 Feb 2020 22:23:42 -0800 Subject: [oe] [meta-multimedia][PATCH 2/8] gssdp: Upgrade to 1.2.2 In-Reply-To: <20200218062348.3742529-1-raj.khem@gmail.com> References: <20200218062348.3742529-1-raj.khem@gmail.com> Message-ID: <20200218062348.3742529-2-raj.khem@gmail.com> Switch to using meson Use sniffer via packageconfig Signed-off-by: Khem Raj Cc: Andreas M?ller --- .../recipes-connectivity/gupnp/gssdp_1.0.2.bb | 24 ------------------- .../recipes-connectivity/gupnp/gssdp_1.2.2.bb | 20 ++++++++++++++++ 2 files changed, 20 insertions(+), 24 deletions(-) delete mode 100644 meta-multimedia/recipes-connectivity/gupnp/gssdp_1.0.2.bb create mode 100644 meta-multimedia/recipes-connectivity/gupnp/gssdp_1.2.2.bb diff --git a/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.0.2.bb b/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.0.2.bb deleted file mode 100644 index 6088ef1954..0000000000 --- a/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.0.2.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "Resource discovery and announcement over SSDP" -DESCRIPTION = "GSSDP implements resource discovery and announcement over SSDP (Simpe Service Discovery Protocol)." -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" -DEPENDS = "glib-2.0 libsoup-2.4" - -SRC_URI = "${GNOME_MIRROR}/${BPN}/1.0/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "b30c9a406853c6a3a012d151d6e7ad2c" -SRC_URI[sha256sum] = "a1e17c09c7e1a185b0bd84fd6ff3794045a3cd729b707c23e422ff66471535dc" - -inherit autotools pkgconfig gobject-introspection vala gtk-doc - -# Copy vapigen.m4 so that it doesn't get removed by vala class -# (normally this would be the right thing to do, but in gssdp the vapigen.m4 has only a custom macro) -do_configure_prepend() { - cp -f ${S}/m4/vapigen.m4 ${S}/m4/vapigen-custom.m4 || true -} - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)}" -PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk,gtk+3" - -PACKAGES =+ "gssdp-tools" - -FILES_gssdp-tools = "${bindir}/gssdp* ${datadir}/gssdp/*.glade" diff --git a/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.2.2.bb b/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.2.2.bb new file mode 100644 index 0000000000..ddaddd2094 --- /dev/null +++ b/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.2.2.bb @@ -0,0 +1,20 @@ +SUMMARY = "Resource discovery and announcement over SSDP" +DESCRIPTION = "GSSDP implements resource discovery and announcement over SSDP (Simpe Service Discovery Protocol)." +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" +DEPENDS = "glib-2.0 libsoup-2.4" + +SRC_URI = "${GNOME_MIRROR}/${BPN}/1.2/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "f00a470ebcba96f34def8f83ac5891ed" +SRC_URI[sha256sum] = "cabb9e3b456b8354a55e23eb0207545d974643cda6d623523470ebbc4188b0a4" + +GTKDOC_MESON_OPTION = 'gtk_doc' + +inherit meson pkgconfig gobject-introspection vala gtk-doc + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'sniffer', '', d)}" +PACKAGECONFIG[sniffer] = "-Dsniffer=true,-Dsniffer=false,gtk+3," + +PACKAGES =+ "gssdp-tools" + +FILES_gssdp-tools = "${bindir}/gssdp* ${datadir}/gssdp/*.glade" -- 2.25.1 From raj.khem at gmail.com Tue Feb 18 06:23:43 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 17 Feb 2020 22:23:43 -0800 Subject: [oe] [meta-multimedia][PATCH 3/8] gupnp: Upgrade to 1.2.2 In-Reply-To: <20200218062348.3742529-1-raj.khem@gmail.com> References: <20200218062348.3742529-1-raj.khem@gmail.com> Message-ID: <20200218062348.3742529-3-raj.khem@gmail.com> Switch to using meson Depend on py3 since its now supported Relax packaging to include version number in gupnp-binding-tool Signed-off-by: Khem Raj Cc: Andreas M?ller --- .../recipes-connectivity/gupnp/gupnp.inc | 14 ++++---------- .../recipes-connectivity/gupnp/gupnp_1.0.2.bb | 8 -------- .../recipes-connectivity/gupnp/gupnp_1.2.2.bb | 8 ++++++++ 3 files changed, 12 insertions(+), 18 deletions(-) delete mode 100644 meta-multimedia/recipes-connectivity/gupnp/gupnp_1.0.2.bb create mode 100644 meta-multimedia/recipes-connectivity/gupnp/gupnp_1.2.2.bb diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc b/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc index 6ce9631616..2920581c51 100644 --- a/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc +++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc @@ -4,22 +4,16 @@ LICENSE = "LGPLv2+" DEPENDS = "e2fsprogs gssdp libsoup-2.4 libxml2" -inherit autotools pkgconfig vala gobject-introspection - -# Copy vapigen.m4 so that it doesn't get removed by vala class -# (normally this would be the right thing to do, but in gupnp the vapigen.m4 has only a custom macro) -do_configure_prepend() { - cp -f ${S}/m4/vapigen.m4 ${S}/m4/vapigen-custom.m4 || true -} +inherit meson pkgconfig vala gobject-introspection FILES_${PN} = "${libdir}/*.so.*" -FILES_${PN}-dev += "${bindir}/gupnp-binding-tool" +FILES_${PN}-dev += "${bindir}/gupnp-binding-tool*" -RDEPENDS_${PN}-dev = "python-textutils python-xml" +RDEPENDS_${PN}-dev = "python3 python3-xml" SYSROOT_PREPROCESS_FUNCS += "gupnp_sysroot_preprocess" gupnp_sysroot_preprocess () { install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ - install -m 755 ${D}${bindir}/gupnp-binding-tool ${SYSROOT_DESTDIR}${bindir_crossscripts}/ + install -m 755 ${D}${bindir}/gupnp-binding-tool* ${SYSROOT_DESTDIR}${bindir_crossscripts}/ } diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.0.2.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.0.2.bb deleted file mode 100644 index 1bdf7d79bc..0000000000 --- a/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.0.2.bb +++ /dev/null @@ -1,8 +0,0 @@ -require gupnp.inc - -SRC_URI = "${GNOME_MIRROR}/${BPN}/1.0/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "afd96fe73856b38aaf1baf7526e08edd" -SRC_URI[sha256sum] = "5173fda779111c6b01cd4a5e41b594322be9d04f8c74d3361f0a0c2069c77610" - -LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ - file://libgupnp/gupnp.h;beginline=1;endline=20;md5=d78a69d9b6e63ee2dc72e7b674d97520" diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.2.2.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.2.2.bb new file mode 100644 index 0000000000..e603497161 --- /dev/null +++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.2.2.bb @@ -0,0 +1,8 @@ +require gupnp.inc + +SRC_URI = "${GNOME_MIRROR}/${BPN}/1.2/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "2ade3d29c624ad98d70113e6e93908a5" +SRC_URI[sha256sum] = "9a80bd953e5c8772ad26b72f8da01cbe7241a113edd6084903f413ce751c9989" + +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ + file://libgupnp/gupnp.h;beginline=1;endline=20;md5=d78a69d9b6e63ee2dc72e7b674d97520" -- 2.25.1 From raj.khem at gmail.com Tue Feb 18 06:23:44 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 17 Feb 2020 22:23:44 -0800 Subject: [oe] [meta-multimedia][PATCH 4/8] gupnp-dlna: Rename patchdir to PN In-Reply-To: <20200218062348.3742529-1-raj.khem@gmail.com> References: <20200218062348.3742529-1-raj.khem@gmail.com> Message-ID: <20200218062348.3742529-4-raj.khem@gmail.com> This makes is specific to gupnp-dlna alone since thats only recipe using the patches inside files Signed-off-by: Khem Raj Cc: Andreas M?ller --- .../gupnp/{files => gupnp-dlna}/move_vapigen.patch | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename meta-multimedia/recipes-connectivity/gupnp/{files => gupnp-dlna}/move_vapigen.patch (100%) diff --git a/meta-multimedia/recipes-connectivity/gupnp/files/move_vapigen.patch b/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna/move_vapigen.patch similarity index 100% rename from meta-multimedia/recipes-connectivity/gupnp/files/move_vapigen.patch rename to meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna/move_vapigen.patch -- 2.25.1 From raj.khem at gmail.com Tue Feb 18 06:23:45 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 17 Feb 2020 22:23:45 -0800 Subject: [oe] [meta-multimedia][PATCH 5/8] rygel: Upgrade to 0.38.3 In-Reply-To: <20200218062348.3742529-1-raj.khem@gmail.com> References: <20200218062348.3742529-1-raj.khem@gmail.com> Message-ID: <20200218062348.3742529-5-raj.khem@gmail.com> Signed-off-by: Khem Raj Cc: Andreas M?ller --- .../rygel/{rygel_0.37.0.bb => rygel_0.38.3.bb} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename meta-multimedia/recipes-connectivity/rygel/{rygel_0.37.0.bb => rygel_0.38.3.bb} (95%) diff --git a/meta-multimedia/recipes-connectivity/rygel/rygel_0.37.0.bb b/meta-multimedia/recipes-connectivity/rygel/rygel_0.38.3.bb similarity index 95% rename from meta-multimedia/recipes-connectivity/rygel/rygel_0.37.0.bb rename to meta-multimedia/recipes-connectivity/rygel/rygel_0.38.3.bb index 6ee02fcc04..3fc8450513 100644 --- a/meta-multimedia/recipes-connectivity/rygel/rygel_0.37.0.bb +++ b/meta-multimedia/recipes-connectivity/rygel/rygel_0.38.3.bb @@ -12,11 +12,11 @@ DEPENDS = "libxml2 glib-2.0 gssdp gupnp gupnp-av gupnp-dlna gstreamer1.0 gstream RDEPENDS_${PN} = "gstreamer1.0-plugins-base-playback shared-mime-info" RRECOMMENDS_${PN} = "rygel-plugin-media-export" -SRC_URI[archive.md5sum] = "f897167ad82e2e741582f2c393a76843" -SRC_URI[archive.sha256sum] = "dfd3d885da3ac383ba0cfbf119995f4a0c2bca2cc8f8cfcd3df10cfec8f35cd7" - inherit gnomebase vala gobject-introspection gettext systemd +SRC_URI[archive.md5sum] = "7f95401903a3f855b464d5152b9d4c07" +SRC_URI[archive.sha256sum] = "08c21a577f7bdad26446a75ffa32778b26842c3b1188165f0b19818559747d00" + EXTRA_OECONF = "--disable-tracker-plugin --with-media-engine=gstreamer" PACKAGECONFIG ?= "external mpris ruih media-export gst-launch" -- 2.25.1 From raj.khem at gmail.com Tue Feb 18 06:23:46 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 17 Feb 2020 22:23:46 -0800 Subject: [oe] [meta-multimedia][PATCH 6/8] gupnp-tools: Upgrade to 0.10.0 In-Reply-To: <20200218062348.3742529-1-raj.khem@gmail.com> References: <20200218062348.3742529-1-raj.khem@gmail.com> Message-ID: <20200218062348.3742529-6-raj.khem@gmail.com> Add missing dep on glib-2.0-native inherit gtk-icon-cache Convert to use meson Signed-off-by: Khem Raj Cc: Andreas M?ller --- .../gupnp/gupnp-tools_0.10.0.bb | 13 +++++++++++++ .../gupnp/gupnp-tools_0.8.13.bb | 13 ------------- 2 files changed, 13 insertions(+), 13 deletions(-) create mode 100644 meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.0.bb delete mode 100644 meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.0.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.0.bb new file mode 100644 index 0000000000..bf84e7b73c --- /dev/null +++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.0.bb @@ -0,0 +1,13 @@ +SUMMARY = "Tools for GUPnP" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ + file://src/network-light/main.c;beginline=1;endline=21;md5=2c39b3a000495dabd4932f231c7efed8" +DEPENDS = "gupnp gupnp-av gtk+3 glib-2.0-native intltool-native" +RRECOMMENDS_${PN} = "adwaita-icon-theme" + +SRC_URI = "http://download.gnome.org/sources/${BPN}/0.10/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "8c66d4aca756478615761a26ed7c8dba" +SRC_URI[sha256sum] = "41da7ff5ba8e2425adcb64ca5e04c81f57ca20ec6fdb84923939fdad42c6a18d" +inherit features_check meson pkgconfig gettext gtk-icon-cache + +REQUIRED_DISTRO_FEATURES = "x11" diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb deleted file mode 100644 index 7a6b872f11..0000000000 --- a/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "Tools for GUPnP" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ - file://src/network-light/main.c;beginline=1;endline=21;md5=2c39b3a000495dabd4932f231c7efed8" -DEPENDS = "gupnp gupnp-av gtk+3 intltool-native" -RRECOMMENDS_${PN} = "adwaita-icon-theme" - -SRC_URI = "http://download.gnome.org/sources/${BPN}/0.8/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "212d85ebce89b32468b59e1164050d40" -SRC_URI[sha256sum] = "aa3decb9d532c0e2e505adc592f431fd81c0231ded2981129e87da13712479ed" -inherit features_check autotools pkgconfig gettext - -REQUIRED_DISTRO_FEATURES = "x11" -- 2.25.1 From raj.khem at gmail.com Tue Feb 18 06:23:47 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 17 Feb 2020 22:23:47 -0800 Subject: [oe] [meta-multimedia][PATCH 7/8] gupnp-igd: Upgrade to 0.2.5 In-Reply-To: <20200218062348.3742529-1-raj.khem@gmail.com> References: <20200218062348.3742529-1-raj.khem@gmail.com> Message-ID: <20200218062348.3742529-7-raj.khem@gmail.com> Backport patch to support gupnp 1.2 APIs Add gsspd to deps Signed-off-by: Khem Raj Cc: Andreas M?ller --- .../0001-Swtich-to-new-GUPnP-API.patch | 101 ++++++++++++++++++ ...{gupnp-igd_0.2.4.bb => gupnp-igd_0.2.5.bb} | 10 +- 2 files changed, 107 insertions(+), 4 deletions(-) create mode 100644 meta-multimedia/recipes-connectivity/gupnp/gupnp-igd/0001-Swtich-to-new-GUPnP-API.patch rename meta-multimedia/recipes-connectivity/gupnp/{gupnp-igd_0.2.4.bb => gupnp-igd_0.2.5.bb} (63%) diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd/0001-Swtich-to-new-GUPnP-API.patch b/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd/0001-Swtich-to-new-GUPnP-API.patch new file mode 100644 index 0000000000..ff5a6d9c6c --- /dev/null +++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd/0001-Swtich-to-new-GUPnP-API.patch @@ -0,0 +1,101 @@ +From 63531558a16ac2334a59f627b2fca5576dcfbb2e Mon Sep 17 00:00:00 2001 +From: Jens Georg +Date: Sat, 1 Dec 2018 21:33:21 +0100 +Subject: [PATCH] Swtich to new GUPnP API + +Signed-off-by: Khem Raj +Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gupnp-igd/commit/63531558a16ac2334a59f627b2fca5576dcfbb2e] +--- + configure.ac | 2 +- + gupnp-igd-1.0-uninstalled.pc.in | 2 +- + gupnp-igd-1.0.pc.in | 2 +- + libgupnp-igd/Makefile.am | 2 +- + tests/gtest/gupnp-simple-igd.c | 6 ++++-- + 5 files changed, 8 insertions(+), 6 deletions(-) + +diff --git a/configure.ac b/configure.ac +index f03921f..aa7f0ca 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -11,7 +11,7 @@ AC_STDC_HEADERS + AC_PROG_LIBTOOL + AC_FUNC_MMAP + +-PKG_CHECK_MODULES(LIBGUPNP, glib-2.0 >= 2.26 gobject-2.0 >= 2.26 gssdp-1.0 gupnp-1.0 >= 0.18 gthread-2.0) ++PKG_CHECK_MODULES(LIBGUPNP, glib-2.0 >= 2.26 gobject-2.0 >= 2.26 gssdp-1.2 gupnp-1.2 >= 0.18 gthread-2.0) + + # glib-genmarshal + GLIB_GENMARSHAL=`pkg-config --variable=glib_genmarshal glib-2.0` +diff --git a/gupnp-igd-1.0-uninstalled.pc.in b/gupnp-igd-1.0-uninstalled.pc.in +index 483956f..6db3bee 100644 +--- a/gupnp-igd-1.0-uninstalled.pc.in ++++ b/gupnp-igd-1.0-uninstalled.pc.in +@@ -5,7 +5,7 @@ includedir=${pcfiledir}/ + + Name: gupnp-igd-1.0 + Description: GUPnP Simple IGD library +-Requires: gupnp-1.0 ++Requires: gupnp-1.2 + Version: @VERSION@ + Libs: ${libdir}/libgupnp-av-1.0.la + Cflags: -I${includedir} +diff --git a/gupnp-igd-1.0.pc.in b/gupnp-igd-1.0.pc.in +index 6660d63..aa74ed3 100644 +--- a/gupnp-igd-1.0.pc.in ++++ b/gupnp-igd-1.0.pc.in +@@ -5,7 +5,7 @@ includedir=@includedir@ + + Name: gupnp-igd-1.0 + Description: GUPnP Simple IGD library +-Requires: gupnp-1.0 ++Requires: gupnp-1.2 + Version: @VERSION@ + Libs: -L${libdir} -lgupnp-igd-1.0 + Cflags: -I${includedir}/gupnp-igd-1.0 +diff --git a/libgupnp-igd/Makefile.am b/libgupnp-igd/Makefile.am +index fe020b5..e10d857 100644 +--- a/libgupnp-igd/Makefile.am ++++ b/libgupnp-igd/Makefile.am +@@ -60,7 +60,7 @@ GUPnPIgd_1_0_gir_VERSION = 1.0 + GUPnPIgd_1_0_gir_LIBS = $(lib_LTLIBRARIES) + GUPnPIgd_1_0_gir_FILES = $(libgupnp_igd_1_0_la_SOURCES) $(libgupnp_igd_inc_HEADERS) + GUPnPIgd_1_0_gir_INCLUDES=GObject-2.0 +-GUPnPIgd_1_0_gir_PACKAGES=gupnp-1.0 ++GUPnPIgd_1_0_gir_PACKAGES=gupnp-1.2 + GUPnPIgd_1_0_gir_CFLAGS=-I$(srcdir) -I$(top_srcdir) + + if HAVE_INTROSPECTION +diff --git a/tests/gtest/gupnp-simple-igd.c b/tests/gtest/gupnp-simple-igd.c +index 9b32b2a..d051d13 100644 +--- a/tests/gtest/gupnp-simple-igd.c ++++ b/tests/gtest/gupnp-simple-igd.c +@@ -273,13 +273,14 @@ run_gupnp_simple_igd_test (GMainContext *mainctx, GUPnPSimpleIgd *igd, + GUPnPDeviceInfo *subdev1; + GUPnPDeviceInfo *subdev2; + const gchar *xml_path = "."; ++ GError *error = NULL; + + g_signal_connect (igd, "context-available", + G_CALLBACK (ignore_non_localhost), NULL); + + if (mainctx) + g_main_context_push_thread_default (mainctx); +- context = gupnp_context_new (NULL, "lo", 0, NULL); ++ context = gupnp_context_new ("lo", 0, NULL); + g_assert (context); + + if (g_getenv ("XML_PATH")) +@@ -293,8 +294,9 @@ run_gupnp_simple_igd_test (GMainContext *mainctx, GUPnPSimpleIgd *igd, + gupnp_context_host_path (context, "WANPPPConnection.xml", "/WANPPPConnection.xml"); + */ + +- dev = gupnp_root_device_new (context, "InternetGatewayDevice.xml", xml_path); ++ dev = gupnp_root_device_new (context, "InternetGatewayDevice.xml", xml_path, &error); + g_assert (dev); ++ g_assert (error == NULL); + + subdev1 = gupnp_device_info_get_device (GUPNP_DEVICE_INFO (dev), + "urn:schemas-upnp-org:device:WANDevice:1"); +-- +2.25.1 + diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.4.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.5.bb similarity index 63% rename from meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.4.bb rename to meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.5.bb index 0aa594dc78..1a98ace80c 100644 --- a/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.4.bb +++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.5.bb @@ -3,11 +3,13 @@ LICENSE = "LGPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ file://libgupnp-igd/gupnp-simple-igd.c;beginline=1;endline=21;md5=aa292c0d9390463a6e1055dc5fc68e80" -DEPENDS = "glib-2.0 gupnp sqlite3" +DEPENDS = "glib-2.0 gssdp gupnp sqlite3" -SRC_URI = "http://download.gnome.org/sources/${BPN}/0.2/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "124371136b5a7b1056a3681780a62772" -SRC_URI[sha256sum] = "38c4a6d7718d17eac17df95a3a8c337677eda77e58978129ad3182d769c38e44" +SRC_URI = "http://download.gnome.org/sources/${BPN}/0.2/${BPN}-${PV}.tar.xz \ + file://0001-Swtich-to-new-GUPnP-API.patch \ + " +SRC_URI[md5sum] = "d164e096d0f140bb1f5d9503727b424a" +SRC_URI[sha256sum] = "8b4a1aa38bacbcac2c1755153147ead7ee9af7d4d1f544b6577cfc35e10e3b20" inherit autotools pkgconfig gtk-doc gobject-introspection -- 2.25.1 From raj.khem at gmail.com Tue Feb 18 06:23:48 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 17 Feb 2020 22:23:48 -0800 Subject: [oe] [meta-multimedia][PATCH 8/8] gupnp-av: Upgrade to 0.12.11 In-Reply-To: <20200218062348.3742529-1-raj.khem@gmail.com> References: <20200218062348.3742529-1-raj.khem@gmail.com> Message-ID: <20200218062348.3742529-8-raj.khem@gmail.com> Signed-off-by: Khem Raj Cc: Andreas M?ller --- .../gupnp/{gupnp-av_0.12.10.bb => gupnp-av_0.12.11.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-multimedia/recipes-connectivity/gupnp/{gupnp-av_0.12.10.bb => gupnp-av_0.12.11.bb} (65%) diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.10.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.11.bb similarity index 65% rename from meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.10.bb rename to meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.11.bb index cfd0227e47..1881656b47 100644 --- a/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.10.bb +++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.11.bb @@ -1,7 +1,7 @@ require gupnp-av.inc SRC_URI = "${GNOME_MIRROR}/${BPN}/0.12/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "215f626508d76b767f5da7c9b92e87d8" -SRC_URI[sha256sum] = "8038ef84dddbe7ad91c205bf91dddf684f072df8623f39b6555a6bb72837b85a" +SRC_URI[md5sum] = "f09e99ae20271b0a8cadce806098ae8b" +SRC_URI[sha256sum] = "689dcf1492ab8991daea291365a32548a77d1a2294d85b33622b55cca9ce6fdc" LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ file://libgupnp-av/gupnp-av.h;beginline=1;endline=22;md5=2b47b7b5f799d2ebabe62b895e848820" -- 2.25.1 From raj.khem at gmail.com Tue Feb 18 06:25:59 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 17 Feb 2020 22:25:59 -0800 Subject: [oe] [meta-python][PATCH 1/3] python3-pyflakes: Add python3 version Message-ID: <20200218062601.3743291-1-raj.khem@gmail.com> Signed-off-by: Khem Raj --- .../python/python3-pyflakes_2.1.1.bb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 meta-python/recipes-devtools/python/python3-pyflakes_2.1.1.bb diff --git a/meta-python/recipes-devtools/python/python3-pyflakes_2.1.1.bb b/meta-python/recipes-devtools/python/python3-pyflakes_2.1.1.bb new file mode 100644 index 0000000000..c138822400 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pyflakes_2.1.1.bb @@ -0,0 +1,16 @@ +SUMMARY = "passive checker of Python programs" +HOMEPAGE = "https://github.com/dreamhost/cliff" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://README.rst;md5=5127315117a8561a1504343d59620647" + +SRC_URI[md5sum] = "a0f71a15724e553c46e03ba5ed56703c" +SRC_URI[sha256sum] = "d976835886f8c5b31d47970ed689944a0262b5f3afa00a5a7b4dc81e5449f8a2" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-prettytable \ + ${PYTHON_PN}-cmd2 \ + ${PYTHON_PN}-pyparsing" + +BBCLASSEXTEND = "native nativesdk" -- 2.25.1 From raj.khem at gmail.com Tue Feb 18 06:26:00 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 17 Feb 2020 22:26:00 -0800 Subject: [oe] [meta-networking][PATCH 2/3] netplan: rdep on python3 version of pyflakes In-Reply-To: <20200218062601.3743291-1-raj.khem@gmail.com> References: <20200218062601.3743291-1-raj.khem@gmail.com> Message-ID: <20200218062601.3743291-2-raj.khem@gmail.com> Signed-off-by: Khem Raj --- meta-networking/recipes-connectivity/netplan/netplan_0.98.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-networking/recipes-connectivity/netplan/netplan_0.98.bb b/meta-networking/recipes-connectivity/netplan/netplan_0.98.bb index 860762c494..db029a4b8a 100644 --- a/meta-networking/recipes-connectivity/netplan/netplan_0.98.bb +++ b/meta-networking/recipes-connectivity/netplan/netplan_0.98.bb @@ -19,7 +19,7 @@ SRC_URI = " \ " DEPENDS = "glib-2.0 libyaml" -RDEPENDS_${PN} = "python3 python3-core python3-pyyaml python3-netifaces python3-nose python3-coverage python3-pycodestyle python-pyflakes util-linux-libuuid" +RDEPENDS_${PN} = "python3 python3-core python3-pyyaml python3-netifaces python3-nose python3-coverage python3-pycodestyle python3-pyflakes util-linux-libuuid" inherit pkgconfig systemd -- 2.25.1 From raj.khem at gmail.com Tue Feb 18 06:26:01 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 17 Feb 2020 22:26:01 -0800 Subject: [oe] [meta-oe][PATCH 3/3] rsyslog: Use python3 in ptests In-Reply-To: <20200218062601.3743291-1-raj.khem@gmail.com> References: <20200218062601.3743291-1-raj.khem@gmail.com> Message-ID: <20200218062601.3743291-3-raj.khem@gmail.com> Adjusts rdeps accordingly Signed-off-by: Khem Raj --- meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb b/meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb index 29bba2d9a7..f82caf7b5c 100644 --- a/meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb +++ b/meta-oe/recipes-extended/rsyslog/rsyslog_8.1911.0.bb @@ -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 @@ -186,6 +192,6 @@ VALGRIND_riscv64 = "" 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}" -- 2.25.1 From raj.khem at gmail.com Tue Feb 18 06:30:46 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 17 Feb 2020 22:30:46 -0800 Subject: [oe] [meta-oe][PATCH v1 3/4] BCC: Add build recipe In-Reply-To: <20200218052544.9467-4-leo.yan@linaro.org> References: <20200218052544.9467-1-leo.yan@linaro.org> <20200218052544.9467-4-leo.yan@linaro.org> Message-ID: On Mon, Feb 17, 2020 at 9:27 PM Leo Yan wrote: > > From: Sumit Garg > > BPF Compiler Collection (BCC) is a toolkit for creating efficient kernel > tracing and manipulation programs, and includes versatile tools and > examples which based on eBPF. This tool is very widely used on server > section, but we also can use it for embedded system, e.g. use its > function trace utilities (trace.py and argdist.py) to trace kernel > function parameters and return values. > > This patch adds recipe for BCC version 0.12.0. This patch also contains > a patch to change cmake file so can look for libraries and headers which > are installed in target sysroot-recipe path for cross compilation. > > Signed-off-by: Sumit Garg > Co-developed-by: Leo Yan > --- > ...-with-OE-LLVM-cross-compiled-package.patch | 32 ++++++++++++++++ > meta-oe/recipes-devtools/bcc/bcc_0.12.0.bb | 37 +++++++++++++++++++ > 2 files changed, 69 insertions(+) > create mode 100644 meta-oe/recipes-devtools/bcc/bcc/0001-Allow-to-build-with-OE-LLVM-cross-compiled-package.patch > create mode 100644 meta-oe/recipes-devtools/bcc/bcc_0.12.0.bb > > diff --git a/meta-oe/recipes-devtools/bcc/bcc/0001-Allow-to-build-with-OE-LLVM-cross-compiled-package.patch b/meta-oe/recipes-devtools/bcc/bcc/0001-Allow-to-build-with-OE-LLVM-cross-compiled-package.patch > new file mode 100644 > index 000000000..b5acadc1b > --- /dev/null > +++ b/meta-oe/recipes-devtools/bcc/bcc/0001-Allow-to-build-with-OE-LLVM-cross-compiled-package.patch > @@ -0,0 +1,32 @@ > +From 93cf25ba663e68a6a6f4237fbe0ef8349b3f37ef Mon Sep 17 00:00:00 2001 > +From: Sumit Garg > +Date: Fri, 14 Feb 2020 07:40:11 +0000 > +Subject: [PATCH] Allow to build with OE LLVM cross compiled package > + > +The default LLVM cmake package requires all libraries, headers and tools > +to be present but in case of cross compilation, OE only provides > +target specific libraries and headers and requires native llvm tools. > + > +So instead of looking for a complete llvm package, look for libraries and > +headers which are installed in target sysroot-recipe path. > + > +Signed-off-by: Sumit Garg > +--- > + CMakeLists.txt | 2 -- > + 1 file changed, 2 deletions(-) > + > +diff --git a/CMakeLists.txt b/CMakeLists.txt > +index 7bd0f3b2..6f1f12c0 100644 > +--- a/CMakeLists.txt > ++++ b/CMakeLists.txt > +@@ -39,8 +39,6 @@ endif() > + if(NOT PYTHON_ONLY AND ENABLE_CLANG_JIT) > + find_package(BISON) > + find_package(FLEX) > +-find_package(LLVM REQUIRED CONFIG) > +-message(STATUS "Found LLVM: ${LLVM_INCLUDE_DIRS} ${LLVM_PACKAGE_VERSION}") > + find_package(LibElf REQUIRED) > + > + # clang is linked as a library, but the library path searching is > +-- > +2.17.1 > diff --git a/meta-oe/recipes-devtools/bcc/bcc_0.12.0.bb b/meta-oe/recipes-devtools/bcc/bcc_0.12.0.bb > new file mode 100644 > index 000000000..687fb64c7 > --- /dev/null > +++ b/meta-oe/recipes-devtools/bcc/bcc_0.12.0.bb > @@ -0,0 +1,37 @@ > +SUMMARY = "BPF Compiler Collection (BCC)" > +HOMEPAGE = "https://github.com/iovisor/bcc" > +LICENSE = "Apache-2.0" > +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e3fc50a88d0a364313df4b21ef20c29e" > + > +DEPENDS += "bison-native \ > + ninja-native \ > + elfutils-native \ > + flex-native \ > + ${MLPREFIX}elfutils \ > + ${MLPREFIX}binutils \ > + ${MLPREFIX}flex \ > + luajit \ > + clang \ > + " > + this will add meta-clang dependency directly into meta-oe, which is not desired is it possible to make it optional or perhaps marked when meta-clang is not in BBLAYERS > +RDEPENDS_${PN} += "bash python" > + > +SRC_URI = "git://github.com/iovisor/bcc \ > + file://0001-Allow-to-build-with-OE-LLVM-cross-compiled-package.patch \ > + " > +SRCREV = "368a5b0714961953f3e3f61607fa16cb71449c1b" > + > +S = "${WORKDIR}/git" > + > +inherit cmake > + > +EXTRA_OECMAKE = " \ > + -DCMAKE_INSTALL_PREFIX=/usr \ > + -DENABLE_LLVM_SHARED=ON \ > + -DENABLE_CLANG_JIT=ON \ > + -DENABLE_MAN=OFF \ > + -DLLVM_PACKAGE_VERSION=${LLVMVERSION} \ > + -DPYTHON_CMD=python3 \ > +" > + > +FILES_${PN} += "${libdir}/python*/dist-packages" > -- > 2.17.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From wangmy at cn.fujitsu.com Tue Feb 18 14:31:11 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Tue, 18 Feb 2020 06:31:11 -0800 Subject: [oe] [meta-networking][PATCH] cifs-utils: upgrade 6.9 -> 6.10 Message-ID: <1582036271-94134-1-git-send-email-wangmy@cn.fujitsu.com> add the following patch to solve build error: 0001-Bugfix-Modify-the-dir-of-install-exec-hook-and.patch Error message: (cd /sbin && ln -sf mount.cifs mount.smb3) /yocto/work001/fnst/wangmy/build/tmp/hosttools/install -c mount.cifs '/yocto/work001/fnst/wangmy/build/tmp/work/core2-64-poky-linux/cifs-utils/6.10-r0/image/sbin' make install-data-hook ln: failed to create symbolic link 'mount.smb3': Permission denied Signed-off-by: Wang Mingyu --- ...ify-the-dir-of-install-exec-hook-and.patch | 43 +++++++++++++++++++ .../{cifs-utils_6.9.bb => cifs-utils_6.10.bb} | 8 +++- 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 meta-networking/recipes-support/cifs/cifs-utils/0001-Bugfix-Modify-the-dir-of-install-exec-hook-and.patch rename meta-networking/recipes-support/cifs/{cifs-utils_6.9.bb => cifs-utils_6.10.bb} (89%) diff --git a/meta-networking/recipes-support/cifs/cifs-utils/0001-Bugfix-Modify-the-dir-of-install-exec-hook-and.patch b/meta-networking/recipes-support/cifs/cifs-utils/0001-Bugfix-Modify-the-dir-of-install-exec-hook-and.patch new file mode 100644 index 000000000..233ae40ce --- /dev/null +++ b/meta-networking/recipes-support/cifs/cifs-utils/0001-Bugfix-Modify-the-dir-of-install-exec-hook-and.patch @@ -0,0 +1,43 @@ +From f61f5f8a328207867b5c523b1c6bef6aaecaab88 Mon Sep 17 00:00:00 2001 +From: Wang Mingyu +Date: Sat, 15 Feb 2020 16:05:58 +0800 +Subject: [PATCH] Bugfix: Modify the dir of install-exec-hook and + install-data-hook + +Error message: +(cd /sbin && ln -sf mount.cifs mount.smb3) + /yocto/work001/fnst/wangmy/build/tmp/hosttools/install -c mount.cifs +'/yocto/work001/fnst/wangmy/build/tmp/work/core2-64-poky-linux/cifs-utils/6.10-r0/image/sbin' +make install-data-hook +ln: failed to create symbolic link 'mount.smb3': Permission denied + +Upstream-Status: Pending + +Signed-off-by: Wang Mingyu +--- + Makefile.am | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index fe9cd34..e9be6b3 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -119,11 +119,11 @@ endif + SUBDIRS = contrib + + install-exec-hook: +- (cd $(ROOTSBINDIR) && ln -sf mount.cifs mount.smb3) ++ (cd $(DESTDIR)$(ROOTSBINDIR) && ln -sf mount.cifs mount.smb3) + + install-data-hook: +- (cd $(man8dir) && ln -sf mount.cifs.8 mount.smb3.8) ++ (test -n "$(man_MANS)" || exit 0; cd $(DESTDIR)$(man8dir) && ln -sf mount.cifs.8 mount.smb3.8) + + uninstall-hook: +- (cd $(ROOTSBINDIR) && rm -f $(ROOTSBINDIR)/mount.smb3) +- (cd $(man8dir) && rm -f $(man8dir)/mount.smb3.8) ++ (cd $(DESTDIR)$(ROOTSBINDIR) && rm -f $(DESTDIR)$(ROOTSBINDIR)/mount.smb3) ++ (test -n "$(man_MANS)" || exit 0; cd $(DESTDIR)$(man8dir) && rm -f $(DESTDIR)$(man8dir)/mount.smb3.8) +-- +2.17.1 + diff --git a/meta-networking/recipes-support/cifs/cifs-utils_6.9.bb b/meta-networking/recipes-support/cifs/cifs-utils_6.10.bb similarity index 89% rename from meta-networking/recipes-support/cifs/cifs-utils_6.9.bb rename to meta-networking/recipes-support/cifs/cifs-utils_6.10.bb index 51dcb23d1..8d82ee454 100644 --- a/meta-networking/recipes-support/cifs/cifs-utils_6.9.bb +++ b/meta-networking/recipes-support/cifs/cifs-utils_6.10.bb @@ -4,9 +4,9 @@ SECTION = "otherosfs" LICENSE = "GPLv3 & LGPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -PV = "6.9" +PV = "6.10" -SRCREV = "9a8c21ad9e4510a83a3a41f7a04f763a4fe9ec09" +SRCREV = "5ff5fc2ecc10353fd39ad508db5c2828fd2d8d9a" SRC_URI = "git://git.samba.org/cifs-utils.git" S = "${WORKDIR}/git" @@ -22,6 +22,10 @@ PACKAGECONFIG[cifsidmap] = "--enable-cifsidmap,--disable-cifsidmap,keyutils samb PACKAGECONFIG[cifsacl] = "--enable-cifsacl,--disable-cifsacl,samba" PACKAGECONFIG[pam] = "--enable-pam --with-pamdir=${base_libdir}/security,--disable-pam,libpam keyutils" +SRC_URI += " \ + file://0001-Bugfix-Modify-the-dir-of-install-exec-hook-and.patch \ + " + inherit autotools pkgconfig do_install_append() { -- 2.17.1 From leo.yan at linaro.org Tue Feb 18 07:27:26 2020 From: leo.yan at linaro.org (Leo Yan) Date: Tue, 18 Feb 2020 15:27:26 +0800 Subject: [oe] [meta-oe][PATCH v1 3/4] BCC: Add build recipe In-Reply-To: References: <20200218052544.9467-1-leo.yan@linaro.org> <20200218052544.9467-4-leo.yan@linaro.org> Message-ID: <20200218072726.GB9945@leoy-ThinkPad-X240s> Hi Khem, On Mon, Feb 17, 2020 at 10:30:46PM -0800, Khem Raj wrote: [...] > > +DEPENDS += "bison-native \ > > + ninja-native \ > > + elfutils-native \ > > + flex-native \ > > + ${MLPREFIX}elfutils \ > > + ${MLPREFIX}binutils \ > > + ${MLPREFIX}flex \ > > + luajit \ > > + clang \ > > + " > > + > > this will add meta-clang dependency directly into meta-oe, which is not desired > is it possible to make it optional or perhaps marked when meta-clang > is not in BBLAYERS Thanks a lot for reviewing. clang is mandotory for BCC to compile eBPF programs, so I think we cannot build clang as optional for BCC. For marking the recipe when meta-clang is not in BBLAYERS, I searched with google but seems 'LAYERDEPENDS' and 'BBMASK' both are not suitable for this case. Could you give more detailed info for how to do this? Thanks, Leo From raj.khem at gmail.com Tue Feb 18 16:22:33 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 18 Feb 2020 08:22:33 -0800 Subject: [oe] zeus merge request In-Reply-To: References: Message-ID: On Mon, Feb 17, 2020 at 4:21 PM akuster808 wrote: > > The following changes since commit e855ecc6d35677e79780adc57b2552213c995731: > > ruli: Fix install step and build samples too (2020-01-05 14:44:11 -0800) > > are available in the Git repository at: > > https://git.openembedded.org/meta-openembedded zeus-next > merged thanks > for you to fetch changes up to bb65c27a772723dfe2c15b5e1b27bcc1a1ed884c: > > fluentbit: Fix packaging in multilib env (2020-01-30 18:38:10 -0800) > > ---------------------------------------------------------------- > Gianfranco Costamagna (3): > cpprest: fix cmake installation directory > websocketpp: add various upstream accepted and proposed patches to > fix various issues, including: > websocketpp: refresh clang patch > > Kai Kang (1): > adduser: set default shell with /sbin/nologin > > Khem Raj (9): > nodejs: libatomic patch should be target specific > websocketapp: Fix multilib build > websocketpp: Fix clang specific flags in cmake files > squid: Link with libatomic on riscv > grpc: Link with libatomic on clang/x86 > grpc: Link with libatomic on powerpc > grpc: Link with libatomic on riscv > netdata: Add libatomic to link step > fluentbit: Fix packaging in multilib env > > Peter Kjellerstedt (1): > gitpkgv.bbclass: Add support for extending the supported tag formats > > Sumit Garg (1): > mariadb: fix library LZ4 lookup > > Trevor Gamblin (2): > python-twisted: add required RDEPENDS for twistd > pyhamcrest: add python3 version of recipe > > Yi Zhao (1): > libldb: upgrade 1.5.5 -> 1.5.6 > > Zhixiong Chi (1): > dnsmasq: CVE-2019-14834 > > meta-networking/recipes-daemons/squid/squid_4.6.bb | 2 + > .../recipes-devtools/grpc/grpc_1.24.1.bb | 16 +++ > .../0001-dnsmasq-fix-memory-leak-in-helper-c.patch | 49 ++++++++ > .../recipes-support/dnsmasq/dnsmasq_2.80.bb | 1 + > .../libldb/{libldb_1.5.5.bb => libldb_1.5.6.bb} | 4 +- > meta-oe/classes/gitpkgv.bbclass | 14 ++- > meta-oe/recipes-dbs/mysql/mariadb.inc | 1 + > .../mariadb/0001-Fix-library-LZ4-lookup.patch | 30 +++++ > meta-oe/recipes-devtools/nodejs/nodejs_10.16.3.bb | 2 +- > .../fluentbit/fluentbit/cmake_multilib.patch | 18 +++ > .../fluentbit/fluentbit_0.12.19.bb | 1 + > meta-oe/recipes-support/cpprest/cpprest_2.10.14.bb | 2 +- > .../0001-Correct-clang-compiler-flags.patch | 32 +++++ > .../0001-cmake-Use-GNUInstallDirs.patch | 35 ++++++ > .../websocketpp/websocketpp-0.8.1/771.patch | 22 ++++ > .../websocketpp/websocketpp-0.8.1/842.patch | 30 +++++ > .../websocketpp/websocketpp-0.8.1/855.patch | 23 ++++ > .../websocketpp/websocketpp-0.8.1/857.patch | 132 > +++++++++++++++++++++ > .../websocketpp/websocketpp_0.8.1.bb | 17 ++- > meta-perl/recipes-perl/adduser/adduser_3.118.bb | 1 + > ...duser-set-default-shell-with-sbin-nologin.patch | 34 ++++++ > .../recipes-devtools/python/python-twisted.inc | 18 ++- > .../python/python3-pyhamcrest_1.9.0.bb | 10 ++ > .../recipes-webadmin/netdata/netdata_git.bb | 2 + > 24 files changed, 486 insertions(+), 10 deletions(-) > create mode 100644 > meta-networking/recipes-support/dnsmasq/dnsmasq/0001-dnsmasq-fix-memory-leak-in-helper-c.patch > rename meta-networking/recipes-support/libldb/{libldb_1.5.5.bb => > libldb_1.5.6.bb} (95%) > create mode 100644 > meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch > create mode 100644 > meta-oe/recipes-extended/fluentbit/fluentbit/cmake_multilib.patch > create mode 100644 > meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Correct-clang-compiler-flags.patch > create mode 100644 > meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-cmake-Use-GNUInstallDirs.patch > create mode 100644 > meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/771.patch > create mode 100644 > meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/842.patch > create mode 100644 > meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/855.patch > create mode 100644 > meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/857.patch > create mode 100644 > meta-perl/recipes-perl/adduser/files/0001-adduser-set-default-shell-with-sbin-nologin.patch > create mode 100644 > meta-python/recipes-devtools/python/python3-pyhamcrest_1.9.0.bb > ~ > From raj.khem at gmail.com Tue Feb 18 16:49:17 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 18 Feb 2020 08:49:17 -0800 Subject: [oe] [meta-multimedia][PATCH 1/2] dleyna-core: Update to latest to support gupnp 1.2 Message-ID: <20200218164918.4095105-1-raj.khem@gmail.com> License-Update: Changed copyright years Signed-off-by: Khem Raj --- .../recipes-multimedia/dleyna/dleyna-core_0.6.0.bb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb index a3b2793721..8939cd36e2 100644 --- a/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb +++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb @@ -7,12 +7,14 @@ HOMEPAGE = "https://01.org/dleyna/" LICENSE = "LGPLv2.1+" LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ - file://libdleyna/core/core.c;endline=21;md5=139cba0c634344abc9456694fbb5083b" + file://libdleyna/core/core.c;endline=21;md5=68602998351825b0844aae34c684c54e" DEPENDS = "glib-2.0 gupnp" +PV .= "+git${SRCPV}" + SRC_URI = "git://github.com/01org/${BPN}.git" -SRCREV = "27a3786ec013f64fd58243410a60798f824acec3" +SRCREV = "1c6853f5bc697dc0a8774fd70dbc915c4dbe7c5b" S = "${WORKDIR}/git" inherit autotools pkgconfig -- 2.25.1 From raj.khem at gmail.com Tue Feb 18 16:49:18 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 18 Feb 2020 08:49:18 -0800 Subject: [oe] [meta-multimedia][PATCH 2/2] dleyna-server: Bump version to support 1.2 gupnp In-Reply-To: <20200218164918.4095105-1-raj.khem@gmail.com> References: <20200218164918.4095105-1-raj.khem@gmail.com> Message-ID: <20200218164918.4095105-2-raj.khem@gmail.com> Signed-off-by: Khem Raj --- .../recipes-multimedia/dleyna/dleyna-server_0.6.0.bb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb index a8e5406d0a..e31b7aea2a 100644 --- a/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb +++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb @@ -11,8 +11,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ DEPENDS = "glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4 libxml2 dleyna-core" RDEPENDS_${PN} = "dleyna-connector-dbus" +PV .= "+git${SRCPV}" SRC_URI = "git://github.com/01org/${BPN}.git" -SRCREV = "776950d5d96ac9dbf5c5c47bde8ac06f50a3cf46" +SRCREV = "eb895ae82715e9889a948ffa810c0f828b4f4c76" S = "${WORKDIR}/git" inherit autotools pkgconfig -- 2.25.1 From jonathan.richardson at broadcom.com Tue Feb 18 19:37:33 2020 From: jonathan.richardson at broadcom.com (Jonathan Richardson) Date: Tue, 18 Feb 2020 11:37:33 -0800 Subject: [oe] [meta-oe][PATCH] fio: upgrade 3.17 -> 3.18 In-Reply-To: References: <1581723823-21171-1-git-send-email-wangmy@cn.fujitsu.com> <1581723823-21171-2-git-send-email-wangmy@cn.fujitsu.com> Message-ID: I was just about to submit a patch to remove the disabling of compiler optimizations to fio. On our cortex A72 this kills the performance of fio by 25%. That would solve this build issue also. I haven't seen any crashes with fio. If there are some architecture specific issues can the removal of optimizations be arch specific only and not the default? On Sat, Feb 15, 2020 at 12:40 AM Khem Raj wrote: > > https://errors.yoctoproject.org/Errors/Details/391129/ > > On Fri, Feb 14, 2020 at 8:11 AM Wang Mingyu wrote: > > > > Signed-off-by: Wang Mingyu > > --- > > meta-oe/recipes-benchmark/fio/{fio_3.17.bb => fio_3.18.bb} | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > rename meta-oe/recipes-benchmark/fio/{fio_3.17.bb => fio_3.18.bb} (96%) > > > > diff --git a/meta-oe/recipes-benchmark/fio/fio_3.17.bb b/meta-oe/recipes-benchmark/fio/fio_3.18.bb > > similarity index 96% > > rename from meta-oe/recipes-benchmark/fio/fio_3.17.bb > > rename to meta-oe/recipes-benchmark/fio/fio_3.18.bb > > index 482928c31..b6484290f 100644 > > --- a/meta-oe/recipes-benchmark/fio/fio_3.17.bb > > +++ b/meta-oe/recipes-benchmark/fio/fio_3.18.bb > > @@ -22,7 +22,7 @@ PACKAGECONFIG_NUMA_armeb = "" > > PACKAGECONFIG ??= "${PACKAGECONFIG_NUMA}" > > PACKAGECONFIG[numa] = ",--disable-numa,numactl" > > > > -SRCREV = "08ce9dc20b8a4e55db7af6d869ddfa49b4a02d03" > > +SRCREV = "ac694f66968fe7b18c820468abd8333f3df333fb" > > SRC_URI = "git://git.kernel.dk/fio.git \ > > file://0001-update-the-interpreter-paths.patch \ > > " > > -- > > 2.17.1 > > > > > > > > -- > > _______________________________________________ > > Openembedded-devel mailing list > > Openembedded-devel at lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From jonathan.richardson at broadcom.com Tue Feb 18 21:07:51 2020 From: jonathan.richardson at broadcom.com (Jonathan Richardson) Date: Tue, 18 Feb 2020 13:07:51 -0800 Subject: [oe] [meta-oe] [PATCH v2 1/1] fio: remove disabling of compiler optimizations Message-ID: <20200218210751.8538-1-jonathan.richardson@broadcom.com> Disabling compiler optimizations affects fio performance by 25-30% so remove this from EXTRA_OECONF. Disabling of optimizations should be machine specific if there are bugs in the code instead of the default. Optimizations were removed in this commit: https://git.openembedded.org/meta-openembedded/commit/?id=739349da0826221f98648b64b693f9ae33e7d4ea Signed-off-by: Jonathan Richardson --- meta-oe/recipes-benchmark/fio/fio_3.18.bb | 1 - 1 file changed, 1 deletion(-) diff --git a/meta-oe/recipes-benchmark/fio/fio_3.18.bb b/meta-oe/recipes-benchmark/fio/fio_3.18.bb index b6484290f..2c461b8c5 100644 --- a/meta-oe/recipes-benchmark/fio/fio_3.18.bb +++ b/meta-oe/recipes-benchmark/fio/fio_3.18.bb @@ -33,7 +33,6 @@ S = "${WORKDIR}/git" DISABLE_STATIC = "" EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}'" -EXTRA_OECONF = "--disable-optimizations" do_configure() { ./configure ${EXTRA_OECONF} -- 2.17.1 From jpuhlman at mvista.com Tue Feb 18 21:55:22 2020 From: jpuhlman at mvista.com (Jeremy Puhlman) Date: Tue, 18 Feb 2020 13:55:22 -0800 Subject: [oe] [meta-oe][PATCH] mariadb: Add pam_auth to server package. Message-ID: <20200218215522.13099-1-jpuhlman@mvista.com> From: "Jeremy A. Puhlman" When pam is enabled, the pam plugin in pulled into the server package but not the auth tool which results in following error on boot: Starting to install database for mariadb chown: cannot access '/usr/lib/plugin/auth_pam_tool_dir': No such file or directory Cannot change ownership of the '/usr/lib/plugin/auth_pam_tool_dir' directory to the 'mysql' user. Check that you have the necessary permissions and try again. Signed-off-by: Jeremy A. Puhlman Signed-off-by: Jeremy Puhlman --- meta-oe/recipes-dbs/mysql/mariadb.inc | 1 + 1 file changed, 1 insertion(+) diff --git a/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-oe/recipes-dbs/mysql/mariadb.inc index 23de69dd2..6888c64e3 100644 --- a/meta-oe/recipes-dbs/mysql/mariadb.inc +++ b/meta-oe/recipes-dbs/mysql/mariadb.inc @@ -299,6 +299,7 @@ FILES_${PN}-server = "\ ${sbindir}/ndbd \ ${sbindir}/ndb_mgmd \ ${libdir}/plugin/*.so \ + ${libdir}/plugin/auth_pam_tool_dir/auth_pam_tool \ ${datadir}/mysql/ \ ${localstatedir}/mysql/ \ ${sysconfdir}/init.d/mysqld \ -- 2.20.1 From bunk at stusta.de Tue Feb 18 22:09:22 2020 From: bunk at stusta.de (Adrian Bunk) Date: Wed, 19 Feb 2020 00:09:22 +0200 Subject: [oe] [meta-oe][PATCH] fio: upgrade 3.17 -> 3.18 In-Reply-To: References: <1581723823-21171-1-git-send-email-wangmy@cn.fujitsu.com> <1581723823-21171-2-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <20200218220922.GA24326@localhost> On Tue, Feb 18, 2020 at 11:37:33AM -0800, Jonathan Richardson via Openembedded-devel wrote: > I was just about to submit a patch to remove the disabling of compiler > optimizations to fio. On our cortex A72 this kills the performance of fio > by 25%. That would solve this build issue also. >... > > https://errors.yoctoproject.org/Errors/Details/391129/ >... t/io_uring.c:103:17: error: '__NR_sys_io_uring_register' undeclared (first use in this function); did you mean 'SYS_io_uring_register'? This error does not look related to optimization. This looks like https://github.com/axboe/fio/issues/923 cu Adrian From jonathan.richardson at broadcom.com Wed Feb 19 00:37:03 2020 From: jonathan.richardson at broadcom.com (Jonathan Richardson) Date: Tue, 18 Feb 2020 16:37:03 -0800 Subject: [oe] [meta-oe][PATCH] fio: upgrade 3.17 -> 3.18 In-Reply-To: <20200218220922.GA24326@localhost> References: <1581723823-21171-1-git-send-email-wangmy@cn.fujitsu.com> <1581723823-21171-2-git-send-email-wangmy@cn.fujitsu.com> <20200218220922.GA24326@localhost> Message-ID: On Tue, Feb 18, 2020 at 2:09 PM Adrian Bunk wrote: > > On Tue, Feb 18, 2020 at 11:37:33AM -0800, Jonathan Richardson via Openembedded-devel wrote: > > I was just about to submit a patch to remove the disabling of compiler > > optimizations to fio. On our cortex A72 this kills the performance of fio > > by 25%. That would solve this build issue also. > >... > > > https://errors.yoctoproject.org/Errors/Details/391129/ > >... > > t/io_uring.c:103:17: error: '__NR_sys_io_uring_register' undeclared (first use in this function); did you mean 'SYS_io_uring_register'? > > This error does not look related to optimization. > > This looks like https://github.com/axboe/fio/issues/923 Yes you're right. The error is another issue. The message I was referring to is actually only a warning. It should fix the warning only: 397 | # warning _FORTIFY_SOURCE requires compiling with optimization (-O) From raj.khem at gmail.com Wed Feb 19 00:50:55 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 18 Feb 2020 16:50:55 -0800 Subject: [oe] [meta-oe][PATCH 1/4] graphviz: Depend on py3 at runtime Message-ID: <20200219005058.2921658-1-raj.khem@gmail.com> These packages are empty but python scripts generally do not depend on python2 Signed-off-by: Khem Raj --- meta-oe/recipes-graphics/graphviz/graphviz_2.40.1.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-oe/recipes-graphics/graphviz/graphviz_2.40.1.bb b/meta-oe/recipes-graphics/graphviz/graphviz_2.40.1.bb index 176cf4498a..12ecb99091 100644 --- a/meta-oe/recipes-graphics/graphviz/graphviz_2.40.1.bb +++ b/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" -- 2.25.1 From raj.khem at gmail.com Wed Feb 19 00:50:56 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 18 Feb 2020 16:50:56 -0800 Subject: [oe] [meta-oe][PATCH 2/4] pm-graph: Renamed from analyze-suspend In-Reply-To: <20200219005058.2921658-1-raj.khem@gmail.com> References: <20200219005058.2921658-1-raj.khem@gmail.com> Message-ID: <20200219005058.2921658-2-raj.khem@gmail.com> Moved to tip to get py3 support Point SRC_URI to new location Adjust for name changes Signed-off-by: Khem Raj --- .../pm-graph_5.5.bb} | 12 ++++++++---- .../packagegroups/packagegroup-meta-oe.bb | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) rename meta-oe/recipes-benchmark/{analyze-suspend/analyze-suspend_5.5.bb => pm-graph/pm-graph_5.5.bb} (74%) diff --git a/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_5.5.bb b/meta-oe/recipes-benchmark/pm-graph/pm-graph_5.5.bb similarity index 74% rename from meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_5.5.bb rename to meta-oe/recipes-benchmark/pm-graph/pm-graph_5.5.bb index bb0aad3413..4f6f3bd40c 100644 --- a/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_5.5.bb +++ b/meta-oe/recipes-benchmark/pm-graph/pm-graph_5.5.bb @@ -1,4 +1,4 @@ -SUMMARY = "Analyze Suspend" +SUMMARY = "Analyze Suspend/Resume" DESCRIPTION = "analyze-suspend is a tool for system developers to visualize \ the activity between suspend and resume, allowing them to identify \ inefficiencies and bottlenecks." @@ -14,10 +14,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e" # - CONFIG_FUNCTION_TRACER=y # - CONFIG_FUNCTION_GRAPH_TRACER=y -RDEPENDS_${PN} += "python-core python-datetime python-stringold" +RDEPENDS_${PN} += "python3-core python3-datetime python3-stringold" -SRC_URI = "git://github.com/01org/suspendresume.git;protocol=https" -SRCREV = "cf59527dc24fdd2f314ae4dcaeb3d68a117988f6" +PV .= "+git${SRCPV}" +SRC_URI = "git://github.com/intel/pm-graph;protocol=https" +SRCREV = "3a8cd2fa9aee3afbc7f7e844885ffdcfaf5a1097" S = "${WORKDIR}/git" @@ -27,3 +28,6 @@ do_install() { } BBCLASSEXTEND = "native" + +RPROVIDES_${PN} = "analyze-suspend" + diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb index bad4aa769e..3933619add 100644 --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb +++ b/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 \ + pm-graph 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 \ -- 2.25.1 From raj.khem at gmail.com Wed Feb 19 00:50:57 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 18 Feb 2020 16:50:57 -0800 Subject: [oe] [meta-oe][PATCH 3/4] cfengine: Upgrade to 3.15 In-Reply-To: <20200219005058.2921658-1-raj.khem@gmail.com> References: <20200219005058.2921658-1-raj.khem@gmail.com> Message-ID: <20200219005058.2921658-3-raj.khem@gmail.com> License-Update: Change in Company name Cfengine AS a Norwegian company -> Northern.tech Python3 fixes to needed scripts Signed-off-by: Khem Raj --- .../cfengine/cfengine-masterfiles/python3.patch | 16 ++++++++++++++++ ..._3.12.0.bb => cfengine-masterfiles_3.15.0.bb} | 15 ++++++++++----- .../{cfengine_3.12.0.bb => cfengine_3.15.0.bb} | 10 +++++----- 3 files changed, 31 insertions(+), 10 deletions(-) create mode 100644 meta-oe/recipes-extended/cfengine/cfengine-masterfiles/python3.patch rename meta-oe/recipes-extended/cfengine/{cfengine-masterfiles_3.12.0.bb => cfengine-masterfiles_3.15.0.bb} (74%) rename meta-oe/recipes-extended/cfengine/{cfengine_3.12.0.bb => cfengine_3.15.0.bb} (89%) diff --git a/meta-oe/recipes-extended/cfengine/cfengine-masterfiles/python3.patch b/meta-oe/recipes-extended/cfengine/cfengine-masterfiles/python3.patch new file mode 100644 index 0000000000..a6f6701261 --- /dev/null +++ b/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-oe/recipes-extended/cfengine/cfengine-masterfiles_3.12.0.bb b/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.15.0.bb similarity index 74% rename from meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.12.0.bb rename to meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.15.0.bb index dda6af9c9d..79269d3147 100644 --- a/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.12.0.bb +++ b/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,yum} +} + FILES_${PN} = "${datadir}/cfengine" -RDEPENDS_${PN} += "python-core" +RDEPENDS_${PN} += "python3-core" diff --git a/meta-oe/recipes-extended/cfengine/cfengine_3.12.0.bb b/meta-oe/recipes-extended/cfengine/cfengine_3.15.0.bb similarity index 89% rename from meta-oe/recipes-extended/cfengine/cfengine_3.12.0.bb rename to meta-oe/recipes-extended/cfengine/cfengine_3.15.0.bb index 9d0123d8bd..fa08be3e65 100644 --- a/meta-oe/recipes-extended/cfengine/cfengine_3.12.0.bb +++ b/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" 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" -- 2.25.1 From raj.khem at gmail.com Wed Feb 19 00:50:58 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 18 Feb 2020 16:50:58 -0800 Subject: [oe] [meta-multimedia][PATCH 4/4] dleyna-renderer: Fix build with gupnp 1.2+ In-Reply-To: <20200219005058.2921658-1-raj.khem@gmail.com> References: <20200219005058.2921658-1-raj.khem@gmail.com> Message-ID: <20200219005058.2921658-4-raj.khem@gmail.com> Signed-off-by: Khem Raj --- .../0001-add-gupnp-1.2-API-support.patch | 123 ++++++++++++++++++ .../dleyna/dleyna-renderer_0.6.0.bb | 4 +- 2 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer/0001-add-gupnp-1.2-API-support.patch diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer/0001-add-gupnp-1.2-API-support.patch b/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer/0001-add-gupnp-1.2-API-support.patch new file mode 100644 index 0000000000..8f54658a11 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer/0001-add-gupnp-1.2-API-support.patch @@ -0,0 +1,123 @@ +From 7c945e7960cf7dffd9dd0bb5f7ec6bee4dc0bca3 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 18 Feb 2020 14:17:55 -0800 +Subject: [PATCH] add gupnp 1.2 API support + +Takes from https://git.archlinux.org/svntogit/packages.git/tree/trunk/gupnp-1.2.diff?h=packages/dleyna-renderer +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + configure.ac | 4 +-- + libdleyna/renderer/device.c | 51 +++++++++++++++++++++++++++++++++++-- + libdleyna/renderer/upnp.c | 4 +-- + 3 files changed, 53 insertions(+), 6 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 271ee92..364659d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -38,8 +38,8 @@ LT_LANG([C]) + PKG_PROG_PKG_CONFIG(0.16) + PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.28]) + PKG_CHECK_MODULES([GIO], [gio-2.0 >= 2.28]) +-PKG_CHECK_MODULES([GSSDP], [gssdp-1.0 >= 0.13.2]) +-PKG_CHECK_MODULES([GUPNP], [gupnp-1.0 >= 0.20.5]) ++PKG_CHECK_MODULES([GSSDP], [gssdp-1.2 >= 1.2.0]) ++PKG_CHECK_MODULES([GUPNP], [gupnp-1.2 >= 1.2.0]) + PKG_CHECK_MODULES([GUPNPAV], [gupnp-av-1.0 >= 0.11.5]) + PKG_CHECK_MODULES([GUPNPDLNA], [gupnp-dlna-2.0 >= 0.9.4]) + PKG_CHECK_MODULES([SOUP], [libsoup-2.4 >= 2.28.2]) +diff --git a/libdleyna/renderer/device.c b/libdleyna/renderer/device.c +index 783fb52..c7b9fc3 100644 +--- a/libdleyna/renderer/device.c ++++ b/libdleyna/renderer/device.c +@@ -2121,6 +2121,53 @@ exit: + return; + } + ++typedef struct ++{ ++ GMainLoop *loop; ++ GUPnPServiceIntrospection *introspection; ++ GError **error; ++} GetIntrospectionAsyncData; ++ ++static void ++get_introspection_async_cb (GUPnPServiceInfo *info, ++ GUPnPServiceIntrospection *introspection, ++ const GError *error, ++ gpointer user_data) ++{ ++ GetIntrospectionAsyncData *data = user_data; ++ data->introspection = introspection; ++ if (data->error) ++ *data->error = g_error_copy (error); ++ g_main_loop_quit (data->loop); ++} ++ ++static GUPnPServiceIntrospection * ++_gupnp_service_info_get_introspection (GUPnPServiceInfo *info, ++ GError **error) ++{ ++ GetIntrospectionAsyncData data; ++ GMainContext *context; ++ ++ context = g_main_context_new (); ++ data.loop = g_main_loop_new (context, FALSE); ++ data.error = error; ++ ++ g_main_context_push_thread_default (context); ++ ++ gupnp_service_info_get_introspection_async (info, ++ get_introspection_async_cb, ++ &data); ++ ++ g_main_loop_run (data.loop); ++ ++ g_main_context_pop_thread_default (context); ++ ++ g_main_loop_unref (data.loop); ++ g_main_context_unref (context); ++ ++ return data.introspection; ++} ++ + static gboolean prv_get_av_service_states_values(GUPnPServiceProxy *av_proxy, + GVariant **mpris_tp_speeds, + GPtrArray **upnp_tp_speeds, +@@ -2147,7 +2194,7 @@ static gboolean prv_get_av_service_states_values(GUPnPServiceProxy *av_proxy, + weak_ref = av_proxy; + g_object_add_weak_pointer(G_OBJECT(av_proxy), &weak_ref); + +- introspection = gupnp_service_info_get_introspection( ++ introspection = _gupnp_service_info_get_introspection( + GUPNP_SERVICE_INFO(av_proxy), + &error); + +@@ -2215,7 +2262,7 @@ static gboolean prv_get_rc_service_states_values(GUPnPServiceProxy *rc_proxy, + weak_ref = rc_proxy; + g_object_add_weak_pointer(G_OBJECT(rc_proxy), &weak_ref); + +- introspection = gupnp_service_info_get_introspection( ++ introspection = _gupnp_service_info_get_introspection( + GUPNP_SERVICE_INFO(rc_proxy), + &error); + +diff --git a/libdleyna/renderer/upnp.c b/libdleyna/renderer/upnp.c +index ac1b08a..b762226 100644 +--- a/libdleyna/renderer/upnp.c ++++ b/libdleyna/renderer/upnp.c +@@ -243,8 +243,8 @@ static void prv_server_unavailable_cb(GUPnPControlPoint *cp, + + udn = gupnp_device_info_get_udn((GUPnPDeviceInfo *)proxy); + +- ip_address = gupnp_context_get_host_ip( +- gupnp_control_point_get_context(cp)); ++ ip_address = gssdp_client_get_host_ip( ++ GSSDP_CLIENT(gupnp_control_point_get_context(cp))); + + if (!udn || !ip_address) + goto on_error; +-- +2.25.1 + diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb index b30aee9fbe..642f21bd53 100644 --- a/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb +++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb @@ -11,7 +11,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ DEPENDS = "glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4 dleyna-core" RDEPENDS_${PN} = "dleyna-connector-dbus" -SRC_URI = "git://github.com/01org/${BPN}.git" +SRC_URI = "git://github.com/01org/${BPN}.git \ + file://0001-add-gupnp-1.2-API-support.patch \ + " SRCREV = "50fd1ec9d51328e7dea98874129dc8d6fe3ea1dd" S = "${WORKDIR}/git" -- 2.25.1 From anuj.mittal at intel.com Wed Feb 19 01:40:47 2020 From: anuj.mittal at intel.com (Mittal, Anuj) Date: Wed, 19 Feb 2020 01:40:47 +0000 Subject: [oe] [meta-oe][PATCH 2/4] pm-graph: Renamed from analyze-suspend In-Reply-To: <20200219005058.2921658-2-raj.khem@gmail.com> References: <20200219005058.2921658-1-raj.khem@gmail.com> <20200219005058.2921658-2-raj.khem@gmail.com> Message-ID: Is this different from the one that is already in meta-oe? https://git.openembedded.org/meta-openembedded/tree/meta-oe/recipes-kernel/pm-graph Thanks, Anuj > -----Original Message----- > From: openembedded-devel-bounces at lists.openembedded.org devel-bounces at lists.openembedded.org> On Behalf Of Khem Raj > Sent: Wednesday, February 19, 2020 08:51 AM > To: openembedded-devel at lists.openembedded.org > Subject: [oe] [meta-oe][PATCH 2/4] pm-graph: Renamed from analyze-suspend > > Moved to tip to get py3 support > Point SRC_URI to new location > Adjust for name changes > > Signed-off-by: Khem Raj > --- > .../pm-graph_5.5.bb} | 12 ++++++++---- > .../packagegroups/packagegroup-meta-oe.bb | 2 +- > 2 files changed, 9 insertions(+), 5 deletions(-) rename meta-oe/recipes- > benchmark/{analyze-suspend/analyze-suspend_5.5.bb => pm-graph/pm- > graph_5.5.bb} (74%) > > diff --git a/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_5.5.bb > b/meta-oe/recipes-benchmark/pm-graph/pm-graph_5.5.bb > similarity index 74% > rename from meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_5.5.bb > rename to meta-oe/recipes-benchmark/pm-graph/pm-graph_5.5.bb > index bb0aad3413..4f6f3bd40c 100644 > --- a/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_5.5.bb > +++ b/meta-oe/recipes-benchmark/pm-graph/pm-graph_5.5.bb > @@ -1,4 +1,4 @@ > -SUMMARY = "Analyze Suspend" > +SUMMARY = "Analyze Suspend/Resume" > DESCRIPTION = "analyze-suspend is a tool for system developers to visualize \ the > activity between suspend and resume, allowing them to identify \ inefficiencies and > bottlenecks." > @@ -14,10 +14,11 @@ LIC_FILES_CHKSUM = > "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e" > # - CONFIG_FUNCTION_TRACER=y > # - CONFIG_FUNCTION_GRAPH_TRACER=y > > -RDEPENDS_${PN} += "python-core python-datetime python-stringold" > +RDEPENDS_${PN} += "python3-core python3-datetime python3-stringold" > > -SRC_URI = "git://github.com/01org/suspendresume.git;protocol=https" > -SRCREV = "cf59527dc24fdd2f314ae4dcaeb3d68a117988f6" > +PV .= "+git${SRCPV}" > +SRC_URI = "git://github.com/intel/pm-graph;protocol=https" > +SRCREV = "3a8cd2fa9aee3afbc7f7e844885ffdcfaf5a1097" > > S = "${WORKDIR}/git" > > @@ -27,3 +28,6 @@ do_install() { > } > > BBCLASSEXTEND = "native" > + > +RPROVIDES_${PN} = "analyze-suspend" > + > diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta- > oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > index bad4aa769e..3933619add 100644 > --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > +++ b/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 \ > + pm-graph 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 \ > -- > 2.25.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From raj.khem at gmail.com Wed Feb 19 02:08:31 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 18 Feb 2020 18:08:31 -0800 Subject: [oe] [meta-oe][PATCH 2/4] pm-graph: Renamed from analyze-suspend In-Reply-To: References: <20200219005058.2921658-1-raj.khem@gmail.com> <20200219005058.2921658-2-raj.khem@gmail.com> Message-ID: On Tue, Feb 18, 2020 at 5:40 PM Mittal, Anuj wrote: > > Is this different from the one that is already in meta-oe? > > https://git.openembedded.org/meta-openembedded/tree/meta-oe/recipes-kernel/pm-graph > These are duplicates, thanks for pointing out, I will move the PROVIDES part to pm-graph and other goodies from the recipe and delete analyze-suspend > Thanks, > > Anuj > > > -----Original Message----- > > From: openembedded-devel-bounces at lists.openembedded.org > devel-bounces at lists.openembedded.org> On Behalf Of Khem Raj > > Sent: Wednesday, February 19, 2020 08:51 AM > > To: openembedded-devel at lists.openembedded.org > > Subject: [oe] [meta-oe][PATCH 2/4] pm-graph: Renamed from analyze-suspend > > > > Moved to tip to get py3 support > > Point SRC_URI to new location > > Adjust for name changes > > > > Signed-off-by: Khem Raj > > --- > > .../pm-graph_5.5.bb} | 12 ++++++++---- > > .../packagegroups/packagegroup-meta-oe.bb | 2 +- > > 2 files changed, 9 insertions(+), 5 deletions(-) rename meta-oe/recipes- > > benchmark/{analyze-suspend/analyze-suspend_5.5.bb => pm-graph/pm- > > graph_5.5.bb} (74%) > > > > diff --git a/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_5.5.bb > > b/meta-oe/recipes-benchmark/pm-graph/pm-graph_5.5.bb > > similarity index 74% > > rename from meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_5.5.bb > > rename to meta-oe/recipes-benchmark/pm-graph/pm-graph_5.5.bb > > index bb0aad3413..4f6f3bd40c 100644 > > --- a/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_5.5.bb > > +++ b/meta-oe/recipes-benchmark/pm-graph/pm-graph_5.5.bb > > @@ -1,4 +1,4 @@ > > -SUMMARY = "Analyze Suspend" > > +SUMMARY = "Analyze Suspend/Resume" > > DESCRIPTION = "analyze-suspend is a tool for system developers to visualize \ the > > activity between suspend and resume, allowing them to identify \ inefficiencies and > > bottlenecks." > > @@ -14,10 +14,11 @@ LIC_FILES_CHKSUM = > > "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e" > > # - CONFIG_FUNCTION_TRACER=y > > # - CONFIG_FUNCTION_GRAPH_TRACER=y > > > > -RDEPENDS_${PN} += "python-core python-datetime python-stringold" > > +RDEPENDS_${PN} += "python3-core python3-datetime python3-stringold" > > > > -SRC_URI = "git://github.com/01org/suspendresume.git;protocol=https" > > -SRCREV = "cf59527dc24fdd2f314ae4dcaeb3d68a117988f6" > > +PV .= "+git${SRCPV}" > > +SRC_URI = "git://github.com/intel/pm-graph;protocol=https" > > +SRCREV = "3a8cd2fa9aee3afbc7f7e844885ffdcfaf5a1097" > > > > S = "${WORKDIR}/git" > > > > @@ -27,3 +28,6 @@ do_install() { > > } > > > > BBCLASSEXTEND = "native" > > + > > +RPROVIDES_${PN} = "analyze-suspend" > > + > > diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta- > > oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > > index bad4aa769e..3933619add 100644 > > --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > > +++ b/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 \ > > + pm-graph 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 \ > > -- > > 2.25.1 > > > > -- > > _______________________________________________ > > Openembedded-devel mailing list > > Openembedded-devel at lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From raj.khem at gmail.com Wed Feb 19 02:16:46 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 18 Feb 2020 18:16:46 -0800 Subject: [oe] [meta-oe][PATCH V2] pm-graph: Provide analyze-suspend as well Message-ID: <20200219021646.712447-1-raj.khem@gmail.com> Remove stale analyze-suspend recipe Signed-off-by: Khem Raj --- .../analyze-suspend/analyze-suspend_5.5.bb | 29 ------------------- .../packagegroups/packagegroup-meta-oe.bb | 2 +- .../recipes-kernel/pm-graph/pm-graph_5.5.bb | 11 +++++++ 3 files changed, 12 insertions(+), 30 deletions(-) delete mode 100644 meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_5.5.bb diff --git a/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_5.5.bb b/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_5.5.bb deleted file mode 100644 index bb0aad3413..0000000000 --- a/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-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb index bad4aa769e..3933619add 100644 --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb +++ b/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 \ + pm-graph 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 \ diff --git a/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb b/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb index 63a9fa88e9..a1378866ad 100644 --- a/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb +++ b/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" -- 2.25.1 From raj.khem at gmail.com Wed Feb 19 02:36:01 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 18 Feb 2020 18:36:01 -0800 Subject: [oe] [meta-oe] [PATCH v2 1/1] fio: remove disabling of compiler optimizations In-Reply-To: <20200218210751.8538-1-jonathan.richardson@broadcom.com> References: <20200218210751.8538-1-jonathan.richardson@broadcom.com> Message-ID: On Tue, Feb 18, 2020 at 1:08 PM Jonathan Richardson via Openembedded-devel wrote: > > Disabling compiler optimizations affects fio performance by 25-30% so > remove this from EXTRA_OECONF. Disabling of optimizations should be > machine specific if there are bugs in the code instead of the default. > > Optimizations were removed in this commit: > https://git.openembedded.org/meta-openembedded/commit/?id=739349da0826221f98648b64b693f9ae33e7d4ea > > Signed-off-by: Jonathan Richardson > --- > meta-oe/recipes-benchmark/fio/fio_3.18.bb | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/meta-oe/recipes-benchmark/fio/fio_3.18.bb b/meta-oe/recipes-benchmark/fio/fio_3.18.bb > index b6484290f..2c461b8c5 100644 > --- a/meta-oe/recipes-benchmark/fio/fio_3.18.bb > +++ b/meta-oe/recipes-benchmark/fio/fio_3.18.bb > @@ -33,7 +33,6 @@ S = "${WORKDIR}/git" > DISABLE_STATIC = "" > > EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}'" > -EXTRA_OECONF = "--disable-optimizations" > I think Mingli disabled it and I would like to get his feedback before we revert this change > do_configure() { > ./configure ${EXTRA_OECONF} > -- > 2.17.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From raj.khem at gmail.com Wed Feb 19 02:36:59 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 18 Feb 2020 18:36:59 -0800 Subject: [oe] [meta-oe][PATCH] fio: upgrade 3.17 -> 3.18 In-Reply-To: <20200218220922.GA24326@localhost> References: <1581723823-21171-1-git-send-email-wangmy@cn.fujitsu.com> <1581723823-21171-2-git-send-email-wangmy@cn.fujitsu.com> <20200218220922.GA24326@localhost> Message-ID: On Tue, Feb 18, 2020 at 2:09 PM Adrian Bunk wrote: > > On Tue, Feb 18, 2020 at 11:37:33AM -0800, Jonathan Richardson via Openembedded-devel wrote: > > I was just about to submit a patch to remove the disabling of compiler > > optimizations to fio. On our cortex A72 this kills the performance of fio > > by 25%. That would solve this build issue also. > >... > > > https://errors.yoctoproject.org/Errors/Details/391129/ > >... > > t/io_uring.c:103:17: error: '__NR_sys_io_uring_register' undeclared (first use in this function); did you mean 'SYS_io_uring_register'? > > This error does not look related to optimization. > > This looks like https://github.com/axboe/fio/issues/923 > Thanks, I think this will fix the issue we have at hand, Wang would you include this in a v2 ? > cu > Adrian From zhengrq.fnst at cn.fujitsu.com Wed Feb 19 03:47:30 2020 From: zhengrq.fnst at cn.fujitsu.com (Zheng Ruoqin) Date: Wed, 19 Feb 2020 11:47:30 +0800 Subject: [oe] [meta-oe][PATCH] libharu: New recipe Message-ID: <1582084050-88052-1-git-send-email-zhengrq.fnst@cn.fujitsu.com> libHaru is a library for generating PDF files. Signed-off-by: Zheng Ruoqin --- .../libharu/libharu-RELEASE_2_3_0_cmake.patch | 45 +++++++++++++++++++ .../recipes-support/libharu/libharu_2.3.0.bb | 24 ++++++++++ 2 files changed, 69 insertions(+) create mode 100644 meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch create mode 100644 meta-oe/recipes-support/libharu/libharu_2.3.0.bb diff --git a/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch b/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch new file mode 100644 index 000000000..a176f557d --- /dev/null +++ b/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch @@ -0,0 +1,45 @@ +Backport from RHEL8. + +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-oe/recipes-support/libharu/libharu_2.3.0.bb b/meta-oe/recipes-support/libharu/libharu_2.3.0.bb new file mode 100644 index 000000000..359f615ba --- /dev/null +++ b/meta-oe/recipes-support/libharu/libharu_2.3.0.bb @@ -0,0 +1,24 @@ +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 = "https://github.com/libharu/${BPN}/archive/RELEASE_${@d.getVar('PV').replace('.','_')}.tar.gz \ + file://libharu-RELEASE_2_3_0_cmake.patch \ + " + +SRC_URI[md5sum] = "4f916aa49c3069b3a10850013c507460" +SRC_URI[sha256sum] = "8f9e68cc5d5f7d53d1bc61a1ed876add1faf4f91070dbc360d8b259f46d9a4d2" + +S = "${WORKDIR}/${BPN}-RELEASE_${@d.getVar('PV').replace('.','_')}" + +inherit cmake +DEPENDS += "libpng zlib" + +do_install_append() { + mkdir -p ${D}/${datadir}/libharu + mv ${D}/libharu ${D}/${datadir} +} -- 2.20.1 From akuster808 at gmail.com Wed Feb 19 04:58:59 2020 From: akuster808 at gmail.com (akuster808) Date: Tue, 18 Feb 2020 20:58:59 -0800 Subject: [oe] [meta-oe][PATCH] libharu: New recipe In-Reply-To: <1582084050-88052-1-git-send-email-zhengrq.fnst@cn.fujitsu.com> References: <1582084050-88052-1-git-send-email-zhengrq.fnst@cn.fujitsu.com> Message-ID: On 2/18/20 7:47 PM, Zheng Ruoqin wrote: > libHaru is a library for generating PDF files. > > Signed-off-by: Zheng Ruoqin > --- > .../libharu/libharu-RELEASE_2_3_0_cmake.patch | 45 +++++++++++++++++++ > .../recipes-support/libharu/libharu_2.3.0.bb | 24 ++++++++++ > 2 files changed, 69 insertions(+) > create mode 100644 meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch > create mode 100644 meta-oe/recipes-support/libharu/libharu_2.3.0.bb > > diff --git a/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch b/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch > new file mode 100644 > index 000000000..a176f557d > --- /dev/null > +++ b/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch > @@ -0,0 +1,45 @@ > +Backport from RHEL8. Missing signed-off-by and Upstream-Status: For options, please see: https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines - armin > + > +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-oe/recipes-support/libharu/libharu_2.3.0.bb b/meta-oe/recipes-support/libharu/libharu_2.3.0.bb > new file mode 100644 > index 000000000..359f615ba > --- /dev/null > +++ b/meta-oe/recipes-support/libharu/libharu_2.3.0.bb > @@ -0,0 +1,24 @@ > +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 = "https://github.com/libharu/${BPN}/archive/RELEASE_${@d.getVar('PV').replace('.','_')}.tar.gz \ > + file://libharu-RELEASE_2_3_0_cmake.patch \ > + " > + > +SRC_URI[md5sum] = "4f916aa49c3069b3a10850013c507460" > +SRC_URI[sha256sum] = "8f9e68cc5d5f7d53d1bc61a1ed876add1faf4f91070dbc360d8b259f46d9a4d2" > + > +S = "${WORKDIR}/${BPN}-RELEASE_${@d.getVar('PV').replace('.','_')}" > + > +inherit cmake > +DEPENDS += "libpng zlib" > + > +do_install_append() { > + mkdir -p ${D}/${datadir}/libharu > + mv ${D}/libharu ${D}/${datadir} > +} From zhengrq.fnst at cn.fujitsu.com Wed Feb 19 09:21:35 2020 From: zhengrq.fnst at cn.fujitsu.com (Zheng Ruoqin) Date: Wed, 19 Feb 2020 17:21:35 +0800 Subject: [oe] [meta-oe][PATCH v2] libharu: New recipe Message-ID: <1582104095-88658-1-git-send-email-zhengrq.fnst@cn.fujitsu.com> libHaru is a library for generating PDF files. Signed-off-by: Zheng Ruoqin --- .../libharu/libharu-RELEASE_2_3_0_cmake.patch | 52 ++++++++++++++++++++++ meta-oe/recipes-support/libharu/libharu_2.3.0.bb | 24 ++++++++++ 2 files changed, 76 insertions(+) create mode 100644 meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch create mode 100644 meta-oe/recipes-support/libharu/libharu_2.3.0.bb diff --git a/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch b/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch new file mode 100644 index 0000000..332be1b --- /dev/null +++ b/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 + +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-oe/recipes-support/libharu/libharu_2.3.0.bb b/meta-oe/recipes-support/libharu/libharu_2.3.0.bb new file mode 100644 index 0000000..359f615 --- /dev/null +++ b/meta-oe/recipes-support/libharu/libharu_2.3.0.bb @@ -0,0 +1,24 @@ +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 = "https://github.com/libharu/${BPN}/archive/RELEASE_${@d.getVar('PV').replace('.','_')}.tar.gz \ + file://libharu-RELEASE_2_3_0_cmake.patch \ + " + +SRC_URI[md5sum] = "4f916aa49c3069b3a10850013c507460" +SRC_URI[sha256sum] = "8f9e68cc5d5f7d53d1bc61a1ed876add1faf4f91070dbc360d8b259f46d9a4d2" + +S = "${WORKDIR}/${BPN}-RELEASE_${@d.getVar('PV').replace('.','_')}" + +inherit cmake +DEPENDS += "libpng zlib" + +do_install_append() { + mkdir -p ${D}/${datadir}/libharu + mv ${D}/libharu ${D}/${datadir} +} -- 2.7.4 From leo.yan at linaro.org Wed Feb 19 09:44:52 2020 From: leo.yan at linaro.org (Leo Yan) Date: Wed, 19 Feb 2020 17:44:52 +0800 Subject: [oe] [meta-oe][PATCH v1 3/4] BCC: Add build recipe In-Reply-To: <20200218072726.GB9945@leoy-ThinkPad-X240s> References: <20200218052544.9467-1-leo.yan@linaro.org> <20200218052544.9467-4-leo.yan@linaro.org> <20200218072726.GB9945@leoy-ThinkPad-X240s> Message-ID: <20200219094452.GA11073@leoy-ThinkPad-X240s> Hi Khem, On Tue, Feb 18, 2020 at 03:27:26PM +0800, Leo Yan wrote: > Hi Khem, > > On Mon, Feb 17, 2020 at 10:30:46PM -0800, Khem Raj wrote: > > [...] > > > > +DEPENDS += "bison-native \ > > > + ninja-native \ > > > + elfutils-native \ > > > + flex-native \ > > > + ${MLPREFIX}elfutils \ > > > + ${MLPREFIX}binutils \ > > > + ${MLPREFIX}flex \ > > > + luajit \ > > > + clang \ > > > + " > > > + > > > > this will add meta-clang dependency directly into meta-oe, which is not desired > > is it possible to make it optional or perhaps marked when meta-clang > > is not in BBLAYERS > > Thanks a lot for reviewing. clang is mandotory for BCC to compile > eBPF programs, so I think we cannot build clang as optional for BCC. > > For marking the recipe when meta-clang is not in BBLAYERS, I searched > with google but seems 'LAYERDEPENDS' and 'BBMASK' both are not suitable > for this case. Could you give more detailed info for how to do this? Just want to ask a following question. Since BCC and bpftrace both are heavily relying on LLVM/Clang for their tracing, do you think it's a good idea to merge BCC and bpftrace into meta-clang layer, e.g. place into /meta-clang/recipes-devtools/? If so, we can easily resolve the dependency issue and avoid to introduce mess between meta-oe and meta-clang. For the tool ply, it's simple and doesn't depend on Clang. So should keep it into meta-oe/recipes-devtools/ folder? Also welcome any suggestion for this. Thanks, Leo Yan From dl9pf at gmx.de Wed Feb 19 11:51:26 2020 From: dl9pf at gmx.de (Jan-Simon Moeller) Date: Wed, 19 Feb 2020 12:51:26 +0100 Subject: [oe] [meta-oe][PATCH] meta-oe: master: remmina - use PACKAGECONFIG for spice Message-ID: <20200219115126.25036-1-dl9pf@gmx.de> remmina depends on spice and spice-protocol but they are in meta-networking. Use the PACKAGECONFIG flag to avoid hardcoding the dependency. Signed-off-by: Jan-Simon Moeller --- meta-oe/recipes-support/remmina/remmina_1.3.6.bb | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/meta-oe/recipes-support/remmina/remmina_1.3.6.bb b/meta-oe/recipes-support/remmina/remmina_1.3.6.bb index f9963ff65..f9860a11f 100644 --- a/meta-oe/recipes-support/remmina/remmina_1.3.6.bb +++ b/meta-oe/recipes-support/remmina/remmina_1.3.6.bb @@ -5,8 +5,6 @@ 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_append_x86 = " spice spice-protocol" -DEPENDS_append_x86-64 = " spice spice-protocol" DEPENDS_append_libc-musl = " libexecinfo" LDFLAGS_append_libc-musl = " -lexecinfo" @@ -23,11 +21,7 @@ inherit cmake features_check mime-xdg # 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" - +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 +30,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/*" -- 2.11.0 From dl9pf at gmx.de Wed Feb 19 11:56:54 2020 From: dl9pf at gmx.de (Jan-Simon Moeller) Date: Wed, 19 Feb 2020 12:56:54 +0100 Subject: [oe] [meta-oe][PATCH] meta-oe: master: remmina - use PACKAGECONFIG for spice Message-ID: <20200219115654.25186-1-dl9pf@gmx.de> remmina depends on spice and spice-protocol but they are in meta-networking. Use the PACKAGECONFIG flag to avoid hardcoding the dependency. Signed-off-by: Jan-Simon Moeller --- meta-oe/recipes-support/remmina/remmina_1.3.6.bb | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/meta-oe/recipes-support/remmina/remmina_1.3.6.bb b/meta-oe/recipes-support/remmina/remmina_1.3.6.bb index f9963ff65..f9860a11f 100644 --- a/meta-oe/recipes-support/remmina/remmina_1.3.6.bb +++ b/meta-oe/recipes-support/remmina/remmina_1.3.6.bb @@ -5,8 +5,6 @@ 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_append_x86 = " spice spice-protocol" -DEPENDS_append_x86-64 = " spice spice-protocol" DEPENDS_append_libc-musl = " libexecinfo" LDFLAGS_append_libc-musl = " -lexecinfo" @@ -23,11 +21,7 @@ inherit cmake features_check mime-xdg # 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" - +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 +30,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/*" -- 2.11.0 From dl9pf at gmx.de Wed Feb 19 11:57:40 2020 From: dl9pf at gmx.de (Jan-Simon Moeller) Date: Wed, 19 Feb 2020 12:57:40 +0100 Subject: [oe] [meta-oe][zeus][PATCH] meta-oe: zeus: remmina - use PACKAGECONFIG for spice Message-ID: <20200219115740.25272-1-dl9pf@gmx.de> remmina depends on spice and spice-protocol but they are in meta-networking. Use the PACKAGECONFIG flag to avoid hardcoding the dependency. Signed-off-by: Jan-Simon Moeller --- meta-oe/recipes-support/remmina/remmina_1.3.6.bb | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/meta-oe/recipes-support/remmina/remmina_1.3.6.bb b/meta-oe/recipes-support/remmina/remmina_1.3.6.bb index 82b803a4d..5f25231c2 100644 --- a/meta-oe/recipes-support/remmina/remmina_1.3.6.bb +++ b/meta-oe/recipes-support/remmina/remmina_1.3.6.bb @@ -5,8 +5,6 @@ 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_append_x86 = " spice spice-protocol" -DEPENDS_append_x86-64 = " spice spice-protocol" DEPENDS_append_libc-musl = " libexecinfo" LDFLAGS_append_libc-musl = " -lexecinfo" @@ -23,11 +21,7 @@ inherit cmake distro_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" - +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 +30,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/*" -- 2.11.0 From dan.callaghan at opengear.com Wed Feb 19 12:06:16 2020 From: dan.callaghan at opengear.com (Dan Callaghan) Date: Wed, 19 Feb 2020 22:06:16 +1000 Subject: [oe] [meta-networking][PATCH 2/2] quagga: install tmpfiles snippet to /usr/lib/tmpfiles.d In-Reply-To: <1d4e0221-9376-b5e5-9a85-9c59559e0c43@gmail.com> References: <20200211060834.19790-1-dan.callaghan@opengear.com> <20200211060834.19790-2-dan.callaghan@opengear.com> <1d4e0221-9376-b5e5-9a85-9c59559e0c43@gmail.com> Message-ID: <1582113683-sup-6451@galangal.danc.bne.opengear.com> Excerpts from Khem Raj's message of 2020-02-11 16:44:45 -08:00: > On 2/10/20 10:08 PM, Dan Callaghan wrote: > > Package-owned tmpfiles snippets belong in /usr/lib/tmpfiles.d, > > /etc/tmpfiles.d is for administrator customisations. > > > > Signed-off-by: Dan Callaghan > > --- > > meta-networking/recipes-protocols/quagga/quagga.inc | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/meta-networking/recipes-protocols/quagga/quagga.inc b/meta-networking/recipes-protocols/quagga/quagga.inc > > index 2673a8976..f35b27160 100644 > > --- a/meta-networking/recipes-protocols/quagga/quagga.inc > > +++ b/meta-networking/recipes-protocols/quagga/quagga.inc > > @@ -116,9 +116,9 @@ do_install () { > > done > > > > if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then > > - install -d ${D}${sysconfdir}/tmpfiles.d > > + install -d ${D}${nonarch_libdir}/tmpfiles.d > > echo "d /run/quagga 0755 quagga quagga -" \ > > - > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf > > + > ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf > > fi > > > > # Remove sysinit script if sysvinit is not in DISTRO_FEATURES > > > > Fails packaging > > ERROR: QA Issue: quagga: Files/directories were installed but not > shipped in any package: > /usr/lib/tmpfiles.d > /usr/lib/tmpfiles.d/quagga.conf > > > http://errors.yoctoproject.org/Errors/Details/390597/ Oops. I will send an updated patch. I wonder if OE-Core should have a directory variable similar to ${systemd_system_unitdir}, say ${systemd_tmpfilesdir}, and put it in the global FILES list? Right now the recipes in meta-oe use a mixture of ${sysconfdir}/tmpfiles.d and ${libdir}/tmpfiles.d... On second thought I am not quite sure if it should be ${nonarch_libdir} or ${libdir}. I can't see anywhere that the systemd recipe explicitly configures that directory at build time, but in our product systemd-tmpfiles winds up looking in /usr/lib/tmpfiles.d which I assumed was ${nonarch_libdir}/tmpfiles.d. -- Dan Callaghan Software Engineer Opengear -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: not available URL: From dan.callaghan at opengear.com Wed Feb 19 12:08:03 2020 From: dan.callaghan at opengear.com (Dan Callaghan) Date: Wed, 19 Feb 2020 22:08:03 +1000 Subject: [oe] [meta-networking][PATCH v2] quagga: install tmpfiles snippet to /usr/lib/tmpfiles.d In-Reply-To: <20200211060834.19790-2-dan.callaghan@opengear.com> References: <20200211060834.19790-2-dan.callaghan@opengear.com> Message-ID: <20200219120803.9846-1-dan.callaghan@opengear.com> Package-owned tmpfiles snippets belong in /usr/lib/tmpfiles.d, /etc/tmpfiles.d is for administrator customisations. Signed-off-by: Dan Callaghan --- meta-networking/recipes-protocols/quagga/quagga.inc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/meta-networking/recipes-protocols/quagga/quagga.inc b/meta-networking/recipes-protocols/quagga/quagga.inc index 2673a8976..310bc7eef 100644 --- a/meta-networking/recipes-protocols/quagga/quagga.inc +++ b/meta-networking/recipes-protocols/quagga/quagga.inc @@ -116,9 +116,9 @@ do_install () { done if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/tmpfiles.d + install -d ${D}${nonarch_libdir}/tmpfiles.d echo "d /run/quagga 0755 quagga quagga -" \ - > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf + > ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf fi # Remove sysinit script if sysvinit is not in DISTRO_FEATURES @@ -166,6 +166,8 @@ FILES_${PN}-ospfclient = "${sbindir}/ospfclient ${libdir}/libospfapiclient.so.* FILES_${PN}-watchquagga = "${sbindir}/watchquagga ${sysconfdir}/default/watchquagga \ ${sysconfdir}/init.d/watchquagga" +FILES_${PN} += "${nonarch_libdir}/tmpfiles.d/*.conf" + # Indicate that the default files are configuration files CONFFILES_${PN} = "${sysconfdir}/default/quagga \ ${sysconfdir}/quagga/bgpd.conf \ -- 2.21.1 From raj.khem at gmail.com Wed Feb 19 17:16:41 2020 From: raj.khem at gmail.com (Khem Raj) Date: Wed, 19 Feb 2020 09:16:41 -0800 Subject: [oe] [meta-oe][PATCH v1 3/4] BCC: Add build recipe In-Reply-To: <20200219094452.GA11073@leoy-ThinkPad-X240s> References: <20200218052544.9467-1-leo.yan@linaro.org> <20200218052544.9467-4-leo.yan@linaro.org> <20200218072726.GB9945@leoy-ThinkPad-X240s> <20200219094452.GA11073@leoy-ThinkPad-X240s> Message-ID: On Wed, Feb 19, 2020 at 1:45 AM Leo Yan wrote: > > Hi Khem, > > On Tue, Feb 18, 2020 at 03:27:26PM +0800, Leo Yan wrote: > > Hi Khem, > > > > On Mon, Feb 17, 2020 at 10:30:46PM -0800, Khem Raj wrote: > > > > [...] > > > > > > +DEPENDS += "bison-native \ > > > > + ninja-native \ > > > > + elfutils-native \ > > > > + flex-native \ > > > > + ${MLPREFIX}elfutils \ > > > > + ${MLPREFIX}binutils \ > > > > + ${MLPREFIX}flex \ > > > > + luajit \ > > > > + clang \ > > > > + " > > > > + > > > > > > this will add meta-clang dependency directly into meta-oe, which is not desired > > > is it possible to make it optional or perhaps marked when meta-clang > > > is not in BBLAYERS > > > > Thanks a lot for reviewing. clang is mandotory for BCC to compile > > eBPF programs, so I think we cannot build clang as optional for BCC. > > > > For marking the recipe when meta-clang is not in BBLAYERS, I searched > > with google but seems 'LAYERDEPENDS' and 'BBMASK' both are not suitable > > for this case. Could you give more detailed info for how to do this? > > Just want to ask a following question. > > Since BCC and bpftrace both are heavily relying on LLVM/Clang for their > tracing, do you think it's a good idea to merge BCC and bpftrace into > meta-clang layer, e.g. place into /meta-clang/recipes-devtools/? > If so, we can easily resolve the dependency issue and avoid to introduce > mess between meta-oe and meta-clang. > > For the tool ply, it's simple and doesn't depend on Clang. So should > keep it into meta-oe/recipes-devtools/ folder? Also welcome any > suggestion for this. Yeah I think thats a fine suggestion. meta-clang is good for it. > > Thanks, > Leo Yan From raj.khem at gmail.com Wed Feb 19 17:29:58 2020 From: raj.khem at gmail.com (Khem Raj) Date: Wed, 19 Feb 2020 09:29:58 -0800 Subject: [oe] State of OE world - 2020-02-18 Message-ID: http://www.openembedded.org/wiki/Bitbake_World_Status == Failed tasks /media/ra_build_share/buildlogs/oe/world/dunfell/2020-02-18 == INFO: jenkins-job.sh-1.8.46 Complete log available at /media/ra_build_share/buildlogs/oe/world/dunfell//media/ra_build_share/buildlogs/oe/world/dunfell/log.report.20200219_150007.log === common (0) === === common-x86 (0) === === qemuarm (0) === === qemuarm64 (0) === === qemux86 (0) === === qemux86_64 (0) === === Number of failed tasks (0) === {| class=wikitable |- || qemuarm || 0 || /media/ra_build_share/buildlogs/oe/world/dunfell//media/ra_build_share/buildlogs/oe/world/dunfell/log.world.qemuarm.20200218_155946.log/ || |- || qemuarm64 || 0 || /media/ra_build_share/buildlogs/oe/world/dunfell//media/ra_build_share/buildlogs/oe/world/dunfell/log.world.qemuarm64.20200218_235936.log/ || |- || qemux86 || 0 || /media/ra_build_share/buildlogs/oe/world/dunfell//media/ra_build_share/buildlogs/oe/world/dunfell/log.world.qemux86.20200218_235938.log/ || |- || qemux86_64 || 0 || /media/ra_build_share/buildlogs/oe/world/dunfell//media/ra_build_share/buildlogs/oe/world/dunfell/log.world.qemux86-64.20200218_235937.log/ || |} === PNBLACKLISTs (22) === sources/meta-openembedded: * meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb:PNBLACKLIST[netkit-rusers] = "Fails to build rup.c:51:10: fatal error: rstat.h: No such file or directory" * meta-networking/recipes-support/drbd/drbd_9.0.19-1.bb:PNBLACKLIST[drbd] = "Kernel module Needs forward porting to kernel 5.2+" * meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb:PNBLACKLIST[lowpan-tools] = "WARNING these tools are deprecated! Use wpan-tools instead" * meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb:PNBLACKLIST[dnf-plugin-tui] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build correctly without package_rpm in PACKAGE_CLASSES', d)}" * meta-oe/recipes-devtools/nanopb/nanopb_0.4.0.bb:PNBLACKLIST[nanopb] = "Needs forward porting to use python3" * meta-oe/recipes-extended/socketcan/can-isotp_git.bb:PNBLACKLIST[can-isotp] = "Kernel module Needs forward porting to kernel 5.2+" * meta-oe/recipes-extended/sysdig/sysdig_git.bb:PNBLACKLIST[sysdig] = "configure: error: in 'TOPDIR/build/tmpfs/work/core2-64-yoe-linux/sysdig/0.26.4-r0/build/c-ares-prefix/src/c-ares'" * meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb:PNBLACKLIST[dnfdragora] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build correctly without package_rpm in PACKAGE_CLASSES', d)}" * meta-oe/recipes-kernel/bpftool/bpftool.bb:PNBLACKLIST[bpftool] = "Needs forward porting to kernel 5.2+" sources/meta-qt5: * recipes-python/pyqt5/python-pyqt5_5.13.2.bb:PNBLACKLIST[python-pyqt5] = "Sip fails in do_configure sip: QOpenGLFramebufferObject is undefined" sources/meta-yoe: * conf/distro/yoe.inc:PNBLACKLIST[build-appliance-image] = "tries to include whole downloads directory in /home/builder/poky :/" * conf/distro/yoe.inc:PNBLACKLIST[smartrefrigerator] = "Needs porting to QT > 5.6" * conf/distro/yoe.inc:PNBLACKLIST[qmlbrowser] = "Needs porting to QT > 5.6" * conf/distro/yoe.inc:PNBLACKLIST[minehunt] = "Needs porting to QT > 5.6" * conf/distro/yoe.inc:PNBLACKLIST[homeautomation] = "Needs porting to QT > 5.6" * conf/distro/yoe.inc:PNBLACKLIST[samegame] = "Needs porting to QT > 5.6" * conf/distro/yoe.inc:PNBLACKLIST[applicationlauncher] = "Needs porting to QT > 5.6" * conf/distro/yoe.inc:PNBLACKLIST[spacetouch] = "Needs porting to libplanes 1.0" * conf/distro/yoe.inc:PNBLACKLIST[qtviewplanes] = "Needs porting to libplanes 1.0" * conf/distro/yoe.inc:PNBLACKLIST[egt-thermostat] = "Needs porting to egt 0.8.2+" sources/openembedded-core: * meta/recipes-devtools/dnf/dnf_4.2.2.bb:PNBLACKLIST[dnf] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build correctly without package_rpm in PACKAGE_CLASSES', d)}" * meta/recipes-devtools/libdnf/libdnf_0.28.1.bb:PNBLACKLIST[libdnf] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build correctly without package_rpm in PACKAGE_CLASSES', d)}" conf/local.conf: * PNBLACKLIST[bigbuckbunny-1080p] = "big and doesn't really need to be tested so much" * PNBLACKLIST[bigbuckbunny-480p] = "big and doesn't really need to be tested so much" * PNBLACKLIST[bigbuckbunny-720p] = "big and doesn't really need to be tested so much" * PNBLACKLIST[tearsofsteel-1080p] = "big and doesn't really need to be tested so much" * PNBLACKLIST[build-appliance-image] = "tries to include whole downloads directory in /home/builder/poky :/" === QA issues (0) === {| class=wikitable !| Count ||Issue |- ||0 ||already-stripped |- ||0 ||build-deps |- ||0 ||compile-host-path |- ||0 ||file-rdeps |- ||0 ||host-user-contaminated |- ||0 ||installed-vs-shipped |- ||0 ||invalid-pkgconfig |- ||0 ||ldflags |- ||0 ||libdir |- ||0 ||pkgname |- ||0 ||qa_pseudo |- ||0 ||symlink-to-sysroot |- ||0 ||textrel |- ||0 ||unknown-configure-option |- ||0 ||version-going-backwards |} === Incorrect PACKAGE_ARCH or sstate signatures (0) === Complete log: /media/ra_build_share/buildlogs/oe/world/dunfell//media/ra_build_share/buildlogs/oe/world/dunfell/log.signatures.20200219_065929.log/ No issues detected QA issues by type: count: 0 issue: already-stripped count: 0 issue: libdir count: 0 issue: textrel count: 0 issue: build-deps count: 0 issue: file-rdeps count: 0 issue: version-going-backwards count: 0 issue: host-user-contaminated count: 0 issue: installed-vs-shipped count: 0 issue: unknown-configure-option count: 0 issue: symlink-to-sysroot count: 0 issue: invalid-pkgconfig count: 0 issue: pkgname count: 0 issue: ldflags count: 0 issue: compile-host-path count: 0 issue: qa_pseudo This git log matches with the metadata as seen by qemuarm build. In some cases qemux86 and qemux86-64 builds are built with slightly different metadata, you can see the exact version near the top of each log.world.qemu* files linked from the report ~/oe/world/yoe ~/oe/world/yoe == Tested changes (not included in master yet) - bitbake == latest upstream commit: 5d98d8e3 cooker/siggen: Empty siggen cache during parsing not included in master yet: dc7d32ff runqueue: Possible tid handling optimisation 01ff1090 knotty: Make the bb.command.CommandExit event terminate bitbake 35cf83cd fetch2: Make fetcher_compare_revisions() work 0771b3a0 fetch2: Allow ${AUTOREV} to be used when BB_SRCREV_POLICY is "cache" 9c6eb977 data: Don't allow renameVar calls with equivalent keys 65419e33 cooker: Reset loghandler == Tested changes (not included in master yet) - openembedded-core == latest upstream commit: c9b5802bbe openssh: Upgrade 8.1p1 -> 8.2p1 not included in master yet: 13e1363cde oescripts.py: use unittest.SkipUnless for class skip 5414e256e7 base.bbclass: extend PACKAGECONFIG for conflict package configs 59e9c52807 glew/curl: specify exclusive package configs a112eb667d HACK: signing: Add extra test debug 59328e8092 sstatesig: Log timestamps for hashequiv in reprodubile builds 7a9fa1683c rootfs-postcommands: Remove spaces before ; in -ROOTFS_..._COMMAND 1a4872c94e HACK: extra debug e133b7f015 newlib: Move syscalls from newlib to libgloss ad48167cd5 procps: upstream has switched to gitlab 9087ae6af1 qemux86: do not add vga=0 to kernel parameters a7658b2564 qemux86: drop resolution setting via uvesafb d9db0bb09d weston: add a basic runtime test a69d8015d9 ptest-packagelists: mention ifupdown ptest in a comment 03fb91067f python3: resolve ncurses host contamination b4b251a9a1 fix various, innocuous typos beb5431370 systemd: upgrade v244.1 -> v244.3 250608b408 insane.bbclass: Correct typo inhert->inherit 688052a94b babeltrace: update to 1.5.8 0586fcdc04 webkitgtk: Fix errors when api-documentation is enabled 6b742380b7 p11-kit: Fix builds with systemd 94887b7f63 concurrencytest.py: add outSideTestaddSkip for subunit 8ea40e11c8 glibc-package.inc: fix multilib headers conflict 36ff08511b perl: Fix encode module reproducibility issues cb75b6806b iproute2: add devlink support to iproute2 02df17f909 glib-2.0: add dependencies to fix ptest failures e940c7f1c8 runit: Add runit and related recipes a9096a5598 qemux86: Add identical qemux86copy variant for tests 8fd55d85b3 qemuppc64: Add a QEMU machine definition for ppc64 22668875c1 linux-yocto: Add powerpc64le support 2e476e3f40 report-error: Allow to upload reports automatically ecd5f49df9 report-error.bbclass: replace angle brackets with < and > 6a7e548e87 libsolv: Enable rpm packageconfig by default only if rpm O_P_M is enabled 799e34d485 dnf,libdnf: Ignore if PACKAGE_CLASSES does not have rpm == Tested changes (not included in master yet) - meta-openembedded == latest upstream commit: d459ead5c xfce4-whiskermenu-plugin: upgrade 2.3.5 -> 2.4.2 not included in master yet: 9f3e738cb mpv: Disable lua support for riscv cbe0b4301 libgphoto2: remove executable permission bits of udev rule file 416c4f7d5 perl: Add libperlio-gzip-perl and libjson-perl 64441dc46 lcov: Add support for intermediate JSON format 7002e7dd3 lcov: Add missing missing RDEPEND and enable nativesdk dec5ceaac python3-pyflakes: Add python3 version 71c233683 netplan: rdep on python3 version of pyflakes b89254a8b rsyslog: Use python3 in ptests 7b0d354fb x265: Move into meta-multimedia 0bb390bbb gssdp: Upgrade to 1.2.2 7672f53cb gupnp: Upgrade to 1.2.2 385752703 gupnp-dlna: Rename patchdir to PN a067634be rygel: Upgrade to 0.38.3 d474aab6a gupnp-tools: Upgrade to 0.10.0 eb50fb0ae gupnp-igd: Upgrade to 0.2.5 af2be2e96 gupnp-av: Upgrade to 0.12.11 c3a23760b drone: Add CI support 75591d24f sysdig: Upgrade to 0.26.4 2e3caaf9c fetchmail: upgrade 6.4.1 -> 6.4.2 074d8ec67 libnet-dns-perl: upgrade 1.21 -> 1.22 6db4dbf1c cifs-utils: upgrade 6.9 -> 6.10 2d909ef26 dleyna-core: Update to latest to support gupnp 1.2 8b5f4e5fc dleyna-server: Bump version to support 1.2 gupnp 6a9c2a271 graphviz: Depend on py3 at runtime 3115a33c9 pm-graph: Renamed from analyze-suspend d000373e1 cfengine: Upgrade to 3.15 1ad1a99ff dleyna-renderer: Fix build with gupnp 1.2+ 98f20ffec mariadb: Add pam_auth to server package. == Tested changes (not included in master yet) - meta-qt5 == latest upstream commit: 2391474 Revert "qtwebkit: remove" not included in master yet: 0bbd0eb qtwebengine: Link libatomic on x86/32bit c8cd55b qtwebkit: build with python3 f18d594 qtbase: fix build with platform where FE macro are not defined caf09cd Add PyQtChart. b45a400 qtwebview: Skip if meta-python is not present == Tested changes (not included in master yet) - meta-browser == latest upstream commit: 1697014 chromium: Fix patch fuzz not included in master yet: bc02d6d chromium: Fix build on 32bit arches with 64bit time_t 334855d chromium: Fix build with clang10/gcc10 ~/oe/world/yoe From raj.khem at gmail.com Wed Feb 19 23:07:37 2020 From: raj.khem at gmail.com (Khem Raj) Date: Wed, 19 Feb 2020 15:07:37 -0800 Subject: [oe] [meta-oe][PATCH v1 2/4] luajit: Add luajit 2.1.0-beta3 recipe In-Reply-To: <20200218052544.9467-3-leo.yan@linaro.org> References: <20200218052544.9467-1-leo.yan@linaro.org> <20200218052544.9467-3-leo.yan@linaro.org> Message-ID: On 2/17/20 9:25 PM, Leo Yan wrote: > Since luajit 2.1.0-beta3 can support architecture aarch64 and the old > misses to support aarch64, this patch adds recipe for luajit > 2.1.0-beta3 building. > > Signed-off-by: Leo Yan > --- > .../recipes-devtools/luajit/luajit_2.1.0.bb | 92 +++++++++++++++++++ > 1 file changed, 92 insertions(+) > create mode 100644 meta-oe/recipes-devtools/luajit/luajit_2.1.0.bb > > diff --git a/meta-oe/recipes-devtools/luajit/luajit_2.1.0.bb b/meta-oe/recipes-devtools/luajit/luajit_2.1.0.bb > new file mode 100644 > index 000000000..167b5d229 > --- /dev/null > +++ b/meta-oe/recipes-devtools/luajit/luajit_2.1.0.bb > @@ -0,0 +1,92 @@ > +SUMMARY = "Just-In-Time Compiler for Lua" > +LICENSE = "MIT" > +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=10a96c93403affcc34765f4c2612bc22" > +HOMEPAGE = "http://luajit.org" > + > +PV .= "+git${SRCPV}" I think its best to call it 2.0.5+${SRCPV} > +SRCREV = "v2.1.0-beta3" Please use corresponding SHA1 here instead of tags > +SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http;branch=v2.1" > + > +S = "${WORKDIR}/git" > + > +inherit pkgconfig binconfig siteinfo > + > +BBCLASSEXTEND = "native" > + > +# http://luajit.org/install.html#cross > +# Host luajit needs to be compiled with the same pointer size > +# If you want to cross-compile to any 32 bit target on an x64 OS, > +# you need to install the multilib development package (e.g. > +# libc6-dev-i386 on Debian/Ubuntu) and build a 32 bit host part > +# (HOST_CC="gcc -m32"). > +BUILD_CC_ARCH_append = " ${@['-m32',''][d.getVar('SITEINFO_BITS') != '32']}" > + > +# The lua makefiles expect the TARGET_SYS to be from uname -s > +# Values: Windows, Linux, Darwin, iOS, SunOS, PS3, GNU/kFreeBSD > +LUA_TARGET_OS = "Unknown" > +LUA_TARGET_OS_darwin = "Darwin" > +LUA_TARGET_OS_linux = "Linux" > +LUA_TARGET_OS_linux-gnueabi = "Linux" > +LUA_TARGET_OS_mingw32 = "Windows" > + > +# We don't want the lua buildsystem's compiler optimizations, or its > +# stripping, and we don't want it to pick up CFLAGS or LDFLAGS, as those apply > +# to both host and target compiles > +EXTRA_OEMAKE = "\ > + Q= E='@:' \ > + \ > + CCOPT= CCOPT_x86= CFLAGS= LDFLAGS= TARGET_STRIP='@:' \ > + \ > + 'TARGET_SYS=${LUA_TARGET_OS}' \ > + \ > + 'CC=${CC}' \ > + 'TARGET_AR=${AR} rcus' \ > + 'TARGET_CFLAGS=${CFLAGS}' \ > + 'TARGET_LDFLAGS=${LDFLAGS}' \ > + 'TARGET_SHLDFLAGS=${LDFLAGS}' \ > + 'HOST_CC=${BUILD_CC}' \ > + 'HOST_CFLAGS=${BUILD_CFLAGS}' \ > + \ > + 'PREFIX=${prefix}' \ > + 'MULTILIB=${baselib}' \ > + 'LDCONFIG=:' \ > +" > + > +do_compile () { > + oe_runmake > +} > + > +# There's INSTALL_LIB and INSTALL_SHARE also, but the lua binary hardcodes the > +# '/share' and '/' + LUA_MULTILIB paths, so we don't want to break those > +# expectations. > +EXTRA_OEMAKEINST = "\ > + 'DESTDIR=${D}' \ > + 'INSTALL_BIN=${D}${bindir}' \ > + 'INSTALL_INC=${D}${includedir}/luajit-$(MAJVER).$(MINVER)' \ > + 'INSTALL_MAN=${D}${mandir}/man1' \ > +" > +do_install () { > + oe_runmake ${EXTRA_OEMAKEINST} install > + rmdir ${D}${datadir}/lua/5.* \ > + ${D}${datadir}/lua \ > + ${D}${libdir}/lua/5.* \ > + ${D}${libdir}/lua > +} > + > +PACKAGES += 'luajit-common' > + > +# See the comment for EXTRA_OEMAKEINST. This is needed to ensure the hardcoded > +# paths are packaged regardless of what the libdir and datadir paths are. > +FILES_${PN} += "${prefix}/${baselib} ${prefix}/share" > +FILES_${PN} += "${libdir}/libluajit-5.1.so.2 \ > + ${libdir}/libluajit-5.1.so.${PV} \ > +" > +FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \ > + ${libdir}/libluajit-5.1.so \ > + ${libdir}/pkgconfig/luajit.pc \ > +" > +FILES_luajit-common = "${datadir}/${BPN}-${PV}" > + > +# mips64 is not supported in this release > +COMPATIBLE_HOST_mipsarchn32 = "null" > +COMPATIBLE_HOST_mipsarchn64 = "null" sync this with latest changes to 5.0.4 recipe there are more arches where it is not ported yet. Also delete the old recipe in the same patch. > From jpuhlman at mvista.com Thu Feb 20 00:29:12 2020 From: jpuhlman at mvista.com (Jeremy A. Puhlman) Date: Wed, 19 Feb 2020 16:29:12 -0800 Subject: [oe] [meta-networking][PATCH] net-snmp: Add pkgconfig file support Message-ID: <20200220002912.19522-1-jpuhlman@mvista.com> From: Jeremy Puhlman Signed-off-by: Jeremy A. Puhlman --- ...upport-for-building-applications-and.patch | 170 ++++++++++++++++++ .../net-snmp/net-snmp_5.8.bb | 1 + 2 files changed, 171 insertions(+) create mode 100644 meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Add-pkg-config-support-for-building-applications-and.patch diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Add-pkg-config-support-for-building-applications-and.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Add-pkg-config-support-for-building-applications-and.patch new file mode 100644 index 000000000..6cb9588eb --- /dev/null +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Add-pkg-config-support-for-building-applications-and.patch @@ -0,0 +1,170 @@ +From aea8c2f0bf8004c8da8ca9acb04ab07798cd8068 Mon Sep 17 00:00:00 2001 +From: Hugh McMaster +Date: Wed, 3 Apr 2019 21:36:03 +1100 +Subject: [PATCH] Add pkg-config support for building applications and + sub-agents + +The netsnmp package should be used when building Net-SNMP applications. +The netsnmp-agent package should be used when building Net-SNMP subagents. + +Signed-off-by: Hugh McMaster +[ bvanassche: edited makefile code and .pc files; added ./configure changes ] + + +Upstream-Status: Backport +https://sourceforge.net/p/net-snmp/patches/_discuss/thread/a0d66e91dd/f940/attachment/0001-Add-pkg-config-support-for-building-applications-and.patch + +--- + Makefile.in | 2 ++ + Makefile.rules | 30 ++++++++++++++++++++++++++---- + configure | 4 ++++ + configure.ac | 1 + + netsnmp-agent.pc.in | 12 ++++++++++++ + netsnmp.pc.in | 12 ++++++++++++ + 6 files changed, 57 insertions(+), 4 deletions(-) + create mode 100644 netsnmp-agent.pc.in + create mode 100644 netsnmp.pc.in + +diff --git a/Makefile.in b/Makefile.in +index 9dbdde1353b1..ec972636c279 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -35,6 +35,7 @@ INSTALLBUILTHEADERS=include/net-snmp/net-snmp-config.h + INSTALLBUILTINCLUDEHEADERS=@FEATUREHEADERS@ + INSTALLBINSCRIPTS=net-snmp-config net-snmp-create-v3-user + INSTALLUCDHEADERS=ucd-snmp-config.h version.h mib_module_config.h ++INSTALL_PKGCONFIG=netsnmp.pc netsnmp-agent.pc + + # + # other install rules. +@@ -275,6 +276,7 @@ configclean: makefileclean + libtool include/net-snmp/net-snmp-config.h \ + net-snmp-config net-snmp-config-x configure-summary \ + net-snmp-create-v3-user net-snmp-create-v3-user-x ++ rm -f *.pc + rm -f mibs/.index + rm -f include/net-snmp/agent/mib_module_config.h \ + include/net-snmp/agent/agent_module_config.h \ +diff --git a/Makefile.rules b/Makefile.rules +index 9e9e9009e5d2..e714f91e725e 100644 +--- a/Makefile.rules ++++ b/Makefile.rules +@@ -85,12 +85,14 @@ subdirs: + # installlibs handles local, ucd and subdir libs. need to do subdir libs + # before bins, sinze those libs may be needed for successful linking + install: installlocalheaders @installucdheaders@ \ +- installlibs \ +- installlocalbin installlocalsbin \ ++ installlibs install_pkgconfig \ ++ installlocalbin installlocalsbin \ + installsubdirs $(OTHERINSTALL) + +-uninstall: uninstalllibs uninstallbin uninstallsbin uninstallheaders \ +- uninstallsubdirs $(OTHERUNINSTALL) ++uninstall: uninstalllibs uninstall_pkgconfig \ ++ uninstallbin uninstallsbin \ ++ uninstallheaders \ ++ uninstallsubdirs $(OTHERUNINSTALL) + + installprogs: installbin installsbin + +@@ -287,6 +289,26 @@ uninstalllibs: + done \ + fi + ++# ++# pkg-config files ++# ++install_pkgconfig: $(INSTALL_PKGCONFIG) ++ @if test "x$(INSTALL_PKGCONFIG)" != x; then \ ++ $(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(libdir)/pkgconfig; \ ++ for i in $(INSTALL_PKGCONFIG); do \ ++ echo "installing $$i in $(INSTALL_PREFIX)$(libdir)/pkgconfig"; \ ++ done; \ ++ $(INSTALL) $(INSTALL_PKGCONFIG) $(INSTALL_PREFIX)$(libdir)/pkgconfig; \ ++ fi ++ ++uninstall_pkgconfig: ++ @if test "x$(INSTALL_PKGCONFIG)" != x; then \ ++ for i in $(INSTALL_PKGCONFIG); do \ ++ echo "removing $$i from $(INSTALL_PREFIX)$(libdir)/pkgconfig"; \ ++ $(UNINSTALL) $(INSTALL_PREFIX)$(libdir)/pkgconfig/$$i;\ ++ done; \ ++ fi ++ + # + # normal bin binaries + # +diff --git a/configure b/configure +index 5ec44f5ce082..5103a4dc9d88 100755 +--- a/configure ++++ b/configure +@@ -30422,6 +30422,8 @@ ac_config_files="$ac_config_files net-snmp-config:net-snmp-config.in" + + ac_config_files="$ac_config_files net-snmp-create-v3-user:net-snmp-create-v3-user.in" + ++ac_config_files="$ac_config_files netsnmp.pc:netsnmp.pc.in netsnmp-agent.pc:netsnmp-agent.pc.in" ++ + ac_config_files="$ac_config_files dist/generation-scripts/gen-variables:dist/generation-scripts/gen-variables.in" + + ac_config_files="$ac_config_files local/snmpconf" +@@ -31445,6 +31447,8 @@ do + "mibs/Makefile") CONFIG_FILES="$CONFIG_FILES mibs/Makefile:Makefile.top:mibs/Makefile.in:Makefile.rules" ;; + "net-snmp-config") CONFIG_FILES="$CONFIG_FILES net-snmp-config:net-snmp-config.in" ;; + "net-snmp-create-v3-user") CONFIG_FILES="$CONFIG_FILES net-snmp-create-v3-user:net-snmp-create-v3-user.in" ;; ++ "netsnmp.pc") CONFIG_FILES="$CONFIG_FILES netsnmp.pc:netsnmp.pc.in" ;; ++ "netsnmp-agent.pc") CONFIG_FILES="$CONFIG_FILES netsnmp-agent.pc:netsnmp-agent.pc.in" ;; + "dist/generation-scripts/gen-variables") CONFIG_FILES="$CONFIG_FILES dist/generation-scripts/gen-variables:dist/generation-scripts/gen-variables.in" ;; + "local/snmpconf") CONFIG_FILES="$CONFIG_FILES local/snmpconf" ;; + "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; +diff --git a/configure.ac b/configure.ac +index 4c4dce09d488..d62a02da5d88 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -136,6 +136,7 @@ AC_CONFIG_FILES([net-snmp-config:net-snmp-config.in], + [chmod +x net-snmp-config]) + AC_CONFIG_FILES([net-snmp-create-v3-user:net-snmp-create-v3-user.in], + [chmod +x net-snmp-create-v3-user]) ++AC_CONFIG_FILES([netsnmp.pc:netsnmp.pc.in netsnmp-agent.pc:netsnmp-agent.pc.in]) + AC_CONFIG_FILES([dist/generation-scripts/gen-variables:dist/generation-scripts/gen-variables.in]) + AC_CONFIG_FILES([local/snmpconf]) + +diff --git a/netsnmp-agent.pc.in b/netsnmp-agent.pc.in +new file mode 100644 +index 000000000000..3a1c77bbf814 +--- /dev/null ++++ b/netsnmp-agent.pc.in +@@ -0,0 +1,12 @@ ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++includedir=@includedir@ ++libdir=@libdir@ ++ ++Name: netsnmp-agent (@PACKAGE_NAME@) ++Description: SNMP (Simple Network Management Protocol) sub-agent SDK. ++URL: http://www.net-snmp.org ++Version: @PACKAGE_VERSION@ ++Cflags: -I${includedir} ++Libs: -L${libdir} -lnetsnmpmibs -lnetsnmpagent -lnetsnmp ++Libs.private: @LDFLAGS@ @LMIBLIBS@ @LAGENTLIBS@ @PERLLDOPTS_FOR_APPS@ @LNETSNMPLIBS@ @LIBS@ +diff --git a/netsnmp.pc.in b/netsnmp.pc.in +new file mode 100644 +index 000000000000..0a1f5785a4f4 +--- /dev/null ++++ b/netsnmp.pc.in +@@ -0,0 +1,12 @@ ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++includedir=@includedir@ ++libdir=@libdir@ ++ ++Name: netsnmp (@PACKAGE_NAME@) ++Description: SNMP (Simple Network Management Protocol) daemon and applications. ++URL: http://www.net-snmp.org ++Version: @PACKAGE_VERSION@ ++Cflags: -I${includedir} ++Libs: -L${libdir} -lnetsnmp ++Libs.private: @LDFLAGS@ @LNETSNMPLIBS@ @LIBS@ @PERLLDOPTS_FOR_APPS@ +-- +2.21.0.196.g041f5ea1cf98 + diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.8.bb b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.8.bb index 192b6b506..317350e94 100644 --- a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.8.bb +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.8.bb @@ -27,6 +27,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/net-snmp/net-snmp-${PV}.tar.gz \ file://reproducibility-have-printcap.patch \ file://reproducibility-accept-configure-options-from-env.patch \ file://0001-net-snmp-fix-compile-error-disable-des.patch \ + file://0001-Add-pkg-config-support-for-building-applications-and.patch \ " SRC_URI[md5sum] = "63bfc65fbb86cdb616598df1aff6458a" SRC_URI[sha256sum] = "b2fc3500840ebe532734c4786b0da4ef0a5f67e51ef4c86b3345d697e4976adf" -- 2.20.1 From wangmy at cn.fujitsu.com Thu Feb 20 09:40:20 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Thu, 20 Feb 2020 01:40:20 -0800 Subject: [oe] [meta-oe][PATCH] libpeas: upgrade 1.24.1 -> 1.25.3 Message-ID: <1582191622-130680-1-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../libpeas/{libpeas_1.24.1.bb => libpeas_1.25.3.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-gnome/libpeas/{libpeas_1.24.1.bb => libpeas_1.25.3.bb} (80%) diff --git a/meta-oe/recipes-gnome/libpeas/libpeas_1.24.1.bb b/meta-oe/recipes-gnome/libpeas/libpeas_1.25.3.bb similarity index 80% rename from meta-oe/recipes-gnome/libpeas/libpeas_1.24.1.bb rename to meta-oe/recipes-gnome/libpeas/libpeas_1.25.3.bb index 6c8e0e0bf..57419a427 100644 --- a/meta-oe/recipes-gnome/libpeas/libpeas_1.24.1.bb +++ b/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" -- 2.17.1 From wangmy at cn.fujitsu.com Thu Feb 20 09:40:21 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Thu, 20 Feb 2020 01:40:21 -0800 Subject: [oe] [meta-oe][PATCH] makedumpfile: upgrade 1.6.6 -> 1.6.7 In-Reply-To: <1582191622-130680-1-git-send-email-wangmy@cn.fujitsu.com> References: <1582191622-130680-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1582191622-130680-2-git-send-email-wangmy@cn.fujitsu.com> refresh the following patch: 0001-makedumpfile-replace-hardcode-CFLAGS.patch 0003-build-Delete-libebl-from-required-libraries-during-l.patch removed since it is included in 1.6.7 Signed-off-by: Wang Mingyu --- ...makedumpfile-replace-hardcode-CFLAGS.patch | 6 ++-- ...ebl-from-required-libraries-during-l.patch | 34 ------------------- ...umpfile_1.6.6.bb => makedumpfile_1.6.7.bb} | 5 ++- 3 files changed, 5 insertions(+), 40 deletions(-) delete mode 100644 meta-oe/recipes-kernel/makedumpfile/makedumpfile/0003-build-Delete-libebl-from-required-libraries-during-l.patch rename meta-oe/recipes-kernel/makedumpfile/{makedumpfile_1.6.6.bb => makedumpfile_1.6.7.bb} (88%) diff --git a/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch b/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch index c0f82f321..ff093a72b 100644 --- a/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch +++ b/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-oe/recipes-kernel/makedumpfile/makedumpfile/0003-build-Delete-libebl-from-required-libraries-during-l.patch b/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-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 -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 ---- - 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-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.6.bb b/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.7.bb similarity index 88% rename from meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.6.bb rename to meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.7.bb index 6924e39d6..8d1676a4c 100644 --- a/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.6.bb +++ b/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\d+(\.\d+)+)/" -- 2.17.1 From wangmy at cn.fujitsu.com Thu Feb 20 09:40:22 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Thu, 20 Feb 2020 01:40:22 -0800 Subject: [oe] [meta-oe][PATCH] mraa: upgrade 2.0.0 -> 2.1.0 In-Reply-To: <1582191622-130680-1-git-send-email-wangmy@cn.fujitsu.com> References: <1582191622-130680-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1582191622-130680-3-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- meta-oe/recipes-extended/mraa/mraa_git.bb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/meta-oe/recipes-extended/mraa/mraa_git.bb b/meta-oe/recipes-extended/mraa/mraa_git.bb index 6d42c6771..745e4e3b9 100644 --- a/meta-oe/recipes-extended/mraa/mraa_git.bb +++ b/meta-oe/recipes-extended/mraa/mraa_git.bb @@ -3,10 +3,10 @@ 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 \ " -- 2.17.1 From Qi.Chen at windriver.com Thu Feb 20 10:48:31 2020 From: Qi.Chen at windriver.com (Chen Qi) Date: Thu, 20 Feb 2020 18:48:31 +0800 Subject: [oe] [meta-python][PATCH] python3-grpcio: fix do_compile error for native Message-ID: <20200220104831.38506-1-Qi.Chen@windriver.com> When building python3-grpcio-native, we will meet do_compile error because of no 'cc'. In fact, 'cc' is not in our hosttools. So fix to use gcc and make the patch also apply to native. Signed-off-by: Chen Qi --- .../0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch | 6 +++--- .../recipes-devtools/python/python3-grpcio_1.27.1.bb | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch b/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch index 131daace0..f39a82a33 100644 --- a/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch +++ b/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch @@ -1,4 +1,4 @@ -From b02be74a2eff8abc612ef84f30e0fbce6a7f65f5 Mon Sep 17 00:00:00 2001 +1From b02be74a2eff8abc612ef84f30e0fbce6a7f65f5 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 4 Aug 2017 09:04:07 -0700 Subject: [PATCH] setup.py: Do not mix C and C++ compiler options @@ -24,7 +24,7 @@ Signed-off-by: Khem Raj def check_linker_need_libatomic(): """Test if linker on system needs libatomic.""" -+ compiler, cc_args = os.environ.get('CC').split(' ', 1) or 'cc' ++ compiler, cc_args = os.environ.get('CC').split(' ', 1) or 'gcc' code_test = (b'#include \n' + b'int main() { return std::atomic{}; }') - cc_test = subprocess.Popen(['cc', '-x', 'c++', '-std=c++11', '-'], @@ -57,7 +57,7 @@ Signed-off-by: Khem Raj """ # TODO(lidiz) Remove the generated a.out for success tests. - cc_test = subprocess.Popen(['cc', '-x', 'c', '-std=c++11', '-'], -+ compiler, cc_args = os.environ.get('CC').split(' ', 1) or 'cc' ++ compiler, cc_args = os.environ.get('CC').split(' ', 1) or 'gcc' + cc_test = subprocess.Popen([compiler, cc_args, '-x', 'c', '-std=c++11', '-'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, diff --git a/meta-python/recipes-devtools/python/python3-grpcio_1.27.1.bb b/meta-python/recipes-devtools/python/python3-grpcio_1.27.1.bb index bc2b70cf8..42260cb27 100644 --- a/meta-python/recipes-devtools/python/python3-grpcio_1.27.1.bb +++ b/meta-python/recipes-devtools/python/python3-grpcio_1.27.1.bb @@ -6,8 +6,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" DEPENDS += "${PYTHON_PN}-protobuf" -SRC_URI_append_class-target = " file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch \ - file://ppc-boringssl-support.patch \ +SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch" +SRC_URI_append_class-target = " file://ppc-boringssl-support.patch \ file://riscv64_support.patch \ " SRC_URI[md5sum] = "ccaf4e7eb4f031d926fb80035d193b98" -- 2.17.1 From Qi.Chen at windriver.com Thu Feb 20 10:49:10 2020 From: Qi.Chen at windriver.com (Chen Qi) Date: Thu, 20 Feb 2020 18:49:10 +0800 Subject: [oe] [meta-python][PATCH] python3-grpcio: fix do_compile error for native Message-ID: <20200220104910.38976-1-Qi.Chen@windriver.com> When building python3-grpcio-native, we will meet do_compile error because of no 'cc'. In fact, 'cc' is not in our hosttools. So fix to use gcc and make the patch also apply to native. Signed-off-by: Chen Qi --- .../0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch | 6 +++--- .../recipes-devtools/python/python3-grpcio_1.27.1.bb | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch b/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch index 131daace0..f39a82a33 100644 --- a/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch +++ b/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch @@ -1,4 +1,4 @@ -From b02be74a2eff8abc612ef84f30e0fbce6a7f65f5 Mon Sep 17 00:00:00 2001 +1From b02be74a2eff8abc612ef84f30e0fbce6a7f65f5 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 4 Aug 2017 09:04:07 -0700 Subject: [PATCH] setup.py: Do not mix C and C++ compiler options @@ -24,7 +24,7 @@ Signed-off-by: Khem Raj def check_linker_need_libatomic(): """Test if linker on system needs libatomic.""" -+ compiler, cc_args = os.environ.get('CC').split(' ', 1) or 'cc' ++ compiler, cc_args = os.environ.get('CC').split(' ', 1) or 'gcc' code_test = (b'#include \n' + b'int main() { return std::atomic{}; }') - cc_test = subprocess.Popen(['cc', '-x', 'c++', '-std=c++11', '-'], @@ -57,7 +57,7 @@ Signed-off-by: Khem Raj """ # TODO(lidiz) Remove the generated a.out for success tests. - cc_test = subprocess.Popen(['cc', '-x', 'c', '-std=c++11', '-'], -+ compiler, cc_args = os.environ.get('CC').split(' ', 1) or 'cc' ++ compiler, cc_args = os.environ.get('CC').split(' ', 1) or 'gcc' + cc_test = subprocess.Popen([compiler, cc_args, '-x', 'c', '-std=c++11', '-'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, diff --git a/meta-python/recipes-devtools/python/python3-grpcio_1.27.1.bb b/meta-python/recipes-devtools/python/python3-grpcio_1.27.1.bb index bc2b70cf8..42260cb27 100644 --- a/meta-python/recipes-devtools/python/python3-grpcio_1.27.1.bb +++ b/meta-python/recipes-devtools/python/python3-grpcio_1.27.1.bb @@ -6,8 +6,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" DEPENDS += "${PYTHON_PN}-protobuf" -SRC_URI_append_class-target = " file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch \ - file://ppc-boringssl-support.patch \ +SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch" +SRC_URI_append_class-target = " file://ppc-boringssl-support.patch \ file://riscv64_support.patch \ " SRC_URI[md5sum] = "ccaf4e7eb4f031d926fb80035d193b98" -- 2.17.1 From peter.kjellerstedt at axis.com Thu Feb 20 12:52:06 2020 From: peter.kjellerstedt at axis.com (Peter Kjellerstedt) Date: Thu, 20 Feb 2020 12:52:06 +0000 Subject: [oe] [meta-oe][PATCH] meta-oe: master: remmina - use PACKAGECONFIG for spice In-Reply-To: <20200219115654.25186-1-dl9pf@gmx.de> References: <20200219115654.25186-1-dl9pf@gmx.de> Message-ID: <2d5076caff4846e4b8df0e5f3edc5f75@XBOX03.axis.com> > -----Original Message----- > From: openembedded-devel-bounces at lists.openembedded.org devel-bounces at lists.openembedded.org> On Behalf Of Jan-Simon Moeller > Sent: den 19 februari 2020 12:57 > To: openembedded-devel at lists.openembedded.org > Subject: [oe] [meta-oe][PATCH] meta-oe: master: remmina - use PACKAGECONFIG for spice Change the subject to: [meta-oe][PATCH] remmina: use PACKAGECONFIG for spice The target layer and branch should be specified within [] as they are only there for the review process. Typically you only prefix the Git commit subject with ": " and then use, e.g., `git format-patch --subject-prefix='meta-oe][master][PATCH' ...` to create the patch with the appropriate prefixes. > remmina depends on spice and spice-protocol but they are in meta-networking. > Use the PACKAGECONFIG flag to avoid hardcoding the dependency. > > Signed-off-by: Jan-Simon Moeller > --- > meta-oe/recipes-support/remmina/remmina_1.3.6.bb | 10 +++------- > 1 file changed, 3 insertions(+), 7 deletions(-) > > diff --git a/meta-oe/recipes-support/remmina/remmina_1.3.6.bb b/meta-oe/recipes-support/remmina/remmina_1.3.6.bb > index f9963ff65..f9860a11f 100644 > --- a/meta-oe/recipes-support/remmina/remmina_1.3.6.bb > +++ b/meta-oe/recipes-support/remmina/remmina_1.3.6.bb > @@ -5,8 +5,6 @@ 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_append_x86 = " spice spice-protocol" > -DEPENDS_append_x86-64 = " spice spice-protocol" > > DEPENDS_append_libc-musl = " libexecinfo" > LDFLAGS_append_libc-musl = " -lexecinfo" > @@ -23,11 +21,7 @@ inherit cmake features_check mime-xdg > # 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" > - > +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 +30,8 @@ do_install_append(){ > rm -rf ${D}/${datadir}/gnome-session > } > > +PACKAGECONFIG[spice] = "-DWITH_SPICE=ON, -DWITH_SPICE=OFF, spice spice-protocol" > + PACKAGECONFIGs are typically placed before inherit in the recipes. > RDEPENDS_${PN} = "bash" > > FILES_${PN}_append = " ${datadir}/icons/hicolor/*" > -- > 2.11.0 //Peter From martin.jansa at gmail.com Thu Feb 20 14:48:48 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Thu, 20 Feb 2020 15:48:48 +0100 Subject: [oe] S variable for svn fetcher Was: State of OE world - 2020-02-18 In-Reply-To: References: Message-ID: <20200220144848.msiyguq2bsmqokxc@jama> On Wed, Feb 19, 2020 at 09:29:58AM -0800, Khem Raj wrote: > http://www.openembedded.org/wiki/Bitbake_World_Status > > == Failed tasks /media/ra_build_share/buildlogs/oe/world/dunfell/2020-02-18 == > > INFO: jenkins-job.sh-1.8.46 Complete log available at > /media/ra_build_share/buildlogs/oe/world/dunfell//media/ra_build_share/buildlogs/oe/world/dunfell/log.report.20200219_150007.log > > === common (0) === > > === common-x86 (0) === > > === qemuarm (0) === > > === qemuarm64 (0) === > > === qemux86 (0) === > > === qemux86_64 (0) === Looks great! Thanks I was running some world builds recently as well and was surprised that there are a few failing recipes in meta-oe: s3c24xx-gpio s3c64xx-gpio wmiconfig usbpath which are all using svn fetcher. Any idea why these aren't shown in our build? I was able to reproduce this on thud as well as latest master build: /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb:do_patch /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb:do_compile /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb:do_compile /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb:do_populate_lic /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb:do_populate_lic /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb:do_patch they have all the same root cause and that is that the S variable points to directory where the sources used to be, but now they are checked out somewhere else, e.g. s3c24xx-gpio: LIC_FILES_CHKSUM = "file://gpio.c;endline=12;md5=cfb91c686857b2e60852b4925d90a3e1" SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http" S = "${WORKDIR}/gpio" And now S looks like this: $ ls /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/s3c24xx-gpio/1.0+svnr4949-r2/gpio/ branches trunk While before I believe it was checking out just this directory (as ${WORKDIR}/gpio): $ ls /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/s3c24xx-gpio/1.0+svnr4949-r2/gpio/trunk/src/target/gpio/ gpio.c gpio-glamo.c gpio-s3c6410.c Makefile README Anyone still actively using svn fetcher for something? I'll check with even older bitbake to see when it changed, but it's still surprising that you wouldn't be seeing it with latest bitbake in world builds. Cheers, -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: not available URL: From trini at konsulko.com Thu Feb 20 14:57:50 2020 From: trini at konsulko.com (Tom Rini) Date: Thu, 20 Feb 2020 09:57:50 -0500 Subject: [oe] S variable for svn fetcher Was: State of OE world - 2020-02-18 In-Reply-To: <20200220144848.msiyguq2bsmqokxc@jama> References: <20200220144848.msiyguq2bsmqokxc@jama> Message-ID: <20200220145750.GB18302@bill-the-cat> On Thu, Feb 20, 2020 at 03:48:48PM +0100, Martin Jansa wrote: > On Wed, Feb 19, 2020 at 09:29:58AM -0800, Khem Raj wrote: > > http://www.openembedded.org/wiki/Bitbake_World_Status > > > > == Failed tasks /media/ra_build_share/buildlogs/oe/world/dunfell/2020-02-18 == > > > > INFO: jenkins-job.sh-1.8.46 Complete log available at > > /media/ra_build_share/buildlogs/oe/world/dunfell//media/ra_build_share/buildlogs/oe/world/dunfell/log.report.20200219_150007.log > > > > === common (0) === > > > > === common-x86 (0) === > > > > === qemuarm (0) === > > > > === qemuarm64 (0) === > > > > === qemux86 (0) === > > > > === qemux86_64 (0) === > > Looks great! Thanks > > I was running some world builds recently as well and was surprised that > there are a few failing recipes in meta-oe: > s3c24xx-gpio > s3c64xx-gpio > wmiconfig > usbpath > which are all using svn fetcher. > > Any idea why these aren't shown in our build? I was able to reproduce > this on thud as well as latest master build: > > /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb:do_patch > /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb:do_compile > /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb:do_compile > /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb:do_populate_lic > /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb:do_populate_lic > /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb:do_patch > > they have all the same root cause and that is that the > S variable points to directory where the sources used to be, but now > they are checked out somewhere else, e.g. s3c24xx-gpio: > > LIC_FILES_CHKSUM = "file://gpio.c;endline=12;md5=cfb91c686857b2e60852b4925d90a3e1" > > SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http" > > S = "${WORKDIR}/gpio" > > And now S looks like this: > $ ls /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/s3c24xx-gpio/1.0+svnr4949-r2/gpio/ > branches trunk > > While before I believe it was checking out just this directory (as ${WORKDIR}/gpio): > $ ls /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/s3c24xx-gpio/1.0+svnr4949-r2/gpio/trunk/src/target/gpio/ > gpio.c gpio-glamo.c gpio-s3c6410.c Makefile README > > Anyone still actively using svn fetcher for something? > > I'll check with even older bitbake to see when it changed, but it's > still surprising that you wouldn't be seeing it with latest bitbake > in world builds. Chiming in as this caught my eye. I've run in to this perhaps with 'warrior' as well recently for a customer. I assumed it was just that it had been so long since I had used SVN I had just mis-remembered how S needed to be set. I also as a tangent noticed that AUTOREV for svn seems broken as it doesn't ensure we have subversion-native in the sysroot ('svn command not found' is the relevant part of the failure). -- Tom From viktor.rosendahl at gmail.com Thu Feb 20 14:59:55 2020 From: viktor.rosendahl at gmail.com (Viktor Rosendahl) Date: Thu, 20 Feb 2020 15:59:55 +0100 Subject: [oe] [zeus][PATCH 0/3] Make lcov work with gcc-9 (backport) Message-ID: <20200220145958.38718-1-viktor.rosendahl@bmw.de> Hi all, These are the patches that makes lcov work with gcc-9 that were merged into master recently. The commits in master are: 416c4f7d5 perl: Add libperlio-gzip-perl and libjson-perl 64441dc46 lcov: Add support for intermediate JSON format 7002e7dd3 lcov: Add missing missing RDEPEND and enable nativesdk They have the same content as the ones in master, except that the third patch adds one additional missing RDEPEND, which was alreay fixed in master. best regards, Viktor Viktor Rosendahl (3): perl: Add libperlio-gzip-perl and libjson-perl lcov: Add support for intermediate JSON format lcov: Add missing missing RDEPEND and enable nativesdk .../perl/libjson-perl_4.02000.bb | 22 + .../perl/libperlio-gzip-perl_0.20.bb | 30 + ...Add-intermediate-text-format-support.patch | 898 ++++++++++++++++++ ...Add-intermediate-JSON-format-support.patch | 247 +++++ meta-oe/recipes-support/lcov/lcov_1.14.bb | 12 +- 5 files changed, 1208 insertions(+), 1 deletion(-) create mode 100644 meta-oe/recipes-devtools/perl/libjson-perl_4.02000.bb create mode 100644 meta-oe/recipes-devtools/perl/libperlio-gzip-perl_0.20.bb create mode 100644 meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch create mode 100644 meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch -- 2.17.1 From viktor.rosendahl at gmail.com Thu Feb 20 14:59:56 2020 From: viktor.rosendahl at gmail.com (Viktor Rosendahl) Date: Thu, 20 Feb 2020 15:59:56 +0100 Subject: [oe] [zeus][PATCH 1/3] perl: Add libperlio-gzip-perl and libjson-perl In-Reply-To: <20200220145958.38718-1-viktor.rosendahl@bmw.de> References: <20200220145958.38718-1-viktor.rosendahl@bmw.de> Message-ID: <20200220145958.38718-2-viktor.rosendahl@bmw.de> From: Viktor Rosendahl We need to add these perl modules in order to make lcov compatible with gcc9. Signed-off-by: Viktor Rosendahl --- .../perl/libjson-perl_4.02000.bb | 22 ++++++++++++++ .../perl/libperlio-gzip-perl_0.20.bb | 30 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 meta-oe/recipes-devtools/perl/libjson-perl_4.02000.bb create mode 100644 meta-oe/recipes-devtools/perl/libperlio-gzip-perl_0.20.bb diff --git a/meta-oe/recipes-devtools/perl/libjson-perl_4.02000.bb b/meta-oe/recipes-devtools/perl/libjson-perl_4.02000.bb new file mode 100644 index 000000000..4e5a8a6ff --- /dev/null +++ b/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-oe/recipes-devtools/perl/libperlio-gzip-perl_0.20.bb b/meta-oe/recipes-devtools/perl/libperlio-gzip-perl_0.20.bb new file mode 100644 index 000000000..ffe7a7d99 --- /dev/null +++ b/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" -- 2.17.1 From viktor.rosendahl at gmail.com Thu Feb 20 14:59:58 2020 From: viktor.rosendahl at gmail.com (Viktor Rosendahl) Date: Thu, 20 Feb 2020 15:59:58 +0100 Subject: [oe] [zeus][PATCH 3/3] lcov: Add missing missing RDEPEND and enable nativesdk In-Reply-To: <20200220145958.38718-1-viktor.rosendahl@bmw.de> References: <20200220145958.38718-1-viktor.rosendahl@bmw.de> Message-ID: <20200220145958.38718-4-viktor.rosendahl@bmw.de> From: Viktor Rosendahl It seems like geninfo is depending on perl-module-digest-md5 and gcov-symlinks, so they should be added here. Also, lcov is useful in SDKs, so let's enable the building of native and nativesdk packages. Signed-off-by: Viktor Rosendahl --- meta-oe/recipes-support/lcov/lcov_1.14.bb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/meta-oe/recipes-support/lcov/lcov_1.14.bb b/meta-oe/recipes-support/lcov/lcov_1.14.bb index ac0505829..14718184b 100755 --- a/meta-oe/recipes-support/lcov/lcov_1.14.bb +++ b/meta-oe/recipes-support/lcov/lcov_1.14.bb @@ -10,11 +10,13 @@ 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 \ + perl-module-digest-md5 \ perl-module-digest-sha \ perl-module-constant \ perl-module-cwd \ @@ -57,3 +59,4 @@ do_install() { oe_runmake install PREFIX=${D}${prefix} CFG_DIR=${D}${sysconfdir} } +BBCLASSEXTEND = "native nativesdk" -- 2.17.1 From viktor.rosendahl at gmail.com Thu Feb 20 14:59:57 2020 From: viktor.rosendahl at gmail.com (Viktor Rosendahl) Date: Thu, 20 Feb 2020 15:59:57 +0100 Subject: [oe] [zeus][PATCH 2/3] lcov: Add support for intermediate JSON format In-Reply-To: <20200220145958.38718-1-viktor.rosendahl@bmw.de> References: <20200220145958.38718-1-viktor.rosendahl@bmw.de> Message-ID: <20200220145958.38718-3-viktor.rosendahl@bmw.de> From: Viktor Rosendahl gcc-9 uses this intermediate JSON format, so we will need these two patches to make lcov work again. Signed-off-by: Viktor Rosendahl --- ...Add-intermediate-text-format-support.patch | 898 ++++++++++++++++++ ...Add-intermediate-JSON-format-support.patch | 247 +++++ meta-oe/recipes-support/lcov/lcov_1.14.bb | 9 +- 3 files changed, 1153 insertions(+), 1 deletion(-) create mode 100644 meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch create mode 100644 meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch diff --git a/meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch b/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-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 +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 +--- + 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:, ++ # lcount:,, ++ 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:,, ++ 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:,,, ++ # ++ 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:,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 () { + 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-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch b/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-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 +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 +--- + 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-oe/recipes-support/lcov/lcov_1.14.bb b/meta-oe/recipes-support/lcov/lcov_1.14.bb index fd02f4a76..ac0505829 100755 --- a/meta-oe/recipes-support/lcov/lcov_1.14.bb +++ b/meta-oe/recipes-support/lcov/lcov_1.14.bb @@ -10,6 +10,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" RDEPENDS_${PN} += " \ gcov \ + libjson-perl \ + libperlio-gzip-perl \ perl \ perl-module-filehandle \ perl-module-getopt-std \ @@ -18,6 +20,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 \ @@ -41,7 +44,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" -- 2.17.1 From bunk at stusta.de Thu Feb 20 15:16:20 2020 From: bunk at stusta.de (Adrian Bunk) Date: Thu, 20 Feb 2020 17:16:20 +0200 Subject: [oe] S variable for svn fetcher Was: State of OE world - 2020-02-18 In-Reply-To: <20200220144848.msiyguq2bsmqokxc@jama> References: <20200220144848.msiyguq2bsmqokxc@jama> Message-ID: <20200220151620.GA30034@localhost> On Thu, Feb 20, 2020 at 03:48:48PM +0100, Martin Jansa wrote: >... > Any idea why these aren't shown in our build? >... What is your mirror configuration? Default configuration downloads the tarball from [1]. > Cheers, cu Adrian [1] http://downloads.yoctoproject.org/mirror/sources/ From akuster808 at gmail.com Thu Feb 20 15:17:26 2020 From: akuster808 at gmail.com (akuster808) Date: Thu, 20 Feb 2020 07:17:26 -0800 Subject: [oe] [meta-oe][zeus][PATCH] meta-oe: zeus: remmina - use PACKAGECONFIG for spice In-Reply-To: <20200219115740.25272-1-dl9pf@gmx.de> References: <20200219115740.25272-1-dl9pf@gmx.de> Message-ID: Jan, On 2/19/20 3:57 AM, Jan-Simon Moeller wrote: > remmina depends on spice and spice-protocol but they are in meta-networking. > Use the PACKAGECONFIG flag to avoid hardcoding the dependency. > > Signed-off-by: Jan-Simon Moeller > --- > meta-oe/recipes-support/remmina/remmina_1.3.6.bb | 10 +++------- > 1 file changed, 3 insertions(+), 7 deletions(-) > > diff --git a/meta-oe/recipes-support/remmina/remmina_1.3.6.bb b/meta-oe/recipes-support/remmina/remmina_1.3.6.bb > index 82b803a4d..5f25231c2 100644 > --- a/meta-oe/recipes-support/remmina/remmina_1.3.6.bb > +++ b/meta-oe/recipes-support/remmina/remmina_1.3.6.bb > @@ -5,8 +5,6 @@ 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_append_x86 = " spice spice-protocol" > -DEPENDS_append_x86-64 = " spice spice-protocol" > > DEPENDS_append_libc-musl = " libexecinfo" > LDFLAGS_append_libc-musl = " -lexecinfo" > @@ -23,11 +21,7 @@ inherit cmake distro_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" > - > +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 +30,8 @@ do_install_append(){ > rm -rf ${D}/${datadir}/gnome-session > } > > +PACKAGECONFIG[spice] = "-DWITH_SPICE=ON, -DWITH_SPICE=OFF, spice spice-protocol" The above needs to be set for x86 and x86-64 systems to make this change behave as it did before and I don't see that so its not a viable zeus candidate. - armin > + > RDEPENDS_${PN} = "bash" > > FILES_${PN}_append = " ${datadir}/icons/hicolor/*" > -- > 2.11.0 > From martin.jansa at gmail.com Thu Feb 20 15:37:58 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Thu, 20 Feb 2020 16:37:58 +0100 Subject: [oe] S variable for svn fetcher Was: State of OE world - 2020-02-18 In-Reply-To: <20200220151620.GA30034@localhost> References: <20200220144848.msiyguq2bsmqokxc@jama> <20200220151620.GA30034@localhost> Message-ID: <20200220153758.o25tn46hhewgmasd@jama> On Thu, Feb 20, 2020 at 05:16:20PM +0200, Adrian Bunk wrote: > On Thu, Feb 20, 2020 at 03:48:48PM +0100, Martin Jansa wrote: > >... > > Any idea why these aren't shown in our build? > >... > > What is your mirror configuration? > > Default configuration downloads the tarball from [1]. Maybe I'm missing your point, but these aren't fetch issues. Even when bitbake fetches the tarball (with the svn repo), svn fetcher will still do the actual checkout to WORKDIR, so it will fail the same when fetching from upstream repo with svn or when using tarball. Cheers, -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: not available URL: From raj.khem at gmail.com Thu Feb 20 15:41:35 2020 From: raj.khem at gmail.com (Khem Raj) Date: Thu, 20 Feb 2020 07:41:35 -0800 Subject: [oe] [meta-oe][PATCH v1 1/4] Ply: Add recipe for git version In-Reply-To: <20200218052544.9467-2-leo.yan@linaro.org> References: <20200218052544.9467-1-leo.yan@linaro.org> <20200218052544.9467-2-leo.yan@linaro.org> Message-ID: fails to build fot x86/musl http://errors.yoctoproject.org/Errors/Details/391871/ On Mon, Feb 17, 2020 at 9:26 PM Leo Yan wrote: > > Ply is a light-weight eBPF tool which compiles ply script or one-liner > to Linux BPF programs and attaches to kprobes and tracepoints. It > doesn't require external dependencies except libc, so it's very friendly > for embedded system usage. > > This patch adds the recipe to support ply building for git version. > > Signed-off-by: Leo Yan > --- > meta-oe/recipes-devtools/ply/ply_git.bb | 27 +++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > create mode 100644 meta-oe/recipes-devtools/ply/ply_git.bb > > diff --git a/meta-oe/recipes-devtools/ply/ply_git.bb b/meta-oe/recipes-devtools/ply/ply_git.bb > new file mode 100644 > index 000000000..b8295386c > --- /dev/null > +++ b/meta-oe/recipes-devtools/ply/ply_git.bb > @@ -0,0 +1,27 @@ > +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" > + > +do_configure_prepend() { > + ( cd ${S}; ./autogen.sh; cd - ) > +} > + > +do_configure() { > + ( cd ${S}; ./configure --host=${TARGET_SYS} --prefix=${D}${prefix}; cd - ) > +} > + > +do_compile() { > + ( cd ${S}; oe_runmake; cd - ) > +} > + > +do_install() { > + ( cd ${S}; oe_runmake install; cd - ) > +} > -- > 2.17.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From raj.khem at gmail.com Thu Feb 20 15:43:19 2020 From: raj.khem at gmail.com (Khem Raj) Date: Thu, 20 Feb 2020 07:43:19 -0800 Subject: [oe] [meta-oe][PATCH] mraa: upgrade 2.0.0 -> 2.1.0 In-Reply-To: <1582191622-130680-3-git-send-email-wangmy@cn.fujitsu.com> References: <1582191622-130680-1-git-send-email-wangmy@cn.fujitsu.com> <1582191622-130680-3-git-send-email-wangmy@cn.fujitsu.com> Message-ID: fails on musl/x86 http://errors.yoctoproject.org/Errors/Details/391870/ On Wed, Feb 19, 2020 at 6:29 PM Wang Mingyu wrote: > > Signed-off-by: Wang Mingyu > --- > meta-oe/recipes-extended/mraa/mraa_git.bb | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/meta-oe/recipes-extended/mraa/mraa_git.bb b/meta-oe/recipes-extended/mraa/mraa_git.bb > index 6d42c6771..745e4e3b9 100644 > --- a/meta-oe/recipes-extended/mraa/mraa_git.bb > +++ b/meta-oe/recipes-extended/mraa/mraa_git.bb > @@ -3,10 +3,10 @@ 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" > please describe why this changed in commit msg > -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 \ > " > -- > 2.17.1 > > > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From raj.khem at gmail.com Thu Feb 20 16:10:07 2020 From: raj.khem at gmail.com (Khem Raj) Date: Thu, 20 Feb 2020 08:10:07 -0800 Subject: [oe] S variable for svn fetcher Was: State of OE world - 2020-02-18 In-Reply-To: <20200220144848.msiyguq2bsmqokxc@jama> References: <20200220144848.msiyguq2bsmqokxc@jama> Message-ID: On Thu, Feb 20, 2020 at 6:48 AM Martin Jansa wrote: > > On Wed, Feb 19, 2020 at 09:29:58AM -0800, Khem Raj wrote: > > http://www.openembedded.org/wiki/Bitbake_World_Status > > > > == Failed tasks /media/ra_build_share/buildlogs/oe/world/dunfell/2020-02-18 == > > > > INFO: jenkins-job.sh-1.8.46 Complete log available at > > /media/ra_build_share/buildlogs/oe/world/dunfell//media/ra_build_share/buildlogs/oe/world/dunfell/log.report.20200219_150007.log > > > > === common (0) === > > > > === common-x86 (0) === > > > > === qemuarm (0) === > > > > === qemuarm64 (0) === > > > > === qemux86 (0) === > > > > === qemux86_64 (0) === > > Looks great! Thanks > > I was running some world builds recently as well and was surprised that > there are a few failing recipes in meta-oe: > s3c24xx-gpio > s3c64xx-gpio > wmiconfig > usbpath > which are all using svn fetcher. > > Any idea why these aren't shown in our build? I was able to reproduce > this on thud as well as latest master build: > perhaps it might be due to the fact that yoe distro uses yocto and oe source mirrors for tarballs > /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb:do_patch > /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb:do_compile > /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb:do_compile > /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb:do_populate_lic > /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb:do_populate_lic > /OE/build/oe-core/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb:do_patch > > they have all the same root cause and that is that the > S variable points to directory where the sources used to be, but now > they are checked out somewhere else, e.g. s3c24xx-gpio: > > LIC_FILES_CHKSUM = "file://gpio.c;endline=12;md5=cfb91c686857b2e60852b4925d90a3e1" > > SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http" > > S = "${WORKDIR}/gpio" > > And now S looks like this: > $ ls /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/s3c24xx-gpio/1.0+svnr4949-r2/gpio/ > branches trunk > > While before I believe it was checking out just this directory (as ${WORKDIR}/gpio): > $ ls /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/s3c24xx-gpio/1.0+svnr4949-r2/gpio/trunk/src/target/gpio/ > gpio.c gpio-glamo.c gpio-s3c6410.c Makefile README > > Anyone still actively using svn fetcher for something? > > I'll check with even older bitbake to see when it changed, but it's > still surprising that you wouldn't be seeing it with latest bitbake > in world builds. > > Cheers, From bunk at stusta.de Thu Feb 20 16:11:59 2020 From: bunk at stusta.de (Adrian Bunk) Date: Thu, 20 Feb 2020 18:11:59 +0200 Subject: [oe] S variable for svn fetcher Was: State of OE world - 2020-02-18 In-Reply-To: <20200220153758.o25tn46hhewgmasd@jama> References: <20200220144848.msiyguq2bsmqokxc@jama> <20200220151620.GA30034@localhost> <20200220153758.o25tn46hhewgmasd@jama> Message-ID: <20200220161159.GB30034@localhost> On Thu, Feb 20, 2020 at 04:37:58PM +0100, Martin Jansa wrote: > On Thu, Feb 20, 2020 at 05:16:20PM +0200, Adrian Bunk wrote: > > On Thu, Feb 20, 2020 at 03:48:48PM +0100, Martin Jansa wrote: > > >... > > > Any idea why these aren't shown in our build? > > >... > > > > What is your mirror configuration? > > > > Default configuration downloads the tarball from [1]. > > Maybe I'm missing your point, but these aren't fetch issues. >... MIRRORS = "" (and deleting the downloaded tar) is what I needed for getting a build failure. > Cheers, cu Adrian From martin.jansa at gmail.com Thu Feb 20 16:23:12 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Thu, 20 Feb 2020 17:23:12 +0100 Subject: [oe] S variable for svn fetcher Was: State of OE world - 2020-02-18 In-Reply-To: <20200220161159.GB30034@localhost> References: <20200220144848.msiyguq2bsmqokxc@jama> <20200220151620.GA30034@localhost> <20200220153758.o25tn46hhewgmasd@jama> <20200220161159.GB30034@localhost> Message-ID: <20200220162312.cqh5bwvdwxjp362g@jama> On Thu, Feb 20, 2020 at 06:11:59PM +0200, Adrian Bunk wrote: > On Thu, Feb 20, 2020 at 04:37:58PM +0100, Martin Jansa wrote: > > On Thu, Feb 20, 2020 at 05:16:20PM +0200, Adrian Bunk wrote: > > > On Thu, Feb 20, 2020 at 03:48:48PM +0100, Martin Jansa wrote: > > > >... > > > > Any idea why these aren't shown in our build? > > > >... > > > > > > What is your mirror configuration? > > > > > > Default configuration downloads the tarball from [1]. > > > > Maybe I'm missing your point, but these aren't fetch issues. > >... > > MIRRORS = "" (and deleting the downloaded tar) is what I needed for > getting a build failure. OK, I see now, sorry. That explains why it's not shown in khem's builds and might be broken well before thud already, the tarball created here today: $ tar xvf ../downloads/gpio_svn.openmoko.org_.trunk.src.target_4949_.tar.gz gpio/ gpio/trunk/ gpio/trunk/doc/ gpio/trunk/doc/hardware/ gpio/trunk/doc/hardware/GTA01Bv3/ gpio/trunk/doc/hardware/GTA01Bv3/gpio.txt gpio/trunk/doc/hardware/GTA01Bv3/pmu-voltage.txt ... while the corresponding tarball on mirror: http://sources.openembedded.org/gpio_svn.openmoko.org_.trunk.src.target_4949_.tar.gz $ tar xvf gpio_svn.openmoko.org_.trunk.src.target_4949_.tar.gz gpio/ gpio/gpio-s3c6410.c gpio/Makefile gpio/gpio.c gpio/gpio-glamo.c gpio/README Will check when it got broken before thud. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: not available URL: From raj.khem at gmail.com Thu Feb 20 16:26:30 2020 From: raj.khem at gmail.com (Khem Raj) Date: Thu, 20 Feb 2020 08:26:30 -0800 Subject: [oe] S variable for svn fetcher Was: State of OE world - 2020-02-18 In-Reply-To: <20200220153758.o25tn46hhewgmasd@jama> References: <20200220144848.msiyguq2bsmqokxc@jama> <20200220151620.GA30034@localhost> <20200220153758.o25tn46hhewgmasd@jama> Message-ID: On Thu, Feb 20, 2020 at 7:38 AM Martin Jansa wrote: > > On Thu, Feb 20, 2020 at 05:16:20PM +0200, Adrian Bunk wrote: > > On Thu, Feb 20, 2020 at 03:48:48PM +0100, Martin Jansa wrote: > > >... > > > Any idea why these aren't shown in our build? > > >... > > > > What is your mirror configuration? > > > > Default configuration downloads the tarball from [1]. > > Maybe I'm missing your point, but these aren't fetch issues. > > Even when bitbake fetches the tarball (with the svn repo), svn fetcher > will still do the actual checkout to WORKDIR, so it will fail the same > when fetching from upstream repo with svn or when using tarball. > they could have been fetched long time ago, perhaps it changed in this area after that when fetching fresh repos, just guessing > Cheers, From raj.khem at gmail.com Thu Feb 20 16:57:27 2020 From: raj.khem at gmail.com (Khem Raj) Date: Thu, 20 Feb 2020 08:57:27 -0800 Subject: [oe] [meta-oe][PATCH] oprofile: Fix build with bfd 2.34+ Message-ID: <20200220165727.3714809-1-raj.khem@gmail.com> Signed-off-by: Khem Raj --- meta-oe/recipes-kernel/oprofile/oprofile.inc | 1 + .../0001-Use-new-bfd-APIs-from-2.34.patch | 79 +++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 meta-oe/recipes-kernel/oprofile/oprofile/0001-Use-new-bfd-APIs-from-2.34.patch diff --git a/meta-oe/recipes-kernel/oprofile/oprofile.inc b/meta-oe/recipes-kernel/oprofile/oprofile.inc index a9ee775d45..0e1e2ed8c9 100644 --- a/meta-oe/recipes-kernel/oprofile/oprofile.inc +++ b/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\d+(\.\d+)+)/" UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/oprofile/files/oprofile/" diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/0001-Use-new-bfd-APIs-from-2.34.patch b/meta-oe/recipes-kernel/oprofile/oprofile/0001-Use-new-bfd-APIs-from-2.34.patch new file mode 100644 index 0000000000..faf56d1168 --- /dev/null +++ b/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 +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 +--- + 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 + -- 2.25.1 From martin.jansa at gmail.com Thu Feb 20 17:34:21 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Thu, 20 Feb 2020 18:34:21 +0100 Subject: [oe] S variable for svn fetcher Was: State of OE world - 2020-02-18 In-Reply-To: <20200220162312.cqh5bwvdwxjp362g@jama> References: <20200220144848.msiyguq2bsmqokxc@jama> <20200220151620.GA30034@localhost> <20200220153758.o25tn46hhewgmasd@jama> <20200220161159.GB30034@localhost> <20200220162312.cqh5bwvdwxjp362g@jama> Message-ID: <20200220173421.egafqfq25kbtr4a4@jama> On Thu, Feb 20, 2020 at 05:23:12PM +0100, Martin Jansa wrote: > On Thu, Feb 20, 2020 at 06:11:59PM +0200, Adrian Bunk wrote: > > On Thu, Feb 20, 2020 at 04:37:58PM +0100, Martin Jansa wrote: > > > On Thu, Feb 20, 2020 at 05:16:20PM +0200, Adrian Bunk wrote: > > > > On Thu, Feb 20, 2020 at 03:48:48PM +0100, Martin Jansa wrote: > > > > >... > > > > > Any idea why these aren't shown in our build? > > > > >... > > > > > > > > What is your mirror configuration? > > > > > > > > Default configuration downloads the tarball from [1]. > > > > > > Maybe I'm missing your point, but these aren't fetch issues. > > >... > > > > MIRRORS = "" (and deleting the downloaded tar) is what I needed for > > getting a build failure. > > OK, I see now, sorry. > > That explains why it's not shown in khem's builds and might be broken > well before thud already, the tarball created here today: > > $ tar xvf ../downloads/gpio_svn.openmoko.org_.trunk.src.target_4949_.tar.gz > gpio/ > gpio/trunk/ > gpio/trunk/doc/ > gpio/trunk/doc/hardware/ > gpio/trunk/doc/hardware/GTA01Bv3/ > gpio/trunk/doc/hardware/GTA01Bv3/gpio.txt > gpio/trunk/doc/hardware/GTA01Bv3/pmu-voltage.txt > ... > > while the corresponding tarball on mirror: > http://sources.openembedded.org/gpio_svn.openmoko.org_.trunk.src.target_4949_.tar.gz > $ tar xvf gpio_svn.openmoko.org_.trunk.src.target_4949_.tar.gz > gpio/ > gpio/gpio-s3c6410.c > gpio/Makefile > gpio/gpio.c > gpio/gpio-glamo.c > gpio/README > > Will check when it got broken before thud. It's still reproducible in pyro, so probably not caused by changes in OE. There is one more recipe using svn in meta-multimedia which works fine: meta-multimedia/recipes-dvb/oscam/oscam_svn.bb:SRC_URI = "svn://www.streamboard.tv/svn/oscam;module=trunk;protocol=http \ The rest are all from svn.openmoko.org: meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb:SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http" meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb:SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http" meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb:SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=sjf2410-linux;protocol=http \ meta-oe/recipes-support/usbpath/usbpath_svn.bb:SRC_URI = "svn://svn.openmoko.org/trunk/src/host;module=usbpath;protocol=http \ meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb:SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=AR6kSDK.build_sw.18;protocol=http \ And now this leads to do_fetch running: svn --non-interactive --trust-server-cert co --no-auth-cache --ignore-externals -r 4949 http://svn.openmoko.org/trunk/src/target/gpio at 4949 gpio as before, but now it redirects to github: Redirecting to URL 'https://github.com/openmoko/openmoko-svn': A gpio/branches A gpio/branches/oe A gpio/branches/oe/pre-20070305 A gpio/branches/oe/pre-20070305/README A gpio/branches/oe/pre-20070305/classes A gpio/branches/oe/pre-20070305/classes/autotools.bbclass A gpio/branches/oe/pre-20070305/classes/base.bbclass A gpio/branches/oe/pre-20070305/classes/openmoko-base.bbclass A gpio/branches/oe/pre-20070305/classes/openmoko-panel-plugin.bbclass .. and the svn bridge to github probably doesn't work exactly the same as the native svn repo used to work, but I don't see it explicitly mentioned in: https://help.github.com/en/github/importing-your-projects-to-github/support-for-subversion-clients So to resolve this quickly I'm going to send SRC_URI updates for these recipes to just use git fetcher from: https://github.com/openmoko/openmoko-svn directly. I don't think anyone is using these nowadays, so it's also fine with me to just delete them all, which I'll do in separate follow-up commit in case someone tries to resurrect them later in own layer. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: not available URL: From joe.slater at windriver.com Thu Feb 20 17:34:31 2020 From: joe.slater at windriver.com (Joe Slater) Date: Thu, 20 Feb 2020 09:34:31 -0800 Subject: [oe] [meta-python2][PATCH 1/1] python-lxml: fix installation Message-ID: <20200220173431.23452-1-joe.slater@windriver.com> Inherit setuptools before adding to variables defined in it. Signed-off-by: Joe Slater --- recipes-devtools/python/python-lxml_4.4.2.bb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes-devtools/python/python-lxml_4.4.2.bb b/recipes-devtools/python/python-lxml_4.4.2.bb index 911ba58..0f9cdf7 100644 --- a/recipes-devtools/python/python-lxml_4.4.2.bb +++ b/recipes-devtools/python/python-lxml_4.4.2.bb @@ -21,6 +21,11 @@ SRC_URI[sha256sum] = "eff69ddbf3ad86375c344339371168640951c302450c5d3e9936e98d64 DEPENDS += "libxml2 libxslt" + +inherit setuptools + +# add to the defaults which are set in the setuptools bbclass +# DISTUTILS_BUILD_ARGS += " \ --with-xslt-config='pkg-config libxslt' \ --with-xml2-config='pkg-config libxml-2.0' \ @@ -31,7 +36,7 @@ DISTUTILS_INSTALL_ARGS += " \ --with-xml2-config='pkg-config libxml-2.0' \ " -inherit pypi setuptools +inherit pypi # {standard input}: Assembler messages: # {standard input}:1488805: Error: branch out of range -- 2.7.4 From martin.jansa at gmail.com Thu Feb 20 17:52:34 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Thu, 20 Feb 2020 18:52:34 +0100 Subject: [oe] [meta-oe][PATCH 1/2] s3c24xx-gpio, s3c64xx-gpio, sjf2410-linux-native, usbpath, wmiconfig: use git fetcher instead of svn fetcher Message-ID: <20200220175235.367-1-Martin.Jansa@gmail.com> * svn checkouts from http://svn.openmoko.org/ are now redirected to github: svn --non-interactive --trust-server-cert co --no-auth-cache --ignore-externals -r 4949 http://svn.openmoko.org/trunk/src/target/gpio at 4949 gpio Redirecting to URL 'https://github.com/openmoko/openmoko-svn': A gpio/branches A gpio/branches/oe A gpio/branches/oe/pre-20070305 A gpio/branches/oe/pre-20070305/README A gpio/branches/oe/pre-20070305/classes A gpio/branches/oe/pre-20070305/classes/autotools.bbclass A gpio/branches/oe/pre-20070305/classes/base.bbclass A gpio/branches/oe/pre-20070305/classes/openmoko-base.bbclass A gpio/branches/oe/pre-20070305/classes/openmoko-panel-plugin.bbclass * unfortunately this is causing the checkout to start from trunk, not the subdirectory specified in the URL (e.g. /trunk/src/target/gpio) and then S variable points to incorrect directory as discussed here: http://lists.openembedded.org/pipermail/openembedded-devel/2020-February/205028.html * use git fetcher directly to remove the dependency on subversion-native * for simplicity use the same SRCREV and PV for all of these, there wasn't any commit in last 8 years (not anyone can expect new commits), I don't expect anyone nowadays actually using these recipes which I've imported from meta-smartphone in 2011 - that's why I will send their removal in follow-up commit. Signed-off-by: Martin Jansa --- .../{s3c24xx-gpio_svn.bb => s3c24xx-gpio_git.bb} | 7 +++---- .../{s3c64xx-gpio_svn.bb => s3c64xx-gpio_git.bb} | 6 +++--- ...ux-native_svn.bb => sjf2410-linux-native_git.bb} | 11 +++++------ .../usbpath/{usbpath_svn.bb => usbpath_git.bb} | 10 +++++----- .../{wmiconfig_svn.bb => wmiconfig_git.bb} | 13 ++++++------- 5 files changed, 22 insertions(+), 25 deletions(-) rename meta-oe/recipes-support/samsung-soc-utils/{s3c24xx-gpio_svn.bb => s3c24xx-gpio_git.bb} (73%) rename meta-oe/recipes-support/samsung-soc-utils/{s3c64xx-gpio_svn.bb => s3c64xx-gpio_git.bb} (74%) rename meta-oe/recipes-support/samsung-soc-utils/{sjf2410-linux-native_svn.bb => sjf2410-linux-native_git.bb} (78%) rename meta-oe/recipes-support/usbpath/{usbpath_svn.bb => usbpath_git.bb} (68%) rename meta-oe/recipes-support/wmiconfig/{wmiconfig_svn.bb => wmiconfig_git.bb} (58%) diff --git a/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb b/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb similarity index 73% rename from meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb rename to meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb index 255754d5d1..98573a062c 100644 --- a/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb +++ b/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb @@ -3,11 +3,10 @@ SECTION = "console/utils" AUTHOR = "Werner Almesberger " LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://gpio.c;endline=12;md5=cfb91c686857b2e60852b4925d90a3e1" -SRCREV = "4949" -PV = "1.0+svnr${SRCPV}" -PR = "r2" +PV = "1.0+git${SRCPV}" -SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http" +SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1" +SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/target/gpio" S = "${WORKDIR}/gpio" CLEANBROKEN = "1" diff --git a/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb b/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.bb similarity index 74% rename from meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb rename to meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.bb index 976a4f15ec..99781718c8 100644 --- a/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb +++ b/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.bb @@ -3,10 +3,10 @@ SECTION = "console/utils" AUTHOR = "Werner Almesberger " LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://gpio-s3c6410.c;endline=12;md5=060cda1be945ad9194593f11d56d55c7" -SRCREV = "4949" -PV = "1.0+svnr${SRCPV}" +PV = "1.0+git${SRCPV}" -SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http" +SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1" +SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/target/gpio" S = "${WORKDIR}/gpio" CLEANBROKEN = "1" diff --git a/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb b/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb similarity index 78% rename from meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb rename to meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb index 3a5172eecc..283740396b 100644 --- a/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb +++ b/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb @@ -3,13 +3,12 @@ SECTION = "devel" AUTHOR = "Harald Welte " LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://parport.c;endline=19;md5=b5681091b0fd8c5f7068835c441bf0c8" -SRCREV = "4268" -PV = "0.1+svnr${SRCPV}" -PR = "r1" +PV = "1.0+git${SRCPV}" -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 \ - " +SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1" +SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/host/sjf2410-linux \ + file://0001-ppt.c-Do-not-include-sys-io.h.patch \ +" S = "${WORKDIR}/sjf2410-linux" inherit native deploy diff --git a/meta-oe/recipes-support/usbpath/usbpath_svn.bb b/meta-oe/recipes-support/usbpath/usbpath_git.bb similarity index 68% rename from meta-oe/recipes-support/usbpath/usbpath_svn.bb rename to meta-oe/recipes-support/usbpath/usbpath_git.bb index 6c9cd049fe..a3c75901fb 100644 --- a/meta-oe/recipes-support/usbpath/usbpath_svn.bb +++ b/meta-oe/recipes-support/usbpath/usbpath_git.bb @@ -8,12 +8,12 @@ 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" +PV = "1.0+git${SRCPV}" +SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1" +SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/host/usbpath \ + file://configure.patch \ +" S = "${WORKDIR}/usbpath" inherit autotools pkgconfig diff --git a/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb b/meta-oe/recipes-support/wmiconfig/wmiconfig_git.bb similarity index 58% rename from meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb rename to meta-oe/recipes-support/wmiconfig/wmiconfig_git.bb index c66572b1c1..23273caf8e 100644 --- a/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb +++ b/meta-oe/recipes-support/wmiconfig/wmiconfig_git.bb @@ -2,14 +2,13 @@ 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" +PV = "1.0+git${SRCPV}" -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 \ - " +SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1" +SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/target/AR6kSDK.build_sw.18 \ + 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" -- 2.20.1 From martin.jansa at gmail.com Thu Feb 20 17:52:35 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Thu, 20 Feb 2020 18:52:35 +0100 Subject: [oe] [meta-oe][PATCH 2/2] s3c24xx-gpio, s3c64xx-gpio, sjf2410-linux-native, usbpath, wmiconfig: remove old recipes In-Reply-To: <20200220175235.367-1-Martin.Jansa@gmail.com> References: <20200220175235.367-1-Martin.Jansa@gmail.com> Message-ID: <20200220175235.367-2-Martin.Jansa@gmail.com> * I don't expect anyone nowadays actually using these recipes which I've imported from meta-smartphone in 2011. Signed-off-by: Martin Jansa --- .../packagegroups/packagegroup-meta-oe.bb | 8 +- .../0001-ppt.c-Do-not-include-sys-io.h.patch | 28 - .../samsung-soc-utils/s3c24xx-gpio_git.bb | 21 - .../samsung-soc-utils/s3c64xx-gpio_git.bb | 21 - .../sjf2410-linux-native_git.bb | 39 -- .../usbpath/usbpath/configure.patch | 11 - .../recipes-support/usbpath/usbpath_git.bb | 21 - ...0001-makefile-Pass-CFLAGS-to-compile.patch | 26 - ...02-fix-err-API-to-have-format-string.patch | 656 ------------------ .../wmiconfig/wmiconfig_git.bb | 24 - 10 files changed, 4 insertions(+), 851 deletions(-) delete mode 100644 meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch delete mode 100644 meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb delete mode 100644 meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.bb delete mode 100644 meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb delete mode 100644 meta-oe/recipes-support/usbpath/usbpath/configure.patch delete mode 100644 meta-oe/recipes-support/usbpath/usbpath_git.bb delete mode 100644 meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch delete mode 100644 meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch delete mode 100644 meta-oe/recipes-support/wmiconfig/wmiconfig_git.bb diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb index bad4aa769e..a8040fb799 100644 --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb +++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb @@ -251,13 +251,13 @@ RDEPENDS_packagegroup-meta-oe-support ="\ 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 \ + pv pxaregs raptor2 rdfind read-edid rsnapshot \ + satyr sdparm pty-forward-native serial-forward \ sg3-utils sharutils smem 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 \ diff --git a/meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch b/meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch deleted file mode 100644 index 4e6c250415..0000000000 --- a/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 -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 ---- - 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 - #include --#include - #include - #include - #include --- -2.17.1 - diff --git a/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb b/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb deleted file mode 100644 index 98573a062c..0000000000 --- a/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb +++ /dev/null @@ -1,21 +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 " -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://gpio.c;endline=12;md5=cfb91c686857b2e60852b4925d90a3e1" -PV = "1.0+git${SRCPV}" - -SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1" -SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/target/gpio" -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-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.bb b/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.bb deleted file mode 100644 index 99781718c8..0000000000 --- a/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.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 " -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://gpio-s3c6410.c;endline=12;md5=060cda1be945ad9194593f11d56d55c7" -PV = "1.0+git${SRCPV}" - -SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1" -SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/target/gpio" -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-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb b/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb deleted file mode 100644 index 283740396b..0000000000 --- a/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "JTAG utility to interface w/ a S3C2410 device" -SECTION = "devel" -AUTHOR = "Harald Welte " -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://parport.c;endline=19;md5=b5681091b0fd8c5f7068835c441bf0c8" -PV = "1.0+git${SRCPV}" - -SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1" -SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/host/sjf2410-linux \ - 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-oe/recipes-support/usbpath/usbpath/configure.patch b/meta-oe/recipes-support/usbpath/usbpath/configure.patch deleted file mode 100644 index 271e6a53ad..0000000000 --- a/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-oe/recipes-support/usbpath/usbpath_git.bb b/meta-oe/recipes-support/usbpath/usbpath_git.bb deleted file mode 100644 index a3c75901fb..0000000000 --- a/meta-oe/recipes-support/usbpath/usbpath_git.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Convert the physical locations of a USB device to/from its number" -AUTHOR = "Werner Almesberger " -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" - -PV = "1.0+git${SRCPV}" - -SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1" -SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/host/usbpath \ - file://configure.patch \ -" -S = "${WORKDIR}/usbpath" - -inherit autotools pkgconfig - -RDEPENDS_${PN} += "perl" diff --git a/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch b/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch deleted file mode 100644 index 90eff5bb0f..0000000000 --- a/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 -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 ---- - 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-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch b/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch deleted file mode 100644 index f67f784c1f..0000000000 --- a/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 -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 ---- - 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-oe/recipes-support/wmiconfig/wmiconfig_git.bb b/meta-oe/recipes-support/wmiconfig/wmiconfig_git.bb deleted file mode 100644 index 23273caf8e..0000000000 --- a/meta-oe/recipes-support/wmiconfig/wmiconfig_git.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "Atheros 6K Wifi configuration utility" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://wmiconfig.c;endline=19;md5=4394a56bca1c5b2446c9f8e406c82911" -SECTION = "console/network" -PV = "1.0+git${SRCPV}" - -SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1" -SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/target/AR6kSDK.build_sw.18 \ - 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} -} - -- 2.20.1 From raj.khem at gmail.com Thu Feb 20 18:08:30 2020 From: raj.khem at gmail.com (Khem Raj) Date: Thu, 20 Feb 2020 10:08:30 -0800 Subject: [oe] S variable for svn fetcher Was: State of OE world - 2020-02-18 In-Reply-To: <20200220173421.egafqfq25kbtr4a4@jama> References: <20200220144848.msiyguq2bsmqokxc@jama> <20200220151620.GA30034@localhost> <20200220153758.o25tn46hhewgmasd@jama> <20200220161159.GB30034@localhost> <20200220162312.cqh5bwvdwxjp362g@jama> <20200220173421.egafqfq25kbtr4a4@jama> Message-ID: <13aeb674-53bc-07b5-683e-a2322bcb025c@gmail.com> On 2/20/20 9:34 AM, Martin Jansa wrote: > On Thu, Feb 20, 2020 at 05:23:12PM +0100, Martin Jansa wrote: >> On Thu, Feb 20, 2020 at 06:11:59PM +0200, Adrian Bunk wrote: >>> On Thu, Feb 20, 2020 at 04:37:58PM +0100, Martin Jansa wrote: >>>> On Thu, Feb 20, 2020 at 05:16:20PM +0200, Adrian Bunk wrote: >>>>> On Thu, Feb 20, 2020 at 03:48:48PM +0100, Martin Jansa wrote: >>>>>> ... >>>>>> Any idea why these aren't shown in our build? >>>>>> ... >>>>> >>>>> What is your mirror configuration? >>>>> >>>>> Default configuration downloads the tarball from [1]. >>>> >>>> Maybe I'm missing your point, but these aren't fetch issues. >>>> ... >>> >>> MIRRORS = "" (and deleting the downloaded tar) is what I needed for >>> getting a build failure. >> >> OK, I see now, sorry. >> >> That explains why it's not shown in khem's builds and might be broken >> well before thud already, the tarball created here today: >> >> $ tar xvf ../downloads/gpio_svn.openmoko.org_.trunk.src.target_4949_.tar.gz >> gpio/ >> gpio/trunk/ >> gpio/trunk/doc/ >> gpio/trunk/doc/hardware/ >> gpio/trunk/doc/hardware/GTA01Bv3/ >> gpio/trunk/doc/hardware/GTA01Bv3/gpio.txt >> gpio/trunk/doc/hardware/GTA01Bv3/pmu-voltage.txt >> ... >> >> while the corresponding tarball on mirror: >> http://sources.openembedded.org/gpio_svn.openmoko.org_.trunk.src.target_4949_.tar.gz >> $ tar xvf gpio_svn.openmoko.org_.trunk.src.target_4949_.tar.gz >> gpio/ >> gpio/gpio-s3c6410.c >> gpio/Makefile >> gpio/gpio.c >> gpio/gpio-glamo.c >> gpio/README >> >> Will check when it got broken before thud. > > It's still reproducible in pyro, so probably not caused by changes in OE. > > There is one more recipe using svn in meta-multimedia which works fine: > meta-multimedia/recipes-dvb/oscam/oscam_svn.bb:SRC_URI = "svn://www.streamboard.tv/svn/oscam;module=trunk;protocol=http \ > > The rest are all from svn.openmoko.org: > meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb:SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http" > meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb:SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http" > meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb:SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=sjf2410-linux;protocol=http \ > meta-oe/recipes-support/usbpath/usbpath_svn.bb:SRC_URI = "svn://svn.openmoko.org/trunk/src/host;module=usbpath;protocol=http \ > meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb:SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=AR6kSDK.build_sw.18;protocol=http \ > > And now this leads to do_fetch running: > svn --non-interactive --trust-server-cert co --no-auth-cache --ignore-externals -r 4949 http://svn.openmoko.org/trunk/src/target/gpio at 4949 gpio > as before, but now it redirects to github: > > Redirecting to URL 'https://github.com/openmoko/openmoko-svn': > A gpio/branches > A gpio/branches/oe > A gpio/branches/oe/pre-20070305 > A gpio/branches/oe/pre-20070305/README > A gpio/branches/oe/pre-20070305/classes > A gpio/branches/oe/pre-20070305/classes/autotools.bbclass > A gpio/branches/oe/pre-20070305/classes/base.bbclass > A gpio/branches/oe/pre-20070305/classes/openmoko-base.bbclass > A gpio/branches/oe/pre-20070305/classes/openmoko-panel-plugin.bbclass > .. > > and the svn bridge to github probably doesn't work exactly the same as the > native svn repo used to work, but I don't see it explicitly mentioned in: > https://help.github.com/en/github/importing-your-projects-to-github/support-for-subversion-clients > > So to resolve this quickly I'm going to send SRC_URI updates for > these recipes to just use git fetcher from: > https://github.com/openmoko/openmoko-svn > directly. I don't think anyone is using these nowadays, so it's > also fine with me to just delete them all, which I'll do in > separate follow-up commit in case someone tries to resurrect them > later in own layer. > I think plan looks good. Lets fix the SRC_URI and then delete them From raj.khem at gmail.com Thu Feb 20 18:19:24 2020 From: raj.khem at gmail.com (Khem Raj) Date: Thu, 20 Feb 2020 10:19:24 -0800 Subject: [oe] [meta-oe][PATCH 2/2] s3c24xx-gpio, s3c64xx-gpio, sjf2410-linux-native, usbpath, wmiconfig: remove old recipes In-Reply-To: <20200220175235.367-2-Martin.Jansa@gmail.com> References: <20200220175235.367-1-Martin.Jansa@gmail.com> <20200220175235.367-2-Martin.Jansa@gmail.com> Message-ID: On 2/20/20 9:52 AM, Martin Jansa wrote: > * I don't expect anyone nowadays actually using these recipes which I've > imported from meta-smartphone in 2011. > > Signed-off-by: Martin Jansa > --- > .../packagegroups/packagegroup-meta-oe.bb | 8 +- > .../0001-ppt.c-Do-not-include-sys-io.h.patch | 28 - > .../samsung-soc-utils/s3c24xx-gpio_git.bb | 21 - > .../samsung-soc-utils/s3c64xx-gpio_git.bb | 21 - > .../sjf2410-linux-native_git.bb | 39 -- > .../usbpath/usbpath/configure.patch | 11 - > .../recipes-support/usbpath/usbpath_git.bb | 21 - > ...0001-makefile-Pass-CFLAGS-to-compile.patch | 26 - > ...02-fix-err-API-to-have-format-string.patch | 656 ------------------ > .../wmiconfig/wmiconfig_git.bb | 24 - > 10 files changed, 4 insertions(+), 851 deletions(-) > delete mode 100644 meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch > delete mode 100644 meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb > delete mode 100644 meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.bb > delete mode 100644 meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb > delete mode 100644 meta-oe/recipes-support/usbpath/usbpath/configure.patch > delete mode 100644 meta-oe/recipes-support/usbpath/usbpath_git.bb > delete mode 100644 meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch > delete mode 100644 meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch > delete mode 100644 meta-oe/recipes-support/wmiconfig/wmiconfig_git.bb > I had to manually apply is on master-next, please check master-next if all is fine or else send a rebase on top of master-next > diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > index bad4aa769e..a8040fb799 100644 > --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > +++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > @@ -251,13 +251,13 @@ RDEPENDS_packagegroup-meta-oe-support ="\ > 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 \ > + pv pxaregs raptor2 rdfind read-edid rsnapshot \ > + satyr sdparm pty-forward-native serial-forward \ > sg3-utils sharutils smem 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 \ > diff --git a/meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch b/meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch > deleted file mode 100644 > index 4e6c250415..0000000000 > --- a/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 > -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 > ---- > - 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 > - #include > --#include > - #include > - #include > - #include > --- > -2.17.1 > - > diff --git a/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb b/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb > deleted file mode 100644 > index 98573a062c..0000000000 > --- a/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb > +++ /dev/null > @@ -1,21 +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 " > -LICENSE = "GPLv2+" > -LIC_FILES_CHKSUM = "file://gpio.c;endline=12;md5=cfb91c686857b2e60852b4925d90a3e1" > -PV = "1.0+git${SRCPV}" > - > -SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1" > -SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/target/gpio" > -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-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.bb b/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.bb > deleted file mode 100644 > index 99781718c8..0000000000 > --- a/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.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 " > -LICENSE = "GPLv2+" > -LIC_FILES_CHKSUM = "file://gpio-s3c6410.c;endline=12;md5=060cda1be945ad9194593f11d56d55c7" > -PV = "1.0+git${SRCPV}" > - > -SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1" > -SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/target/gpio" > -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-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb b/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb > deleted file mode 100644 > index 283740396b..0000000000 > --- a/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb > +++ /dev/null > @@ -1,39 +0,0 @@ > -SUMMARY = "JTAG utility to interface w/ a S3C2410 device" > -SECTION = "devel" > -AUTHOR = "Harald Welte " > -LICENSE = "GPLv2+" > -LIC_FILES_CHKSUM = "file://parport.c;endline=19;md5=b5681091b0fd8c5f7068835c441bf0c8" > -PV = "1.0+git${SRCPV}" > - > -SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1" > -SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/host/sjf2410-linux \ > - 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-oe/recipes-support/usbpath/usbpath/configure.patch b/meta-oe/recipes-support/usbpath/usbpath/configure.patch > deleted file mode 100644 > index 271e6a53ad..0000000000 > --- a/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-oe/recipes-support/usbpath/usbpath_git.bb b/meta-oe/recipes-support/usbpath/usbpath_git.bb > deleted file mode 100644 > index a3c75901fb..0000000000 > --- a/meta-oe/recipes-support/usbpath/usbpath_git.bb > +++ /dev/null > @@ -1,21 +0,0 @@ > -SUMMARY = "Convert the physical locations of a USB device to/from its number" > -AUTHOR = "Werner Almesberger " > -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" > - > -PV = "1.0+git${SRCPV}" > - > -SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1" > -SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/host/usbpath \ > - file://configure.patch \ > -" > -S = "${WORKDIR}/usbpath" > - > -inherit autotools pkgconfig > - > -RDEPENDS_${PN} += "perl" > diff --git a/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch b/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch > deleted file mode 100644 > index 90eff5bb0f..0000000000 > --- a/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 > -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 > ---- > - 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-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch b/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch > deleted file mode 100644 > index f67f784c1f..0000000000 > --- a/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 > -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 > ---- > - 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-oe/recipes-support/wmiconfig/wmiconfig_git.bb b/meta-oe/recipes-support/wmiconfig/wmiconfig_git.bb > deleted file mode 100644 > index 23273caf8e..0000000000 > --- a/meta-oe/recipes-support/wmiconfig/wmiconfig_git.bb > +++ /dev/null > @@ -1,24 +0,0 @@ > -SUMMARY = "Atheros 6K Wifi configuration utility" > -LICENSE = "GPLv2" > -LIC_FILES_CHKSUM = "file://wmiconfig.c;endline=19;md5=4394a56bca1c5b2446c9f8e406c82911" > -SECTION = "console/network" > -PV = "1.0+git${SRCPV}" > - > -SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1" > -SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/target/AR6kSDK.build_sw.18 \ > - 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} > -} > - > From martin.jansa at gmail.com Thu Feb 20 18:54:29 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Thu, 20 Feb 2020 19:54:29 +0100 Subject: [oe] [meta-oe][PATCH 2/2] s3c24xx-gpio, s3c64xx-gpio, sjf2410-linux-native, usbpath, wmiconfig: remove old recipes In-Reply-To: References: <20200220175235.367-1-Martin.Jansa@gmail.com> <20200220175235.367-2-Martin.Jansa@gmail.com> Message-ID: <20200220185429.i5z5vmp7ehq5n3mu@jama> On Thu, Feb 20, 2020 at 10:19:24AM -0800, Khem Raj wrote: > > > On 2/20/20 9:52 AM, Martin Jansa wrote: > > * I don't expect anyone nowadays actually using these recipes which I've > > imported from meta-smartphone in 2011. > > > > Signed-off-by: Martin Jansa > > --- > > .../packagegroups/packagegroup-meta-oe.bb | 8 +- > > .../0001-ppt.c-Do-not-include-sys-io.h.patch | 28 - > > .../samsung-soc-utils/s3c24xx-gpio_git.bb | 21 - > > .../samsung-soc-utils/s3c64xx-gpio_git.bb | 21 - > > .../sjf2410-linux-native_git.bb | 39 -- > > .../usbpath/usbpath/configure.patch | 11 - > > .../recipes-support/usbpath/usbpath_git.bb | 21 - > > ...0001-makefile-Pass-CFLAGS-to-compile.patch | 26 - > > ...02-fix-err-API-to-have-format-string.patch | 656 ------------------ > > .../wmiconfig/wmiconfig_git.bb | 24 - > > 10 files changed, 4 insertions(+), 851 deletions(-) > > delete mode 100644 meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch > > delete mode 100644 meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb > > delete mode 100644 meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.bb > > delete mode 100644 meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb > > delete mode 100644 meta-oe/recipes-support/usbpath/usbpath/configure.patch > > delete mode 100644 meta-oe/recipes-support/usbpath/usbpath_git.bb > > delete mode 100644 meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch > > delete mode 100644 meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch > > delete mode 100644 meta-oe/recipes-support/wmiconfig/wmiconfig_git.bb > > > > I had to manually apply is on master-next, please check master-next if all > is fine or else send a rebase on top of master-next Looks the same as what I have locally, thanks. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: not available URL: From jaewon.lee at xilinx.com Thu Feb 20 23:15:16 2020 From: jaewon.lee at xilinx.com (Jaewon Lee) Date: Thu, 20 Feb 2020 15:15:16 -0800 Subject: [oe] [meta-openembedded][rel-v2020.1][PATCH] can-utils: bump to revision 665d869 Message-ID: <20200220231516.23639-1-jaewon.lee@xilinx.com> From: "William A. Kennington III via Openembedded-devel" Also: - remove patch applied upstream - update the hash of the license because the file now contains a SPDX license identifier BACKPORT from openembedded master Signed-off-by: Pierre-Jean Texier Signed-off-by: Khem Raj Signed-off-by: Jaewon Lee --- ...o-find-SIOCGSTAMP-with-latest-kernel.patch | 106 ------------------ .../socketcan/can-utils_git.bb | 9 +- 2 files changed, 4 insertions(+), 111 deletions(-) delete mode 100644 meta-oe/recipes-extended/socketcan/can-utils/0001-fix-include-to-find-SIOCGSTAMP-with-latest-kernel.patch diff --git a/meta-oe/recipes-extended/socketcan/can-utils/0001-fix-include-to-find-SIOCGSTAMP-with-latest-kernel.patch b/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-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 -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 ---- - 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 - #include -+#include - #include - #include - -diff --git a/cansniffer.c b/cansniffer.c -index 7b0a3fa..bf7d72e 100644 ---- a/cansniffer.c -+++ b/cansniffer.c -@@ -61,6 +61,7 @@ - - #include - #include -+#include - - #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 - #include -+#include - #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 - #include -+#include - - #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 - #include -+#include - #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 - #include -+#include - - /* maximum rx buffer len: extended CAN frame with timestamp */ - #define SLC_MTU (sizeof("T1111222281122334455667788EA5F\r")+1) diff --git a/meta-oe/recipes-extended/socketcan/can-utils_git.bb b/meta-oe/recipes-extended/socketcan/can-utils_git.bb index db5055fed..e2609d411 100644 --- a/meta-oe/recipes-extended/socketcan/can-utils_git.bb +++ b/meta-oe/recipes-extended/socketcan/can-utils_git.bb @@ -1,14 +1,13 @@ 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;branch=master" + +SRCREV = "665d8699ebe728bf48e63e8ae58d2482db72f954" PV = "0.0+gitr${SRCPV}" -- 2.25.0 From JAEWON at xilinx.com Thu Feb 20 23:20:31 2020 From: JAEWON at xilinx.com (Jaewon Lee) Date: Thu, 20 Feb 2020 23:20:31 +0000 Subject: [oe] [meta-openembedded][rel-v2020.1][PATCH] can-utils: bump to revision 665d869 In-Reply-To: <20200220231516.23639-1-jaewon.lee@xilinx.com> References: <20200220231516.23639-1-jaewon.lee@xilinx.com> Message-ID: Please disregard ? > -----Original Message----- > From: Jaewon Lee > Sent: Thursday, February 20, 2020 3:15 PM > To: git_plnxyocto > Cc: William A. Kennington III via Openembedded-devel devel at lists.openembedded.org>; Pierre-Jean Texier > ; Khem Raj ; Jaewon Lee > > Subject: [meta-openembedded][rel-v2020.1][PATCH] can-utils: bump to > revision 665d869 > > From: "William A. Kennington III via Openembedded-devel" > > > Also: > - remove patch applied upstream > - update the hash of the license because the file now contains a SPDX > license identifier > > BACKPORT from openembedded master > > Signed-off-by: Pierre-Jean Texier > Signed-off-by: Khem Raj > Signed-off-by: Jaewon Lee > --- > ...o-find-SIOCGSTAMP-with-latest-kernel.patch | 106 ------------------ > .../socketcan/can-utils_git.bb | 9 +- > 2 files changed, 4 insertions(+), 111 deletions(-) delete mode 100644 meta- > oe/recipes-extended/socketcan/can-utils/0001-fix-include-to-find- > SIOCGSTAMP-with-latest-kernel.patch > > diff --git a/meta-oe/recipes-extended/socketcan/can-utils/0001-fix-include- > to-find-SIOCGSTAMP-with-latest-kernel.patch b/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-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 > -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/363de7d9bf433be8bc47ba4ee52ae0b > b80fa9021 > - > -Upstream-Status: Backport [https://github.com/linux-can/can- > utils/commit/e9590b1ca75d360eaf3211bebd86058214d48064] > -Signed-off-by: Fabrice Fontaine > ---- > - 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 > - #include > -+#include > - #include > - #include > - > -diff --git a/cansniffer.c b/cansniffer.c -index 7b0a3fa..bf7d72e 100644 > ---- a/cansniffer.c > -+++ b/cansniffer.c > -@@ -61,6 +61,7 @@ > - > - #include > - #include > -+#include > - > - #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 > - #include > -+#include > - #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 > - #include > -+#include > - > - #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 > - #include > -+#include > - #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 > - #include > -+#include > - > - /* maximum rx buffer len: extended CAN frame with timestamp */ > - #define SLC_MTU (sizeof("T1111222281122334455667788EA5F\r")+1) > diff --git a/meta-oe/recipes-extended/socketcan/can-utils_git.bb b/meta- > oe/recipes-extended/socketcan/can-utils_git.bb > index db5055fed..e2609d411 100644 > --- a/meta-oe/recipes-extended/socketcan/can-utils_git.bb > +++ b/meta-oe/recipes-extended/socketcan/can-utils_git.bb > @@ -1,14 +1,13 @@ > 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=390a2c9a3c5e3595a069ac14365 > 53ee7" > +LIC_FILES_CHKSUM = > "file://include/linux/can.h;endline=44;md5=a9e1169c6c9a114a61329e99f86 > fdd31" > > 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;branch=master" > + > +SRCREV = "665d8699ebe728bf48e63e8ae58d2482db72f954" > > PV = "0.0+gitr${SRCPV}" > > -- > 2.25.0 From jpuhlman at mvista.com Fri Feb 21 00:35:51 2020 From: jpuhlman at mvista.com (Jeremy A. Puhlman) Date: Thu, 20 Feb 2020 16:35:51 -0800 Subject: [oe] [meta-oe][PATCH] syslog-ng: Remove config nag on boot Message-ID: <20200221003551.9081-1-jpuhlman@mvista.com> From: Jeremy Puhlman [2020-02-16T22:13:56.331425] WARNING: Configuration file format is too old, syslog-ng is running in compatibility mode. Please update it to use the syslo g-ng 3.24 format at your time of convenience. To upgrade the configuration, please review the warnings about incompatible changes printed by syslog-ng, a nd once completed change the @version header at the top of the configuration file Signed-off-by: Jeremy Puhlman --- meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd | 2 +- meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd index 965abf722..6a8627672 100644 --- a/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd +++ b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd @@ -1,4 +1,4 @@ - at version: 3.19 + at 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-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit index 2b39b8c1f..32b98610d 100644 --- a/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit +++ b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit @@ -1,4 +1,4 @@ - at version: 3.19 + at version: 3.24 # # Syslog-ng configuration file, compatible with default Debian syslogd # installation. Originally written by anonymous (I can't find his name) -- 2.13.3 From wangmy at cn.fujitsu.com Fri Feb 21 10:10:04 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Fri, 21 Feb 2020 02:10:04 -0800 Subject: [oe] [meta-oe][PATCH] libzip: upgrade 1.6.0 -> 1.6.1 Message-ID: <1582279804-21302-1-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../libzip/{libzip_1.6.0.bb => libzip_1.6.1.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-extended/libzip/{libzip_1.6.0.bb => libzip_1.6.1.bb} (77%) diff --git a/meta-oe/recipes-extended/libzip/libzip_1.6.0.bb b/meta-oe/recipes-extended/libzip/libzip_1.6.1.bb similarity index 77% rename from meta-oe/recipes-extended/libzip/libzip_1.6.0.bb rename to meta-oe/recipes-extended/libzip/libzip_1.6.1.bb index e4c282fe0..41ad55298 100644 --- a/meta-oe/recipes-extended/libzip/libzip_1.6.0.bb +++ b/meta-oe/recipes-extended/libzip/libzip_1.6.1.bb @@ -15,5 +15,5 @@ inherit cmake SRC_URI = "https://libzip.org/download/libzip-${PV}.tar.xz" -SRC_URI[md5sum] = "c0245c3e68e472d75d9f8572e24eb5d0" -SRC_URI[sha256sum] = "a6cd804b4b3cffd997bd563fec693eb7eb052c225909a98a620689c2befb699b" +SRC_URI[md5sum] = "f9a228619aab2446addc9c9e0e2de149" +SRC_URI[sha256sum] = "705dac7a671b3f440181481e607b0908129a9cf1ddfcba75d66436c0e7d33641" -- 2.17.1 From wangmy at cn.fujitsu.com Fri Feb 21 15:24:12 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Fri, 21 Feb 2020 07:24:12 -0800 Subject: [oe] [meta-filesystems][PATCH] sshfs-fuse: 3.6.0 -> 3.7.0 Message-ID: <1582298655-25895-1-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../sshfs-fuse/{sshfs-fuse_3.6.0.bb => sshfs-fuse_3.7.0.bb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename meta-filesystems/recipes-filesystems/sshfs-fuse/{sshfs-fuse_3.6.0.bb => sshfs-fuse_3.7.0.bb} (88%) diff --git a/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.6.0.bb b/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.0.bb similarity index 88% rename from meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.6.0.bb rename to meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.0.bb index 2515d07d4..bf9c34dc9 100644 --- a/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.6.0.bb +++ b/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.0.bb @@ -7,7 +7,7 @@ DEPENDS = "glib-2.0 fuse3" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" SRC_URI = "git://github.com/libfuse/sshfs" -SRCREV = "a1e5f12c530ccf59434a7d59a34a049f160b3559" +SRCREV = "a7e1038203c856cc7e052d439d1da49fe131339f" S = "${WORKDIR}/git" inherit meson -- 2.17.1 From wangmy at cn.fujitsu.com Fri Feb 21 15:24:13 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Fri, 21 Feb 2020 07:24:13 -0800 Subject: [oe] [meta-oe][PATCH] crash: upgrade 7.2.7 -> 7.2.8 In-Reply-To: <1582298655-25895-1-git-send-email-wangmy@cn.fujitsu.com> References: <1582298655-25895-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1582298655-25895-2-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- meta-oe/recipes-kernel/crash/{crash_7.2.7.bb => crash_7.2.8.bb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename meta-oe/recipes-kernel/crash/{crash_7.2.7.bb => crash_7.2.8.bb} (98%) diff --git a/meta-oe/recipes-kernel/crash/crash_7.2.7.bb b/meta-oe/recipes-kernel/crash/crash_7.2.8.bb similarity index 98% rename from meta-oe/recipes-kernel/crash/crash_7.2.7.bb rename to meta-oe/recipes-kernel/crash/crash_7.2.8.bb index 8098d09..61cc71f 100644 --- a/meta-oe/recipes-kernel/crash/crash_7.2.7.bb +++ b/meta-oe/recipes-kernel/crash/crash_7.2.8.bb @@ -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" -- 2.7.4 From wangmy at cn.fujitsu.com Fri Feb 21 15:24:14 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Fri, 21 Feb 2020 07:24:14 -0800 Subject: [oe] [meta-oe] [PATCH] kpatch: upgrade 0.8.0 -> 0.9.0 In-Reply-To: <1582298655-25895-1-git-send-email-wangmy@cn.fujitsu.com> References: <1582298655-25895-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1582298655-25895-3-git-send-email-wangmy@cn.fujitsu.com> refresh the following patch: 0002-kpatch-build-allow-overriding-of-distro-name.patch Signed-off-by: Wang Mingyu --- .../0002-kpatch-build-allow-overriding-of-distro-name.patch | 6 +++--- meta-oe/recipes-kernel/kpatch/kpatch_git.bb | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch b/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch index 603a1475a..0cc368413 100644 --- a/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch +++ b/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-oe/recipes-kernel/kpatch/kpatch_git.bb b/meta-oe/recipes-kernel/kpatch/kpatch_git.bb index 6326a2538..59dbc936f 100644 --- a/meta-oe/recipes-kernel/kpatch/kpatch_git.bb +++ b/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 = "fd8209aa00525f3e6092eaccbc34f7ce13c4ebc9" -PV = "0.8.0" +PV = "0.9.0" S = "${WORKDIR}/git" -- 2.17.1 From wangmy at cn.fujitsu.com Fri Feb 21 15:24:15 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Fri, 21 Feb 2020 07:24:15 -0800 Subject: [oe] [meta-oe] [PATCH] uftrace: upgrade 0.9.3 -> 0.9.4 In-Reply-To: <1582298655-25895-1-git-send-email-wangmy@cn.fujitsu.com> References: <1582298655-25895-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1582298655-25895-4-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../uftrace/{uftrace_0.9.3.bb => uftrace_0.9.4.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-devtools/uftrace/{uftrace_0.9.3.bb => uftrace_0.9.4.bb} (94%) diff --git a/meta-oe/recipes-devtools/uftrace/uftrace_0.9.3.bb b/meta-oe/recipes-devtools/uftrace/uftrace_0.9.4.bb similarity index 94% rename from meta-oe/recipes-devtools/uftrace/uftrace_0.9.3.bb rename to meta-oe/recipes-devtools/uftrace/uftrace_0.9.4.bb index dba607c15..cfe461b8d 100644 --- a/meta-oe/recipes-devtools/uftrace/uftrace_0.9.3.bb +++ b/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" -- 2.17.1 From zangrc.fnst at cn.fujitsu.com Fri Feb 21 08:37:34 2020 From: zangrc.fnst at cn.fujitsu.com (Zang Ruochen) Date: Fri, 21 Feb 2020 16:37:34 +0800 Subject: [oe] [meta-oe] [PATCH] openldap: upgrade 2.4.48 -> 2.4.49 In-Reply-To: <20200221083737.17042-1-zangrc.fnst@cn.fujitsu.com> References: <20200221083737.17042-1-zangrc.fnst@cn.fujitsu.com> Message-ID: <20200221083737.17042-3-zangrc.fnst@cn.fujitsu.com> -License-Update: Copyright year updated to 2020. -openldap/kill-icu.patch Removed since this is included in 2.4.49. Signed-off-by: Zang Ruochen --- .../openldap/openldap/kill-icu.patch | 30 ------------------- ...{openldap_2.4.48.bb => openldap_2.4.49.bb} | 7 ++--- 2 files changed, 3 insertions(+), 34 deletions(-) delete mode 100644 meta-oe/recipes-support/openldap/openldap/kill-icu.patch rename meta-oe/recipes-support/openldap/{openldap_2.4.48.bb => openldap_2.4.49.bb} (97%) diff --git a/meta-oe/recipes-support/openldap/openldap/kill-icu.patch b/meta-oe/recipes-support/openldap/openldap/kill-icu.patch deleted file mode 100644 index 35e46465a..000000000 --- a/meta-oe/recipes-support/openldap/openldap/kill-icu.patch +++ /dev/null @@ -1,30 +0,0 @@ -From: Marcin Juszkiewicz - -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-oe/recipes-support/openldap/openldap_2.4.48.bb b/meta-oe/recipes-support/openldap/openldap_2.4.49.bb similarity index 97% rename from meta-oe/recipes-support/openldap/openldap_2.4.48.bb rename to meta-oe/recipes-support/openldap/openldap_2.4.49.bb index ecc219d35..670c704e6 100644 --- a/meta-oe/recipes-support/openldap/openldap_2.4.48.bb +++ b/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" -- 2.20.1 From zangrc.fnst at cn.fujitsu.com Fri Feb 21 08:37:37 2020 From: zangrc.fnst at cn.fujitsu.com (Zang Ruochen) Date: Fri, 21 Feb 2020 16:37:37 +0800 Subject: [oe] [PATCH] [meta-perl] [PATCH] libio-socket-ssl-perl: upgrade 2.066 -> 2.067 In-Reply-To: <20200221083737.17042-1-zangrc.fnst@cn.fujitsu.com> References: <20200221083737.17042-1-zangrc.fnst@cn.fujitsu.com> Message-ID: <20200221083737.17042-6-zangrc.fnst@cn.fujitsu.com> Signed-off-by: Zang Ruochen --- ...ocket-ssl-perl_2.066.bb => libio-socket-ssl-perl_2.067.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-perl/recipes-perl/libio/{libio-socket-ssl-perl_2.066.bb => libio-socket-ssl-perl_2.067.bb} (91%) diff --git a/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.066.bb b/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.067.bb similarity index 91% rename from meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.066.bb rename to meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.067.bb index 7609846d6..c262d3a21 100644 --- a/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.066.bb +++ b/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.067.bb @@ -22,8 +22,8 @@ RDEPENDS_${PN} += "\ SRC_URI = "http://search.cpan.org/CPAN/authors/id/S/SU/SULLR/IO-Socket-SSL-${PV}.tar.gz \ file://run-ptest \ " -SRC_URI[md5sum] = "ecf96ce2ff9e04a03a2d101c76ce1020" -SRC_URI[sha256sum] = "0d47064781a545304d5dcea5dfcee3acc2e95a32e1b4884d80505cde8ee6ebcd" +SRC_URI[md5sum] = "1d55e9f66ca442f4e0ae4d018e3067fc" +SRC_URI[sha256sum] = "ef8842806d047cf56e2af64add4ed30b24547bcbb50e8df33cee0c54609af1c1" S = "${WORKDIR}/IO-Socket-SSL-${PV}" -- 2.20.1 From zangrc.fnst at cn.fujitsu.com Fri Feb 21 08:37:32 2020 From: zangrc.fnst at cn.fujitsu.com (Zang Ruochen) Date: Fri, 21 Feb 2020 16:37:32 +0800 Subject: [oe] [meta-oe] [PATCH] libmicrohttpd: upgrade 0.9.69 -> 0.9.70 Message-ID: <20200221083737.17042-1-zangrc.fnst@cn.fujitsu.com> Signed-off-by: Zang Ruochen --- .../{libmicrohttpd_0.9.69.bb => libmicrohttpd_0.9.70.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-support/libmicrohttpd/{libmicrohttpd_0.9.69.bb => libmicrohttpd_0.9.70.bb} (86%) diff --git a/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.69.bb b/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.70.bb similarity index 86% rename from meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.69.bb rename to meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.70.bb index 4daeaf75b..94976d2e9 100644 --- a/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.69.bb +++ b/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 -- 2.20.1 From zangrc.fnst at cn.fujitsu.com Fri Feb 21 08:37:33 2020 From: zangrc.fnst at cn.fujitsu.com (Zang Ruochen) Date: Fri, 21 Feb 2020 16:37:33 +0800 Subject: [oe] [meta-oe] [PATCH] log4cpp: upgrade 1.1.2 -> 1.1.3 In-Reply-To: <20200221083737.17042-1-zangrc.fnst@cn.fujitsu.com> References: <20200221083737.17042-1-zangrc.fnst@cn.fujitsu.com> Message-ID: <20200221083737.17042-2-zangrc.fnst@cn.fujitsu.com> Due to version update, SRC_URI has been modified. Signed-off-by: Zang Ruochen --- .../log4cpp/{log4cpp_1.1.2.bb => log4cpp_1.1.3.bb} | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) rename meta-oe/recipes-support/log4cpp/{log4cpp_1.1.2.bb => log4cpp_1.1.3.bb} (68%) diff --git a/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb b/meta-oe/recipes-support/log4cpp/log4cpp_1.1.3.bb similarity index 68% rename from meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb rename to meta-oe/recipes-support/log4cpp/log4cpp_1.1.3.bb index 19b94466b..c6f9404d6 100644 --- a/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb +++ b/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}" -- 2.20.1 From zangrc.fnst at cn.fujitsu.com Fri Feb 21 08:37:36 2020 From: zangrc.fnst at cn.fujitsu.com (Zang Ruochen) Date: Fri, 21 Feb 2020 16:37:36 +0800 Subject: [oe] [meta-oe] [PATCH] ttf-hunkyfonts: upgrade 0.3.0 -> 0.3.1 In-Reply-To: <20200221083737.17042-1-zangrc.fnst@cn.fujitsu.com> References: <20200221083737.17042-1-zangrc.fnst@cn.fujitsu.com> Message-ID: <20200221083737.17042-5-zangrc.fnst@cn.fujitsu.com> Since the new version does not have the file LICENSE, change the LIC_FILES_CHKSUM to COPYRIGHT.TXT. Signed-off-by: Zang Ruochen --- .../{ttf-hunkyfonts_0.3.0.bb => ttf-hunkyfonts_0.3.1.bb} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename meta-oe/recipes-graphics/ttf-fonts/{ttf-hunkyfonts_0.3.0.bb => ttf-hunkyfonts_0.3.1.bb} (68%) diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.1.bb similarity index 68% rename from meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb rename to meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.1.bb index bd552c08a..4df0c3afb 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb +++ b/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" -- 2.20.1 From zangrc.fnst at cn.fujitsu.com Fri Feb 21 08:37:35 2020 From: zangrc.fnst at cn.fujitsu.com (Zang Ruochen) Date: Fri, 21 Feb 2020 16:37:35 +0800 Subject: [oe] [meta-oe] [PATCH] snappy: upgrade 1.1.7 -> 1.1.8 In-Reply-To: <20200221083737.17042-1-zangrc.fnst@cn.fujitsu.com> References: <20200221083737.17042-1-zangrc.fnst@cn.fujitsu.com> Message-ID: <20200221083737.17042-4-zangrc.fnst@cn.fujitsu.com> Due to version update, SRC-UR has been modified SRC_URI. Signed-off-by: Zang Ruochen --- .../snappy/{snappy_1.1.7.bb => snappy_1.1.8.bb} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename meta-oe/recipes-extended/snappy/{snappy_1.1.7.bb => snappy_1.1.8.bb} (69%) diff --git a/meta-oe/recipes-extended/snappy/snappy_1.1.7.bb b/meta-oe/recipes-extended/snappy/snappy_1.1.8.bb similarity index 69% rename from meta-oe/recipes-extended/snappy/snappy_1.1.7.bb rename to meta-oe/recipes-extended/snappy/snappy_1.1.8.bb index 9f37c5fc2..d6d1e4110 100644 --- a/meta-oe/recipes-extended/snappy/snappy_1.1.7.bb +++ b/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 -- 2.20.1 From leo.yan at linaro.org Fri Feb 21 09:03:20 2020 From: leo.yan at linaro.org (Leo Yan) Date: Fri, 21 Feb 2020 17:03:20 +0800 Subject: [oe] [meta-oe][PATCH v1 1/4] Ply: Add recipe for git version In-Reply-To: References: <20200218052544.9467-1-leo.yan@linaro.org> <20200218052544.9467-2-leo.yan@linaro.org> Message-ID: <20200221090320.GA13327@leoy-ThinkPad-X240s> Hi Khem, On Thu, Feb 20, 2020 at 07:41:35AM -0800, Khem Raj wrote: > fails to build fot x86/musl > http://errors.yoctoproject.org/Errors/Details/391871/ Ply doesn't support x86 and it supports x86_64. Will fix the dependency issue in the new patch with adding two lines: COMPATIBLE_HOST_i586 = 'null' COMPATIBLE_HOST_i686 = 'null' Thanks a lot for the testing; will send new patch with addressing your comments and test on qemux86 and qemux86_64. Thanks, Leo From li.zhou at windriver.com Fri Feb 21 09:15:31 2020 From: li.zhou at windriver.com (Li Zhou) Date: Fri, 21 Feb 2020 17:15:31 +0800 Subject: [oe] [meta-oe][PATCH] php: Security Advisory - php - CVE-2020-7059 Message-ID: <1582276531-249476-1-git-send-email-li.zhou@windriver.com> Backport the patch to solve CVE-2020-7059. Because of the version context, this porting mainly refers to the version merging commit Signed-off-by: Li Zhou --- .../recipes-devtools/php/php/CVE-2020-7059.patch | 86 ++++++++++++++++++++++ meta-oe/recipes-devtools/php/php_7.3.11.bb | 1 + 2 files changed, 87 insertions(+) create mode 100644 meta-oe/recipes-devtools/php/php/CVE-2020-7059.patch diff --git a/meta-oe/recipes-devtools/php/php/CVE-2020-7059.patch b/meta-oe/recipes-devtools/php/php/CVE-2020-7059.patch new file mode 100644 index 0000000..f7d3ab6 --- /dev/null +++ b/meta-oe/recipes-devtools/php/php/CVE-2020-7059.patch @@ -0,0 +1,86 @@ +From 1adaab3aa81fa9b48e351b5644d9fee70f2fe73f Mon Sep 17 00:00:00 2001 +From: Li Zhou +Date: Thu, 20 Feb 2020 02:05:52 -0800 +Subject: [PATCH] Fix #79099: OOB read in php_strip_tags_ex + +Upstream-Status: Backport +CVE: CVE-2020-7059 +Signed-off-by: Li Zhou +--- + ext/standard/string.c | 6 +++--- + ext/standard/tests/file/bug79099.phpt | 32 ++++++++++++++++++++++++++++++++ + 2 files changed, 35 insertions(+), 3 deletions(-) + create mode 100644 ext/standard/tests/file/bug79099.phpt + +diff --git a/ext/standard/string.c b/ext/standard/string.c +index dde97fa..2213d8d 100644 +--- a/ext/standard/string.c ++++ b/ext/standard/string.c +@@ -5163,7 +5163,7 @@ state_1: + } + + lc = '>'; +- if (is_xml && *(p -1) == '-') { ++ if (is_xml && p >= buf + 1 && *(p -1) == '-') { + break; + } + in_q = state = is_xml = 0; +@@ -5195,7 +5195,7 @@ state_1: + goto reg_char_1; + case '!': + /* JavaScript & Other HTML scripting languages */ +- if (*(p-1) == '<') { ++ if (p >= buf + 1 && *(p-1) == '<') { + state = 3; + lc = c; + p++; +@@ -5205,7 +5205,7 @@ state_1: + } + break; + case '?': +- if (*(p-1) == '<') { ++ if (p >= buf + 1 && *(p-1) == '<') { + br=0; + state = 2; + p++; +diff --git a/ext/standard/tests/file/bug79099.phpt b/ext/standard/tests/file/bug79099.phpt +new file mode 100644 +index 0000000..a1f2a33 +--- /dev/null ++++ b/ext/standard/tests/file/bug79099.phpt +@@ -0,0 +1,32 @@ ++--TEST-- ++Bug #79099 (OOB read in php_strip_tags_ex) ++--FILE-- ++ ++--EXPECT-- ++string(0) "" ++string(0) "" ++string(0) "" ++string(0) "" ++string(0) "" ++string(0) "" +-- +1.9.1 + diff --git a/meta-oe/recipes-devtools/php/php_7.3.11.bb b/meta-oe/recipes-devtools/php/php_7.3.11.bb index e7fb847..ec5fb3b 100644 --- a/meta-oe/recipes-devtools/php/php_7.3.11.bb +++ b/meta-oe/recipes-devtools/php/php_7.3.11.bb @@ -18,6 +18,7 @@ SRC_URI = "http://php.net/distributions/php-${PV}.tar.bz2 \ file://0001-Use-pkg-config-for-libxml2-detection.patch \ file://debian-php-fixheader.patch \ file://CVE-2019-6978.patch \ + file://CVE-2020-7059.patch \ " SRC_URI_append_class-target = " \ -- 1.9.1 From leo.yan at linaro.org Fri Feb 21 10:43:40 2020 From: leo.yan at linaro.org (Leo Yan) Date: Fri, 21 Feb 2020 10:43:40 +0000 Subject: [oe] [meta-oe][PATCH v2] Ply: Add recipe for git version Message-ID: <20200221104340.21294-1-leo.yan@linaro.org> Ply is a light-weight eBPF tool which compiles ply script or one-liner to Linux BPF programs and attaches to kprobes and tracepoints. It doesn't require external dependencies except libc, so it's very friendly for embedded system usage. This patch adds the recipe to support ply building for git version. Signed-off-by: Leo Yan --- meta-oe/recipes-devtools/ply/ply_git.bb | 38 +++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 meta-oe/recipes-devtools/ply/ply_git.bb diff --git a/meta-oe/recipes-devtools/ply/ply_git.bb b/meta-oe/recipes-devtools/ply/ply_git.bb new file mode 100644 index 000000000..21395885c --- /dev/null +++ b/meta-oe/recipes-devtools/ply/ply_git.bb @@ -0,0 +1,38 @@ +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" + +do_configure_prepend() { + ( cd ${S}; ./autogen.sh; cd - ) +} + +do_configure() { + ( cd ${S}; ./configure --host=${TARGET_SYS} --prefix=${D}${prefix}; cd - ) +} + +do_compile() { + ( cd ${S}; oe_runmake; cd - ) +} + +do_install() { + ( cd ${S}; oe_runmake install; cd - ) +} + +do_install_append() { + chrpath -d ${D}${prefix}/sbin/ply +} + +# x86, mips32/64, riscv64 are not supported in this release +COMPATIBLE_HOST_i586 = 'null' +COMPATIBLE_HOST_i686 = 'null' +COMPATIBLE_HOST_mipsarchn32 = "null" +COMPATIBLE_HOST_mipsarchn64 = "null" +COMPATIBLE_HOST_riscv64 = "null" -- 2.17.1 From mark.asselstine at windriver.com Fri Feb 21 15:20:56 2020 From: mark.asselstine at windriver.com (Mark Asselstine) Date: Fri, 21 Feb 2020 10:20:56 -0500 Subject: [oe] [meta-oe][PATCH] meta-oe: onig: avoid using 'install' with both -D and -t options Message-ID: <1582298456-15277-1-git-send-email-mark.asselstine@windriver.com> Older versions of 'install' (prior to 8.23) do not allow the -D and -t options to be used together. (see coreutils commit 15d092f94a3a [install: allow options -D and -t to be used together]). On build hosts such as CentOS7, which has install v8.22, we therefor see a failure: install: failed to access ?...onig/6.9.4-r0/image/usr/lib64/onig/ptest/tests/?: No such file or directory We definitely don't want to avoid using useful features of tools but throughout meta-openembedded the mkdir approach is used so let's stick to it and avoid causing undo issues at the expense of one extra line of code. Signed-off-by: Mark Asselstine --- meta-oe/recipes-support/onig/onig_6.9.4.bb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta-oe/recipes-support/onig/onig_6.9.4.bb b/meta-oe/recipes-support/onig/onig_6.9.4.bb index cfa86f0..50d9f52 100644 --- a/meta-oe/recipes-support/onig/onig_6.9.4.bb +++ b/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/* } -- 2.7.4 From alex.kiernan at gmail.com Fri Feb 21 17:08:22 2020 From: alex.kiernan at gmail.com (Alex Kiernan) Date: Fri, 21 Feb 2020 17:08:22 +0000 Subject: [oe] [meta-oe][PATCH v2] Ply: Add recipe for git version In-Reply-To: <20200221104340.21294-1-leo.yan@linaro.org> References: <20200221104340.21294-1-leo.yan@linaro.org> Message-ID: On Fri, Feb 21, 2020 at 10:44 AM Leo Yan wrote: > > Ply is a light-weight eBPF tool which compiles ply script or one-liner > to Linux BPF programs and attaches to kprobes and tracepoints. It > doesn't require external dependencies except libc, so it's very friendly > for embedded system usage. > > This patch adds the recipe to support ply building for git version. > > Signed-off-by: Leo Yan > --- > meta-oe/recipes-devtools/ply/ply_git.bb | 38 +++++++++++++++++++++++++ > 1 file changed, 38 insertions(+) > create mode 100644 meta-oe/recipes-devtools/ply/ply_git.bb > > diff --git a/meta-oe/recipes-devtools/ply/ply_git.bb b/meta-oe/recipes-devtools/ply/ply_git.bb > new file mode 100644 > index 000000000..21395885c > --- /dev/null > +++ b/meta-oe/recipes-devtools/ply/ply_git.bb > @@ -0,0 +1,38 @@ > +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" > + > +do_configure_prepend() { > + ( cd ${S}; ./autogen.sh; cd - ) > +} > + > +do_configure() { > + ( cd ${S}; ./configure --host=${TARGET_SYS} --prefix=${D}${prefix}; cd - ) > +} > + > +do_compile() { > + ( cd ${S}; oe_runmake; cd - ) > +} > + > +do_install() { > + ( cd ${S}; oe_runmake install; cd - ) > +} > + Can't all of these do_... steps be replaced with `inherit autotools-brokensep`? > +do_install_append() { > + chrpath -d ${D}${prefix}/sbin/ply > +} > + > +# x86, mips32/64, riscv64 are not supported in this release > +COMPATIBLE_HOST_i586 = 'null' > +COMPATIBLE_HOST_i686 = 'null' > +COMPATIBLE_HOST_mipsarchn32 = "null" > +COMPATIBLE_HOST_mipsarchn64 = "null" > +COMPATIBLE_HOST_riscv64 = "null" > -- > 2.17.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel -- Alex Kiernan From alex.kiernan at gmail.com Fri Feb 21 18:18:32 2020 From: alex.kiernan at gmail.com (Alex Kiernan) Date: Fri, 21 Feb 2020 18:18:32 +0000 Subject: [oe] [meta-oe][PATCH] ostree: upgrade 2019.6 -> 2020.2 Message-ID: <20200221181832.119222-1-alex.kiernan@gmail.com> Also expose glib and gpgme in PACKAGECONFIG (which were always on). Signed-off-by: Alex Kiernan --- .../{ostree_2019.6.bb => ostree_2020.2.bb} | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) rename meta-oe/recipes-extended/ostree/{ostree_2019.6.bb => ostree_2020.2.bb} (88%) diff --git a/meta-oe/recipes-extended/ostree/ostree_2019.6.bb b/meta-oe/recipes-extended/ostree/ostree_2020.2.bb similarity index 88% rename from meta-oe/recipes-extended/ostree/ostree_2019.6.bb rename to meta-oe/recipes-extended/ostree/ostree_2020.2.bb index bcf511b9025d..78f4cf588c64 100644 --- a/meta-oe/recipes-extended/ostree/ostree_2019.6.bb +++ b/meta-oe/recipes-extended/ostree/ostree_2020.2.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 = "c6085ebd5e27da35f43165eb614190665468f13a" UPSTREAM_CHECK_GITTAGREGEX = "v(?P\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" -- 2.17.1 From bunk at stusta.de Fri Feb 21 20:39:26 2020 From: bunk at stusta.de (Adrian Bunk) Date: Fri, 21 Feb 2020 22:39:26 +0200 Subject: [oe] [meta-networking][zeus][PATCH] wireshark: Upgrade 3.0.6 -> 3.0.8 Message-ID: <20200221203926.17141-1-bunk@stusta.de> Upgrade on the 3.0 stable branch, including fixes for CVE-2019-19553 and CVE-2020-7045. Signed-off-by: Adrian Bunk --- .../wireshark/{wireshark_3.0.6.bb => wireshark_3.0.8.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-networking/recipes-support/wireshark/{wireshark_3.0.6.bb => wireshark_3.0.8.bb} (95%) diff --git a/meta-networking/recipes-support/wireshark/wireshark_3.0.6.bb b/meta-networking/recipes-support/wireshark/wireshark_3.0.8.bb similarity index 95% rename from meta-networking/recipes-support/wireshark/wireshark_3.0.6.bb rename to meta-networking/recipes-support/wireshark/wireshark_3.0.8.bb index ccaa0c94a..226e16e4e 100644 --- a/meta-networking/recipes-support/wireshark/wireshark_3.0.6.bb +++ b/meta-networking/recipes-support/wireshark/wireshark_3.0.8.bb @@ -12,8 +12,8 @@ SRC_URI = "https://1.eu.dl.wireshark.org/src/all-versions/wireshark-${PV}.tar.xz UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src" -SRC_URI[md5sum] = "c6f8d12a3efe21cc7885f7cb0c4bd938" -SRC_URI[sha256sum] = "a87f4022a0c15ddbf1730bf1acafce9e75a4e657ce9fa494ceda0324c0c3e33e" +SRC_URI[md5sum] = "034f09e639fb4efebbc08af7b2a85333" +SRC_URI[sha256sum] = "b4bd8189934d82330a053c5b10398f2b625b1e1c8818831ab61739b2d7aa7561" PE = "1" -- 2.17.1 From bunk at stusta.de Fri Feb 21 20:44:39 2020 From: bunk at stusta.de (Adrian Bunk) Date: Fri, 21 Feb 2020 22:44:39 +0200 Subject: [oe] [meta-networking][warrior][PATCH] mariadb: upgrade 10.3.16 -> 10.3.18 Message-ID: <20200221204440.16807-2-bunk@stusta.de> From: Zheng Ruoqin Signed-off-by: Zheng Ruoqin Signed-off-by: Khem Raj [Bug fix only update https://mariadb.com/kb/en/library/mariadb-10318-release-notes/ includes: CVE-2019-2805 CVE-2019-2740 CVE-2019-2739 CVE-2019-2737 CVE-2019-2758 ] Signed-off-by: Armin Kuster Signed-off-by: Adrian Bunk --- .../{mariadb-native_10.3.16.bb => mariadb-native_10.3.18.bb} | 0 meta-oe/recipes-dbs/mysql/mariadb.inc | 4 ++-- .../mysql/{mariadb_10.3.16.bb => mariadb_10.3.18.bb} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-dbs/mysql/{mariadb-native_10.3.16.bb => mariadb-native_10.3.18.bb} (100%) rename meta-oe/recipes-dbs/mysql/{mariadb_10.3.16.bb => mariadb_10.3.18.bb} (100%) diff --git a/meta-oe/recipes-dbs/mysql/mariadb-native_10.3.16.bb b/meta-oe/recipes-dbs/mysql/mariadb-native_10.3.18.bb similarity index 100% rename from meta-oe/recipes-dbs/mysql/mariadb-native_10.3.16.bb rename to meta-oe/recipes-dbs/mysql/mariadb-native_10.3.18.bb diff --git a/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-oe/recipes-dbs/mysql/mariadb.inc index 37abf45d8..c2a30bc99 100644 --- a/meta-oe/recipes-dbs/mysql/mariadb.inc +++ b/meta-oe/recipes-dbs/mysql/mariadb.inc @@ -19,8 +19,8 @@ SRC_URI = "http://archive.mariadb.org/${BP}/source/${BP}.tar.gz \ file://clang_version_header_conflict.patch \ file://fix-arm-atomic.patch \ " -SRC_URI[md5sum] = "11220d0b94c5c24caa2e1e9eaba38e31" -SRC_URI[sha256sum] = "39e9723eaf620afd99b0925b2c2a5a50a89110ba50040adf14cce7cf89e5e21b" +SRC_URI[md5sum] = "b3524c0825c3a1c255496daea38304a0" +SRC_URI[sha256sum] = "69456ca85bf9d96c6d28b4ade2a9f6787d79a602e27ef941f9ba4e0b55dddedc" UPSTREAM_CHECK_URI = "https://github.com/MariaDB/server/releases" diff --git a/meta-oe/recipes-dbs/mysql/mariadb_10.3.16.bb b/meta-oe/recipes-dbs/mysql/mariadb_10.3.18.bb similarity index 100% rename from meta-oe/recipes-dbs/mysql/mariadb_10.3.16.bb rename to meta-oe/recipes-dbs/mysql/mariadb_10.3.18.bb -- 2.17.1 From bunk at stusta.de Fri Feb 21 20:44:38 2020 From: bunk at stusta.de (Adrian Bunk) Date: Fri, 21 Feb 2020 22:44:38 +0200 Subject: [oe] [meta-networking][warrior][PATCH] modemmanager: Upgrade 1.8.2 -> 1.8.4 Message-ID: <20200221204440.16807-1-bunk@stusta.de> Bugfix release on the 1.8 stable branch. Signed-off-by: Adrian Bunk --- .../{modemmanager_1.8.2.bb => modemmanager_1.8.4.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-connectivity/modemmanager/{modemmanager_1.8.2.bb => modemmanager_1.8.4.bb} (93%) diff --git a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.2.bb b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.4.bb similarity index 93% rename from meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.2.bb rename to meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.4.bb index f9b302a3d..5895a8b76 100644 --- a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.2.bb +++ b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.4.bb @@ -16,8 +16,8 @@ SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.t file://0001-Do-not-pass-null-string-to-s-printf-formatted-string.patch \ " -SRC_URI[md5sum] = "a49c9f73e46c7b89e5efedda250d22c0" -SRC_URI[sha256sum] = "96f2a5f0ed15532b4c4c185b756fdc0326e7c2027cea26a1264f91e098260f80" +SRC_URI[md5sum] = "460661e12b7cc1da5c0920bdfe9f38de" +SRC_URI[sha256sum] = "d9d0ef25e256586ce3c9bbe4b27f443721f8c891340e5e9087a21f5d70e637da" S = "${WORKDIR}/ModemManager-${PV}" -- 2.17.1 From bunk at stusta.de Fri Feb 21 20:44:40 2020 From: bunk at stusta.de (Adrian Bunk) Date: Fri, 21 Feb 2020 22:44:40 +0200 Subject: [oe] [meta-networking][warrior][PATCH] libqmi: Upgrade 1.22.2 -> 1.22.6 Message-ID: <20200221204440.16807-3-bunk@stusta.de> Upgrade on the 1.22 stable branch. Signed-off-by: Adrian Bunk --- .../libqmi/{libqmi_1.22.2.bb => libqmi_1.22.6.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-connectivity/libqmi/{libqmi_1.22.2.bb => libqmi_1.22.6.bb} (85%) diff --git a/meta-oe/recipes-connectivity/libqmi/libqmi_1.22.2.bb b/meta-oe/recipes-connectivity/libqmi/libqmi_1.22.6.bb similarity index 85% rename from meta-oe/recipes-connectivity/libqmi/libqmi_1.22.2.bb rename to meta-oe/recipes-connectivity/libqmi/libqmi_1.22.6.bb index da13286b4..af56061fa 100644 --- a/meta-oe/recipes-connectivity/libqmi/libqmi_1.22.2.bb +++ b/meta-oe/recipes-connectivity/libqmi/libqmi_1.22.6.bb @@ -14,8 +14,8 @@ inherit autotools pkgconfig bash-completion SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \ file://0001-Detect-clang.patch \ " -SRC_URI[md5sum] = "3fd831c1b0de4a4432be628432a960ff" -SRC_URI[sha256sum] = "f1f1e514a89b1dcba05cf7274895e7301a2da4c947b7c2f17acb84fc74038227" +SRC_URI[md5sum] = "bea205242b438d3540b523fed245746f" +SRC_URI[sha256sum] = "755bbea2a330ac16d56678fbcdd09201ddb14779059ecc895edfac388551d5de" PACKAGECONFIG ??= "udev mbim" PACKAGECONFIG[udev] = ",--without-udev,libgudev" -- 2.17.1 From bunk at stusta.de Fri Feb 21 20:46:15 2020 From: bunk at stusta.de (Adrian Bunk) Date: Fri, 21 Feb 2020 22:46:15 +0200 Subject: [oe] [meta-oe][warrior][PATCH] modemmanager: Upgrade 1.8.2 -> 1.8.4 Message-ID: <20200221204617.13912-1-bunk@stusta.de> Bugfix release on the 1.8 stable branch. Signed-off-by: Adrian Bunk --- .../{modemmanager_1.8.2.bb => modemmanager_1.8.4.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-connectivity/modemmanager/{modemmanager_1.8.2.bb => modemmanager_1.8.4.bb} (93%) diff --git a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.2.bb b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.4.bb similarity index 93% rename from meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.2.bb rename to meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.4.bb index f9b302a3d..5895a8b76 100644 --- a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.2.bb +++ b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.4.bb @@ -16,8 +16,8 @@ SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.t file://0001-Do-not-pass-null-string-to-s-printf-formatted-string.patch \ " -SRC_URI[md5sum] = "a49c9f73e46c7b89e5efedda250d22c0" -SRC_URI[sha256sum] = "96f2a5f0ed15532b4c4c185b756fdc0326e7c2027cea26a1264f91e098260f80" +SRC_URI[md5sum] = "460661e12b7cc1da5c0920bdfe9f38de" +SRC_URI[sha256sum] = "d9d0ef25e256586ce3c9bbe4b27f443721f8c891340e5e9087a21f5d70e637da" S = "${WORKDIR}/ModemManager-${PV}" -- 2.17.1 From bunk at stusta.de Fri Feb 21 20:46:16 2020 From: bunk at stusta.de (Adrian Bunk) Date: Fri, 21 Feb 2020 22:46:16 +0200 Subject: [oe] [meta-oe][warrior][PATCH] mariadb: upgrade 10.3.16 -> 10.3.18 Message-ID: <20200221204617.13912-2-bunk@stusta.de> From: Zheng Ruoqin Signed-off-by: Zheng Ruoqin Signed-off-by: Khem Raj [Bug fix only update https://mariadb.com/kb/en/library/mariadb-10318-release-notes/ includes: CVE-2019-2805 CVE-2019-2740 CVE-2019-2739 CVE-2019-2737 CVE-2019-2758 ] Signed-off-by: Armin Kuster Signed-off-by: Adrian Bunk --- .../{mariadb-native_10.3.16.bb => mariadb-native_10.3.18.bb} | 0 meta-oe/recipes-dbs/mysql/mariadb.inc | 4 ++-- .../mysql/{mariadb_10.3.16.bb => mariadb_10.3.18.bb} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-dbs/mysql/{mariadb-native_10.3.16.bb => mariadb-native_10.3.18.bb} (100%) rename meta-oe/recipes-dbs/mysql/{mariadb_10.3.16.bb => mariadb_10.3.18.bb} (100%) diff --git a/meta-oe/recipes-dbs/mysql/mariadb-native_10.3.16.bb b/meta-oe/recipes-dbs/mysql/mariadb-native_10.3.18.bb similarity index 100% rename from meta-oe/recipes-dbs/mysql/mariadb-native_10.3.16.bb rename to meta-oe/recipes-dbs/mysql/mariadb-native_10.3.18.bb diff --git a/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-oe/recipes-dbs/mysql/mariadb.inc index 37abf45d8..c2a30bc99 100644 --- a/meta-oe/recipes-dbs/mysql/mariadb.inc +++ b/meta-oe/recipes-dbs/mysql/mariadb.inc @@ -19,8 +19,8 @@ SRC_URI = "http://archive.mariadb.org/${BP}/source/${BP}.tar.gz \ file://clang_version_header_conflict.patch \ file://fix-arm-atomic.patch \ " -SRC_URI[md5sum] = "11220d0b94c5c24caa2e1e9eaba38e31" -SRC_URI[sha256sum] = "39e9723eaf620afd99b0925b2c2a5a50a89110ba50040adf14cce7cf89e5e21b" +SRC_URI[md5sum] = "b3524c0825c3a1c255496daea38304a0" +SRC_URI[sha256sum] = "69456ca85bf9d96c6d28b4ade2a9f6787d79a602e27ef941f9ba4e0b55dddedc" UPSTREAM_CHECK_URI = "https://github.com/MariaDB/server/releases" diff --git a/meta-oe/recipes-dbs/mysql/mariadb_10.3.16.bb b/meta-oe/recipes-dbs/mysql/mariadb_10.3.18.bb similarity index 100% rename from meta-oe/recipes-dbs/mysql/mariadb_10.3.16.bb rename to meta-oe/recipes-dbs/mysql/mariadb_10.3.18.bb -- 2.17.1 From bunk at stusta.de Fri Feb 21 20:46:17 2020 From: bunk at stusta.de (Adrian Bunk) Date: Fri, 21 Feb 2020 22:46:17 +0200 Subject: [oe] [meta-oe][warrior][PATCH] libqmi: Upgrade 1.22.2 -> 1.22.6 Message-ID: <20200221204617.13912-3-bunk@stusta.de> Upgrade on the 1.22 stable branch. Signed-off-by: Adrian Bunk --- .../libqmi/{libqmi_1.22.2.bb => libqmi_1.22.6.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-connectivity/libqmi/{libqmi_1.22.2.bb => libqmi_1.22.6.bb} (85%) diff --git a/meta-oe/recipes-connectivity/libqmi/libqmi_1.22.2.bb b/meta-oe/recipes-connectivity/libqmi/libqmi_1.22.6.bb similarity index 85% rename from meta-oe/recipes-connectivity/libqmi/libqmi_1.22.2.bb rename to meta-oe/recipes-connectivity/libqmi/libqmi_1.22.6.bb index da13286b4..af56061fa 100644 --- a/meta-oe/recipes-connectivity/libqmi/libqmi_1.22.2.bb +++ b/meta-oe/recipes-connectivity/libqmi/libqmi_1.22.6.bb @@ -14,8 +14,8 @@ inherit autotools pkgconfig bash-completion SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \ file://0001-Detect-clang.patch \ " -SRC_URI[md5sum] = "3fd831c1b0de4a4432be628432a960ff" -SRC_URI[sha256sum] = "f1f1e514a89b1dcba05cf7274895e7301a2da4c947b7c2f17acb84fc74038227" +SRC_URI[md5sum] = "bea205242b438d3540b523fed245746f" +SRC_URI[sha256sum] = "755bbea2a330ac16d56678fbcdd09201ddb14779059ecc895edfac388551d5de" PACKAGECONFIG ??= "udev mbim" PACKAGECONFIG[udev] = ",--without-udev,libgudev" -- 2.17.1 From bunk at stusta.de Fri Feb 21 20:47:45 2020 From: bunk at stusta.de (Adrian Bunk) Date: Fri, 21 Feb 2020 22:47:45 +0200 Subject: [oe] [meta-networking][warrior][PATCH 1/2] wireshark: upgrade 3.0.3 -> 3.0.6 Message-ID: <20200221204746.14560-1-bunk@stusta.de> From: Zheng Ruoqin Signed-off-by: Zheng Ruoqin Signed-off-by: Khem Raj [Bug fix only update includes: CVE-2019-16319 ] Signed-off-by: Armin Kuster Signed-off-by: Adrian Bunk --- .../wireshark/{wireshark_3.0.3.bb => wireshark_3.0.6.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-networking/recipes-support/wireshark/{wireshark_3.0.3.bb => wireshark_3.0.6.bb} (95%) diff --git a/meta-networking/recipes-support/wireshark/wireshark_3.0.3.bb b/meta-networking/recipes-support/wireshark/wireshark_3.0.6.bb similarity index 95% rename from meta-networking/recipes-support/wireshark/wireshark_3.0.3.bb rename to meta-networking/recipes-support/wireshark/wireshark_3.0.6.bb index efcd5e42e..9436231cd 100644 --- a/meta-networking/recipes-support/wireshark/wireshark_3.0.3.bb +++ b/meta-networking/recipes-support/wireshark/wireshark_3.0.6.bb @@ -12,8 +12,8 @@ SRC_URI = "https://1.eu.dl.wireshark.org/src/all-versions/wireshark-${PV}.tar.xz UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src" -SRC_URI[md5sum] = "e945d76a57db2c3e6cf776f95da2cf0e" -SRC_URI[sha256sum] = "af92729c781d870110885c31ebcbe4c4224ed51bb580d00c896fe9746994211c" +SRC_URI[md5sum] = "c6f8d12a3efe21cc7885f7cb0c4bd938" +SRC_URI[sha256sum] = "a87f4022a0c15ddbf1730bf1acafce9e75a4e657ce9fa494ceda0324c0c3e33e" PE = "1" -- 2.17.1 From bunk at stusta.de Fri Feb 21 20:47:46 2020 From: bunk at stusta.de (Adrian Bunk) Date: Fri, 21 Feb 2020 22:47:46 +0200 Subject: [oe] [meta-networking][warrior][PATCH 2/2] wireshark: Upgrade 3.0.6 -> 3.0.8 In-Reply-To: <20200221204746.14560-1-bunk@stusta.de> References: <20200221204746.14560-1-bunk@stusta.de> Message-ID: <20200221204746.14560-2-bunk@stusta.de> Upgrade on the 3.0 stable branch, including fixes for CVE-2019-19553 and CVE-2020-7045. Signed-off-by: Adrian Bunk --- .../wireshark/{wireshark_3.0.6.bb => wireshark_3.0.8.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-networking/recipes-support/wireshark/{wireshark_3.0.6.bb => wireshark_3.0.8.bb} (95%) diff --git a/meta-networking/recipes-support/wireshark/wireshark_3.0.6.bb b/meta-networking/recipes-support/wireshark/wireshark_3.0.8.bb similarity index 95% rename from meta-networking/recipes-support/wireshark/wireshark_3.0.6.bb rename to meta-networking/recipes-support/wireshark/wireshark_3.0.8.bb index 9436231cd..1c0ededf2 100644 --- a/meta-networking/recipes-support/wireshark/wireshark_3.0.6.bb +++ b/meta-networking/recipes-support/wireshark/wireshark_3.0.8.bb @@ -12,8 +12,8 @@ SRC_URI = "https://1.eu.dl.wireshark.org/src/all-versions/wireshark-${PV}.tar.xz UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src" -SRC_URI[md5sum] = "c6f8d12a3efe21cc7885f7cb0c4bd938" -SRC_URI[sha256sum] = "a87f4022a0c15ddbf1730bf1acafce9e75a4e657ce9fa494ceda0324c0c3e33e" +SRC_URI[md5sum] = "034f09e639fb4efebbc08af7b2a85333" +SRC_URI[sha256sum] = "b4bd8189934d82330a053c5b10398f2b625b1e1c8818831ab61739b2d7aa7561" PE = "1" -- 2.17.1 From bunk at stusta.de Fri Feb 21 20:49:25 2020 From: bunk at stusta.de (Adrian Bunk) Date: Fri, 21 Feb 2020 22:49:25 +0200 Subject: [oe] [meta-networking][warrior][PATCH] freeradius: fix CVE-2019-10143 Message-ID: <20200221204927.13293-1-bunk@stusta.de> From: Yi Zhao Reference: https://nvd.nist.gov/vuln/detail/CVE-2019-10143 Patch from: https://github.com/FreeRADIUS/freeradius-server/commit/1f233773962bf1a9c2d228a180eacddb9db2d574 Signed-off-by: Yi Zhao Signed-off-by: Khem Raj Signed-off-by: Armin Kuster Signed-off-by: Adrian Bunk --- ...adiusd-user-group-when-rotating-logs.patch | 104 ++++++++++++++++++ .../freeradius/freeradius_3.0.17.bb | 1 + 2 files changed, 105 insertions(+) create mode 100644 meta-networking/recipes-connectivity/freeradius/files/0001-su-to-radiusd-user-group-when-rotating-logs.patch diff --git a/meta-networking/recipes-connectivity/freeradius/files/0001-su-to-radiusd-user-group-when-rotating-logs.patch b/meta-networking/recipes-connectivity/freeradius/files/0001-su-to-radiusd-user-group-when-rotating-logs.patch new file mode 100644 index 000000000..5859dc7ed --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/0001-su-to-radiusd-user-group-when-rotating-logs.patch @@ -0,0 +1,104 @@ +From 1f233773962bf1a9c2d228a180eacddb9db2d574 Mon Sep 17 00:00:00 2001 +From: Alexander Scheel +Date: Tue, 7 May 2019 16:04:29 -0400 +Subject: [PATCH] su to radiusd user/group when rotating logs + +The su directive to logrotate ensures that log rotation happens under the +owner of the logs. Otherwise, logrotate runs as root:root, potentially +enabling privilege escalation if a RCE is discovered against the +FreeRADIUS daemon. + +Signed-off-by: Alexander Scheel + +Upstream-Status: Backport +[https://github.com/FreeRADIUS/freeradius-server/commit/1f233773962bf1a9c2d228a180eacddb9db2d574] + +CVE: CVE-2019-10143 + +Signed-off-by: Yi Zhao +--- + debian/freeradius.logrotate | 3 +++ + redhat/freeradius-logrotate | 1 + + scripts/logrotate/freeradius | 3 +++ + suse/radiusd-logrotate | 1 + + 4 files changed, 8 insertions(+) + +diff --git a/debian/freeradius.logrotate b/debian/freeradius.logrotate +index 7d837d5..a8d29b7 100644 +--- a/debian/freeradius.logrotate ++++ b/debian/freeradius.logrotate +@@ -9,6 +9,7 @@ + notifempty + + copytruncate ++ su freerad freerad + } + + # (in order) +@@ -26,6 +27,7 @@ + notifempty + + nocreate ++ su freerad freerad + } + + # There are different detail-rotating strategies you can use. One is +@@ -45,4 +47,5 @@ + notifempty + + nocreate ++ su freerad freerad + } +diff --git a/redhat/freeradius-logrotate b/redhat/freeradius-logrotate +index 360765d..bb97ca5 100644 +--- a/redhat/freeradius-logrotate ++++ b/redhat/freeradius-logrotate +@@ -9,6 +9,7 @@ rotate 4 + missingok + compress + delaycompress ++su radiusd radiusd + + # + # The main server log +diff --git a/scripts/logrotate/freeradius b/scripts/logrotate/freeradius +index 3de435e..eecf631 100644 +--- a/scripts/logrotate/freeradius ++++ b/scripts/logrotate/freeradius +@@ -17,6 +17,7 @@ + notifempty + + copytruncate ++ su radiusd radiusd + } + + # (in order) +@@ -34,6 +35,7 @@ + notifempty + + nocreate ++ su radiusd radiusd + } + + # There are different detail-rotating strategies you can use. One is +@@ -53,4 +55,5 @@ + notifempty + + nocreate ++ su radiusd radiusd + } +diff --git a/suse/radiusd-logrotate b/suse/radiusd-logrotate +index 24d56be..be5a797 100644 +--- a/suse/radiusd-logrotate ++++ b/suse/radiusd-logrotate +@@ -11,6 +11,7 @@ missingok + compress + delaycompress + notifempty ++su radiusd radiusd + + # + # The main server log +-- +2.7.4 + diff --git a/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.17.bb b/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.17.bb index e0b04c110..ea71eb225 100644 --- a/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.17.bb +++ b/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.17.bb @@ -27,6 +27,7 @@ SRC_URI = "ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-${PV}.tar.b file://freeradius-fix-quoting-for-BUILT_WITH.patch \ file://freeradius-fix-error-for-expansion-of-macro.patch \ file://0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch \ + file://0001-su-to-radiusd-user-group-when-rotating-logs.patch \ file://radiusd.service \ file://radiusd-volatiles.conf \ file://0001-freeradius-correct-version-number-of-libssl-defect.patch \ -- 2.17.1 From bunk at stusta.de Fri Feb 21 20:49:26 2020 From: bunk at stusta.de (Adrian Bunk) Date: Fri, 21 Feb 2020 22:49:26 +0200 Subject: [oe] [meta-networking][warrior][PATCH] dnsmasq: CVE-2019-14834 Message-ID: <20200221204927.13293-2-bunk@stusta.de> From: Zhixiong Chi Backport the CVE patch from the upstream to fix the memory leak. Signed-off-by: Zhixiong Chi Signed-off-by: Khem Raj (cherry picked from commit c8ca82feb5d6ceb843aad33dada947b456f7fcac) Signed-off-by: Armin Kuster Signed-off-by: Adrian Bunk --- ...-dnsmasq-fix-memory-leak-in-helper-c.patch | 49 +++++++++++++++++++ .../recipes-support/dnsmasq/dnsmasq_2.80.bb | 1 + 2 files changed, 50 insertions(+) create mode 100644 meta-networking/recipes-support/dnsmasq/dnsmasq/0001-dnsmasq-fix-memory-leak-in-helper-c.patch diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq/0001-dnsmasq-fix-memory-leak-in-helper-c.patch b/meta-networking/recipes-support/dnsmasq/dnsmasq/0001-dnsmasq-fix-memory-leak-in-helper-c.patch new file mode 100644 index 000000000..ccd6f82ae --- /dev/null +++ b/meta-networking/recipes-support/dnsmasq/dnsmasq/0001-dnsmasq-fix-memory-leak-in-helper-c.patch @@ -0,0 +1,49 @@ +From 69bc94779c2f035a9fffdb5327a54c3aeca73ed5 Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Wed, 14 Aug 2019 20:44:50 +0100 +Subject: [PATCH] Fix memory leak in helper.c + +Thanks to Xu Mingjie for spotting this. + +CVE: CVE-2019-14834 +Upstream-Status: Backport +Signed-off-by: Zhixiong Chi +--- + src/helper.c | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git a/src/helper.c b/src/helper.c +index 33ba120..c392eec 100644 +--- a/src/helper.c ++++ b/src/helper.c +@@ -82,7 +82,8 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd) + pid_t pid; + int i, pipefd[2]; + struct sigaction sigact; +- ++ unsigned char *alloc_buff = NULL; ++ + /* create the pipe through which the main program sends us commands, + then fork our process. */ + if (pipe(pipefd) == -1 || !fix_fd(pipefd[1]) || (pid = fork()) == -1) +@@ -188,11 +189,16 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd) + struct script_data data; + char *p, *action_str, *hostname = NULL, *domain = NULL; + unsigned char *buf = (unsigned char *)daemon->namebuff; +- unsigned char *end, *extradata, *alloc_buff = NULL; ++ unsigned char *end, *extradata; + int is6, err = 0; + int pipeout[2]; + +- free(alloc_buff); ++ /* Free rarely-allocated memory from previous iteration. */ ++ if (alloc_buff) ++ { ++ free(alloc_buff); ++ alloc_buff = NULL; ++ } + + /* we read zero bytes when pipe closed: this is our signal to exit */ + if (!read_write(pipefd[0], (unsigned char *)&data, sizeof(data), 1)) +-- +1.7.10.4 diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq_2.80.bb b/meta-networking/recipes-support/dnsmasq/dnsmasq_2.80.bb index fdbdefbad..1e5e74bbc 100644 --- a/meta-networking/recipes-support/dnsmasq/dnsmasq_2.80.bb +++ b/meta-networking/recipes-support/dnsmasq/dnsmasq_2.80.bb @@ -4,5 +4,6 @@ SRC_URI[dnsmasq-2.80.md5sum] = "1f071fd11454e1cffea73bdadcf70b21" SRC_URI[dnsmasq-2.80.sha256sum] = "9e4a58f816ce0033ce383c549b7d4058ad9b823968d352d2b76614f83ea39adc" SRC_URI += "\ file://lua.patch \ + file://0001-dnsmasq-fix-memory-leak-in-helper-c.patch \ " -- 2.17.1 From bunk at stusta.de Fri Feb 21 20:49:27 2020 From: bunk at stusta.de (Adrian Bunk) Date: Fri, 21 Feb 2020 22:49:27 +0200 Subject: [oe] [meta-networking][warrior][PATCH] networkmanager: Upgrade 1.16.0 -> 1.16.4 Message-ID: <20200221204927.13293-3-bunk@stusta.de> Upgrade on the 1.16 stable branch. Removed patch for issue fixed upstream. Signed-off-by: Adrian Bunk --- .../networkmanager/0003-dlopen-failure.patch | 34 ------------------- ...ger_1.16.0.bb => networkmanager_1.16.4.bb} | 5 ++- 2 files changed, 2 insertions(+), 37 deletions(-) delete mode 100644 meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-dlopen-failure.patch rename meta-networking/recipes-connectivity/networkmanager/{networkmanager_1.16.0.bb => networkmanager_1.16.4.bb} (96%) diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-dlopen-failure.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-dlopen-failure.patch deleted file mode 100644 index e99c22710..000000000 --- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-dlopen-failure.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 57239fda56b68a8f3e413f7b6af5290ba0d86636 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Thu, 22 Mar 2018 18:18:06 +0100 -Subject: [PATCH] musl: dlopen is included so LD_LIBS="" instead of - LD_LIBS="none required" -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Upstream-Status: Pending - -Stolen from [1] and prettyfied slightly - -[1] https://github.com/voidlinux/void-packages/tree/master/srcpkgs/NetworkManager/patches - -Signed-off-by: Andreas M?ller ---- - configure.ac | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/configure.ac b/configure.ac -index 487a266..96ae4f7 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -235,6 +235,7 @@ dnl - dnl Checks for libdl - on certain platforms its part of libc - dnl - AC_SEARCH_LIBS([dlopen], [dl dld], [], [ac_cv_search_dlopen=]) -+AS_IF([test "$ac_cv_search_dlopen" = "none required"],[ac_cv_search_dlopen=""]) - AC_SUBST([DL_LIBS], "$ac_cv_search_dlopen") - - PKG_CHECK_MODULES(GLIB, [gio-unix-2.0 >= 2.37.6 gmodule-2.0], --- -2.14.3 diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.0.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.4.bb similarity index 96% rename from meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.0.bb rename to meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.4.bb index 9f01f1bc1..8d222ed2b 100644 --- a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.0.bb +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.4.bb @@ -26,15 +26,14 @@ SRC_URI = " \ ${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \ file://0001-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch \ file://0002-Do-not-create-settings-settings-property-documentati.patch \ - file://0003-dlopen-failure.patch \ " SRC_URI_append_libc-musl = " \ file://musl/0001-Fix-build-with-musl-systemd-specific.patch \ file://musl/0002-Fix-build-with-musl.patch \ " -SRC_URI[md5sum] = "10abacaafb162a67d2942adf03e7e9e4" -SRC_URI[sha256sum] = "8e962833b6ca03edda1bc57ed6614a7b8c2339531b44acef098d05f2324c5d2c" +SRC_URI[md5sum] = "cde5a88043f69ceec4c2ae3c298d9805" +SRC_URI[sha256sum] = "130272a279aa26e197e544a270a832ee97ae6833504ff3a41c8ef9eeaed0d1f0" UPSTREAM_CHECK_URI = "${GNOME_MIRROR}/NetworkManager/1.16/" UPSTREAM_CHECK_REGEX = "NetworkManager\-(?P1\.10(\.\d+)+).tar.xz" -- 2.17.1 From bunk at stusta.de Fri Feb 21 20:50:15 2020 From: bunk at stusta.de (Adrian Bunk) Date: Fri, 21 Feb 2020 22:50:15 +0200 Subject: [oe] [meta-networking][warrior][PATCH] modemmanager: Upgrade 1.8.2 -> 1.8.4 In-Reply-To: <20200221204440.16807-1-bunk@stusta.de> References: <20200221204440.16807-1-bunk@stusta.de> Message-ID: <20200221205015.GA13612@localhost> This one and the next 2 patches have been resent with the correct [meta-oe]. cu Adrian From raj.khem at gmail.com Fri Feb 21 22:20:59 2020 From: raj.khem at gmail.com (Khem Raj) Date: Fri, 21 Feb 2020 14:20:59 -0800 Subject: [oe] [meta-oe][PATCH v2] Ply: Add recipe for git version In-Reply-To: <20200221104340.21294-1-leo.yan@linaro.org> References: <20200221104340.21294-1-leo.yan@linaro.org> Message-ID: Fails to build on mips https://errors.yoctoproject.org/Errors/Details/392045/ On 2/21/20 2:43 AM, Leo Yan wrote: > Ply is a light-weight eBPF tool which compiles ply script or one-liner > to Linux BPF programs and attaches to kprobes and tracepoints. It > doesn't require external dependencies except libc, so it's very friendly > for embedded system usage. > > This patch adds the recipe to support ply building for git version. > > Signed-off-by: Leo Yan > --- > meta-oe/recipes-devtools/ply/ply_git.bb | 38 +++++++++++++++++++++++++ > 1 file changed, 38 insertions(+) > create mode 100644 meta-oe/recipes-devtools/ply/ply_git.bb > > diff --git a/meta-oe/recipes-devtools/ply/ply_git.bb b/meta-oe/recipes-devtools/ply/ply_git.bb > new file mode 100644 > index 000000000..21395885c > --- /dev/null > +++ b/meta-oe/recipes-devtools/ply/ply_git.bb > @@ -0,0 +1,38 @@ > +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" > + > +do_configure_prepend() { > + ( cd ${S}; ./autogen.sh; cd - ) > +} > + > +do_configure() { > + ( cd ${S}; ./configure --host=${TARGET_SYS} --prefix=${D}${prefix}; cd - ) > +} > + > +do_compile() { > + ( cd ${S}; oe_runmake; cd - ) > +} > + > +do_install() { > + ( cd ${S}; oe_runmake install; cd - ) > +} > + > +do_install_append() { > + chrpath -d ${D}${prefix}/sbin/ply > +} > + > +# x86, mips32/64, riscv64 are not supported in this release > +COMPATIBLE_HOST_i586 = 'null' > +COMPATIBLE_HOST_i686 = 'null' > +COMPATIBLE_HOST_mipsarchn32 = "null" > +COMPATIBLE_HOST_mipsarchn64 = "null" > +COMPATIBLE_HOST_riscv64 = "null" > From jpuhlman at mvista.com Sat Feb 22 05:29:35 2020 From: jpuhlman at mvista.com (Jeremy A. Puhlman) Date: Fri, 21 Feb 2020 21:29:35 -0800 Subject: [oe] [meta-oe][PATCH] ipmiutil: gzip man pages with out timestamp Message-ID: <20200222052935.19762-1-jpuhlman@mvista.com> From: Jeremy Puhlman A timestamp was getting encoded into the gzip header. This causes multilib conflicts when installed together, and would likely fail reproducablity tests. --- ...ess-times-from-changing-resulting-gzip-md.patch | 25 ++++++++++++++++++++++ meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb | 1 + 2 files changed, 26 insertions(+) create mode 100644 meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch diff --git a/meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch b/meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch new file mode 100644 index 000000000..82d0e99d0 --- /dev/null +++ b/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 +Date: Sat, 22 Feb 2020 04:37:04 +0000 +Subject: [PATCH] Prevent access times from changing resulting gzip md5sum + +Upstream-Status: Pending +https://sourceforge.net/p/ipmiutil/support-requests/40/attachment/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch +--- + 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 -Tf *.8 + +-- +2.13.3 + diff --git a/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb b/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb index 3e2634028..d0f3688a2 100644 --- a/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb +++ b/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" -- 2.13.3 From leo.yan at linaro.org Sun Feb 23 05:35:49 2020 From: leo.yan at linaro.org (Leo Yan) Date: Sun, 23 Feb 2020 05:35:49 +0000 Subject: [oe] [meta-oe][PATCH v2] luajit: Upgrade to 2.1.0-beta3 Message-ID: <20200223053549.7056-1-leo.yan@linaro.org> Since luajit 2.1.0-beta3 can support architecture aarch64 and the old misses to support aarch64, the patch upgrades to luajit 2.1.0-beta3. Signed-off-by: Leo Yan --- .../luajit/{luajit_2.0.5.bb => luajit_git.bb} | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) rename meta-oe/recipes-devtools/luajit/{luajit_2.0.5.bb => luajit_git.bb} (88%) diff --git a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb b/meta-oe/recipes-devtools/luajit/luajit_git.bb similarity index 88% rename from meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb rename to meta-oe/recipes-devtools/luajit/luajit_git.bb index 93128dda8..afa60dba7 100644 --- a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb +++ b/meta-oe/recipes-devtools/luajit/luajit_git.bb @@ -3,12 +3,9 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=10a96c93403affcc34765f4c2612bc22" HOMEPAGE = "http://luajit.org" -PV .= "+git${SRCPV}" -SRCREV = "02b521981a1ab919ff2cd4d9bcaee80baf77dce2" -SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http \ - file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \ - file://clang.patch \ -" +PV = "2.1.0+${SRCPV}" +SRCREV = "8271c643c21d1b2f344e339f559f2de6f3663191" +SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http;branch=v2.1" S = "${WORKDIR}/git" @@ -90,8 +87,7 @@ FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \ " FILES_luajit-common = "${datadir}/${BPN}-${PV}" -# Aarch64/mips64/ppc/ppc64/riscv64 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" -- 2.17.1 From raj.khem at gmail.com Sun Feb 23 08:15:29 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sun, 23 Feb 2020 00:15:29 -0800 Subject: [oe] [meta-oe][PATCH] ipmiutil: gzip man pages with out timestamp In-Reply-To: <20200222052935.19762-1-jpuhlman@mvista.com> References: <20200222052935.19762-1-jpuhlman@mvista.com> Message-ID: <55c135f4-f708-bacd-889f-23f7b1e7d889@gmail.com> fails with clang https://errors.yoctoproject.org/Errors/Details/392235/ On 2/21/20 9:29 PM, Jeremy A. Puhlman wrote: > From: Jeremy Puhlman > > A timestamp was getting encoded into the gzip header. This > causes multilib conflicts when installed together, and would > likely fail reproducablity tests. > --- > ...ess-times-from-changing-resulting-gzip-md.patch | 25 ++++++++++++++++++++++ > meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb | 1 + > 2 files changed, 26 insertions(+) > create mode 100644 meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch > > diff --git a/meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch b/meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch > new file mode 100644 > index 000000000..82d0e99d0 > --- /dev/null > +++ b/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 > +Date: Sat, 22 Feb 2020 04:37:04 +0000 > +Subject: [PATCH] Prevent access times from changing resulting gzip md5sum > + > +Upstream-Status: Pending > +https://sourceforge.net/p/ipmiutil/support-requests/40/attachment/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch > +--- > + 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 -Tf *.8 > + > +-- > +2.13.3 > + > diff --git a/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb b/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb > index 3e2634028..d0f3688a2 100644 > --- a/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb > +++ b/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" From bunk at stusta.de Sun Feb 23 12:18:14 2020 From: bunk at stusta.de (Adrian Bunk) Date: Sun, 23 Feb 2020 14:18:14 +0200 Subject: [oe] [meta-oe][PATCH] modemmanager: Upgrade 1.12.4 -> 1.12.6 Message-ID: <20200223121814.7941-2-bunk@stusta.de> Signed-off-by: Adrian Bunk --- .../{modemmanager_1.12.4.bb => modemmanager_1.12.6.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-connectivity/modemmanager/{modemmanager_1.12.4.bb => modemmanager_1.12.6.bb} (93%) diff --git a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.4.bb b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.6.bb similarity index 93% rename from meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.4.bb rename to meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.6.bb index 1f64be09e..ef6ba6bb4 100644 --- a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.4.bb +++ b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.6.bb @@ -14,8 +14,8 @@ DEPENDS = "glib-2.0 libgudev intltool-native libxslt-native" SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.tar.xz \ " -SRC_URI[md5sum] = "22280110d75c87a89786a317aa9cee04" -SRC_URI[sha256sum] = "852d61755e0c1a8d0c609b17192d742b324fdd2e513f3ed64b228befb859a95b" +SRC_URI[md5sum] = "796bf7bfc156c4229cef1a9cb8c79f37" +SRC_URI[sha256sum] = "2eb3353ee5518005c51d429308695c69d8c38cf2fd9102b04f785c03a0cc624c" S = "${WORKDIR}/ModemManager-${PV}" -- 2.17.1 From bunk at stusta.de Sun Feb 23 12:18:13 2020 From: bunk at stusta.de (Adrian Bunk) Date: Sun, 23 Feb 2020 14:18:13 +0200 Subject: [oe] [meta-oe][PATCH] libqmi: Upgrade 1.24.2 -> 1.24.4 Message-ID: <20200223121814.7941-1-bunk@stusta.de> Upgrade on the 1.24 stable branch. Signed-off-by: Adrian Bunk --- .../libqmi/{libqmi_1.24.2.bb => libqmi_1.24.4.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-connectivity/libqmi/{libqmi_1.24.2.bb => libqmi_1.24.4.bb} (85%) diff --git a/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.2.bb b/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.4.bb similarity index 85% rename from meta-oe/recipes-connectivity/libqmi/libqmi_1.24.2.bb rename to meta-oe/recipes-connectivity/libqmi/libqmi_1.24.4.bb index 35a58d2f1..55128284d 100644 --- a/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.2.bb +++ b/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.4.bb @@ -14,8 +14,8 @@ 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[md5sum] = "be6539fde54fec1fc9d852db201c8560" +SRC_URI[sha256sum] = "0316badec92ff32f51fe6278e6046968d2272a26608995deedd8e4afb563918a" PACKAGECONFIG ??= "udev mbim" PACKAGECONFIG[udev] = ",--without-udev,libgudev" -- 2.17.1 From jonatan.p at gmail.com Sun Feb 23 12:43:23 2020 From: jonatan.p at gmail.com (=?UTF-8?q?Jonatan=20P=C3=A5lsson?=) Date: Sun, 23 Feb 2020 13:43:23 +0100 Subject: [oe] [meta-python][PATCH] python-h2: Add missing RDEPENDS on hpack and hyperframe Message-ID: <20200223124323.1892142-1-jonatan.p@gmail.com> Signed-off-by: Jonatan P?lsson --- meta-python/recipes-connectivity/python-h2/python-h2.inc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-python/recipes-connectivity/python-h2/python-h2.inc b/meta-python/recipes-connectivity/python-h2/python-h2.inc index 42629c261..c457836b7 100644 --- a/meta-python/recipes-connectivity/python-h2/python-h2.inc +++ b/meta-python/recipes-connectivity/python-h2/python-h2.inc @@ -8,3 +8,5 @@ SRC_URI[md5sum] = "950b5a62a2a608dc4547a01edf99aa8f" SRC_URI[sha256sum] = "b8a32bd282594424c0ac55845377eea13fa54fe4a8db012f3a198ed923dc3ab4" inherit pypi + +RDEPENDS_${PN} += "${PYTHON_PN}-hpack ${PYTHON_PN}-hyperframe" -- 2.25.1 From leo.yan at linaro.org Sun Feb 23 12:52:31 2020 From: leo.yan at linaro.org (Leo Yan) Date: Sun, 23 Feb 2020 20:52:31 +0800 Subject: [oe] [meta-oe][PATCH v2] Ply: Add recipe for git version In-Reply-To: References: <20200221104340.21294-1-leo.yan@linaro.org> Message-ID: <20200223125231.GA22823@leoy-ThinkPad-X240s> Hi Alex, On Fri, Feb 21, 2020 at 05:08:22PM +0000, Alex Kiernan wrote: [...] > > +do_configure_prepend() { > > + ( cd ${S}; ./autogen.sh; cd - ) > > +} > > + > > +do_configure() { > > + ( cd ${S}; ./configure --host=${TARGET_SYS} --prefix=${D}${prefix}; cd - ) > > +} > > + > > +do_compile() { > > + ( cd ${S}; oe_runmake; cd - ) > > +} > > + > > +do_install() { > > + ( cd ${S}; oe_runmake install; cd - ) > > +} > > + > > Can't all of these do_... steps be replaced with `inherit autotools-brokensep`? Have tested with 'autotools-brokensep', it works very well for ply building. Thanks a lot for this good suggestion! Thanks, Leo From leo.yan at linaro.org Sun Feb 23 12:54:26 2020 From: leo.yan at linaro.org (Leo Yan) Date: Sun, 23 Feb 2020 20:54:26 +0800 Subject: [oe] [meta-oe][PATCH v2] Ply: Add recipe for git version In-Reply-To: References: <20200221104340.21294-1-leo.yan@linaro.org> Message-ID: <20200223125426.GB22823@leoy-ThinkPad-X240s> Hi Khem, On Fri, Feb 21, 2020 at 02:20:59PM -0800, Khem Raj wrote: > Fails to build on mips > > https://errors.yoctoproject.org/Errors/Details/392045/ Sorry for extra efforts introduced by my patch. I changed to use below line for arch compatible and tested with x86-64/aarch64/mips/ppc: COMPATIBLE_HOST = "(x86_64.*|aarch64.*|arm.*|powerpc.*)-linux" Will send out new patch soon. Thanks, Leo From leo.yan at linaro.org Sun Feb 23 12:55:14 2020 From: leo.yan at linaro.org (Leo Yan) Date: Sun, 23 Feb 2020 12:55:14 +0000 Subject: [oe] [meta-oe][PATCH v3] Ply: Add recipe for git version Message-ID: <20200223125514.19467-1-leo.yan@linaro.org> Ply is a light-weight eBPF tool which compiles ply script or one-liner to Linux BPF programs and attaches to kprobes and tracepoints. It doesn't require external dependencies except libc, so it's very friendly for embedded system usage. This patch adds the recipe to support ply building for git version. Signed-off-by: Leo Yan --- meta-oe/recipes-devtools/ply/ply_git.bb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 meta-oe/recipes-devtools/ply/ply_git.bb diff --git a/meta-oe/recipes-devtools/ply/ply_git.bb b/meta-oe/recipes-devtools/ply/ply_git.bb new file mode 100644 index 000000000..7d693b36d --- /dev/null +++ b/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" -- 2.17.1 From yi.zhao at windriver.com Sun Feb 23 15:03:43 2020 From: yi.zhao at windriver.com (Yi Zhao) Date: Sun, 23 Feb 2020 23:03:43 +0800 Subject: [oe] [meta-python][PATCH] python3-networkx: upgrade 2.3 -> 2.4 Message-ID: <20200223150343.16458-1-yi.zhao@windriver.com> Signed-off-by: Yi Zhao --- meta-python/recipes-devtools/python/python-networkx.inc | 2 -- .../recipes-devtools/python/python3-networkx_2.3.bb | 8 -------- .../recipes-devtools/python/python3-networkx_2.4.bb | 8 ++++++++ 3 files changed, 8 insertions(+), 10 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python3-networkx_2.3.bb create mode 100644 meta-python/recipes-devtools/python/python3-networkx_2.4.bb diff --git a/meta-python/recipes-devtools/python/python-networkx.inc b/meta-python/recipes-devtools/python/python-networkx.inc index a4c31b2b2..4bca636dc 100644 --- a/meta-python/recipes-devtools/python/python-networkx.inc +++ b/meta-python/recipes-devtools/python/python-networkx.inc @@ -3,8 +3,6 @@ LICENSE = "BSD-3-Clause" inherit pypi -PYPI_PACKAGE_EXT = "zip" - RDEPENDS_${PN} += "\ ${PYTHON_PN}-decorator \ " diff --git a/meta-python/recipes-devtools/python/python3-networkx_2.3.bb b/meta-python/recipes-devtools/python/python3-networkx_2.3.bb deleted file mode 100644 index 8feb6daa3..000000000 --- a/meta-python/recipes-devtools/python/python3-networkx_2.3.bb +++ /dev/null @@ -1,8 +0,0 @@ -require python-networkx.inc - -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b68290ee1026b204170a23bbdb27a4fd" - -SRC_URI[md5sum] = "320d3f6c7872732baa63cedafddadea9" -SRC_URI[sha256sum] = "8311ddef63cf5c5c5e7c1d0212dd141d9a1fe3f474915281b73597ed5f1d4e3d" - -inherit setuptools3 diff --git a/meta-python/recipes-devtools/python/python3-networkx_2.4.bb b/meta-python/recipes-devtools/python/python3-networkx_2.4.bb new file mode 100644 index 000000000..efa82e21c --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-networkx_2.4.bb @@ -0,0 +1,8 @@ +require python-networkx.inc + +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b68290ee1026b204170a23bbdb27a4fd" + +SRC_URI[md5sum] = "63e3fdc9d3a46bcabc776acc5ea5fe48" +SRC_URI[sha256sum] = "f8f4ff0b6f96e4f9b16af6b84622597b5334bf9cae8cf9b2e42e7985d5c95c64" + +inherit setuptools3 -- 2.17.1 From jpuhlman at mvista.com Sun Feb 23 18:23:48 2020 From: jpuhlman at mvista.com (Jeremy A. Puhlman) Date: Sun, 23 Feb 2020 10:23:48 -0800 Subject: [oe] [meta-oe][PATCH] ipmiutil: gzip man pages with out timestamp In-Reply-To: <55c135f4-f708-bacd-889f-23f7b1e7d889@gmail.com> References: <20200222052935.19762-1-jpuhlman@mvista.com> <55c135f4-f708-bacd-889f-23f7b1e7d889@gmail.com> Message-ID: <463ee6f2-787f-b536-229b-9ce4718df026@mvista.com> On 2/23/2020 12:15 AM, Khem Raj wrote: > fails with clang > > https://errors.yoctoproject.org/Errors/Details/392235/ Its a hosttools issue. I was using hosttools tarball that uses pigz as its gzip. Just needs a depends on pigz-native. Ill respin it. > On 2/21/20 9:29 PM, Jeremy A. Puhlman wrote: >> From: Jeremy Puhlman >> >> A timestamp was getting encoded into the gzip header. This >> causes multilib conflicts when installed together, and would >> likely fail reproducablity tests. >> --- >> ...ess-times-from-changing-resulting-gzip-md.patch | 25 ++++++++++++++++++++++ >> meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb | 1 + >> 2 files changed, 26 insertions(+) >> create mode 100644 meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch >> >> diff --git a/meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch b/meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch >> new file mode 100644 >> index 000000000..82d0e99d0 >> --- /dev/null >> +++ b/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 >> +Date: Sat, 22 Feb 2020 04:37:04 +0000 >> +Subject: [PATCH] Prevent access times from changing resulting gzip md5sum >> + >> +Upstream-Status: Pending >> +https://sourceforge.net/p/ipmiutil/support-requests/40/attachment/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch >> +--- >> + 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 -Tf *.8 >> + >> +-- >> +2.13.3 >> + >> diff --git a/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb b/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb >> index 3e2634028..d0f3688a2 100644 >> --- a/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb >> +++ b/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" -- Jeremy A. Puhlman jpuhlman at mvista.com From bunk at stusta.de Sun Feb 23 18:40:52 2020 From: bunk at stusta.de (Adrian Bunk) Date: Sun, 23 Feb 2020 20:40:52 +0200 Subject: [oe] [meta-oe][PATCH] ipmiutil: gzip man pages with out timestamp In-Reply-To: <463ee6f2-787f-b536-229b-9ce4718df026@mvista.com> References: <20200222052935.19762-1-jpuhlman@mvista.com> <55c135f4-f708-bacd-889f-23f7b1e7d889@gmail.com> <463ee6f2-787f-b536-229b-9ce4718df026@mvista.com> Message-ID: <20200223184052.GA3444@localhost> On Sun, Feb 23, 2020 at 10:23:48AM -0800, Jeremy A. Puhlman wrote: > On 2/23/2020 12:15 AM, Khem Raj wrote: > > fails with clang > > > > https://errors.yoctoproject.org/Errors/Details/392235/ > > Its a hosttools issue. I was using hosttools tarball that uses pigz > as its gzip. Just needs a depends on pigz-native. Ill respin it. Is there a reason why you aren't using -n instead? cu Adrian From jpuhlman at mvista.com Sun Feb 23 18:43:39 2020 From: jpuhlman at mvista.com (Jeremy A. Puhlman) Date: Sun, 23 Feb 2020 10:43:39 -0800 Subject: [oe] [meta-oe][PATCH] ipmiutil: gzip man pages with out timestamp In-Reply-To: <20200223184052.GA3444@localhost> References: <20200222052935.19762-1-jpuhlman@mvista.com> <55c135f4-f708-bacd-889f-23f7b1e7d889@gmail.com> <463ee6f2-787f-b536-229b-9ce4718df026@mvista.com> <20200223184052.GA3444@localhost> Message-ID: <71618158-c5c7-991a-f0e5-96c085e959da@mvista.com> On 2/23/2020 10:40 AM, Adrian Bunk wrote: > On Sun, Feb 23, 2020 at 10:23:48AM -0800, Jeremy A. Puhlman wrote: >> On 2/23/2020 12:15 AM, Khem Raj wrote: >>> fails with clang >>> >>> https://errors.yoctoproject.org/Errors/Details/392235/ >> Its a hosttools issue. I was using hosttools tarball that uses pigz >> as its gzip. Just needs a depends on pigz-native. Ill respin it. > Is there a reason why you aren't using -n instead? Cause I was laser focused on timestamp. Yeah -n is the right way to go, and I don't use the system gzip pretty much anywhere(all my builds are on top of the buildtools). > > cu > Adrian > -- Jeremy A. Puhlman jpuhlman at mvista.com From jpuhlman at mvista.com Sun Feb 23 19:02:46 2020 From: jpuhlman at mvista.com (Jeremy A. Puhlman) Date: Sun, 23 Feb 2020 11:02:46 -0800 Subject: [oe] [meta-oe][PATCH v2] ipmiutil: gzip man pages with out timestamp Message-ID: <20200223190246.17729-1-jpuhlman@mvista.com> From: Jeremy Puhlman A timestamp was getting encoded into the gzip header. This causes multilib conflicts when installed together, and would likely fail reproducablity tests. --- ...imes-from-changing-resulting-gzip-md.patch | 25 +++++++++++++++++++ .../recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb | 1 + 2 files changed, 26 insertions(+) create mode 100644 meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch diff --git a/meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch b/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-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 +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-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb b/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb index 3e2634028..d0f3688a2 100644 --- a/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb +++ b/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" -- 2.20.1 From raj.khem at gmail.com Mon Feb 24 00:48:32 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sun, 23 Feb 2020 16:48:32 -0800 Subject: [oe] [meta-oe][PATCH v2] luajit: Upgrade to 2.1.0-beta3 In-Reply-To: <20200223053549.7056-1-leo.yan@linaro.org> References: <20200223053549.7056-1-leo.yan@linaro.org> Message-ID: <3e126d8b-ed9e-3e5b-5fa7-61e043c10355@gmail.com> On 2/22/20 9:35 PM, Leo Yan wrote: > Since luajit 2.1.0-beta3 can support architecture aarch64 and the old > misses to support aarch64, the patch upgrades to luajit 2.1.0-beta3. > > Signed-off-by: Leo Yan > --- > .../luajit/{luajit_2.0.5.bb => luajit_git.bb} | 12 ++++-------- > 1 file changed, 4 insertions(+), 8 deletions(-) > rename meta-oe/recipes-devtools/luajit/{luajit_2.0.5.bb => luajit_git.bb} (88%) > > diff --git a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb b/meta-oe/recipes-devtools/luajit/luajit_git.bb > similarity index 88% > rename from meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb > rename to meta-oe/recipes-devtools/luajit/luajit_git.bb > index 93128dda8..afa60dba7 100644 > --- a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb > +++ b/meta-oe/recipes-devtools/luajit/luajit_git.bb > @@ -3,12 +3,9 @@ LICENSE = "MIT" > LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=10a96c93403affcc34765f4c2612bc22" > HOMEPAGE = "http://luajit.org" > > -PV .= "+git${SRCPV}" > -SRCREV = "02b521981a1ab919ff2cd4d9bcaee80baf77dce2" > -SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http \ > - file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \ > - file://clang.patch \ > -" > +PV = "2.1.0+${SRCPV}" I think we will endup in trouble when 2.1.0 releases, so perhaps we should leave room for sorting 2.1.0 higher than whatever we do now perhaps PV = ""2.0.5+2.1.0-beta3" would be workable. > +SRCREV = "8271c643c21d1b2f344e339f559f2de6f3663191" > +SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http;branch=v2.1" > > S = "${WORKDIR}/git" > > @@ -90,8 +87,7 @@ FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \ > " > FILES_luajit-common = "${datadir}/${BPN}-${PV}" > > -# Aarch64/mips64/ppc/ppc64/riscv64 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" > From leo.yan at linaro.org Mon Feb 24 01:10:17 2020 From: leo.yan at linaro.org (Leo Yan) Date: Mon, 24 Feb 2020 09:10:17 +0800 Subject: [oe] [meta-oe][PATCH v2] luajit: Upgrade to 2.1.0-beta3 In-Reply-To: <3e126d8b-ed9e-3e5b-5fa7-61e043c10355@gmail.com> References: <20200223053549.7056-1-leo.yan@linaro.org> <3e126d8b-ed9e-3e5b-5fa7-61e043c10355@gmail.com> Message-ID: <20200224011017.GA5175@leoy-ThinkPad-X240s> Hi Khem, On Sun, Feb 23, 2020 at 04:48:32PM -0800, Khem Raj wrote: > On 2/22/20 9:35 PM, Leo Yan wrote: > > Since luajit 2.1.0-beta3 can support architecture aarch64 and the old > > misses to support aarch64, the patch upgrades to luajit 2.1.0-beta3. > > > > Signed-off-by: Leo Yan > > --- > > .../luajit/{luajit_2.0.5.bb => luajit_git.bb} | 12 ++++-------- > > 1 file changed, 4 insertions(+), 8 deletions(-) > > rename meta-oe/recipes-devtools/luajit/{luajit_2.0.5.bb => luajit_git.bb} (88%) > > > > diff --git a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb b/meta-oe/recipes-devtools/luajit/luajit_git.bb > > similarity index 88% > > rename from meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb > > rename to meta-oe/recipes-devtools/luajit/luajit_git.bb > > index 93128dda8..afa60dba7 100644 > > --- a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb > > +++ b/meta-oe/recipes-devtools/luajit/luajit_git.bb > > @@ -3,12 +3,9 @@ LICENSE = "MIT" > > LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=10a96c93403affcc34765f4c2612bc22" > > HOMEPAGE = "http://luajit.org" > > > > -PV .= "+git${SRCPV}" > > -SRCREV = "02b521981a1ab919ff2cd4d9bcaee80baf77dce2" > > -SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http \ > > - file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \ > > - file://clang.patch \ > > -" > > +PV = "2.1.0+${SRCPV}" > > I think we will endup in trouble when 2.1.0 releases, so perhaps we > should leave room for sorting 2.1.0 higher than whatever we do now > perhaps PV = ""2.0.5+2.1.0-beta3" would be workable. This suggestion is fine for me. But I have some concern for this since the naming might introduce confusion when later someone reads this recipe, which combines two different versions together. So seems to me PV = "2.1.0-beta3" is more directive, and it can reflect the exact version for the building. How about you think for this? In next version, I will remove the two patches from 'luajit/luajit' folder. Also please let me know if you have any concern for this. Thanks for reviewing and suggestions! Leo > > +SRCREV = "8271c643c21d1b2f344e339f559f2de6f3663191" > > +SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http;branch=v2.1" > > > > S = "${WORKDIR}/git" > > > > @@ -90,8 +87,7 @@ FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \ > > " > > FILES_luajit-common = "${datadir}/${BPN}-${PV}" > > > > -# Aarch64/mips64/ppc/ppc64/riscv64 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" > > From raj.khem at gmail.com Mon Feb 24 03:47:28 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sun, 23 Feb 2020 19:47:28 -0800 Subject: [oe] [meta-oe][PATCH v2] luajit: Upgrade to 2.1.0-beta3 In-Reply-To: <20200224011017.GA5175@leoy-ThinkPad-X240s> References: <20200223053549.7056-1-leo.yan@linaro.org> <3e126d8b-ed9e-3e5b-5fa7-61e043c10355@gmail.com> <20200224011017.GA5175@leoy-ThinkPad-X240s> Message-ID: On Sun, Feb 23, 2020 at 5:10 PM Leo Yan wrote: > Hi Khem, > > On Sun, Feb 23, 2020 at 04:48:32PM -0800, Khem Raj wrote: > > On 2/22/20 9:35 PM, Leo Yan wrote: > > > Since luajit 2.1.0-beta3 can support architecture aarch64 and the old > > > misses to support aarch64, the patch upgrades to luajit 2.1.0-beta3. > > > > > > Signed-off-by: Leo Yan > > > --- > > > .../luajit/{luajit_2.0.5.bb => luajit_git.bb} | 12 > ++++-------- > > > 1 file changed, 4 insertions(+), 8 deletions(-) > > > rename meta-oe/recipes-devtools/luajit/{luajit_2.0.5.bb => > luajit_git.bb} (88%) > > > > > > diff --git a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb > b/meta-oe/recipes-devtools/luajit/luajit_git.bb > > > similarity index 88% > > > rename from meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb > > > rename to meta-oe/recipes-devtools/luajit/luajit_git.bb > > > index 93128dda8..afa60dba7 100644 > > > --- a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb > > > +++ b/meta-oe/recipes-devtools/luajit/luajit_git.bb > > > @@ -3,12 +3,9 @@ LICENSE = "MIT" > > > LIC_FILES_CHKSUM = > "file://COPYRIGHT;md5=10a96c93403affcc34765f4c2612bc22" > > > HOMEPAGE = "http://luajit.org" > > > > > > -PV .= "+git${SRCPV}" > > > -SRCREV = "02b521981a1ab919ff2cd4d9bcaee80baf77dce2" > > > -SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http \ > > > - > file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \ > > > - file://clang.patch \ > > > -" > > > +PV = "2.1.0+${SRCPV}" > > > > I think we will endup in trouble when 2.1.0 releases, so perhaps we > > should leave room for sorting 2.1.0 higher than whatever we do now > > perhaps PV = ""2.0.5+2.1.0-beta3" would be workable. > > This suggestion is fine for me. But I have some concern for this since > the naming might introduce confusion when later someone reads this > recipe, which combines two different versions together. So seems to > me PV = "2.1.0-beta3" is more directive, and it can reflect the exact > version for the building. How about you think for this? > The version scheme has a purpose and that is to track package feeds and they can not go backward for obvious reasons The suggestion I had for you is commonly used in oe while it might not look simple and clean it serves the purpose > In next version, I will remove the two patches from 'luajit/luajit' > folder. Also please let me know if you have any concern for this. > > Thanks for reviewing and suggestions! > Leo > > > > +SRCREV = "8271c643c21d1b2f344e339f559f2de6f3663191" > > > +SRC_URI = "git:// > luajit.org/git/luajit-2.0.git;protocol=http;branch=v2.1" > > > > > > S = "${WORKDIR}/git" > > > > > > @@ -90,8 +87,7 @@ FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \ > > > " > > > FILES_luajit-common = "${datadir}/${BPN}-${PV}" > > > > > > -# Aarch64/mips64/ppc/ppc64/riscv64 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" > > > > From leo.yan at linaro.org Mon Feb 24 03:56:36 2020 From: leo.yan at linaro.org (Leo Yan) Date: Mon, 24 Feb 2020 11:56:36 +0800 Subject: [oe] [meta-oe][PATCH v2] luajit: Upgrade to 2.1.0-beta3 In-Reply-To: References: <20200223053549.7056-1-leo.yan@linaro.org> <3e126d8b-ed9e-3e5b-5fa7-61e043c10355@gmail.com> <20200224011017.GA5175@leoy-ThinkPad-X240s> Message-ID: <20200224035636.GB5175@leoy-ThinkPad-X240s> Hi Khem, On Sun, Feb 23, 2020 at 07:47:28PM -0800, Khem Raj wrote: [...] > > > > +PV = "2.1.0+${SRCPV}" > > > > > > I think we will endup in trouble when 2.1.0 releases, so perhaps we > > > should leave room for sorting 2.1.0 higher than whatever we do now > > > perhaps PV = ""2.0.5+2.1.0-beta3" would be workable. > > > > This suggestion is fine for me. But I have some concern for this since > > the naming might introduce confusion when later someone reads this > > recipe, which combines two different versions together. So seems to > > me PV = "2.1.0-beta3" is more directive, and it can reflect the exact > > version for the building. How about you think for this? > > > > The version scheme has a purpose and that is to track package feeds and > they can not go backward for obvious reasons > > The suggestion I had for you is commonly used in oe while it might not > look simple and clean it serves the purpose Will do it. Thanks for explanation. Leo From bunk at stusta.de Mon Feb 24 04:10:25 2020 From: bunk at stusta.de (Adrian Bunk) Date: Mon, 24 Feb 2020 06:10:25 +0200 Subject: [oe] [meta-oe][PATCH] libidn: Moved from OE-core Message-ID: <20200224041025.21829-1-bunk@stusta.de> Signed-off-by: Adrian Bunk --- .../0001-idn-format-security-warnings.patch | 181 ++++++++++++++++++ ...R_P_warning_error_with_automake_1.12.patch | 34 ++++ .../libidn/dont-depend-on-help2man.patch | 23 +++ .../libidn/libidn_fix_for_automake-1.12.patch | 35 ++++ .../recipes-extended/libidn/libidn_1.35.bb | 42 ++++ 5 files changed, 315 insertions(+) create mode 100644 meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch create mode 100644 meta-oe/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch create mode 100644 meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch create mode 100644 meta-oe/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch create mode 100644 meta-oe/recipes-extended/libidn/libidn_1.35.bb diff --git a/meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch b/meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch new file mode 100644 index 000000000..5adc7d9fd --- /dev/null +++ b/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?= +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 +--- +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-oe/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch b/meta-oe/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch new file mode 100644 index 000000000..43bd23294 --- /dev/null +++ b/meta-oe/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch @@ -0,0 +1,34 @@ +From cdd9e2e960eeb4eda7b08f0113d0cd03524c1d45 Mon Sep 17 00:00:00 2001 +From: Nitin A Kamble +Date: Tue, 10 Jul 2012 02:44:30 -0700 +Subject: [PATCH] libidn: fix build with automake 1.12 + +Upstream-Status: Inappropriate + +automake 1.12.x has deprecated AM_PROG_MKDIR_P , and throws a warning for that, +and the warnings are treated as errors because of the -Werror parameter. + +These AM_PROG_MKDIR_P are coming from gettext, and the latest gettext code has not +eliminated these deprecated macros yet. So disable the treatment of warnings +as errors until gettext is updated to remove the deprecated macros. + +Signed-off-by: Nitin A Kamble +2012/07/10 + +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 261dad2..c4f935e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -22,7 +22,7 @@ AC_INIT([GNU Libidn], [1.34], [bug-libidn at gnu.org]) + AC_CONFIG_AUX_DIR([build-aux]) + AC_CONFIG_MACRO_DIR([m4]) + AC_CONFIG_HEADERS(config.h) +-AM_INIT_AUTOMAKE([1.10 -Wall -Werror -Wno-override]) ++AM_INIT_AUTOMAKE([1.10 -Wall -Wno-override]) + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + + # Library code modified: REVISION++ diff --git a/meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch b/meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch new file mode 100644 index 000000000..0863530f2 --- /dev/null +++ b/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 +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-oe/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch b/meta-oe/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch new file mode 100644 index 000000000..3c0559e34 --- /dev/null +++ b/meta-oe/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch @@ -0,0 +1,35 @@ +From d4f64b78419139eda3c0e1c6ee116bb5f70ea67c Mon Sep 17 00:00:00 2001 +From: Nitin A Kamble +Date: Wed, 2 May 2012 18:05:19 -0700 +Subject: [PATCH] libtasn1: fix build with automake 1.12 + +Upstream-Status: Pending + +This patch fixes following issue with automake 1.12 + +| automake: warnings are treated as errors +| /srv/home/nitin/builds/build-gcc47/tmp/sysroots/x86_64-linux/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libidn.la': linking libtool libraries using a non-POSIX +| /srv/home/nitin/builds/build-gcc47/tmp/sysroots/x86_64-linux/usr/share/automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac' + +Signed-off-by: Nitin A Kamble +2012/05/03 + +--- + configure.ac | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 8297649..7b9626e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -33,6 +33,10 @@ AC_SUBST(LT_CURRENT, 18) + AC_SUBST(LT_REVISION, 0) + AC_SUBST(LT_AGE, 6) + ++# automake 1.12 seems to require this, but automake 1.11 doesn't recognize it ++m4_pattern_allow([AM_PROG_AR]) ++AM_PROG_AR ++ + AC_PROG_CC + gl_EARLY + lgl_EARLY diff --git a/meta-oe/recipes-extended/libidn/libidn_1.35.bb b/meta-oe/recipes-extended/libidn/libidn_1.35.bb new file mode 100644 index 000000000..d5ce5b46b --- /dev/null +++ b/meta-oe/recipes-extended/libidn/libidn_1.35.bb @@ -0,0 +1,42 @@ +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://libidn_fix_for_automake-1.12.patch \ + file://avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch \ + 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" + -- 2.17.1 From zhengrq.fnst at cn.fujitsu.com Mon Feb 24 09:27:29 2020 From: zhengrq.fnst at cn.fujitsu.com (Zheng Ruoqin) Date: Mon, 24 Feb 2020 17:27:29 +0800 Subject: [oe] [meta-filesystems][PATCH] xfsdump: 3.1.8 -> 3.1.9 Message-ID: <1582536449-89865-1-git-send-email-zhengrq.fnst@cn.fujitsu.com> work-with-new-version-of-xfsprogs.patch is removed because it is included in 3.1.9. Signed-off-by: Zheng Ruoqin --- .../work-with-new-version-of-xfsprogs.patch | 28 ------------------- .../{xfsdump_3.1.8.bb => xfsdump_3.1.9.bb} | 5 ++-- 2 files changed, 2 insertions(+), 31 deletions(-) delete mode 100644 meta-filesystems/recipes-utils/xfsdump/files/work-with-new-version-of-xfsprogs.patch rename meta-filesystems/recipes-utils/xfsdump/{xfsdump_3.1.8.bb => xfsdump_3.1.9.bb} (87%) diff --git a/meta-filesystems/recipes-utils/xfsdump/files/work-with-new-version-of-xfsprogs.patch b/meta-filesystems/recipes-utils/xfsdump/files/work-with-new-version-of-xfsprogs.patch deleted file mode 100644 index 4ce23d717..000000000 --- a/meta-filesystems/recipes-utils/xfsdump/files/work-with-new-version-of-xfsprogs.patch +++ /dev/null @@ -1,28 +0,0 @@ -Make it work with xfsprogs 5.2.0. - -"xfs_fsop_geom_v1_t" has changed to "struct xfs_fsop_geom_v1" -in xfsprogs since version 5.2.0. - -Upstream-Status: Pending - -Signed-off-by: Yuan Chao ---- - common/fs.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/common/fs.c b/common/fs.c -index 60cf0fd..2cc7031 100644 ---- a/common/fs.c -+++ b/common/fs.c -@@ -204,7 +204,7 @@ fs_mounted( char *typs, char *chrs, char *mnts, uuid_t *idp ) - int - fs_getid( char *mnts, uuid_t *idb ) - { -- xfs_fsop_geom_v1_t geo; -+ struct xfs_fsop_geom_v1 geo; - int fd; - - fd = open( mnts, O_RDONLY ); --- -2.7.4 - diff --git a/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.8.bb b/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.9.bb similarity index 87% rename from meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.8.bb rename to meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.9.bb index 9c5755862..3e18fba74 100644 --- a/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.8.bb +++ b/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.9.bb @@ -12,11 +12,10 @@ DEPENDS = "xfsprogs attr" SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsdump/${BP}.tar.xz \ file://remove-install-as-user.patch \ - file://work-with-new-version-of-xfsprogs.patch \ ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','file://0001-xfsdump-support-usrmerge.patch','',d)} \ " -SRC_URI[md5sum] = "84d3bc287b4a2bb5d16b2320a47049a7" -SRC_URI[sha256sum] = "ed14e67ae5b273c2698e767b43a46f033d361e540fe13feaaf9b110ee0edc585" +SRC_URI[md5sum] = "086f7582875b14c17522867ffe3e202b" +SRC_URI[sha256sum] = "55aeede6232ddce6c9e79e2af88d6f808534df1552eb2bfaf7fb85b92add6dd1" inherit autotools-brokensep -- 2.17.1 From zhengrq.fnst at cn.fujitsu.com Mon Feb 24 09:28:43 2020 From: zhengrq.fnst at cn.fujitsu.com (Zheng Ruoqin) Date: Mon, 24 Feb 2020 17:28:43 +0800 Subject: [oe] [meta-networking][PATCH] daq: upgrade 2.0.6 -> 2.2.2 Message-ID: <1582536523-89923-1-git-send-email-zhengrq.fnst@cn.fujitsu.com> Signed-off-by: Zheng Ruoqin --- .../recipes-connectivity/daq/{daq_2.0.6.bb => daq_2.2.2.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-networking/recipes-connectivity/daq/{daq_2.0.6.bb => daq_2.2.2.bb} (88%) diff --git a/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb b/meta-networking/recipes-connectivity/daq/daq_2.2.2.bb similarity index 88% rename from meta-networking/recipes-connectivity/daq/daq_2.0.6.bb rename to meta-networking/recipes-connectivity/daq/daq_2.2.2.bb index 42ffb17a1..29ac5c770 100644 --- a/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb +++ b/meta-networking/recipes-connectivity/daq/daq_2.2.2.bb @@ -25,8 +25,8 @@ EXTRA_OECONF = "--disable-nfq-module --disable-ipq-module --includedir=${include PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," -SRC_URI[md5sum] = "2cd6da422a72c129c685fc4bb848c24c" -SRC_URI[sha256sum] = "b40e1d1273e08aaeaa86e69d4f28d535b7e53bdb3898adf539266b63137be7cb" +SRC_URI[md5sum] = "c61f60674a5f951f0c50faf33a611fee" +SRC_URI[sha256sum] = "7cd818cabb1ad35360e83076e54775f07165ee71407dc672d147e27d3cd37f7b" inherit autotools -- 2.17.1 From zhengrq.fnst at cn.fujitsu.com Mon Feb 24 09:29:08 2020 From: zhengrq.fnst at cn.fujitsu.com (Zheng Ruoqin) Date: Mon, 24 Feb 2020 17:29:08 +0800 Subject: [oe] [meta-networking][PATCH] dhcpcd: upgrade 8.1.5 -> 8.1.6 Message-ID: <1582536548-89959-1-git-send-email-zhengrq.fnst@cn.fujitsu.com> Signed-off-by: Zheng Ruoqin --- .../dhcpcd/{dhcpcd_8.1.5.bb => dhcpcd_8.1.6.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-networking/recipes-connectivity/dhcpcd/{dhcpcd_8.1.5.bb => dhcpcd_8.1.6.bb} (86%) diff --git a/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_8.1.5.bb b/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_8.1.6.bb similarity index 86% rename from meta-networking/recipes-connectivity/dhcpcd/dhcpcd_8.1.5.bb rename to meta-networking/recipes-connectivity/dhcpcd/dhcpcd_8.1.6.bb index 3349ca153..1cb2af500 100644 --- a/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_8.1.5.bb +++ b/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_8.1.6.bb @@ -12,8 +12,8 @@ UPSTREAM_CHECK_URI = "https://roy.marples.name/downloads/dhcpcd/" SRC_URI = "http://roy.marples.name/downloads/${BPN}/${BPN}-${PV}.tar.xz \ file://0001-remove-INCLUDEDIR-to-prevent-build-issues.patch" -SRC_URI[md5sum] = "57fd5dd4ff9722773ec67239db34d3b5" -SRC_URI[sha256sum] = "c5cbe15069cef347e72d0bf7a19b0255571ee0c184c6705859a09588a50a8ebd" +SRC_URI[md5sum] = "e1eea03388d12c9ad21ecd7c135fdf8b" +SRC_URI[sha256sum] = "6c2934a3e1e67a5cfd5bb15b1efa71f65c00314ac1ccb5c50da8eae3a0b8147f" inherit pkgconfig autotools-brokensep -- 2.17.1 From zhengrq.fnst at cn.fujitsu.com Mon Feb 24 09:54:38 2020 From: zhengrq.fnst at cn.fujitsu.com (Zheng Ruoqin) Date: Mon, 24 Feb 2020 17:54:38 +0800 Subject: [oe] [meta-networking][PATCH] kea: upgrade 1.7.3 -> 1.7.4 Message-ID: <1582538078-90319-1-git-send-email-zhengrq.fnst@cn.fujitsu.com> -License-Update: Copyright year updated to 2020. Signed-off-by: Zheng Ruoqin --- .../recipes-connectivity/kea/{kea_1.7.3.bb => kea_1.7.4.bb} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename meta-networking/recipes-connectivity/kea/{kea_1.7.3.bb => kea_1.7.4.bb} (90%) diff --git a/meta-networking/recipes-connectivity/kea/kea_1.7.3.bb b/meta-networking/recipes-connectivity/kea/kea_1.7.4.bb similarity index 90% rename from meta-networking/recipes-connectivity/kea/kea_1.7.3.bb rename to meta-networking/recipes-connectivity/kea/kea_1.7.4.bb index e230fd0fe..a2c97655a 100644 --- a/meta-networking/recipes-connectivity/kea/kea_1.7.3.bb +++ b/meta-networking/recipes-connectivity/kea/kea_1.7.4.bb @@ -3,7 +3,7 @@ DESCRIPTION = "Kea is the next generation of DHCP software developed by ISC. It HOMEPAGE = "http://kea.isc.org" SECTION = "connectivity" LICENSE = "MPL-2.0 & Apache-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=0e5b01c848c7736a0c9e68f9c9cd0281" +LIC_FILES_CHKSUM = "file://COPYING;md5=68d95543d2096459290a4e6b9ceccffa" DEPENDS += "kea-native" @@ -14,8 +14,8 @@ SRC_URI = "\ file://kea-dhcp6.service \ file://kea-dhcp-ddns.service \ " -SRC_URI[md5sum] = "fda03bf465818009b70dffc226da777d" -SRC_URI[sha256sum] = "30f82c548b844c12ed46c4eb3880d63b45ec04cecfcf2e4ab1d7bada7fff4f2a" +SRC_URI[md5sum] = "d2d0e3ad8064a5e6f3ba1e970d39f9cc" +SRC_URI[sha256sum] = "2b7f8d8cafdb9ad2be8df9aceb2de58c8f37c1544e47c28f05e84555d0015ef5" inherit autotools systemd -- 2.17.1 From changqing.li at windriver.com Mon Feb 24 11:40:46 2020 From: changqing.li at windriver.com (changqing.li at windriver.com) Date: Mon, 24 Feb 2020 19:40:46 +0800 Subject: [oe] [meta-webserver][PATCH] nginx.service: sleep 0.1 after nginx start Message-ID: <1582544446-241334-1-git-send-email-changqing.li@windriver.com> From: Changqing Li Fix error info: nginx.service: failed to parse pid from file /run/nginx/nginx.pid: invalid argument Signed-off-by: Changqing Li --- meta-webserver/recipes-httpd/nginx/files/nginx.service | 1 + 1 file changed, 1 insertion(+) diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx.service b/meta-webserver/recipes-httpd/nginx/files/nginx.service index 9a6ca96..65c7752 100644 --- a/meta-webserver/recipes-httpd/nginx/files/nginx.service +++ b/meta-webserver/recipes-httpd/nginx/files/nginx.service @@ -7,6 +7,7 @@ Type=forking PIDFile=/run/nginx/nginx.pid ExecStartPre=@SBINDIR@/nginx -t ExecStart=@SBINDIR@/nginx +ExecStartPost=/bin/sleep 0.1 ExecReload=@SBINDIR@/nginx -s reload ExecStop=@BASE_BINDIR@/kill -s QUIT $MAINPID PrivateTmp=true -- 2.7.4 From schnitzeltony at gmail.com Mon Feb 24 13:33:42 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Mon, 24 Feb 2020 14:33:42 +0100 Subject: [oe] [PATCH 1/3] fluidsynth: upgrade 2.1.0 -> 2.1.1 Message-ID: <20200224133344.15280-1-schnitzeltony@gmail.com> >From announcement: * a regression introduced in 2.1.0 caused the jack audio driver to not correct a sample-rate mismatch (#607) * pkg-config is now being to used to find readline (#606, thanks to @ffontaine) * fix various typos in the documentation (#600, thanks to @luzpaz) * fix a memory leak in the file renderer * fix leaking memory when sequencer clients were not explicitly unregistered (#610) * fix a heap-based use-after-free in jack driver (#613) * fix the linker possibly not finding libinstpatch (#617, thanks to @realnc) Signed-off-by: Andreas M?ller --- meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc index 9ce65064d..4fb622c46 100644 --- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc +++ b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc @@ -5,8 +5,8 @@ LICENSE = "LGPL-2.1" LIC_FILES_CHKSUM = "file://LICENSE;md5=fc178bcd425090939a8b634d1d6a9594" SRC_URI = "git://github.com/FluidSynth/fluidsynth.git" -SRCREV = "37c9ae2bf431a764032f023b3b2c0c0b86b7c272" +SRCREV = "3b851da6f721fcf15ec0b935eba72707bdb53d7b" S = "${WORKDIR}/git" -PV = "2.1.0" +PV = "2.1.1" inherit cmake pkgconfig lib_package -- 2.21.0 From schnitzeltony at gmail.com Mon Feb 24 13:33:43 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Mon, 24 Feb 2020 14:33:43 +0100 Subject: [oe] [PATCH 2/3] xfce4-sensors-plugin: upgrade 1.2.97 -> 1.3.92 In-Reply-To: <20200224133344.15280-1-schnitzeltony@gmail.com> References: <20200224133344.15280-1-schnitzeltony@gmail.com> Message-ID: <20200224133344.15280-2-schnitzeltony@gmail.com> Although not explicitly mentioned in release announcement it seems that this is a develpoment release. It was tested and there could be no reason found not to use this version. Signed-off-by: Andreas M?ller --- ...ensors-plugin_1.2.97.bb => xfce4-sensors-plugin_1.3.92.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-xfce/recipes-panel-plugins/sensors/{xfce4-sensors-plugin_1.2.97.bb => xfce4-sensors-plugin_1.3.92.bb} (86%) diff --git a/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.2.97.bb b/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.3.92.bb similarity index 86% rename from meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.2.97.bb rename to meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.3.92.bb index 4d78bb2bf..8b650143f 100644 --- a/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.2.97.bb +++ b/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.3.92.bb @@ -5,8 +5,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b94789bed9aec03b9656a9cc5398c706" inherit xfce-panel-plugin -SRC_URI[md5sum] = "0c74c3112c5e6e07647c116cd43ff5a7" -SRC_URI[sha256sum] = "7524ec4534de9ef7f676de2895a41bf70b73b94da5a27fd4a022b16eda56d0f4" +SRC_URI[md5sum] = "7327c4c316ebd5d93665e77b432b8d89" +SRC_URI[sha256sum] = "3dc6643d2c064b7718badff44b948f8d410f00f13db197820b26ae38045f5112" EXTRA_OECONF = " \ --disable-procacpi \ -- 2.21.0 From schnitzeltony at gmail.com Mon Feb 24 13:33:44 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Mon, 24 Feb 2020 14:33:44 +0100 Subject: [oe] [PATCH 3/3] xfce4-sensors-plugin: Change defaults to useful ones In-Reply-To: <20200224133344.15280-1-schnitzeltony@gmail.com> References: <20200224133344.15280-1-schnitzeltony@gmail.com> Message-ID: <20200224133344.15280-3-schnitzeltony@gmail.com> Every time I added xfce4-sensors-plugin to panel xfce4-sensors-plugin suggested sensors not exactly useful. So change defaults: * remove lmsensors * make sysfsacpi work and don't disable it because that's where embedded machines drop useful information Background: Have spent lots of efforts to get Raspi4 cooled properly while running at gouvernor 'performance' and rendering music. Would like to see if it really wears a cool hat [1] [1] https://github.com/schnitzeltony/rpi-cool-hat Signed-off-by: Andreas M?ller --- ...-sys-class-power_supply-we-are-cross.patch | 44 +++++++++++++++++++ .../sensors/xfce4-sensors-plugin_1.3.92.bb | 3 +- 2 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin/0001-Do-not-check-for-sys-class-power_supply-we-are-cross.patch diff --git a/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin/0001-Do-not-check-for-sys-class-power_supply-we-are-cross.patch b/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin/0001-Do-not-check-for-sys-class-power_supply-we-are-cross.patch new file mode 100644 index 000000000..ac1d603b2 --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin/0001-Do-not-check-for-sys-class-power_supply-we-are-cross.patch @@ -0,0 +1,44 @@ +From 9b7e1beca872ca4a5fce8938c58379103787f79a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 23 Feb 2020 22:06:32 +0100 +Subject: [PATCH] Do not check for /sys/class/power_supply - we are cross + compiling +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [OE-specific] + +Signed-off-by: Andreas M?ller +--- + configure.ac | 12 +----------- + 1 file changed, 1 insertion(+), 11 deletions(-) + +diff --git a/configure.ac b/configure.ac +index c281af9..60ba0c0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -209,19 +209,9 @@ dnl Check for interface for /sys/class/power_supply to be used + AC_ARG_ENABLE([sysfsacpi], [AC_HELP_STRING([--enable-sysfsacpi], [Use /sys/class/power_supply to read your battery value @<:@default=auto@:>@])], + [], + [ +- enable_sysfsacpi=auto ++ enable_sysfsacpi=yes + ]) + +-if test x"$enable_sysfsacpi" = x"auto"; then +- AC_CHECK_FILE([/sys/class/power_supply], +- [ +- enable_sysfsacpi=yes +- ], +- [ +- enable_sysfsacpi=no +- ]) +-fi +- + if test x"$enable_sysfsacpi" = x"yes"; then + AC_DEFINE([HAVE_SYSFS_ACPI], [1], [Define to 1 if /sys/class/power_supply is found]) + enable_procacpi=yes +-- +2.21.0 + diff --git a/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.3.92.bb b/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.3.92.bb index 8b650143f..3fd0ff6cf 100644 --- a/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.3.92.bb +++ b/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.3.92.bb @@ -7,10 +7,10 @@ inherit xfce-panel-plugin SRC_URI[md5sum] = "7327c4c316ebd5d93665e77b432b8d89" SRC_URI[sha256sum] = "3dc6643d2c064b7718badff44b948f8d410f00f13db197820b26ae38045f5112" +SRC_URI += "file://0001-Do-not-check-for-sys-class-power_supply-we-are-cross.patch" EXTRA_OECONF = " \ --disable-procacpi \ - --disable-sysfsacpi \ --disable-xnvctrl \ " @@ -18,7 +18,6 @@ do_configure_prepend() { sed -i 's:LIBSENSORS_CFLAGS=.*:LIBSENSORS_CFLAGS=-I${STAGING_INCDIR}:g' ${S}/configure.ac } -PACKAGECONFIG ??= "libsensors" PACKAGECONFIG[libsensors] = "--enable-libsensors,--disable-libsensors, lmsensors" PACKAGECONFIG[hddtemp] = "--enable-hddtemp,--disable-hddtemp, hddtemp" PACKAGECONFIG[netcat] = "--enable-netcat,--disable-netcat, netcat" -- 2.21.0 From raj.khem at gmail.com Mon Feb 24 16:40:59 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 24 Feb 2020 08:40:59 -0800 Subject: [oe] [meta-webserver][PATCH] nginx.service: sleep 0.1 after nginx start In-Reply-To: <1582544446-241334-1-git-send-email-changqing.li@windriver.com> References: <1582544446-241334-1-git-send-email-changqing.li@windriver.com> Message-ID: On Mon, Feb 24, 2020 at 3:41 AM wrote: > > From: Changqing Li > > Fix error info: > nginx.service: failed to parse pid from file /run/nginx/nginx.pid: > invalid argument > > Signed-off-by: Changqing Li > --- > meta-webserver/recipes-httpd/nginx/files/nginx.service | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx.service b/meta-webserver/recipes-httpd/nginx/files/nginx.service > index 9a6ca96..65c7752 100644 > --- a/meta-webserver/recipes-httpd/nginx/files/nginx.service > +++ b/meta-webserver/recipes-httpd/nginx/files/nginx.service > @@ -7,6 +7,7 @@ Type=forking > PIDFile=/run/nginx/nginx.pid > ExecStartPre=@SBINDIR@/nginx -t > ExecStart=@SBINDIR@/nginx > +ExecStartPost=/bin/sleep 0.1 I dont thiink we should be adding sleeps instead try to lock the dependencies so it happens correctly. or perhaps change the logic in code itself if dependencies can not handle it. > ExecReload=@SBINDIR@/nginx -s reload > ExecStop=@BASE_BINDIR@/kill -s QUIT $MAINPID > PrivateTmp=true > -- > 2.7.4 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From matt.ranostay at konsulko.com Mon Feb 24 19:23:39 2020 From: matt.ranostay at konsulko.com (Matt Ranostay) Date: Mon, 24 Feb 2020 21:23:39 +0200 Subject: [oe] [meta-oe][PATCH] ttf-noto-emoji: add recipe Message-ID: <20200224192340.13855-1-matt.ranostay@konsulko.com> Add both B/W and color emojis fonts from the noto-emoji project. Important note for the color emojis to render the pixmap PACKAGECONFIG option needs to be set in freetype package. Signed-off-by: Matt Ranostay --- .../ttf-fonts/ttf-noto-emoji_20190815.bb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb new file mode 100644 index 000000000..e35e08ae1 --- /dev/null +++ b/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://${S}/fonts/LICENSE;md5=55719faa0112708e946b820b24b14097" + +SRC_URI = "git://github.com/googlefonts/noto-emoji;protocol=https;branch=master" +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" -- 2.20.1 From raj.khem at gmail.com Mon Feb 24 22:57:45 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 24 Feb 2020 14:57:45 -0800 Subject: [oe] [meta-oe][PATCH] ttf-noto-emoji: add recipe In-Reply-To: <20200224192340.13855-1-matt.ranostay@konsulko.com> References: <20200224192340.13855-1-matt.ranostay@konsulko.com> Message-ID: On Mon, Feb 24, 2020 at 11:24 AM Matt Ranostay wrote: > Add both B/W and color emojis fonts from the noto-emoji project. > > Important note for the color emojis to render the pixmap PACKAGECONFIG > option needs to be set in freetype package. > > Signed-off-by: Matt Ranostay > --- > .../ttf-fonts/ttf-noto-emoji_20190815.bb | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > create mode 100644 meta-oe/recipes-graphics/ttf-fonts/ > ttf-noto-emoji_20190815.bb > > diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb > b/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb > new file mode 100644 > index 000000000..e35e08ae1 > --- /dev/null > +++ b/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://${S}/fonts/LICENSE;md5=55719faa0112708e946b820b24b14097" Do we need S here ? > > + > +SRC_URI = "git:// > github.com/googlefonts/noto-emoji;protocol=https;branch=master" Drop branch here master is default > > +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? I wonder how f this should simply use deltask here > > -- > 2.20.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From wak at google.com Mon Feb 24 23:33:12 2020 From: wak at google.com (William A. Kennington III) Date: Mon, 24 Feb 2020 15:33:12 -0800 Subject: [oe] [meta-oe][PATCH v2] span-lite: Add git version In-Reply-To: <20191018234515.15676-1-wak@google.com> References: <20191018234515.15676-1-wak@google.com> Message-ID: <20200224233312.223960-1-wak@google.com> We would generally prefer to use stable releases, but there are fixes in master that have not yet been released for compiling the test cases against libc++. Signed-off-by: William A. Kennington III --- meta-oe/recipes-support/span-lite/span-lite_git.bb | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 meta-oe/recipes-support/span-lite/span-lite_git.bb diff --git a/meta-oe/recipes-support/span-lite/span-lite_git.bb b/meta-oe/recipes-support/span-lite/span-lite_git.bb new file mode 100644 index 000000000..96ec829b7 --- /dev/null +++ b/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 -- 2.24.1 From scott.branden at broadcom.com Tue Feb 25 00:09:27 2020 From: scott.branden at broadcom.com (Scott Branden) Date: Mon, 24 Feb 2020 16:09:27 -0800 Subject: [oe] [meta-multi-media][PATCH] fdk-aac: add initial fdk-aac recipe Message-ID: <20200225000927.17849-1-scott.branden@broadcom.com> From: Mircea Carausu Add Fraunhofer FDK AAC Codec Library recipe. Signed-off-by: Mircea Carausu Signed-off-by: Scott Branden --- .../fdk-aac/fdk-aac_2.0.1.bb | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb diff --git a/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb b/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb new file mode 100644 index 000000000..d7911681c --- /dev/null +++ b/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb @@ -0,0 +1,22 @@ +SUMMARY = "FDK-AAC audio codec" + +DESCRIPTION = "The Fraunhofer FDK AAC Codec Library for Android \ +(\"FDK AAC Codec\") is software that implements the MPEG \ +Advanced Audio Coding (\"AAC\") encoding and decoding scheme \ +for digital audio." + +HOMEPAGE = "https://www.iis.fraunhofer.de/en/ff/amm/impl.html" + +LICENSE = "Fraunhofer_FDK_AAC_Codec_Library_for_Android" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://NOTICE;md5=5985e1e12f4afa710d64ed7bfd291875" + +SRC_URI = "git://github.com/mstorsjo/fdk-aac.git;protocol=git;branch=master" +SRCREV = "d387d3b6ed79ff9a82c60440bdd86e6e5e324bec" + +S = "${WORKDIR}/git" + +SRC_URI[md5sum] = "fef453b5d6ee28ff302c600b8cded3e7" +SRC_URI[sha256sum] = "07c2a64b098eb48b2e9d729d5e778c08f7d22f28adc8da7c3f92c58da1cbbd8e" + +inherit autotools -- 2.17.1 From scott.branden at broadcom.com Tue Feb 25 00:09:53 2020 From: scott.branden at broadcom.com (Scott Branden) Date: Mon, 24 Feb 2020 16:09:53 -0800 Subject: [oe] [meta-multimedia][PATCH] fdk-aac: add initial fdk-aac recipe Message-ID: <20200225000953.17899-1-scott.branden@broadcom.com> From: Mircea Carausu Add Fraunhofer FDK AAC Codec Library recipe. Signed-off-by: Mircea Carausu Signed-off-by: Scott Branden --- .../fdk-aac/fdk-aac_2.0.1.bb | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb diff --git a/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb b/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb new file mode 100644 index 000000000..d7911681c --- /dev/null +++ b/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb @@ -0,0 +1,22 @@ +SUMMARY = "FDK-AAC audio codec" + +DESCRIPTION = "The Fraunhofer FDK AAC Codec Library for Android \ +(\"FDK AAC Codec\") is software that implements the MPEG \ +Advanced Audio Coding (\"AAC\") encoding and decoding scheme \ +for digital audio." + +HOMEPAGE = "https://www.iis.fraunhofer.de/en/ff/amm/impl.html" + +LICENSE = "Fraunhofer_FDK_AAC_Codec_Library_for_Android" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://NOTICE;md5=5985e1e12f4afa710d64ed7bfd291875" + +SRC_URI = "git://github.com/mstorsjo/fdk-aac.git;protocol=git;branch=master" +SRCREV = "d387d3b6ed79ff9a82c60440bdd86e6e5e324bec" + +S = "${WORKDIR}/git" + +SRC_URI[md5sum] = "fef453b5d6ee28ff302c600b8cded3e7" +SRC_URI[sha256sum] = "07c2a64b098eb48b2e9d729d5e778c08f7d22f28adc8da7c3f92c58da1cbbd8e" + +inherit autotools -- 2.17.1 From changqing.li at windriver.com Tue Feb 25 03:53:19 2020 From: changqing.li at windriver.com (Changqing Li) Date: Tue, 25 Feb 2020 11:53:19 +0800 Subject: [oe] [meta-webserver][PATCH] nginx.service: sleep 0.1 after nginx start In-Reply-To: References: <1582544446-241334-1-git-send-email-changqing.li@windriver.com> Message-ID: On 2/25/20 12:40 AM, Khem Raj wrote: > On Mon, Feb 24, 2020 at 3:41 AM wrote: >> From: Changqing Li >> >> Fix error info: >> nginx.service: failed to parse pid from file /run/nginx/nginx.pid: >> invalid argument >> >> Signed-off-by: Changqing Li >> --- >> meta-webserver/recipes-httpd/nginx/files/nginx.service | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx.service b/meta-webserver/recipes-httpd/nginx/files/nginx.service >> index 9a6ca96..65c7752 100644 >> --- a/meta-webserver/recipes-httpd/nginx/files/nginx.service >> +++ b/meta-webserver/recipes-httpd/nginx/files/nginx.service >> @@ -7,6 +7,7 @@ Type=forking >> PIDFile=/run/nginx/nginx.pid >> ExecStartPre=@SBINDIR@/nginx -t >> ExecStart=@SBINDIR@/nginx >> +ExecStartPost=/bin/sleep 0.1 > I dont thiink we should be adding sleeps instead try to lock the dependencies > so it happens correctly. or perhaps change the logic in code itself if > dependencies > can not handle it. error info: "nginx.service: failed to parse pid from file /run/nginx/nginx.pid: invalid argument" is caused by race condition between systemd and nginx.? And this error will not caused problem except scary log This should be a known problem: https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864 other distro like ubuntu, fedora, should also have this problem, I can google people report this error on different distro. ubuntu 16.04 use this as a workaround. > >> ExecReload=@SBINDIR@/nginx -s reload >> ExecStop=@BASE_BINDIR@/kill -s QUIT $MAINPID >> PrivateTmp=true >> -- >> 2.7.4 >> >> -- >> _______________________________________________ >> Openembedded-devel mailing list >> Openembedded-devel at lists.openembedded.org >> http://lists.openembedded.org/mailman/listinfo/openembedded-devel From matt.ranostay at konsulko.com Tue Feb 25 03:59:49 2020 From: matt.ranostay at konsulko.com (Matt Ranostay) Date: Tue, 25 Feb 2020 05:59:49 +0200 Subject: [oe] [[meta-oe][PATCH v2] ttf-noto-emoji: add recipe Message-ID: <20200225035949.30515-1-matt.ranostay@konsulko.com> Add both B/W and color emojis fonts from the noto-emoji project. Important note for the color emojis to render the pixmap PACKAGECONFIG option needs to be set in freetype package. Signed-off-by: Matt Ranostay --- .../ttf-fonts/ttf-noto-emoji_20190815.bb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb new file mode 100644 index 000000000..e74f7a7f6 --- /dev/null +++ b/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" -- 2.20.1 From changqing.li at windriver.com Tue Feb 25 04:45:41 2020 From: changqing.li at windriver.com (Changqing Li) Date: Tue, 25 Feb 2020 12:45:41 +0800 Subject: [oe] [meta-webserver][PATCH] nginx.service: sleep 0.1 after nginx start In-Reply-To: References: <1582544446-241334-1-git-send-email-changqing.li@windriver.com> Message-ID: <67e005bd-0b2b-af42-aba7-f5a0e8b99879@windriver.com> On 2/25/20 11:53 AM, Changqing Li wrote: > > On 2/25/20 12:40 AM, Khem Raj wrote: >> On Mon, Feb 24, 2020 at 3:41 AM wrote: >>> From: Changqing Li >>> >>> Fix error info: >>> nginx.service: failed to parse pid from file /run/nginx/nginx.pid: >>> invalid argument >>> >>> Signed-off-by: Changqing Li >>> --- >>> ? meta-webserver/recipes-httpd/nginx/files/nginx.service | 1 + >>> ? 1 file changed, 1 insertion(+) >>> >>> diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx.service >>> b/meta-webserver/recipes-httpd/nginx/files/nginx.service >>> index 9a6ca96..65c7752 100644 >>> --- a/meta-webserver/recipes-httpd/nginx/files/nginx.service >>> +++ b/meta-webserver/recipes-httpd/nginx/files/nginx.service >>> @@ -7,6 +7,7 @@ Type=forking >>> ? PIDFile=/run/nginx/nginx.pid >>> ? ExecStartPre=@SBINDIR@/nginx -t >>> ? ExecStart=@SBINDIR@/nginx >>> +ExecStartPost=/bin/sleep 0.1 >> I dont thiink we should be adding sleeps instead try to lock the >> dependencies >> so it happens correctly. or perhaps change the logic in code itself if >> dependencies >> can not handle it. > > error info: "nginx.service: failed to parse pid from file > /run/nginx/nginx.pid: invalid argument" is caused by race condition > between > > systemd and nginx.? And this error will not caused problem except > scary log > > This should be a known problem: > https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864 > > other distro like ubuntu, fedora, should also have this problem, I can > google people report this error on different distro. > > ubuntu 16.04 use this as a workaround. But ubuntu 18.04,? fedora30, centos8 seems still have this error info,? I just googled it, not test verified on every distro. maybe other distro select to just let it report this error. > >> >>> ? ExecReload=@SBINDIR@/nginx -s reload >>> ? ExecStop=@BASE_BINDIR@/kill -s QUIT $MAINPID >>> ? PrivateTmp=true >>> -- >>> 2.7.4 >>> >>> -- >>> _______________________________________________ >>> Openembedded-devel mailing list >>> Openembedded-devel at lists.openembedded.org >>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel From raj.khem at gmail.com Tue Feb 25 04:49:19 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 24 Feb 2020 20:49:19 -0800 Subject: [oe] [meta-webserver][PATCH] nginx.service: sleep 0.1 after nginx start In-Reply-To: References: <1582544446-241334-1-git-send-email-changqing.li@windriver.com> Message-ID: <23aee0bf-a9f4-b002-8277-615dfa603b04@gmail.com> On 2/24/20 7:53 PM, Changqing Li wrote: > > On 2/25/20 12:40 AM, Khem Raj wrote: >> On Mon, Feb 24, 2020 at 3:41 AM wrote: >>> From: Changqing Li >>> >>> Fix error info: >>> nginx.service: failed to parse pid from file /run/nginx/nginx.pid: >>> invalid argument >>> >>> Signed-off-by: Changqing Li >>> --- >>> meta-webserver/recipes-httpd/nginx/files/nginx.service | 1 + >>> 1 file changed, 1 insertion(+) >>> >>> diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx.service b/meta-webserver/recipes-httpd/nginx/files/nginx.service >>> index 9a6ca96..65c7752 100644 >>> --- a/meta-webserver/recipes-httpd/nginx/files/nginx.service >>> +++ b/meta-webserver/recipes-httpd/nginx/files/nginx.service >>> @@ -7,6 +7,7 @@ Type=forking >>> PIDFile=/run/nginx/nginx.pid >>> ExecStartPre=@SBINDIR@/nginx -t >>> ExecStart=@SBINDIR@/nginx >>> +ExecStartPost=/bin/sleep 0.1 >> I dont thiink we should be adding sleeps instead try to lock the dependencies >> so it happens correctly. or perhaps change the logic in code itself if >> dependencies >> can not handle it. > > error info: "nginx.service: failed to parse pid from file > /run/nginx/nginx.pid: invalid argument" is caused by race condition between > > systemd and nginx.? And this error will not caused problem except scary log > > This should be a known problem: > https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864 > > other distro like ubuntu, fedora, should also have this problem, I can > google people report this error on different distro. I do not question the problem but the solution, there have been different solutions posted to ml e.g. https://mailman.nginx.org/pipermail/nginx-devel/2016-February/007961.html or ubuntu fix https://github.com/aroth-arsoft/pkg-nginx/blob/master/debian/patches/nginx-fix-pidfile.patch perhaps you should try one of these patches > > ubuntu 16.04 use this as a workaround. > >>> ExecReload=@SBINDIR@/nginx -s reload >>> ExecStop=@BASE_BINDIR@/kill -s QUIT $MAINPID >>> PrivateTmp=true >>> -- >>> 2.7.4 >>> >>> -- >>> _______________________________________________ >>> Openembedded-devel mailing list >>> Openembedded-devel at lists.openembedded.org >>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel From raj.khem at gmail.com Tue Feb 25 04:59:47 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 24 Feb 2020 20:59:47 -0800 Subject: [oe] [meta-networking][PATCH] daq: upgrade 2.0.6 -> 2.2.2 In-Reply-To: <1582536523-89923-1-git-send-email-zhengrq.fnst@cn.fujitsu.com> References: <1582536523-89923-1-git-send-email-zhengrq.fnst@cn.fujitsu.com> Message-ID: <549f56c2-9056-ff8c-96f4-713437fc8de0@gmail.com> On 2/24/20 1:28 AM, Zheng Ruoqin wrote: > Signed-off-by: Zheng Ruoqin > --- > .../recipes-connectivity/daq/{daq_2.0.6.bb => daq_2.2.2.bb} | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > rename meta-networking/recipes-connectivity/daq/{daq_2.0.6.bb => daq_2.2.2.bb} (88%) > > diff --git a/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb b/meta-networking/recipes-connectivity/daq/daq_2.2.2.bb > similarity index 88% > rename from meta-networking/recipes-connectivity/daq/daq_2.0.6.bb > rename to meta-networking/recipes-connectivity/daq/daq_2.2.2.bb > index 42ffb17a1..29ac5c770 100644 > --- a/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb > +++ b/meta-networking/recipes-connectivity/daq/daq_2.2.2.bb > @@ -25,8 +25,8 @@ EXTRA_OECONF = "--disable-nfq-module --disable-ipq-module --includedir=${include > PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" > PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," > > -SRC_URI[md5sum] = "2cd6da422a72c129c685fc4bb848c24c" > -SRC_URI[sha256sum] = "b40e1d1273e08aaeaa86e69d4f28d535b7e53bdb3898adf539266b63137be7cb" > +SRC_URI[md5sum] = "c61f60674a5f951f0c50faf33a611fee" > +SRC_URI[sha256sum] = "7cd818cabb1ad35360e83076e54775f07165ee71407dc672d147e27d3cd37f7b" > > inherit autotools > > This is causing snort build failures since we use snort 2.9 https://errors.yoctoproject.org/Errors/Details/392611/ Perhaps we need to upgrade snort 3.0 and daq together From raj.khem at gmail.com Tue Feb 25 05:43:06 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 24 Feb 2020 21:43:06 -0800 Subject: [oe] [meta-oe][PATCH] phoronix-test-suite: Do not mark it allarch Message-ID: <20200225054306.865780-1-raj.khem@gmail.com> This package depends on target packages due to mime/mime-xdg therefore it can no longer be marked as allarch Signed-off-by: Khem Raj --- .../phoronix-test-suite/phoronix-test-suite_9.2.1.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.2.1.bb b/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.2.1.bb index 4a8e5b5b2a..31b30bb878 100644 --- a/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_9.2.1.bb +++ b/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 mime mime-xdg +inherit systemd mime mime-xdg do_install() { DESTDIR=${D} ./install-sh ${exec_prefix} -- 2.25.1 From leo.yan at linaro.org Tue Feb 25 06:37:11 2020 From: leo.yan at linaro.org (Leo Yan) Date: Tue, 25 Feb 2020 06:37:11 +0000 Subject: [oe] [meta-oe][PATCH v3] luajit: Upgrade to 2.1.0-beta3 Message-ID: <20200225063711.4848-1-leo.yan@linaro.org> Since luajit 2.1.0-beta3 can support architecture aarch64 and the old misses to support aarch64, the patch upgrades to luajit 2.1.0-beta3. Signed-off-by: Leo Yan --- .../luajit/luajit/clang.patch | 19 ------------------- .../luajit/{luajit_2.0.5.bb => luajit_git.bb} | 14 ++++++-------- 2 files changed, 6 insertions(+), 27 deletions(-) delete mode 100644 meta-oe/recipes-devtools/luajit/luajit/clang.patch rename meta-oe/recipes-devtools/luajit/{luajit_2.0.5.bb => luajit_git.bb} (89%) diff --git a/meta-oe/recipes-devtools/luajit/luajit/clang.patch b/meta-oe/recipes-devtools/luajit/luajit/clang.patch deleted file mode 100644 index c39ef6fd4..000000000 --- a/meta-oe/recipes-devtools/luajit/luajit/clang.patch +++ /dev/null @@ -1,19 +0,0 @@ -clang pretends to be gcc 4.2.0 which is a big lie when it comes -to features, its same as latest gcc - -Signed-off-by: Khem Raj -Upstream-Status: Pending - -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" - #endif - #elif !LJ_TARGET_PS3 --#if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3) -+#if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3) && !defined(__clang__) - #error "Need at least GCC 4.3 or newer" - #endif - #endif diff --git a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb b/meta-oe/recipes-devtools/luajit/luajit_git.bb similarity index 89% rename from meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb rename to meta-oe/recipes-devtools/luajit/luajit_git.bb index 93128dda8..da798328e 100644 --- a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb +++ b/meta-oe/recipes-devtools/luajit/luajit_git.bb @@ -1,14 +1,13 @@ 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.0.5+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,8 +89,7 @@ FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \ " FILES_luajit-common = "${datadir}/${BPN}-${PV}" -# Aarch64/mips64/ppc/ppc64/riscv64 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" -- 2.17.1 From raj.khem at gmail.com Tue Feb 25 06:41:04 2020 From: raj.khem at gmail.com (Khem Raj) Date: Mon, 24 Feb 2020 22:41:04 -0800 Subject: [oe] [meta-oe][PATCH v3] luajit: Upgrade to 2.1.0-beta3 In-Reply-To: <20200225063711.4848-1-leo.yan@linaro.org> References: <20200225063711.4848-1-leo.yan@linaro.org> Message-ID: <263955b2-9b82-f24c-172c-0761d86a1391@gmail.com> On 2/24/20 10:37 PM, Leo Yan wrote: > Since luajit 2.1.0-beta3 can support architecture aarch64 and the old > misses to support aarch64, the patch upgrades to luajit 2.1.0-beta3. > > Signed-off-by: Leo Yan > --- > .../luajit/luajit/clang.patch | 19 ------------------- why is this patch dropped ? it building with clang handled differently now ? if so please add a line or two in commit msg > .../luajit/{luajit_2.0.5.bb => luajit_git.bb} | 14 ++++++-------- > 2 files changed, 6 insertions(+), 27 deletions(-) > delete mode 100644 meta-oe/recipes-devtools/luajit/luajit/clang.patch > rename meta-oe/recipes-devtools/luajit/{luajit_2.0.5.bb => luajit_git.bb} (89%) > > diff --git a/meta-oe/recipes-devtools/luajit/luajit/clang.patch b/meta-oe/recipes-devtools/luajit/luajit/clang.patch > deleted file mode 100644 > index c39ef6fd4..000000000 > --- a/meta-oe/recipes-devtools/luajit/luajit/clang.patch > +++ /dev/null > @@ -1,19 +0,0 @@ > -clang pretends to be gcc 4.2.0 which is a big lie when it comes > -to features, its same as latest gcc > - > -Signed-off-by: Khem Raj > -Upstream-Status: Pending > - > -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" > - #endif > - #elif !LJ_TARGET_PS3 > --#if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3) > -+#if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3) && !defined(__clang__) > - #error "Need at least GCC 4.3 or newer" > - #endif > - #endif > diff --git a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb b/meta-oe/recipes-devtools/luajit/luajit_git.bb > similarity index 89% > rename from meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb > rename to meta-oe/recipes-devtools/luajit/luajit_git.bb > index 93128dda8..da798328e 100644 > --- a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb > +++ b/meta-oe/recipes-devtools/luajit/luajit_git.bb > @@ -1,14 +1,13 @@ > 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.0.5+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,8 +89,7 @@ FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \ > " > FILES_luajit-common = "${datadir}/${BPN}-${PV}" > > -# Aarch64/mips64/ppc/ppc64/riscv64 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" > From ticotimo at gmail.com Tue Feb 25 07:21:38 2020 From: ticotimo at gmail.com (Tim Orling) Date: Mon, 24 Feb 2020 23:21:38 -0800 Subject: [oe] [meta-python2][PATCH 1/1] python-lxml: fix installation In-Reply-To: <20200220173431.23452-1-joe.slater@windriver.com> References: <20200220173431.23452-1-joe.slater@windriver.com> Message-ID: I made one slight change in that I kept the "inherit" line intact, but moved it where you had done. Merged. Thank you! On Thu, Feb 20, 2020 at 9:34 AM Joe Slater wrote: > Inherit setuptools before adding to variables defined in it. > > Signed-off-by: Joe Slater > --- > recipes-devtools/python/python-lxml_4.4.2.bb | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/recipes-devtools/python/python-lxml_4.4.2.bb > b/recipes-devtools/python/python-lxml_4.4.2.bb > index 911ba58..0f9cdf7 100644 > --- a/recipes-devtools/python/python-lxml_4.4.2.bb > +++ b/recipes-devtools/python/python-lxml_4.4.2.bb > @@ -21,6 +21,11 @@ SRC_URI[sha256sum] = > "eff69ddbf3ad86375c344339371168640951c302450c5d3e9936e98d64 > > DEPENDS += "libxml2 libxslt" > > + > +inherit setuptools > + > +# add to the defaults which are set in the setuptools bbclass > +# > DISTUTILS_BUILD_ARGS += " \ > --with-xslt-config='pkg-config libxslt' \ > --with-xml2-config='pkg-config libxml-2.0' \ > @@ -31,7 +36,7 @@ DISTUTILS_INSTALL_ARGS += " \ > --with-xml2-config='pkg-config libxml-2.0' \ > " > > -inherit pypi setuptools > +inherit pypi > > # {standard input}: Assembler messages: > # {standard input}:1488805: Error: branch out of range > -- > 2.7.4 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From leo.yan at linaro.org Tue Feb 25 07:38:55 2020 From: leo.yan at linaro.org (Leo Yan) Date: Tue, 25 Feb 2020 15:38:55 +0800 Subject: [oe] [meta-oe][PATCH v3] luajit: Upgrade to 2.1.0-beta3 In-Reply-To: <263955b2-9b82-f24c-172c-0761d86a1391@gmail.com> References: <20200225063711.4848-1-leo.yan@linaro.org> <263955b2-9b82-f24c-172c-0761d86a1391@gmail.com> Message-ID: <20200225073129.GA1169@leoy-ThinkPad-X240s> Hi Khem, On Mon, Feb 24, 2020 at 10:41:04PM -0800, Khem Raj wrote: > > > On 2/24/20 10:37 PM, Leo Yan wrote: > > Since luajit 2.1.0-beta3 can support architecture aarch64 and the old > > misses to support aarch64, the patch upgrades to luajit 2.1.0-beta3. > > > > Signed-off-by: Leo Yan > > --- > > .../luajit/luajit/clang.patch | 19 ------------------- > > > why is this patch dropped ? it building with clang handled differently now ? > if so please add a line or two in commit msg To be honest, I don't know how to hit the condition for '#elif !LJ_TARGET_PS3', and since considering Clang has upgraded to new version (9.0.1), this is another reason I dropped this patch. But I cannot give out any concrete reason, will keep this patch. Thanks, Leo > > .../luajit/{luajit_2.0.5.bb => luajit_git.bb} | 14 ++++++-------- > > 2 files changed, 6 insertions(+), 27 deletions(-) > > delete mode 100644 meta-oe/recipes-devtools/luajit/luajit/clang.patch > > rename meta-oe/recipes-devtools/luajit/{luajit_2.0.5.bb => luajit_git.bb} (89%) > > > > diff --git a/meta-oe/recipes-devtools/luajit/luajit/clang.patch b/meta-oe/recipes-devtools/luajit/luajit/clang.patch > > deleted file mode 100644 > > index c39ef6fd4..000000000 > > --- a/meta-oe/recipes-devtools/luajit/luajit/clang.patch > > +++ /dev/null > > @@ -1,19 +0,0 @@ > > -clang pretends to be gcc 4.2.0 which is a big lie when it comes > > -to features, its same as latest gcc > > - > > -Signed-off-by: Khem Raj > > -Upstream-Status: Pending > > - > > -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" > > - #endif > > - #elif !LJ_TARGET_PS3 > > --#if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3) > > -+#if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3) && !defined(__clang__) > > - #error "Need at least GCC 4.3 or newer" > > - #endif > > - #endif > > diff --git a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb b/meta-oe/recipes-devtools/luajit/luajit_git.bb > > similarity index 89% > > rename from meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb > > rename to meta-oe/recipes-devtools/luajit/luajit_git.bb > > index 93128dda8..da798328e 100644 > > --- a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb > > +++ b/meta-oe/recipes-devtools/luajit/luajit_git.bb > > @@ -1,14 +1,13 @@ > > 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.0.5+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,8 +89,7 @@ FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \ > > " > > FILES_luajit-common = "${datadir}/${BPN}-${PV}" > > -# Aarch64/mips64/ppc/ppc64/riscv64 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" > > From changqing.li at windriver.com Tue Feb 25 07:56:16 2020 From: changqing.li at windriver.com (changqing.li at windriver.com) Date: Tue, 25 Feb 2020 15:56:16 +0800 Subject: [oe] [meta-webserver][PATCH V2] ngnix: fix error during service startup Message-ID: <1582617376-453370-1-git-send-email-changqing.li@windriver.com> From: Changqing Li fix below error: nginx.service: failed to parse pid from file /run/nginx/nginx.pid: invalid argument Signed-off-by: Changqing Li --- .../nginx/files/nginx-fix-pidfile.patch | 99 ++++++++++++++++++++++ meta-webserver/recipes-httpd/nginx/nginx.inc | 1 + 2 files changed, 100 insertions(+) create mode 100644 meta-webserver/recipes-httpd/nginx/files/nginx-fix-pidfile.patch diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx-fix-pidfile.patch b/meta-webserver/recipes-httpd/nginx/files/nginx-fix-pidfile.patch new file mode 100644 index 0000000..90159a6 --- /dev/null +++ b/meta-webserver/recipes-httpd/nginx/files/nginx-fix-pidfile.patch @@ -0,0 +1,99 @@ +Description: Fix NGINX pidfile handling +Author: Tj +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864 +Last-Update: 2019-06-04 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ + +Upstream-Status: Pending + +This patch is from ubuntu, https://github.com/aroth-arsoft/pkg-nginx/blob +/master/debian/patches/nginx-fix-pidfile.patch, for fix below +error info: +nginx.service: failed to parse pid from file /run/nginx/nginx.pid: +invalid argument + +Signed-off-by: Changqing Li + +diff --git a/src/core/nginx.c b/src/core/nginx.c +index 9fcb0eb2..083eba1d 100644 +--- a/src/core/nginx.c ++++ b/src/core/nginx.c +@@ -338,14 +338,21 @@ main(int argc, char *const *argv) + ngx_process = NGX_PROCESS_MASTER; + } + ++ /* tell-tale to detect if this is parent or child process */ ++ ngx_int_t child_pid = NGX_BUSY; ++ + #if !(NGX_WIN32) + + if (ngx_init_signals(cycle->log) != NGX_OK) { + return 1; + } + ++ /* tell-tale that this code has been executed */ ++ child_pid--; ++ + if (!ngx_inherited && ccf->daemon) { +- if (ngx_daemon(cycle->log) != NGX_OK) { ++ child_pid = ngx_daemon(cycle->log); ++ if (child_pid == NGX_ERROR) { + return 1; + } + +@@ -358,8 +365,19 @@ main(int argc, char *const *argv) + + #endif + +- if (ngx_create_pidfile(&ccf->pid, cycle->log) != NGX_OK) { +- return 1; ++ /* If ngx_daemon() returned the child's PID in the parent process ++ * after the fork() set ngx_pid to the child_pid, which gets ++ * written to the PID file, then exit. ++ * For NGX_WIN32 always write the PID file ++ * For others, only write it from the parent process */ ++ if (child_pid < NGX_OK || child_pid > NGX_OK) { ++ ngx_pid = child_pid > NGX_OK ? child_pid : ngx_pid; ++ if (ngx_create_pidfile(&ccf->pid, cycle->log) != NGX_OK) { ++ return 1; ++ } ++ } ++ if (child_pid > NGX_OK) { ++ exit(0); + } + + if (ngx_log_redirect_stderr(cycle) != NGX_OK) { +diff --git a/src/os/unix/ngx_daemon.c b/src/os/unix/ngx_daemon.c +index 385c49b6..3719854c 100644 +--- a/src/os/unix/ngx_daemon.c ++++ b/src/os/unix/ngx_daemon.c +@@ -7,14 +7,17 @@ + + #include + #include ++#include + + + ngx_int_t + ngx_daemon(ngx_log_t *log) + { + int fd; ++ /* retain the return value for passing back to caller */ ++ pid_t pid_child = fork(); + +- switch (fork()) { ++ switch (pid_child) { + case -1: + ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, "fork() failed"); + return NGX_ERROR; +@@ -23,7 +26,8 @@ ngx_daemon(ngx_log_t *log) + break; + + default: +- exit(0); ++ /* let caller do the exit() */ ++ return pid_child; + } + + ngx_parent = ngx_pid; diff --git a/meta-webserver/recipes-httpd/nginx/nginx.inc b/meta-webserver/recipes-httpd/nginx/nginx.inc index 0d229ff..2824c66 100644 --- a/meta-webserver/recipes-httpd/nginx/nginx.inc +++ b/meta-webserver/recipes-httpd/nginx/nginx.inc @@ -21,6 +21,7 @@ SRC_URI = " \ file://nginx.init \ file://nginx-volatile.conf \ file://nginx.service \ + file://nginx-fix-pidfile.patch \ " inherit siteinfo update-rc.d useradd systemd -- 2.7.4 From changqing.li at windriver.com Tue Feb 25 07:56:51 2020 From: changqing.li at windriver.com (Changqing Li) Date: Tue, 25 Feb 2020 15:56:51 +0800 Subject: [oe] [meta-webserver][PATCH] nginx.service: sleep 0.1 after nginx start In-Reply-To: <23aee0bf-a9f4-b002-8277-615dfa603b04@gmail.com> References: <1582544446-241334-1-git-send-email-changqing.li@windriver.com> <23aee0bf-a9f4-b002-8277-615dfa603b04@gmail.com> Message-ID: On 2/25/20 12:49 PM, Khem Raj wrote: > > > On 2/24/20 7:53 PM, Changqing Li wrote: >> >> On 2/25/20 12:40 AM, Khem Raj wrote: >>> On Mon, Feb 24, 2020 at 3:41 AM? wrote: >>>> From: Changqing Li >>>> >>>> Fix error info: >>>> nginx.service: failed to parse pid from file /run/nginx/nginx.pid: >>>> invalid argument >>>> >>>> Signed-off-by: Changqing Li >>>> --- >>>> ? meta-webserver/recipes-httpd/nginx/files/nginx.service | 1 + >>>> ? 1 file changed, 1 insertion(+) >>>> >>>> diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx.service >>>> b/meta-webserver/recipes-httpd/nginx/files/nginx.service >>>> index 9a6ca96..65c7752 100644 >>>> --- a/meta-webserver/recipes-httpd/nginx/files/nginx.service >>>> +++ b/meta-webserver/recipes-httpd/nginx/files/nginx.service >>>> @@ -7,6 +7,7 @@ Type=forking >>>> ? PIDFile=/run/nginx/nginx.pid >>>> ? ExecStartPre=@SBINDIR@/nginx -t >>>> ? ExecStart=@SBINDIR@/nginx >>>> +ExecStartPost=/bin/sleep 0.1 >>> I dont thiink we should be adding sleeps instead try to lock the >>> dependencies >>> so it happens correctly. or perhaps change the logic in code itself if >>> dependencies >>> can not handle it. >> >> error info: "nginx.service: failed to parse pid from file >> /run/nginx/nginx.pid: invalid argument" is caused by race condition >> between >> >> systemd and nginx.? And this error will not caused problem except >> scary log >> >> This should be a known problem: >> https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864 >> >> other distro like ubuntu, fedora, should also have this problem, I >> can google people report this error on different distro. > > I do not question the problem but the solution, there have been > different solutions posted to ml e.g. > > https://mailman.nginx.org/pipermail/nginx-devel/2016-February/007961.html > > or ubuntu fix > > https://github.com/aroth-arsoft/pkg-nginx/blob/master/debian/patches/nginx-fix-pidfile.patch > Thanks.? I send a V2 with this solution. > > perhaps you should try one of these patches > >> >> ubuntu 16.04 use this as a workaround. >> >>>> ? ExecReload=@SBINDIR@/nginx -s reload >>>> ? ExecStop=@BASE_BINDIR@/kill -s QUIT $MAINPID >>>> ? PrivateTmp=true >>>> -- >>>> 2.7.4 >>>> >>>> -- >>>> _______________________________________________ >>>> Openembedded-devel mailing list >>>> Openembedded-devel at lists.openembedded.org >>>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From adrian.freihofer at siemens.com Tue Feb 25 08:01:41 2020 From: adrian.freihofer at siemens.com (Freihofer, Adrian) Date: Tue, 25 Feb 2020 08:01:41 +0000 Subject: [oe] [meta-networking][PATCH] networkmanager: Upgrade 1.18.4 -> 1.22.8 Message-ID: - rebased patches - Option --enable-polkit-agent is not available with current NM, removed - Option --with-libnm-glib is not available with current NM, removed - New package NM-cloud-setup for new experimental cloud setup feature - NM tries to re-license from GPL to LGPL, added LGPL to LICENSES - Removed empty packages libnmutil libnmglib libnmglib-vpn Signed-off-by: Adrian Freihofer --- ...e.ac-Fix-pkgconfig-sysroot-locations.patch | 6 +-- ...ttings-settings-property-documentati.patch | 23 +++++----- ...Fix-build-with-musl-systemd-specific.patch | 26 ++++++------ .../musl/0002-Fix-build-with-musl.patch | 30 +++++++------ ...ger_1.18.4.bb => networkmanager_1.22.8.bb} | 42 ++++++++++++------- 5 files changed, 70 insertions(+), 57 deletions(-) rename meta-networking/recipes- connectivity/networkmanager/{networkmanager_1.18.4.bb => networkmanager_1.22.8.bb} (77%) diff --git a/meta-networking/recipes- connectivity/networkmanager/networkmanager/0001-Fixed-configure.ac-Fix- pkgconfig-sysroot-locations.patch b/meta-networking/recipes- connectivity/networkmanager/networkmanager/0001-Fixed-configure.ac-Fix- pkgconfig-sysroot-locations.patch index 302c0292b..19c8c7481 100644 --- a/meta-networking/recipes- connectivity/networkmanager/networkmanager/0001-Fixed-configure.ac-Fix- pkgconfig-sysroot-locations.patch +++ b/meta-networking/recipes- connectivity/networkmanager/networkmanager/0001-Fixed-configure.ac-Fix- pkgconfig-sysroot-locations.patch @@ -1,4 +1,4 @@ -From 3dc3d8e73bc430ea4e93e33f7b2a4b3e0ff175af Mon Sep 17 00:00:00 2001 +From 9bcf4c81a559d1e7deac47b2e510d7f1e5837a02 Mon Sep 17 00:00:00 2001 From: Pablo Saavedra Date: Tue, 13 Mar 2018 17:36:20 +0100 Subject: [PATCH] Fixed configure.ac: Fix pkgconfig sysroot locations @@ -8,10 +8,10 @@ Subject: [PATCH] Fixed configure.ac: Fix pkgconfig sysroot locations 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index 967eac0..b914219 100644 +index 65ceffb..ad4b0fc 100644 --- a/configure.ac +++ b/configure.ac -@@ -592,7 +592,7 @@ if test "$have_jansson" = "yes"; then +@@ -561,7 +561,7 @@ if test "$have_jansson" = "yes"; then AC_DEFINE(WITH_JANSSON, 1, [Define if JANSSON is enabled]) AC_CHECK_TOOLS(READELF, [eu-readelf readelf]) diff --git a/meta-networking/recipes- connectivity/networkmanager/networkmanager/0002-Do-not-create-settings- settings-property-documentati.patch b/meta-networking/recipes- connectivity/networkmanager/networkmanager/0002-Do-not-create-settings- settings-property-documentati.patch index 5581dd3aa..446637b27 100644 --- a/meta-networking/recipes- connectivity/networkmanager/networkmanager/0002-Do-not-create-settings- settings-property-documentati.patch +++ b/meta-networking/recipes- connectivity/networkmanager/networkmanager/0002-Do-not-create-settings- settings-property-documentati.patch @@ -1,4 +1,4 @@ -From 4f000a4a19975d6aba71427e693cd1ed080abda9 Mon Sep 17 00:00:00 2001 +From 9eab96351a726e9ce6a15d158f743e35d73a8900 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Thu, 22 Mar 2018 11:08:30 +0100 Subject: [PATCH] Do not create settings settings/property documentation @@ -6,23 +6,29 @@ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + It was tried to get this work but gi / GirRepository could not be found by python. Anyway it is not necessary for us to have the settings/property docs. Upstream-Status: Inappropriate [OE specific] Signed-off-by: Andreas M?ller + --- Makefile.am | 11 ----------- configure.ac | 5 ----- 2 files changed, 16 deletions(-) diff --git a/Makefile.am b/Makefile.am -index b180466..1ab4658 100644 +index d5cbcf5..2a1819a 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -1298,9 +1298,7 @@ EXTRA_DIST += \ - if HAVE_INTROSPECTION +@@ -1473,9 +1473,7 @@ libnm/libnm.typelib: libnm/libnm.gir + INTROSPECTION_GIRS += libnm/NM-1.0.gir libnm_noinst_data = \ - libnm/nm-property-docs.xml \ @@ -31,7 +37,7 @@ index b180466..1ab4658 100644 libnm/nm-settings-keyfile-docs.xml \ libnm/nm-settings-ifcfg-rh-docs.xml -@@ -3930,18 +3928,9 @@ $(clients_common_libnmc_base_la_OBJECTS): $(libnm_lib_h_pub_mkenums) +@@ -4236,18 +4234,9 @@ $(clients_common_libnmc_base_la_OBJECTS): $(libnm_lib_h_pub_mkenums) $(clients_common_libnmc_base_la_OBJECTS): clients/common/.dirstamp clients_common_settings_doc_h = clients/common/settings-docs.h @@ -51,10 +57,10 @@ index b180466..1ab4658 100644 $(clients_common_settings_doc_h) \ $(clients_common_settings_doc_h).in diff --git a/configure.ac b/configure.ac -index b914219..872c292 100644 +index ad4b0fc..0092092 100644 --- a/configure.ac +++ b/configure.ac -@@ -1215,11 +1215,6 @@ GTK_DOC_CHECK(1.0) +@@ -1201,11 +1201,6 @@ GTK_DOC_CHECK(1.0) # check if we can build setting property documentation build_docs=no if test -n "$INTROSPECTION_MAKEFILE"; then @@ -66,6 +72,3 @@ index b914219..872c292 100644 AC_PATH_PROG(PERL, perl) if test -z "$PERL"; then AC_MSG_ERROR([--enable-introspection requires perl]) --- -2.20.1 - diff --git a/meta-networking/recipes- connectivity/networkmanager/networkmanager/musl/0001-Fix-build-with- musl-systemd-specific.patch b/meta-networking/recipes- connectivity/networkmanager/networkmanager/musl/0001-Fix-build-with- musl-systemd-specific.patch index af6f938ce..c23fc308f 100644 --- a/meta-networking/recipes- connectivity/networkmanager/networkmanager/musl/0001-Fix-build-with- musl-systemd-specific.patch +++ b/meta-networking/recipes- connectivity/networkmanager/networkmanager/musl/0001-Fix-build-with- musl-systemd-specific.patch @@ -1,4 +1,4 @@ -From a89c2e6d40606f563467a83fb98933e990e71377 Mon Sep 17 00:00:00 2001 +From e7ed91c48e1a07527a860637a7865eb67ce34cf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 2 Apr 2019 01:34:35 +0200 Subject: [PATCH] Fix build with musl - systemd specific @@ -12,6 +12,7 @@ for musl. Upstream-Status: Pending Signed-off-by: Andreas M?ller + --- shared/systemd/src/basic/in-addr-util.c | 1 + shared/systemd/src/basic/process-util.c | 9 +++++++++ @@ -22,10 +23,10 @@ Signed-off-by: Andreas M?ller < schnitzeltony at gmail.com> 6 files changed, 27 insertions(+), 23 deletions(-) diff --git a/shared/systemd/src/basic/in-addr-util.c b/shared/systemd/src/basic/in-addr-util.c -index 5899f62..0adb248 100644 +index 91d687c..8388304 100644 --- a/shared/systemd/src/basic/in-addr-util.c +++ b/shared/systemd/src/basic/in-addr-util.c -@@ -14,6 +14,7 @@ +@@ -15,6 +15,7 @@ #include "in-addr-util.h" #include "macro.h" #include "parse-util.h" @@ -34,10 +35,10 @@ index 5899f62..0adb248 100644 #include "strxcpyx.h" #include "util.h" diff --git a/shared/systemd/src/basic/process-util.c b/shared/systemd/src/basic/process-util.c -index 7431be3..189060a 100644 +index 1456167..42f51a0 100644 --- a/shared/systemd/src/basic/process-util.c +++ b/shared/systemd/src/basic/process-util.c -@@ -21,6 +21,9 @@ +@@ -17,6 +17,9 @@ #include #include #include @@ -47,7 +48,7 @@ index 7431be3..189060a 100644 #if 0 /* NM_IGNORED */ #if HAVE_VALGRIND_VALGRIND_H #include -@@ -1183,11 +1186,13 @@ void reset_cached_pid(void) { +@@ -1123,11 +1126,13 @@ void reset_cached_pid(void) { cached_pid = CACHED_PID_UNSET; } @@ -61,7 +62,7 @@ index 7431be3..189060a 100644 pid_t getpid_cached(void) { static bool installed = false; -@@ -1216,7 +1221,11 @@ pid_t getpid_cached(void) { +@@ -1156,7 +1161,11 @@ pid_t getpid_cached(void) { * only half-documented (glibc doesn't document it but LSB does ? though only superficially) * we'll check for errors only in the most generic fashion possible. */ @@ -74,10 +75,10 @@ index 7431be3..189060a 100644 cached_pid = CACHED_PID_UNSET; return new_pid; diff --git a/shared/systemd/src/basic/socket-util.h b/shared/systemd/src/basic/socket-util.h -index 15443f1..4807198 100644 +index a0886e0..da47d14 100644 --- a/shared/systemd/src/basic/socket-util.h +++ b/shared/systemd/src/basic/socket-util.h -@@ -13,6 +13,12 @@ +@@ -14,6 +14,12 @@ #include #include @@ -147,10 +148,10 @@ index c3b9448..e80a938 100644 #include #include diff --git a/shared/systemd/src/basic/string-util.h b/shared/systemd/src/basic/string-util.h -index b23f4c8..8f2f6e0 100644 +index 04cc82b..2cf589a 100644 --- a/shared/systemd/src/basic/string-util.h +++ b/shared/systemd/src/basic/string-util.h -@@ -27,6 +27,11 @@ +@@ -26,6 +26,11 @@ #define strcaseeq(a,b) (strcasecmp((a),(b)) == 0) #define strncaseeq(a, b, n) (strncasecmp((a), (b), (n)) == 0) @@ -162,6 +163,3 @@ index b23f4c8..8f2f6e0 100644 int strcmp_ptr(const char *a, const char *b) _pure_; static inline bool streq_ptr(const char *a, const char *b) { --- -2.17.1 - diff --git a/meta-networking/recipes- connectivity/networkmanager/networkmanager/musl/0002-Fix-build-with- musl.patch b/meta-networking/recipes- connectivity/networkmanager/networkmanager/musl/0002-Fix-build-with- musl.patch index e0973af1e..196a3358d 100644 --- a/meta-networking/recipes- connectivity/networkmanager/networkmanager/musl/0002-Fix-build-with- musl.patch +++ b/meta-networking/recipes- connectivity/networkmanager/networkmanager/musl/0002-Fix-build-with- musl.patch @@ -1,7 +1,7 @@ -From 3d1307735667758f44378585482fe421db086af8 Mon Sep 17 00:00:00 2001 +From 877fbb4e848629ff57371b5bdb0d56369abe9d81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Mon, 8 Apr 2019 23:10:43 +0200 -Subject: [PATCH 2/2] Fix build with musl +Subject: [PATCH] Fix build with musl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -32,6 +32,7 @@ linux-libc headers 'notoriously broken for userspace' [2] (search for Upstream-Status: Pending Signed-off-by: Andreas M?ller + --- clients/tui/nmt-device-entry.c | 1 - libnm-core/nm-utils.h | 4 ++++ @@ -41,10 +42,10 @@ Signed-off-by: Andreas M?ller < schnitzeltony at gmail.com> 5 files changed, 8 insertions(+), 3 deletions(-) diff --git a/clients/tui/nmt-device-entry.c b/clients/tui/nmt-device- entry.c -index 43fbbc1..3eae286 100644 +index 4ab5932..915248c 100644 --- a/clients/tui/nmt-device-entry.c +++ b/clients/tui/nmt-device-entry.c -@@ -39,7 +39,6 @@ +@@ -26,7 +26,6 @@ #include "nmt-device-entry.h" #include @@ -53,10 +54,10 @@ index 43fbbc1..3eae286 100644 #include "nmtui.h" diff --git a/libnm-core/nm-utils.h b/libnm-core/nm-utils.h -index 2b5baba..f7abab6 100644 +index 5418a1e..f492da6 100644 --- a/libnm-core/nm-utils.h +++ b/libnm-core/nm-utils.h -@@ -25,6 +25,10 @@ +@@ -10,6 +10,10 @@ #error "Only can be included directly." #endif @@ -68,10 +69,10 @@ index 2b5baba..f7abab6 100644 #include diff --git a/shared/nm-default.h b/shared/nm-default.h -index 54e9916..26e9f4e 100644 +index ace6ede..25357da 100644 --- a/shared/nm-default.h +++ b/shared/nm-default.h -@@ -211,6 +211,9 @@ +@@ -182,6 +182,9 @@ #endif #include @@ -82,10 +83,10 @@ index 54e9916..26e9f4e 100644 /********************************************************************** *******/ diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c -index bd4fbcc..f70b309 100644 +index 3bbc975..4e8a3f6 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c -@@ -24,6 +24,7 @@ +@@ -9,6 +9,7 @@ #include "nm-device.h" #include @@ -93,7 +94,7 @@ index bd4fbcc..f70b309 100644 #include #include #include -@@ -32,7 +33,6 @@ +@@ -17,7 +18,6 @@ #include #include #include @@ -102,10 +103,10 @@ index bd4fbcc..f70b309 100644 #include diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux- platform.c -index d4b0115..22a3a90 100644 +index 7abe4df..9f53147 100644 --- a/src/platform/nm-linux-platform.c +++ b/src/platform/nm-linux-platform.c -@@ -28,7 +28,6 @@ +@@ -14,7 +14,6 @@ #include #include #include @@ -113,6 +114,3 @@ index d4b0115..22a3a90 100644 #include #include #include --- -2.17.1 - diff --git a/meta-networking/recipes- connectivity/networkmanager/networkmanager_1.18.4.bb b/meta- networking/recipes-connectivity/networkmanager/networkmanager_1.22.8.bb similarity index 77% rename from meta-networking/recipes- connectivity/networkmanager/networkmanager_1.18.4.bb rename to meta-networking/recipes- connectivity/networkmanager/networkmanager_1.22.8.bb index 27508c4d9..b26a5ce06 100644 --- a/meta-networking/recipes- connectivity/networkmanager/networkmanager_1.18.4.bb +++ b/meta-networking/recipes- connectivity/networkmanager/networkmanager_1.22.8.bb @@ -2,9 +2,9 @@ SUMMARY = "NetworkManager" HOMEPAGE = "https://wiki.gnome.org/Projects/NetworkManager" SECTION = "net/misc" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=cbbffd568227ada506640fe950a4823b \ - file://libnm- util/COPYING;md5=1c4fa765d6eb3cd2fbd84344a1b816cd \ +LICENSE = "GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LGPL;md5=4fbd65380cdd255951079008b3 64516c \ " DEPENDS = " \ @@ -31,8 +31,8 @@ SRC_URI_append_libc-musl = " \ file://musl/0001-Fix-build-with-musl-systemd-specific.patch \ file://musl/0002-Fix-build-with-musl.patch \ " -SRC_URI[md5sum] = "fc86588a3ae54e0d406b560a312d5a5d" -SRC_URI[sha256sum] = "a3bd07f695b6d3529ec6adbd9a1d6385b967e9c8ae90946f51d8852b320fd05e" +SRC_URI[md5sum] = "b512b4985fe3b7e0b37fdac7ab5b8284" +SRC_URI[sha256sum] = "9511b92c72c6b5b4f063de9590ef6560696657bb6ba7d360676151742c7dab4f" S = "${WORKDIR}/NetworkManager-${PV}" @@ -65,7 +65,7 @@ PACKAGECONFIG[systemd] = " \ --with-systemdsystemunitdir=${systemd_unitdir}/system --with- session-tracking=systemd, \ --without-systemdsystemunitdir, \ " -PACKAGECONFIG[polkit] = "--enable-polkit --enable-polkit-agent, --disable-polkit --disable-polkit-agent,polkit" +PACKAGECONFIG[polkit] = "--enable-polkit,--disable-polkit,polkit" PACKAGECONFIG[bluez5] = "--enable-bluez5-dun,--disable-bluez5- dun,bluez5" # consolekit is not picked by shlibs, so add it to RDEPENDS too PACKAGECONFIG[consolekit] = "--with-session- tracking=consolekit,,consolekit,consolekit" @@ -75,33 +75,47 @@ PACKAGECONFIG[ppp] = "--enable-ppp,--disable- ppp,ppp,ppp" PACKAGECONFIG[dhclient] = "--with- dhclient=${base_sbindir}/dhclient,,,dhcp-client" PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq" PACKAGECONFIG[nss] = "--with-crypto=nss,,nss" -PACKAGECONFIG[glib] = "--with-libnm-glib,,dbus-glib-native dbus-glib" PACKAGECONFIG[resolvconf] = "--with- resolvconf=${base_sbindir}/resolvconf,,,resolvconf" PACKAGECONFIG[gnutls] = "--with-crypto=gnutls,,gnutls" PACKAGECONFIG[wifi] = "--enable-wifi=yes,--enable-wifi=no,,wpa- supplicant" PACKAGECONFIG[ifupdown] = "--enable-ifupdown,--disable-ifupdown" PACKAGECONFIG[qt4-x11-free] = "--enable-qt,--disable-qt,qt4-x11-free" +PACKAGECONFIG[cloud-setup] = "--with-nm-cloud-setup=yes,--with-nm- cloud-setup=no" -PACKAGES =+ "libnmutil libnmglib libnmglib-vpn \ +PACKAGES =+ " \ ${PN}-nmtui ${PN}-nmtui-doc \ - ${PN}-adsl \ + ${PN}-adsl ${PN}-cloud-setup \ " -FILES_libnmutil += "${libdir}/libnm-util.so.*" -FILES_libnmglib += "${libdir}/libnm-glib.so.*" -FILES_libnmglib-vpn += "${libdir}/libnm-glib-vpn.so.*" +SYSTEMD_PACKAGES = "${PN} ${PN}-cloud-setup" FILES_${PN}-adsl = "${libdir}/NetworkManager/${PV}/libnm-device- plugin-adsl.so" +FILES_${PN}-cloud-setup = " \ + ${libexecdir}/nm-cloud-setup \ + ${systemd_system_unitdir}/nm-cloud-setup.service \ + ${systemd_system_unitdir}/nm-cloud-setup.timer \ + ${libdir}/NetworkManager/dispatcher.d/90-nm-cloud-setup.sh \ + ${libdir}/NetworkManager/dispatcher.d/no-wait.d/90-nm-cloud- setup.sh \ +" +ALLOW_EMPTY_${PN}-cloud-setup = "1" +SYSTEMD_SERVICE_${PN}-cloud-setup = "${@bb.utils.contains('PACKAGECONF IG', 'cloud-setup', 'nm-cloud-setup.service nm-cloud-setup.timer', '', d)}" + FILES_${PN} += " \ ${libexecdir} \ ${libdir}/NetworkManager/${PV}/*.so \ - ${nonarch_libdir}/NetworkManager/VPN \ + ${libdir}/NetworkManager \ ${nonarch_libdir}/NetworkManager/conf.d \ + ${nonarch_libdir}/NetworkManager/dispatcher.d \ + ${nonarch_libdir}/NetworkManager/dispatcher.d/pre-down.d \ + ${nonarch_libdir}/NetworkManager/dispatcher.d/pre-up.d \ + ${nonarch_libdir}/NetworkManager/dispatcher.d/no-wait.d \ + ${nonarch_libdir}/NetworkManager/VPN \ + ${nonarch_libdir}/NetworkManager/system-connections \ ${datadir}/polkit-1 \ ${datadir}/dbus-1 \ ${nonarch_base_libdir}/udev/* \ - ${systemd_unitdir}/system \ + ${systemd_system_unitdir} \ ${libdir}/pppd \ " From andrey.z at gmail.com Tue Feb 25 09:45:45 2020 From: andrey.z at gmail.com (Andrey Zhizhikin) Date: Tue, 25 Feb 2020 10:45:45 +0100 Subject: [oe] [meta-oe][PATCH] lvm2/libdevmapper: Make it build for native In-Reply-To: <20190911145254.15693-1-pkj@axis.com> References: <20190911145254.15693-1-pkj@axis.com> Message-ID: Hello all, I've just faced the problem with building lvm2 of the [zeus] and it looks like this patch causes issues with similar symptoms that has been reported for bash CVE [1]. This patch also touches the configure part, and in case if `-c cleanall` is used - the build succeeds. Failed build log looks like following: ERROR: lvm2-2.03.02-r0 do_patch: Command Error: 'quilt --quiltrc /development/projects/build-output/work/corei7-64-poky-linux/lvm2/2.03.02-r0/recipe-sysroot-native/etc/quiltrc push' exited with 0 Output: Applying patch 0001-configure-Fix-setting-of-CLDFLAGS-default.patch patching file configure Hunk #1 FAILED at 3077. Hunk #2 FAILED at 3098. Hunk #3 FAILED at 3111. 3 out of 3 hunks FAILED -- rejects in file configure patching file configure.ac Hunk #2 succeeded at 50 (offset -1 lines). Hunk #3 succeeded at 63 (offset -1 lines). Patch 0001-configure-Fix-setting-of-CLDFLAGS-default.patch does not apply (enforce with -f) ERROR: Logfile of failure stored in: /development/projects/build-output/work/corei7-64-poky-linux/lvm2/2.03.02-r0/temp/log.do_patch.10047 ERROR: Task (/development/projects/yocto-build-appliance/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.02.bb:do_patch) failed with exit code '1' Since there was no decision (yet) taken on the bash one - can we combine those two together to find a common solution for both cases? On Wed, Sep 11, 2019 at 4:53 PM Peter Kjellerstedt wrote: > > Backport a patch from upstream master that corrects the passing of > link flags through configure. > > Signed-off-by: Peter Kjellerstedt > --- > ...gure-Fix-setting-of-CLDFLAGS-default.patch | 78 +++++++++++++++++++ > meta-oe/recipes-support/lvm2/lvm2.inc | 1 + > 2 files changed, 79 insertions(+) > create mode 100644 meta-oe/recipes-support/lvm2/files/0001-configure-Fix-setting-of-CLDFLAGS-default.patch > > diff --git a/meta-oe/recipes-support/lvm2/files/0001-configure-Fix-setting-of-CLDFLAGS-default.patch b/meta-oe/recipes-support/lvm2/files/0001-configure-Fix-setting-of-CLDFLAGS-default.patch > new file mode 100644 > index 000000000..07cb88ffb > --- /dev/null > +++ b/meta-oe/recipes-support/lvm2/files/0001-configure-Fix-setting-of-CLDFLAGS-default.patch > @@ -0,0 +1,78 @@ > +From 4a3e707402032788e09282e0f54fdf82c8a0f8fc Mon Sep 17 00:00:00 2001 > +From: Marian Csontos > +Date: Mon, 19 Aug 2019 14:54:43 +0200 > +Subject: [PATCH] configure: Fix setting of CLDFLAGS default > + > +--- > + configure | 6 +++--- > + configure.ac | 6 +++--- > + 2 files changed, 6 insertions(+), 6 deletions(-) > + > +Upstream-Status: Backport [https://sourceware.org/git/?p=lvm2.git;a=commit;h=4a3e707402032788e09282e0f54fdf82c8a0f8fc] > +Signed-off-by: Peter Kjellerstedt > + > +diff --git a/configure b/configure > +index ff3a59b6b..4c8476502 100755 > +--- a/configure > ++++ b/configure > +@@ -3077,7 +3077,7 @@ if test -z "$CFLAGS"; then : > + fi > + case "$host_os" in > + linux*) > +- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"} -Wl,--version-script,.export.sym" > ++ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"} -Wl,--version-script,.export.sym" > + # equivalent to -rdynamic > + ELDFLAGS="-Wl,--export-dynamic" > + # FIXME Generate list and use --dynamic-list=.dlopen.sym > +@@ -3098,7 +3098,7 @@ case "$host_os" in > + ;; > + darwin*) > + CFLAGS="$CFLAGS -no-cpp-precomp -fno-common" > +- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"}" > ++ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"}" > + ELDFLAGS= > + CLDWHOLEARCHIVE="-all_load" > + CLDNOWHOLEARCHIVE= > +@@ -3111,7 +3111,7 @@ case "$host_os" in > + BLKDEACTIVATE=no > + ;; > + *) > +- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"}" > ++ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"}" > + ;; > + esac > + > +diff --git a/configure.ac b/configure.ac > +index 5da694631..830edb8da 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -30,7 +30,7 @@ AC_CANONICAL_TARGET([]) > + AS_IF([test -z "$CFLAGS"], [COPTIMISE_FLAG="-O2"]) > + case "$host_os" in > + linux*) > +- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"} -Wl,--version-script,.export.sym" > ++ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"} -Wl,--version-script,.export.sym" > + # equivalent to -rdynamic > + ELDFLAGS="-Wl,--export-dynamic" > + # FIXME Generate list and use --dynamic-list=.dlopen.sym > +@@ -51,7 +51,7 @@ case "$host_os" in > + ;; > + darwin*) > + CFLAGS="$CFLAGS -no-cpp-precomp -fno-common" > +- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"}" > ++ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"}" > + ELDFLAGS= > + CLDWHOLEARCHIVE="-all_load" > + CLDNOWHOLEARCHIVE= > +@@ -64,7 +64,7 @@ case "$host_os" in > + BLKDEACTIVATE=no > + ;; > + *) > +- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"}" > ++ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"}" > + ;; > + esac > + > +-- > +2.21.0 > + > diff --git a/meta-oe/recipes-support/lvm2/lvm2.inc b/meta-oe/recipes-support/lvm2/lvm2.inc > index f358663b0..6c95bfd02 100644 > --- a/meta-oe/recipes-support/lvm2/lvm2.inc > +++ b/meta-oe/recipes-support/lvm2/lvm2.inc > @@ -15,6 +15,7 @@ SRC_URI = "https://sourceware.org/pub/lvm2/LVM2.${PV}.tgz \ > file://0001-Avoid-bashisms-in-init-scripts.patch \ > file://0005-do-not-build-manual.patch \ > file://0006-start-lvm2-monitor.service-after-tmp.mount.patch \ > + file://0001-configure-Fix-setting-of-CLDFLAGS-default.patch \ > " > SRC_URI[md5sum] = "5fc07da5461a3794a751dcfc355827d5" > SRC_URI[sha256sum] = "550ba750239fd75b7e52c9877565cabffef506bbf6d7f6f17b9700dee56c720f" > -- > 2.21.0 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel [1]: http://lists.openembedded.org/pipermail/openembedded-core/2020-February/292991.html -- Regards, Andrey. From martin.jansa at gmail.com Tue Feb 25 13:53:45 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Tue, 25 Feb 2020 14:53:45 +0100 Subject: [oe] [meta-python2][PATCH 1/2] python-backports-functools-lru-cache: enable native and nativesdk Message-ID: <20200225135346.13344-1-Martin.Jansa@gmail.com> * since this change: commit d1a1c57d0e73251e86591214f30fc90010d5c111 Author: Tim Orling Date: Mon Jan 20 11:31:59 2020 -0800 python-beautifulsoup4: fix target RDEPENDS syntax there is now this dependency: 'python-beautifulsoup4-native', 'python-soupsieve-native', 'python-backports-functools-lru-cache-native' and error in world builds: ERROR: Nothing RPROVIDES 'python-backports-functools-lru-cache-native' (but virtual:native:meta-python2/recipes-devtools/python/python-soupsieve_1.9.4.bb RDEPENDS on or otherwise requires it) Signed-off-by: Martin Jansa --- .../python/python-backports-functools-lru-cache_1.6.1.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/recipes-devtools/python/python-backports-functools-lru-cache_1.6.1.bb b/recipes-devtools/python/python-backports-functools-lru-cache_1.6.1.bb index 8c40cf5..aee130f 100644 --- a/recipes-devtools/python/python-backports-functools-lru-cache_1.6.1.bb +++ b/recipes-devtools/python/python-backports-functools-lru-cache_1.6.1.bb @@ -25,3 +25,5 @@ do_install() { } FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}/backports/functools_lru_cache.py" + +BBCLASSEXTEND = "native nativesdk" -- 2.20.1 From martin.jansa at gmail.com Tue Feb 25 13:53:46 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Tue, 25 Feb 2020 14:53:46 +0100 Subject: [oe] [meta-python2][PATCH 2/2] python-backports-init: enable native and nativesdk In-Reply-To: <20200225135346.13344-1-Martin.Jansa@gmail.com> References: <20200225135346.13344-1-Martin.Jansa@gmail.com> Message-ID: <20200225135346.13344-2-Martin.Jansa@gmail.com> * needed for python-backports-functools-lru-cache-native Signed-off-by: Martin Jansa --- recipes-devtools/python/python-backports-init_1.0.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/recipes-devtools/python/python-backports-init_1.0.bb b/recipes-devtools/python/python-backports-init_1.0.bb index 29e712a..8b226aa 100644 --- a/recipes-devtools/python/python-backports-init_1.0.bb +++ b/recipes-devtools/python/python-backports-init_1.0.bb @@ -23,3 +23,5 @@ do_install() { } FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}/backports/__init__.py" + +BBCLASSEXTEND = "native nativesdk" -- 2.20.1 From martin.jansa at gmail.com Tue Feb 25 13:57:57 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Tue, 25 Feb 2020 14:57:57 +0100 Subject: [oe] [meta-networking][warrior][PATCH] drbd: update SRC_URI to use archive subdirectory Message-ID: <20200225135757.13589-1-Martin.Jansa@gmail.com> * 9.0.17-1 version was moved to archive: http://www.linbit.com/downloads/drbd/9.0/archive/drbd-9.0.17-1.tar.gz * 9.0.19-1 used by zeus and newer wasn't moved yet: http://www.linbit.com/downloads/drbd/9.0/drbd-9.0.19-1.tar.gz that's why this change is only for warrior Signed-off-by: Martin Jansa --- meta-networking/recipes-support/drbd/drbd_9.0.17-1.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-networking/recipes-support/drbd/drbd_9.0.17-1.bb b/meta-networking/recipes-support/drbd/drbd_9.0.17-1.bb index 1eada269cb..6192e03f99 100644 --- a/meta-networking/recipes-support/drbd/drbd_9.0.17-1.bb +++ b/meta-networking/recipes-support/drbd/drbd_9.0.17-1.bb @@ -8,7 +8,7 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018" DEPENDS = "virtual/kernel" -SRC_URI = "http://www.linbit.com/downloads/drbd/9.0/drbd-${PV}.tar.gz \ +SRC_URI = "http://www.linbit.com/downloads/drbd/9.0/archive/drbd-${PV}.tar.gz \ file://check_existence_of_modules_before_installing.patch \ file://0001-drbd-kbuild-fix-use-M-don-t-forget-addprefix-obj.patch \ " -- 2.20.1 From raj.khem at gmail.com Tue Feb 25 15:49:21 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 25 Feb 2020 07:49:21 -0800 Subject: [oe] [meta-oe][PATCH] cfengine-masterfiles: Make the expression dash friendly Message-ID: <20200225154921.3743732-1-raj.khem@gmail.com> dash does not understand {} expressions like this, therefore simplify Signed-off-by: Khem Raj --- .../recipes-extended/cfengine/cfengine-masterfiles_3.15.0.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.15.0.bb b/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.15.0.bb index 79269d3147..35ac855989 100644 --- a/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.15.0.bb +++ b/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.15.0.bb @@ -33,7 +33,7 @@ export EXPLICIT_VERSION="${PV}" EXTRA_OECONF = "--prefix=${datadir}/cfengine" do_install_append() { - rm -rf ${D}${datadir}/cfengine/modules/packages/{zypper,yum} + rm -rf ${D}${datadir}/cfengine/modules/packages/zypper ${D}${datadir}/cfengine/modules/packages/yum } FILES_${PN} = "${datadir}/cfengine" -- 2.25.1 From raj.khem at gmail.com Tue Feb 25 15:57:09 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 25 Feb 2020 07:57:09 -0800 Subject: [oe] [meta-oe][PATCH v3] luajit: Upgrade to 2.1.0-beta3 In-Reply-To: <20200225073129.GA1169@leoy-ThinkPad-X240s> References: <20200225063711.4848-1-leo.yan@linaro.org> <263955b2-9b82-f24c-172c-0761d86a1391@gmail.com> <20200225073129.GA1169@leoy-ThinkPad-X240s> Message-ID: <8e32456d-c86d-3e87-9588-d8dc075ce061@gmail.com> On 2/24/20 11:38 PM, Leo Yan wrote: > Hi Khem, > > On Mon, Feb 24, 2020 at 10:41:04PM -0800, Khem Raj wrote: >> >> >> On 2/24/20 10:37 PM, Leo Yan wrote: >>> Since luajit 2.1.0-beta3 can support architecture aarch64 and the old >>> misses to support aarch64, the patch upgrades to luajit 2.1.0-beta3. >>> >>> Signed-off-by: Leo Yan >>> --- >>> .../luajit/luajit/clang.patch | 19 ------------------- >> >> >> why is this patch dropped ? it building with clang handled differently now ? >> if so please add a line or two in commit msg > > To be honest, I don't know how to hit the condition for > '#elif !LJ_TARGET_PS3', and since considering Clang has upgraded to new > version (9.0.1), this is another reason I dropped this patch. > you could easily excercise the need for it, by adding meta-clang and setting TOOLCHAIN_pn-luajit = "clang" (in local.conf) bitbake luajit > But I cannot give out any concrete reason, will keep this patch. > > Thanks, > Leo > >>> .../luajit/{luajit_2.0.5.bb => luajit_git.bb} | 14 ++++++-------- >>> 2 files changed, 6 insertions(+), 27 deletions(-) >>> delete mode 100644 meta-oe/recipes-devtools/luajit/luajit/clang.patch >>> rename meta-oe/recipes-devtools/luajit/{luajit_2.0.5.bb => luajit_git.bb} (89%) >>> >>> diff --git a/meta-oe/recipes-devtools/luajit/luajit/clang.patch b/meta-oe/recipes-devtools/luajit/luajit/clang.patch >>> deleted file mode 100644 >>> index c39ef6fd4..000000000 >>> --- a/meta-oe/recipes-devtools/luajit/luajit/clang.patch >>> +++ /dev/null >>> @@ -1,19 +0,0 @@ >>> -clang pretends to be gcc 4.2.0 which is a big lie when it comes >>> -to features, its same as latest gcc >>> - >>> -Signed-off-by: Khem Raj >>> -Upstream-Status: Pending >>> - >>> -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" >>> - #endif >>> - #elif !LJ_TARGET_PS3 >>> --#if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3) >>> -+#if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3) && !defined(__clang__) >>> - #error "Need at least GCC 4.3 or newer" >>> - #endif >>> - #endif >>> diff --git a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb b/meta-oe/recipes-devtools/luajit/luajit_git.bb >>> similarity index 89% >>> rename from meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb >>> rename to meta-oe/recipes-devtools/luajit/luajit_git.bb >>> index 93128dda8..da798328e 100644 >>> --- a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb >>> +++ b/meta-oe/recipes-devtools/luajit/luajit_git.bb >>> @@ -1,14 +1,13 @@ >>> 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.0.5+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,8 +89,7 @@ FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \ >>> " >>> FILES_luajit-common = "${datadir}/${BPN}-${PV}" >>> -# Aarch64/mips64/ppc/ppc64/riscv64 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" >>> From martin.jansa at gmail.com Tue Feb 25 19:07:09 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Tue, 25 Feb 2020 20:07:09 +0100 Subject: [oe] [meta-oe][PATCH 1/2] nodejs: don't enable ares support by default Message-ID: <20200225190710.3928-1-Martin.Jansa@gmail.com> * c-ares is in meta-networking and meta-oe doesn't depend on meta-networking * fixes: ERROR: Nothing PROVIDES 'c-ares' (but meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb DEPENDS on or otherwise requires it) in builds without meta-networking Signed-off-by: Martin Jansa --- meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb b/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb index 6eb52c209a..9f91a3f4dd 100644 --- a/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb +++ b/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb @@ -51,7 +51,7 @@ ARCHFLAGS_arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '- GYP_DEFINES_append_mipsel = " mips_arch_variant='r1' " ARCHFLAGS ?= "" -PACKAGECONFIG ??= "ares icu libuv zlib" +PACKAGECONFIG ??= "icu libuv zlib" PACKAGECONFIG[ares] = "--shared-cares,,c-ares" PACKAGECONFIG[gyp] = ",,gyp-py2-native" PACKAGECONFIG[icu] = "--with-intl=system-icu,--without-intl,icu" -- 2.20.1 From martin.jansa at gmail.com Tue Feb 25 19:07:10 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Tue, 25 Feb 2020 20:07:10 +0100 Subject: [oe] [meta-oe][PATCH 2/2] libvncserver: don't enable sasl support by default In-Reply-To: <20200225190710.3928-1-Martin.Jansa@gmail.com> References: <20200225190710.3928-1-Martin.Jansa@gmail.com> Message-ID: <20200225190710.3928-2-Martin.Jansa@gmail.com> * cyrus-sasl is in meta-networking and meta-oe doesn't depend on meta-networking Signed-off-by: Martin Jansa --- meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.12.bb | 1 - 1 file changed, 1 deletion(-) diff --git a/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.12.bb b/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.12.bb index 22fc83a64f..dfdf82458c 100644 --- a/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.12.bb +++ b/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 \ -- 2.20.1 From martin.jansa at gmail.com Tue Feb 25 19:07:38 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Tue, 25 Feb 2020 20:07:38 +0100 Subject: [oe] [meta-python2][PATCH 1/2] python-ldap: skip when meta-networking isn't included Message-ID: <20200225190739.4056-1-Martin.Jansa@gmail.com> * fixes: ERROR: Nothing PROVIDES 'cyrus-sasl' (but meta-python2/recipes-devtools/python/python-ldap_3.2.0.bb DEPENDS on or otherwise requires it) in world builds without meta-networking Signed-off-by: Martin Jansa --- recipes-devtools/python/python-ldap_3.2.0.bb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/recipes-devtools/python/python-ldap_3.2.0.bb b/recipes-devtools/python/python-ldap_3.2.0.bb index af8961e..8e43dee 100644 --- a/recipes-devtools/python/python-ldap_3.2.0.bb +++ b/recipes-devtools/python/python-ldap_3.2.0.bb @@ -23,9 +23,15 @@ do_configure_prepend() { sed -i -e 's:^include_dirs =.*:include_dirs = =/usr/include/sasl/:' setup.cfg } + RDEPENDS_${PN} = " \ ${PYTHON_PN}-pprint \ ${PYTHON_PN}-threading \ ${PYTHON_PN}-pyasn1 \ ${PYTHON_PN}-pyasn1-modules \ " + +python() { + if 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split(): + raise bb.parse.SkipRecipe('Requires networking-layer to be present to provide cyrus-sasl.') +} -- 2.20.1 From martin.jansa at gmail.com Tue Feb 25 19:07:39 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Tue, 25 Feb 2020 20:07:39 +0100 Subject: [oe] [meta-python2][PATCH 2/2] python-networkmanager: skip when meta-networking isn't included In-Reply-To: <20200225190739.4056-1-Martin.Jansa@gmail.com> References: <20200225190739.4056-1-Martin.Jansa@gmail.com> Message-ID: <20200225190739.4056-2-Martin.Jansa@gmail.com> * fixes ERROR: Nothing RPROVIDES 'networkmanager' (but meta-python2/recipes-connectivity/python-networkmanager/python-networkmanager_2.1.bb RDEPENDS on or otherwise requires it) in world builds without meta-networking Signed-off-by: Martin Jansa --- .../python-networkmanager/python-networkmanager_2.1.bb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/recipes-connectivity/python-networkmanager/python-networkmanager_2.1.bb b/recipes-connectivity/python-networkmanager/python-networkmanager_2.1.bb index 3aa41f1..53e2f9d 100644 --- a/recipes-connectivity/python-networkmanager/python-networkmanager_2.1.bb +++ b/recipes-connectivity/python-networkmanager/python-networkmanager_2.1.bb @@ -11,3 +11,8 @@ PYPI_PACKAGE = "python-networkmanager" inherit pypi setuptools RDEPENDS_${PN} = "networkmanager python-dbus python-six" + +python() { + if 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split(): + raise bb.parse.SkipRecipe('Requires networking-layer to be present to provide networkmanager.') +} -- 2.20.1 From raj.khem at gmail.com Tue Feb 25 19:13:42 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 25 Feb 2020 11:13:42 -0800 Subject: [oe] [meta-oe][PATCH 1/2] nodejs: don't enable ares support by default In-Reply-To: <20200225190710.3928-1-Martin.Jansa@gmail.com> References: <20200225190710.3928-1-Martin.Jansa@gmail.com> Message-ID: On Tue, Feb 25, 2020 at 11:07 AM Martin Jansa wrote: > > * c-ares is in meta-networking and meta-oe doesn't depend on meta-networking > * fixes: > ERROR: Nothing PROVIDES 'c-ares' (but meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb DEPENDS on or otherwise requires it) > in builds without meta-networking > this patch makes me thing if c-ares is better suites for meta-networking > Signed-off-by: Martin Jansa > --- > meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb b/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb > index 6eb52c209a..9f91a3f4dd 100644 > --- a/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb > +++ b/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb > @@ -51,7 +51,7 @@ ARCHFLAGS_arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '- > GYP_DEFINES_append_mipsel = " mips_arch_variant='r1' " > ARCHFLAGS ?= "" > > -PACKAGECONFIG ??= "ares icu libuv zlib" > +PACKAGECONFIG ??= "icu libuv zlib" > PACKAGECONFIG[ares] = "--shared-cares,,c-ares" > PACKAGECONFIG[gyp] = ",,gyp-py2-native" > PACKAGECONFIG[icu] = "--with-intl=system-icu,--without-intl,icu" > -- > 2.20.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From martin.jansa at gmail.com Tue Feb 25 19:22:02 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Tue, 25 Feb 2020 20:22:02 +0100 Subject: [oe] [meta-oe][PATCH 1/2] nodejs: don't enable ares support by default In-Reply-To: References: <20200225190710.3928-1-Martin.Jansa@gmail.com> Message-ID: <20200225192202.fjc5mxecs6c6oruj@jama> On Tue, Feb 25, 2020 at 11:13:42AM -0800, Khem Raj wrote: > On Tue, Feb 25, 2020 at 11:07 AM Martin Jansa wrote: > > > > * c-ares is in meta-networking and meta-oe doesn't depend on meta-networking > > * fixes: > > ERROR: Nothing PROVIDES 'c-ares' (but meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb DEPENDS on or otherwise requires it) > > in builds without meta-networking > > > > this patch makes me thing if c-ares is better suites for meta-networking ? This patch exists, because c-ares _is_ in meta-networking, while nodejs which depends on it is in meta-oe. > > > Signed-off-by: Martin Jansa > > --- > > meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb b/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb > > index 6eb52c209a..9f91a3f4dd 100644 > > --- a/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb > > +++ b/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb > > @@ -51,7 +51,7 @@ ARCHFLAGS_arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '- > > GYP_DEFINES_append_mipsel = " mips_arch_variant='r1' " > > ARCHFLAGS ?= "" > > > > -PACKAGECONFIG ??= "ares icu libuv zlib" > > +PACKAGECONFIG ??= "icu libuv zlib" > > PACKAGECONFIG[ares] = "--shared-cares,,c-ares" > > PACKAGECONFIG[gyp] = ",,gyp-py2-native" > > PACKAGECONFIG[icu] = "--with-intl=system-icu,--without-intl,icu" > > -- > > 2.20.1 > > > > -- > > _______________________________________________ > > Openembedded-devel mailing list > > Openembedded-devel at lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: not available URL: From raj.khem at gmail.com Tue Feb 25 19:23:03 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 25 Feb 2020 11:23:03 -0800 Subject: [oe] [[meta-oe][PATCH v2] ttf-noto-emoji: add recipe In-Reply-To: <20200225035949.30515-1-matt.ranostay@konsulko.com> References: <20200225035949.30515-1-matt.ranostay@konsulko.com> Message-ID: <4428794a-fc1f-c178-d3d0-28bf2f3e5adf@gmail.com> On 2/24/20 7:59 PM, Matt Ranostay wrote: > Add both B/W and color emojis fonts from the noto-emoji project. > > Important note for the color emojis to render the pixmap PACKAGECONFIG > option needs to be set in freetype package. > We have sstate failures due to fontconfig dep http://jenkins.nas-admin.org/view/OE/job/oe_world_workspace-compare-signatures/956/console this should be added to SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS in conf/layers.conf > Signed-off-by: Matt Ranostay > --- > .../ttf-fonts/ttf-noto-emoji_20190815.bb | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > create mode 100644 meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb > > diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb > new file mode 100644 > index 000000000..e74f7a7f6 > --- /dev/null > +++ b/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" > From martin.jansa at gmail.com Tue Feb 25 19:24:37 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Tue, 25 Feb 2020 20:24:37 +0100 Subject: [oe] [meta-oe][PATCH 1/2] nodejs: don't enable ares support by default In-Reply-To: <20200225192202.fjc5mxecs6c6oruj@jama> References: <20200225190710.3928-1-Martin.Jansa@gmail.com> <20200225192202.fjc5mxecs6c6oruj@jama> Message-ID: <20200225192437.dmcrr4pnxbn3xugx@jama> On Tue, Feb 25, 2020 at 08:22:02PM +0100, Martin Jansa wrote: > On Tue, Feb 25, 2020 at 11:13:42AM -0800, Khem Raj wrote: > > On Tue, Feb 25, 2020 at 11:07 AM Martin Jansa wrote: > > > > > > * c-ares is in meta-networking and meta-oe doesn't depend on meta-networking > > > * fixes: > > > ERROR: Nothing PROVIDES 'c-ares' (but meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb DEPENDS on or otherwise requires it) > > > in builds without meta-networking > > > > > > > this patch makes me thing if c-ares is better suites for meta-networking > > ? > > This patch exists, because c-ares _is_ in meta-networking, while nodejs > which depends on it is in meta-oe. It got enabled in default PACKAGECONFIG in: commit 76dd3dac1f1e67a5c44ad732b8e827cc36ded641 Author: Andr? Draszik Date: Tue Oct 29 16:42:24 2019 +0000 nodejs: allow use of system c-ares (and make default) Use system c-ares via PACKAGECONFIG by default. So far, nodejs had been built using its embedded copy of c-ares, which we generally try to avoid, for the known reasons (independent updates, cve & license checks, etc). Notes: * otherwise nodejs uses its bundled version of c-ares * the PACKAGECONFIG variable is 'ares' so as to be in line with other uses of this (wget & curl recipes in OE core) Signed-off-by: Andr? Draszik Signed-off-by: Khem Raj So unless you actually meant to move c-ares from meta-networking to meta-oe.. > > > Signed-off-by: Martin Jansa > > > --- > > > meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb b/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb > > > index 6eb52c209a..9f91a3f4dd 100644 > > > --- a/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb > > > +++ b/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb > > > @@ -51,7 +51,7 @@ ARCHFLAGS_arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '- > > > GYP_DEFINES_append_mipsel = " mips_arch_variant='r1' " > > > ARCHFLAGS ?= "" > > > > > > -PACKAGECONFIG ??= "ares icu libuv zlib" > > > +PACKAGECONFIG ??= "icu libuv zlib" > > > PACKAGECONFIG[ares] = "--shared-cares,,c-ares" > > > PACKAGECONFIG[gyp] = ",,gyp-py2-native" > > > PACKAGECONFIG[icu] = "--with-intl=system-icu,--without-intl,icu" > > > -- > > > 2.20.1 > > > > > > -- > > > _______________________________________________ > > > Openembedded-devel mailing list > > > Openembedded-devel at lists.openembedded.org > > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: not available URL: From raj.khem at gmail.com Tue Feb 25 19:31:50 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 25 Feb 2020 11:31:50 -0800 Subject: [oe] [meta-oe][PATCH 1/2] nodejs: don't enable ares support by default In-Reply-To: <20200225192202.fjc5mxecs6c6oruj@jama> References: <20200225190710.3928-1-Martin.Jansa@gmail.com> <20200225192202.fjc5mxecs6c6oruj@jama> Message-ID: On 2/25/20 11:22 AM, Martin Jansa wrote: > On Tue, Feb 25, 2020 at 11:13:42AM -0800, Khem Raj wrote: >> On Tue, Feb 25, 2020 at 11:07 AM Martin Jansa wrote: >>> >>> * c-ares is in meta-networking and meta-oe doesn't depend on meta-networking >>> * fixes: >>> ERROR: Nothing PROVIDES 'c-ares' (but meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb DEPENDS on or otherwise requires it) >>> in builds without meta-networking >>> >> >> this patch makes me thing if c-ares is better suites for meta-networking > > ? s/meta-networking/meta-oe above > > This patch exists, because c-ares _is_ in meta-networking, while nodejs > which depends on it is in meta-oe. > >> >>> Signed-off-by: Martin Jansa >>> --- >>> meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb b/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb >>> index 6eb52c209a..9f91a3f4dd 100644 >>> --- a/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb >>> +++ b/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb >>> @@ -51,7 +51,7 @@ ARCHFLAGS_arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '- >>> GYP_DEFINES_append_mipsel = " mips_arch_variant='r1' " >>> ARCHFLAGS ?= "" >>> >>> -PACKAGECONFIG ??= "ares icu libuv zlib" >>> +PACKAGECONFIG ??= "icu libuv zlib" >>> PACKAGECONFIG[ares] = "--shared-cares,,c-ares" >>> PACKAGECONFIG[gyp] = ",,gyp-py2-native" >>> PACKAGECONFIG[icu] = "--with-intl=system-icu,--without-intl,icu" >>> -- >>> 2.20.1 >>> >>> -- >>> _______________________________________________ >>> Openembedded-devel mailing list >>> Openembedded-devel at lists.openembedded.org >>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: OpenPGP digital signature URL: From martin.jansa at gmail.com Tue Feb 25 19:36:15 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Tue, 25 Feb 2020 20:36:15 +0100 Subject: [oe] [meta-oe][meta-networking][PATCH] c-ares: move from meta-networking to meta-oe Message-ID: <20200225193615.5567-1-Martin.Jansa@gmail.com> * nodejs from meta-oe depends on this since: commit 76dd3dac1f1e67a5c44ad732b8e827cc36ded641 Author: Andr? Draszik Date: Tue Oct 29 16:42:24 2019 +0000 nodejs: allow use of system c-ares (and make default) Use system c-ares via PACKAGECONFIG by default. So far, nodejs had been built using its embedded copy of c-ares, which we generally try to avoid, for the known reasons (independent updates, cve & license checks, etc). Notes: * otherwise nodejs uses its bundled version of c-ares * the PACKAGECONFIG variable is 'ares' so as to be in line with other uses of this (wget & curl recipes in OE core) Signed-off-by: Andr? Draszik Signed-off-by: Khem Raj Signed-off-by: Martin Jansa --- .../recipes-core/packagegroups/packagegroup-meta-networking.bb | 2 +- meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb | 2 +- .../c-ares/c-ares/cmake-install-libcares.pc.patch | 0 .../recipes-support/c-ares/c-ares_1.15.0.bb | 0 4 files changed, 2 insertions(+), 2 deletions(-) rename {meta-networking => meta-oe}/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch (100%) rename {meta-networking => meta-oe}/recipes-support/c-ares/c-ares_1.15.0.bb (100%) diff --git a/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb b/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb index fa9bf2db52..103c99bb17 100644 --- a/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb +++ b/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb @@ -107,7 +107,7 @@ RDEPENDS_packagegroup-meta-networking-support = "\ tunctl dovecot ipvsadm stunnel chrony spice-protocol \ usbredir ntop wireshark tnftp lksctp-tools \ cim-schema-docs cim-schema-final cim-schema-exper \ - libmemcached smcroute libtevent ipcalc c-ares uftp \ + libmemcached smcroute libtevent ipcalc uftp \ ntimed linux-atm ssmtp openvpn rdma-core \ iftop aoetools tcpslice tcpdump libtalloc memcached nuttcp netcat \ netcat-openbsd fetchmail yp-tools ypbind-mt yp-tools \ diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb index d2e8ea4af8..4ae71b5c7b 100644 --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb +++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb @@ -238,7 +238,7 @@ 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 \ dstat eject enca epeg espeak fbset fbset-modes \ diff --git a/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch b/meta-oe/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch similarity index 100% rename from meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch rename to meta-oe/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch diff --git a/meta-networking/recipes-support/c-ares/c-ares_1.15.0.bb b/meta-oe/recipes-support/c-ares/c-ares_1.15.0.bb similarity index 100% rename from meta-networking/recipes-support/c-ares/c-ares_1.15.0.bb rename to meta-oe/recipes-support/c-ares/c-ares_1.15.0.bb -- 2.20.1 From scott.branden at broadcom.com Tue Feb 25 19:41:03 2020 From: scott.branden at broadcom.com (Scott Branden) Date: Tue, 25 Feb 2020 11:41:03 -0800 Subject: [oe] [meta-multimedia][PATCH v2] fdk-aac: add initial fdk-aac recipe Message-ID: <20200225194103.4581-1-scott.branden@broadcom.com> From: Mircea Carausu Add Fraunhofer FDK AAC Codec Library recipe. Signed-off-by: Mircea Carausu Signed-off-by: Scott Branden --- ...aunhofer_FDK_AAC_Codec_Library_for_Android | 92 +++++++++++++++++++ .../fdk-aac/fdk-aac_2.0.1.bb | 22 +++++ 2 files changed, 114 insertions(+) create mode 100644 meta-multimedia/licenses/Fraunhofer_FDK_AAC_Codec_Library_for_Android create mode 100644 meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb diff --git a/meta-multimedia/licenses/Fraunhofer_FDK_AAC_Codec_Library_for_Android b/meta-multimedia/licenses/Fraunhofer_FDK_AAC_Codec_Library_for_Android new file mode 100644 index 000000000..05b32bdea --- /dev/null +++ b/meta-multimedia/licenses/Fraunhofer_FDK_AAC_Codec_Library_for_Android @@ -0,0 +1,92 @@ +Software License for The Fraunhofer FDK AAC Codec Library for Android + +? Copyright 1995 - 2018 Fraunhofer-Gesellschaft zur F?rderung der angewandten +Forschung e.V. All rights reserved. + + 1. INTRODUCTION +The Fraunhofer FDK AAC Codec Library for Android ("FDK AAC Codec") is software +that implements the MPEG Advanced Audio Coding ("AAC") encoding and decoding +scheme for digital audio. This FDK AAC Codec software is intended to be used on +a wide variety of Android devices. + +AAC's HE-AAC and HE-AAC v2 versions are regarded as today's most efficient +general perceptual audio codecs. AAC-ELD is considered the best-performing +full-bandwidth communications codec by independent studies and is widely +deployed. AAC has been standardized by ISO and IEC as part of the MPEG +specifications. + +Patent licenses for necessary patent claims for the FDK AAC Codec (including +those of Fraunhofer) may be obtained through Via Licensing +(www.vialicensing.com) or through the respective patent owners individually for +the purpose of encoding or decoding bit streams in products that are compliant +with the ISO/IEC MPEG audio standards. Please note that most manufacturers of +Android devices already license these patent claims through Via Licensing or +directly from the patent owners, and therefore FDK AAC Codec software may +already be covered under those patent licenses when it is used for those +licensed purposes only. + +Commercially-licensed AAC software libraries, including floating-point versions +with enhanced sound quality, are also available from Fraunhofer. Users are +encouraged to check the Fraunhofer website for additional applications +information and documentation. + +2. COPYRIGHT LICENSE + +Redistribution and use in source and binary forms, with or without modification, +are permitted without payment of copyright license fees provided that you +satisfy the following conditions: + +You must retain the complete text of this software license in redistributions of +the FDK AAC Codec or your modifications thereto in source code form. + +You must retain the complete text of this software license in the documentation +and/or other materials provided with redistributions of the FDK AAC Codec or +your modifications thereto in binary form. You must make available free of +charge copies of the complete source code of the FDK AAC Codec and your +modifications thereto to recipients of copies in binary form. + +The name of Fraunhofer may not be used to endorse or promote products derived +from this library without prior written permission. + +You may not charge copyright license fees for anyone to use, copy or distribute +the FDK AAC Codec software or your modifications thereto. + +Your modified versions of the FDK AAC Codec must carry prominent notices stating +that you changed the software and the date of any change. For modified versions +of the FDK AAC Codec, the term "Fraunhofer FDK AAC Codec Library for Android" +must be replaced by the term "Third-Party Modified Version of the Fraunhofer FDK +AAC Codec Library for Android." + +3. NO PATENT LICENSE + +NO EXPRESS OR IMPLIED LICENSES TO ANY PATENT CLAIMS, including without +limitation the patents of Fraunhofer, ARE GRANTED BY THIS SOFTWARE LICENSE. +Fraunhofer provides no warranty of patent non-infringement with respect to this +software. + +You may use this FDK AAC Codec software or modifications thereto only for +purposes that are authorized by appropriate patent licenses. + +4. DISCLAIMER + +This FDK AAC Codec software is provided by Fraunhofer on behalf of the copyright +holders and contributors "AS IS" and WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, +including but not limited to the implied warranties of merchantability and +fitness for a particular purpose. IN NO EVENT SHALL THE COPYRIGHT HOLDER 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), arising in any way out of the use of +this software, even if advised of the possibility of such damage. + +5. CONTACT INFORMATION + +Fraunhofer Institute for Integrated Circuits IIS +Attention: Audio and Multimedia Departments - FDK AAC LL +Am Wolfsmantel 33 +91058 Erlangen, Germany + +www.iis.fraunhofer.de/amm +amm-info at iis.fraunhofer.de + diff --git a/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb b/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb new file mode 100644 index 000000000..d7911681c --- /dev/null +++ b/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb @@ -0,0 +1,22 @@ +SUMMARY = "FDK-AAC audio codec" + +DESCRIPTION = "The Fraunhofer FDK AAC Codec Library for Android \ +(\"FDK AAC Codec\") is software that implements the MPEG \ +Advanced Audio Coding (\"AAC\") encoding and decoding scheme \ +for digital audio." + +HOMEPAGE = "https://www.iis.fraunhofer.de/en/ff/amm/impl.html" + +LICENSE = "Fraunhofer_FDK_AAC_Codec_Library_for_Android" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://NOTICE;md5=5985e1e12f4afa710d64ed7bfd291875" + +SRC_URI = "git://github.com/mstorsjo/fdk-aac.git;protocol=git;branch=master" +SRCREV = "d387d3b6ed79ff9a82c60440bdd86e6e5e324bec" + +S = "${WORKDIR}/git" + +SRC_URI[md5sum] = "fef453b5d6ee28ff302c600b8cded3e7" +SRC_URI[sha256sum] = "07c2a64b098eb48b2e9d729d5e778c08f7d22f28adc8da7c3f92c58da1cbbd8e" + +inherit autotools -- 2.17.1 From martin.jansa at gmail.com Tue Feb 25 21:25:56 2020 From: martin.jansa at gmail.com (Martin Jansa) Date: Tue, 25 Feb 2020 22:25:56 +0100 Subject: [oe] [oe-commits] [meta-openembedded] 09/10: c-ares: move from meta-networking to meta-oe In-Reply-To: <20200225212222.A6EF3232AA5@git.openembedded.org> References: <158266574202.15681.9378221674340872770@git.openembedded.org> <20200225212222.A6EF3232AA5@git.openembedded.org> Message-ID: With this one included, you can drop "07/10: nodejs: don't enable ares support by default" On Tue, Feb 25, 2020 at 10:22 PM wrote: > This is an automated email from the git hooks/post-receive script. > > khem pushed a commit to branch master-next > in repository meta-openembedded. > > commit d15fd2cfb6bcd2472a8b346cc6fe4bc070675d13 > Author: Martin Jansa > AuthorDate: Tue Feb 25 20:36:15 2020 +0100 > > c-ares: move from meta-networking to meta-oe > > * nodejs from meta-oe depends on this since: > commit 76dd3dac1f1e67a5c44ad732b8e827cc36ded641 > Author: Andr? Draszik > Date: Tue Oct 29 16:42:24 2019 +0000 > > nodejs: allow use of system c-ares (and make default) > > Use system c-ares via PACKAGECONFIG by default. So far, > nodejs had been built using its embedded copy of c-ares, > which we generally try to avoid, for the known reasons > (independent updates, cve & license checks, etc). > > Notes: > * otherwise nodejs uses its bundled version of c-ares > * the PACKAGECONFIG variable is 'ares' so as to be in > line with other uses of this (wget & curl recipes in > OE core) > > Signed-off-by: Andr? Draszik > Signed-off-by: Khem Raj > > Signed-off-by: Martin Jansa > Signed-off-by: Khem Raj > --- > .../recipes-core/packagegroups/packagegroup-meta-networking.bb > | 2 +- > meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > | 2 +- > .../recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch | > 0 > {meta-networking => meta-oe}/recipes-support/c-ares/c-ares_1.15.0.bb > | 0 > 4 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/meta-networking/recipes-core/packagegroups/ > packagegroup-meta-networking.bb > b/meta-networking/recipes-core/packagegroups/ > packagegroup-meta-networking.bb > index fa9bf2d..103c99b 100644 > --- a/meta-networking/recipes-core/packagegroups/ > packagegroup-meta-networking.bb > +++ b/meta-networking/recipes-core/packagegroups/ > packagegroup-meta-networking.bb > @@ -107,7 +107,7 @@ RDEPENDS_packagegroup-meta-networking-support = "\ > tunctl dovecot ipvsadm stunnel chrony spice-protocol \ > usbredir ntop wireshark tnftp lksctp-tools \ > cim-schema-docs cim-schema-final cim-schema-exper \ > - libmemcached smcroute libtevent ipcalc c-ares uftp \ > + libmemcached smcroute libtevent ipcalc uftp \ > ntimed linux-atm ssmtp openvpn rdma-core \ > iftop aoetools tcpslice tcpdump libtalloc memcached nuttcp netcat \ > netcat-openbsd fetchmail yp-tools ypbind-mt yp-tools \ > diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > index 0bda946..d096539 100644 > --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > +++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > @@ -238,7 +238,7 @@ 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 \ > dstat eject enca epeg espeak fbset fbset-modes \ > diff --git > a/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch > b/meta-oe/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch > similarity index 100% > rename from > meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch > rename to > meta-oe/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch > diff --git a/meta-networking/recipes-support/c-ares/c-ares_1.15.0.bb > b/meta-oe/recipes-support/c-ares/c-ares_1.15.0.bb > similarity index 100% > rename from meta-networking/recipes-support/c-ares/c-ares_1.15.0.bb > rename to meta-oe/recipes-support/c-ares/c-ares_1.15.0.bb > > -- > To stop receiving notification emails like this one, please contact > the administrator of this repository. > -- > _______________________________________________ > Openembedded-commits mailing list > Openembedded-commits at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-commits > From jonathan.richardson at broadcom.com Tue Feb 25 22:19:04 2020 From: jonathan.richardson at broadcom.com (Jonathan Richardson) Date: Tue, 25 Feb 2020 14:19:04 -0800 Subject: [oe] [meta-oe][PATCH 1/1] open-lldp: Add initial version 1.0.1 Message-ID: <20200225221904.97152-1-jonathan.richardson@broadcom.com> Open-LLDP provides a Link Layer Discovery Protocol agent that supports DCB (Data Center Bridging). The tc utility from iproute is needed to manipulate traffic control settings in the kernel. Signed-off-by: Jonathan Richardson --- ...tion-to-disable-installation-of-syst.patch | 57 +++++++++++++++++++ .../openlldp/openlldp_1.0.1.bb | 37 ++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch create mode 100644 meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb diff --git a/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch new file mode 100644 index 000000000..86c9f4463 --- /dev/null +++ b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch @@ -0,0 +1,57 @@ +From 1c1e01b2414ca5b3cf5a21b6e6389f9ca82fd7e9 Mon Sep 17 00:00:00 2001 +From: Jonathan Richardson +Date: Fri, 6 Apr 2018 10:49:04 -0700 +Subject: [PATCH 1/1] autotools: Add option to disable installation of systemd + conf files + +Add option to configure.ac to enable or disable install of systemd conf +files. If --with-systemdsystemunitdir is passed to configure then the +files will be installed to the provided directory. If the option isn't +provided then the value is determined from the systemd pkgconfig file, +if found in PKG_CONFIG_PATH. + +This change is required because Makefile.am always installed the files +to a hard coded path that couldn't be changed. +--- + Makefile.am | 3 ++- + configure.ac | 9 +++++++++ + 2 files changed, 11 insertions(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index 551d4c7..5491c61 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -133,8 +133,9 @@ install-data-hook: installdirs-local + pkgconfigdir = ${libdir}/pkgconfig + pkgconfig_DATA = lldpad.pc liblldp_clif.pc + +-systemdsystemunitdir = $(prefix)/lib/systemd/system ++if HAVE_SYSTEMD + dist_systemdsystemunit_DATA = lldpad.service lldpad.socket ++endif + + bashcompletiondir = $(sysconfdir)/bash_completion.d + dist_bashcompletion_DATA = contrib/bash_completion/lldpad contrib/bash_completion/lldptool +diff --git a/configure.ac b/configure.ac +index 0667446..f75f433 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -95,6 +95,15 @@ AC_TYPE_UINT16_T + AC_TYPE_UINT32_T + AC_TYPE_UINT8_T + ++# Support for systemd unit files. ++AC_ARG_WITH([systemdsystemunitdir], ++ AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]), ++ [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]) ++if test "x$with_systemdsystemunitdir" != xno; then ++ AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) ++fi ++AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ]) ++ + AC_CONFIG_FILES([Makefile include/version.h lldpad.spec lldpad.pc liblldp_clif.pc]) + AC_CONFIG_MACRO_DIR([m4]) + AC_OUTPUT +-- +1.9.1 + diff --git a/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb b/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb new file mode 100644 index 000000000..7fa3429cc --- /dev/null +++ b/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb @@ -0,0 +1,37 @@ +SUMMARY = "Open-LLDP" +DESCRIPTION = "Link Layer Discovery Protocol for Linux that includes support for DCBX" +HOMEPAGE = "http://open-lldp.org/start" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=8c2bc283e65df398ced5f5b747e78162" + +S = "${WORKDIR}/git" + +inherit pkgconfig autotools +inherit ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager', 'systemd', 'systemd', '', d)} + +DEPENDS = "libnl libconfig readline" + +SRCREV = "36d729de7ce5b56cf061d94d610cf0510154820c" +SRC_URI = "git://github.com/intel/openlldp.git;protocol=https;branch=master" +SRC_URI += "file://0001-autotools-Add-option-to-disable-installation-of-syst.patch" + +# Even though .ac allows disabling -Werror, Makefile.am adds it to AM_CFLAGS +# causing it to always be enabled. There are warnings so disable it. +TARGET_CFLAGS += "-Wno-error" + +# configure.ac generates version.h from include/version.h.in but autotools puts +# build artefacts in $B, not $S and the header can't be found. To avoid +# inheriting autotools-brokensep and messing up the source dir just tell Makefile +# where it is. +TARGET_CFLAGS += "-I ${B}/include" + +# Enable install of systemd conf files. +EXTRA_OECONF += "${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager', 'systemd', '--with-systemdsystemunitdir=${systemd_system_unitdir}', '', d)}" + +SYSTEMD_SERVICE_${PN} = "lldpad.service lldpad.socket" + +# To enable service at boot set to enable in local.conf. +SYSTEMD_AUTO_ENABLE ?= "disable" + +RRECOMMENDS_${PN} = "iproute2-tc" -- 2.17.1 From changqing.li at windriver.com Wed Feb 26 01:48:08 2020 From: changqing.li at windriver.com (Changqing Li) Date: Wed, 26 Feb 2020 09:48:08 +0800 Subject: [oe] [meta-webserver][PATCH] nginx.service: sleep 0.1 after nginx start In-Reply-To: <23aee0bf-a9f4-b002-8277-615dfa603b04@gmail.com> References: <1582544446-241334-1-git-send-email-changqing.li@windriver.com> <23aee0bf-a9f4-b002-8277-615dfa603b04@gmail.com> Message-ID: <2459deea-b48d-a24b-17b7-7965d5b72a02@windriver.com> On 2/25/20 12:49 PM, Khem Raj wrote: > > > On 2/24/20 7:53 PM, Changqing Li wrote: >> >> On 2/25/20 12:40 AM, Khem Raj wrote: >>> On Mon, Feb 24, 2020 at 3:41 AM? wrote: >>>> From: Changqing Li >>>> >>>> Fix error info: >>>> nginx.service: failed to parse pid from file /run/nginx/nginx.pid: >>>> invalid argument >>>> >>>> Signed-off-by: Changqing Li >>>> --- >>>> ? meta-webserver/recipes-httpd/nginx/files/nginx.service | 1 + >>>> ? 1 file changed, 1 insertion(+) >>>> >>>> diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx.service >>>> b/meta-webserver/recipes-httpd/nginx/files/nginx.service >>>> index 9a6ca96..65c7752 100644 >>>> --- a/meta-webserver/recipes-httpd/nginx/files/nginx.service >>>> +++ b/meta-webserver/recipes-httpd/nginx/files/nginx.service >>>> @@ -7,6 +7,7 @@ Type=forking >>>> ? PIDFile=/run/nginx/nginx.pid >>>> ? ExecStartPre=@SBINDIR@/nginx -t >>>> ? ExecStart=@SBINDIR@/nginx >>>> +ExecStartPost=/bin/sleep 0.1 >>> I dont thiink we should be adding sleeps instead try to lock the >>> dependencies >>> so it happens correctly. or perhaps change the logic in code itself if >>> dependencies >>> can not handle it. >> >> error info: "nginx.service: failed to parse pid from file >> /run/nginx/nginx.pid: invalid argument" is caused by race condition >> between >> >> systemd and nginx.? And this error will not caused problem except >> scary log >> >> This should be a known problem: >> https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864 >> >> other distro like ubuntu, fedora, should also have this problem, I >> can google people report this error on different distro. > > I do not question the problem but the solution, there have been > different solutions posted to ml e.g. > > https://mailman.nginx.org/pipermail/nginx-devel/2016-February/007961.html > > or ubuntu fix > > https://github.com/aroth-arsoft/pkg-nginx/blob/master/debian/patches/nginx-fix-pidfile.patch > > > perhaps you should try one of these patches Hi, Khem I found that both V1 and V2 are on master-next now,? please remember to drop the V1 when merge to master, thanks. > >> >> ubuntu 16.04 use this as a workaround. >> >>>> ? ExecReload=@SBINDIR@/nginx -s reload >>>> ? ExecStop=@BASE_BINDIR@/kill -s QUIT $MAINPID >>>> ? PrivateTmp=true >>>> -- >>>> 2.7.4 >>>> >>>> -- >>>> _______________________________________________ >>>> Openembedded-devel mailing list >>>> Openembedded-devel at lists.openembedded.org >>>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From raj.khem at gmail.com Wed Feb 26 01:58:29 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 25 Feb 2020 17:58:29 -0800 Subject: [oe] [meta-webserver][PATCH] nginx.service: sleep 0.1 after nginx start In-Reply-To: <2459deea-b48d-a24b-17b7-7965d5b72a02@windriver.com> References: <1582544446-241334-1-git-send-email-changqing.li@windriver.com> <23aee0bf-a9f4-b002-8277-615dfa603b04@gmail.com> <2459deea-b48d-a24b-17b7-7965d5b72a02@windriver.com> Message-ID: On 2/25/20 5:48 PM, Changqing Li wrote: > > On 2/25/20 12:49 PM, Khem Raj wrote: >> >> >> On 2/24/20 7:53 PM, Changqing Li wrote: >>> >>> On 2/25/20 12:40 AM, Khem Raj wrote: >>>> On Mon, Feb 24, 2020 at 3:41 AM? wrote: >>>>> From: Changqing Li >>>>> >>>>> Fix error info: >>>>> nginx.service: failed to parse pid from file /run/nginx/nginx.pid: >>>>> invalid argument >>>>> >>>>> Signed-off-by: Changqing Li >>>>> --- >>>>> ? meta-webserver/recipes-httpd/nginx/files/nginx.service | 1 + >>>>> ? 1 file changed, 1 insertion(+) >>>>> >>>>> diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx.service >>>>> b/meta-webserver/recipes-httpd/nginx/files/nginx.service >>>>> index 9a6ca96..65c7752 100644 >>>>> --- a/meta-webserver/recipes-httpd/nginx/files/nginx.service >>>>> +++ b/meta-webserver/recipes-httpd/nginx/files/nginx.service >>>>> @@ -7,6 +7,7 @@ Type=forking >>>>> ? PIDFile=/run/nginx/nginx.pid >>>>> ? ExecStartPre=@SBINDIR@/nginx -t >>>>> ? ExecStart=@SBINDIR@/nginx >>>>> +ExecStartPost=/bin/sleep 0.1 >>>> I dont thiink we should be adding sleeps instead try to lock the >>>> dependencies >>>> so it happens correctly. or perhaps change the logic in code itself if >>>> dependencies >>>> can not handle it. >>> >>> error info: "nginx.service: failed to parse pid from file >>> /run/nginx/nginx.pid: invalid argument" is caused by race condition >>> between >>> >>> systemd and nginx.? And this error will not caused problem except >>> scary log >>> >>> This should be a known problem: >>> https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864 >>> >>> other distro like ubuntu, fedora, should also have this problem, I >>> can google people report this error on different distro. >> >> I do not question the problem but the solution, there have been >> different solutions posted to ml e.g. >> >> https://mailman.nginx.org/pipermail/nginx-devel/2016-February/007961.html >> >> or ubuntu fix >> >> https://github.com/aroth-arsoft/pkg-nginx/blob/master/debian/patches/nginx-fix-pidfile.patch >> >> >> perhaps you should try one of these patches > > Hi, Khem > > I found that both V1 and V2 are on master-next now,? please remember to > drop the V1 when merge to master, thanks. > thanks, I needed to refresh master-next queue anyway, I will drop this at that time >> >>> >>> ubuntu 16.04 use this as a workaround. >>> >>>>> ? ExecReload=@SBINDIR@/nginx -s reload >>>>> ? ExecStop=@BASE_BINDIR@/kill -s QUIT $MAINPID >>>>> ? PrivateTmp=true >>>>> --? >>>>> 2.7.4 >>>>> >>>>> --? >>>>> _______________________________________________ >>>>> Openembedded-devel mailing list >>>>> Openembedded-devel at lists.openembedded.org >>>>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel >> From raj.khem at gmail.com Wed Feb 26 02:00:05 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 25 Feb 2020 18:00:05 -0800 Subject: [oe] [oe-commits] [meta-openembedded] 09/10: c-ares: move from meta-networking to meta-oe In-Reply-To: References: <158266574202.15681.9378221674340872770@git.openembedded.org> <20200225212222.A6EF3232AA5@git.openembedded.org> Message-ID: <81add210-35eb-1ecf-2528-c0e534595f4d@gmail.com> On 2/25/20 1:25 PM, Martin Jansa wrote: > With this?one included, you can drop "07/10: nodejs: don't enable ares > support by default" > yes it will be thanks > On Tue, Feb 25, 2020 at 10:22 PM > wrote: > > This is an automated email from the git hooks/post-receive script. > > khem pushed a commit to branch master-next > in repository meta-openembedded. > > commit d15fd2cfb6bcd2472a8b346cc6fe4bc070675d13 > Author: Martin Jansa > > AuthorDate: Tue Feb 25 20:36:15 2020 +0100 > > ? ? c-ares: move from meta-networking to meta-oe > > ? ? * nodejs from meta-oe depends on this since: > ? ? ? commit 76dd3dac1f1e67a5c44ad732b8e827cc36ded641 > ? ? ? Author: Andr? Draszik > > ? ? ? Date:? ?Tue Oct 29 16:42:24 2019 +0000 > > ? ? ? ? nodejs: allow use of system c-ares (and make default) > > ? ? ? ? Use system c-ares via PACKAGECONFIG by default. So far, > ? ? ? ? nodejs had been built using its embedded copy of c-ares, > ? ? ? ? which we generally try to avoid, for the known reasons > ? ? ? ? (independent updates, cve & license checks, etc). > > ? ? ? ? Notes: > ? ? ? ? * otherwise nodejs uses its bundled version of c-ares > ? ? ? ? * the PACKAGECONFIG variable is 'ares' so as to be in > ? ? ? ? ? line with other uses of this (wget & curl recipes in > ? ? ? ? ? OE core) > > ? ? ? ? Signed-off-by: Andr? Draszik > > ? ? ? ? Signed-off-by: Khem Raj > > > ? ? Signed-off-by: Martin Jansa > > ? ? Signed-off-by: Khem Raj > > --- > ?.../recipes-core/packagegroups/packagegroup-meta-networking.bb > ? ? ? ? ? | 2 +- > ?meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > ? ? ? ? ? ? ? | 2 +- > ?.../recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch? > ? ? ?| 0 > ?{meta-networking => > meta-oe}/recipes-support/c-ares/c-ares_1.15.0.bb > ? ? | 0 > ?4 files changed, 2 insertions(+), 2 deletions(-) > > diff --git > a/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb > > b/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb > > index fa9bf2d..103c99b 100644 > --- > a/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb > > +++ > b/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb > > @@ -107,7 +107,7 @@ RDEPENDS_packagegroup-meta-networking-support = "\ > ? ? ?tunctl dovecot ipvsadm stunnel chrony spice-protocol \ > ? ? ?usbredir ntop wireshark tnftp lksctp-tools \ > ? ? ?cim-schema-docs cim-schema-final cim-schema-exper \ > -? ? libmemcached smcroute libtevent ipcalc c-ares uftp \ > +? ? libmemcached smcroute libtevent ipcalc uftp \ > ? ? ?ntimed linux-atm ssmtp openvpn rdma-core \ > ? ? ?iftop aoetools tcpslice tcpdump libtalloc memcached nuttcp netcat \ > ? ? ?netcat-openbsd fetchmail yp-tools ypbind-mt yp-tools \ > diff --git > a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > > b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > > index 0bda946..d096539 100644 > --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > > +++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > > @@ -238,7 +238,7 @@ 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 \ > ? ? ?dstat eject enca epeg espeak fbset fbset-modes \ > diff --git > a/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch > b/meta-oe/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch > similarity index 100% > rename from > meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch > rename to > meta-oe/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch > diff --git a/meta-networking/recipes-support/c-ares/c-ares_1.15.0.bb > > b/meta-oe/recipes-support/c-ares/c-ares_1.15.0.bb > > similarity index 100% > rename from meta-networking/recipes-support/c-ares/c-ares_1.15.0.bb > > rename to meta-oe/recipes-support/c-ares/c-ares_1.15.0.bb > > > -- > To stop receiving notification emails like this one, please contact > the administrator of this repository. > -- > _______________________________________________ > Openembedded-commits mailing list > Openembedded-commits at lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-commits > From zhengrq.fnst at cn.fujitsu.com Wed Feb 26 03:06:53 2020 From: zhengrq.fnst at cn.fujitsu.com (Zheng, Ruoqin) Date: Wed, 26 Feb 2020 03:06:53 +0000 Subject: [oe] [meta-oe][PATCH v2] libharu: New recipe In-Reply-To: <1582104095-88658-1-git-send-email-zhengrq.fnst@cn.fujitsu.com> References: <1582104095-88658-1-git-send-email-zhengrq.fnst@cn.fujitsu.com> Message-ID: <31c4ddda013c4fddb0a8010d9013c8fd@G08CNEXMBPEKD06.g08.fujitsu.local> Ping -------------------------------------------------- Zheng Ruoqin Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST) ADDR.: No.6 Wenzhu Road, Software Avenue, Nanjing, 210012, China MAIL : zhengrq.fnst at cn.fujistu.com > -----Original Message----- > From: Zheng, Ruoqin/? ?? > Sent: Wednesday, February 19, 2020 5:22 PM > To: openembedded-devel at lists.openembedded.org > Cc: Zheng, Ruoqin/? ?? > Subject: [oe][meta-oe][PATCH v2] libharu: New recipe > > libHaru is a library for generating PDF files. > > Signed-off-by: Zheng Ruoqin > --- > .../libharu/libharu-RELEASE_2_3_0_cmake.patch | 52 > ++++++++++++++++++++++ > meta-oe/recipes-support/libharu/libharu_2.3.0.bb | 24 ++++++++++ > 2 files changed, 76 insertions(+) > create mode 100644 meta-oe/recipes-support/libharu/libharu/libharu- > RELEASE_2_3_0_cmake.patch > create mode 100644 meta-oe/recipes-support/libharu/libharu_2.3.0.bb > > diff --git a/meta-oe/recipes-support/libharu/libharu/libharu- > RELEASE_2_3_0_cmake.patch b/meta-oe/recipes- > support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch > new file mode 100644 > index 0000000..332be1b > --- /dev/null > +++ b/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmak > +++ e.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 > + > +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-oe/recipes-support/libharu/libharu_2.3.0.bb b/meta- > oe/recipes-support/libharu/libharu_2.3.0.bb > new file mode 100644 > index 0000000..359f615 > --- /dev/null > +++ b/meta-oe/recipes-support/libharu/libharu_2.3.0.bb > @@ -0,0 +1,24 @@ > +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 = > "https://github.com/libharu/${BPN}/archive/RELEASE_${@d.getVar('PV').replac > e('.','_')}.tar.gz \ > + file://libharu-RELEASE_2_3_0_cmake.patch \ > + " > + > +SRC_URI[md5sum] = "4f916aa49c3069b3a10850013c507460" > +SRC_URI[sha256sum] = > "8f9e68cc5d5f7d53d1bc61a1ed876add1faf4f91070dbc360d8b259f46d9a4d2" > + > +S = "${WORKDIR}/${BPN}-RELEASE_${@d.getVar('PV').replace('.','_')}" > + > +inherit cmake > +DEPENDS += "libpng zlib" > + > +do_install_append() { > + mkdir -p ${D}/${datadir}/libharu > + mv ${D}/libharu ${D}/${datadir} > +} > -- > 2.7.4 From raj.khem at gmail.com Wed Feb 26 03:27:10 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 25 Feb 2020 19:27:10 -0800 Subject: [oe] [meta-oe][PATCH 1/1] open-lldp: Add initial version 1.0.1 In-Reply-To: <20200225221904.97152-1-jonathan.richardson@broadcom.com> References: <20200225221904.97152-1-jonathan.richardson@broadcom.com> Message-ID: <84740cf1-89ad-5f5d-c8e7-cbf40e02a160@gmail.com> Hi Jonathan On 2/25/20 2:19 PM, Jonathan Richardson via Openembedded-devel wrote: > Open-LLDP provides a Link Layer Discovery Protocol agent that supports > DCB (Data Center Bridging). The tc utility from iproute is needed to > manipulate traffic control settings in the kernel. > build on musl fails and finds a problem https://errors.yoctoproject.org/Errors/Details/392758/ include/clif.h:186:1: error: unknown type name 'pid_t' this file should either include or if its already including unistd.h then use -D_XOPEN_SOURCE=700 in cflags might fix the issue. > Signed-off-by: Jonathan Richardson > --- > ...tion-to-disable-installation-of-syst.patch | 57 +++++++++++++++++++ > .../openlldp/openlldp_1.0.1.bb | 37 ++++++++++++ > 2 files changed, 94 insertions(+) > create mode 100644 meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch > create mode 100644 meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb > > diff --git a/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch > new file mode 100644 > index 000000000..86c9f4463 > --- /dev/null > +++ b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch > @@ -0,0 +1,57 @@ > +From 1c1e01b2414ca5b3cf5a21b6e6389f9ca82fd7e9 Mon Sep 17 00:00:00 2001 > +From: Jonathan Richardson > +Date: Fri, 6 Apr 2018 10:49:04 -0700 > +Subject: [PATCH 1/1] autotools: Add option to disable installation of systemd > + conf files > + > +Add option to configure.ac to enable or disable install of systemd conf > +files. If --with-systemdsystemunitdir is passed to configure then the > +files will be installed to the provided directory. If the option isn't > +provided then the value is determined from the systemd pkgconfig file, > +if found in PKG_CONFIG_PATH. > + > +This change is required because Makefile.am always installed the files > +to a hard coded path that couldn't be changed. > +--- > + Makefile.am | 3 ++- > + configure.ac | 9 +++++++++ > + 2 files changed, 11 insertions(+), 1 deletion(-) > + > +diff --git a/Makefile.am b/Makefile.am > +index 551d4c7..5491c61 100644 > +--- a/Makefile.am > ++++ b/Makefile.am > +@@ -133,8 +133,9 @@ install-data-hook: installdirs-local > + pkgconfigdir = ${libdir}/pkgconfig > + pkgconfig_DATA = lldpad.pc liblldp_clif.pc > + > +-systemdsystemunitdir = $(prefix)/lib/systemd/system > ++if HAVE_SYSTEMD > + dist_systemdsystemunit_DATA = lldpad.service lldpad.socket > ++endif > + > + bashcompletiondir = $(sysconfdir)/bash_completion.d > + dist_bashcompletion_DATA = contrib/bash_completion/lldpad contrib/bash_completion/lldptool > +diff --git a/configure.ac b/configure.ac > +index 0667446..f75f433 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -95,6 +95,15 @@ AC_TYPE_UINT16_T > + AC_TYPE_UINT32_T > + AC_TYPE_UINT8_T > + > ++# Support for systemd unit files. > ++AC_ARG_WITH([systemdsystemunitdir], > ++ AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]), > ++ [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]) > ++if test "x$with_systemdsystemunitdir" != xno; then > ++ AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) > ++fi > ++AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ]) > ++ > + AC_CONFIG_FILES([Makefile include/version.h lldpad.spec lldpad.pc liblldp_clif.pc]) > + AC_CONFIG_MACRO_DIR([m4]) > + AC_OUTPUT > +-- > +1.9.1 > + > diff --git a/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb b/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb > new file mode 100644 > index 000000000..7fa3429cc > --- /dev/null > +++ b/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb > @@ -0,0 +1,37 @@ > +SUMMARY = "Open-LLDP" > +DESCRIPTION = "Link Layer Discovery Protocol for Linux that includes support for DCBX" > +HOMEPAGE = "http://open-lldp.org/start" > + > +LICENSE = "GPLv2" > +LIC_FILES_CHKSUM = "file://COPYING;md5=8c2bc283e65df398ced5f5b747e78162" > + > +S = "${WORKDIR}/git" > + > +inherit pkgconfig autotools > +inherit ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager', 'systemd', 'systemd', '', d)} > + > +DEPENDS = "libnl libconfig readline" > + > +SRCREV = "36d729de7ce5b56cf061d94d610cf0510154820c" > +SRC_URI = "git://github.com/intel/openlldp.git;protocol=https;branch=master" > +SRC_URI += "file://0001-autotools-Add-option-to-disable-installation-of-syst.patch" > + > +# Even though .ac allows disabling -Werror, Makefile.am adds it to AM_CFLAGS > +# causing it to always be enabled. There are warnings so disable it. > +TARGET_CFLAGS += "-Wno-error" > + > +# configure.ac generates version.h from include/version.h.in but autotools puts > +# build artefacts in $B, not $S and the header can't be found. To avoid > +# inheriting autotools-brokensep and messing up the source dir just tell Makefile > +# where it is. > +TARGET_CFLAGS += "-I ${B}/include" > + > +# Enable install of systemd conf files. > +EXTRA_OECONF += "${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager', 'systemd', '--with-systemdsystemunitdir=${systemd_system_unitdir}', '', d)}" > + > +SYSTEMD_SERVICE_${PN} = "lldpad.service lldpad.socket" > + > +# To enable service at boot set to enable in local.conf. > +SYSTEMD_AUTO_ENABLE ?= "disable" > + > +RRECOMMENDS_${PN} = "iproute2-tc" > From raj.khem at gmail.com Wed Feb 26 06:24:18 2020 From: raj.khem at gmail.com (Khem Raj) Date: Tue, 25 Feb 2020 22:24:18 -0800 Subject: [oe] [meta-oe][PATCH v2] libharu: New recipe In-Reply-To: <1582104095-88658-1-git-send-email-zhengrq.fnst@cn.fujitsu.com> References: <1582104095-88658-1-git-send-email-zhengrq.fnst@cn.fujitsu.com> Message-ID: On Wed, Feb 19, 2020 at 1:23 AM Zheng Ruoqin wrote: > > libHaru is a library for generating PDF files. > > Signed-off-by: Zheng Ruoqin > --- > .../libharu/libharu-RELEASE_2_3_0_cmake.patch | 52 ++++++++++++++++++++++ > meta-oe/recipes-support/libharu/libharu_2.3.0.bb | 24 ++++++++++ > 2 files changed, 76 insertions(+) > create mode 100644 meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch > create mode 100644 meta-oe/recipes-support/libharu/libharu_2.3.0.bb > > diff --git a/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch b/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch > new file mode 100644 > index 0000000..332be1b > --- /dev/null > +++ b/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 > + > +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-oe/recipes-support/libharu/libharu_2.3.0.bb b/meta-oe/recipes-support/libharu/libharu_2.3.0.bb > new file mode 100644 > index 0000000..359f615 > --- /dev/null > +++ b/meta-oe/recipes-support/libharu/libharu_2.3.0.bb > @@ -0,0 +1,24 @@ > +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 = "https://github.com/libharu/${BPN}/archive/RELEASE_${@d.getVar('PV').replace('.','_')}.tar.gz \ Please use a hardcoded SRCREV or release in SRC_URI, archives are known to change under the rug. WARNING: libharu-2.3.0-r0 do_package_qa: QA Issue: libharu: SRC_URI uses unstable GitHub archives [src-uri-bad] > + file://libharu-RELEASE_2_3_0_cmake.patch \ > + " > + > +SRC_URI[md5sum] = "4f916aa49c3069b3a10850013c507460" > +SRC_URI[sha256sum] = "8f9e68cc5d5f7d53d1bc61a1ed876add1faf4f91070dbc360d8b259f46d9a4d2" > + > +S = "${WORKDIR}/${BPN}-RELEASE_${@d.getVar('PV').replace('.','_')}" > + > +inherit cmake > +DEPENDS += "libpng zlib" > + > +do_install_append() { > + mkdir -p ${D}/${datadir}/libharu > + mv ${D}/libharu ${D}/${datadir} > +} > -- > 2.7.4 > > > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From zboszor at pr.hu Wed Feb 26 08:49:15 2020 From: zboszor at pr.hu (=?UTF-8?B?QsO2c3rDtnJtw6lueWkgWm9sdMOhbg==?=) Date: Wed, 26 Feb 2020 09:49:15 +0100 Subject: [oe] Trying to resolve build-time cyclic dependency between packages In-Reply-To: <27501214-4FE0-4D4B-8E0F-797B153B9988@gmail.com> References: <55B8D485.7080207@pr.hu> <27501214-4FE0-4D4B-8E0F-797B153B9988@gmail.com> Message-ID: <9e16757b-6678-8be6-9a2c-6d05eb54a500@pr.hu> Hi, I am reviving this old idea with Zeus. I have implemented the idea in an ALMOST satisfactory way, tested with Mesa 20.0.0. Side note: Mesa 19.3 and 20.0 needs TOOLCHAIN="gcc" in Zeus, otherwise linker errors occur. See: https://gitlab.freedesktop.org/mesa/mesa/issues/2533 Mesa doesn't link to libva even with meson -Dgallium-va=true. It only needs the libva.pc pkgconfig file and the headers from libva to build its VA state tracker so the circular dependency is not that hard to solve. I have this new recipe called libva-headers now that is a fork of the libva recipe and just deletes the libraries in do_install_append. My Mesa recipe addendum has this line plus PACKAGECONFIG has "va": PACKAGECONFIG[va] = "-Dgallium-va=true,-Dgallium-va=false,libva-headers" Now, building libva is happy without the warning about libva.so is shipped by libva-headers (or libva-noglx in the previous incarnation) but now marked as shipped by libva because it was built later. There is another problem now: anything that uses libva as dependency, like intel-vaapi-driver, implicitly pulls in mesa and then libva-headers so there is a clash in prepare-sysroot between libva and libva-headers because they still ship identical headers and pkgconfig files. My current solution to the problem is to patch staging.bbclass to handle a new variable called EXCLUDE_DEPS but a line like this below needs to be added to all recipes that depends on libva, so it is quite intrusive for now. EXCLUDE_DEPS = "libva-headers" I am looking into storing data in "sstate", so libva-headers would add itself into a new class of packages that are not added to recipe-sysroot unless it is in DEPENDS explicitly. My question is: is there a generic framework to do this already? This would allow me to not modify other recipes and may alsoserve other recipes with circular dependencies. The end goal is to allow Chromium to be built with use_vaapi=true now that meta-browser has version 79 that includes the VAAPI patches. The current solution with setting EXCLUDE_DEPS already does this but as I said, it's not clean enough. Best regards, Zolt?n B?sz?rm?nyi 2015. 08. 09. 0:14 keltez?ssel, Khem Raj ?rta: > >> On Jul 29, 2015, at 6:26 AM, Boszormenyi Zoltan wrote: >> >> Hi, >> >> I have a customized Mesa 10.6.3 package recipe which depends on libva >> to be able to build its mesa-va-driver subpackage, but libva also depends >> on Mesa to support GLX. >> >> Previously, I simply created a libva-noglx package that builds libva >> with --disable-glx that Mesa depend on and the "real" libva package can >> depend on Mesa. >> >> But since I also have to produce an SDK image with all the *-dev packages, >> creating such an initial image with bitbake fails because of a conflict >> in the dependency chain: libva-dev -> mesa-dev -> libva-noglx-dev. >> > > since libva-noglx is sort of a bootstrap package, you could empty/delete out the content > its puts into -dev packages and conflict will be gone. Other option is that you share > the content of -dev package in exclusive manner between libva and libva-noglx such > that they don?t package duplicate files > >> I have come up with the attached bbclass (based on Yocto 1.6) that >> now Mesa can inherit and that patches the RDEPENDS / RRECOMMENDS >> variables according to externally set variables. The comment at >> the beginning of the file explains how to use it. >> >> This pushes the cyclic dependency to opkg which happily breaks it and >> installs both libva* and *mesa* packages properly. Creating the initial >> image via bitbake works now. >> >> Comments? >> >> Best regards, >> Zolt?n B?sz?rm?nyi >> >> -- >> _______________________________________________ >> Openembedded-devel mailing list >> Openembedded-devel at lists.openembedded.org >> http://lists.openembedded.org/mailman/listinfo/openembedded-devel > > From zhengrq.fnst at cn.fujitsu.com Wed Feb 26 09:33:18 2020 From: zhengrq.fnst at cn.fujitsu.com (Zheng, Ruoqin) Date: Wed, 26 Feb 2020 09:33:18 +0000 Subject: [oe] [meta-networking][PATCH] daq: upgrade 2.0.6 -> 2.2.2 In-Reply-To: <549f56c2-9056-ff8c-96f4-713437fc8de0@gmail.com> References: <1582536523-89923-1-git-send-email-zhengrq.fnst@cn.fujitsu.com> <549f56c2-9056-ff8c-96f4-713437fc8de0@gmail.com> Message-ID: <0999b8fa5f394721bdd25b24e1afa2d7@G08CNEXMBPEKD06.g08.fujitsu.local> Hi Khem > This is causing snort build failures since we use snort 2.9 > > https://errors.yoctoproject.org/Errors/Details/392611/ > > Perhaps we need to upgrade snort 3.0 and daq together I'm sorry to have this error. To fix it, I have tried to upgrade snort 3.0 but it failed?in do_configure task). And how should we do next? To fix snort and make it pass? -------------------------------------------------- Zheng Ruoqin Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST) ADDR.: No.6 Wenzhu Road, Software Avenue, Nanjing, 210012, China MAIL : zhengrq.fnst at cn.fujistu.com > -----Original Message----- > From: Khem Raj > Sent: Tuesday, February 25, 2020 1:00 PM > To: Zheng, Ruoqin/? ?? ; openembedded- > devel at lists.openembedded.org > Subject: Re: [oe] [meta-networking][PATCH] daq: upgrade 2.0.6 -> 2.2.2 > > > > On 2/24/20 1:28 AM, Zheng Ruoqin wrote: > > Signed-off-by: Zheng Ruoqin > > --- > > .../recipes-connectivity/daq/{daq_2.0.6.bb => daq_2.2.2.bb} | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > rename meta-networking/recipes-connectivity/daq/{daq_2.0.6.bb => > daq_2.2.2.bb} (88%) > > > > diff --git a/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb b/meta- > networking/recipes-connectivity/daq/daq_2.2.2.bb > > similarity index 88% > > rename from meta-networking/recipes-connectivity/daq/daq_2.0.6.bb > > rename to meta-networking/recipes-connectivity/daq/daq_2.2.2.bb > > index 42ffb17a1..29ac5c770 100644 > > --- a/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb > > +++ b/meta-networking/recipes-connectivity/daq/daq_2.2.2.bb > > @@ -25,8 +25,8 @@ EXTRA_OECONF = "--disable-nfq-module --disable-ipq- > module --includedir=${include > > PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" > > PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," > > > > -SRC_URI[md5sum] = "2cd6da422a72c129c685fc4bb848c24c" > > -SRC_URI[sha256sum] = > "b40e1d1273e08aaeaa86e69d4f28d535b7e53bdb3898adf539266b63137be7cb" > > +SRC_URI[md5sum] = "c61f60674a5f951f0c50faf33a611fee" > > +SRC_URI[sha256sum] = > "7cd818cabb1ad35360e83076e54775f07165ee71407dc672d147e27d3cd37f7b" > > > > inherit autotools > > > > > This is causing snort build failures since we use snort 2.9 > > https://errors.yoctoproject.org/Errors/Details/392611/ > > Perhaps we need to upgrade snort 3.0 and daq together > From zboszor at pr.hu Wed Feb 26 11:43:03 2020 From: zboszor at pr.hu (=?UTF-8?B?QsO2c3rDtnJtw6lueWkgWm9sdMOhbg==?=) Date: Wed, 26 Feb 2020 12:43:03 +0100 Subject: [oe] Trying to resolve build-time cyclic dependency between packages In-Reply-To: <9e16757b-6678-8be6-9a2c-6d05eb54a500@pr.hu> References: <55B8D485.7080207@pr.hu> <27501214-4FE0-4D4B-8E0F-797B153B9988@gmail.com> <9e16757b-6678-8be6-9a2c-6d05eb54a500@pr.hu> Message-ID: <7edd1d26-96de-537a-ef17-a1a36670fdb8@pr.hu> 2020. 02. 26. 9:49 keltez?ssel, B?sz?rm?nyi Zolt?n via Openembedded-devel ?rta: > Hi, > > I am reviving this old idea with Zeus. > > I have implemented the idea in an ALMOST satisfactory way, tested with > Mesa 20.0.0. > > Side note: Mesa 19.3 and 20.0 needs TOOLCHAIN="gcc" in Zeus, > otherwise linker errors occur. See: > https://gitlab.freedesktop.org/mesa/mesa/issues/2533 > > Mesa doesn't link to libva even with meson -Dgallium-va=true. It only > needs the libva.pc pkgconfig file and the headers from libva to build > its VA state tracker so the circular dependency is not that hard to solve. > > I have this new recipe called libva-headers now that is a fork of the > libva recipe and just deletes the libraries in do_install_append. > > My Mesa recipe addendum has this line plus PACKAGECONFIG has "va": > > PACKAGECONFIG[va] = "-Dgallium-va=true,-Dgallium-va=false,libva-headers" > > Now, building libva is happy without the warning about libva.so is > shipped by libva-headers (or libva-noglx in the previous incarnation) > but now marked as shipped by libva because it was built later. > > There is another problem now: anything that uses libva as dependency, > like intel-vaapi-driver, implicitly pulls in mesa and then libva-headers > so there is a clash in prepare-sysroot between libva and libva-headers > because they still ship identical headers and pkgconfig files. > > My current solution to the problem is to patch staging.bbclass to > handle a new variable called EXCLUDE_DEPS but a line like this below > needs to be added to all recipes that depends on libva, so it is > quite intrusive for now. > > EXCLUDE_DEPS = "libva-headers" > > I am looking into storing data in "sstate", so libva-headers would add > itself into a new class of packages that are not added to recipe-sysroot > unless it is in DEPENDS explicitly. > > My question is: is there a generic framework to do this already? Talking to myself... YES THERE IS. I just had to name the extra package as "libva-initial" and it works the way I expected with no extra fuss. > > This would allow me to not modify other recipes and may alsoserve other > recipes with circular dependencies. > > The end goal is to allow Chromium to be built with use_vaapi=true now that > meta-browser has version 79 that includes the VAAPI patches. The current > solution with setting EXCLUDE_DEPS already does this but as I said, it's > not clean enough. > > Best regards, > Zolt?n B?sz?rm?nyi > > 2015. 08. 09. 0:14 keltez?ssel, Khem Raj ?rta: >> >>> On Jul 29, 2015, at 6:26 AM, Boszormenyi Zoltan wrote: >>> >>> Hi, >>> >>> I have a customized Mesa 10.6.3 package recipe which depends on libva >>> to be able to build its mesa-va-driver subpackage, but libva also depends >>> on Mesa to support GLX. >>> >>> Previously, I simply created a libva-noglx package that builds libva >>> with --disable-glx that Mesa depend on and the "real" libva package can >>> depend on Mesa. >>> >>> But since I also have to produce an SDK image with all the *-dev packages, >>> creating such an initial image with bitbake fails because of a conflict >>> in the dependency chain: libva-dev -> mesa-dev -> libva-noglx-dev. >>> >> >> since libva-noglx is sort of a bootstrap package, you could empty/delete out the content >> its puts into -dev packages and conflict will be gone. Other option is that you share >> the content of -dev package in exclusive manner between libva and libva-noglx such >> that they don?t package duplicate files >> >>> I have come up with the attached bbclass (based on Yocto 1.6) that >>> now Mesa can inherit and that patches the RDEPENDS / RRECOMMENDS >>> variables according to externally set variables. The comment at >>> the beginning of the file explains how to use it. >>> >>> This pushes the cyclic dependency to opkg which happily breaks it and >>> installs both libva* and *mesa* packages properly. Creating the initial >>> image via bitbake works now. >>> >>> Comments? >>> >>> Best regards, >>> Zolt?n B?sz?rm?nyi >>> >>> -- >>> _______________________________________________ >>> Openembedded-devel mailing list >>> Openembedded-devel at lists.openembedded.org >>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel >> >> > From leo.yan at linaro.org Wed Feb 26 12:26:22 2020 From: leo.yan at linaro.org (Leo Yan) Date: Wed, 26 Feb 2020 12:26:22 +0000 Subject: [oe] [meta-oe][PATCH v4] luajit: Upgrade to 2.1.0-beta3 Message-ID: <20200226122622.33171-1-leo.yan@linaro.org> Since luajit 2.1.0-beta3 can support architecture aarch64 and the old misses to support aarch64, the patch upgrades to luajit 2.1.0-beta3. Also updated clang.patch to dismiss patch warning: "Hunk #1 succeeded at 436 with fuzz 1 (offset 123 lines)." Signed-off-by: Leo Yan --- meta-oe/recipes-devtools/luajit/luajit/clang.patch | 4 ++-- .../luajit/{luajit_2.0.5.bb => luajit_git.bb} | 13 ++++++------- 2 files changed, 8 insertions(+), 9 deletions(-) rename meta-oe/recipes-devtools/luajit/{luajit_2.0.5.bb => luajit_git.bb} (90%) diff --git a/meta-oe/recipes-devtools/luajit/luajit/clang.patch b/meta-oe/recipes-devtools/luajit/luajit/clang.patch index c39ef6fd4..807cc4417 100644 --- a/meta-oe/recipes-devtools/luajit/luajit/clang.patch +++ b/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-oe/recipes-devtools/luajit/luajit_2.0.5.bb b/meta-oe/recipes-devtools/luajit/luajit_git.bb similarity index 90% rename from meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb rename to meta-oe/recipes-devtools/luajit/luajit_git.bb index 93128dda8..2a7243842 100644 --- a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb +++ b/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.0.5+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,8 +90,7 @@ FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \ " FILES_luajit-common = "${datadir}/${BPN}-${PV}" -# Aarch64/mips64/ppc/ppc64/riscv64 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" -- 2.17.1 From leo.yan at linaro.org Wed Feb 26 12:30:36 2020 From: leo.yan at linaro.org (Leo Yan) Date: Wed, 26 Feb 2020 20:30:36 +0800 Subject: [oe] [meta-oe][PATCH v3] luajit: Upgrade to 2.1.0-beta3 In-Reply-To: <8e32456d-c86d-3e87-9588-d8dc075ce061@gmail.com> References: <20200225063711.4848-1-leo.yan@linaro.org> <263955b2-9b82-f24c-172c-0761d86a1391@gmail.com> <20200225073129.GA1169@leoy-ThinkPad-X240s> <8e32456d-c86d-3e87-9588-d8dc075ce061@gmail.com> Message-ID: <20200226123036.GA2551@leoy-ThinkPad-X240s> Hi Khem, On Tue, Feb 25, 2020 at 07:57:09AM -0800, Khem Raj wrote: > > > On 2/24/20 11:38 PM, Leo Yan wrote: > > Hi Khem, > > > > On Mon, Feb 24, 2020 at 10:41:04PM -0800, Khem Raj wrote: > > > > > > > > > On 2/24/20 10:37 PM, Leo Yan wrote: > > > > Since luajit 2.1.0-beta3 can support architecture aarch64 and the old > > > > misses to support aarch64, the patch upgrades to luajit 2.1.0-beta3. > > > > > > > > Signed-off-by: Leo Yan > > > > --- > > > > .../luajit/luajit/clang.patch | 19 ------------------- > > > > > > > > > why is this patch dropped ? it building with clang handled differently now ? > > > if so please add a line or two in commit msg > > > > To be honest, I don't know how to hit the condition for > > '#elif !LJ_TARGET_PS3', and since considering Clang has upgraded to new > > version (9.0.1), this is another reason I dropped this patch. > > > > you could easily excercise the need for it, by adding meta-clang and setting > > TOOLCHAIN_pn-luajit = "clang" (in local.conf) > bitbake luajit I tested up setting with MACHINE=qemumips, it can hit the condition for '#elif !LJ_TARGET_PS3' and the patch clang.patch is still needed, otherwise, it can cause building error. So have sent out patch v4 to keep clang.patch with minor updating to dismiss patching warning. Thanks a lot for guidance. Leo From raj.khem at gmail.com Wed Feb 26 15:05:03 2020 From: raj.khem at gmail.com (Khem Raj) Date: Wed, 26 Feb 2020 07:05:03 -0800 Subject: [oe] [meta-networking][PATCH] daq: upgrade 2.0.6 -> 2.2.2 In-Reply-To: <0999b8fa5f394721bdd25b24e1afa2d7@G08CNEXMBPEKD06.g08.fujitsu.local> References: <1582536523-89923-1-git-send-email-zhengrq.fnst@cn.fujitsu.com> <549f56c2-9056-ff8c-96f4-713437fc8de0@gmail.com> <0999b8fa5f394721bdd25b24e1afa2d7@G08CNEXMBPEKD06.g08.fujitsu.local> Message-ID: On Wed, Feb 26, 2020 at 1:33 AM Zheng, Ruoqin wrote: > > Hi Khem > > > This is causing snort build failures since we use snort 2.9 > > > > https://errors.yoctoproject.org/Errors/Details/392611/ > > > > Perhaps we need to upgrade snort 3.0 and daq together > > I'm sorry to have this error. To fix it, I have tried to upgrade snort 3.0 but it failed?in do_configure task). > > And how should we do next? To fix snort and make it pass? > perhaps share errors yoou are seeing > -------------------------------------------------- > Zheng Ruoqin > Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST) > ADDR.: No.6 Wenzhu Road, Software Avenue, > Nanjing, 210012, China > MAIL : zhengrq.fnst at cn.fujistu.com > > > > -----Original Message----- > > From: Khem Raj > > Sent: Tuesday, February 25, 2020 1:00 PM > > To: Zheng, Ruoqin/? ?? ; openembedded- > > devel at lists.openembedded.org > > Subject: Re: [oe] [meta-networking][PATCH] daq: upgrade 2.0.6 -> 2.2.2 > > > > > > > > On 2/24/20 1:28 AM, Zheng Ruoqin wrote: > > > Signed-off-by: Zheng Ruoqin > > > --- > > > .../recipes-connectivity/daq/{daq_2.0.6.bb => daq_2.2.2.bb} | 4 ++-- > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > rename meta-networking/recipes-connectivity/daq/{daq_2.0.6.bb => > > daq_2.2.2.bb} (88%) > > > > > > diff --git a/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb b/meta- > > networking/recipes-connectivity/daq/daq_2.2.2.bb > > > similarity index 88% > > > rename from meta-networking/recipes-connectivity/daq/daq_2.0.6.bb > > > rename to meta-networking/recipes-connectivity/daq/daq_2.2.2.bb > > > index 42ffb17a1..29ac5c770 100644 > > > --- a/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb > > > +++ b/meta-networking/recipes-connectivity/daq/daq_2.2.2.bb > > > @@ -25,8 +25,8 @@ EXTRA_OECONF = "--disable-nfq-module --disable-ipq- > > module --includedir=${include > > > PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" > > > PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," > > > > > > -SRC_URI[md5sum] = "2cd6da422a72c129c685fc4bb848c24c" > > > -SRC_URI[sha256sum] = > > "b40e1d1273e08aaeaa86e69d4f28d535b7e53bdb3898adf539266b63137be7cb" > > > +SRC_URI[md5sum] = "c61f60674a5f951f0c50faf33a611fee" > > > +SRC_URI[sha256sum] = > > "7cd818cabb1ad35360e83076e54775f07165ee71407dc672d147e27d3cd37f7b" > > > > > > inherit autotools > > > > > > > > This is causing snort build failures since we use snort 2.9 > > > > https://errors.yoctoproject.org/Errors/Details/392611/ > > > > Perhaps we need to upgrade snort 3.0 and daq together > > > > > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From zhengrq.fnst at cn.fujitsu.com Wed Feb 26 15:10:00 2020 From: zhengrq.fnst at cn.fujitsu.com (Zheng Ruoqin) Date: Wed, 26 Feb 2020 23:10:00 +0800 Subject: [oe] [meta-oe][PATCH v3] libharu: New recipe Message-ID: <1582729800-707-1-git-send-email-zhengrq.fnst@cn.fujitsu.com> libHaru is a library for generating PDF files. Signed-off-by: Zheng Ruoqin --- .../libharu/libharu-RELEASE_2_3_0_cmake.patch | 52 +++++++++++++++++++ .../recipes-support/libharu/libharu_2.3.0.bb | 23 ++++++++ 2 files changed, 75 insertions(+) create mode 100644 meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch create mode 100644 meta-oe/recipes-support/libharu/libharu_2.3.0.bb diff --git a/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch b/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch new file mode 100644 index 000000000..332be1b3f --- /dev/null +++ b/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 + +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-oe/recipes-support/libharu/libharu_2.3.0.bb b/meta-oe/recipes-support/libharu/libharu_2.3.0.bb new file mode 100644 index 000000000..2d1a37c42 --- /dev/null +++ b/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} +} -- 2.17.1 From ticotimo at gmail.com Wed Feb 26 15:57:08 2020 From: ticotimo at gmail.com (Tim Orling) Date: Wed, 26 Feb 2020 07:57:08 -0800 Subject: [oe] [meta-python2][PATCH 1/2] python-backports-functools-lru-cache: enable native and nativesdk In-Reply-To: <20200225135346.13344-1-Martin.Jansa@gmail.com> References: <20200225135346.13344-1-Martin.Jansa@gmail.com> Message-ID: Merged. Thank you! On Tue, Feb 25, 2020 at 5:54 AM Martin Jansa wrote: > * since this change: > commit d1a1c57d0e73251e86591214f30fc90010d5c111 > Author: Tim Orling > Date: Mon Jan 20 11:31:59 2020 -0800 > > python-beautifulsoup4: fix target RDEPENDS syntax > > there is now this dependency: > 'python-beautifulsoup4-native', 'python-soupsieve-native', > 'python-backports-functools-lru-cache-native' > and error in world builds: > ERROR: Nothing RPROVIDES 'python-backports-functools-lru-cache-native' > (but virtual:native:meta-python2/recipes-devtools/python/ > python-soupsieve_1.9.4.bb RDEPENDS on or otherwise requires it) > > Signed-off-by: Martin Jansa > --- > .../python/python-backports-functools-lru-cache_1.6.1.bb | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/recipes-devtools/python/ > python-backports-functools-lru-cache_1.6.1.bb b/recipes-devtools/python/ > python-backports-functools-lru-cache_1.6.1.bb > index 8c40cf5..aee130f 100644 > --- a/recipes-devtools/python/ > python-backports-functools-lru-cache_1.6.1.bb > +++ b/recipes-devtools/python/ > python-backports-functools-lru-cache_1.6.1.bb > @@ -25,3 +25,5 @@ do_install() { > } > > FILES_${PN} = > "${PYTHON_SITEPACKAGES_DIR}/backports/functools_lru_cache.py" > + > +BBCLASSEXTEND = "native nativesdk" > -- > 2.20.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From ticotimo at gmail.com Wed Feb 26 15:57:37 2020 From: ticotimo at gmail.com (Tim Orling) Date: Wed, 26 Feb 2020 07:57:37 -0800 Subject: [oe] [meta-python2][PATCH 2/2] python-backports-init: enable native and nativesdk In-Reply-To: <20200225135346.13344-2-Martin.Jansa@gmail.com> References: <20200225135346.13344-1-Martin.Jansa@gmail.com> <20200225135346.13344-2-Martin.Jansa@gmail.com> Message-ID: Merged. Thank you! On Tue, Feb 25, 2020 at 5:54 AM Martin Jansa wrote: > * needed for python-backports-functools-lru-cache-native > > Signed-off-by: Martin Jansa > --- > recipes-devtools/python/python-backports-init_1.0.bb | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/recipes-devtools/python/python-backports-init_1.0.bb > b/recipes-devtools/python/python-backports-init_1.0.bb > index 29e712a..8b226aa 100644 > --- a/recipes-devtools/python/python-backports-init_1.0.bb > +++ b/recipes-devtools/python/python-backports-init_1.0.bb > @@ -23,3 +23,5 @@ do_install() { > } > > FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}/backports/__init__.py" > + > +BBCLASSEXTEND = "native nativesdk" > -- > 2.20.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From ticotimo at gmail.com Wed Feb 26 15:57:52 2020 From: ticotimo at gmail.com (Tim Orling) Date: Wed, 26 Feb 2020 07:57:52 -0800 Subject: [oe] [meta-python2][PATCH 1/2] python-ldap: skip when meta-networking isn't included In-Reply-To: <20200225190739.4056-1-Martin.Jansa@gmail.com> References: <20200225190739.4056-1-Martin.Jansa@gmail.com> Message-ID: Merged. Thank you! On Tue, Feb 25, 2020 at 11:07 AM Martin Jansa wrote: > * fixes: > ERROR: Nothing PROVIDES 'cyrus-sasl' (but > meta-python2/recipes-devtools/python/python-ldap_3.2.0.bb DEPENDS on or > otherwise requires it) > in world builds without meta-networking > > Signed-off-by: Martin Jansa > --- > recipes-devtools/python/python-ldap_3.2.0.bb | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/recipes-devtools/python/python-ldap_3.2.0.bb > b/recipes-devtools/python/python-ldap_3.2.0.bb > index af8961e..8e43dee 100644 > --- a/recipes-devtools/python/python-ldap_3.2.0.bb > +++ b/recipes-devtools/python/python-ldap_3.2.0.bb > @@ -23,9 +23,15 @@ do_configure_prepend() { > sed -i -e 's:^include_dirs =.*:include_dirs = =/usr/include/sasl/:' > setup.cfg > } > > + > RDEPENDS_${PN} = " \ > ${PYTHON_PN}-pprint \ > ${PYTHON_PN}-threading \ > ${PYTHON_PN}-pyasn1 \ > ${PYTHON_PN}-pyasn1-modules \ > " > + > +python() { > + if 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split(): > + raise bb.parse.SkipRecipe('Requires networking-layer to be > present to provide cyrus-sasl.') > +} > -- > 2.20.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From ticotimo at gmail.com Wed Feb 26 15:58:16 2020 From: ticotimo at gmail.com (Tim Orling) Date: Wed, 26 Feb 2020 07:58:16 -0800 Subject: [oe] [meta-python2][PATCH 2/2] python-networkmanager: skip when meta-networking isn't included In-Reply-To: <20200225190739.4056-2-Martin.Jansa@gmail.com> References: <20200225190739.4056-1-Martin.Jansa@gmail.com> <20200225190739.4056-2-Martin.Jansa@gmail.com> Message-ID: Merged. Thank you! On Tue, Feb 25, 2020 at 11:07 AM Martin Jansa wrote: > * fixes > ERROR: Nothing RPROVIDES 'networkmanager' (but > meta-python2/recipes-connectivity/python-networkmanager/ > python-networkmanager_2.1.bb RDEPENDS on or otherwise requires it) > in world builds without meta-networking > > Signed-off-by: Martin Jansa > --- > .../python-networkmanager/python-networkmanager_2.1.bb | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/recipes-connectivity/python-networkmanager/ > python-networkmanager_2.1.bb b/recipes-connectivity/python-networkmanager/ > python-networkmanager_2.1.bb > index 3aa41f1..53e2f9d 100644 > --- a/recipes-connectivity/python-networkmanager/ > python-networkmanager_2.1.bb > +++ b/recipes-connectivity/python-networkmanager/ > python-networkmanager_2.1.bb > @@ -11,3 +11,8 @@ PYPI_PACKAGE = "python-networkmanager" > inherit pypi setuptools > > RDEPENDS_${PN} = "networkmanager python-dbus python-six" > + > +python() { > + if 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split(): > + raise bb.parse.SkipRecipe('Requires networking-layer to be > present to provide networkmanager.') > +} > -- > 2.20.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > From lsorense at csclub.uwaterloo.ca Wed Feb 26 18:30:11 2020 From: lsorense at csclub.uwaterloo.ca (Lennart Sorensen) Date: Wed, 26 Feb 2020 13:30:11 -0500 Subject: [oe] [meta-java] openjre-8 fmacro-prefix-map problem Message-ID: <20200226183011.x7pp6kwn6nlwgcrc@csclub.uwaterloo.ca> On Mon, Sep 30, 2019, Vincent Prince wrote: > Hello again, > > I see that there is a patch that should fix the problem: > https://git.yoctoproject.org/cgit/cgit.cgi/meta-java/tree/recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-adlc-flags.patch > It is applied but it seems target compilation options are non filtered? I just hit this problem too, and found out why it isn't filtering. TARGET_CFLAGS isn't actually exported so the build can't use it to filter. Adding this to openjre-8_242.bb fixes the problem: export TARGET_CFLAGS export TARGET_CXXFLAGS No more problem with the host gcc/g++ complaining about -fmacro-prefix-map being unknown. I suspect openjdk-8 would need to same fix but I didn't build that yet. -- Len Sorensen From jonathan.richardson at broadcom.com Wed Feb 26 20:29:09 2020 From: jonathan.richardson at broadcom.com (Jonathan Richardson) Date: Wed, 26 Feb 2020 12:29:09 -0800 Subject: [oe] [meta-oe][PATCH v2 1/1] open-lldp: Add initial version 1.0.1 Message-ID: <20200226202909.18208-1-jonathan.richardson@broadcom.com> Open-LLDP provides a Link Layer Discovery Protocol agent that supports DCB (Data Center Bridging). The tc utility from iproute is needed to manipulate traffic control settings in the kernel. Signed-off-by: Jonathan Richardson --- .../0001-Fix-musl-libc-build-issue.patch | 25 ++++++++ ...tion-to-disable-installation-of-syst.patch | 57 +++++++++++++++++++ .../openlldp/openlldp_1.0.1.bb | 39 +++++++++++++ 3 files changed, 121 insertions(+) create mode 100644 meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch create mode 100644 meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch create mode 100644 meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb diff --git a/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch b/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch new file mode 100644 index 000000000..d8d5df218 --- /dev/null +++ b/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch @@ -0,0 +1,25 @@ +From b20d64f814c15efbd6a19aacfbfecf15083a83dc Mon Sep 17 00:00:00 2001 +From: Jonathan Richardson +Date: Wed, 26 Feb 2020 12:16:38 -0800 +Subject: [PATCH] Fix musl libc build issue + +clif.h should include sys/types.h for the definition of pid_t. It fails +to compile when using musl libc. + +Signed-off-by: Jonathan Richardson +--- + include/clif.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/include/clif.h b/include/clif.h +index 648eedf..92f4fd8 100644 +--- a/include/clif.h ++++ b/include/clif.h +@@ -32,6 +32,7 @@ + #ifndef CLIF_H + #define CLIF_H + ++#include + #include + #include "clif_sock.h" + diff --git a/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch new file mode 100644 index 000000000..86c9f4463 --- /dev/null +++ b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch @@ -0,0 +1,57 @@ +From 1c1e01b2414ca5b3cf5a21b6e6389f9ca82fd7e9 Mon Sep 17 00:00:00 2001 +From: Jonathan Richardson +Date: Fri, 6 Apr 2018 10:49:04 -0700 +Subject: [PATCH 1/1] autotools: Add option to disable installation of systemd + conf files + +Add option to configure.ac to enable or disable install of systemd conf +files. If --with-systemdsystemunitdir is passed to configure then the +files will be installed to the provided directory. If the option isn't +provided then the value is determined from the systemd pkgconfig file, +if found in PKG_CONFIG_PATH. + +This change is required because Makefile.am always installed the files +to a hard coded path that couldn't be changed. +--- + Makefile.am | 3 ++- + configure.ac | 9 +++++++++ + 2 files changed, 11 insertions(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index 551d4c7..5491c61 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -133,8 +133,9 @@ install-data-hook: installdirs-local + pkgconfigdir = ${libdir}/pkgconfig + pkgconfig_DATA = lldpad.pc liblldp_clif.pc + +-systemdsystemunitdir = $(prefix)/lib/systemd/system ++if HAVE_SYSTEMD + dist_systemdsystemunit_DATA = lldpad.service lldpad.socket ++endif + + bashcompletiondir = $(sysconfdir)/bash_completion.d + dist_bashcompletion_DATA = contrib/bash_completion/lldpad contrib/bash_completion/lldptool +diff --git a/configure.ac b/configure.ac +index 0667446..f75f433 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -95,6 +95,15 @@ AC_TYPE_UINT16_T + AC_TYPE_UINT32_T + AC_TYPE_UINT8_T + ++# Support for systemd unit files. ++AC_ARG_WITH([systemdsystemunitdir], ++ AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]), ++ [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]) ++if test "x$with_systemdsystemunitdir" != xno; then ++ AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) ++fi ++AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ]) ++ + AC_CONFIG_FILES([Makefile include/version.h lldpad.spec lldpad.pc liblldp_clif.pc]) + AC_CONFIG_MACRO_DIR([m4]) + AC_OUTPUT +-- +1.9.1 + diff --git a/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb b/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb new file mode 100644 index 000000000..ef8d780c6 --- /dev/null +++ b/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb @@ -0,0 +1,39 @@ +SUMMARY = "Open-LLDP" +DESCRIPTION = "Link Layer Discovery Protocol for Linux that includes support for DCBX" +HOMEPAGE = "http://open-lldp.org/start" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=8c2bc283e65df398ced5f5b747e78162" + +S = "${WORKDIR}/git" + +inherit pkgconfig autotools +inherit ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager', 'systemd', 'systemd', '', d)} + +DEPENDS = "libnl libconfig readline" + +SRCREV = "36d729de7ce5b56cf061d94d610cf0510154820c" +SRC_URI = "git://github.com/intel/openlldp.git;protocol=https;branch=master \ + file://0001-autotools-Add-option-to-disable-installation-of-syst.patch \ + file://0001-Fix-musl-libc-build-issue.patch \ + " + +# Even though .ac allows disabling -Werror, Makefile.am adds it to AM_CFLAGS +# causing it to always be enabled. There are warnings so disable it. +TARGET_CFLAGS += "-Wno-error" + +# configure.ac generates version.h from include/version.h.in but autotools puts +# build artefacts in $B, not $S and the header can't be found. To avoid +# inheriting autotools-brokensep and messing up the source dir just tell Makefile +# where it is. +TARGET_CFLAGS += "-I ${B}/include" + +# Enable install of systemd conf files. +EXTRA_OECONF += "${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager', 'systemd', '--with-systemdsystemunitdir=${systemd_system_unitdir}', '', d)}" + +SYSTEMD_SERVICE_${PN} = "lldpad.service lldpad.socket" + +# To enable service at boot set to enable in local.conf. +SYSTEMD_AUTO_ENABLE ?= "disable" + +RRECOMMENDS_${PN} = "iproute2-tc" -- 2.17.1 From raj.khem at gmail.com Wed Feb 26 20:34:23 2020 From: raj.khem at gmail.com (Khem Raj) Date: Wed, 26 Feb 2020 12:34:23 -0800 Subject: [oe] [meta-oe][PATCH v2 1/1] open-lldp: Add initial version 1.0.1 In-Reply-To: <20200226202909.18208-1-jonathan.richardson@broadcom.com> References: <20200226202909.18208-1-jonathan.richardson@broadcom.com> Message-ID: Thanks Jonathan, I have few more comments. On 2/26/20 12:29 PM, Jonathan Richardson via Openembedded-devel wrote: > Open-LLDP provides a Link Layer Discovery Protocol agent that supports > DCB (Data Center Bridging). The tc utility from iproute is needed to > manipulate traffic control settings in the kernel. > > Signed-off-by: Jonathan Richardson > --- > .../0001-Fix-musl-libc-build-issue.patch | 25 ++++++++ > ...tion-to-disable-installation-of-syst.patch | 57 +++++++++++++++++++ > .../openlldp/openlldp_1.0.1.bb | 39 +++++++++++++ > 3 files changed, 121 insertions(+) > create mode 100644 meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch > create mode 100644 meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch > create mode 100644 meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb > > diff --git a/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch b/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch > new file mode 100644 > index 000000000..d8d5df218 > --- /dev/null > +++ b/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch > @@ -0,0 +1,25 @@ > +From b20d64f814c15efbd6a19aacfbfecf15083a83dc Mon Sep 17 00:00:00 2001 > +From: Jonathan Richardson > +Date: Wed, 26 Feb 2020 12:16:38 -0800 > +Subject: [PATCH] Fix musl libc build issue > + > +clif.h should include sys/types.h for the definition of pid_t. It fails > +to compile when using musl libc. > + > +Signed-off-by: Jonathan Richardson > +--- > + include/clif.h | 1 + > + 1 file changed, 1 insertion(+) > + > +diff --git a/include/clif.h b/include/clif.h > +index 648eedf..92f4fd8 100644 > +--- a/include/clif.h > ++++ b/include/clif.h > +@@ -32,6 +32,7 @@ > + #ifndef CLIF_H > + #define CLIF_H > + > ++#include > + #include > + #include "clif_sock.h" > + > diff --git a/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch > new file mode 100644 > index 000000000..86c9f4463 > --- /dev/null > +++ b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch > @@ -0,0 +1,57 @@ > +From 1c1e01b2414ca5b3cf5a21b6e6389f9ca82fd7e9 Mon Sep 17 00:00:00 2001 > +From: Jonathan Richardson > +Date: Fri, 6 Apr 2018 10:49:04 -0700 > +Subject: [PATCH 1/1] autotools: Add option to disable installation of systemd > + conf files > + > +Add option to configure.ac to enable or disable install of systemd conf > +files. If --with-systemdsystemunitdir is passed to configure then the > +files will be installed to the provided directory. If the option isn't > +provided then the value is determined from the systemd pkgconfig file, > +if found in PKG_CONFIG_PATH. > + > +This change is required because Makefile.am always installed the files > +to a hard coded path that couldn't be changed. > +--- > + Makefile.am | 3 ++- > + configure.ac | 9 +++++++++ > + 2 files changed, 11 insertions(+), 1 deletion(-) > + > +diff --git a/Makefile.am b/Makefile.am > +index 551d4c7..5491c61 100644 > +--- a/Makefile.am > ++++ b/Makefile.am > +@@ -133,8 +133,9 @@ install-data-hook: installdirs-local > + pkgconfigdir = ${libdir}/pkgconfig > + pkgconfig_DATA = lldpad.pc liblldp_clif.pc > + > +-systemdsystemunitdir = $(prefix)/lib/systemd/system > ++if HAVE_SYSTEMD > + dist_systemdsystemunit_DATA = lldpad.service lldpad.socket > ++endif > + > + bashcompletiondir = $(sysconfdir)/bash_completion.d > + dist_bashcompletion_DATA = contrib/bash_completion/lldpad contrib/bash_completion/lldptool > +diff --git a/configure.ac b/configure.ac > +index 0667446..f75f433 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -95,6 +95,15 @@ AC_TYPE_UINT16_T > + AC_TYPE_UINT32_T > + AC_TYPE_UINT8_T > + > ++# Support for systemd unit files. > ++AC_ARG_WITH([systemdsystemunitdir], > ++ AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]), > ++ [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]) > ++if test "x$with_systemdsystemunitdir" != xno; then > ++ AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) > ++fi > ++AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ]) > ++ > + AC_CONFIG_FILES([Makefile include/version.h lldpad.spec lldpad.pc liblldp_clif.pc]) > + AC_CONFIG_MACRO_DIR([m4]) > + AC_OUTPUT > +-- > +1.9.1 > + > diff --git a/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb b/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb > new file mode 100644 > index 000000000..ef8d780c6 > --- /dev/null > +++ b/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb > @@ -0,0 +1,39 @@ > +SUMMARY = "Open-LLDP" > +DESCRIPTION = "Link Layer Discovery Protocol for Linux that includes support for DCBX" > +HOMEPAGE = "http://open-lldp.org/start" > + > +LICENSE = "GPLv2" > +LIC_FILES_CHKSUM = "file://COPYING;md5=8c2bc283e65df398ced5f5b747e78162" > + > +S = "${WORKDIR}/git" > + > +inherit pkgconfig autotools > +inherit ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager', 'systemd', 'systemd', '', d)} > + > +DEPENDS = "libnl libconfig readline" > + > +SRCREV = "36d729de7ce5b56cf061d94d610cf0510154820c" > +SRC_URI = "git://github.com/intel/openlldp.git;protocol=https;branch=master \ > + file://0001-autotools-Add-option-to-disable-installation-of-syst.patch \ > + file://0001-Fix-musl-libc-build-issue.patch \ > + " > + > +# Even though .ac allows disabling -Werror, Makefile.am adds it to AM_CFLAGS > +# causing it to always be enabled. There are warnings so disable it. > +TARGET_CFLAGS += "-Wno-error" is there configure option --disable-werror, we should use that if available. > + > +# configure.ac generates version.h from include/version.h.in but autotools puts > +# build artefacts in $B, not $S and the header can't be found. To avoid > +# inheriting autotools-brokensep and messing up the source dir just tell Makefile > +# where it is. > +TARGET_CFLAGS += "-I ${B}/include" Can we avoid using B here. > + > +# Enable install of systemd conf files. > +EXTRA_OECONF += "${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager', 'systemd', '--with-systemdsystemunitdir=${systemd_system_unitdir}', '', d)}" we should be checking for systemd in DISTRO_FEATURES here. > + > +SYSTEMD_SERVICE_${PN} = "lldpad.service lldpad.socket" > + > +# To enable service at boot set to enable in local.conf. > +SYSTEMD_AUTO_ENABLE ?= "disable" > + > +RRECOMMENDS_${PN} = "iproute2-tc" > From matt.ranostay at konsulko.com Wed Feb 26 21:21:37 2020 From: matt.ranostay at konsulko.com (Matt Ranostay) Date: Wed, 26 Feb 2020 23:21:37 +0200 Subject: [oe] [meta-oe][PATCH v3] ttf-noto-emoji: add recipe Message-ID: <20200226212137.10018-1-matt.ranostay@konsulko.com> Add both B/W and color emojis fonts from the noto-emoji project. Important note for the color emojis to render the pixmap PACKAGECONFIG option needs to be set in freetype package. Signed-off-by: Matt Ranostay --- meta-oe/conf/layer.conf | 1 + .../ttf-fonts/ttf-noto-emoji_20190815.bb | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb diff --git a/meta-oe/conf/layer.conf b/meta-oe/conf/layer.conf index bad87850e..dec864d33 100644 --- a/meta-oe/conf/layer.conf +++ b/meta-oe/conf/layer.conf @@ -70,6 +70,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-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20190815.bb new file mode 100644 index 000000000..e74f7a7f6 --- /dev/null +++ b/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" -- 2.20.1 From jonathan.richardson at broadcom.com Wed Feb 26 22:54:07 2020 From: jonathan.richardson at broadcom.com (Jonathan Richardson) Date: Wed, 26 Feb 2020 14:54:07 -0800 Subject: [oe] [meta-oe][PATCH v2 1/1] open-lldp: Add initial version 1.0.1 In-Reply-To: References: <20200226202909.18208-1-jonathan.richardson@broadcom.com> Message-ID: On Wed, Feb 26, 2020 at 12:34 PM Khem Raj wrote: > > Thanks Jonathan, I have few more comments. > > On 2/26/20 12:29 PM, Jonathan Richardson via Openembedded-devel wrote: > > Open-LLDP provides a Link Layer Discovery Protocol agent that supports > > DCB (Data Center Bridging). The tc utility from iproute is needed to > > manipulate traffic control settings in the kernel. > > > > Signed-off-by: Jonathan Richardson > > --- > > .../0001-Fix-musl-libc-build-issue.patch | 25 ++++++++ > > ...tion-to-disable-installation-of-syst.patch | 57 +++++++++++++++++++ > > .../openlldp/openlldp_1.0.1.bb | 39 +++++++++++++ > > 3 files changed, 121 insertions(+) > > create mode 100644 meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch > > create mode 100644 meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch > > create mode 100644 meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb > > > > diff --git a/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch b/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch > > new file mode 100644 > > index 000000000..d8d5df218 > > --- /dev/null > > +++ b/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch > > @@ -0,0 +1,25 @@ > > +From b20d64f814c15efbd6a19aacfbfecf15083a83dc Mon Sep 17 00:00:00 2001 > > +From: Jonathan Richardson > > +Date: Wed, 26 Feb 2020 12:16:38 -0800 > > +Subject: [PATCH] Fix musl libc build issue > > + > > +clif.h should include sys/types.h for the definition of pid_t. It fails > > +to compile when using musl libc. > > + > > +Signed-off-by: Jonathan Richardson > > +--- > > + include/clif.h | 1 + > > + 1 file changed, 1 insertion(+) > > + > > +diff --git a/include/clif.h b/include/clif.h > > +index 648eedf..92f4fd8 100644 > > +--- a/include/clif.h > > ++++ b/include/clif.h > > +@@ -32,6 +32,7 @@ > > + #ifndef CLIF_H > > + #define CLIF_H > > + > > ++#include > > + #include > > + #include "clif_sock.h" > > + > > diff --git a/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch > > new file mode 100644 > > index 000000000..86c9f4463 > > --- /dev/null > > +++ b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch > > @@ -0,0 +1,57 @@ > > +From 1c1e01b2414ca5b3cf5a21b6e6389f9ca82fd7e9 Mon Sep 17 00:00:00 2001 > > +From: Jonathan Richardson > > +Date: Fri, 6 Apr 2018 10:49:04 -0700 > > +Subject: [PATCH 1/1] autotools: Add option to disable installation of systemd > > + conf files > > + > > +Add option to configure.ac to enable or disable install of systemd conf > > +files. If --with-systemdsystemunitdir is passed to configure then the > > +files will be installed to the provided directory. If the option isn't > > +provided then the value is determined from the systemd pkgconfig file, > > +if found in PKG_CONFIG_PATH. > > + > > +This change is required because Makefile.am always installed the files > > +to a hard coded path that couldn't be changed. > > +--- > > + Makefile.am | 3 ++- > > + configure.ac | 9 +++++++++ > > + 2 files changed, 11 insertions(+), 1 deletion(-) > > + > > +diff --git a/Makefile.am b/Makefile.am > > +index 551d4c7..5491c61 100644 > > +--- a/Makefile.am > > ++++ b/Makefile.am > > +@@ -133,8 +133,9 @@ install-data-hook: installdirs-local > > + pkgconfigdir = ${libdir}/pkgconfig > > + pkgconfig_DATA = lldpad.pc liblldp_clif.pc > > + > > +-systemdsystemunitdir = $(prefix)/lib/systemd/system > > ++if HAVE_SYSTEMD > > + dist_systemdsystemunit_DATA = lldpad.service lldpad.socket > > ++endif > > + > > + bashcompletiondir = $(sysconfdir)/bash_completion.d > > + dist_bashcompletion_DATA = contrib/bash_completion/lldpad contrib/bash_completion/lldptool > > +diff --git a/configure.ac b/configure.ac > > +index 0667446..f75f433 100644 > > +--- a/configure.ac > > ++++ b/configure.ac > > +@@ -95,6 +95,15 @@ AC_TYPE_UINT16_T > > + AC_TYPE_UINT32_T > > + AC_TYPE_UINT8_T > > + > > ++# Support for systemd unit files. > > ++AC_ARG_WITH([systemdsystemunitdir], > > ++ AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]), > > ++ [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]) > > ++if test "x$with_systemdsystemunitdir" != xno; then > > ++ AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) > > ++fi > > ++AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ]) > > ++ > > + AC_CONFIG_FILES([Makefile include/version.h lldpad.spec lldpad.pc liblldp_clif.pc]) > > + AC_CONFIG_MACRO_DIR([m4]) > > + AC_OUTPUT > > +-- > > +1.9.1 > > + > > diff --git a/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb b/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb > > new file mode 100644 > > index 000000000..ef8d780c6 > > --- /dev/null > > +++ b/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb > > @@ -0,0 +1,39 @@ > > +SUMMARY = "Open-LLDP" > > +DESCRIPTION = "Link Layer Discovery Protocol for Linux that includes support for DCBX" > > +HOMEPAGE = "http://open-lldp.org/start" > > + > > +LICENSE = "GPLv2" > > +LIC_FILES_CHKSUM = "file://COPYING;md5=8c2bc283e65df398ced5f5b747e78162" > > + > > +S = "${WORKDIR}/git" > > + > > +inherit pkgconfig autotools > > +inherit ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager', 'systemd', 'systemd', '', d)} > > + > > +DEPENDS = "libnl libconfig readline" > > + > > +SRCREV = "36d729de7ce5b56cf061d94d610cf0510154820c" > > +SRC_URI = "git://github.com/intel/openlldp.git;protocol=https;branch=master \ > > + file://0001-autotools-Add-option-to-disable-installation-of-syst.patch \ > > + file://0001-Fix-musl-libc-build-issue.patch \ > > + " > > + > > +# Even though .ac allows disabling -Werror, Makefile.am adds it to AM_CFLAGS > > +# causing it to always be enabled. There are warnings so disable it. > > +TARGET_CFLAGS += "-Wno-error" > > is there configure option --disable-werror, we should use that if available. No unfortunately it's not supported. I'll fix the comment. .ac doesn't allow disabling of Werror. Support would have to be added to .ac. > > > + > > +# configure.ac generates version.h from include/version.h.in but autotools puts > > +# build artefacts in $B, not $S and the header can't be found. To avoid > > +# inheriting autotools-brokensep and messing up the source dir just tell Makefile > > +# where it is. > > +TARGET_CFLAGS += "-I ${B}/include" > > Can we avoid using B here. The output file from AC_CONFIG_FILES goes to $B and this path isn't included automatically by autoconf. inheriting autotools-brokensep would avoid the problem. I can add another patch but there doesn't seem to be a variable for the output dir of this macro that I could use in cflags.. or at least I can't find it. > > > + > > +# Enable install of systemd conf files. > > +EXTRA_OECONF += "${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager', 'systemd', '--with-systemdsystemunitdir=${systemd_system_unitdir}', '', d)}" > > we should be checking for systemd in DISTRO_FEATURES here. Ok. > > > + > > +SYSTEMD_SERVICE_${PN} = "lldpad.service lldpad.socket" > > + > > +# To enable service at boot set to enable in local.conf. > > +SYSTEMD_AUTO_ENABLE ?= "disable" > > + > > +RRECOMMENDS_${PN} = "iproute2-tc" > > From raj.khem at gmail.com Wed Feb 26 23:28:19 2020 From: raj.khem at gmail.com (Khem Raj) Date: Wed, 26 Feb 2020 15:28:19 -0800 Subject: [oe] [meta-oe][PATCH v2 1/1] open-lldp: Add initial version 1.0.1 In-Reply-To: References: <20200226202909.18208-1-jonathan.richardson@broadcom.com> Message-ID: <72fec2ec-dc7e-7a7f-6062-8f4baca19ab5@gmail.com> On 2/26/20 2:54 PM, Jonathan Richardson wrote: > On Wed, Feb 26, 2020 at 12:34 PM Khem Raj wrote: >> >> Thanks Jonathan, I have few more comments. >> >> On 2/26/20 12:29 PM, Jonathan Richardson via Openembedded-devel wrote: >>> Open-LLDP provides a Link Layer Discovery Protocol agent that supports >>> DCB (Data Center Bridging). The tc utility from iproute is needed to >>> manipulate traffic control settings in the kernel. >>> >>> Signed-off-by: Jonathan Richardson >>> --- >>> .../0001-Fix-musl-libc-build-issue.patch | 25 ++++++++ >>> ...tion-to-disable-installation-of-syst.patch | 57 +++++++++++++++++++ >>> .../openlldp/openlldp_1.0.1.bb | 39 +++++++++++++ >>> 3 files changed, 121 insertions(+) >>> create mode 100644 meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch >>> create mode 100644 meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch >>> create mode 100644 meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb >>> >>> diff --git a/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch b/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch >>> new file mode 100644 >>> index 000000000..d8d5df218 >>> --- /dev/null >>> +++ b/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch >>> @@ -0,0 +1,25 @@ >>> +From b20d64f814c15efbd6a19aacfbfecf15083a83dc Mon Sep 17 00:00:00 2001 >>> +From: Jonathan Richardson >>> +Date: Wed, 26 Feb 2020 12:16:38 -0800 >>> +Subject: [PATCH] Fix musl libc build issue >>> + >>> +clif.h should include sys/types.h for the definition of pid_t. It fails >>> +to compile when using musl libc. >>> + >>> +Signed-off-by: Jonathan Richardson >>> +--- >>> + include/clif.h | 1 + >>> + 1 file changed, 1 insertion(+) >>> + >>> +diff --git a/include/clif.h b/include/clif.h >>> +index 648eedf..92f4fd8 100644 >>> +--- a/include/clif.h >>> ++++ b/include/clif.h >>> +@@ -32,6 +32,7 @@ >>> + #ifndef CLIF_H >>> + #define CLIF_H >>> + >>> ++#include >>> + #include >>> + #include "clif_sock.h" >>> + >>> diff --git a/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch >>> new file mode 100644 >>> index 000000000..86c9f4463 >>> --- /dev/null >>> +++ b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch >>> @@ -0,0 +1,57 @@ >>> +From 1c1e01b2414ca5b3cf5a21b6e6389f9ca82fd7e9 Mon Sep 17 00:00:00 2001 >>> +From: Jonathan Richardson >>> +Date: Fri, 6 Apr 2018 10:49:04 -0700 >>> +Subject: [PATCH 1/1] autotools: Add option to disable installation of systemd >>> + conf files >>> + >>> +Add option to configure.ac to enable or disable install of systemd conf >>> +files. If --with-systemdsystemunitdir is passed to configure then the >>> +files will be installed to the provided directory. If the option isn't >>> +provided then the value is determined from the systemd pkgconfig file, >>> +if found in PKG_CONFIG_PATH. >>> + >>> +This change is required because Makefile.am always installed the files >>> +to a hard coded path that couldn't be changed. >>> +--- >>> + Makefile.am | 3 ++- >>> + configure.ac | 9 +++++++++ >>> + 2 files changed, 11 insertions(+), 1 deletion(-) >>> + >>> +diff --git a/Makefile.am b/Makefile.am >>> +index 551d4c7..5491c61 100644 >>> +--- a/Makefile.am >>> ++++ b/Makefile.am >>> +@@ -133,8 +133,9 @@ install-data-hook: installdirs-local >>> + pkgconfigdir = ${libdir}/pkgconfig >>> + pkgconfig_DATA = lldpad.pc liblldp_clif.pc >>> + >>> +-systemdsystemunitdir = $(prefix)/lib/systemd/system >>> ++if HAVE_SYSTEMD >>> + dist_systemdsystemunit_DATA = lldpad.service lldpad.socket >>> ++endif >>> + >>> + bashcompletiondir = $(sysconfdir)/bash_completion.d >>> + dist_bashcompletion_DATA = contrib/bash_completion/lldpad contrib/bash_completion/lldptool >>> +diff --git a/configure.ac b/configure.ac >>> +index 0667446..f75f433 100644 >>> +--- a/configure.ac >>> ++++ b/configure.ac >>> +@@ -95,6 +95,15 @@ AC_TYPE_UINT16_T >>> + AC_TYPE_UINT32_T >>> + AC_TYPE_UINT8_T >>> + >>> ++# Support for systemd unit files. >>> ++AC_ARG_WITH([systemdsystemunitdir], >>> ++ AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]), >>> ++ [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]) >>> ++if test "x$with_systemdsystemunitdir" != xno; then >>> ++ AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) >>> ++fi >>> ++AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ]) >>> ++ >>> + AC_CONFIG_FILES([Makefile include/version.h lldpad.spec lldpad.pc liblldp_clif.pc]) >>> + AC_CONFIG_MACRO_DIR([m4]) >>> + AC_OUTPUT >>> +-- >>> +1.9.1 >>> + >>> diff --git a/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb b/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb >>> new file mode 100644 >>> index 000000000..ef8d780c6 >>> --- /dev/null >>> +++ b/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb >>> @@ -0,0 +1,39 @@ >>> +SUMMARY = "Open-LLDP" >>> +DESCRIPTION = "Link Layer Discovery Protocol for Linux that includes support for DCBX" >>> +HOMEPAGE = "http://open-lldp.org/start" >>> + >>> +LICENSE = "GPLv2" >>> +LIC_FILES_CHKSUM = "file://COPYING;md5=8c2bc283e65df398ced5f5b747e78162" >>> + >>> +S = "${WORKDIR}/git" >>> + >>> +inherit pkgconfig autotools >>> +inherit ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager', 'systemd', 'systemd', '', d)} >>> + >>> +DEPENDS = "libnl libconfig readline" >>> + >>> +SRCREV = "36d729de7ce5b56cf061d94d610cf0510154820c" >>> +SRC_URI = "git://github.com/intel/openlldp.git;protocol=https;branch=master \ >>> + file://0001-autotools-Add-option-to-disable-installation-of-syst.patch \ >>> + file://0001-Fix-musl-libc-build-issue.patch \ >>> + " >>> + >>> +# Even though .ac allows disabling -Werror, Makefile.am adds it to AM_CFLAGS >>> +# causing it to always be enabled. There are warnings so disable it. >>> +TARGET_CFLAGS += "-Wno-error" >> >> is there configure option --disable-werror, we should use that if available. > > No unfortunately it's not supported. I'll fix the comment. .ac doesn't > allow disabling > of Werror. Support would have to be added to .ac. OK, I think this should be fine. Ideally we should try to fix the warnings. > >> >>> + >>> +# configure.ac generates version.h from include/version.h.in but autotools puts >>> +# build artefacts in $B, not $S and the header can't be found. To avoid >>> +# inheriting autotools-brokensep and messing up the source dir just tell Makefile >>> +# where it is. >>> +TARGET_CFLAGS += "-I ${B}/include" >> >> Can we avoid using B here. > > The output file from AC_CONFIG_FILES goes to $B and this path isn't included > automatically by autoconf. inheriting autotools-brokensep would avoid > the problem. > I can add another patch but there doesn't seem to be a variable for > the output dir > of this macro that I could use in cflags.. or at least I can't find it. ah I see. Its perhaps using ${srcdir} in Makefile.am. I think you should be able to fix it by modifying AM_CPPFLAGS in Makefile.am to use I${top_builddir}/include, such a patch should be sent upstream as well to fix out of tree builds. Its a good thing. > >> >>> + >>> +# Enable install of systemd conf files. >>> +EXTRA_OECONF += "${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager', 'systemd', '--with-systemdsystemunitdir=${systemd_system_unitdir}', '', d)}" >> >> we should be checking for systemd in DISTRO_FEATURES here. > > Ok. > >> >>> + >>> +SYSTEMD_SERVICE_${PN} = "lldpad.service lldpad.socket" >>> + >>> +# To enable service at boot set to enable in local.conf. >>> +SYSTEMD_AUTO_ENABLE ?= "disable" >>> + >>> +RRECOMMENDS_${PN} = "iproute2-tc" >>> From peter.kjellerstedt at axis.com Wed Feb 26 23:38:53 2020 From: peter.kjellerstedt at axis.com (Peter Kjellerstedt) Date: Wed, 26 Feb 2020 23:38:53 +0000 Subject: [oe] [meta-oe][zeus][PATCH 1/2] libldb: Do not require the "pam" distro feature to be enabled In-Reply-To: References: <20200130210409.29802-1-pkj@axis.com> Message-ID: <92dc761a5b4847109b4889eedeeaa335@XBOX03.axis.com> > -----Original Message----- > From: akuster808 > Sent: den 31 januari 2020 18:34 > To: Peter Kjellerstedt ; openembedded- > devel at lists.openembedded.org > Subject: Re: [oe] [meta-oe][zeus][PATCH 1/2] libldb: Do not require the > "pam" distro feature to be enabled > > On 1/30/20 1:04 PM, Peter Kjellerstedt wrote: > > From: Peter Kjellerstedt > > > > It was only added because samba was a dependency, but was not removed > > again when the dependency on samba was removed in commit 6207331f. > > > > This effectively reverts commit a190c2e3. > I have an update to this package staged. I apply this on top of that. > > https://git.openembedded.org/meta-openembedded-contrib/commit/?h=stable/zeus-nut&id=f64c2d691ea597aa6221e3d7706a4d022e07bfea > > - armin Did you forget about this? It didn't make it in when libldb was updated to 1.5.6, and it is not in stable/zeus-nut now. //Peter > > Signed-off-by: Peter Kjellerstedt > > Signed-off-by: Khem Raj > > --- > > meta-networking/recipes-support/libldb/libldb_1.5.5.bb | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/meta-networking/recipes-support/libldb/libldb_1.5.5.bb b/meta-networking/recipes-support/libldb/libldb_1.5.5.bb > > index b19c964d8..9a93e66b6 100644 > > --- a/meta-networking/recipes-support/libldb/libldb_1.5.5.bb > > +++ b/meta-networking/recipes-support/libldb/libldb_1.5.5.bb > > @@ -36,8 +36,7 @@ LIC_FILES_CHKSUM = "file://pyldb.h;endline=24;md5=dfbd238cecad76957f7f860fbe9ada > > SRC_URI[md5sum] = "339a41ac9efaec680e6d1469dd9aa35b" > > SRC_URI[sha256sum] = "199f5861aa863f538ec66d5fa95ecc13254a2030c53daf0e47363fa9ba235c68" > > > > -inherit waf-samba distro_features_check > > -REQUIRED_DISTRO_FEATURES = "pam" > > +inherit waf-samba > > > > S = "${WORKDIR}/ldb-${PV}" > > From jonathan.richardson at broadcom.com Thu Feb 27 00:32:40 2020 From: jonathan.richardson at broadcom.com (Jonathan Richardson) Date: Wed, 26 Feb 2020 16:32:40 -0800 Subject: [oe] [meta-oe][PATCH v3 1/1] open-lldp: Add initial version 1.0.1 Message-ID: <20200227003240.76088-1-jonathan.richardson@broadcom.com> Open-LLDP provides a Link Layer Discovery Protocol agent that supports DCB (Data Center Bridging). The tc utility from iproute is needed to manipulate traffic control settings in the kernel. Signed-off-by: Jonathan Richardson --- .../0001-Fix-musl-libc-build-issue.patch | 26 +++++++++ ...-include-path-to-generated-version.h.patch | 29 ++++++++++ ...tion-to-disable-installation-of-syst.patch | 57 +++++++++++++++++++ .../openlldp/openlldp_1.0.1.bb | 33 +++++++++++ 4 files changed, 145 insertions(+) create mode 100644 meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch create mode 100644 meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-include-path-to-generated-version.h.patch create mode 100644 meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch create mode 100644 meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb diff --git a/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch b/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch new file mode 100644 index 000000000..40b082e77 --- /dev/null +++ b/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch @@ -0,0 +1,26 @@ +From a64e52f9b58519aa2b8a1073fa6c04da04933428 Mon Sep 17 00:00:00 2001 +From: Jonathan Richardson +Date: Wed, 26 Feb 2020 12:16:38 -0800 +Subject: [PATCH] Fix musl libc build issue + +clif.h should include sys/types.h for the definition of pid_t. It fails +to compile when using musl libc. + +Signed-off-by: Jonathan Richardson + +--- + include/clif.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/include/clif.h b/include/clif.h +index 648eedf..92f4fd8 100644 +--- a/include/clif.h ++++ b/include/clif.h +@@ -32,6 +32,7 @@ + #ifndef CLIF_H + #define CLIF_H + ++#include + #include + #include "clif_sock.h" + diff --git a/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-include-path-to-generated-version.h.patch b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-include-path-to-generated-version.h.patch new file mode 100644 index 000000000..b58fc104d --- /dev/null +++ b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-include-path-to-generated-version.h.patch @@ -0,0 +1,29 @@ +From eb14aa66dc0384071af401cced8c02993b55502e Mon Sep 17 00:00:00 2001 +From: Jonathan Richardson +Date: Wed, 26 Feb 2020 15:54:51 -0800 +Subject: [PATCH] autotools: Add include path to generated version.h + +When the build dir isn't the same as source dir it fails to compile +because the generated version.h from AC_CONFIG_FILES is always in build +dir. Include the path to it in AM_CPPFLAGS. + +Signed-off-by: Jonathan Richardson + +--- + Makefile.am | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/Makefile.am b/Makefile.am +index 0fb9bb0..2952019 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -14,6 +14,9 @@ endif + AM_CPPFLAGS = -I${srcdir}/include -DSYSCONFDIR="\"${sysconfdir}\"" \ + -D_FORTIFY_SOURCE=2 + ++# Required for the generated version.h when build dir is not the same as srcdir. ++AM_CPPFLAGS += -I${top_builddir}/include ++ + ACLOCAL_AMFLAGS = -I m4 + + parse_cli.o: CFLAGS+=-U_FORTIFY_SOURCE -Wno-error diff --git a/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch new file mode 100644 index 000000000..a26a5299a --- /dev/null +++ b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch @@ -0,0 +1,57 @@ +From dc3f2250908587710f109c80ddf8a94f0bc40b82 Mon Sep 17 00:00:00 2001 +From: Jonathan Richardson +Date: Fri, 6 Apr 2018 10:49:04 -0700 +Subject: [PATCH] autotools: Add option to disable installation of systemd conf + files + +Add option to configure.ac to enable or disable install of systemd conf +files. If --with-systemdsystemunitdir is passed to configure then the +files will be installed to the provided directory. If the option isn't +provided then the value is determined from the systemd pkgconfig file, +if found in PKG_CONFIG_PATH. + +This change is required because Makefile.am always installed the files +to a hard coded path that couldn't be changed. + + +Signed-off-by: Jonathan Richardson +--- + Makefile.am | 3 ++- + configure.ac | 9 +++++++++ + 2 files changed, 11 insertions(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index 292c0fd..0fb9bb0 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -138,8 +138,9 @@ install-data-hook: installdirs-local + pkgconfigdir = ${libdir}/pkgconfig + pkgconfig_DATA = lldpad.pc liblldp_clif.pc + +-systemdsystemunitdir = $(prefix)/lib/systemd/system ++if HAVE_SYSTEMD + dist_systemdsystemunit_DATA = lldpad.service lldpad.socket ++endif + + bashcompletiondir = $(sysconfdir)/bash_completion.d + dist_bashcompletion_DATA = contrib/bash_completion/lldpad contrib/bash_completion/lldptool +diff --git a/configure.ac b/configure.ac +index 0667446..f75f433 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -95,6 +95,15 @@ AC_TYPE_UINT16_T + AC_TYPE_UINT32_T + AC_TYPE_UINT8_T + ++# Support for systemd unit files. ++AC_ARG_WITH([systemdsystemunitdir], ++ AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]), ++ [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]) ++if test "x$with_systemdsystemunitdir" != xno; then ++ AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) ++fi ++AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ]) ++ + AC_CONFIG_FILES([Makefile include/version.h lldpad.spec lldpad.pc liblldp_clif.pc]) + AC_CONFIG_MACRO_DIR([m4]) + AC_OUTPUT diff --git a/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb b/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb new file mode 100644 index 000000000..5fbf0645e --- /dev/null +++ b/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb @@ -0,0 +1,33 @@ +SUMMARY = "Open-LLDP" +DESCRIPTION = "Link Layer Discovery Protocol for Linux that includes support for DCBX" +HOMEPAGE = "http://open-lldp.org/start" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=8c2bc283e65df398ced5f5b747e78162" + +S = "${WORKDIR}/git" + +inherit pkgconfig autotools +inherit ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} + +DEPENDS = "libnl libconfig readline" + +SRCREV = "36d729de7ce5b56cf061d94d610cf0510154820c" +SRC_URI = "git://github.com/intel/openlldp.git;protocol=https;branch=master \ + file://0001-Fix-musl-libc-build-issue.patch \ + file://0001-autotools-Add-include-path-to-generated-version.h.patch \ + file://0001-autotools-Add-option-to-disable-installation-of-syst.patch \ + " + +# Makefile.am adds -Werror to AM_CFLAGS. There are warnings so disable it. +TARGET_CFLAGS += "-Wno-error" + +# Enable install of systemd conf files. +EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_system_unitdir}', '', d)}" + +SYSTEMD_SERVICE_${PN} = "lldpad.service lldpad.socket" + +# To enable service at boot set to enable in local.conf. +SYSTEMD_AUTO_ENABLE ?= "disable" + +RRECOMMENDS_${PN} = "iproute2-tc" -- 2.17.1 From peter.kjellerstedt at axis.com Thu Feb 27 00:44:44 2020 From: peter.kjellerstedt at axis.com (Peter Kjellerstedt) Date: Thu, 27 Feb 2020 00:44:44 +0000 Subject: [oe] [meta-oe][PATCH] lvm2/libdevmapper: Make it build for native In-Reply-To: References: <20190911145254.15693-1-pkj@axis.com> Message-ID: <9256632edce94fb9acfe6ab466f88c0a@XBOX03.axis.com> > -----Original Message----- > From: Andrey Zhizhikin > Sent: den 25 februari 2020 10:46 > To: Peter Kjellerstedt > Cc: openembeded-devel ; Richard > Purdie > Subject: Re: [oe] [meta-oe][PATCH] lvm2/libdevmapper: Make it build for > native > > Hello all, > > I've just faced the problem with building lvm2 of the [zeus] and it > looks like this patch causes issues with similar symptoms that has > been reported for bash CVE [1]. > > This patch also touches the configure part, and in case if `-c > cleanall` is used - the build succeeds. > > Failed build log looks like following: > ERROR: lvm2-2.03.02-r0 do_patch: Command Error: 'quilt --quiltrc > /development/projects/build-output/work/corei7-64-poky-linux/lvm2/2.03.02- > r0/recipe-sysroot-native/etc/quiltrc > push' exited with 0 Output: > Applying patch 0001-configure-Fix-setting-of-CLDFLAGS-default.patch > patching file configure > Hunk #1 FAILED at 3077. > Hunk #2 FAILED at 3098. > Hunk #3 FAILED at 3111. > 3 out of 3 hunks FAILED -- rejects in file configure > patching file configure.ac > Hunk #2 succeeded at 50 (offset -1 lines). > Hunk #3 succeeded at 63 (offset -1 lines). > Patch 0001-configure-Fix-setting-of-CLDFLAGS-default.patch does not > apply (enforce with -f) > ERROR: Logfile of failure stored in: > /development/projects/build-output/work/corei7-64-poky-linux/lvm2/2.03.02- > r0/temp/log.do_patch.10047 > ERROR: Task (/development/projects/yocto-build-appliance/meta- > openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.02.bb:do_patch) > failed with exit code '1' > > Since there was no decision (yet) taken on the bash one - can we > combine those two together to find a common solution for both cases? I don't know anything about the bash patch, but since I backported the one for lvm2/libdevmapper, I will fix it. I was actually hit by this problem just a few minutes after reading this mail when I was updating to Poky Zeus 22.0.2. Anyway, the fix is simple, as suggested by Richard in the bash thread: just remove the patching of configure. //Peter > On Wed, Sep 11, 2019 at 4:53 PM Peter Kjellerstedt > wrote: > > > > Backport a patch from upstream master that corrects the passing of > > link flags through configure. > > > > Signed-off-by: Peter Kjellerstedt > > --- > > ...gure-Fix-setting-of-CLDFLAGS-default.patch | 78 +++++++++++++++++++ > > meta-oe/recipes-support/lvm2/lvm2.inc | 1 + > > 2 files changed, 79 insertions(+) > > create mode 100644 meta-oe/recipes-support/lvm2/files/0001-configure- > Fix-setting-of-CLDFLAGS-default.patch > > > > diff --git a/meta-oe/recipes-support/lvm2/files/0001-configure-Fix- > setting-of-CLDFLAGS-default.patch b/meta-oe/recipes- > support/lvm2/files/0001-configure-Fix-setting-of-CLDFLAGS-default.patch > > new file mode 100644 > > index 000000000..07cb88ffb > > --- /dev/null > > +++ b/meta-oe/recipes-support/lvm2/files/0001-configure-Fix-setting-of- > CLDFLAGS-default.patch > > @@ -0,0 +1,78 @@ > > +From 4a3e707402032788e09282e0f54fdf82c8a0f8fc Mon Sep 17 00:00:00 2001 > > +From: Marian Csontos > > +Date: Mon, 19 Aug 2019 14:54:43 +0200 > > +Subject: [PATCH] configure: Fix setting of CLDFLAGS default > > + > > +--- > > + configure | 6 +++--- > > + configure.ac | 6 +++--- > > + 2 files changed, 6 insertions(+), 6 deletions(-) > > + > > +Upstream-Status: Backport > [https://sourceware.org/git/?p=lvm2.git;a=commit;h=4a3e707402032788e09282e > 0f54fdf82c8a0f8fc] > > +Signed-off-by: Peter Kjellerstedt > > + > > +diff --git a/configure b/configure > > +index ff3a59b6b..4c8476502 100755 > > +--- a/configure > > ++++ b/configure > > +@@ -3077,7 +3077,7 @@ if test -z "$CFLAGS"; then : > > + fi > > + case "$host_os" in > > + linux*) > > +- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"} -Wl,--version- > script,.export.sym" > > ++ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"} -Wl,--version- > script,.export.sym" > > + # equivalent to -rdynamic > > + ELDFLAGS="-Wl,--export-dynamic" > > + # FIXME Generate list and use --dynamic-list=.dlopen.sym > > +@@ -3098,7 +3098,7 @@ case "$host_os" in > > + ;; > > + darwin*) > > + CFLAGS="$CFLAGS -no-cpp-precomp -fno-common" > > +- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"}" > > ++ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"}" > > + ELDFLAGS= > > + CLDWHOLEARCHIVE="-all_load" > > + CLDNOWHOLEARCHIVE= > > +@@ -3111,7 +3111,7 @@ case "$host_os" in > > + BLKDEACTIVATE=no > > + ;; > > + *) > > +- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"}" > > ++ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"}" > > + ;; > > + esac > > + > > +diff --git a/configure.ac b/configure.ac > > +index 5da694631..830edb8da 100644 > > +--- a/configure.ac > > ++++ b/configure.ac > > +@@ -30,7 +30,7 @@ AC_CANONICAL_TARGET([]) > > + AS_IF([test -z "$CFLAGS"], [COPTIMISE_FLAG="-O2"]) > > + case "$host_os" in > > + linux*) > > +- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"} -Wl,--version- > script,.export.sym" > > ++ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"} -Wl,--version- > script,.export.sym" > > + # equivalent to -rdynamic > > + ELDFLAGS="-Wl,--export-dynamic" > > + # FIXME Generate list and use --dynamic-list=.dlopen.sym > > +@@ -51,7 +51,7 @@ case "$host_os" in > > + ;; > > + darwin*) > > + CFLAGS="$CFLAGS -no-cpp-precomp -fno-common" > > +- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"}" > > ++ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"}" > > + ELDFLAGS= > > + CLDWHOLEARCHIVE="-all_load" > > + CLDNOWHOLEARCHIVE= > > +@@ -64,7 +64,7 @@ case "$host_os" in > > + BLKDEACTIVATE=no > > + ;; > > + *) > > +- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"}" > > ++ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"}" > > + ;; > > + esac > > + > > +-- > > +2.21.0 > > + > > diff --git a/meta-oe/recipes-support/lvm2/lvm2.inc b/meta-oe/recipes- > support/lvm2/lvm2.inc > > index f358663b0..6c95bfd02 100644 > > --- a/meta-oe/recipes-support/lvm2/lvm2.inc > > +++ b/meta-oe/recipes-support/lvm2/lvm2.inc > > @@ -15,6 +15,7 @@ SRC_URI = > "https://sourceware.org/pub/lvm2/LVM2.${PV}.tgz \ > > file://0001-Avoid-bashisms-in-init-scripts.patch \ > > file://0005-do-not-build-manual.patch \ > > file://0006-start-lvm2-monitor.service-after-tmp.mount.patch > \ > > + file://0001-configure-Fix-setting-of-CLDFLAGS-default.patch > \ > > " > > SRC_URI[md5sum] = "5fc07da5461a3794a751dcfc355827d5" > > SRC_URI[sha256sum] = > "550ba750239fd75b7e52c9877565cabffef506bbf6d7f6f17b9700dee56c720f" > > -- > > 2.21.0 > > > > -- > > _______________________________________________ > > Openembedded-devel mailing list > > Openembedded-devel at lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > > [1]: http://lists.openembedded.org/pipermail/openembedded-core/2020- > February/292991.html > > -- > Regards, > Andrey. From pkj at axis.com Thu Feb 27 00:46:19 2020 From: pkj at axis.com (Peter Kjellerstedt) Date: Thu, 27 Feb 2020 01:46:19 +0100 Subject: [oe] [meta-oe][zeus][PATCH] lvm2, libdevmapper: Do not patch configure Message-ID: <20200227004619.16908-1-pkj@axis.com> Since the do_configure task regenerates the configure scripte, there is no need to patch it. Actually doing so will cause problems, which can be seen by doing: bitbake lvm2 -c configure bitbake lvm2 -c patch -f Reported-by: Andrey Zhizhikin Signed-off-by: Peter Kjellerstedt --- ...gure-Fix-setting-of-CLDFLAGS-default.patch | 34 +------------------ 1 file changed, 1 insertion(+), 33 deletions(-) diff --git a/meta-oe/recipes-support/lvm2/files/0001-configure-Fix-setting-of-CLDFLAGS-default.patch b/meta-oe/recipes-support/lvm2/files/0001-configure-Fix-setting-of-CLDFLAGS-default.patch index 07cb88ffb..91ab239f3 100644 --- a/meta-oe/recipes-support/lvm2/files/0001-configure-Fix-setting-of-CLDFLAGS-default.patch +++ b/meta-oe/recipes-support/lvm2/files/0001-configure-Fix-setting-of-CLDFLAGS-default.patch @@ -4,44 +4,12 @@ Date: Mon, 19 Aug 2019 14:54:43 +0200 Subject: [PATCH] configure: Fix setting of CLDFLAGS default --- - configure | 6 +++--- configure.ac | 6 +++--- - 2 files changed, 6 insertions(+), 6 deletions(-) + 1 file changed, 3 insertions(+), 3 deletions(-) Upstream-Status: Backport [https://sourceware.org/git/?p=lvm2.git;a=commit;h=4a3e707402032788e09282e0f54fdf82c8a0f8fc] Signed-off-by: Peter Kjellerstedt -diff --git a/configure b/configure -index ff3a59b6b..4c8476502 100755 ---- a/configure -+++ b/configure -@@ -3077,7 +3077,7 @@ if test -z "$CFLAGS"; then : - fi - case "$host_os" in - linux*) -- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"} -Wl,--version-script,.export.sym" -+ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"} -Wl,--version-script,.export.sym" - # equivalent to -rdynamic - ELDFLAGS="-Wl,--export-dynamic" - # FIXME Generate list and use --dynamic-list=.dlopen.sym -@@ -3098,7 +3098,7 @@ case "$host_os" in - ;; - darwin*) - CFLAGS="$CFLAGS -no-cpp-precomp -fno-common" -- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"}" -+ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"}" - ELDFLAGS= - CLDWHOLEARCHIVE="-all_load" - CLDNOWHOLEARCHIVE= -@@ -3111,7 +3111,7 @@ case "$host_os" in - BLKDEACTIVATE=no - ;; - *) -- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"}" -+ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"}" - ;; - esac - diff --git a/configure.ac b/configure.ac index 5da694631..830edb8da 100644 --- a/configure.ac -- 2.21.1 From pkj at axis.com Thu Feb 27 00:48:50 2020 From: pkj at axis.com (Peter Kjellerstedt) Date: Thu, 27 Feb 2020 01:48:50 +0100 Subject: [oe] [meta-oe][zeus][PATCHv2] lvm2, libdevmapper: Do not patch configure Message-ID: <20200227004850.23746-1-pkj@axis.com> Since the do_configure task regenerates the configure script, there is no need to patch it. Actually doing so will cause problems, which can be seen by doing: bitbake lvm2 -c configure bitbake lvm2 -c patch -f Reported-by: Andrey Zhizhikin Signed-off-by: Peter Kjellerstedt --- PATCHv2: Corrcted a typo (scripte -> script). ...gure-Fix-setting-of-CLDFLAGS-default.patch | 34 +------------------ 1 file changed, 1 insertion(+), 33 deletions(-) diff --git a/meta-oe/recipes-support/lvm2/files/0001-configure-Fix-setting-of-CLDFLAGS-default.patch b/meta-oe/recipes-support/lvm2/files/0001-configure-Fix-setting-of-CLDFLAGS-default.patch index 07cb88ffb..91ab239f3 100644 --- a/meta-oe/recipes-support/lvm2/files/0001-configure-Fix-setting-of-CLDFLAGS-default.patch +++ b/meta-oe/recipes-support/lvm2/files/0001-configure-Fix-setting-of-CLDFLAGS-default.patch @@ -4,44 +4,12 @@ Date: Mon, 19 Aug 2019 14:54:43 +0200 Subject: [PATCH] configure: Fix setting of CLDFLAGS default --- - configure | 6 +++--- configure.ac | 6 +++--- - 2 files changed, 6 insertions(+), 6 deletions(-) + 1 file changed, 3 insertions(+), 3 deletions(-) Upstream-Status: Backport [https://sourceware.org/git/?p=lvm2.git;a=commit;h=4a3e707402032788e09282e0f54fdf82c8a0f8fc] Signed-off-by: Peter Kjellerstedt -diff --git a/configure b/configure -index ff3a59b6b..4c8476502 100755 ---- a/configure -+++ b/configure -@@ -3077,7 +3077,7 @@ if test -z "$CFLAGS"; then : - fi - case "$host_os" in - linux*) -- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"} -Wl,--version-script,.export.sym" -+ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"} -Wl,--version-script,.export.sym" - # equivalent to -rdynamic - ELDFLAGS="-Wl,--export-dynamic" - # FIXME Generate list and use --dynamic-list=.dlopen.sym -@@ -3098,7 +3098,7 @@ case "$host_os" in - ;; - darwin*) - CFLAGS="$CFLAGS -no-cpp-precomp -fno-common" -- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"}" -+ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"}" - ELDFLAGS= - CLDWHOLEARCHIVE="-all_load" - CLDNOWHOLEARCHIVE= -@@ -3111,7 +3111,7 @@ case "$host_os" in - BLKDEACTIVATE=no - ;; - *) -- CLDFLAGS="${CLDFLAGS:"$LDFLAGS"}" -+ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"}" - ;; - esac - diff --git a/configure.ac b/configure.ac index 5da694631..830edb8da 100644 --- a/configure.ac -- 2.21.1 From denis at denix.org Thu Feb 27 01:03:07 2020 From: denis at denix.org (Denys Dmytriyenko) Date: Wed, 26 Feb 2020 20:03:07 -0500 Subject: [oe] [PATCH] can-utils: update to v2020.02.04 Message-ID: <1582765387-17990-1-git-send-email-denis@denix.org> From: Denys Dmytriyenko https://github.com/linux-can/can-utils/releases/tag/v2020.02.04 This version is required to build against kernel > 5.2 While at it, drop redundant DESCRIPTION and branch=master Signed-off-by: Denys Dmytriyenko --- meta-oe/recipes-extended/socketcan/can-utils_git.bb | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/meta-oe/recipes-extended/socketcan/can-utils_git.bb b/meta-oe/recipes-extended/socketcan/can-utils_git.bb index e2609d4..6114bda 100644 --- a/meta-oe/recipes-extended/socketcan/can-utils_git.bb +++ b/meta-oe/recipes-extended/socketcan/can-utils_git.bb @@ -1,17 +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=44;md5=a9e1169c6c9a114a61329e99f86fdd31" DEPENDS = "libsocketcan" -SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git;branch=master" +SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git" -SRCREV = "665d8699ebe728bf48e63e8ae58d2482db72f954" +SRCREV = "da65fdfe0d1986625ee00af0b56ae17ec132e700" -PV = "0.0+gitr${SRCPV}" +PV = "2020.02.04+gitr${SRCPV}" S = "${WORKDIR}/git" inherit autotools pkgconfig - -- 2.7.4 From raj.khem at gmail.com Thu Feb 27 01:39:17 2020 From: raj.khem at gmail.com (Khem Raj) Date: Wed, 26 Feb 2020 17:39:17 -0800 Subject: [oe] [PATCH] can-utils: update to v2020.02.04 In-Reply-To: <1582765387-17990-1-git-send-email-denis@denix.org> References: <1582765387-17990-1-git-send-email-denis@denix.org> Message-ID: <2688512e-5b56-9881-8b8b-d5d215453587@gmail.com> On 2/26/20 5:03 PM, Denys Dmytriyenko wrote: > From: Denys Dmytriyenko > > https://github.com/linux-can/can-utils/releases/tag/v2020.02.04 > > This version is required to build against kernel > 5.2 > > While at it, drop redundant DESCRIPTION and branch=master > > Signed-off-by: Denys Dmytriyenko > --- > meta-oe/recipes-extended/socketcan/can-utils_git.bb | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > diff --git a/meta-oe/recipes-extended/socketcan/can-utils_git.bb b/meta-oe/recipes-extended/socketcan/can-utils_git.bb > index e2609d4..6114bda 100644 > --- a/meta-oe/recipes-extended/socketcan/can-utils_git.bb > +++ b/meta-oe/recipes-extended/socketcan/can-utils_git.bb > @@ -1,17 +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=44;md5=a9e1169c6c9a114a61329e99f86fdd31" > > DEPENDS = "libsocketcan" > > -SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git;branch=master" > +SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git" > > -SRCREV = "665d8699ebe728bf48e63e8ae58d2482db72f954" > +SRCREV = "da65fdfe0d1986625ee00af0b56ae17ec132e700" > > -PV = "0.0+gitr${SRCPV}" > +PV = "2020.02.04+gitr${SRCPV}" Since SRCREV is pointing to exact 2020.02.04 release we can drop gitr+... > > S = "${WORKDIR}/git" > > inherit autotools pkgconfig > - > From denis at denix.org Thu Feb 27 01:40:50 2020 From: denis at denix.org (Denys Dmytriyenko) Date: Wed, 26 Feb 2020 20:40:50 -0500 Subject: [oe] [PATCH] can-utils: update to v2020.02.04 In-Reply-To: <2688512e-5b56-9881-8b8b-d5d215453587@gmail.com> References: <1582765387-17990-1-git-send-email-denis@denix.org> <2688512e-5b56-9881-8b8b-d5d215453587@gmail.com> Message-ID: <20200227014050.GD1578@denix.org> On Wed, Feb 26, 2020 at 05:39:17PM -0800, Khem Raj wrote: > > > On 2/26/20 5:03 PM, Denys Dmytriyenko wrote: > >From: Denys Dmytriyenko > > > >https://github.com/linux-can/can-utils/releases/tag/v2020.02.04 > > > >This version is required to build against kernel > 5.2 > > > >While at it, drop redundant DESCRIPTION and branch=master > > > >Signed-off-by: Denys Dmytriyenko > >--- > > meta-oe/recipes-extended/socketcan/can-utils_git.bb | 8 +++----- > > 1 file changed, 3 insertions(+), 5 deletions(-) > > > >diff --git a/meta-oe/recipes-extended/socketcan/can-utils_git.bb b/meta-oe/recipes-extended/socketcan/can-utils_git.bb > >index e2609d4..6114bda 100644 > >--- a/meta-oe/recipes-extended/socketcan/can-utils_git.bb > >+++ b/meta-oe/recipes-extended/socketcan/can-utils_git.bb > >@@ -1,17 +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=44;md5=a9e1169c6c9a114a61329e99f86fdd31" > > DEPENDS = "libsocketcan" > >-SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git;branch=master" > >+SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git" > >-SRCREV = "665d8699ebe728bf48e63e8ae58d2482db72f954" > >+SRCREV = "da65fdfe0d1986625ee00af0b56ae17ec132e700" > >-PV = "0.0+gitr${SRCPV}" > >+PV = "2020.02.04+gitr${SRCPV}" > > Since SRCREV is pointing to exact 2020.02.04 release we can drop gitr+... Not for long, I'm afraid. Do you want v2? > > S = "${WORKDIR}/git" > > inherit autotools pkgconfig > >- > > > From raj.khem at gmail.com Thu Feb 27 01:42:38 2020 From: raj.khem at gmail.com (Khem Raj) Date: Wed, 26 Feb 2020 17:42:38 -0800 Subject: [oe] [PATCH] can-utils: update to v2020.02.04 In-Reply-To: <20200227014050.GD1578@denix.org> References: <1582765387-17990-1-git-send-email-denis@denix.org> <2688512e-5b56-9881-8b8b-d5d215453587@gmail.com> <20200227014050.GD1578@denix.org> Message-ID: <727865e1-082c-4703-b131-3d533c5157f8@gmail.com> On 2/26/20 5:40 PM, Denys Dmytriyenko wrote: > On Wed, Feb 26, 2020 at 05:39:17PM -0800, Khem Raj wrote: >> >> >> On 2/26/20 5:03 PM, Denys Dmytriyenko wrote: >>> From: Denys Dmytriyenko >>> >>> https://github.com/linux-can/can-utils/releases/tag/v2020.02.04 >>> >>> This version is required to build against kernel > 5.2 >>> >>> While at it, drop redundant DESCRIPTION and branch=master >>> >>> Signed-off-by: Denys Dmytriyenko >>> --- >>> meta-oe/recipes-extended/socketcan/can-utils_git.bb | 8 +++----- >>> 1 file changed, 3 insertions(+), 5 deletions(-) >>> >>> diff --git a/meta-oe/recipes-extended/socketcan/can-utils_git.bb b/meta-oe/recipes-extended/socketcan/can-utils_git.bb >>> index e2609d4..6114bda 100644 >>> --- a/meta-oe/recipes-extended/socketcan/can-utils_git.bb >>> +++ b/meta-oe/recipes-extended/socketcan/can-utils_git.bb >>> @@ -1,17 +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=44;md5=a9e1169c6c9a114a61329e99f86fdd31" >>> DEPENDS = "libsocketcan" >>> -SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git;branch=master" >>> +SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git" >>> -SRCREV = "665d8699ebe728bf48e63e8ae58d2482db72f954" >>> +SRCREV = "da65fdfe0d1986625ee00af0b56ae17ec132e700" >>> -PV = "0.0+gitr${SRCPV}" >>> +PV = "2020.02.04+gitr${SRCPV}" >> >> Since SRCREV is pointing to exact 2020.02.04 release we can drop gitr+... > > Not for long, I'm afraid. Do you want v2? as long as we can, yes v2 would be good. > > >>> S = "${WORKDIR}/git" >>> inherit autotools pkgconfig >>> - >>> >> From denis at denix.org Thu Feb 27 01:49:21 2020 From: denis at denix.org (Denys Dmytriyenko) Date: Wed, 26 Feb 2020 20:49:21 -0500 Subject: [oe] [PATCH v2] can-utils: update to v2020.02.04 Message-ID: <1582768161-22966-1-git-send-email-denis@denix.org> From: Denys Dmytriyenko https://github.com/linux-can/can-utils/releases/tag/v2020.02.04 This version is required to build against kernel > 5.2 While at it, drop redundant DESCRIPTION and branch=master Signed-off-by: Denys Dmytriyenko --- v2 - also drop SRCPV while pointing to exact release commit meta-oe/recipes-extended/socketcan/can-utils_git.bb | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/meta-oe/recipes-extended/socketcan/can-utils_git.bb b/meta-oe/recipes-extended/socketcan/can-utils_git.bb index e2609d4..5193688 100644 --- a/meta-oe/recipes-extended/socketcan/can-utils_git.bb +++ b/meta-oe/recipes-extended/socketcan/can-utils_git.bb @@ -1,17 +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=44;md5=a9e1169c6c9a114a61329e99f86fdd31" DEPENDS = "libsocketcan" -SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git;branch=master" +SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git" -SRCREV = "665d8699ebe728bf48e63e8ae58d2482db72f954" +SRCREV = "da65fdfe0d1986625ee00af0b56ae17ec132e700" -PV = "0.0+gitr${SRCPV}" +PV = "2020.02.04" S = "${WORKDIR}/git" inherit autotools pkgconfig - -- 2.7.4 From changqing.li at windriver.com Thu Feb 27 03:38:54 2020 From: changqing.li at windriver.com (changqing.li at windriver.com) Date: Thu, 27 Feb 2020 11:38:54 +0800 Subject: [oe] [meta-networking][PATCH] cyrus-sasl: fix CVE-2019-19906 Message-ID: <1582774734-157200-1-git-send-email-changqing.li@windriver.com> From: Changqing Li Signed-off-by: Changqing Li --- .../cyrus-sasl/cyrus-sasl/CVE-2019-19906.patch | 35 ++++++++++++++++++++++ .../cyrus-sasl/cyrus-sasl_2.1.27.bb | 1 + 2 files changed, 36 insertions(+) create mode 100644 meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/CVE-2019-19906.patch diff --git a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/CVE-2019-19906.patch b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/CVE-2019-19906.patch new file mode 100644 index 0000000..b94780f --- /dev/null +++ b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/CVE-2019-19906.patch @@ -0,0 +1,35 @@ +From 94fe6eb9ea2691f4a7c32fbf2d0c7c454995b666 Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Thu, 27 Feb 2020 11:08:57 +0800 +Subject: [PATCH] Fix #587 + +Off by one error in common.c, CVE-2019-19906. + +Thanks to Stephan Zeisberg for reporting + +CVE: CVE-2019-19906 + +Upstream-Stauts: Backport [https://github.com/cyrusimap/cyrus-sasl +/commit/dcc9f51cbd4ed622cfb0f9b1c141eb2ffe3b12f1] + +Signed-off-by: Changqing Li +--- + lib/common.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/common.c b/lib/common.c +index 305311d..445c5d5 100644 +--- a/lib/common.c ++++ b/lib/common.c +@@ -190,7 +190,7 @@ int _sasl_add_string(char **out, size_t *alloclen, + + if (add==NULL) add = "(null)"; + +- addlen=strlen(add); /* only compute once */ ++ addlen=strlen(add)+1; /* only compute once */ + if (_buf_alloc(out, alloclen, (*outlen)+addlen)!=SASL_OK) + return SASL_NOMEM; + +-- +2.7.4 + diff --git a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb index be7131d..d55dc4a 100644 --- a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb +++ b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb @@ -16,6 +16,7 @@ SRC_URI = "git://github.com/cyrusimap/cyrus-sasl;protocol=https \ file://0004-configure.ac-fix-condition-for-suppliment-snprintf-i.patch \ file://0001-Allow-saslauthd-to-be-built-outside-of-source-tree-w.patch \ file://0001-makeinit.sh-fix-parallel-build-issue.patch \ + file://CVE-2019-19906.patch \ " UPSTREAM_CHECK_URI = "https://github.com/cyrusimap/cyrus-sasl/archives" -- 2.7.4 From wangmy at cn.fujitsu.com Thu Feb 27 12:43:11 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Thu, 27 Feb 2020 04:43:11 -0800 Subject: [oe] [meta-networking][PATCH] drbd-utils: upgrade 9.11.0 -> 9.12.0 Message-ID: <1582807398-13955-1-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../drbd/{drbd-utils_9.11.0.bb => drbd-utils_9.12.0.bb} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename meta-networking/recipes-support/drbd/{drbd-utils_9.11.0.bb => drbd-utils_9.12.0.bb} (93%) diff --git a/meta-networking/recipes-support/drbd/drbd-utils_9.11.0.bb b/meta-networking/recipes-support/drbd/drbd-utils_9.12.0.bb similarity index 93% rename from meta-networking/recipes-support/drbd/drbd-utils_9.11.0.bb rename to meta-networking/recipes-support/drbd/drbd-utils_9.12.0.bb index 01bb16af9..b83f68f8c 100644 --- a/meta-networking/recipes-support/drbd/drbd-utils_9.11.0.bb +++ b/meta-networking/recipes-support/drbd/drbd-utils_9.12.0.bb @@ -12,9 +12,9 @@ SRC_URI = "git://github.com/LINBIT/drbd-utils;name=drbd-utils \ git://github.com/LINBIT/drbd-headers;name=drbd-headers;destsuffix=git/drbd-headers \ ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','file://0001-drbd-utils-support-usrmerge.patch','',d)} \ " -# v9.11.0 -SRCREV_drbd-utils = "63092751e76e1fba397e53df4be5c1161b83a223" -SRCREV_drbd-headers = "d100ee01bf5aa8d5220767e4e35c4224faa8d865" +# v9.12.0 +SRCREV_drbd-utils = "91629a4cce49ca0d4f917fe0bffa25cfe8db3052" +SRCREV_drbd-headers = "233006b4d26cf319638be0ef6d16ec7dee287b66" S = "${WORKDIR}/git" -- 2.17.1 From wangmy at cn.fujitsu.com Thu Feb 27 12:43:12 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Thu, 27 Feb 2020 04:43:12 -0800 Subject: [oe] [meta-networking][PATCH] iscsi-initiator-utils: upgrade 2.0.878 -> 2.1.0 In-Reply-To: <1582807398-13955-1-git-send-email-wangmy@cn.fujitsu.com> References: <1582807398-13955-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1582807398-13955-2-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- ...nitiator-utils_2.0.878.bb => iscsi-initiator-utils_2.1.0.bb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename meta-networking/recipes-daemons/iscsi-initiator-utils/{iscsi-initiator-utils_2.0.878.bb => iscsi-initiator-utils_2.1.0.bb} (98%) diff --git a/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.878.bb b/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.0.bb similarity index 98% rename from meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.878.bb rename to meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.0.bb index b75e54b9c..97b556357 100644 --- a/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.878.bb +++ b/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.0.bb @@ -12,7 +12,7 @@ DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d) LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -SRCREV ?= "288add22d6b61cc68ede358faeec9affb15019cd" +SRCREV ?= "549f8987be49583bb06b117a364bea3a8fc5250c" SRC_URI = "git://github.com/open-iscsi/open-iscsi \ file://initd.debian \ -- 2.17.1 From wangmy at cn.fujitsu.com Thu Feb 27 12:43:13 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Thu, 27 Feb 2020 04:43:13 -0800 Subject: [oe] [meta-networking][PATCH] openipmi: upgrade 2.0.27 -> 2.0.28 In-Reply-To: <1582807398-13955-1-git-send-email-wangmy@cn.fujitsu.com> References: <1582807398-13955-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1582807398-13955-3-git-send-email-wangmy@cn.fujitsu.com> ipmi_serial_bmc_emu.c-include-readline.h-from-readli.patch removed because it is included in 2.0.28. Signed-off-by: Wang Mingyu --- ...emu.c-include-readline.h-from-readli.patch | 31 ------------------- ...{openipmi_2.0.27.bb => openipmi_2.0.28.bb} | 5 ++- 2 files changed, 2 insertions(+), 34 deletions(-) delete mode 100644 meta-networking/recipes-support/openipmi/files/ipmi_serial_bmc_emu.c-include-readline.h-from-readli.patch rename meta-networking/recipes-support/openipmi/{openipmi_2.0.27.bb => openipmi_2.0.28.bb} (95%) diff --git a/meta-networking/recipes-support/openipmi/files/ipmi_serial_bmc_emu.c-include-readline.h-from-readli.patch b/meta-networking/recipes-support/openipmi/files/ipmi_serial_bmc_emu.c-include-readline.h-from-readli.patch deleted file mode 100644 index e208de8b2..000000000 --- a/meta-networking/recipes-support/openipmi/files/ipmi_serial_bmc_emu.c-include-readline.h-from-readli.patch +++ /dev/null @@ -1,31 +0,0 @@ -From bebfb3c24582ec4e45d79c5b52135197bf7373da Mon Sep 17 00:00:00 2001 -From: Yi Zhao -Date: Fri, 14 Jun 2019 14:17:34 +0800 -Subject: [PATCH] ipmi_serial_bmc_emu.c: include readline.h from readline - -The libedit had been removed and swithed to readline. -We need to include readline.h from readline rather than editline. - -Upstream-Status: Pending - -Signed-off-by: Yi Zhao ---- - sample/ipmi_serial_bmc_emu.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sample/ipmi_serial_bmc_emu.c b/sample/ipmi_serial_bmc_emu.c -index e0ae019..1b8bb9a 100644 ---- a/sample/ipmi_serial_bmc_emu.c -+++ b/sample/ipmi_serial_bmc_emu.c -@@ -42,7 +42,7 @@ - #include - #include - #include --#include -+#include - - #define _GNU_SOURCE - #include --- -2.7.4 - diff --git a/meta-networking/recipes-support/openipmi/openipmi_2.0.27.bb b/meta-networking/recipes-support/openipmi/openipmi_2.0.28.bb similarity index 95% rename from meta-networking/recipes-support/openipmi/openipmi_2.0.27.bb rename to meta-networking/recipes-support/openipmi/openipmi_2.0.28.bb index 126b37f11..f196eb992 100644 --- a/meta-networking/recipes-support/openipmi/openipmi_2.0.27.bb +++ b/meta-networking/recipes-support/openipmi/openipmi_2.0.28.bb @@ -29,15 +29,14 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/openipmi/OpenIPMI-${PV}.tar.gz \ file://openipmi-remove-host-path-from-la_LDFLAGS.patch \ file://ipmi-init-fix-the-arguments.patch \ file://include_sys_types.patch \ - file://ipmi_serial_bmc_emu.c-include-readline.h-from-readli.patch \ file://openipmi-helper \ file://ipmi.service \ " S = "${WORKDIR}/OpenIPMI-${PV}" -SRC_URI[md5sum] = "d525ceaa07df5440674e7e68a6772fe7" -SRC_URI[sha256sum] = "f3b1fafaaec2e2bac32fec5a86941ad8b8cb64543470bd6d819d7b166713d20b" +SRC_URI[md5sum] = "ba37f08e306062ec73c7ed2a2bd4d5f4" +SRC_URI[sha256sum] = "8e8b1de2a9a041b419133ecb21f956e999841cf2e759e973eeba9a36f8b40996" inherit autotools-brokensep pkgconfig python3native perlnative update-rc.d systemd cpan-base -- 2.17.1 From wangmy at cn.fujitsu.com Thu Feb 27 12:43:14 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Thu, 27 Feb 2020 04:43:14 -0800 Subject: [oe] [meta-networking][PATCH] rdma-core: upgrade 27.0 -> 28.0 In-Reply-To: <1582807398-13955-1-git-send-email-wangmy@cn.fujitsu.com> References: <1582807398-13955-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1582807398-13955-4-git-send-email-wangmy@cn.fujitsu.com> 0001-librdmacm-Use-sched_yield-instead-of-pthread_yield.patch removed because it is included in 28.0. refresh 0001-Remove-man-files-which-cant-be-built.patch Signed-off-by: Wang Mingyu --- ...Remove-man-files-which-cant-be-built.patch | 11 ++++++- ...sched_yield-instead-of-pthread_yield.patch | 30 ------------------- .../{rdma-core_27.0.bb => rdma-core_28.0.bb} | 3 +- 3 files changed, 11 insertions(+), 33 deletions(-) delete mode 100644 meta-networking/recipes-support/rdma-core/rdma-core/0001-librdmacm-Use-sched_yield-instead-of-pthread_yield.patch rename meta-networking/recipes-support/rdma-core/{rdma-core_27.0.bb => rdma-core_28.0.bb} (90%) diff --git a/meta-networking/recipes-support/rdma-core/rdma-core/0001-Remove-man-files-which-cant-be-built.patch b/meta-networking/recipes-support/rdma-core/rdma-core/0001-Remove-man-files-which-cant-be-built.patch index f1437a0fb..feed0213c 100644 --- a/meta-networking/recipes-support/rdma-core/rdma-core/0001-Remove-man-files-which-cant-be-built.patch +++ b/meta-networking/recipes-support/rdma-core/rdma-core/0001-Remove-man-files-which-cant-be-built.patch @@ -254,9 +254,10 @@ diff --git a/providers/mlx5/man/CMakeLists.txt b/providers/mlx5/man/CMakeLists.t index 0bd9eba1..876b6fcf 100644 --- a/providers/mlx5/man/CMakeLists.txt +++ b/providers/mlx5/man/CMakeLists.txt -@@ -1,72 +1,7 @@ +@@ -1,81 +1,7 @@ rdma_man_pages( - mlx5dv_alloc_dm.3.md +- mlx5dv_alloc_var.3.md - mlx5dv_create_cq.3.md - mlx5dv_create_flow.3.md - mlx5dv_create_flow_action_modify_header.3.md @@ -274,6 +275,7 @@ index 0bd9eba1..876b6fcf 100644 - mlx5dv_devx_subscribe_devx_event.3.md - mlx5dv_devx_umem_reg.3.md - mlx5dv_dr_flow.3.md +- mlx5dv_dump.3.md - mlx5dv_flow_action_esp.3.md mlx5dv_get_clock_info.3 mlx5dv_init_obj.3 @@ -285,6 +287,7 @@ index 0bd9eba1..876b6fcf 100644 mlx5dv.7 ) -rdma_alias_man_pages( +- mlx5dv_alloc_var.3 mlx5dv_free_var.3 - mlx5dv_create_mkey.3 mlx5dv_destroy_mkey.3 - mlx5dv_devx_alloc_uar.3 mlx5dv_devx_free_uar.3 - mlx5dv_devx_create_cmd_comp.3 mlx5dv_devx_destroy_cmd_comp.3 @@ -311,10 +314,12 @@ index 0bd9eba1..876b6fcf 100644 - mlx5dv_dr_flow.3 mlx5dv_dr_action_create_dest_vport.3 - mlx5dv_dr_flow.3 mlx5dv_dr_action_create_flow_counter.3 - mlx5dv_dr_flow.3 mlx5dv_dr_action_create_drop.3 +- mlx5dv_dr_flow.3 mlx5dv_dr_action_create_flow_meter.3 - mlx5dv_dr_flow.3 mlx5dv_dr_action_create_modify_header.3 - mlx5dv_dr_flow.3 mlx5dv_dr_action_create_packet_reformat.3 - mlx5dv_dr_flow.3 mlx5dv_dr_action_create_tag.3 - mlx5dv_dr_flow.3 mlx5dv_dr_action_destroy.3 +- mlx5dv_dr_flow.3 mlx5dv_dr_action_modify_flow_meter.3 - mlx5dv_dr_flow.3 mlx5dv_dr_domain_create.3 - mlx5dv_dr_flow.3 mlx5dv_dr_domain_destroy.3 - mlx5dv_dr_flow.3 mlx5dv_dr_domain_sync.3 @@ -324,6 +329,10 @@ index 0bd9eba1..876b6fcf 100644 - mlx5dv_dr_flow.3 mlx5dv_dr_rule_destroy.3 - mlx5dv_dr_flow.3 mlx5dv_dr_table_create.3 - mlx5dv_dr_flow.3 mlx5dv_dr_table_destroy.3 +- mlx5dv_dump.3 mlx5dv_dump_dr_domain.3 +- mlx5dv_dump.3 mlx5dv_dump_dr_matcher.3 +- mlx5dv_dump.3 mlx5dv_dump_dr_rule.3 +- mlx5dv_dump.3 mlx5dv_dump_dr_table.3 - mlx5dv_wr_post.3 mlx5dv_wr_set_dc_addr.3 - mlx5dv_wr_post.3 mlx5dv_qp_ex_from_ibv_qp_ex.3 -) diff --git a/meta-networking/recipes-support/rdma-core/rdma-core/0001-librdmacm-Use-sched_yield-instead-of-pthread_yield.patch b/meta-networking/recipes-support/rdma-core/rdma-core/0001-librdmacm-Use-sched_yield-instead-of-pthread_yield.patch deleted file mode 100644 index 80abd3313..000000000 --- a/meta-networking/recipes-support/rdma-core/rdma-core/0001-librdmacm-Use-sched_yield-instead-of-pthread_yield.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 6ac9562d756d42592994aeaac7a5e7b2bbce5cab Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 14 Dec 2019 14:07:57 -0800 -Subject: [PATCH] librdmacm: Use sched_yield instead of pthread_yield - -glibc redirects pthread_yield to sched_yield additionally we get it -working with musl on linux - -Upstream-Status: Submitted [https://github.com/linux-rdma/rdma-core/pull/635] -Signed-off-by: Khem Raj ---- - librdmacm/rsocket.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/librdmacm/rsocket.c b/librdmacm/rsocket.c -index 89ae2139..7fc5b266 100644 ---- a/librdmacm/rsocket.c -+++ b/librdmacm/rsocket.c -@@ -3038,7 +3038,7 @@ static int rs_poll_enter(void) - pthread_mutex_lock(&mut); - if (suspendpoll) { - pthread_mutex_unlock(&mut); -- pthread_yield(); -+ sched_yield(); - return -EBUSY; - } - --- -2.24.1 - diff --git a/meta-networking/recipes-support/rdma-core/rdma-core_27.0.bb b/meta-networking/recipes-support/rdma-core/rdma-core_28.0.bb similarity index 90% rename from meta-networking/recipes-support/rdma-core/rdma-core_27.0.bb rename to meta-networking/recipes-support/rdma-core/rdma-core_28.0.bb index 361d69b33..15fd7ff66 100644 --- a/meta-networking/recipes-support/rdma-core/rdma-core_27.0.bb +++ b/meta-networking/recipes-support/rdma-core/rdma-core_28.0.bb @@ -8,9 +8,8 @@ RDEPENDS_${PN} = "bash perl" BRANCH = "stable-v${@d.getVar('PV').split('.')[0]}" SRC_URI = "git://github.com/linux-rdma/rdma-core.git;branch=${BRANCH} \ file://0001-Remove-man-files-which-cant-be-built.patch \ - file://0001-librdmacm-Use-sched_yield-instead-of-pthread_yield.patch \ " -SRCREV = "84caf035ae6123e2296b72006cd2cf698c65eb46" +SRCREV = "f12c953f0864691eacc9fcc4cda489b92ffd5a85" S = "${WORKDIR}/git" #Default Dual License https://github.com/linux-rdma/rdma-core/blob/master/COPYING.md -- 2.17.1 From wangmy at cn.fujitsu.com Thu Feb 27 12:43:15 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Thu, 27 Feb 2020 04:43:15 -0800 Subject: [oe] [meta-networking][PATCH] uftp: upgrade 4.10 -> 4.10.1 In-Reply-To: <1582807398-13955-1-git-send-email-wangmy@cn.fujitsu.com> References: <1582807398-13955-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1582807398-13955-5-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../recipes-support/uftp/{uftp_4.10.bb => uftp_4.10.1.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-networking/recipes-support/uftp/{uftp_4.10.bb => uftp_4.10.1.bb} (77%) diff --git a/meta-networking/recipes-support/uftp/uftp_4.10.bb b/meta-networking/recipes-support/uftp/uftp_4.10.1.bb similarity index 77% rename from meta-networking/recipes-support/uftp/uftp_4.10.bb rename to meta-networking/recipes-support/uftp/uftp_4.10.1.bb index 86c0c222c..a70fd4d08 100644 --- a/meta-networking/recipes-support/uftp/uftp_4.10.bb +++ b/meta-networking/recipes-support/uftp/uftp_4.10.1.bb @@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d32239bcb673463ab874e80d47fae504" UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/uftp-multicast/files/source-tar/" SRC_URI = "${SOURCEFORGE_MIRROR}/uftp-multicast/source-tar/uftp-${PV}.tar.gz" -SRC_URI[md5sum] = "df6407af3a0067b881431b3dad149ef3" -SRC_URI[sha256sum] = "91ba8aae80c7c9ccaf04600b628cbeca4699ed48268fe43d2bf539a41083f292" +SRC_URI[md5sum] = "a5c79c8e5a20d0646c9579fe1f339493" +SRC_URI[sha256sum] = "903353febf1b88f701198d956a60cec3d2be3cc251561a678061761aec6622f6" DEPENDS = "openssl" -- 2.17.1 From wangmy at cn.fujitsu.com Thu Feb 27 12:43:16 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Thu, 27 Feb 2020 04:43:16 -0800 Subject: [oe] [meta-oe] [PATCH] flashrom: upgrade 1.1 -> 1.2 In-Reply-To: <1582807398-13955-1-git-send-email-wangmy@cn.fujitsu.com> References: <1582807398-13955-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1582807398-13955-6-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../recipes-bsp/flashrom/{flashrom_1.1.bb => flashrom_1.2.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-bsp/flashrom/{flashrom_1.1.bb => flashrom_1.2.bb} (77%) diff --git a/meta-oe/recipes-bsp/flashrom/flashrom_1.1.bb b/meta-oe/recipes-bsp/flashrom/flashrom_1.2.bb similarity index 77% rename from meta-oe/recipes-bsp/flashrom/flashrom_1.1.bb rename to meta-oe/recipes-bsp/flashrom/flashrom_1.2.bb index 074a1a5f6..17445ac2d 100644 --- a/meta-oe/recipes-bsp/flashrom/flashrom_1.1.bb +++ b/meta-oe/recipes-bsp/flashrom/flashrom_1.2.bb @@ -7,8 +7,8 @@ DEPENDS = "pciutils libusb libusb-compat" SRC_URI = "https://download.flashrom.org/releases/flashrom-v${PV}.tar.bz2 \ " -SRC_URI[md5sum] = "91bab6c072e38a493bb4eb673e4fe0d6" -SRC_URI[sha256sum] = "aeada9c70c22421217c669356180c0deddd0b60876e63d2224e3260b90c14e19" +SRC_URI[md5sum] = "7f8e4b87087eb12ecee0fcc5445b4956" +SRC_URI[sha256sum] = "e1f8d95881f5a4365dfe58776ce821dfcee0f138f75d0f44f8a3cd032d9ea42b" S = "${WORKDIR}/flashrom-v${PV}" -- 2.17.1 From wangmy at cn.fujitsu.com Thu Feb 27 12:43:17 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Thu, 27 Feb 2020 04:43:17 -0800 Subject: [oe] [meta-oe] [PATCH] libev: upgrade 4.27 -> 4.31 In-Reply-To: <1582807398-13955-1-git-send-email-wangmy@cn.fujitsu.com> References: <1582807398-13955-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1582807398-13955-7-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../libev/{libev_4.27.bb => libev_4.31.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-connectivity/libev/{libev_4.27.bb => libev_4.31.bb} (80%) diff --git a/meta-oe/recipes-connectivity/libev/libev_4.27.bb b/meta-oe/recipes-connectivity/libev/libev_4.31.bb similarity index 80% rename from meta-oe/recipes-connectivity/libev/libev_4.27.bb rename to meta-oe/recipes-connectivity/libev/libev_4.31.bb index be4536b9c..beea85533 100644 --- a/meta-oe/recipes-connectivity/libev/libev_4.27.bb +++ b/meta-oe/recipes-connectivity/libev/libev_4.31.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] = "20111fda0df0a289c152faa2aac91b08" +SRC_URI[sha256sum] = "ed855d2b52118e32c0c1a6a32bd18c97f9e6711ca511f5ee12de3b9eccc66e5a" inherit autotools -- 2.17.1 From wangmy at cn.fujitsu.com Thu Feb 27 12:43:18 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Thu, 27 Feb 2020 04:43:18 -0800 Subject: [oe] [meta-oe] [PATCH] libmbim: upgrade 1.20.4 -> 1.22.0 In-Reply-To: <1582807398-13955-1-git-send-email-wangmy@cn.fujitsu.com> References: <1582807398-13955-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1582807398-13955-8-git-send-email-wangmy@cn.fujitsu.com> clang.patch Revemod since the file of this patch is non-existent. Signed-off-by: Wang Mingyu --- .../libmbim/libmbim/clang.patch | 73 ------------------- .../{libmbim_1.20.4.bb => libmbim_1.22.0.bb} | 9 +-- 2 files changed, 4 insertions(+), 78 deletions(-) delete mode 100644 meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch rename meta-oe/recipes-connectivity/libmbim/{libmbim_1.20.4.bb => libmbim_1.22.0.bb} (76%) diff --git a/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch b/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch deleted file mode 100644 index d88578418..000000000 --- a/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 -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-oe/recipes-connectivity/libmbim/libmbim_1.20.4.bb b/meta-oe/recipes-connectivity/libmbim/libmbim_1.22.0.bb similarity index 76% rename from meta-oe/recipes-connectivity/libmbim/libmbim_1.20.4.bb rename to meta-oe/recipes-connectivity/libmbim/libmbim_1.22.0.bb index a3ef80c1b..61e314f1f 100644 --- a/meta-oe/recipes-connectivity/libmbim/libmbim_1.20.4.bb +++ b/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" -- 2.17.1 From schnitzeltony at gmail.com Thu Feb 27 06:51:03 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Thu, 27 Feb 2020 07:51:03 +0100 Subject: [oe] [PATCH 1/3] xfce4-weather-plugin: upgrade 0.10.0 -> 0.10.1 Message-ID: <20200227065105.29865-1-schnitzeltony@gmail.com> Release notes for 0.10.1 ======================== - Switch to 'locationforecast' product and use a more recent API version (bug #16268) - Fix invalid scrollbar index to add a label (bug #16023) - Update URLs from goodies.x.o to docs.x.o (bug #16182) - Fix build with panel 4.15 - Make build output less verbose - Use standard icon names (bug #16059) Translation Updates: Albanian, Croatian, Finnish, Galician, Greek, Portuguese, Slovak, Slovenian Signed-off-by: Andreas M?ller --- ...eather-plugin_0.10.0.bb => xfce4-weather-plugin_0.10.1.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-xfce/recipes-panel-plugins/weather/{xfce4-weather-plugin_0.10.0.bb => xfce4-weather-plugin_0.10.1.bb} (72%) diff --git a/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.10.0.bb b/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.10.1.bb similarity index 72% rename from meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.10.0.bb rename to meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.10.1.bb index 96c2048be..ad9b6e9e7 100644 --- a/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.10.0.bb +++ b/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.10.1.bb @@ -7,7 +7,7 @@ inherit xfce-panel-plugin DEPENDS += "libsoup-2.4 dbus-glib upower" -SRC_URI[md5sum] = "7ff4ab636f93addba0817bf6436d2964" -SRC_URI[sha256sum] = "4423a0c27830fd1f08e063aaefbf70f31d89235d75549ca841d677ab2e409572" +SRC_URI[md5sum] = "203ad16e74d4823f6fb6e9a18bb7df55" +SRC_URI[sha256sum] = "afb2af5f3effc2ea6181636ed0e82e6dafd556ec1b8478100802f85a5d167a89" FILES_${PN} += "${datadir}/xfce4/weather" -- 2.21.0 From schnitzeltony at gmail.com Thu Feb 27 06:51:04 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Thu, 27 Feb 2020 07:51:04 +0100 Subject: [oe] [PATCH 2/3] gegl: upgrade 0.4.20 -> 0.4.22 In-Reply-To: <20200227065105.29865-1-schnitzeltony@gmail.com> References: <20200227065105.29865-1-schnitzeltony@gmail.com> Message-ID: <20200227065105.29865-2-schnitzeltony@gmail.com> Signed-off-by: Andreas M?ller --- .../recipes-gimp/gegl/{gegl_0.4.20.bb => gegl_0.4.22.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-gnome/recipes-gimp/gegl/{gegl_0.4.20.bb => gegl_0.4.22.bb} (93%) diff --git a/meta-gnome/recipes-gimp/gegl/gegl_0.4.20.bb b/meta-gnome/recipes-gimp/gegl/gegl_0.4.22.bb similarity index 93% rename from meta-gnome/recipes-gimp/gegl/gegl_0.4.20.bb rename to meta-gnome/recipes-gimp/gegl/gegl_0.4.22.bb index 5e7a1bb84..ca73e66f3 100644 --- a/meta-gnome/recipes-gimp/gegl/gegl_0.4.20.bb +++ b/meta-gnome/recipes-gimp/gegl/gegl_0.4.22.bb @@ -26,8 +26,8 @@ SRC_URI = " \ https://download.gimp.org/pub/${BPN}/${SHPV}/${BP}.tar.xz \ file://0001-meson.build-Give-note-if-sdl2-was-found.patch \ " -SRC_URI[md5sum] = "37433eb00f8a4b0d1ae9e975aaedfa26" -SRC_URI[sha256sum] = "23bd8bb42b20de7c2a8c314eeb5301dc20141feda20a4b1ed455020b69b73dff" +SRC_URI[md5sum] = "1776ac26792de0de3c3d680872e94b72" +SRC_URI[sha256sum] = "1888ec41dfd19fe28273795c2209efc1a542be742691561816683990dc642c61" PACKAGECONFIG ??= "gexiv2 jpeg libpng librsvg sdl2" PACKAGECONFIG_class-native = "libpng librsvg" -- 2.21.0 From schnitzeltony at gmail.com Thu Feb 27 06:51:05 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Thu, 27 Feb 2020 07:51:05 +0100 Subject: [oe] [PATCH 3/3] gimp: upgrade 2.10.14 -> 2.10.18 In-Reply-To: <20200227065105.29865-1-schnitzeltony@gmail.com> References: <20200227065105.29865-1-schnitzeltony@gmail.com> Message-ID: <20200227065105.29865-3-schnitzeltony@gmail.com> Release information can be found at [1] [1] https://www.gimp.org/news/2020/02/24/gimp-2-10-18-released/ Signed-off-by: Andreas M?ller --- .../recipes-gimp/gimp/{gimp_2.10.14.bb => gimp_2.10.18.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-gnome/recipes-gimp/gimp/{gimp_2.10.14.bb => gimp_2.10.18.bb} (91%) diff --git a/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb b/meta-gnome/recipes-gimp/gimp/gimp_2.10.18.bb similarity index 91% rename from meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb rename to meta-gnome/recipes-gimp/gimp/gimp_2.10.18.bb index 30f0579e2..838bd374a 100644 --- a/meta-gnome/recipes-gimp/gimp/gimp_2.10.14.bb +++ b/meta-gnome/recipes-gimp/gimp/gimp_2.10.18.bb @@ -38,8 +38,8 @@ REQUIRED_DISTRO_FEATURES = "x11" SHPV = "${@gnome_verdir("${PV}")}" SRC_URI = "https://download.gimp.org/pub/${BPN}/v${SHPV}/${BP}.tar.bz2" -SRC_URI[md5sum] = "a64f2be299755a2da130306cad9b1d26" -SRC_URI[sha256sum] = "df9b0f11c2078eea1de3ebc66529a5d3854c5e28636cd25a8dd077bd9d6ddc54" +SRC_URI[md5sum] = "096d04ffb2c4559cb2152f507ff31c9c" +SRC_URI[sha256sum] = "65bfe111e8eebffd3dde3016ccb507f9948d2663d9497cb438d9bb609e11d716" EXTRA_OECONF = "--disable-python \ --without-webkit \ -- 2.21.0 From costamagna.gianfranco at gmail.com Thu Feb 27 14:37:25 2020 From: costamagna.gianfranco at gmail.com (Gianfranco Costamagna) Date: Thu, 27 Feb 2020 15:37:25 +0100 Subject: [oe] [meta-oe][PATCH 1/2] cpprest: update to 2.10.15 and refresh patches Message-ID: <20200227143726.28835-1-costamagnagianfranco@yahoo.it> Signed-off-by: Gianfranco Costamagna --- .../cpprest/disable-outside-tests.patch | 43 +++---------------- ...{cpprest_2.10.14.bb => cpprest_2.10.15.bb} | 4 +- 2 files changed, 8 insertions(+), 39 deletions(-) rename meta-oe/recipes-support/cpprest/{cpprest_2.10.14.bb => cpprest_2.10.15.bb} (91%) diff --git a/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch b/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch index 5232e2a1d..e108e0279 100644 --- a/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch +++ b/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-oe/recipes-support/cpprest/cpprest_2.10.14.bb b/meta-oe/recipes-support/cpprest/cpprest_2.10.15.bb similarity index 91% rename from meta-oe/recipes-support/cpprest/cpprest_2.10.14.bb rename to meta-oe/recipes-support/cpprest/cpprest_2.10.15.bb index 11c8eab55..dee5ae256 100644 --- a/meta-oe/recipes-support/cpprest/cpprest_2.10.14.bb +++ b/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" -- 2.17.1 From costamagna.gianfranco at gmail.com Thu Feb 27 14:37:26 2020 From: costamagna.gianfranco at gmail.com (Gianfranco Costamagna) Date: Thu, 27 Feb 2020 15:37:26 +0100 Subject: [oe] [meta-oe][PATCH 2/2] boinc: update recipe to version 7.16.5 In-Reply-To: <20200227143726.28835-1-costamagnagianfranco@yahoo.it> References: <20200227143726.28835-1-costamagnagianfranco@yahoo.it> Message-ID: <20200227143726.28835-2-costamagnagianfranco@yahoo.it> Signed-off-by: Gianfranco Costamagna Signed-off-by: Gianfranco Costamagna --- meta-oe/recipes-extended/boinc/boinc-client_7.16.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-oe/recipes-extended/boinc/boinc-client_7.16.bb b/meta-oe/recipes-extended/boinc/boinc-client_7.16.bb index c52828018..db90f06f4 100644 --- a/meta-oe/recipes-extended/boinc/boinc-client_7.16.bb +++ b/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 = "bc3269f77f570ea0ffd31766ed83846ebb043938" +SRCREV = "e0e033af9fca3cca84a3417ea6531ae25be73a7a" BRANCH = "client_release/7/${PV}" SRC_URI = "git://github.com/BOINC/boinc;protocol=https;branch=${BRANCH} \ file://boinc-AM_CONDITIONAL.patch \ -- 2.17.1 From raj.khem at gmail.com Thu Feb 27 15:04:01 2020 From: raj.khem at gmail.com (Khem Raj) Date: Thu, 27 Feb 2020 07:04:01 -0800 Subject: [oe] [meta-oe] [PATCH] flashrom: upgrade 1.1 -> 1.2 In-Reply-To: <1582807398-13955-6-git-send-email-wangmy@cn.fujitsu.com> References: <1582807398-13955-1-git-send-email-wangmy@cn.fujitsu.com> <1582807398-13955-6-git-send-email-wangmy@cn.fujitsu.com> Message-ID: fails to build with clang https://errors.yoctoproject.org/Errors/Details/392867/ On Wed, Feb 26, 2020 at 10:01 PM Wang Mingyu wrote: > > Signed-off-by: Wang Mingyu > --- > .../recipes-bsp/flashrom/{flashrom_1.1.bb => flashrom_1.2.bb} | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > rename meta-oe/recipes-bsp/flashrom/{flashrom_1.1.bb => flashrom_1.2.bb} (77%) > > diff --git a/meta-oe/recipes-bsp/flashrom/flashrom_1.1.bb b/meta-oe/recipes-bsp/flashrom/flashrom_1.2.bb > similarity index 77% > rename from meta-oe/recipes-bsp/flashrom/flashrom_1.1.bb > rename to meta-oe/recipes-bsp/flashrom/flashrom_1.2.bb > index 074a1a5f6..17445ac2d 100644 > --- a/meta-oe/recipes-bsp/flashrom/flashrom_1.1.bb > +++ b/meta-oe/recipes-bsp/flashrom/flashrom_1.2.bb > @@ -7,8 +7,8 @@ DEPENDS = "pciutils libusb libusb-compat" > > SRC_URI = "https://download.flashrom.org/releases/flashrom-v${PV}.tar.bz2 \ > " > -SRC_URI[md5sum] = "91bab6c072e38a493bb4eb673e4fe0d6" > -SRC_URI[sha256sum] = "aeada9c70c22421217c669356180c0deddd0b60876e63d2224e3260b90c14e19" > +SRC_URI[md5sum] = "7f8e4b87087eb12ecee0fcc5445b4956" > +SRC_URI[sha256sum] = "e1f8d95881f5a4365dfe58776ce821dfcee0f138f75d0f44f8a3cd032d9ea42b" > > S = "${WORKDIR}/flashrom-v${PV}" > > -- > 2.17.1 > > > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel at lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel From raj.khem at gmail.com Thu Feb 27 15:27:21 2020 From: raj.khem at gmail.com (Khem Raj) Date: Thu, 27 Feb 2020 07:27:21 -0800 Subject: [oe] [meta-oe][PATCH v4] luajit: Upgrade to 2.1.0-beta3 In-Reply-To: <20200226122622.33171-1-leo.yan@linaro.org> References: <20200226122622.33171-1-leo.yan@linaro.org> Message-ID: I am seeing version going backward errors still luajit-2.0.5+2.1.0-beta3: Package version for package luajit-src went backwards which would break package feeds (from 0:2.0.5+git0+02b521981a-r0.7 to 0:2.0.5+2.1.0-beta3-r0.0) [version-going-backwards] luajit-2.0.5+2.1.0-beta3: Package version for package luajit-dbg went backwards which would break package feeds (from 0:2.0.5+git0+02b521981a-r0.7 to 0:2.0.5+2.1.0-beta3-r0.0) [version-going-backwards] luajit-2.0.5+2.1.0-beta3: Package version for package luajit-staticdev went backwards which would break package feeds (from 0:2.0.5+git0+02b521981a-r0.7 to 0:2.0.5+2.1.0-beta3-r0.0) [version-going-backwards] luajit-2.0.5+2.1.0-beta3: Package version for package luajit-dev went backwards which would break package feeds (from 0:2.0.5+git0+02b521981a-r0.7 to 0:2.0.5+2.1.0-beta3-r0.0) [version-going-backwards] luajit-2.0.5+2.1.0-beta3: Package version for package luajit-doc went backwards which would break package feeds (from 0:2.0.5+git0+02b521981a-r0.7 to 0:2.0.5+2.1.0-beta3-r0.0) [version-going-backwards] luajit-2.0.5+2.1.0-beta3: Package version for package luajit-locale went backwards which would break package feeds (from 0:2.0.5+git0+02b521981a-r0.7 to 0:2.0.5+2.1.0-beta3-r0.0) [version-going-backwards] luajit-2.0.5+2.1.0-beta3: Package version for package luajit went backwards which would break package feeds (from 0:2.0.5+git0+02b521981a-r0.7 to 0:2.0.5+2.1.0-beta3-r0.0) [version-going-backwards] luajit-2.0.5+2.1.0-beta3: Package version for package luajit-common went backwards which would break package feeds (from 0:2.0.5+git0+02b521981a-r0.7 to 0:2.0.5+2.1.0-beta3-r0.0) [version-going-backwards] On Wed, Feb 26, 2020 at 4:26 AM Leo Yan wrote: > > Since luajit 2.1.0-beta3 can support architecture aarch64 and the old > misses to support aarch64, the patch upgrades to luajit 2.1.0-beta3. > > Also updated clang.patch to dismiss patch warning: "Hunk #1 succeeded > at 436 with fuzz 1 (offset 123 lines)." > > Signed-off-by: Leo Yan > --- > meta-oe/recipes-devtools/luajit/luajit/clang.patch | 4 ++-- > .../luajit/{luajit_2.0.5.bb => luajit_git.bb} | 13 ++++++------- > 2 files changed, 8 insertions(+), 9 deletions(-) > rename meta-oe/recipes-devtools/luajit/{luajit_2.0.5.bb => luajit_git.bb} (90%) > > diff --git a/meta-oe/recipes-devtools/luajit/luajit/clang.patch b/meta-oe/recipes-devtools/luajit/luajit/clang.patch > index c39ef6fd4..807cc4417 100644 > --- a/meta-oe/recipes-devtools/luajit/luajit/clang.patch > +++ b/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-oe/recipes-devtools/luajit/luajit_2.0.5.bb b/meta-oe/recipes-devtools/luajit/luajit_git.bb > similarity index 90% > rename from meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb > rename to meta-oe/recipes-devtools/luajit/luajit_git.bb > index 93128dda8..2a7243842 100644 > --- a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb > +++ b/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.0.5+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,8 +90,7 @@ FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \ > " > FILES_luajit-common = "${datadir}/${BPN}-${PV}" > > -# Aarch64/mips64/ppc/ppc64/riscv64 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" > -- > 2.17.1 > From git at andred.net Thu Feb 27 16:41:15 2020 From: git at andred.net (=?UTF-8?q?Andr=C3=A9=20Draszik?=) Date: Thu, 27 Feb 2020 16:41:15 +0000 Subject: [oe] [meta-oe][PATCH] meta-oe: s|${COREBASE}/meta/files/common-licenses|${COMMON_LICENSE_DIR} Message-ID: <20200227164115.23879-1-git@andred.net> Signed-off-by: Andr? Draszik --- meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb | 2 +- .../gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb | 4 ++-- meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb | 2 +- meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb b/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb index 17e8c700c..39a0ccc8c 100644 --- a/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb +++ b/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb @@ -1,6 +1,6 @@ SUMMARY = "Dhrystone CPU benchmark" LICENSE = "PD" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/PD;md5=b3597d12946881e13cb3b548d1173851" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/PD;md5=b3597d12946881e13cb3b548d1173851" SRC_URI = "http://www.netlib.org/benchmark/dhry-c;downloadfilename=dhry-c.shar \ file://dhrystone.patch" diff --git a/meta-oe/recipes-gnome/gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb b/meta-oe/recipes-gnome/gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb index d6da51b0d..9c16da416 100644 --- a/meta-oe/recipes-gnome/gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb +++ b/meta-oe/recipes-gnome/gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb @@ -3,8 +3,8 @@ DESCRIPTION = "This recipe provides m4 macros from gnome-doc-utils project, so \ that dependent recipes can build. Gnome-doc-utils itself is no longer packaged because \ it requires libxml2 and python 2 at the same time, which can no longer be satisfied. " LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \ - file://${COREBASE}/meta/files/common-licenses/LGPL-2.1;md5=1a6d268fd218675ffea8be556788b780" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \ + file://${COMMON_LICENSE_DIR}/LGPL-2.1;md5=1a6d268fd218675ffea8be556788b780" SRC_URI = "file://gnome-doc-utils.m4" PROVIDES = "gnome-doc-utils" diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb b/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb index d2058ba57..fae760bbf 100644 --- a/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb +++ b/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb @@ -1,6 +1,6 @@ SUMMARY = "Machine specific gpsd config" LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/BSD;md5=3775480a712fc46a69647678acb234cb" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD;md5=3775480a712fc46a69647678acb234cb" # empty by default # BSP layers can add stuff like meta-openmoko example: diff --git a/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb b/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb index 39629cce0..44679c047 100644 --- a/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb +++ b/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb @@ -1,7 +1,7 @@ DESCRIPTION = "Very fast, header only, C++ logging library." HOMEPAGE = "https://github.com/gabime/spdlog/wiki" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" SRCREV = "cf6f1dd01e660d5865d68bf5fa78f6376b89470a" SRC_URI = "git://github.com/gabime/spdlog.git;protocol=git;branch=v1.x;" -- 2.23.0.rc1 From git at andred.net Thu Feb 27 16:41:43 2020 From: git at andred.net (=?UTF-8?q?Andr=C3=A9=20Draszik?=) Date: Thu, 27 Feb 2020 16:41:43 +0000 Subject: [oe] [meta-multimedia][PATCH] meta-multimedia: s|${COREBASE}/meta/files/common-licenses|${COMMON_LICENSE_DIR} Message-ID: <20200227164143.24022-1-git@andred.net> Signed-off-by: Andr? Draszik --- .../recipes-multimedia/sample-content/bigbuckbunny-1080p.bb | 2 +- .../recipes-multimedia/sample-content/bigbuckbunny-480p.bb | 2 +- .../recipes-multimedia/sample-content/bigbuckbunny-720p.bb | 2 +- .../recipes-multimedia/sample-content/tearsofsteel-1080p.bb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb index cee386c2a..70eb6e4be 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb @@ -1,7 +1,7 @@ SUMMARY = "Big Buck Bunny movie - 1080P" LICENSE = "CC-BY-3.0" # http://www.bigbuckbunny.org/index.php/about/ -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" SRC_URI = "http://themazzone.com/big_buck_bunny_1080p_surround.avi" SRC_URI[md5sum] = "223991c8b33564eb77988a4c13c1c76a" diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb index d395b9206..df2368996 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb @@ -1,7 +1,7 @@ SUMMARY = "Big Buck Bunny movie - 480P" LICENSE = "CC-BY-3.0" # http://www.bigbuckbunny.org/index.php/about/ -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" SRC_URI = "https://archive.org/download/BigBuckBunny/big_buck_bunny_480p_surround-fix.avi" SRC_URI[md5sum] = "ed7ed01e9aefba8ddd77c13332cec120" diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb index 20d562749..cb8ece0cb 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb @@ -1,7 +1,7 @@ SUMMARY = "Big Buck Bunny movie - 720P" LICENSE = "CC-BY-3.0" # http://www.bigbuckbunny.org/index.php/about/ -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" SRC_URI = "https://archive.org/download/BigBuckBunny/big_buck_bunny_720p_surround.avi" SRC_URI[md5sum] = "0da8fe124595f5b206d64cb1400bbefc" diff --git a/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb b/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb index 0582a4856..04cbd2e34 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb @@ -1,6 +1,6 @@ SUMMARY = "Tears of Steel movie - 1080P" LICENSE = "CC-BY-3.0" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" SRC_URI = "http://ftp.nluug.nl/pub/graphics/blender/demo/movies/ToS/ToS-4k-1920.mov" SRC_URI[md5sum] = "e3fee55b1779c553e37b1d3988e6fad6" -- 2.23.0.rc1 From git at andred.net Thu Feb 27 16:42:19 2020 From: git at andred.net (=?UTF-8?q?Andr=C3=A9=20Draszik?=) Date: Thu, 27 Feb 2020 16:42:19 +0000 Subject: [oe] [meta-networking][PATCH] meta-networking: s|${COREBASE}/meta/files/common-licenses|${COMMON_LICENSE_DIR} Message-ID: <20200227164219.24229-1-git@andred.net> Signed-off-by: Andr? Draszik --- meta-networking/recipes-connectivity/samba/samba_4.10.13.bb | 4 ++-- meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb | 2 +- meta-networking/recipes-support/arptables/arptables_git.bb | 2 +- meta-networking/recipes-support/ncp/ncp_1.2.4.bb | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/meta-networking/recipes-connectivity/samba/samba_4.10.13.bb b/meta-networking/recipes-connectivity/samba/samba_4.10.13.bb index 71d8fa2f8..4d57255f1 100644 --- a/meta-networking/recipes-connectivity/samba/samba_4.10.13.bb +++ b/meta-networking/recipes-connectivity/samba/samba_4.10.13.bb @@ -3,8 +3,8 @@ SECTION = "console/network" LICENSE = "GPL-3.0+ & LGPL-3.0+ & GPL-2.0+" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ - file://${COREBASE}/meta/files/common-licenses/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \ - file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 " + file://${COMMON_LICENSE_DIR}/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \ + file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 " SAMBA_MIRROR = "http://samba.org/samba/ftp" MIRRORS += "\ diff --git a/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb b/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb index 8fdaf848f..21b02687f 100644 --- a/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb +++ b/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb @@ -1,7 +1,7 @@ SUMMARY = "A 802.1ab implementation (LLDP) to help you locate neighbors of all your equipments" SECTION = "net/misc" LICENSE = "ISC" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/ISC;md5=f3b90e78ea0cffb20bf5cca7947a896d" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/ISC;md5=f3b90e78ea0cffb20bf5cca7947a896d" DEPENDS = "libbsd libevent" diff --git a/meta-networking/recipes-support/arptables/arptables_git.bb b/meta-networking/recipes-support/arptables/arptables_git.bb index cec1d1f77..e88631e08 100644 --- a/meta-networking/recipes-support/arptables/arptables_git.bb +++ b/meta-networking/recipes-support/arptables/arptables_git.bb @@ -1,7 +1,7 @@ SUMMARY = "Administration tool for arp packet filtering" SECTION = "net" LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" SRCREV = "f4ab8f63f11a72f14687a6646d04ae1bae3fa45f" PV = "0.0.4+git${SRCPV}" diff --git a/meta-networking/recipes-support/ncp/ncp_1.2.4.bb b/meta-networking/recipes-support/ncp/ncp_1.2.4.bb index f42223b1f..ba6e23e86 100644 --- a/meta-networking/recipes-support/ncp/ncp_1.2.4.bb +++ b/meta-networking/recipes-support/ncp/ncp_1.2.4.bb @@ -4,7 +4,7 @@ security or integrity checking, no throttling, no features, except \ one: you don't have to type the coordinates of your peer." HOMEPAGE = "http://www.fefe.de/ncp" LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" DEPENDS = "libowfat" SRC_URI = "https://dl.fefe.de/${BP}.tar.bz2" -- 2.23.0.rc1 From raj.khem at gmail.com Thu Feb 27 17:08:46 2020 From: raj.khem at gmail.com (Khem Raj) Date: Thu, 27 Feb 2020 09:08:46 -0800 Subject: [oe] [meta-multimedia][PATCH] meta-multimedia: s|${COREBASE}/meta/files/common-licenses|${COMMON_LICENSE_DIR} In-Reply-To: <20200227164143.24022-1-git@andred.net> References: <20200227164143.24022-1-git@andred.net> Message-ID: <903a8d79-9298-5f7e-db68-d3e15c62121e@gmail.com> Hi Andr? Thanks for doing this cleanup, but perhaps subject could be more simple and readable and this detail of sed operation could be in details. On 2/27/20 8:41 AM, Andr? Draszik wrote: > Signed-off-by: Andr? Draszik > --- > .../recipes-multimedia/sample-content/bigbuckbunny-1080p.bb | 2 +- > .../recipes-multimedia/sample-content/bigbuckbunny-480p.bb | 2 +- > .../recipes-multimedia/sample-content/bigbuckbunny-720p.bb | 2 +- > .../recipes-multimedia/sample-content/tearsofsteel-1080p.bb | 2 +- > 4 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb > index cee386c2a..70eb6e4be 100644 > --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb > +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb > @@ -1,7 +1,7 @@ > SUMMARY = "Big Buck Bunny movie - 1080P" > LICENSE = "CC-BY-3.0" > # http://www.bigbuckbunny.org/index.php/about/ > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" > > SRC_URI = "http://themazzone.com/big_buck_bunny_1080p_surround.avi" > SRC_URI[md5sum] = "223991c8b33564eb77988a4c13c1c76a" > diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb > index d395b9206..df2368996 100644 > --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb > +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb > @@ -1,7 +1,7 @@ > SUMMARY = "Big Buck Bunny movie - 480P" > LICENSE = "CC-BY-3.0" > # http://www.bigbuckbunny.org/index.php/about/ > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" > > SRC_URI = "https://archive.org/download/BigBuckBunny/big_buck_bunny_480p_surround-fix.avi" > SRC_URI[md5sum] = "ed7ed01e9aefba8ddd77c13332cec120" > diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb > index 20d562749..cb8ece0cb 100644 > --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb > +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb > @@ -1,7 +1,7 @@ > SUMMARY = "Big Buck Bunny movie - 720P" > LICENSE = "CC-BY-3.0" > # http://www.bigbuckbunny.org/index.php/about/ > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" > > SRC_URI = "https://archive.org/download/BigBuckBunny/big_buck_bunny_720p_surround.avi" > SRC_URI[md5sum] = "0da8fe124595f5b206d64cb1400bbefc" > diff --git a/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb b/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb > index 0582a4856..04cbd2e34 100644 > --- a/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb > +++ b/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb > @@ -1,6 +1,6 @@ > SUMMARY = "Tears of Steel movie - 1080P" > LICENSE = "CC-BY-3.0" > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" > > SRC_URI = "http://ftp.nluug.nl/pub/graphics/blender/demo/movies/ToS/ToS-4k-1920.mov" > SRC_URI[md5sum] = "e3fee55b1779c553e37b1d3988e6fad6" > From ricardo at foundries.io Thu Feb 27 17:52:49 2020 From: ricardo at foundries.io (Ricardo Salveti) Date: Thu, 27 Feb 2020 14:52:49 -0300 Subject: [oe] [meta-oe][PATCH] libp11: upgrade 0.4.10 -> 11 In-Reply-To: <1581723823-21171-5-git-send-email-wangmy@cn.fujitsu.com> References: <1581723823-21171-1-git-send-email-wangmy@cn.fujitsu.com> <1581723823-21171-5-git-send-email-wangmy@cn.fujitsu.com> Message-ID: Hi, On Fri, Feb 14, 2020 at 1:12 PM Wang Mingyu wrote: > > Signed-off-by: Wang Mingyu > --- > .../recipes-support/libp11/{libp11_0.4.10.bb => libp11_11.bb} | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > rename meta-oe/recipes-support/libp11/{libp11_0.4.10.bb => libp11_11.bb} (93%) > > diff --git a/meta-oe/recipes-support/libp11/libp11_0.4.10.bb b/meta-oe/recipes-support/libp11/libp11_11.bb > similarity index 93% > rename from meta-oe/recipes-support/libp11/libp11_0.4.10.bb > rename to meta-oe/recipes-support/libp11/libp11_11.bb > index 655db4907..5a0951df2 100644 > --- a/meta-oe/recipes-support/libp11/libp11_0.4.10.bb > +++ b/meta-oe/recipes-support/libp11/libp11_11.bb > @@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29" > DEPENDS = "libtool openssl" > > SRC_URI = "git://github.com/OpenSC/libp11.git" > -SRCREV = "973d31f3f58d5549ddd8b1f822ce8f72186f9d68" > +SRCREV = "e1210903291b1de9eabcad26e740a4b2fbcca692" Is this change really correct? The latest libp11 upstream release is 0.4.10, as you can see at https://github.com/OpenSC/libp11/releases. The next one seems that will be 0.4.11, so now sure how it was moved to 11 directly. Also, the SRCREV seems incorrect, as it is pointing out to the 0.4.9 release (https://github.com/OpenSC/libp11/commit/e1210903291b1de9eabcad26e740a4b2fbcca6920). In the end this change is increasing the PV but moving SRCREV to an even older release. Thanks, -- Ricardo Salveti From ricardo at foundries.io Thu Feb 27 17:57:06 2020 From: ricardo at foundries.io (Ricardo Salveti) Date: Thu, 27 Feb 2020 14:57:06 -0300 Subject: [oe] [meta-oe][PATCH] libp11: upgrade 0.4.10 -> 11 In-Reply-To: References: <1581723823-21171-1-git-send-email-wangmy@cn.fujitsu.com> <1581723823-21171-5-git-send-email-wangmy@cn.fujitsu.com> Message-ID: On Thu, Feb 27, 2020 at 2:52 PM Ricardo Salveti wrote: > > Hi, > > On Fri, Feb 14, 2020 at 1:12 PM Wang Mingyu wrote: > > > > Signed-off-by: Wang Mingyu > > --- > > .../recipes-support/libp11/{libp11_0.4.10.bb => libp11_11.bb} | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > rename meta-oe/recipes-support/libp11/{libp11_0.4.10.bb => libp11_11.bb} (93%) > > > > diff --git a/meta-oe/recipes-support/libp11/libp11_0.4.10.bb b/meta-oe/recipes-support/libp11/libp11_11.bb > > similarity index 93% > > rename from meta-oe/recipes-support/libp11/libp11_0.4.10.bb > > rename to meta-oe/recipes-support/libp11/libp11_11.bb > > index 655db4907..5a0951df2 100644 > > --- a/meta-oe/recipes-support/libp11/libp11_0.4.10.bb > > +++ b/meta-oe/recipes-support/libp11/libp11_11.bb > > @@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29" > > DEPENDS = "libtool openssl" > > > > SRC_URI = "git://github.com/OpenSC/libp11.git" > > -SRCREV = "973d31f3f58d5549ddd8b1f822ce8f72186f9d68" > > +SRCREV = "e1210903291b1de9eabcad26e740a4b2fbcca692" > > Is this change really correct? The latest libp11 upstream release is > 0.4.10, as you can see at https://github.com/OpenSC/libp11/releases. > The next one seems that will be 0.4.11, so now sure how it was moved > to 11 directly. > > Also, the SRCREV seems incorrect, as it is pointing out to the 0.4.9 > release (https://github.com/OpenSC/libp11/commit/e1210903291b1de9eabcad26e740a4b2fbcca6920). Had a typo, correct link: https://github.com/OpenSC/libp11/commit/e1210903291b1de9eabcad26e740a4b2fbcca692 Cheers, -- Ricardo Salveti From raj.khem at gmail.com Thu Feb 27 19:02:21 2020 From: raj.khem at gmail.com (Khem Raj) Date: Thu, 27 Feb 2020 11:02:21 -0800 Subject: [oe] [meta-oe][PATCH] libp11: upgrade 0.4.10 -> 11 In-Reply-To: References: <1581723823-21171-1-git-send-email-wangmy@cn.fujitsu.com> <1581723823-21171-5-git-send-email-wangmy@cn.fujitsu.com> Message-ID: On Thu, Feb 27, 2020 at 9:53 AM Ricardo Salveti wrote: > > Hi, > > On Fri, Feb 14, 2020 at 1:12 PM Wang Mingyu wrote: > > > > Signed-off-by: Wang Mingyu > > --- > > .../recipes-support/libp11/{libp11_0.4.10.bb => libp11_11.bb} | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > rename meta-oe/recipes-support/libp11/{libp11_0.4.10.bb => libp11_11.bb} (93%) > > > > diff --git a/meta-oe/recipes-support/libp11/libp11_0.4.10.bb b/meta-oe/recipes-support/libp11/libp11_11.bb > > similarity index 93% > > rename from meta-oe/recipes-support/libp11/libp11_0.4.10.bb > > rename to meta-oe/recipes-support/libp11/libp11_11.bb > > index 655db4907..5a0951df2 100644 > > --- a/meta-oe/recipes-support/libp11/libp11_0.4.10.bb > > +++ b/meta-oe/recipes-support/libp11/libp11_11.bb > > @@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29" > > DEPENDS = "libtool openssl" > > > > SRC_URI = "git://github.com/OpenSC/libp11.git" > > -SRCREV = "973d31f3f58d5549ddd8b1f822ce8f72186f9d68" > > +SRCREV = "e1210903291b1de9eabcad26e740a4b2fbcca692" > > Is this change really correct? The latest libp11 upstream release is > 0.4.10, as you can see at https://github.com/OpenSC/libp11/releases. > The next one seems that will be 0.4.11, so now sure how it was moved > to 11 directly. > > Also, the SRCREV seems incorrect, as it is pointing out to the 0.4.9 > release (https://github.com/OpenSC/libp11/commit/e1210903291b1de9eabcad26e740a4b2fbcca6920). > > In the end this change is increasing the PV but moving SRCREV to an > even older release. > you are right, and it escaped me. Would you be willing to send a patch to correct it since it was not long time ago. > Thanks, > -- > Ricardo Salveti From bunk at stusta.de Thu Feb 27 20:10:07 2020 From: bunk at stusta.de (Adrian Bunk) Date: Thu, 27 Feb 2020 22:10:07 +0200 Subject: [oe] [meta-oe][PATCH] libidn: Remove obsolete patches for issues already fixed upstream Message-ID: <20200227201007.25063-1-bunk@stusta.de> Signed-off-by: Adrian Bunk --- ...R_P_warning_error_with_automake_1.12.patch | 34 ------------------ .../libidn/libidn_fix_for_automake-1.12.patch | 35 ------------------- .../recipes-extended/libidn/libidn_1.35.bb | 2 -- 3 files changed, 71 deletions(-) delete mode 100644 meta-oe/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch delete mode 100644 meta-oe/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch diff --git a/meta-oe/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch b/meta-oe/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch deleted file mode 100644 index 43bd23294..000000000 --- a/meta-oe/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch +++ /dev/null @@ -1,34 +0,0 @@ -From cdd9e2e960eeb4eda7b08f0113d0cd03524c1d45 Mon Sep 17 00:00:00 2001 -From: Nitin A Kamble -Date: Tue, 10 Jul 2012 02:44:30 -0700 -Subject: [PATCH] libidn: fix build with automake 1.12 - -Upstream-Status: Inappropriate - -automake 1.12.x has deprecated AM_PROG_MKDIR_P , and throws a warning for that, -and the warnings are treated as errors because of the -Werror parameter. - -These AM_PROG_MKDIR_P are coming from gettext, and the latest gettext code has not -eliminated these deprecated macros yet. So disable the treatment of warnings -as errors until gettext is updated to remove the deprecated macros. - -Signed-off-by: Nitin A Kamble -2012/07/10 - ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 261dad2..c4f935e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -22,7 +22,7 @@ AC_INIT([GNU Libidn], [1.34], [bug-libidn at gnu.org]) - AC_CONFIG_AUX_DIR([build-aux]) - AC_CONFIG_MACRO_DIR([m4]) - AC_CONFIG_HEADERS(config.h) --AM_INIT_AUTOMAKE([1.10 -Wall -Werror -Wno-override]) -+AM_INIT_AUTOMAKE([1.10 -Wall -Wno-override]) - m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - - # Library code modified: REVISION++ diff --git a/meta-oe/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch b/meta-oe/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch deleted file mode 100644 index 3c0559e34..000000000 --- a/meta-oe/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch +++ /dev/null @@ -1,35 +0,0 @@ -From d4f64b78419139eda3c0e1c6ee116bb5f70ea67c Mon Sep 17 00:00:00 2001 -From: Nitin A Kamble -Date: Wed, 2 May 2012 18:05:19 -0700 -Subject: [PATCH] libtasn1: fix build with automake 1.12 - -Upstream-Status: Pending - -This patch fixes following issue with automake 1.12 - -| automake: warnings are treated as errors -| /srv/home/nitin/builds/build-gcc47/tmp/sysroots/x86_64-linux/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libidn.la': linking libtool libraries using a non-POSIX -| /srv/home/nitin/builds/build-gcc47/tmp/sysroots/x86_64-linux/usr/share/automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac' - -Signed-off-by: Nitin A Kamble -2012/05/03 - ---- - configure.ac | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/configure.ac b/configure.ac -index 8297649..7b9626e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -33,6 +33,10 @@ AC_SUBST(LT_CURRENT, 18) - AC_SUBST(LT_REVISION, 0) - AC_SUBST(LT_AGE, 6) - -+# automake 1.12 seems to require this, but automake 1.11 doesn't recognize it -+m4_pattern_allow([AM_PROG_AR]) -+AM_PROG_AR -+ - AC_PROG_CC - gl_EARLY - lgl_EARLY diff --git a/meta-oe/recipes-extended/libidn/libidn_1.35.bb b/meta-oe/recipes-extended/libidn/libidn_1.35.bb index d5ce5b46b..105740354 100644 --- a/meta-oe/recipes-extended/libidn/libidn_1.35.bb +++ b/meta-oe/recipes-extended/libidn/libidn_1.35.bb @@ -15,8 +15,6 @@ DEPENDS = "virtual/libiconv autoconf-archive" inherit pkgconfig autotools gettext texinfo gtk-doc SRC_URI = "${GNU_MIRROR}/libidn/${BPN}-${PV}.tar.gz \ - file://libidn_fix_for_automake-1.12.patch \ - file://avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch \ file://dont-depend-on-help2man.patch \ file://0001-idn-format-security-warnings.patch \ " -- 2.17.1 From ricardo at foundries.io Thu Feb 27 20:41:05 2020 From: ricardo at foundries.io (Ricardo Salveti) Date: Thu, 27 Feb 2020 17:41:05 -0300 Subject: [oe] [PATCH] libp11: revert version back to the 0.4.10 release Message-ID: <20200227204105.25220-1-ricardo@foundries.io> The latest upstream release is still 0.4.10 (2019-04-03), as available at https://github.com/OpenSC/libp11/releases. This reverts commit 4990f80ddbc984f2bed4e07005d22f937988827e as it was incorrect, since there is no 11 release, and SRCREV used was actually from the 0.4.9 release. Signed-off-by: Ricardo Salveti --- .../recipes-support/libp11/{libp11_11.bb => libp11_0.4.10.bb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename meta-oe/recipes-support/libp11/{libp11_11.bb => libp11_0.4.10.bb} (93%) diff --git a/meta-oe/recipes-support/libp11/libp11_11.bb b/meta-oe/recipes-support/libp11/libp11_0.4.10.bb similarity index 93% rename from meta-oe/recipes-support/libp11/libp11_11.bb rename to meta-oe/recipes-support/libp11/libp11_0.4.10.bb index 5a0951df2..655db4907 100644 --- a/meta-oe/recipes-support/libp11/libp11_11.bb +++ b/meta-oe/recipes-support/libp11/libp11_0.4.10.bb @@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29" DEPENDS = "libtool openssl" SRC_URI = "git://github.com/OpenSC/libp11.git" -SRCREV = "e1210903291b1de9eabcad26e740a4b2fbcca692" +SRCREV = "973d31f3f58d5549ddd8b1f822ce8f72186f9d68" S = "${WORKDIR}/git" -- 2.25.1 From joe.slater at windriver.com Thu Feb 27 21:49:12 2020 From: joe.slater at windriver.com (Joe Slater) Date: Thu, 27 Feb 2020 13:49:12 -0800 Subject: [oe] [meta-oe][PATCH 1/1] fio: change four python shebangs Message-ID: <20200227214912.10386-1-joe.slater@windriver.com> Use python3. Note that the recipe already depends on python3-core at runtime. We only change scripts that show up under /usr/bin. Signed-off-by: Joe Slater --- .../fio/files/python3_shebangs.patch | 38 ++++++++++++++++++++++ meta-oe/recipes-benchmark/fio/fio_3.17.bb | 1 + 2 files changed, 39 insertions(+) create mode 100644 meta-oe/recipes-benchmark/fio/files/python3_shebangs.patch diff --git a/meta-oe/recipes-benchmark/fio/files/python3_shebangs.patch b/meta-oe/recipes-benchmark/fio/files/python3_shebangs.patch new file mode 100644 index 0000000..068b021 --- /dev/null +++ b/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 + +--- 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 diff --git a/meta-oe/recipes-benchmark/fio/fio_3.17.bb b/meta-oe/recipes-benchmark/fio/fio_3.17.bb index b15d7ba..b65ab19 100644 --- a/meta-oe/recipes-benchmark/fio/fio_3.17.bb +++ b/meta-oe/recipes-benchmark/fio/fio_3.17.bb @@ -25,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" -- 2.7.4 From schnitzeltony at gmail.com Thu Feb 27 22:12:38 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Thu, 27 Feb 2020 23:12:38 +0100 Subject: [oe] [PATCH 1/8] evolution-data-server: upgrade 3.34.3 -> 3.34.4 Message-ID: <20200227221245.22944-1-schnitzeltony@gmail.com> Signed-off-by: Andreas M?ller --- .../evolution-data-server/evolution-data-server.inc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc index 1eae3df35..4da3f8259 100644 --- a/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc +++ b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc @@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6a6e689d19255cf0557f3fe7d7068212 \ inherit gnomebase upstream-version-is-even -SRC_URI[archive.md5sum] = "687d6d7242d60a8a3a3322eee6a45dca" -SRC_URI[archive.sha256sum] = "d2dfac5ca76e05e872fbb06a57cae0dace64818c4dce1e906b0396888270c3a9" -PV = "3.34.3" +SRC_URI[archive.md5sum] = "23293554e9d92c6c0c78b5568b286efd" +SRC_URI[archive.sha256sum] = "985c4b4b613c50c999a4ca5e9d52478acbea85e1e99bab3a8b6e57ba7eace8f3" +PV = "3.34.4" -- 2.21.0 From schnitzeltony at gmail.com Thu Feb 27 22:12:39 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Thu, 27 Feb 2020 23:12:39 +0100 Subject: [oe] [PATCH 2/8] file-roller: upgrade 3.32.3 -> 3.32.4 In-Reply-To: <20200227221245.22944-1-schnitzeltony@gmail.com> References: <20200227221245.22944-1-schnitzeltony@gmail.com> Message-ID: <20200227221245.22944-2-schnitzeltony@gmail.com> Signed-off-by: Andreas M?ller --- .../{file-roller_3.32.3.bb => file-roller_3.32.4.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-gnome/recipes-gnome/file-roller/{file-roller_3.32.3.bb => file-roller_3.32.4.bb} (77%) diff --git a/meta-gnome/recipes-gnome/file-roller/file-roller_3.32.3.bb b/meta-gnome/recipes-gnome/file-roller/file-roller_3.32.4.bb similarity index 77% rename from meta-gnome/recipes-gnome/file-roller/file-roller_3.32.3.bb rename to meta-gnome/recipes-gnome/file-roller/file-roller_3.32.4.bb index f6b045786..0e57848c5 100644 --- a/meta-gnome/recipes-gnome/file-roller/file-roller_3.32.3.bb +++ b/meta-gnome/recipes-gnome/file-roller/file-roller_3.32.4.bb @@ -13,8 +13,8 @@ DEPENDS = " \ inherit gnomebase gsettings itstool gnome-help gettext upstream-version-is-even mime-xdg -SRC_URI[archive.md5sum] = "5e098bb254d34f48a9b5761b468f4240" -SRC_URI[archive.sha256sum] = "be111fb877dc1eb487ec5d6e2b72ba5defe1ab8033a6a6b9b9044a2a7787e22a" +SRC_URI[archive.md5sum] = "21982b8d298cb2994a99494399dcb2d5" +SRC_URI[archive.sha256sum] = "1b3b2cbfcb444e0d150bfd063add9d5181c8ab24f0593e5a8894399297214017" PACKAGECONFIG[nautilus] = "-Dnautilus-actions=true,-Dnautilus-actions=false,nautilus" -- 2.21.0 From schnitzeltony at gmail.com Thu Feb 27 22:12:40 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Thu, 27 Feb 2020 23:12:40 +0100 Subject: [oe] [PATCH 3/8] gjs: upgrade 1.58.4 -> 1.58.5 In-Reply-To: <20200227221245.22944-1-schnitzeltony@gmail.com> References: <20200227221245.22944-1-schnitzeltony@gmail.com> Message-ID: <20200227221245.22944-3-schnitzeltony@gmail.com> Signed-off-by: Andreas M?ller --- meta-gnome/recipes-gnome/gjs/{gjs_1.58.4.bb => gjs_1.58.5.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-gnome/recipes-gnome/gjs/{gjs_1.58.4.bb => gjs_1.58.5.bb} (87%) diff --git a/meta-gnome/recipes-gnome/gjs/gjs_1.58.4.bb b/meta-gnome/recipes-gnome/gjs/gjs_1.58.5.bb similarity index 87% rename from meta-gnome/recipes-gnome/gjs/gjs_1.58.4.bb rename to meta-gnome/recipes-gnome/gjs/gjs_1.58.5.bb index eb7d323a6..fd74c45c1 100644 --- a/meta-gnome/recipes-gnome/gjs/gjs_1.58.4.bb +++ b/meta-gnome/recipes-gnome/gjs/gjs_1.58.5.bb @@ -11,8 +11,8 @@ DEPENDS = "mozjs gtk+3" inherit gnomebase gsettings gobject-introspection vala gettext features_check upstream-version-is-even -SRC_URI[archive.md5sum] = "385f4baa266991a08d3e425bc69ee962" -SRC_URI[archive.sha256sum] = "261a3f666c771d7744965fe71b804fc2c3a3d46a8e3e8d4f7ed5ef97967ebd5f" +SRC_URI[archive.md5sum] = "4e74456ccb16d4cc5004a441f6abbec1" +SRC_URI[archive.sha256sum] = "e76d99c09f887438b9883e328710b26b3717f6dcdb4097dc7a9bab06ebd7a13a" SRC_URI += "file://0001-Disable-tests-on-host.patch" # gobject-introspection is mandatory and cannot be configured -- 2.21.0 From schnitzeltony at gmail.com Thu Feb 27 22:12:41 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Thu, 27 Feb 2020 23:12:41 +0100 Subject: [oe] [PATCH 4/8] gnome-control-center: upgrade 3.34.2 -> 3.34.4 In-Reply-To: <20200227221245.22944-1-schnitzeltony@gmail.com> References: <20200227221245.22944-1-schnitzeltony@gmail.com> Message-ID: <20200227221245.22944-4-schnitzeltony@gmail.com> Signed-off-by: Andreas M?ller --- ...ontrol-center_3.34.2.bb => gnome-control-center_3.34.4.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-gnome/recipes-gnome/gnome-control-center/{gnome-control-center_3.34.2.bb => gnome-control-center_3.34.4.bb} (89%) diff --git a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_3.34.2.bb b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_3.34.4.bb similarity index 89% rename from meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_3.34.2.bb rename to meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_3.34.4.bb index 9e6e92aec..c4ba833a1 100644 --- a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_3.34.2.bb +++ b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_3.34.4.bb @@ -30,8 +30,8 @@ DEPENDS = " \ REQUIRED_DISTRO_FEATURES += "polkit pulseaudio systemd x11" -SRC_URI[archive.md5sum] = "a960a7d3e9f1c4f341bae42da7fbf23a" -SRC_URI[archive.sha256sum] = "a85ffaf5885a8c70c019013d73792bf4cc75f643e97f6e8b52f7fbba9f7a9114" +SRC_URI[archive.md5sum] = "4a783c45d6775185a683f143a14d460e" +SRC_URI[archive.sha256sum] = "17ea6db4b9cee75e99e77f0161a0e5209a3b86444ae775c2068ec192aba6272e" SRC_URI += "file://0001-Add-meson-option-to-pass-sysroot.patch" PACKAGECONFIG ??= "ibus ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)}" -- 2.21.0 From schnitzeltony at gmail.com Thu Feb 27 22:12:43 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Thu, 27 Feb 2020 23:12:43 +0100 Subject: [oe] [PATCH 6/8] gspell: upgrade 1.8.2 -> 1.8.3 In-Reply-To: <20200227221245.22944-1-schnitzeltony@gmail.com> References: <20200227221245.22944-1-schnitzeltony@gmail.com> Message-ID: <20200227221245.22944-6-schnitzeltony@gmail.com> Signed-off-by: Andreas M?ller --- .../recipes-gnome/gspell/{gspell_1.8.2.bb => gspell_1.8.3.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-gnome/recipes-gnome/gspell/{gspell_1.8.2.bb => gspell_1.8.3.bb} (65%) diff --git a/meta-gnome/recipes-gnome/gspell/gspell_1.8.2.bb b/meta-gnome/recipes-gnome/gspell/gspell_1.8.3.bb similarity index 65% rename from meta-gnome/recipes-gnome/gspell/gspell_1.8.2.bb rename to meta-gnome/recipes-gnome/gspell/gspell_1.8.3.bb index 128a89f5d..44cdefc33 100644 --- a/meta-gnome/recipes-gnome/gspell/gspell_1.8.2.bb +++ b/meta-gnome/recipes-gnome/gspell/gspell_1.8.3.bb @@ -7,5 +7,5 @@ DEPENDS = "gtk+3 iso-codes enchant2" inherit gnomebase gettext gobject-introspection -SRC_URI[archive.md5sum] = "4f857382bc9d8d4afe1e67e5b5b9dbff" -SRC_URI[archive.sha256sum] = "bb9195c3a95bacf556d0203e9691f7489e0d3bc5ae1e5a440c89b2f2435d3ed6" +SRC_URI[archive.md5sum] = "d0892000d944e87fd74e8611ef400cdb" +SRC_URI[archive.sha256sum] = "5ae514dd0216be069176accf6d0049d6a01cfa6a50df4bc06be85f7080b62de8" -- 2.21.0 From schnitzeltony at gmail.com Thu Feb 27 22:12:42 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Thu, 27 Feb 2020 23:12:42 +0100 Subject: [oe] [PATCH 5/8] gnome-desktop3: upgrade 3.34.3 -> 3.34.4 In-Reply-To: <20200227221245.22944-1-schnitzeltony@gmail.com> References: <20200227221245.22944-1-schnitzeltony@gmail.com> Message-ID: <20200227221245.22944-5-schnitzeltony@gmail.com> Signed-off-by: Andreas M?ller --- .../{gnome-desktop3_3.34.3.bb => gnome-desktop3_3.34.4.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-gnome/recipes-gnome/gnome-desktop/{gnome-desktop3_3.34.3.bb => gnome-desktop3_3.34.4.bb} (88%) diff --git a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.34.3.bb b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.34.4.bb similarity index 88% rename from meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.34.3.bb rename to meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.34.4.bb index cdd11aa90..f9b053837 100644 --- a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.34.3.bb +++ b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.34.4.bb @@ -14,8 +14,8 @@ inherit gnomebase itstool pkgconfig upstream-version-is-even gobject-introspecti REQUIRED_DISTRO_FEATURES = "gobject-introspection-data" UNKNOWN_CONFIGURE_WHITELIST_append = " introspection" -SRC_URI[archive.md5sum] = "cdcd3006f55d8c8813315bef6f4f6b71" -SRC_URI[archive.sha256sum] = "acc2efc847574fd21d8f200679f111c2b1eb5ae2c041e0034e7c18450a7d9c6d" +SRC_URI[archive.md5sum] = "d682a05eb98bb2dd434042b6ac4f99d5" +SRC_URI[archive.sha256sum] = "c53e72737cc21535f2fd4b72bc2fb5594741cfc3d3ce90949bc5cc07bade0cbc" SRC_URI += " \ file://gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch \ -- 2.21.0 From schnitzeltony at gmail.com Thu Feb 27 22:12:44 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Thu, 27 Feb 2020 23:12:44 +0100 Subject: [oe] [PATCH 7/8] libgee: upgrade 0.20.2 -> 0.20.3 In-Reply-To: <20200227221245.22944-1-schnitzeltony@gmail.com> References: <20200227221245.22944-1-schnitzeltony@gmail.com> Message-ID: <20200227221245.22944-7-schnitzeltony@gmail.com> Signed-off-by: Andreas M?ller --- .../libgee/{libgee_0.20.2.bb => libgee_0.20.3.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-devtools/libgee/{libgee_0.20.2.bb => libgee_0.20.3.bb} (77%) diff --git a/meta-oe/recipes-devtools/libgee/libgee_0.20.2.bb b/meta-oe/recipes-devtools/libgee/libgee_0.20.3.bb similarity index 77% rename from meta-oe/recipes-devtools/libgee/libgee_0.20.2.bb rename to meta-oe/recipes-devtools/libgee/libgee_0.20.3.bb index a048e4832..576eff6d5 100644 --- a/meta-oe/recipes-devtools/libgee/libgee_0.20.2.bb +++ b/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" -- 2.21.0 From schnitzeltony at gmail.com Thu Feb 27 22:12:45 2020 From: schnitzeltony at gmail.com (=?UTF-8?q?Andreas=20M=C3=BCller?=) Date: Thu, 27 Feb 2020 23:12:45 +0100 Subject: [oe] [PATCH 8/8] gmime: upgrade 3.2.5 -> 3.2.6 In-Reply-To: <20200227221245.22944-1-schnitzeltony@gmail.com> References: <20200227221245.22944-1-schnitzeltony@gmail.com> Message-ID: <20200227221245.22944-8-schnitzeltony@gmail.com> Signed-off-by: Andreas M?ller --- .../recipes-gnome/gmime/{gmime_3.2.5.bb => gmime_3.2.6.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-gnome/gmime/{gmime_3.2.5.bb => gmime_3.2.6.bb} (72%) diff --git a/meta-oe/recipes-gnome/gmime/gmime_3.2.5.bb b/meta-oe/recipes-gnome/gmime/gmime_3.2.6.bb similarity index 72% rename from meta-oe/recipes-gnome/gmime/gmime_3.2.5.bb rename to meta-oe/recipes-gnome/gmime/gmime_3.2.6.bb index 568083bf3..9d1bb7d04 100644 --- a/meta-oe/recipes-gnome/gmime/gmime_3.2.5.bb +++ b/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}" -- 2.21.0 From jpuhlman at mvista.com Thu Feb 27 22:17:48 2020 From: jpuhlman at mvista.com (Jeremy A. Puhlman) Date: Thu, 27 Feb 2020 14:17:48 -0800 Subject: [oe] [meta-networking][PATCH] netkit-ftp: clean in configure step broken Message-ID: <20200227221748.8856-1-jpuhlman@mvista.com> From: Jeremy Puhlman | DEBUG: Executing shell function autotools_preconfigure | NOTE: make clean | (cd ftp && make clean) | make[1]: Entering directory '/project/tmp/work/i586-oe-linux/netkit-ftp/0.17-r0/netkit-ftp-0.17/ftp' | Makefile:3: ../MCONFIG: No such file or directory | make[1]: *** No rule to make target '../MCONFIG'. Stop. Signed-off-by: Jeremy A. Puhlman --- meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb b/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb index 65c20c072..cf306ec82 100644 --- a/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb +++ b/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb @@ -18,6 +18,8 @@ SRC_URI[patch31.sha256sum] = "4edd46a32d70daa7ba00f0ebf0118dc5d17dff23d6e46aa21a inherit autotools-brokensep +CLEANBROKEN = "1" + do_configure () { ./configure --prefix=${prefix} echo "LDFLAGS=${LDFLAGS}" >> MCONFIG -- 2.20.1 From wangmy at cn.fujitsu.com Fri Feb 28 08:31:43 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Fri, 28 Feb 2020 00:31:43 -0800 Subject: [oe] [meta-oe] [PATCH] libuv: upgrade 1.34.0 -> 1.34.2 In-Reply-To: <1582878704-30686-1-git-send-email-wangmy@cn.fujitsu.com> References: <1582878704-30686-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1582878704-30686-2-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../libuv/{libuv_1.34.0.bb => libuv_1.34.2.bb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename meta-oe/recipes-connectivity/libuv/{libuv_1.34.0.bb => libuv_1.34.2.bb} (90%) diff --git a/meta-oe/recipes-connectivity/libuv/libuv_1.34.0.bb b/meta-oe/recipes-connectivity/libuv/libuv_1.34.2.bb similarity index 90% rename from meta-oe/recipes-connectivity/libuv/libuv_1.34.0.bb rename to meta-oe/recipes-connectivity/libuv/libuv_1.34.2.bb index b842bbda7..234cec37b 100644 --- a/meta-oe/recipes-connectivity/libuv/libuv_1.34.0.bb +++ b/meta-oe/recipes-connectivity/libuv/libuv_1.34.2.bb @@ -4,7 +4,7 @@ BUGTRACKER = "https://github.com/libuv/libuv/issues" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47" -SRCREV = "15ae750151ac9341e5945eb38f8982d59fb99201" +SRCREV = "f868c9ab0c307525a16fff99fd21e32a6ebc3837" SRC_URI = "git://github.com/libuv/libuv;branch=v1.x" S = "${WORKDIR}/git" -- 2.17.1 From wangmy at cn.fujitsu.com Fri Feb 28 08:31:42 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Fri, 28 Feb 2020 00:31:42 -0800 Subject: [oe] [meta-oe] [PATCH] libmtp: upgrade 1.1.16 -> 1.1.17 Message-ID: <1582878704-30686-1-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../libmtp/{libmtp_1.1.16.bb => libmtp_1.1.17.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-connectivity/libmtp/{libmtp_1.1.16.bb => libmtp_1.1.17.bb} (93%) diff --git a/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.16.bb b/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.17.bb similarity index 93% rename from meta-oe/recipes-connectivity/libmtp/libmtp_1.1.16.bb rename to meta-oe/recipes-connectivity/libmtp/libmtp_1.1.17.bb index 596e315b7..54decbccf 100644 --- a/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.16.bb +++ b/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 -- 2.17.1 From wangmy at cn.fujitsu.com Fri Feb 28 08:31:44 2020 From: wangmy at cn.fujitsu.com (Wang Mingyu) Date: Fri, 28 Feb 2020 00:31:44 -0800 Subject: [oe] [meta-oe][PATCH] zabbix: upgrade 4.4.5 -> 4.4.6 In-Reply-To: <1582878704-30686-1-git-send-email-wangmy@cn.fujitsu.com> References: <1582878704-30686-1-git-send-email-wangmy@cn.fujitsu.com> Message-ID: <1582878704-30686-3-git-send-email-wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu --- .../zabbix/{zabbix_4.4.5.bb => zabbix_4.4.6.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-connectivity/zabbix/{zabbix_4.4.5.bb => zabbix_4.4.6.bb} (95%) diff --git a/meta-oe/recipes-connectivity/zabbix/zabbix_4.4.5.bb b/meta-oe/recipes-connectivity/zabbix/zabbix_4.4.6.bb similarity index 95% rename from meta-oe/recipes-connectivity/zabbix/zabbix_4.4.5.bb rename to meta-oe/recipes-connectivity/zabbix/zabbix_4.4.6.bb index 108813f1e..0e0ddd577 100644 --- a/meta-oe/recipes-connectivity/zabbix/zabbix_4.4.5.bb +++ b/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] = "69ab0c1bbf9d1f8979664498d36cc9a6" -SRC_URI[sha256sum] = "94a897825b062e17b34767c0864305cee6a87476dda8bee88dcf845b24bed0ea" +SRC_URI[md5sum] = "e666539220be93b1af38e40f5fbb1f79" +SRC_URI[sha256sum] = "22bb28e667424ad4688f47732853f4241df0e78a7607727b043d704ba726ae0e" inherit autotools-brokensep linux-kernel-base pkgconfig systemd useradd -- 2.17.1 From raj.khem at gmail.com Fri Feb 28 01:54:46 2020 From: raj.khem at gmail.com (Khem Raj) Date: Thu, 27 Feb 2020 17:54:46 -0800 Subject: [oe] [meta-oe] [PATCH] libuv: upgrade 1.34.0 -> 1.34.2 In-Reply-To: <1582878704-30686-2-git-send-email-wangmy@cn.fujitsu.com> References: <1582878704-30686-1-git-send-email-wangmy@cn.fujitsu.com> <1582878704-30686-2-git-send-email-wangmy@cn.fujitsu.com> Message-ID: On 2/28/20 12:31 AM, Wang Mingyu wrote: > Signed-off-by: Wang Mingyu > --- > .../libuv/{libuv_1.34.0.bb => libuv_1.34.2.bb} | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > rename meta-oe/recipes-connectivity/libuv/{libuv_1.34.0.bb => libuv_1.34.2.bb} (90%) > > diff --git a/meta-oe/recipes-connectivity/libuv/libuv_1.34.0.bb b/meta-oe/recipes-connectivity/libuv/libuv_1.34.2.bb > similarity index 90% > rename from meta-oe/recipes-connectivity/libuv/libuv_1.34.0.bb > rename to meta-oe/recipes-connectivity/libuv/libuv_1.34.2.bb > index b842bbda7..234cec37b 100644 > --- a/meta-oe/recipes-connectivity/libuv/libuv_1.34.0.bb > +++ b/meta-oe/recipes-connectivity/libuv/libuv_1.34.2.bb > @@ -4,7 +4,7 @@ BUGTRACKER = "https://github.com/libuv/libuv/issues" > LICENSE = "MIT" > LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47" > > -SRCREV = "15ae750151ac9341e5945eb38f8982d59fb99201" > +SRCREV = "f868c9ab0c307525a16fff99fd21e32a6ebc3837" > SRC_URI = "git://github.com/libuv/libuv;branch=v1.x" > > S = "${WORKDIR}/git" > this is already done. From zangrc.fnst at cn.fujitsu.com Fri Feb 28 03:28:48 2020 From: zangrc.fnst at cn.fujitsu.com (Zang Ruochen) Date: Fri, 28 Feb 2020 11:28:48 +0800 Subject: [oe] [PATCH] [meta-python] [PATCH] python3-appdirs: enable ptest Message-ID: <20200228032848.3669-1-zangrc.fnst@cn.fujitsu.com> From: Zheng Ruoqin Signed-off-by: Zheng Ruoqin --- .../python/python3-appdirs/run-ptest | 3 +++ .../python/python3-appdirs_1.4.3.bb | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 meta-python/recipes-devtools/python/python3-appdirs/run-ptest diff --git a/meta-python/recipes-devtools/python/python3-appdirs/run-ptest b/meta-python/recipes-devtools/python/python3-appdirs/run-ptest new file mode 100644 index 000000000..5287f3e03 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-appdirs/run-ptest @@ -0,0 +1,3 @@ +#!/bin/sh + +pytest | sed -e 's/\[100%\]//g' | sed -e 's/\.\.F/: FAIL/g' | sed -e 's/\.\.\./: PASS/g' diff --git a/meta-python/recipes-devtools/python/python3-appdirs_1.4.3.bb b/meta-python/recipes-devtools/python/python3-appdirs_1.4.3.bb index 6c0158072..2e183d888 100644 --- a/meta-python/recipes-devtools/python/python3-appdirs_1.4.3.bb +++ b/meta-python/recipes-devtools/python/python3-appdirs_1.4.3.bb @@ -2,7 +2,20 @@ SUMMARY = "A small Python module for determining appropriate + platform-specific LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=31625363c45eb0c67c630a2f73e438e4" +SRC_URI += " \ + file://run-ptest \ +" + SRC_URI[md5sum] = "44c679904082a2133f5566c8a0d3ab42" SRC_URI[sha256sum] = "9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92" -inherit pypi setuptools3 +inherit pypi setuptools3 ptest + +RDEPENDS_${PN}-ptest += " \ + ${PYTHON_PN}-pytest \ +" + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/test + cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/ +} -- 2.20.1 From git at andred.net Fri Feb 28 09:34:37 2020 From: git at andred.net (=?UTF-8?q?Andr=C3=A9=20Draszik?=) Date: Fri, 28 Feb 2020 09:34:37 +0000 Subject: [oe] [meta-networking][PATCH] libowfat: fix sdk installation Message-ID: <20200228093437.2877-1-git@andred.net> From: Andr? Draszik Building an SDK with this included fails: * calculate_dependencies_for: Cannot satisfy the following dependencies for ncp-dev: * libowfat (= 0.32-r0) * * opkg_solver_install: Cannot install package ncp-dev. libowfat only provides a static library, so there no ${PN} package is created by default. Add ALLOW_EMPTY_${PN} = "1" to allow creation of an empty ${PN} package. Signed-off-by: Andr? Draszik --- meta-networking/recipes-support/ncp/libowfat_0.32.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-networking/recipes-support/ncp/libowfat_0.32.bb b/meta-networking/recipes-support/ncp/libowfat_0.32.bb index 24f413555..d2f4df78e 100644 --- a/meta-networking/recipes-support/ncp/libowfat_0.32.bb +++ b/meta-networking/recipes-support/ncp/libowfat_0.32.bb @@ -26,4 +26,6 @@ do_install() { MAN3DIR=${mandir}/man3 } +ALLOW_EMPTY_${PN} = "1" + BBCLASSEXTEND = "native nativesdk" -- 2.23.0.rc1 From pbarker at konsulko.com Fri Feb 28 13:15:25 2020 From: pbarker at konsulko.com (Paul Barker) Date: Fri, 28 Feb 2020 13:15:25 +0000 Subject: [oe] [PATCH] lmsensors: Fix sensord dependencies Message-ID: <20200228131525.3587-1-pbarker@konsulko.com> If sensord is removed from PACKAGECONFIG, the recipe should not depend on rrdtool and the lmsensors package should not depend on lmsensors-sensord. Signed-off-by: Paul Barker --- meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb b/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb index 48490e8d8..890db55bc 100644 --- a/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb +++ b/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 \ -- 2.20.1 From git at andred.net Fri Feb 28 13:36:04 2020 From: git at andred.net (=?UTF-8?q?Andr=C3=A9=20Draszik?=) Date: Fri, 28 Feb 2020 13:36:04 +0000 Subject: [oe] [meta-oe][PATCH] meta-oe: use COMMON_LICENSE_DIR for license file location Message-ID: <20200228133604.39253-1-git@andred.net> COMMON_LICENSE_DIR is the official location for license files Signed-off-by: Andr? Draszik --- meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb | 2 +- .../gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb | 4 ++-- meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb | 2 +- meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb b/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb index 17e8c700c..39a0ccc8c 100644 --- a/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb +++ b/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb @@ -1,6 +1,6 @@ SUMMARY = "Dhrystone CPU benchmark" LICENSE = "PD" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/PD;md5=b3597d12946881e13cb3b548d1173851" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/PD;md5=b3597d12946881e13cb3b548d1173851" SRC_URI = "http://www.netlib.org/benchmark/dhry-c;downloadfilename=dhry-c.shar \ file://dhrystone.patch" diff --git a/meta-oe/recipes-gnome/gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb b/meta-oe/recipes-gnome/gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb index d6da51b0d..9c16da416 100644 --- a/meta-oe/recipes-gnome/gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb +++ b/meta-oe/recipes-gnome/gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb @@ -3,8 +3,8 @@ DESCRIPTION = "This recipe provides m4 macros from gnome-doc-utils project, so \ that dependent recipes can build. Gnome-doc-utils itself is no longer packaged because \ it requires libxml2 and python 2 at the same time, which can no longer be satisfied. " LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \ - file://${COREBASE}/meta/files/common-licenses/LGPL-2.1;md5=1a6d268fd218675ffea8be556788b780" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \ + file://${COMMON_LICENSE_DIR}/LGPL-2.1;md5=1a6d268fd218675ffea8be556788b780" SRC_URI = "file://gnome-doc-utils.m4" PROVIDES = "gnome-doc-utils" diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb b/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb index d2058ba57..fae760bbf 100644 --- a/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb +++ b/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb @@ -1,6 +1,6 @@ SUMMARY = "Machine specific gpsd config" LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/BSD;md5=3775480a712fc46a69647678acb234cb" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD;md5=3775480a712fc46a69647678acb234cb" # empty by default # BSP layers can add stuff like meta-openmoko example: diff --git a/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb b/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb index 39629cce0..44679c047 100644 --- a/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb +++ b/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb @@ -1,7 +1,7 @@ DESCRIPTION = "Very fast, header only, C++ logging library." HOMEPAGE = "https://github.com/gabime/spdlog/wiki" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" SRCREV = "cf6f1dd01e660d5865d68bf5fa78f6376b89470a" SRC_URI = "git://github.com/gabime/spdlog.git;protocol=git;branch=v1.x;" -- 2.23.0.rc1 From git at andred.net Fri Feb 28 13:36:26 2020 From: git at andred.net (=?UTF-8?q?Andr=C3=A9=20Draszik?=) Date: Fri, 28 Feb 2020 13:36:26 +0000 Subject: [oe] [meta-multimedia][PATCH] meta-multimedia: use COMMON_LICENSE_DIR for license file location Message-ID: <20200228133626.39374-1-git@andred.net> COMMON_LICENSE_DIR is the official location for license files Signed-off-by: Andr? Draszik --- .../recipes-multimedia/sample-content/bigbuckbunny-1080p.bb | 2 +- .../recipes-multimedia/sample-content/bigbuckbunny-480p.bb | 2 +- .../recipes-multimedia/sample-content/bigbuckbunny-720p.bb | 2 +- .../recipes-multimedia/sample-content/tearsofsteel-1080p.bb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb index cee386c2a..70eb6e4be 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb @@ -1,7 +1,7 @@ SUMMARY = "Big Buck Bunny movie - 1080P" LICENSE = "CC-BY-3.0" # http://www.bigbuckbunny.org/index.php/about/ -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" SRC_URI = "http://themazzone.com/big_buck_bunny_1080p_surround.avi" SRC_URI[md5sum] = "223991c8b33564eb77988a4c13c1c76a" diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb index d395b9206..df2368996 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb @@ -1,7 +1,7 @@ SUMMARY = "Big Buck Bunny movie - 480P" LICENSE = "CC-BY-3.0" # http://www.bigbuckbunny.org/index.php/about/ -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" SRC_URI = "https://archive.org/download/BigBuckBunny/big_buck_bunny_480p_surround-fix.avi" SRC_URI[md5sum] = "ed7ed01e9aefba8ddd77c13332cec120" diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb index 20d562749..cb8ece0cb 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb @@ -1,7 +1,7 @@ SUMMARY = "Big Buck Bunny movie - 720P" LICENSE = "CC-BY-3.0" # http://www.bigbuckbunny.org/index.php/about/ -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" SRC_URI = "https://archive.org/download/BigBuckBunny/big_buck_bunny_720p_surround.avi" SRC_URI[md5sum] = "0da8fe124595f5b206d64cb1400bbefc" diff --git a/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb b/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb index 0582a4856..04cbd2e34 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb @@ -1,6 +1,6 @@ SUMMARY = "Tears of Steel movie - 1080P" LICENSE = "CC-BY-3.0" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" SRC_URI = "http://ftp.nluug.nl/pub/graphics/blender/demo/movies/ToS/ToS-4k-1920.mov" SRC_URI[md5sum] = "e3fee55b1779c553e37b1d3988e6fad6" -- 2.23.0.rc1 From git at andred.net Fri Feb 28 13:37:01 2020 From: git at andred.net (=?UTF-8?q?Andr=C3=A9=20Draszik?=) Date: Fri, 28 Feb 2020 13:37:01 +0000 Subject: [oe] [meta-networking][PATCH] meta-networking: use COMMON_LICENSE_DIR for license file location Message-ID: <20200228133701.39554-1-git@andred.net> COMMON_LICENSE_DIR is the official location for license files Signed-off-by: Andr? Draszik --- meta-networking/recipes-connectivity/samba/samba_4.10.13.bb | 4 ++-- meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb | 2 +- meta-networking/recipes-support/arptables/arptables_git.bb | 2 +- meta-networking/recipes-support/ncp/ncp_1.2.4.bb | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/meta-networking/recipes-connectivity/samba/samba_4.10.13.bb b/meta-networking/recipes-connectivity/samba/samba_4.10.13.bb index 71d8fa2f8..4d57255f1 100644 --- a/meta-networking/recipes-connectivity/samba/samba_4.10.13.bb +++ b/meta-networking/recipes-connectivity/samba/samba_4.10.13.bb @@ -3,8 +3,8 @@ SECTION = "console/network" LICENSE = "GPL-3.0+ & LGPL-3.0+ & GPL-2.0+" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ - file://${COREBASE}/meta/files/common-licenses/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \ - file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 " + file://${COMMON_LICENSE_DIR}/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \ + file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 " SAMBA_MIRROR = "http://samba.org/samba/ftp" MIRRORS += "\ diff --git a/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb b/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb index 8fdaf848f..21b02687f 100644 --- a/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb +++ b/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb @@ -1,7 +1,7 @@ SUMMARY = "A 802.1ab implementation (LLDP) to help you locate neighbors of all your equipments" SECTION = "net/misc" LICENSE = "ISC" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/ISC;md5=f3b90e78ea0cffb20bf5cca7947a896d" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/ISC;md5=f3b90e78ea0cffb20bf5cca7947a896d" DEPENDS = "libbsd libevent" diff --git a/meta-networking/recipes-support/arptables/arptables_git.bb b/meta-networking/recipes-support/arptables/arptables_git.bb index cec1d1f77..e88631e08 100644 --- a/meta-networking/recipes-support/arptables/arptables_git.bb +++ b/meta-networking/recipes-support/arptables/arptables_git.bb @@ -1,7 +1,7 @@ SUMMARY = "Administration tool for arp packet filtering" SECTION = "net" LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" SRCREV = "f4ab8f63f11a72f14687a6646d04ae1bae3fa45f" PV = "0.0.4+git${SRCPV}" diff --git a/meta-networking/recipes-support/ncp/ncp_1.2.4.bb b/meta-networking/recipes-support/ncp/ncp_1.2.4.bb index f42223b1f..ba6e23e86 100644 --- a/meta-networking/recipes-support/ncp/ncp_1.2.4.bb +++ b/meta-networking/recipes-support/ncp/ncp_1.2.4.bb @@ -4,7 +4,7 @@ security or integrity checking, no throttling, no features, except \ one: you don't have to type the coordinates of your peer." HOMEPAGE = "http://www.fefe.de/ncp" LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" DEPENDS = "libowfat" SRC_URI = "https://dl.fefe.de/${BP}.tar.bz2" -- 2.23.0.rc1 From git at andred.net Fri Feb 28 13:38:40 2020 From: git at andred.net (=?ISO-8859-1?Q?Andr=E9?= Draszik) Date: Fri, 28 Feb 2020 13:38:40 +0000 Subject: [oe] [meta-multimedia][PATCH] meta-multimedia: s|${COREBASE}/meta/files/common-licenses|${COMMON_LICENSE_DIR} In-Reply-To: <903a8d79-9298-5f7e-db68-d3e15c62121e@gmail.com> References: <20200227164143.24022-1-git@andred.net> <903a8d79-9298-5f7e-db68-d3e15c62121e@gmail.com> Message-ID: On Thu, 2020-02-27 at 09:08 -0800, Khem Raj wrote: > Hi Andr? > > Thanks for doing this cleanup, but perhaps subject could be more simple > and readable and this detail of sed operation could be in details. Done (although I left out the sed arguments, as it's trivial :-) Cheers, Andre' > > On 2/27/20 8:41 AM, Andr? Draszik wrote: > > Signed-off-by: Andr? Draszik > > --- > > .../recipes-multimedia/sample-content/bigbuckbunny-1080p.bb | 2 +- > > .../recipes-multimedia/sample-content/bigbuckbunny-480p.bb | 2 +- > > .../recipes-multimedia/sample-content/bigbuckbunny-720p.bb | 2 +- > > .../recipes-multimedia/sample-content/tearsofsteel-1080p.bb | 2 +- > > 4 files changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb b/meta-multimedia/recipes- > > multimedia/sample-content/bigbuckbunny-1080p.bb > > index cee386c2a..70eb6e4be 100644 > > --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb > > +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb > > @@ -1,7 +1,7 @@ > > SUMMARY = "Big Buck Bunny movie - 1080P" > > LICENSE = "CC-BY-3.0" > > # http://www.bigbuckbunny.org/index.php/about/ > > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" > > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" > > > > SRC_URI = "http://themazzone.com/big_buck_bunny_1080p_surround.avi" > > SRC_URI[md5sum] = "223991c8b33564eb77988a4c13c1c76a" > > diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb b/meta-multimedia/recipes- > > multimedia/sample-content/bigbuckbunny-480p.bb > > index d395b9206..df2368996 100644 > > --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb > > +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb > > @@ -1,7 +1,7 @@ > > SUMMARY = "Big Buck Bunny movie - 480P" > > LICENSE = "CC-BY-3.0" > > # http://www.bigbuckbunny.org/index.php/about/ > > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" > > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" > > > > SRC_URI = "https://archive.org/download/BigBuckBunny/big_buck_bunny_480p_surround-fix.avi" > > SRC_URI[md5sum] = "ed7ed01e9aefba8ddd77c13332cec120" > > diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb b/meta-multimedia/recipes- > > multimedia/sample-content/bigbuckbunny-720p.bb > > index 20d562749..cb8ece0cb 100644 > > --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb > > +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb > > @@ -1,7 +1,7 @@ > > SUMMARY = "Big Buck Bunny movie - 720P" > > LICENSE = "CC-BY-3.0" > > # http://www.bigbuckbunny.org/index.php/about/ > > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" > > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" > > > > SRC_URI = "https://archive.org/download/BigBuckBunny/big_buck_bunny_720p_surround.avi" > > SRC_URI[md5sum] = "0da8fe124595f5b206d64cb1400bbefc" > > diff --git a/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb b/meta-multimedia/recipes- > > multimedia/sample-content/tearsofsteel-1080p.bb > > index 0582a4856..04cbd2e34 100644 > > --- a/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb > > +++ b/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb > > @@ -1,6 +1,6 @@ > > SUMMARY = "Tears of Steel movie - 1080P" > > LICENSE = "CC-BY-3.0" > > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" > > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" > > > > SRC_URI = "http://ftp.nluug.nl/pub/graphics/blender/demo/movies/ToS/ToS-4k-1920.mov" > > SRC_URI[md5sum] = "e3fee55b1779c553e37b1d3988e6fad6" > > From brgl at bgdev.pl Fri Feb 28 15:03:45 2020 From: brgl at bgdev.pl (Bartosz Golaszewski) Date: Fri, 28 Feb 2020 16:03:45 +0100 Subject: [oe] [meta-ota][PATCH] meta-ota: add support for binary-delta images in a new layer Message-ID: <20200228150345.11829-1-brgl@bgdev.pl> From: Bartosz Golaszewski Over-The-Air updates are a crucial part of IoT systems based on linux. There are several OTA update frameworks available and many offer some sort of support in yocto (e.g. meta-mender, meta-rauc). There are certain operations that are common to all of them such as: generating binary delta patches, system recovery, creating provisioning images etc. This patch proposes to add a new layer in meta-openembedded dedicated to OTA. As the first functionality it adds a bbclass for generating binary delta images using two popular algorithms - vcdiff and rsync. Such images can then be easily packaged in update artifacts for different OTA frameworks. Signed-off-by: Bartosz Golaszewski --- Hi, I've noticed that when launching CE products and implementing OTA support I find myself implementing the same functionalities over again. I recently started abstracting them and would like to upstream them in meta-openembedded so that at least a part of that becomes standardized. This patch proposes to add a new layer to meta-openembedded and I'll gladly maintain it. If accepted I intend on extending it with more functionalities such as creating provisioning (factory) images for updatable systems, recovery system images etc. meta-ota/README | 27 +++++++++++ meta-ota/classes/binary-delta.bbclass | 64 +++++++++++++++++++++++++++ meta-ota/conf/layer.conf | 17 +++++++ 3 files changed, 108 insertions(+) create mode 100644 meta-ota/README create mode 100644 meta-ota/classes/binary-delta.bbclass create mode 100644 meta-ota/conf/layer.conf diff --git a/meta-ota/README b/meta-ota/README new file mode 100644 index 000000000..07a1debdd --- /dev/null +++ b/meta-ota/README @@ -0,0 +1,27 @@ +meta-ota +======== + +This layer provides support for creating Over-The-Air update images. + +Dependencies +------------ + +This layer depends on: + +URI: git://github.com/openembedded/oe-core.git +subdirectory: meta +branch: master +revision: HEAD + +URI: git://github.com/openembedded/meta-oe.git +subdirectory: meta-oe +branch: master +revision: HEAD + +Maintenance +----------- + +Send patches / pull requests to openembedded-devel at lists.openembedded.org +with '[meta-ota]' in the subject. + +Layer maintainer: Bartosz Golaszewski diff --git a/meta-ota/classes/binary-delta.bbclass b/meta-ota/classes/binary-delta.bbclass new file mode 100644 index 000000000..24fb20b1b --- /dev/null +++ b/meta-ota/classes/binary-delta.bbclass @@ -0,0 +1,64 @@ +# SPDX-License-Identifier: MIT +# +# Copyright (C) 2020 BayLibre SAS +# Author: Bartosz Golaszewski +# +# This class provides image conversions which - given a baseline partition +# image - can generate a binary delta patch. Such patch can be applied on top +# of a deployed baseline partition to generate an updated image. +# +# For now the supported algorithms are rsync and vcdiff (supplied by rdiff and +# xdelta3 respectively). We also provide several compression methods. +# +# We only support binary delta on ext[2-4] and btrfs images as it doesn't make +# much sense on high-entropy, compressed filesystems. + +BINARY_DELTA_BASELINE ?= "" + +verify_baseline() { + if [ -z ${BINARY_DELTA_BASELINE} ] ; then + bbfatal "variable BINARY_DELTA_BASELINE cannot be empty." + fi + + if ! [ -f ${BINARY_DELTA_BASELINE} ] ; then + bbfatal "${BINARY_DELTA_BASELINE} doesn't exist" + fi +} + +gen_rdiff() { + local IMAGE=$1 + local SIGNATURE=$1.sig + local PATCH=$1.rdiff + + verify_baseline + + rdiff signature ${BINARY_DELTA_BASELINE} $SIGNATURE + rdiff delta $SIGNATURE $IMAGE $PATCH + rm $SIGNATURE +} + +gen_vcdiff() { + local IMAGE=$1 + local PATCH=$1.vcdiff + + verify_baseline + + xdelta3 -e -s ${BINARY_DELTA_BASELINE} $IMAGE $PATCH +} + +IMAGE_TYPES += " \ + ext2.rdiff ext3.rdiff ext4.rdiff btrfs.rdiff \ + ext2.rdiff.gz ext3.rdiff.gz ext4.rdiff.gz btrfs.rdiff.gz \ + ext2.rdiff.bz2 ext3.rdiff.bz2 ext4.rdiff.bz2 btrfs.rdiff.bz2 \ + ext2.rdiff.xz ext3.rdiff.xz ext4.rdiff.xz btrfs.rdiff.xz \ + ext2.vcdiff ext3.vcdiff ext4.vcdiff brtfs.vcdiff \ + ext2.vcdiff.gz ext3.vcdiff.gz ext4.vcdiff.gz brtfs.vcdiff.gz \ + ext2.vcdiff.bz2 ext3.vcdiff.bz2 ext4.vcdiff.bz2 brtfs.vcdiff.bz2 \ + ext2.vcdiff.xz ext3.vcdiff.xz ext4.vcdiff.xz brtfs.vcdiff.xz \ +" + +CONVERSIONTYPES += "rdiff vcdiff" +CONVERSION_CMD_rdiff = "gen_rdiff ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}" +CONVERSION_CMD_vcdiff = "gen_vcdiff ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}" +CONVERSION_DEPENDS_rdiff = "librsync-native" +CONVERSION_DEPENDS_vcdiff = "xdelta3-native" diff --git a/meta-ota/conf/layer.conf b/meta-ota/conf/layer.conf new file mode 100644 index 000000000..05c6b0f96 --- /dev/null +++ b/meta-ota/conf/layer.conf @@ -0,0 +1,17 @@ +# Layer configuration for meta-ota layer +# Copyright (C) 2020 BayLibre SAS + +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +BBFILE_COLLECTIONS += "ota" +BBFILE_PATTERN_ota := "^${LAYERDIR}/" +BBFILE_PRIORITY_ota = "6" + +# This should only be incremented on significant changes that will +# cause compatibility issues with other layers +LAYERVERSION_ota = "1" + +LAYERDEPENDS_ota = "core openembedded-layer" + +LAYERSERIES_COMPAT_ota = "zeus" -- 2.19.1 From peter.kjellerstedt at axis.com Fri Feb 28 19:55:53 2020 From: peter.kjellerstedt at axis.com (Peter Kjellerstedt) Date: Fri, 28 Feb 2020 19:55:53 +0000 Subject: [oe] [meta-networking][PATCH] meta-networking: s|${COREBASE}/meta/files/common-licenses|${COMMON_LICENSE_DIR} In-Reply-To: <20200227164219.24229-1-git@andred.net> References: <20200227164219.24229-1-git@andred.net> Message-ID: <7bc1a555a6b845899219c29be5723ce7@XBOX03.axis.com> > -----Original Message----- > From: openembedded-devel-bounces at lists.openembedded.org On Behalf Of Andr? Draszik > Sent: den 27 februari 2020 17:42 > To: openembedded-devel at lists.openembedded.org > Subject: [oe] [meta-networking][PATCH] meta-networking: s|${COREBASE}/meta/files/common-licenses|${COMMON_LICENSE_DIR} > > Signed-off-by: Andr? Draszik > --- > meta-networking/recipes-connectivity/samba/samba_4.10.13.bb | 4 ++-- > meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb | 2 +- > meta-networking/recipes-support/arptables/arptables_git.bb | 2 +- > meta-networking/recipes-support/ncp/ncp_1.2.4.bb | 2 +- > 4 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/meta-networking/recipes-connectivity/samba/samba_4.10.13.bb b/meta-networking/recipes-connectivity/samba/samba_4.10.13.bb > index 71d8fa2f8..4d57255f1 100644 > --- a/meta-networking/recipes-connectivity/samba/samba_4.10.13.bb > +++ b/meta-networking/recipes-connectivity/samba/samba_4.10.13.bb > @@ -3,8 +3,8 @@ SECTION = "console/network" > > LICENSE = "GPL-3.0+ & LGPL-3.0+ & GPL-2.0+" > LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ > - file://${COREBASE}/meta/files/common-licenses/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \ > - file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 " > + file://${COMMON_LICENSE_DIR}/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \ > + file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 " These two are pointless since there is a provided COPYING file. Just remove them. > > SAMBA_MIRROR = "http://samba.org/samba/ftp" > MIRRORS += "\ > diff --git a/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb b/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb > index 8fdaf848f..21b02687f 100644 > --- a/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb > +++ b/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb > @@ -1,7 +1,7 @@ > SUMMARY = "A 802.1ab implementation (LLDP) to help you locate neighbors of all your equipments" > SECTION = "net/misc" > LICENSE = "ISC" > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/ISC;md5=f3b90e78ea0cffb20bf5cca7947a896d" > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/ISC;md5=f3b90e78ea0cffb20bf5cca7947a896d" There is a LICENSE file in the tar ball. Please use it instead. > > DEPENDS = "libbsd libevent" > > diff --git a/meta-networking/recipes-support/arptables/arptables_git.bb b/meta-networking/recipes-support/arptables/arptables_git.bb > index cec1d1f77..e88631e08 100644 > --- a/meta-networking/recipes-support/arptables/arptables_git.bb > +++ b/meta-networking/recipes-support/arptables/arptables_git.bb > @@ -1,7 +1,7 @@ > SUMMARY = "Administration tool for arp packet filtering" > SECTION = "net" > LICENSE = "GPL-2.0" > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" There is a COPYING file in the Git repository. Please use it instead. > SRCREV = "f4ab8f63f11a72f14687a6646d04ae1bae3fa45f" > PV = "0.0.4+git${SRCPV}" > > diff --git a/meta-networking/recipes-support/ncp/ncp_1.2.4.bb b/meta-networking/recipes-support/ncp/ncp_1.2.4.bb > index f42223b1f..ba6e23e86 100644 > --- a/meta-networking/recipes-support/ncp/ncp_1.2.4.bb > +++ b/meta-networking/recipes-support/ncp/ncp_1.2.4.bb > @@ -4,7 +4,7 @@ security or integrity checking, no throttling, no features, except \ > one: you don't have to type the coordinates of your peer." > HOMEPAGE = "http://www.fefe.de/ncp" > LICENSE = "GPLv2" I can find no information about license either in the code or at http://www.fefe.de/ncp. How do you know this license is correct? > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" > DEPENDS = "libowfat" > > SRC_URI = "https://dl.fefe.de/${BP}.tar.bz2" > -- > 2.23.0.rc1 > > -- //Peter From peter.kjellerstedt at axis.com Fri Feb 28 20:10:35 2020 From: peter.kjellerstedt at axis.com (Peter Kjellerstedt) Date: Fri, 28 Feb 2020 20:10:35 +0000 Subject: [oe] [meta-oe][PATCH] meta-oe: s|${COREBASE}/meta/files/common-licenses|${COMMON_LICENSE_DIR} In-Reply-To: <20200227164115.23879-1-git@andred.net> References: <20200227164115.23879-1-git@andred.net> Message-ID: <360398e1842c44df887759dc3aca7979@XBOX03.axis.com> > -----Original Message----- > From: openembedded-devel-bounces at lists.openembedded.org On Behalf Of Andr? Draszik > Sent: den 27 februari 2020 17:41 > To: openembedded-devel at lists.openembedded.org > Subject: [oe] [meta-oe][PATCH] meta-oe: s|${COREBASE}/meta/files/common-licenses|${COMMON_LICENSE_DIR} > > Signed-off-by: Andr? Draszik > --- > meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb | 2 +- > .../gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb | 4 ++-- > meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb | 2 +- > meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb | 2 +- > 4 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb b/meta- > oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb > index 17e8c700c..39a0ccc8c 100644 > --- a/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb > +++ b/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb > @@ -1,6 +1,6 @@ > SUMMARY = "Dhrystone CPU benchmark" > LICENSE = "PD" > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/PD;md5=b3597d12946881e13cb3b548d1173851" > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/PD;md5=b3597d12946881e13cb3b548d1173851" > > SRC_URI = "http://www.netlib.org/benchmark/dhry-c;downloadfilename=dhry-c.shar \ > file://dhrystone.patch" > diff --git a/meta-oe/recipes-gnome/gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb b/meta-oe/recipes-gnome/gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb > index d6da51b0d..9c16da416 100644 > --- a/meta-oe/recipes-gnome/gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb > +++ b/meta-oe/recipes-gnome/gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb > @@ -3,8 +3,8 @@ DESCRIPTION = "This recipe provides m4 macros from gnome-doc-utils project, so \ > that dependent recipes can build. Gnome-doc-utils itself is no longer packaged because \ > it requires libxml2 and python 2 at the same time, which can no longer be satisfied. " > LICENSE = "GPLv2 & LGPLv2.1" > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \ > - file://${COREBASE}/meta/files/common-licenses/LGPL-2.1;md5=1a6d268fd218675ffea8be556788b780" > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \ > + file://${COMMON_LICENSE_DIR}/LGPL-2.1;md5=1a6d268fd218675ffea8be556788b780" > SRC_URI = "file://gnome-doc-utils.m4" > > PROVIDES = "gnome-doc-utils" > diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb b/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb > index d2058ba57..fae760bbf 100644 > --- a/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb > +++ b/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb > @@ -1,6 +1,6 @@ > SUMMARY = "Machine specific gpsd config" > LICENSE = "BSD" > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/BSD;md5=3775480a712fc46a69647678acb234cb" > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD;md5=3775480a712fc46a69647678acb234cb" > > # empty by default > # BSP layers can add stuff like meta-openmoko example: > diff --git a/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb b/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb > index 39629cce0..44679c047 100644 > --- a/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb > +++ b/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb > @@ -1,7 +1,7 @@ > DESCRIPTION = "Very fast, header only, C++ logging library." > HOMEPAGE = "https://github.com/gabime/spdlog/wiki" > LICENSE = "MIT" > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" There is a LICENSE file in the Git repository. Please use it instead. > > SRCREV = "cf6f1dd01e660d5865d68bf5fa78f6376b89470a" > SRC_URI = "git://github.com/gabime/spdlog.git;protocol=git;branch=v1.x;" > -- > 2.23.0.rc1 > > -- //Peter From git at andred.net Sat Feb 29 07:08:17 2020 From: git at andred.net (=?ISO-8859-1?Q?Andr=E9?= Draszik) Date: Sat, 29 Feb 2020 07:08:17 +0000 Subject: [oe] [meta-networking][PATCH] meta-networking: s|${COREBASE}/meta/files/common-licenses|${COMMON_LICENSE_DIR} In-Reply-To: <7bc1a555a6b845899219c29be5723ce7@XBOX03.axis.com> References: <20200227164219.24229-1-git@andred.net> <7bc1a555a6b845899219c29be5723ce7@XBOX03.axis.com> Message-ID: <3c14fbe1d2b373efc17de48dcf6d7eecc0ae51cc.camel@andred.net> On Fri, 2020-02-28 at 19:55 +0000, Peter Kjellerstedt wrote: > > -----Original Message----- > > From: openembedded-devel-bounces at lists.openembedded.org On > > Behalf Of Andr? Draszik > > Sent: den 27 februari 2020 17:42 > > To: openembedded-devel at lists.openembedded.org > > Subject: [oe] [meta-networking][PATCH] meta-networking: s|${COREBASE}/meta/files/common- > > licenses|${COMMON_LICENSE_DIR} > > > > Signed-off-by: Andr? Draszik > > --- > > meta-networking/recipes-connectivity/samba/samba_4.10.13.bb | 4 ++-- > > meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb | 2 +- > > meta-networking/recipes-support/arptables/arptables_git.bb | 2 +- > > meta-networking/recipes-support/ncp/ncp_1.2.4.bb | 2 +- > > 4 files changed, 5 insertions(+), 5 deletions(-) > > > > diff --git a/meta-networking/recipes-connectivity/samba/samba_4.10.13.bb b/meta-networking/recipes- > > connectivity/samba/samba_4.10.13.bb > > index 71d8fa2f8..4d57255f1 100644 > > --- a/meta-networking/recipes-connectivity/samba/samba_4.10.13.bb > > +++ b/meta-networking/recipes-connectivity/samba/samba_4.10.13.bb > > @@ -3,8 +3,8 @@ SECTION = "console/network" > > > > LICENSE = "GPL-3.0+ & LGPL-3.0+ & GPL-2.0+" > > LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ > > - file://${COREBASE}/meta/files/common-licenses/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \ > > - file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 " > > + file://${COMMON_LICENSE_DIR}/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \ > > + file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 " > > These two are pointless since there is a provided COPYING file. > Just remove them. > > > SAMBA_MIRROR = "http://samba.org/samba/ftp" > > MIRRORS += "\ > > diff --git a/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb b/meta-networking/recipes- > > daemons/lldpd/lldpd_1.0.4.bb > > index 8fdaf848f..21b02687f 100644 > > --- a/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb > > +++ b/meta-networking/recipes-daemons/lldpd/lldpd_1.0.4.bb > > @@ -1,7 +1,7 @@ > > SUMMARY = "A 802.1ab implementation (LLDP) to help you locate neighbors of all your equipments" > > SECTION = "net/misc" > > LICENSE = "ISC" > > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/ISC;md5=f3b90e78ea0cffb20bf5cca7947a896d" > > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/ISC;md5=f3b90e78ea0cffb20bf5cca7947a896d" > > There is a LICENSE file in the tar ball. Please use it instead. > > > DEPENDS = "libbsd libevent" > > > > diff --git a/meta-networking/recipes-support/arptables/arptables_git.bb b/meta-networking/recipes- > > support/arptables/arptables_git.bb > > index cec1d1f77..e88631e08 100644 > > --- a/meta-networking/recipes-support/arptables/arptables_git.bb > > +++ b/meta-networking/recipes-support/arptables/arptables_git.bb > > @@ -1,7 +1,7 @@ > > SUMMARY = "Administration tool for arp packet filtering" > > SECTION = "net" > > LICENSE = "GPL-2.0" > > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" > > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" > > There is a COPYING file in the Git repository. Please use it instead. > > > SRCREV = "f4ab8f63f11a72f14687a6646d04ae1bae3fa45f" > > PV = "0.0.4+git${SRCPV}" > > > > diff --git a/meta-networking/recipes-support/ncp/ncp_1.2.4.bb b/meta-networking/recipes-support/ncp/ncp_1.2.4.bb > > index f42223b1f..ba6e23e86 100644 > > --- a/meta-networking/recipes-support/ncp/ncp_1.2.4.bb > > +++ b/meta-networking/recipes-support/ncp/ncp_1.2.4.bb > > @@ -4,7 +4,7 @@ security or integrity checking, no throttling, no features, except \ > > one: you don't have to type the coordinates of your peer." > > HOMEPAGE = "http://www.fefe.de/ncp" > > LICENSE = "GPLv2" > > I can find no information about license either in the code or at > http://www.fefe.de/ncp. How do you know this license is correct? Please see attached email. Cheers, Andre' > > > -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" > > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" > > DEPENDS = "libowfat" > > > > SRC_URI = "https://dl.fefe.de/${BP}.tar.bz2" > > -- > > 2.23.0.rc1 > > > > -- > > //Peter > -------------- next part -------------- An embedded message was scrubbed... From: Felix von Leitner Subject: Re: ncp Lizenz Date: Tue, 15 Nov 2016 15:22:37 +0100 Size: 2476 URL: From alex.kanavin at gmail.com Sat Feb 29 10:13:35 2020 From: alex.kanavin at gmail.com (Alexander Kanavin) Date: Sat, 29 Feb 2020 11:13:35 +0100 Subject: [oe] [PATCH 1/2] python3-numpy: add from oe-core Message-ID: <20200229101336.30490-1-alex.kanavin@gmail.com> Signed-off-by: Alexander Kanavin --- ...-and-so-on-for-libraries-by-default-.patch | 70 +++++++++++++++++++ ...up.py-remove-the-detection-of-x86-ta.patch | 32 +++++++++ .../python-numpy/python-numpy.inc | 52 ++++++++++++++ .../python-numpy/python3-numpy_1.17.4.bb | 3 + 4 files changed, 157 insertions(+) create mode 100644 meta-python/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch create mode 100644 meta-python/recipes-devtools/python-numpy/files/0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch create mode 100644 meta-python/recipes-devtools/python-numpy/python-numpy.inc create mode 100644 meta-python/recipes-devtools/python-numpy/python3-numpy_1.17.4.bb diff --git a/meta-python/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch b/meta-python/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch new file mode 100644 index 000000000..98a970583 --- /dev/null +++ b/meta-python/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch @@ -0,0 +1,70 @@ +From 672a75c8417ce08db9e31fc415ec445479231d5a Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Thu, 10 Dec 2015 13:20:30 +0200 +Subject: [PATCH] Don't search /usr and so on for libraries by default to + + avoid host contamination. + +Upstream-Status: Inappropriate (As the code stands, this is a hack) +Signed-off-by: Ross Burton +Signed-off-by: Alexander Kanavin + +--- + numpy/distutils/system_info.py | 42 ++++------------------------------ + 1 file changed, 5 insertions(+), 37 deletions(-) + +diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py +index ba2b1f4..f94dce1 100644 +--- a/numpy/distutils/system_info.py ++++ b/numpy/distutils/system_info.py +@@ -278,45 +278,13 @@ if sys.platform == 'win32': + add_system_root(os.path.join(conda_dir, 'Library')) + + else: +- default_lib_dirs = libpaths(['/usr/local/lib', '/opt/lib', '/usr/lib', +- '/opt/local/lib', '/sw/lib'], platform_bits) + default_runtime_dirs = [] +- default_include_dirs = ['/usr/local/include', +- '/opt/include', '/usr/include', +- # path of umfpack under macports +- '/opt/local/include/ufsparse', +- '/opt/local/include', '/sw/include', +- '/usr/include/suitesparse'] +- default_src_dirs = ['.', '/usr/local/src', '/opt/src', '/sw/src'] +- +- default_x11_lib_dirs = libpaths(['/usr/X11R6/lib', '/usr/X11/lib', +- '/usr/lib'], platform_bits) +- default_x11_include_dirs = ['/usr/X11R6/include', '/usr/X11/include', +- '/usr/include'] +- +- if os.path.exists('/usr/lib/X11'): +- globbed_x11_dir = glob('/usr/lib/*/libX11.so') +- if globbed_x11_dir: +- x11_so_dir = os.path.split(globbed_x11_dir[0])[0] +- default_x11_lib_dirs.extend([x11_so_dir, '/usr/lib/X11']) +- default_x11_include_dirs.extend(['/usr/lib/X11/include', +- '/usr/include/X11']) +- +- with open(os.devnull, 'w') as tmp: +- try: +- p = subprocess.Popen(["gcc", "-print-multiarch"], stdout=subprocess.PIPE, +- stderr=tmp) +- except (OSError, DistutilsError): +- # OSError if gcc is not installed, or SandboxViolation (DistutilsError +- # subclass) if an old setuptools bug is triggered (see gh-3160). +- pass +- else: +- triplet = str(p.communicate()[0].decode().strip()) +- if p.returncode == 0: +- # gcc supports the "-print-multiarch" option +- default_x11_lib_dirs += [os.path.join("/usr/lib/", triplet)] +- default_lib_dirs += [os.path.join("/usr/lib/", triplet)] ++ default_lib_dirs = libpaths(['/deadir/lib'], platform_bits) ++ default_include_dirs = ['/deaddir/include'] ++ default_src_dirs = ['.', '/deaddir/src'] + ++ default_x11_lib_dirs = libpaths(['/deaddir/lib'], platform_bits) ++ default_x11_include_dirs = ['/deaddir/include'] + + if os.path.join(sys.prefix, 'lib') not in default_lib_dirs: + default_lib_dirs.insert(0, os.path.join(sys.prefix, 'lib')) diff --git a/meta-python/recipes-devtools/python-numpy/files/0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch b/meta-python/recipes-devtools/python-numpy/files/0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch new file mode 100644 index 000000000..9da6a2b3d --- /dev/null +++ b/meta-python/recipes-devtools/python-numpy/files/0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch @@ -0,0 +1,32 @@ +From b881e0b2ba9cf1a4aa351a1c1ea90b1e1776ce21 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Mon, 12 Aug 2019 15:37:36 +0200 +Subject: [PATCH] numpy/random/setup.py: remove the detection of x86 targets + via uname() + +This was badly breaking compilation for ARM targets (and possibly +other non-x86 targets); if -msse2 is desirable for x86 builds it has +to be passed through another channel. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin +--- + numpy/random/setup.py | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/numpy/random/setup.py b/numpy/random/setup.py +index a1bf3b8..60fb534 100644 +--- a/numpy/random/setup.py ++++ b/numpy/random/setup.py +@@ -49,11 +49,6 @@ def configuration(parent_package='', top_path=None): + elif not is_msvc: + # Some bit generators require c99 + EXTRA_COMPILE_ARGS += ['-std=c99'] +- INTEL_LIKE = any(arch in platform.machine() +- for arch in ('x86', 'i686', 'i386', 'amd64')) +- if INTEL_LIKE: +- # Assumes GCC or GCC-like compiler +- EXTRA_COMPILE_ARGS += ['-msse2'] + + # Use legacy integer variable sizes + LEGACY_DEFS = [('NP_RANDOM_LEGACY', '1')] diff --git a/meta-python/recipes-devtools/python-numpy/python-numpy.inc b/meta-python/recipes-devtools/python-numpy/python-numpy.inc new file mode 100644 index 000000000..8413434af --- /dev/null +++ b/meta-python/recipes-devtools/python-numpy/python-numpy.inc @@ -0,0 +1,52 @@ +SUMMARY = "A sophisticated Numeric Processing Package for Python" +SECTION = "devel/python" +LICENSE = "BSD-3-Clause & BSD-2-Clause & PSF & Apache-2.0 & BSD & MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1a32aba007a415aa8a1c708a0e2b86a1" + +SRCNAME = "numpy" + +SRC_URI = "https://github.com/${SRCNAME}/${SRCNAME}/releases/download/v${PV}/${SRCNAME}-${PV}.tar.gz \ + file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \ + file://0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch \ + " +SRC_URI[md5sum] = "9147c3ee75e58d657b5b8b5a4f3564e0" +SRC_URI[sha256sum] = "fb0415475e673cb9a6dd816df999e0ab9f86fa3af2b1770944e7288d2bea4ac9" + +UPSTREAM_CHECK_URI = "https://github.com/numpy/numpy/releases" +UPSTREAM_CHECK_REGEX = "(?P\d+(\.\d+)+)\.tar" + +# Needed for building with gcc 4.x from centos 7 +CFLAGS_append_class-native = " -std=c99" + +S = "${WORKDIR}/numpy-${PV}" + +CLEANBROKEN = "1" + +FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a" + +# install what is needed for numpy.test() +RDEPENDS_${PN} = "${PYTHON_PN}-unittest \ + ${PYTHON_PN}-difflib \ + ${PYTHON_PN}-pprint \ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-nose \ + ${PYTHON_PN}-doctest \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-distutils \ + ${PYTHON_PN}-misc \ + ${PYTHON_PN}-mmap \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-pydoc \ + ${PYTHON_PN}-pkgutil \ + ${PYTHON_PN}-email \ + ${PYTHON_PN}-compression \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-threading \ + ${PYTHON_PN}-multiprocessing \ +" + +RDEPENDS_${PN}_class-native = "" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python-numpy/python3-numpy_1.17.4.bb b/meta-python/recipes-devtools/python-numpy/python3-numpy_1.17.4.bb new file mode 100644 index 000000000..d388e88d2 --- /dev/null +++ b/meta-python/recipes-devtools/python-numpy/python3-numpy_1.17.4.bb @@ -0,0 +1,3 @@ +inherit setuptools3 +require python-numpy.inc + -- 2.25.1 From alex.kanavin at gmail.com Sat Feb 29 10:13:36 2020 From: alex.kanavin at gmail.com (Alexander Kanavin) Date: Sat, 29 Feb 2020 11:13:36 +0100 Subject: [oe] [PATCH 2/2] piglist: add from oe-core In-Reply-To: <20200229101336.30490-1-alex.kanavin@gmail.com> References: <20200229101336.30490-1-alex.kanavin@gmail.com> Message-ID: <20200229101336.30490-2-alex.kanavin@gmail.com> Signed-off-by: Alexander Kanavin --- ...-bash-completions-in-the-right-place.patch | 35 ++++++++++ ...proper-WAYLAND_INCLUDE_DIRS-variable.patch | 32 ++++++++++ meta-oe/recipes-graphics/piglit/piglit_git.bb | 64 +++++++++++++++++++ 3 files changed, 131 insertions(+) create mode 100644 meta-oe/recipes-graphics/piglit/piglit/0001-cmake-install-bash-completions-in-the-right-place.patch create mode 100644 meta-oe/recipes-graphics/piglit/piglit/0001-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch create mode 100644 meta-oe/recipes-graphics/piglit/piglit_git.bb diff --git a/meta-oe/recipes-graphics/piglit/piglit/0001-cmake-install-bash-completions-in-the-right-place.patch b/meta-oe/recipes-graphics/piglit/piglit/0001-cmake-install-bash-completions-in-the-right-place.patch new file mode 100644 index 000000000..e07e810a7 --- /dev/null +++ b/meta-oe/recipes-graphics/piglit/piglit/0001-cmake-install-bash-completions-in-the-right-place.patch @@ -0,0 +1,35 @@ +From 26faa2c157a27a18a9f767976730fe0c115e3af4 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Wed, 13 Jul 2016 19:19:02 +0300 +Subject: [PATCH] cmake: install bash-completions in the right place + +The completionsdir variable is a full path and should not be +prefixed. + +This does mean the files may be installed outside of +CMAKE_INSTALL_PREFIX -- the alternative is more difficult and +means that bash completion files may be installed where +bash-completion can't find them. + +Signed-off-by: Jussi Kukkonen +Upstream-Status: Submitted [mailing list] +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8e2abba..784a8f9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -532,7 +532,7 @@ install ( + if (BASH_COMPLETION_FOUND) + install( + FILES completions/bash/piglit +- DESTINATION ${CMAKE_INSTALL_PREFIX}/${BASH_COMPLETION_COMPLETIONSDIR}/ ++ DESTINATION ${BASH_COMPLETION_COMPLETIONSDIR}/ + ) + endif (BASH_COMPLETION_FOUND) + +-- +2.8.1 + diff --git a/meta-oe/recipes-graphics/piglit/piglit/0001-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch b/meta-oe/recipes-graphics/piglit/piglit/0001-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch new file mode 100644 index 000000000..5d6ec368b --- /dev/null +++ b/meta-oe/recipes-graphics/piglit/piglit/0001-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch @@ -0,0 +1,32 @@ +From 3bf1beee1ddd19bc536ff2856e04ac269d43daa2 Mon Sep 17 00:00:00 2001 +From: Pascal Bach +Date: Thu, 4 Oct 2018 14:43:17 +0200 +Subject: [PATCH] cmake: use proper WAYLAND_INCLUDE_DIRS variable + +WAYLAND_wayland-client_INCLUDEDIR is an internal variable and is not correctly +set when cross compiling. WAYLAND_INCLUDE_DIRS includes the correct path even +when cross compiling. + +Signed-off-by: Pascal Bach + +Upstream-Status: Submitted [piglit at lists.freedesktop.org] +--- + tests/util/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/util/CMakeLists.txt b/tests/util/CMakeLists.txt +index a5f080156..a303a9f58 100644 +--- a/tests/util/CMakeLists.txt ++++ b/tests/util/CMakeLists.txt +@@ -97,7 +97,7 @@ if(PIGLIT_USE_WAFFLE) + piglit-framework-gl/piglit_wl_framework.c + ) + list(APPEND UTIL_GL_INCLUDES +- ${WAYLAND_wayland-client_INCLUDEDIR} ++ ${WAYLAND_INCLUDE_DIRS} + ) + endif() + if(PIGLIT_HAS_X11) +-- +2.11.0 + diff --git a/meta-oe/recipes-graphics/piglit/piglit_git.bb b/meta-oe/recipes-graphics/piglit/piglit_git.bb new file mode 100644 index 000000000..58d10d6b9 --- /dev/null +++ b/meta-oe/recipes-graphics/piglit/piglit_git.bb @@ -0,0 +1,64 @@ +SUMMARY = "OpenGL driver testing framework" +DESCRIPTION = "Piglit is an open-source test suite for OpenGL and OpenCL \ +implementations." +LICENSE = "MIT & LGPLv2+ & GPLv3 & GPLv2+ & BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=b2beded7103a3d8a442a2a0391d607b0" + +SRC_URI = "git://gitlab.freedesktop.org/mesa/piglit.git;protocol=https \ + file://0001-cmake-install-bash-completions-in-the-right-place.patch \ + file://0001-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch \ + " +UPSTREAM_CHECK_COMMITS = "1" + +SRCREV = "6126c2d4e476c7770d216ffa1932c10e2a5a7813" +# (when PV goes above 1.0 remove the trailing r) +PV = "1.0+gitr${SRCPV}" + +S = "${WORKDIR}/git" + +X11_DEPS = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxrender libglu', '', d)}" +X11_RDEPS = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'mesa-demos', '', d)}" + +DEPENDS = "libpng waffle libxkbcommon virtual/libgl python3-mako-native python3-numpy-native python3-six-native virtual/egl" + +inherit cmake pkgconfig python3native features_check bash-completion + +# depends on virtual/libgl +REQUIRED_DISTRO_FEATURES += "opengl" + +# The built scripts go into the temporary directory according to tempfile +# (typically /tmp) which can race if multiple builds happen on the same machine, +# so tell it to use a directory in ${B} to avoid overwriting. +export TEMP = "${B}/temp/" +do_compile[dirs] =+ "${B}/temp/" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" +PACKAGECONFIG[freeglut] = "-DPIGLIT_USE_GLUT=1,-DPIGLIT_USE_GLUT=0,freeglut," +PACKAGECONFIG[x11] = "-DPIGLIT_BUILD_GL_TESTS=ON,-DPIGLIT_BUILD_GL_TESTS=OFF,${X11_DEPS}, ${X11_RDEPS}" + + +do_configure_prepend() { + if [ "${@bb.utils.contains('PACKAGECONFIG', 'freeglut', 'yes', 'no', d)}" = "no" ]; then + sed -i -e "/^#.*include $/d" ${S}/src/piglit/glut_wrap.h + sed -i -e "/^#.*include.*$/d" ${S}/src/piglit/glut_wrap.h + fi +} + +# Forcibly strip because Piglit is *huge* +OECMAKE_TARGET_INSTALL = "install/strip" + +RDEPENDS_${PN} = "waffle waffle-bin python3 python3-mako python3-json \ + python3-misc \ + python3-unixadmin python3-xml python3-multiprocessing \ + python3-six python3-shell python3-io \ + python3-netserver bash \ + " + +INSANE_SKIP_${PN} += "dev-so already-stripped" + +# As nothing builds against Piglit we don't need to have anything in the +# sysroot, especially when this is ~2GB of test suite +SYSROOT_DIRS_remove = "${libdir}" + +# Can't be built with ccache +CCACHE_DISABLE = "1" -- 2.25.1 From alex.kanavin at gmail.com Sat Feb 29 16:29:41 2020 From: alex.kanavin at gmail.com (Alexander Kanavin) Date: Sat, 29 Feb 2020 17:29:41 +0100 Subject: [oe] [PATCH 1/2] python3-numpy: add from oe-core In-Reply-To: <20200229101336.30490-1-alex.kanavin@gmail.com> References: <20200229101336.30490-1-alex.kanavin@gmail.com> Message-ID: Please ignore this set; the recipes will stay in core for now. Alex On Sat, 29 Feb 2020 at 11:14, Alexander Kanavin wrote: > Signed-off-by: Alexander Kanavin > --- > ...-and-so-on-for-libraries-by-default-.patch | 70 +++++++++++++++++++ > ...up.py-remove-the-detection-of-x86-ta.patch | 32 +++++++++ > .../python-numpy/python-numpy.inc | 52 ++++++++++++++ > .../python-numpy/python3-numpy_1.17.4.bb | 3 + > 4 files changed, 157 insertions(+) > create mode 100644 > meta-python/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch > create mode 100644 > meta-python/recipes-devtools/python-numpy/files/0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch > create mode 100644 > meta-python/recipes-devtools/python-numpy/python-numpy.inc > create mode 100644 meta-python/recipes-devtools/python-numpy/ > python3-numpy_1.17.4.bb > > diff --git > a/meta-python/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch > b/meta-python/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch > new file mode 100644 > index 000000000..98a970583 > --- /dev/null > +++ > b/meta-python/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch > @@ -0,0 +1,70 @@ > +From 672a75c8417ce08db9e31fc415ec445479231d5a Mon Sep 17 00:00:00 2001 > +From: Alexander Kanavin > +Date: Thu, 10 Dec 2015 13:20:30 +0200 > +Subject: [PATCH] Don't search /usr and so on for libraries by default to > + > + avoid host contamination. > + > +Upstream-Status: Inappropriate (As the code stands, this is a hack) > +Signed-off-by: Ross Burton > +Signed-off-by: Alexander Kanavin > + > +--- > + numpy/distutils/system_info.py | 42 ++++------------------------------ > + 1 file changed, 5 insertions(+), 37 deletions(-) > + > +diff --git a/numpy/distutils/system_info.py > b/numpy/distutils/system_info.py > +index ba2b1f4..f94dce1 100644 > +--- a/numpy/distutils/system_info.py > ++++ b/numpy/distutils/system_info.py > +@@ -278,45 +278,13 @@ if sys.platform == 'win32': > + add_system_root(os.path.join(conda_dir, 'Library')) > + > + else: > +- default_lib_dirs = libpaths(['/usr/local/lib', '/opt/lib', > '/usr/lib', > +- '/opt/local/lib', '/sw/lib'], > platform_bits) > + default_runtime_dirs = [] > +- default_include_dirs = ['/usr/local/include', > +- '/opt/include', '/usr/include', > +- # path of umfpack under macports > +- '/opt/local/include/ufsparse', > +- '/opt/local/include', '/sw/include', > +- '/usr/include/suitesparse'] > +- default_src_dirs = ['.', '/usr/local/src', '/opt/src', '/sw/src'] > +- > +- default_x11_lib_dirs = libpaths(['/usr/X11R6/lib', '/usr/X11/lib', > +- '/usr/lib'], platform_bits) > +- default_x11_include_dirs = ['/usr/X11R6/include', '/usr/X11/include', > +- '/usr/include'] > +- > +- if os.path.exists('/usr/lib/X11'): > +- globbed_x11_dir = glob('/usr/lib/*/libX11.so') > +- if globbed_x11_dir: > +- x11_so_dir = os.path.split(globbed_x11_dir[0])[0] > +- default_x11_lib_dirs.extend([x11_so_dir, '/usr/lib/X11']) > +- default_x11_include_dirs.extend(['/usr/lib/X11/include', > +- '/usr/include/X11']) > +- > +- with open(os.devnull, 'w') as tmp: > +- try: > +- p = subprocess.Popen(["gcc", "-print-multiarch"], > stdout=subprocess.PIPE, > +- stderr=tmp) > +- except (OSError, DistutilsError): > +- # OSError if gcc is not installed, or SandboxViolation > (DistutilsError > +- # subclass) if an old setuptools bug is triggered (see > gh-3160). > +- pass > +- else: > +- triplet = str(p.communicate()[0].decode().strip()) > +- if p.returncode == 0: > +- # gcc supports the "-print-multiarch" option > +- default_x11_lib_dirs += [os.path.join("/usr/lib/", > triplet)] > +- default_lib_dirs += [os.path.join("/usr/lib/", triplet)] > ++ default_lib_dirs = libpaths(['/deadir/lib'], platform_bits) > ++ default_include_dirs = ['/deaddir/include'] > ++ default_src_dirs = ['.', '/deaddir/src'] > + > ++ default_x11_lib_dirs = libpaths(['/deaddir/lib'], platform_bits) > ++ default_x11_include_dirs = ['/deaddir/include'] > + > + if os.path.join(sys.prefix, 'lib') not in default_lib_dirs: > + default_lib_dirs.insert(0, os.path.join(sys.prefix, 'lib')) > diff --git > a/meta-python/recipes-devtools/python-numpy/files/0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch > b/meta-python/recipes-devtools/python-numpy/files/0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch > new file mode 100644 > index 000000000..9da6a2b3d > --- /dev/null > +++ > b/meta-python/recipes-devtools/python-numpy/files/0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch > @@ -0,0 +1,32 @@ > +From b881e0b2ba9cf1a4aa351a1c1ea90b1e1776ce21 Mon Sep 17 00:00:00 2001 > +From: Alexander Kanavin > +Date: Mon, 12 Aug 2019 15:37:36 +0200 > +Subject: [PATCH] numpy/random/setup.py: remove the detection of x86 > targets > + via uname() > + > +This was badly breaking compilation for ARM targets (and possibly > +other non-x86 targets); if -msse2 is desirable for x86 builds it has > +to be passed through another channel. > + > +Upstream-Status: Inappropriate [oe-core specific] > +Signed-off-by: Alexander Kanavin > +--- > + numpy/random/setup.py | 5 ----- > + 1 file changed, 5 deletions(-) > + > +diff --git a/numpy/random/setup.py b/numpy/random/setup.py > +index a1bf3b8..60fb534 100644 > +--- a/numpy/random/setup.py > ++++ b/numpy/random/setup.py > +@@ -49,11 +49,6 @@ def configuration(parent_package='', top_path=None): > + elif not is_msvc: > + # Some bit generators require c99 > + EXTRA_COMPILE_ARGS += ['-std=c99'] > +- INTEL_LIKE = any(arch in platform.machine() > +- for arch in ('x86', 'i686', 'i386', 'amd64')) > +- if INTEL_LIKE: > +- # Assumes GCC or GCC-like compiler > +- EXTRA_COMPILE_ARGS += ['-msse2'] > + > + # Use legacy integer variable sizes > + LEGACY_DEFS = [('NP_RANDOM_LEGACY', '1')] > diff --git a/meta-python/recipes-devtools/python-numpy/python-numpy.inc > b/meta-python/recipes-devtools/python-numpy/python-numpy.inc > new file mode 100644 > index 000000000..8413434af > --- /dev/null > +++ b/meta-python/recipes-devtools/python-numpy/python-numpy.inc > @@ -0,0 +1,52 @@ > +SUMMARY = "A sophisticated Numeric Processing Package for Python" > +SECTION = "devel/python" > +LICENSE = "BSD-3-Clause & BSD-2-Clause & PSF & Apache-2.0 & BSD & MIT" > +LIC_FILES_CHKSUM = > "file://LICENSE.txt;md5=1a32aba007a415aa8a1c708a0e2b86a1" > + > +SRCNAME = "numpy" > + > +SRC_URI = " > https://github.com/${SRCNAME}/${SRCNAME}/releases/download/v${PV}/${SRCNAME}-${PV}.tar.gz > \ > + > file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \ > + > file://0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch \ > + " > +SRC_URI[md5sum] = "9147c3ee75e58d657b5b8b5a4f3564e0" > +SRC_URI[sha256sum] = > "fb0415475e673cb9a6dd816df999e0ab9f86fa3af2b1770944e7288d2bea4ac9" > + > +UPSTREAM_CHECK_URI = "https://github.com/numpy/numpy/releases" > +UPSTREAM_CHECK_REGEX = "(?P\d+(\.\d+)+)\.tar" > + > +# Needed for building with gcc 4.x from centos 7 > +CFLAGS_append_class-native = " -std=c99" > + > +S = "${WORKDIR}/numpy-${PV}" > + > +CLEANBROKEN = "1" > + > +FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a" > + > +# install what is needed for numpy.test() > +RDEPENDS_${PN} = "${PYTHON_PN}-unittest \ > + ${PYTHON_PN}-difflib \ > + ${PYTHON_PN}-pprint \ > + ${PYTHON_PN}-pickle \ > + ${PYTHON_PN}-shell \ > + ${PYTHON_PN}-nose \ > + ${PYTHON_PN}-doctest \ > + ${PYTHON_PN}-datetime \ > + ${PYTHON_PN}-distutils \ > + ${PYTHON_PN}-misc \ > + ${PYTHON_PN}-mmap \ > + ${PYTHON_PN}-netclient \ > + ${PYTHON_PN}-numbers \ > + ${PYTHON_PN}-pydoc \ > + ${PYTHON_PN}-pkgutil \ > + ${PYTHON_PN}-email \ > + ${PYTHON_PN}-compression \ > + ${PYTHON_PN}-ctypes \ > + ${PYTHON_PN}-threading \ > + ${PYTHON_PN}-multiprocessing \ > +" > + > +RDEPENDS_${PN}_class-native = "" > + > +BBCLASSEXTEND = "native nativesdk" > diff --git a/meta-python/recipes-devtools/python-numpy/ > python3-numpy_1.17.4.bb b/meta-python/recipes-devtools/python-numpy/ > python3-numpy_1.17.4.bb > new file mode 100644 > index 000000000..d388e88d2 > --- /dev/null > +++ b/meta-python/recipes-devtools/python-numpy/python3-numpy_1.17.4.bb > @@ -0,0 +1,3 @@ > +inherit setuptools3 > +require python-numpy.inc > + > -- > 2.25.1 > > From raj.khem at gmail.com Sat Feb 29 18:55:39 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sat, 29 Feb 2020 10:55:39 -0800 Subject: [oe] [meta-oe][PATCH] sysdig: Upgrade to 0.26.5 Message-ID: <20200229185539.3905864-1-raj.khem@gmail.com> * License changed to Apache-2.0 upstream as well [1] * Forward port patches to apply on 0.26 * Just build libb64 from internal modules everything else should be provided by OE recipes * Disable luajit mips64 since luajit on these arches is not available, fall back to liblua * Disable build on musl, it needs fixing in sysdig Signed-off-by: Khem Raj --- ...usl-backtrace-APIs-are-glibc-specifi.patch | 37 +++--- ...0001-fix-build-with-LuaJIT-2.1-betas.patch | 96 ++++++++++++++++ ...-libsinsp-Port-to-build-with-lua-5.2.patch | 108 ------------------ .../sysdig/sysdig/fix-uint64-const.patch | 16 +++ meta-oe/recipes-extended/sysdig/sysdig_git.bb | 47 +++++--- 5 files changed, 158 insertions(+), 146 deletions(-) create mode 100644 meta-oe/recipes-extended/sysdig/sysdig/0001-fix-build-with-LuaJIT-2.1-betas.patch delete mode 100644 meta-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Port-to-build-with-lua-5.2.patch create mode 100644 meta-oe/recipes-extended/sysdig/sysdig/fix-uint64-const.patch diff --git a/meta-oe/recipes-extended/sysdig/sysdig/0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch b/meta-oe/recipes-extended/sysdig/sysdig/0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch index 7d3f8a19d7..cb80611578 100644 --- a/meta-oe/recipes-extended/sysdig/sysdig/0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch +++ b/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 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 . +@@ -22,7 +22,7 @@ limitations under the License. #include #include #include -+#ifdef __GLIBC__ +-#ifndef CYGWING_AGENT ++#if !defined(CYGWING_AGENT) || defined(__GLIBC__) #include -+#endif + #endif #include - #include - #include -@@ -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-oe/recipes-extended/sysdig/sysdig/0001-fix-build-with-LuaJIT-2.1-betas.patch b/meta-oe/recipes-extended/sysdig/sysdig/0001-fix-build-with-LuaJIT-2.1-betas.patch new file mode 100644 index 0000000000..71b0b8c8b9 --- /dev/null +++ b/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 +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 +sysdig-CLA-1.0-signed-off-by: Evgeni Golov +--- + 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-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Port-to-build-with-lua-5.2.patch b/meta-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Port-to-build-with-lua-5.2.patch deleted file mode 100644 index 8fec0ca59f..0000000000 --- a/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 -Date: Fri, 23 Oct 2015 00:23:15 -0700 -Subject: [PATCH] libsinsp: Port to build with lua >= 5.2 - -Signed-off-by: Khem Raj ---- - 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-oe/recipes-extended/sysdig/sysdig/fix-uint64-const.patch b/meta-oe/recipes-extended/sysdig/sysdig/fix-uint64-const.patch new file mode 100644 index 0000000000..5c756294b9 --- /dev/null +++ b/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 + +--- 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-oe/recipes-extended/sysdig/sysdig_git.bb b/meta-oe/recipes-extended/sysdig/sysdig_git.bb index 4f58281f9f..5817c4d533 100644 --- a/meta-oe/recipes-extended/sysdig/sysdig_git.bb +++ b/meta-oe/recipes-extended/sysdig/sysdig_git.bb @@ -3,39 +3,48 @@ 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_aarch64 = "" -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 \ " -SRCREV = "85d16f33a82a17f87ccdbc088749271c71d87013" -PV = "0.1.102+git${SRCPV}" +# v0.26.4 +SRCREV = "9fa0d129668fdabf256446be4be35838888052d9" +PV = "0.26.5" 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" -- 2.25.1 From raj.khem at gmail.com Sat Feb 29 19:43:39 2020 From: raj.khem at gmail.com (Khem Raj) Date: Sat, 29 Feb 2020 11:43:39 -0800 Subject: [oe] [meta-oe][PATCH] phoronix-test-suite: Add python3 to safe siggen deps Message-ID: <20200229194339.3913240-1-raj.khem@gmail.com> Signed-off-by: Khem Raj --- meta-oe/conf/layer.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-oe/conf/layer.conf b/meta-oe/conf/layer.conf index 8ad21d66ae..c5377362e7 100644 --- a/meta-oe/conf/layer.conf +++ b/meta-oe/conf/layer.conf @@ -49,7 +49,7 @@ 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 \ -- 2.25.1 From richard.leitner at skidata.com Mon Feb 17 08:01:20 2020 From: richard.leitner at skidata.com (Richard Leitner) Date: Mon, 17 Feb 2020 08:01:20 -0000 Subject: [oe] [meta-java] changes pushed to master Message-ID: <20200217080119.GA9635@pcleri> Hi, this is a note to let you know that I've just pushed the following changes to the master branch of the meta-java repository at git://git.yoctoproject.org/meta-java Alex Kiernan (1): recipes: rename distro_features_check to features_check Andr? Draszik (1): remove True option to getVar calls Davis, Michael (1): java.bbclass: oe_makeclasspath does nothing without -s Jacob Kroon (2): cacao: Use python3 in java wrapper script openjdk-8: Don't set TOPDIR bitbake variable Kraag Gorim (2): java-library: inherit python native icedtea7-native: inherit python native Kyle Russell (1): icedtea7-native: set default x11 PACKAGECONFIG from DISTRO_FEATURES Marek Belisko (1): jamvm: Disable inlining Mohamad Noor Alim Hussin (1): class/java-native: remove Richard Leitner (8): icedtea7-native: add patch to fix friend declaration of prefix_relocInfo icedtea7-native: use openjdk build helper functions java.bbclass: remove bashism in comparison README: mention dependency on meta-poky for oeqa image testing layer.conf: add LAYERDEPENDS for openembedded-layer aka meta-oe icedtea7-native: add patch to fix xattr include path openjdk-7: add patch to fix xattr include path openjdk-8: update to latest ga version 242 Wenlin Kang (1): openjdk-8: fix a random crash on JNI_CreateJavaVM If you have any questions, please let me know. regards;rl