Re: [OE-core] [PATCH] lsb: Remove bashisms from the rc.d functions
On 04/08/2017 12:31 AM, Richard Purdie wrote: > On Fri, 2017-04-07 at 23:55 +0200, Marek Vasut wrote: >> This bashism prevents functions from working on systems without bash, >> ie. on systems with busybox shell or debian dash. Replace them with >> bourne-compatible command instead. > > Note that you'd code adds in a couple of forks for code which currently > doesn't need separate process execution. Its therefore not a clear cut > win. Is there no way to do it without the forks in dash? Well do you know of any bourne-compatible way ? I'll be happy to learn something new ... > Cheers, > > Richard > >> Signed-off-by: Marek Vasut>> Cc: Ross Burton >> Cc: Richard Purdie >> --- >> .../0002-rc.d-Remove-bashism-from-functions.patch | 48 >> ++ >> meta/recipes-extended/lsb/lsbinitscripts_9.68.bb | 1 + >> 2 files changed, 49 insertions(+) >> create mode 100644 meta/recipes-extended/lsb/lsbinitscripts/0002- >> rc.d-Remove-bashism-from-functions.patch >> >> diff --git a/meta/recipes-extended/lsb/lsbinitscripts/0002-rc.d- >> Remove-bashism-from-functions.patch b/meta/recipes- >> extended/lsb/lsbinitscripts/0002-rc.d-Remove-bashism-from- >> functions.patch >> new file mode 100644 >> index 00..44eed1cc18 >> --- /dev/null >> +++ b/meta/recipes-extended/lsb/lsbinitscripts/0002-rc.d-Remove- >> bashism-from-functions.patch >> @@ -0,0 +1,48 @@ >> +From b7601dcd4663a9cb936a6d2d224665bea69fcc50 Mon Sep 17 00:00:00 >> 2001 >> +From: Marek Vasut >> +Date: Thu, 6 Apr 2017 19:15:56 +0200 >> +Subject: [PATCH] rc.d: Remove bashism from functions >> + >> +This bashism prevents functions from working on systems without >> bash, >> +ie. on systems with busybox shell or debian dash. Replace them with >> +bourne-compatible command instead. >> + >> +Signed-off-by: Marek Vasut >> +--- >> + rc.d/init.d/functions | 9 ++--- >> + 1 file changed, 2 insertions(+), 7 deletions(-) >> + >> +diff --git a/rc.d/init.d/functions b/rc.d/init.d/functions >> +index 746b37d..3ba21ef 100644 >> +--- a/rc.d/init.d/functions >> b/rc.d/init.d/functions >> +@@ -115,15 +115,11 @@ __kill_pids_term_kill_checkpids() { >> + local pid= >> + local pids=$* >> + local remaining= >> +-local stat= >> + local stime= >> + >> + for pid in $pids ; do >> + [ ! -e "/proc/$pid" ] && continue >> +-read -r line < "/proc/$pid/stat" 2> /dev/null >> +- >> +-stat=($line) >> +-stime=${stat[21]} >> ++stime=`cut -d " " -f 22 < /proc/self/stat` >> + >> + [ -n "$stime" ] && [ "$base_stime" -lt "$stime" ] && >> continue >> + remaining+="$pid " >> +@@ -139,8 +135,7 @@ __kill_pids_term_kill() { >> + local try=0 >> + local delay=3; >> + local pid= >> +-local stat=($(< /proc/self/stat)) >> +-local base_stime=${stat[21]} >> ++local base_stime=`cut -d " " -f 22 < /proc/self/stat` >> + >> + if [ "$1" = "-d" ]; then >> + delay=$2 >> +-- >> +2.11.0 >> + >> diff --git a/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb >> b/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb >> index 0c08fffcef..9ba0e01776 100644 >> --- a/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb >> +++ b/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb >> @@ -11,6 +11,7 @@ S="${WORKDIR}/initscripts-${PV}" >> SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/initscripts/inits >> cripts-${PV}.tar.bz2/6a51a5af38e01445f53989ed0727c3e1/initscripts- >> ${PV}.tar.bz2 \ >> file://functions.patch \ >> file://0001-functions-avoid-exit-1-which-causes-init- >> scripts-to-.patch \ >> + file://0002-rc.d-Remove-bashism-from-functions.patch \ >>" >> >> SRC_URI[md5sum] = "6a51a5af38e01445f53989ed0727c3e1" -- Best regards, Marek Vasut -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] lsb: Remove bashisms from the rc.d functions
On Fri, 2017-04-07 at 23:55 +0200, Marek Vasut wrote: > This bashism prevents functions from working on systems without bash, > ie. on systems with busybox shell or debian dash. Replace them with > bourne-compatible command instead. Note that you'd code adds in a couple of forks for code which currently doesn't need separate process execution. Its therefore not a clear cut win. Is there no way to do it without the forks in dash? Cheers, Richard > Signed-off-by: Marek Vasut> Cc: Ross Burton > Cc: Richard Purdie > --- > .../0002-rc.d-Remove-bashism-from-functions.patch | 48 > ++ > meta/recipes-extended/lsb/lsbinitscripts_9.68.bb | 1 + > 2 files changed, 49 insertions(+) > create mode 100644 meta/recipes-extended/lsb/lsbinitscripts/0002- > rc.d-Remove-bashism-from-functions.patch > > diff --git a/meta/recipes-extended/lsb/lsbinitscripts/0002-rc.d- > Remove-bashism-from-functions.patch b/meta/recipes- > extended/lsb/lsbinitscripts/0002-rc.d-Remove-bashism-from- > functions.patch > new file mode 100644 > index 00..44eed1cc18 > --- /dev/null > +++ b/meta/recipes-extended/lsb/lsbinitscripts/0002-rc.d-Remove- > bashism-from-functions.patch > @@ -0,0 +1,48 @@ > +From b7601dcd4663a9cb936a6d2d224665bea69fcc50 Mon Sep 17 00:00:00 > 2001 > +From: Marek Vasut > +Date: Thu, 6 Apr 2017 19:15:56 +0200 > +Subject: [PATCH] rc.d: Remove bashism from functions > + > +This bashism prevents functions from working on systems without > bash, > +ie. on systems with busybox shell or debian dash. Replace them with > +bourne-compatible command instead. > + > +Signed-off-by: Marek Vasut > +--- > + rc.d/init.d/functions | 9 ++--- > + 1 file changed, 2 insertions(+), 7 deletions(-) > + > +diff --git a/rc.d/init.d/functions b/rc.d/init.d/functions > +index 746b37d..3ba21ef 100644 > +--- a/rc.d/init.d/functions > b/rc.d/init.d/functions > +@@ -115,15 +115,11 @@ __kill_pids_term_kill_checkpids() { > + local pid= > + local pids=$* > + local remaining= > +-local stat= > + local stime= > + > + for pid in $pids ; do > + [ ! -e "/proc/$pid" ] && continue > +-read -r line < "/proc/$pid/stat" 2> /dev/null > +- > +-stat=($line) > +-stime=${stat[21]} > ++stime=`cut -d " " -f 22 < /proc/self/stat` > + > + [ -n "$stime" ] && [ "$base_stime" -lt "$stime" ] && > continue > + remaining+="$pid " > +@@ -139,8 +135,7 @@ __kill_pids_term_kill() { > + local try=0 > + local delay=3; > + local pid= > +-local stat=($(< /proc/self/stat)) > +-local base_stime=${stat[21]} > ++local base_stime=`cut -d " " -f 22 < /proc/self/stat` > + > + if [ "$1" = "-d" ]; then > + delay=$2 > +-- > +2.11.0 > + > diff --git a/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb > b/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb > index 0c08fffcef..9ba0e01776 100644 > --- a/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb > +++ b/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb > @@ -11,6 +11,7 @@ S="${WORKDIR}/initscripts-${PV}" > SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/initscripts/inits > cripts-${PV}.tar.bz2/6a51a5af38e01445f53989ed0727c3e1/initscripts- > ${PV}.tar.bz2 \ > file://functions.patch \ > file://0001-functions-avoid-exit-1-which-causes-init- > scripts-to-.patch \ > + file://0002-rc.d-Remove-bashism-from-functions.patch \ > " > > SRC_URI[md5sum] = "6a51a5af38e01445f53989ed0727c3e1" -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] ✗ patchtest: failure for lsb: Remove bashisms from the rc.d functions (rev2)
== Series Details == Series: lsb: Remove bashisms from the rc.d functions (rev2) Revision: 2 URL : https://patchwork.openembedded.org/series/6209/ State : failure == Summary == Thank you for submitting this patch series to OpenEmbedded Core. This is an automated response. Several tests have been executed on the proposed series by patchtest resulting in the following failures: * Issue Added patch file is missing Upstream-Status in the header [test_upstream_status_presence] Suggested fixAdd Upstream-Status: to the header of meta/recipes-extended/lsb/lsbinitscripts/0002-rc.d-Remove-bashism-from-functions.patch (possible values: Pending, Submitted, Accepted, Backport, Denied, Inappropriate) If you believe any of these test results are incorrect, please reply to the mailing list (openembedded-core@lists.openembedded.org) raising your concerns. Otherwise we would appreciate you correcting the issues and submitting a new version of the patchset if applicable. Please ensure you add/increment the version number when sending the new version (i.e. [PATCH] -> [PATCH v2] -> [PATCH v3] -> ...). --- Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 0/4] Use fixed DISTRO_FEATURES for native
On Fri, 2017-04-07 at 09:08 +0300, Jussi Kukkonen wrote: > Avoid signifant native task churn when DISTRO_FEATURES is changed > by defining a fixed DISTRO_FEATURES value (default is "") for native > recipes. > > The xorg changes are all removals of x11 requirements (that were not > real) from recipes that have native versions. > > I added a configuration default in bitbake.conf, let me know if this > is not a good place. > > This seems to work fine (tested multiple different images) but I am > not really sure how to test it further... Suggestions are welcome, as > are results from autobuilder. Close, but: https://autobuilder.yocto.io/builders/nightly-no-x11/builds/225/steps/BuildImages/logs/stdio :/ Cheers, Richard -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] lsb: Remove bashisms from the rc.d functions
This bashism prevents functions from working on systems without bash, ie. on systems with busybox shell or debian dash. Replace them with bourne-compatible command instead. Signed-off-by: Marek VasutCc: Ross Burton Cc: Richard Purdie --- .../0002-rc.d-Remove-bashism-from-functions.patch | 48 ++ meta/recipes-extended/lsb/lsbinitscripts_9.68.bb | 1 + 2 files changed, 49 insertions(+) create mode 100644 meta/recipes-extended/lsb/lsbinitscripts/0002-rc.d-Remove-bashism-from-functions.patch diff --git a/meta/recipes-extended/lsb/lsbinitscripts/0002-rc.d-Remove-bashism-from-functions.patch b/meta/recipes-extended/lsb/lsbinitscripts/0002-rc.d-Remove-bashism-from-functions.patch new file mode 100644 index 00..44eed1cc18 --- /dev/null +++ b/meta/recipes-extended/lsb/lsbinitscripts/0002-rc.d-Remove-bashism-from-functions.patch @@ -0,0 +1,48 @@ +From b7601dcd4663a9cb936a6d2d224665bea69fcc50 Mon Sep 17 00:00:00 2001 +From: Marek Vasut +Date: Thu, 6 Apr 2017 19:15:56 +0200 +Subject: [PATCH] rc.d: Remove bashism from functions + +This bashism prevents functions from working on systems without bash, +ie. on systems with busybox shell or debian dash. Replace them with +bourne-compatible command instead. + +Signed-off-by: Marek Vasut +--- + rc.d/init.d/functions | 9 ++--- + 1 file changed, 2 insertions(+), 7 deletions(-) + +diff --git a/rc.d/init.d/functions b/rc.d/init.d/functions +index 746b37d..3ba21ef 100644 +--- a/rc.d/init.d/functions b/rc.d/init.d/functions +@@ -115,15 +115,11 @@ __kill_pids_term_kill_checkpids() { + local pid= + local pids=$* + local remaining= +-local stat= + local stime= + + for pid in $pids ; do + [ ! -e "/proc/$pid" ] && continue +-read -r line < "/proc/$pid/stat" 2> /dev/null +- +-stat=($line) +-stime=${stat[21]} ++stime=`cut -d " " -f 22 < /proc/self/stat` + + [ -n "$stime" ] && [ "$base_stime" -lt "$stime" ] && continue + remaining+="$pid " +@@ -139,8 +135,7 @@ __kill_pids_term_kill() { + local try=0 + local delay=3; + local pid= +-local stat=($(< /proc/self/stat)) +-local base_stime=${stat[21]} ++local base_stime=`cut -d " " -f 22 < /proc/self/stat` + + if [ "$1" = "-d" ]; then + delay=$2 +-- +2.11.0 + diff --git a/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb b/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb index 0c08fffcef..9ba0e01776 100644 --- a/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb +++ b/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb @@ -11,6 +11,7 @@ S="${WORKDIR}/initscripts-${PV}" SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/initscripts/initscripts-${PV}.tar.bz2/6a51a5af38e01445f53989ed0727c3e1/initscripts-${PV}.tar.bz2 \ file://functions.patch \ file://0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch \ + file://0002-rc.d-Remove-bashism-from-functions.patch \ " SRC_URI[md5sum] = "6a51a5af38e01445f53989ed0727c3e1" -- 2.11.0 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 2/4] no-static-libs: Add entry for ncurses
On Fri, 2017-04-07 at 10:42 -0700, Andre McCurdy wrote: > On Fri, Apr 7, 2017 at 9:41 AM, Richard Purdie >wrote: > > > > Yes, the option to disable static libraries in boost really is > boost or ncurses? ncurses. Its been a long day, I'll tweak the commit message, thanks. If anyone does know how to disable static libs in boost I'd be interested to know how! Cheers, Richard -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH][morty] base-files: resize only serial tty's in profile
[Backported from master.] We don't want to run resize on non serial consoles. There's been an earlier attempt (6557787), so this builds upon that. The problem we're seeing is that if there is text buffered in the virtual console (like from a desperate user trying to enter login details), resize will get stuck while calling ioctl(tty, TCSETAW); Since serial consoles are named (not just numbered), this change limits resize's reach even further to run only on /dev/tty[A-z] (thus avoiding /dev/tty[0-9]). Signed-off-by: Daniel Díaz--- meta/recipes-core/base-files/base-files/profile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-core/base-files/base-files/profile b/meta/recipes-core/base-files/base-files/profile index 7367fd1..c616616 100644 --- a/meta/recipes-core/base-files/base-files/profile +++ b/meta/recipes-core/base-files/base-files/profile @@ -26,7 +26,7 @@ if [ -x /usr/bin/resize ] && termpath="`tty`"; then # Make sure we are on a serial console (i.e. the device used starts with /dev/tty), # otherwise we confuse e.g. the eclipse launcher which tries do use ssh case "$termpath" in - /dev/tty*) resize >/dev/null + /dev/tty[A-z]*) resize >/dev/null esac fi -- 1.9.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH][krogoth] base-files: resize only serial tty's in profile
[Backported from master.] We don't want to run resize on non serial consoles. There's been an earlier attempt (6557787), so this builds upon that. The problem we're seeing is that if there is text buffered in the virtual console (like from a desperate user trying to enter login details), resize will get stuck while calling ioctl(tty, TCSETAW); Since serial consoles are named (not just numbered), this change limits resize's reach even further to run only on /dev/tty[A-z] (thus avoiding /dev/tty[0-9]). Signed-off-by: Daniel Díaz--- meta/recipes-core/base-files/base-files/profile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-core/base-files/base-files/profile b/meta/recipes-core/base-files/base-files/profile index 1f02e52..e449b15 100644 --- a/meta/recipes-core/base-files/base-files/profile +++ b/meta/recipes-core/base-files/base-files/profile @@ -32,7 +32,7 @@ if [ -x /usr/bin/resize ] && termpath="`tty`"; then # Make sure we are on a serial console (i.e. the device used starts with /dev/tty), # otherwise we confuse e.g. the eclipse launcher which tries do use ssh case "$termpath" in - /dev/tty*) resize >/dev/null + /dev/tty[A-z]*) resize >/dev/null esac fi -- 1.9.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 2/4] no-static-libs: Add entry for ncurses
On Fri, Apr 7, 2017 at 9:41 AM, Richard Purdiewrote: > Yes, the option to disable static libraries in boost really is boost or ncurses? > "--without-normal". Add this for ncurses and its variants. > > Signed-off-by: Richard Purdie > --- > meta/conf/distro/include/no-static-libs.inc | 4 > 1 file changed, 4 insertions(+) > > diff --git a/meta/conf/distro/include/no-static-libs.inc > b/meta/conf/distro/include/no-static-libs.inc > index 54f34a7..f8d8c09 100644 > --- a/meta/conf/distro/include/no-static-libs.inc > +++ b/meta/conf/distro/include/no-static-libs.inc > @@ -33,3 +33,7 @@ DISABLE_STATIC_pn-libusb1-native = "" > EXTRA_OECONF_append = "${DISABLE_STATIC}" > > EXTRA_OECMAKE_append_pn-libical = " -DSHARED_ONLY=True" > + > +EXCONFIG_ARGS_append_pn-ncurses = " --without-normal" > +EXCONFIG_ARGS_append_pn-ncurses-native = " --without-normal" > +EXCONFIG_ARGS_append_pn-nativesdk-ncurses = " --without-normal" > -- > 2.7.4 > > -- > ___ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] State of bitbake world, Failed tasks 2017-04-05
== Number of issues - stats == {| class='wikitable' !|Date !!colspan='3'|Failed tasks !!colspan='6'|Failed depencencies!!|Signatures !!colspan='14'|QA !!Comment |- || ||qemuarm ||qemux86 ||qemux86_64 ||qemuarm||max||min ||qemux86||max||min ||all ||already-stripped ||libdir||textrel ||build-deps||file-rdeps ||version-going-backwards ||host-user-contaminated ||installed-vs-shipped ||unknown-configure-option ||symlink-to-sysroot ||invalid-pkgconfig ||pkgname ||ldflags ||compile-host-path || |- ||2017-04-05||2 ||2 ||2 ||N/A ||N/A ||N/A ||N/A ||N/A ||N/A ||3 ||0 ||0 ||3 ||0 ||0 ||0 ||0 ||0 ||0 ||0 ||0 ||0 ||0 ||0 || |} http://www.openembedded.org/wiki/Bitbake_World_Status == Failed tasks 2017-04-05 == INFO: jenkins-job.sh-1.8.20 Complete log available at http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.report.20170405_212536.log === common (2) === * meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.8.4.bb:do_configure * meta-openembedded/meta-networking/recipes-support/uftp/uftp_4.9.3.bb:do_compile === common-x86 (0) === === qemuarm (0) === === qemux86 (0) === === qemux86_64 (0) === === Number of failed tasks (6) === {| class=wikitable |- || qemuarm || 2 || http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.world.qemuarm.20170405_095003.log/ || http://errors.yoctoproject.org/Errors/Build/35467/ |- || qemux86 || 2 || http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.world.qemux86.20170405_095003.log/ || http://errors.yoctoproject.org/Errors/Build/35472/ |- || qemux86_64 || 2 || http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.world.qemux86-64.20170405_143317.log/ || http://errors.yoctoproject.org/Errors/Build/35477/ |} === PNBLACKLISTs (442) === === QA issues (3) === {| 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 ||symlink-to-sysroot |- ||0 ||unknown-configure-option |- ||0 ||version-going-backwards |- ||3 ||textrel |} === Incorrect PACKAGE_ARCH or sstate signatures (3) === Complete log: http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.signatures.20170405_114645.log/ * ERROR: 3 issues were found in these recipes: wireguard-tools * ERROR: 1 errors found in signatures.qemux86.do_configure.sigdata.log * ERROR: 1 errors found in signatures.qemux86.do_populate_sysroot.sigdata.log * ERROR: 1 errors found in signatures.qemux86.do_package_write_ipk.sigdata.log * ERROR: wireguard-tools different signature for task do_configure.sigdata between qemux86copy and qemux86 * ERROR: 1 errors found in /home/jenkins/oe/world/shr-core/tmp-glibc/sstate-diff/1491428805/signatures.qemux86.do_configure.sigdata.log * ERROR: wireguard-tools different signature for task do_populate_sysroot.sigdata between qemux86copy and qemux86 * ERROR: 1 errors found in /home/jenkins/oe/world/shr-core/tmp-glibc/sstate-diff/1491428805/signatures.qemux86.do_populate_sysroot.sigdata.log * ERROR: wireguard-tools different signature for task do_package_write_ipk.sigdata between qemux86copy and qemux86 * ERROR: 1 errors found in /home/jenkins/oe/world/shr-core/tmp-glibc/sstate-diff/1491428805/signatures.qemux86.do_package_write_ipk.sigdata.log * ERROR: 3 issues were found in these recipes: wireguard-tools QA issues by type: count: 0issue: already-stripped count: 0issue: libdir count: 3issue: textrel chromium-54.0.2810.2: ELF binary '/tmp/work/i586-oe-linux/chromium/54.0.2810.2-r0/packages-split/chromium/usr/bin/chromium/chrome' has relocations in .text [textrel] chromium-wayland-53.0.2785.143: ELF binary '/tmp/work/i586-oe-linux/chromium-wayland/53.0.2785.143-r0/packages-split/chromium-wayland/usr/bin/chromium/chrome' has relocations in .text [textrel] corosync-2.4.2: ELF binary '/tmp/work/core2-64-oe-linux/corosync/2.4.2-r0/packages-split/corosync/usr/sbin/corosync' has relocations in .text [textrel] count: 0issue: build-deps count: 0issue: file-rdeps count: 0issue: version-going-backwards count: 0issue: host-user-contaminated count: 0issue: installed-vs-shipped count: 0issue: unknown-configure-option count: 0issue: symlink-to-sysroot count: 0issue: invalid-pkgconfig count: 0issue: pkgname
[OE-core] [PATCH 2/4] no-static-libs: Add entry for ncurses
Yes, the option to disable static libraries in boost really is "--without-normal". Add this for ncurses and its variants. Signed-off-by: Richard Purdie--- meta/conf/distro/include/no-static-libs.inc | 4 1 file changed, 4 insertions(+) diff --git a/meta/conf/distro/include/no-static-libs.inc b/meta/conf/distro/include/no-static-libs.inc index 54f34a7..f8d8c09 100644 --- a/meta/conf/distro/include/no-static-libs.inc +++ b/meta/conf/distro/include/no-static-libs.inc @@ -33,3 +33,7 @@ DISABLE_STATIC_pn-libusb1-native = "" EXTRA_OECONF_append = "${DISABLE_STATIC}" EXTRA_OECMAKE_append_pn-libical = " -DSHARED_ONLY=True" + +EXCONFIG_ARGS_append_pn-ncurses = " --without-normal" +EXCONFIG_ARGS_append_pn-ncurses-native = " --without-normal" +EXCONFIG_ARGS_append_pn-nativesdk-ncurses = " --without-normal" -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH v2 1/2] runqemu: Automatically add a TFTP directory for slirp boot
On Fri, Mar 31, 2017 at 10:07 AM, Alistair Franciswrote: > On Fri, Mar 24, 2017 at 1:38 PM, Alistair Francis > wrote: >> When booting QEMU with slirp networking we want to use QEMUs TFTP server >> to make the images in deploy accessible to the guest. >> >> Signed-off-by: Alistair Francis > > Ping? Ping^2 I received comments on the second patch, but nothing on this one. Thanks, Alistair > >> --- >> scripts/runqemu | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/scripts/runqemu b/scripts/runqemu >> index 23c9efb..f76d976 100755 >> --- a/scripts/runqemu >> +++ b/scripts/runqemu >> @@ -832,7 +832,7 @@ class BaseConfig(object): >> self.kernel_cmdline_script += ' ip=dhcp' >> # Port mapping >> hostfwd = ",hostfwd=tcp::-:22,hostfwd=tcp::2323-:23" >> -qb_slirp_opt_default = "-netdev user,id=net0%s" % hostfwd >> +qb_slirp_opt_default = "-netdev user,id=net0%s,tftp=%s" % (hostfwd, >> self.get('DEPLOY_DIR_IMAGE')) >> qb_slirp_opt = self.get('QB_SLIRP_OPT') or qb_slirp_opt_default >> # Figure out the port >> ports = re.findall('hostfwd=[^-]*:([0-9]+)-[^,-]*', qb_slirp_opt) >> -- >> 2.9.3 >> -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [morty][PATCH 1/1] packagegroup-core-standalone-sdk-target: add libssp
On 04/06/2017 07:38 PM, Paul Eggleton wrote: If you want to be able to use -fstack-protector then you need the runtime support - you can either write this yourself or use libssp supplied with GCC. If you're using GCC then it seems likely that you'd just be using libssp, so include in the SDK by default; however use RRECOMMENDS just in case it's been disabled or you aren't using GCC. (From OE-Core rev: 6c990655e35bb3a14d59555662ec5802c9980028) Signed-off-by: Paul EggletonSigned-off-by: Ross Burton Signed-off-by: Richard Purdie great. will pull in. thanks, Armin --- .../packagegroups/packagegroup-core-standalone-sdk-target.bb | 5 + 1 file changed, 5 insertions(+) diff --git a/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb b/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb index 274e11a..43fc599 100644 --- a/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb +++ b/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb @@ -12,3 +12,8 @@ RDEPENDS_${PN} = "\ libstdc++-dev \ ${LIBC_DEPENDENCIES} \ " + +RRECOMMENDS_${PN} = "\ +libssp \ +libssp-dev \ +" -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 3/4] ncurses: Drop incorrect option
The --disable-static option doesn't exist in ncurses. Its equivalent is --without-normal so remove the option which does nothing. Signed-off-by: Richard Purdie--- meta/recipes-core/ncurses/ncurses.inc | 1 - 1 file changed, 1 deletion(-) diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc index 3f4bf67..8990b0f 100644 --- a/meta/recipes-core/ncurses/ncurses.inc +++ b/meta/recipes-core/ncurses/ncurses.inc @@ -66,7 +66,6 @@ ncurses_configure() { cd $1 shift oe_runconf \ - --disable-static \ --without-debug \ --without-ada \ --without-gpm \ -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 4/4] uninative-flags.inc: Build binutils-native as pie
Some distros (ubuntu 16.10, debian-testing) default to gcc configured with --enable-default-pie (see gcc -v). This breaks e.g. prelink-native on a pie default system if binutils-native was built on a system which is not pie default We therefore enable pie unconditionally for native recipes where static libs are used such as libiberty from binutils, for now, until our minimum distro set is all default pie. Signed-off-by: Richard Purdie--- meta/conf/distro/include/uninative-flags.inc | 8 1 file changed, 8 insertions(+) diff --git a/meta/conf/distro/include/uninative-flags.inc b/meta/conf/distro/include/uninative-flags.inc index e9f82c3..b6a944e 100644 --- a/meta/conf/distro/include/uninative-flags.inc +++ b/meta/conf/distro/include/uninative-flags.inc @@ -7,3 +7,11 @@ BUILD_CXXFLAGS_append = " -D_GLIBCXX_USE_CXX11_ABI=0" # icu configure defaults to CXX11 if no -std= option is passed in CXXFLAGS # therefore pass one BUILD_CXXFLAGS_append_pn-icu-native = " -std=c++98" + +# Some distros (ubuntu 16.10, debian-testing) default to gcc configured with +# --enable-default-pie (see gcc -v). This breaks e.g. prelink-native on a pie +# default system if binutils-native was built on a system which is not pie default +# We therefore enable pie unconditionally for native recipes where static libs are +# used such as libiberty from binutils, for now, until our minimum distro set is +# all default pie. +BUILD_CFLAGS_append_pn-binutils-native = " -pie -fpie" -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/4] selftest/sstatetests: Replace glibc-initial with linux-libc-headers
The intent in these tests was to find something early in the bootstrap process to run tests against which didn't require long build times. This breaks with the removal of the glibc-initial do_build target. Replacing it with linux-libc-headers seems like a good choice and simplifies the conditionals too. Signed-off-by: Richard Purdie--- meta/lib/oeqa/selftest/sstatetests.py | 20 +--- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/meta/lib/oeqa/selftest/sstatetests.py b/meta/lib/oeqa/selftest/sstatetests.py index 5814815..e35ddff 100644 --- a/meta/lib/oeqa/selftest/sstatetests.py +++ b/meta/lib/oeqa/selftest/sstatetests.py @@ -49,15 +49,11 @@ class SStateTests(SStateBase): @testcase(976) def test_sstate_creation_distro_nonspecific_pass(self): -# glibc-initial is intended only for the glibc C library -if self.tclibc == 'glibc': -self.run_test_sstate_creation(['glibc-initial'], distro_specific=False, distro_nonspecific=True, temp_sstate_location=True) +self.run_test_sstate_creation(['linux-libc-headers'], distro_specific=False, distro_nonspecific=True, temp_sstate_location=True) @testcase(1375) def test_sstate_creation_distro_nonspecific_fail(self): -# glibc-initial is intended only for the glibc C library -if self.tclibc == 'glibc': -self.run_test_sstate_creation(['glibc-initial'], distro_specific=True, distro_nonspecific=False, temp_sstate_location=True, should_pass=False) +self.run_test_sstate_creation(['linux-libc-headers'], distro_specific=True, distro_nonspecific=False, temp_sstate_location=True, should_pass=False) # Test the sstate files deletion part of the do_cleansstate task def run_test_cleansstate_task(self, targets, distro_specific=True, distro_nonspecific=True, temp_sstate_location=True): @@ -79,23 +75,17 @@ class SStateTests(SStateBase): @testcase(977) def test_cleansstate_task_distro_specific_nonspecific(self): targets = ['binutils-cross-'+ self.tune_arch, 'binutils-native'] -# glibc-initial is intended only for the glibc C library -if self.tclibc == 'glibc': -targets.append('glibc-initial') +targets.append('linux-libc-headers') self.run_test_cleansstate_task(targets, distro_specific=True, distro_nonspecific=True, temp_sstate_location=True) @testcase(1376) def test_cleansstate_task_distro_nonspecific(self): -# glibc-initial is intended only for the glibc C library -if self.tclibc == 'glibc': -self.run_test_cleansstate_task(['glibc-initial'], distro_specific=False, distro_nonspecific=True, temp_sstate_location=True) +self.run_test_cleansstate_task(['linux-libc-headers'], distro_specific=False, distro_nonspecific=True, temp_sstate_location=True) @testcase(1377) def test_cleansstate_task_distro_specific(self): targets = ['binutils-cross-'+ self.tune_arch, 'binutils-native'] -# glibc-initial is intended only for the glibc C library -if self.tclibc == 'glibc': -targets.append('glibc-initial') +targets.append('linux-libc-headers') self.run_test_cleansstate_task(targets, distro_specific=True, distro_nonspecific=False, temp_sstate_location=True) -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 5/5] yocto-compat-layer: test signature differences when setting MACHINE
Selecting a machine may only affect the signature of tasks that are specific to that machine. In other words, when MACHINE=A and MACHINE=B share a recipe foo and the output of foo, then both machine configurations must build foo in exactly the same way. Otherwise it is not possible to use both machines in the same distribution. This criteria can only be tested by testing different machines in combination, i.e. one main layer, potentially several additional BSP layers and an explicit choice of machines: yocto-compat-layer --additional-layers .../meta-intel --machines intel-corei7-64 imx6slevk -- .../meta-freescale This is work in progress. Right now it finds do_build differences in all-arch ca-certificates because of RDEPENDS_${PN} += "openssl". This causes do_build to run more often then necessary, but probably needs to be ignored by the test because fixing it in bitbake would be too hard and is harmless in practice. There is also a difference for gdb-cross-x86_64: $ yocto-compat-layer.py -n --machines intel-corei7-64 intel-core2-32 qemux86 qemux86-64 -- /fast/work/meta-intel INFO: Detected layers: INFO: meta-intel: LayerType.BSP, /fast/work/meta-intel INFO: INFO: Setting up for meta-intel(LayerType.BSP), /fast/work/meta-intel INFO: Getting initial bitbake variables ... INFO: Getting initial signatures ... INFO: Adding layer meta-intel INFO: Adding layer meta-intel INFO: Starting to analyze: meta-intel INFO: -- ... INFO: == INFO: FAIL: test_machine_signatures (bsp.BSPCompatLayer) INFO: -- INFO: Traceback (most recent call last): File "/fast/work/openembedded-core/scripts/lib/compatlayer/cases/bsp.py", line 78, in test_machine_signatures self.fail('\n'.join(msg)) AssertionError: The machines have conflicting signatures for some shared tasks: allarch ca-certificates:do_build: 0e3027d1bdab8f84c6db04eedf3daa1d (intel-core2-32) != 95083aeb6a3a8179ffe49fa2459d1ef9 (intel-corei7-64) != a3234da44f5203dd7fcd96bb79b6b164 (qemux86) != f6d4810f5faad32491c4f1a6f28fc900 (qemux86-64) allarch cantarell-fonts:do_build: 8b3ed1c153b2bfb49ce2e03814a0075e (intel-core2-32) != d37c32facfc8aae57044cdab3aa7e1b6 (intel-corei7-64) != 1e348f57ef18743d1329ab0b2dc51bd5 (qemux86) != de6cb47d25cae6204067d949bcc47d23 (qemux86-64) ... allarch xuser-account:do_build: 81cd497e08b84846f0b70d0f6877b1ff (intel-core2-32) != f038a12c4ac671c286783171bf7a8e8c (intel-corei7-64) != 7fb6d3e9a830959095aebc12df6d3d1e (qemux86) != c3bd05c580cacc6ba06fc909bf6e7656 (qemux86-64) x86-64-x86-64 gdb-cross-x86_64:do_build: 68a82197720db0f0dbad8955635bc1c0 (intel-corei7-64) != 5631f484d848541bdbf6a4c1f8117f79 (qemux86-64) ... x86-64-x86-64 gdb-cross-x86_64:do_configure: 16a264dadaca2897b52871d0c884d564 (intel-corei7-64) != 9345d347d27f735ef441aad853370acb (qemux86-64) ... x86-64-x86-64 go-cross-x86_64:do_compile: a297977ab6362dc875643a50f597cd44 (intel-corei7-64) != 2a7f9da09ac83e2ff2ef2be21b29c19a (qemux86-64) ... $ bitbake-diffsigs -d -t gdb-cross-x86_64 do_configure -s 16a264dadaca2897b52871d0c884d564 9345d347d27f735ef441aad853370acb DEBUG: Signature file (previous): /fast/build/nodistro/x86/tmp-glibc/stamps/x86_64-linux/gdb-cross-x86_64/7.12.1-r0.do_configure.sigdata.16a264dadaca2897b52871d0c884d564 DEBUG: Signature file (latest): /fast/build/nodistro/x86/tmp-glibc/stamps/x86_64-linux/gdb-cross-x86_64/7.12.1-r0.do_configure.sigdata.9345d347d27f735ef441aad853370acb Task dependencies changed from: ... List of dependencies for variable TUNE_PKGARCH changed from '{'DEFAULTTUNE', 'TUNE_PKGARCH_tune-corei7-64'}' to '{'TUNE_PKGARCH_tune-core2-64', 'DEFAULTTUNE'}' changed items: {'TUNE_PKGARCH_tune-core2-64', 'TUNE_PKGARCH_tune-corei7-64'} Dependency on variable TUNE_PKGARCH_tune-core2-64 was added Dependency on Variable TUNE_PKGARCH_tune-corei7-64 was removed Variable DEFAULTTUNE value changed from 'corei7-64' to 'core2-64' Signed-off-by: Patrick Ohly--- scripts/lib/compatlayer/__init__.py | 7 ++-- scripts/lib/compatlayer/cases/bsp.py | 54 - scripts/yocto-compat-layer.py| 20 +-- 3 files changed, 76 insertions(+), 5 deletions(-) diff --git a/scripts/lib/compatlayer/__init__.py b/scripts/lib/compatlayer/__init__.py index 6130b85..0d6f4e9 100644 --- a/scripts/lib/compatlayer/__init__.py +++ b/scripts/lib/compatlayer/__init__.py @@ -215,7 +215,7 @@ def check_command(error_msg, cmd): raise RuntimeError(msg) return output -def get_signatures(builddir, failsafe=False): +def get_signatures(builddir, failsafe=False, machine=None): import re # some recipes needs to be excluded like meta-world-pkgdata @@ -226,7 +226,10 @@ def get_signatures(builddir, failsafe=False): sigs = {} tune2tasks = {} -
[OE-core] [PATCH 3/5] yocto-compat-layer: include bitbake-diffsigs output
After filtering out potential false positives, it becomes feasible to include the output of bitbake-diffsigs for those tasks which definitely have a change. Depends on bitbake-diffsigs with the "--signature" parameter. Enhanced output now is: AssertionError: False is not true : Layer meta- changed 120 signatures, initial differences (first hash without, second with layer): gstreamer1.0-plugins-base:do_fetch: 76973f19f2e30d282152bdd7e4efe5bb -> e6e7c6fa9f2bd59d7d8d107f7c6ca1ac Task dependencies changed from: ['PV', 'SRCREV', 'SRC_URI', 'SRC_URI[md5sum]', 'SRC_URI[sha256sum]', 'base_do_fetch'] to: ['GST_IMX_PATCHES_TO_APPEND', 'PV', 'SRCREV', 'SRC_URI', 'SRC_URI[md5sum]', 'SRC_URI[sha256sum]', 'base_do_fetch'] basehash changed from d679d30bd1ea41c56e57419b57587f3c to 090a79b45f5fa26d10f9d34e2ed7a1e6 List of dependencies for variable SRC_URI changed from '{'PV', 'SRC_URI[md5sum]', 'SRC_URI[sha256sum]'}' to '{'GST_IMX_PATCHES_TO_APPEND', 'PV', 'SRC_URI[md5sum]', 'SRC_URI[sha256sum]'}' changed items: {'GST_IMX_PATCHES_TO_APPEND'} Dependency on variable GST_IMX_PATCHES_TO_APPEND was added Variable SRC_URI value changed: " http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz file://get-caps-from-src-pad-when-query-caps.patch file://0003-ssaparse-enhance-SSA-text-lines-parsing.patch file://0004-subparse-set-need_segment-after-sink-pad-received-GS.patch file://encodebin-Need-more-buffers-in-output-queue-for-bett.patch file://make-gio_unix_2_0-dependency-configurable.patch file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch file://0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch file://0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch file://0003-riff-add-missing-include-directories-when-calling-in.patch file://0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch [--] {+${GST_IMX_PATCHES_TO_APPEND}+}" pulseaudio:do_install: 6bb6fe23e11a6d5fef9c3a25e73e4f9c -> 3f54ea75673a792e307197cfa6ef2694 basehash changed from ac4efcfa783bd04a5a98a2c38719aedd to 37679d99623a37c8df955da3a01415a5 Variable do_install value changed: @@ -1,3 +1,7 @@ autotools_do_install install -d ${D}${sysconfdir}/default/volatiles install -m 0644 ${WORKDIR}/volatiles.04_pulse ${D}${sysconfdir}/default/volatiles/volatiles.04_pulse +if [ -e "${WORKDIR}/daemon.conf" ] && [ -e "${WORKDIR}/default.pa" ]; then +install -m 0644 ${WORKDIR}/daemon.conf ${D}${sysconfdir}/pulse/daemon.conf +install -m 0644 ${WORKDIR}/default.pa ${D}${sysconfdir}/pulse/default.pa +fi [YOCTO #11161] Signed-off-by: Patrick Ohly--- scripts/lib/compatlayer/cases/common.py | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/scripts/lib/compatlayer/cases/common.py b/scripts/lib/compatlayer/cases/common.py index b91da9b..6eb29c1 100644 --- a/scripts/lib/compatlayer/cases/common.py +++ b/scripts/lib/compatlayer/cases/common.py @@ -76,4 +76,14 @@ class CommonCompatLayer(OECompatLayerTestCase): (self.tc.layer['name'], len(sig_diff))) for diff in sorted(sig_diff_filtered): msg.append(' %s: %s -> %s' % diff) -self.assertTrue(False, '\n'.join(msg)) +try: +recipe, taskname = diff[0].rsplit(':', 1) +output = check_command('Determining signature difference failed.', + 'bitbake-diffsigs --task %s %s --signature %s %s' % + (recipe, taskname, diff[1], diff[2])).decode('utf-8') +except RuntimeError as error: +output = str(error) +if output: +msg.extend([' ' + line for line in output.splitlines()]) +msg.append('') +self.fail('\n'.join(msg)) -- git-series 0.9.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 4/5] yocto-compat-layer: also determine tune flags for each task
locked-sigs.inc groups tasks according to their tune flags (allarch, i586, etc.). Also retrieve that information while getting signatures, it will be needed to determine when setting a machine changes tasks that aren't machine-specific. Signed-off-by: Patrick Ohly--- scripts/lib/compatlayer/__init__.py | 9 - scripts/lib/compatlayer/cases/common.py | 2 +- scripts/yocto-compat-layer.py | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/scripts/lib/compatlayer/__init__.py b/scripts/lib/compatlayer/__init__.py index b46527a..6130b85 100644 --- a/scripts/lib/compatlayer/__init__.py +++ b/scripts/lib/compatlayer/__init__.py @@ -224,6 +224,7 @@ def get_signatures(builddir, failsafe=False): exclude_recipes = ('meta-world-pkgdata',) sigs = {} +tune2tasks = {} cmd = 'bitbake ' if failsafe: @@ -234,9 +235,14 @@ def get_signatures(builddir, failsafe=False): sigs_file = os.path.join(builddir, 'locked-sigs.inc') sig_regex = re.compile("^(?P.*:.*):(?P.*) .$") +tune_regex = re.compile("(^|\s)SIGGEN_LOCKEDSIGS_t-(?P\S*)\s*=\s*") +current_tune = None with open(sigs_file, 'r') as f: for line in f.readlines(): line = line.strip() +t = tune_regex.search(line) +if t: +current_tune = t.group('tune') s = sig_regex.match(line) if s: exclude = False @@ -249,11 +255,12 @@ def get_signatures(builddir, failsafe=False): continue sigs[s.group('task')] = s.group('hash') +tune2tasks.setdefault(current_tune, []).append(s.group('task')) if not sigs: raise RuntimeError('Can\'t load signatures from %s' % sigs_file) -return sigs +return (sigs, tune2tasks) def get_depgraph(targets=['world']): ''' diff --git a/scripts/lib/compatlayer/cases/common.py b/scripts/lib/compatlayer/cases/common.py index 6eb29c1..aa46984 100644 --- a/scripts/lib/compatlayer/cases/common.py +++ b/scripts/lib/compatlayer/cases/common.py @@ -33,7 +33,7 @@ class CommonCompatLayer(OECompatLayerTestCase): # task -> (old signature, new signature) sig_diff = {} -curr_sigs = get_signatures(self.td['builddir'], failsafe=True) +curr_sigs, _ = get_signatures(self.td['builddir'], failsafe=True) for task in self.td['sigs']: if task in curr_sigs and \ self.td['sigs'][task] != curr_sigs[task]: diff --git a/scripts/yocto-compat-layer.py b/scripts/yocto-compat-layer.py index 22c0c2d..2ebddb6 100755 --- a/scripts/yocto-compat-layer.py +++ b/scripts/yocto-compat-layer.py @@ -139,7 +139,7 @@ def main(): td['bbvars'] = get_bb_vars() logger.info('Getting initial signatures ...') td['builddir'] = builddir -td['sigs'] = get_signatures(td['builddir']) +td['sigs'], td['tunetasks'] = get_signatures(td['builddir']) if not add_layer(bblayersconf, layer, dep_layers, logger): logger.info('Skipping %s ???.' % layer['name']) -- git-series 0.9.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/5] yocto-compat-layer: fix also other command invocations
In commit 5b9ac62ab535d, one place was fixed where a command was invoked such that failures caused double stack traces and stderr was lost. The same problem also occurs elsewhere, triggered for example by a layer with parsing problems. Now a new utility method is used instead of repeating the code. Signed-off-by: Patrick Ohly--- scripts/lib/compatlayer/__init__.py | 23 --- scripts/lib/compatlayer/cases/common.py | 25 + 2 files changed, 21 insertions(+), 27 deletions(-) diff --git a/scripts/lib/compatlayer/__init__.py b/scripts/lib/compatlayer/__init__.py index 86f86eb..9eb862d 100644 --- a/scripts/lib/compatlayer/__init__.py +++ b/scripts/lib/compatlayer/__init__.py @@ -4,6 +4,7 @@ # Released under the MIT license (see COPYING.MIT) import os +import subprocess from enum import Enum class LayerType(Enum): @@ -199,8 +200,20 @@ def add_layer(bblayersconf, layer, layers, logger): return True +def check_command(error_msg, cmd): +''' +Run a command under a shell, capture stdout and stderr in a single stream, +throw an error when command returns non-zero exit code. Returns the output. +''' + +p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) +output, _ = p.communicate() +if p.returncode: +msg = "%s\nCommand: %s\nOutput:\n%s" % (error_msg, cmd, output.decode('utf-8')) +raise RuntimeError(msg) +return output + def get_signatures(builddir, failsafe=False): -import subprocess import re # some recipes needs to be excluded like meta-world-pkgdata @@ -214,12 +227,8 @@ def get_signatures(builddir, failsafe=False): if failsafe: cmd += '-k ' cmd += '-S none world' -p = subprocess.Popen(cmd, shell=True, - stdout=subprocess.PIPE, stderr=subprocess.STDOUT) -output, _ = p.communicate() -if p.returncode: -msg = "Generating signatures failed. This might be due to some parse error and/or general layer incompatibilities.\nCommand: %s\nOutput:\n%s" % (cmd, output.decode('utf-8')) -raise RuntimeError(msg) +check_command('Generating signatures failed. This might be due to some parse error and/or general layer incompatibilities.', + cmd) sigs_file = os.path.join(builddir, 'locked-sigs.inc') sig_regex = re.compile("^(?P.*:.*):(?P.*) .$") diff --git a/scripts/lib/compatlayer/cases/common.py b/scripts/lib/compatlayer/cases/common.py index 4d328ec..9cc682e 100644 --- a/scripts/lib/compatlayer/cases/common.py +++ b/scripts/lib/compatlayer/cases/common.py @@ -2,9 +2,8 @@ # Released under the MIT license (see COPYING.MIT) import os -import subprocess import unittest -from compatlayer import get_signatures, LayerType +from compatlayer import get_signatures, LayerType, check_command from compatlayer.case import OECompatLayerTestCase class CommonCompatLayer(OECompatLayerTestCase): @@ -20,26 +19,12 @@ class CommonCompatLayer(OECompatLayerTestCase): msg="Layer contains README file but is empty.") def test_parse(self): -try: -output = subprocess.check_output('bitbake -p', shell=True, -stderr=subprocess.PIPE) -except subprocess.CalledProcessError as e: -import traceback -exc = traceback.format_exc() -msg = 'Layer %s failed to parse.\n%s\n%s\n' % (self.tc.layer['name'], -exc, e.output.decode('utf-8')) -raise RuntimeError(msg) +check_command('Layer %s failed to parse.' % self.tc.layer['name'], + 'bitbake -p') def test_show_environment(self): -try: -output = subprocess.check_output('bitbake -e', shell=True, -stderr=subprocess.PIPE) -except subprocess.CalledProcessError as e: -import traceback -exc = traceback.format_exc() -msg = 'Layer %s failed to show environment.\n%s\n%s\n' % \ -(self.tc.layer['name'], exc, e.output.decode('utf-8')) -raise RuntimeError(msg) +check_command('Layer %s failed to show environment.' % self.tc.layer['name'], + 'bitbake -e') def test_signatures(self): if self.tc.layer['type'] == LayerType.SOFTWARE: -- git-series 0.9.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 2/5] yocto-compat-layer: limit report of signature changes
Typically a single change cascades through the entire task dependency chain. Developers had to figure that out themselves, based on hard to read and interpret output (not sorted, no indention, no explanations): $ yocto-compat-layer.py -n meta- ... AssertionError: True is not false : Layer meta- changed signatures. webkitgtk:do_install changed fe2edc9082bc0da98f9cb1391c52f565 -> b3a44684c5cd9aacd3f7c6ed88eefab5 gstreamer1.0-plugins-good:do_configure changed 3b2f8211be3fe08422bf6087f3af16d1 -> 7d80e42fa1f4f01ff4dfe2ea4477d382 pulseaudio:do_package_qa changed 5d0a58ada66ff17f5576555302ac319a -> 0e13bcb96143d1ae54c451bc3de0aa30 epiphany:do_prepare_recipe_sysroot changed 29e1b277dbcb005bd54950594c50d91b -> d3c45527b37677a0668ce483c6db3052 ... gst-player:do_packagedata changed 9ce6efdd357dd74919bc4957458b1e95 -> d0c083ce629f37adfc9c4ba9eff81f83 gstreamer1.0-plugins-base:do_install changed 1161cd867d15bea63e5dd5d9abf0519c -> 5bf2b652a2d77fee3eedb35af2f201a0 gstreamer1.0-rtsp-server:do_packagedata changed 6781dc3070f80b843ed1970d74dd323e -> 454620c2e3b9fea87e525d14b6ed0344 alsa-plugins:do_packagedata changed 1808c3f737cb805b169d004e948ea19c -> 480124b7fa5eab1f73bf96440d725231 Now the tool automates the problem analysis: it retrieves the depgraph using the tinfoil API and only reports those tasks with modified signatures whose dependencies have not changed, i.e. those tasks which definitely introduce a change. >From the previous example, that just leaves two tasks that need to be checked: AssertionError: False is not true : Layer meta- changed 120 signatures, initial differences (first hash without, second with layer): gstreamer1.0-plugins-base:do_fetch: 76973f19f2e30d282152bdd7e4efe5bb -> e6e7c6fa9f2bd59d7d8d107f7c6ca1ac pulseaudio:do_install: 668eb1e30af129df9806b0aa0d7c10cd -> 1196bdb88eef564613bb06b9387e This pruning might be a bit too aggressive in the sense that tasks which inherit a change and then add more changes themselves won't be reported initially. They will be found when fixing the reported tasks and re-running the check. For a developer it seems better to have something listed which definitely is a problem and needs fixing instead of everything, including the tasks which don't need fixes. Signed-off-by: Patrick Ohly--- scripts/lib/compatlayer/__init__.py | 32 +++- scripts/lib/compatlayer/cases/common.py | 54 +++--- 2 files changed, 73 insertions(+), 13 deletions(-) diff --git a/scripts/lib/compatlayer/__init__.py b/scripts/lib/compatlayer/__init__.py index 9eb862d..b46527a 100644 --- a/scripts/lib/compatlayer/__init__.py +++ b/scripts/lib/compatlayer/__init__.py @@ -7,6 +7,8 @@ import os import subprocess from enum import Enum +import bb.tinfoil + class LayerType(Enum): BSP = 0 DISTRO = 1 @@ -252,3 +254,33 @@ def get_signatures(builddir, failsafe=False): raise RuntimeError('Can\'t load signatures from %s' % sigs_file) return sigs + +def get_depgraph(targets=['world']): +''' +Returns the dependency graph for the given target(s). +The dependency graph is taken directly from DepTreeEvent. +''' +depgraph = None +with bb.tinfoil.Tinfoil() as tinfoil: +tinfoil.prepare(config_only=False) +tinfoil.set_event_mask(['bb.event.NoProvider', 'bb.event.DepTreeGenerated', 'bb.command.CommandCompleted']) +if not tinfoil.run_command('generateDepTreeEvent', targets, 'do_build'): +raise RuntimeError('starting generateDepTreeEvent failed') +while True: +event = tinfoil.wait_event(timeout=1000) +if event: +if isinstance(event, bb.command.CommandFailed): +raise RuntimeError('Generating dependency information failed: %s' % event.error) +elif isinstance(event, bb.command.CommandCompleted): +break +elif isinstance(event, bb.event.NoProvider): +if event._reasons: +raise RuntimeError('Nothing provides %s: %s' % (event._item, event._reasons)) +else: +raise RuntimeError('Nothing provides %s.' % (event._item)) +elif isinstance(event, bb.event.DepTreeGenerated): +depgraph = event._depgraph + +if depgraph is None: +raise RuntimeError('Could not retrieve the depgraph.') +return depgraph diff --git a/scripts/lib/compatlayer/cases/common.py b/scripts/lib/compatlayer/cases/common.py index 9cc682e..b91da9b 100644 --- a/scripts/lib/compatlayer/cases/common.py +++ b/scripts/lib/compatlayer/cases/common.py @@ -3,7 +3,7 @@ import os import unittest -from compatlayer import get_signatures, LayerType, check_command +from compatlayer import get_signatures, LayerType, check_command, get_depgraph from compatlayer.case import
[OE-core] [PATCH 0/5] [RFC] yocto-compat-layer: various enhancements + bitbake-diffsigs support
I started applying yocto-compat-layer to some real BSP layers and ran into some usability issues with the tool. I also didn't want to do the root cause analysis manually, so I automated the dependency analysis and the running of bitbake-diffsigs. This patch series is based on Mark's "yocto-compat-layer.py updates" series. The last commit depends on Paul's "bitbake-diffsigs: add an option to find and compare specific signatures" patch from http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=paule/sigstuff=5bb69edfb4bbaa7373061daeb4f233a7e2f43a43 Regarding the BSP example that I ended up using: it actually was one of the better BSP layers and only had one problem in a "bitbake world" build instead of several as in other BSP layers. Nevertheless I obscured the name to protect the (not so) guilty in the commit messages ;-} The two changes that show up in test_signatures look harmless at first glance, but probably would need to be done differently to avoid a false positive when doing the signature check. V2: - use self.fail() instead of self.assertTrue(False, ...) - test_machine_signatures check (work in progress) Patrick Ohly (5): yocto-compat-layer: fix also other command invocations yocto-compat-layer: limit report of signature changes yocto-compat-layer: include bitbake-diffsigs output yocto-compat-layer: also determine tune flags for each task yocto-compat-layer: test signature differences when setting MACHINE scripts/lib/compatlayer/__init__.py | 71 ++--- scripts/lib/compatlayer/cases/bsp.py| 54 +++- scripts/lib/compatlayer/cases/common.py | 89 -- scripts/yocto-compat-layer.py | 22 +- 4 files changed, 189 insertions(+), 47 deletions(-) base-commit: 719f6ff68135dc2ad143c8572c8321974f6a3357 -- git-series 0.9.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] ✗ patchtest: failure for Set linux-firmware to correct license
On Fri, 2017-04-07 at 10:32 +, Patchwork wrote: > == Series Details == > > Series: Set linux-firmware to correct license > Revision: 1 > URL : https://patchwork.openembedded.org/series/6226/ > State : failure > > == Summary == > > > Thank you for submitting this patch series to OpenEmbedded Core. This is > an automated response. Several tests have been executed on the proposed > series by patchtest resulting in the following failures: > patchtest is complaining because you are including this patch on your series [OE-core] [PATCH 1/4] bitbake: fetch2: Do not fail to create symbolic links if they already exist and it is already merged. > > > * Issue Series does not apply on top of target branch > [test_series_merge_on_head] > Suggested fixRebase your series on top of targeted branch > Targeted branch master (currently at 901659a51c) > > > > If you believe any of these test results are incorrect, please reply to the > mailing list (openembedded-core@lists.openembedded.org) raising your concerns. > Otherwise we would appreciate you correcting the issues and submitting a new > version of the patchset if applicable. Please ensure you add/increment the > version number when sending the new version (i.e. [PATCH] -> [PATCH v2] -> > [PATCH v3] -> ...). > > --- > Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest > Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe > -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] selftest/recipetool: skip create_git in case x11 feature is not present
On Fri, 2017-04-07 at 08:57 +0300, Jussi Kukkonen wrote: > > > On 6 April 2017 at 19:41,> wrote: > From: Leonardo Sandoval > > > The unit test requires x11 as distro feature, otherwise it > will fail > while building the test requirements. > > > How about changing the test recipe to something non-x11 instead? > Yes, but at this point of the release, I do not think it is a good idea. There was another case on the devtool's selftest where the target was quite complex for a poky-tiny distro, but again, it requires time to redo the test and this is not the perfect time frame. > > [YOCTO #10903] > > Signed-off-by: Leonardo Sandoval > > --- > meta/lib/oeqa/selftest/recipetool.py | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/meta/lib/oeqa/selftest/recipetool.py > b/meta/lib/oeqa/selftest/recipetool.py > index d47b9dd..7bfb02f 100644 > --- a/meta/lib/oeqa/selftest/recipetool.py > +++ b/meta/lib/oeqa/selftest/recipetool.py > @@ -382,6 +382,8 @@ class RecipetoolTests(RecipetoolBase): > > @testcase(1194) > def test_recipetool_create_git(self): > +if 'x11' not in get_bb_var('DISTRO_FEATURES'): > +self.skipTest('Test requires x11 as distro > feature') > # Ensure we have the right data in shlibs/pkgdata > bitbake('libpng pango libx11 libxext jpeg libcheck') > # Try adding a recipe > -- > 2.10.2 > > -- > ___ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core > > -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 0/2] Fixes for building on Fedora 26 (Alpha)
On Fri, Apr 7, 2017 at 7:02 AM, Christopher Larsonwrote: > > > On Thu, Apr 6, 2017 at 6:23 AM, Joshua Lock wrote: >> >> As Fedora 26 has a new gcc [1] and a new system pkg-config implementation >> [2] I >> wanted to do some testing on that host OS so that we might be able to get >> some >> fixes in before Pyro/2.3 is released. >> >> The following series were the only changes required to start building (I >> have >> tested core-image-minimal, core-image-base and core-image-sato) on Fedora >> 26. >> >> 1. https://fedoraproject.org/wiki/Changes/GCC7 >> 2. >> https://fedoraproject.org/wiki/Changes/pkgconf_as_system_pkg-config_implementation > > > Quite interesting. I started poking at pkgconf a while back — > https://github.com/kergoth/meta-kergoth-wip/tree/master/meta-pkgconf. Thanks Chris, I think this is almost there then a little bit of rework and proposal for 2.4. I think you should own this feature for next release if you have time. > -- > Christopher Larson > kergoth at gmail dot com > Founder - BitBake, OpenEmbedded, OpenZaurus > Senior Software Engineer, Mentor Graphics > > -- > ___ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core > -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] scripts/rpm2cpio.sh -- master version
The change to the rpm4 version of rpm2cpio.sh has triggered a problem on a few of our older build machines. Specifically: dd: invalid input flag: `skip_bytes' Try `dd --help' for more information. I was doing some investigation, and the line causing the issue is: dd if="$pkg" skip="$o" iflag=skip_bytes status=none $* The old code did the same thing using: dd if=$pkg ibs=$o skip=1" 2>/dev/null It appears that 'iflag' is GNU specific. Generally not a big deal, but the specific flag 'skip_bytes' is new with in the last couple years. The code is almost not supported on non-GNU systems, so could pose problems on non-Linux hosts [not a problem today]. I'm wondering if we should look at modifying this script to use the older style for better compatibility with older hosts? --Mark -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 0/2] Fixes for building on Fedora 26 (Alpha)
On Thu, Apr 6, 2017 at 6:23 AM, Joshua Lockwrote: > As Fedora 26 has a new gcc [1] and a new system pkg-config implementation > [2] I > wanted to do some testing on that host OS so that we might be able to get > some > fixes in before Pyro/2.3 is released. > > The following series were the only changes required to start building (I > have > tested core-image-minimal, core-image-base and core-image-sato) on Fedora > 26. > > 1. https://fedoraproject.org/wiki/Changes/GCC7 > 2. https://fedoraproject.org/wiki/Changes/pkgconf_as_system_pkg-config_ > implementation Quite interesting. I started poking at pkgconf a while back — https://github.com/kergoth/meta-kergoth-wip/tree/master/meta-pkgconf. -- Christopher Larson kergoth at gmail dot com Founder - BitBake, OpenEmbedded, OpenZaurus Senior Software Engineer, Mentor Graphics -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v2] python-pycurl: create python3-pycurl recipe
The python-pycurl recipe can be used with python2 only even though python3 is officially supported by upstream. Create python3-pycurl recipe enabling the pycurl module for python3. Signed-off-by: Dmitry Rozhkov--- Changes in v2: - redefine SECURITY_CFLAGS for python3-pycurl to drop PIE cflag. Otherwise poky-lsb builds fail. meta/conf/distro/include/security_flags.inc| 1 + meta/recipes-devtools/python/python-pycurl.inc | 31 + .../python/python-pycurl_7.21.5.bb | 32 +- .../python/python3-pycurl_7.21.5.bb| 5 4 files changed, 38 insertions(+), 31 deletions(-) create mode 100644 meta/recipes-devtools/python/python-pycurl.inc create mode 100644 meta/recipes-devtools/python/python3-pycurl_7.21.5.bb diff --git a/meta/conf/distro/include/security_flags.inc b/meta/conf/distro/include/security_flags.inc index 6df1842..e162abe 100644 --- a/meta/conf/distro/include/security_flags.inc +++ b/meta/conf/distro/include/security_flags.inc @@ -76,6 +76,7 @@ SECURITY_CFLAGS_pn-python-pycurl = "${SECURITY_NO_PIE_CFLAGS}" SECURITY_CFLAGS_pn-python-numpy = "${SECURITY_NO_PIE_CFLAGS}" SECURITY_CFLAGS_pn-python3-numpy = "${SECURITY_NO_PIE_CFLAGS}" SECURITY_CFLAGS_pn-python3-pycairo = "${SECURITY_NO_PIE_CFLAGS}" +SECURITY_CFLAGS_pn-python3-pycurl = "${SECURITY_NO_PIE_CFLAGS}" SECURITY_CFLAGS_pn-python3-pygpgme = "${SECURITY_NO_PIE_CFLAGS}" SECURITY_CFLAGS_pn-python3 = "${SECURITY_NO_PIE_CFLAGS}" SECURITY_CFLAGS_pn-syslinux = "${SECURITY_NO_PIE_CFLAGS}" diff --git a/meta/recipes-devtools/python/python-pycurl.inc b/meta/recipes-devtools/python/python-pycurl.inc new file mode 100644 index 000..d26318b --- /dev/null +++ b/meta/recipes-devtools/python/python-pycurl.inc @@ -0,0 +1,31 @@ +SUMMARY = "Python bindings for libcurl" +HOMEPAGE = "http://pycurl.sourceforge.net/; +SECTION = "devel/python" +LICENSE = "LGPLv2.1+ | MIT" +LIC_FILES_CHKSUM = "file://README.rst;beginline=166;endline=182;md5=a84a1caa65b89d4584b693d3680062fb \ +file://COPYING-LGPL;md5=3579a9fd0221d49a237aaa33492f988c \ +file://COPYING-MIT;md5=b7e434aeb228ed731c00bcf177e79b19" + +DEPENDS = "curl ${PYTHON_PN}" +RDEPENDS_${PN} = "${PYTHON_PN}-core curl" +SRCNAME = "pycurl" + +SRC_URI = "\ + http://${SRCNAME}.sourceforge.net/download/${SRCNAME}-${PV}.tar.gz;name=archive \ + file://no-static-link.patch \ +" + +SRC_URI[archive.md5sum] = "bca7bf47320082588db544ced2ba8717" +SRC_URI[archive.sha256sum] = "8a1e0eb55573388275a1d6c2534ca4cfca5d7fa772b99b505c08fa149b27aed0" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +BBCLASSEXTEND = "native" + +# Ensure the docstrings are generated as make clean will remove them +do_compile_prepend() { + ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py docstrings +} + +do_install_append() { + rm -rf ${D}${datadir}/share +} diff --git a/meta/recipes-devtools/python/python-pycurl_7.21.5.bb b/meta/recipes-devtools/python/python-pycurl_7.21.5.bb index 7b41f6d..eb70cea 100644 --- a/meta/recipes-devtools/python/python-pycurl_7.21.5.bb +++ b/meta/recipes-devtools/python/python-pycurl_7.21.5.bb @@ -1,33 +1,3 @@ -SUMMARY = "Python bindings for libcurl" -HOMEPAGE = "http://pycurl.sourceforge.net/; -SECTION = "devel/python" -LICENSE = "LGPLv2.1+ | MIT" -LIC_FILES_CHKSUM = "file://README.rst;beginline=166;endline=182;md5=a84a1caa65b89d4584b693d3680062fb \ -file://COPYING-LGPL;md5=3579a9fd0221d49a237aaa33492f988c \ -file://COPYING-MIT;md5=b7e434aeb228ed731c00bcf177e79b19" - -DEPENDS = "curl python" -RDEPENDS_${PN} = "python-core curl" -SRCNAME = "pycurl" - -SRC_URI = "\ - http://${SRCNAME}.sourceforge.net/download/${SRCNAME}-${PV}.tar.gz;name=archive \ - file://no-static-link.patch \ -" - -SRC_URI[archive.md5sum] = "bca7bf47320082588db544ced2ba8717" -SRC_URI[archive.sha256sum] = "8a1e0eb55573388275a1d6c2534ca4cfca5d7fa772b99b505c08fa149b27aed0" -S = "${WORKDIR}/${SRCNAME}-${PV}" +require python-pycurl.inc inherit distutils - -BBCLASSEXTEND = "native" - -# Ensure the docstrings are generated as make clean will remove them -do_compile_prepend() { - ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py docstrings -} - -do_install_append() { - rm -rf ${D}${datadir}/share -} diff --git a/meta/recipes-devtools/python/python3-pycurl_7.21.5.bb b/meta/recipes-devtools/python/python3-pycurl_7.21.5.bb new file mode 100644 index 000..5d11192 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pycurl_7.21.5.bb @@ -0,0 +1,5 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/python-pycurl:" + +require python-pycurl.inc + +inherit distutils3 -- 2.9.3 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] openssl: Fix symlink creation
On Fri, Apr 07, 2017 at 02:27:45PM +0200, David Vincent wrote: > On jeudi 6 avril 2017 15:03:36 CEST Martin Jansa wrote: > > I still don't understand why not use standard update-alternatives and > > install another package with your favorite openssl.conf which has higher > > ALTERNATIVE_PRIORITY. > > Why not, but maybe this https://bugzilla.yoctoproject.org/show_bug.cgi? > id=10777 can be a stopper since libcrypto RRECOMMENDS openssl-conf Why would it be a stopper? With u-a you can have any number of the u-a alternative providers installed in the image at the same time. > > This way u-a will switch to new config even when you just install the > > package which require it on the target later and will switch back to > > default openssl.conf when the alternative package with config file is > > uninstalled. > > > > On Thu, Apr 6, 2017 at 12:55 PM, Jussi Kukkonen> >> So previously openssl-conf package included etc/ssl/openssl.cnf and the > >> symlink ${libdir}/ssl/openssl.conf. > > The symlink is not inside openssl-conf package but rather inside openssl. > > >> Nothing RDEPENDS on this package (but > >> libcrypto RRECOMMENDS it). > >> > >> After your patch the actual configuration file is still installed. In a > >> postinst > >> > >> * ${libdir}/ssl/openssl.conf is removed if it exists (why? If it's for > >> upgrading, then this should happen in a prerm or postrm) > >> * the symlink ${libdir}/ssl/openssl.conf is created > >> > >> My confusion is this: how does the above solve the problem you describe? > >> If you've managed to use RCONFLICTS to prevent the configuration package > >> from getting included in the image, why are changes to the package needed? > >> > > To avoid creation of the symlink inside openssl package. But I agree for the > postrm/prerm tasks instead of postinst. > > >> > >> Some alternative solutions to your problem I think might work: > >> * openssl_%.bbappend with a do_install_append() that simply copies your > >> conf file over the one from upstream recipe. No extra packages needed > >> * BAD_RECOMMENDATIONS or PACKAGE_EXCLUDE to prevent openssl-conf from > >> getting included in your image, then adding your own package with your > >> configuration (does not work for dpkg I think) > >> > > I could consider this if the patch gets reverted, but I still prefer using > extra packages. It's easier this way to know which configuration has been > applied (but update-alternatives could work too). > > TBH, I say that because I've submitted a similar series of patches for > openssh > based on the same principle. I think my main problem is the handling of > configuration files at build time. This holds especially true for read-only > rootfs where these files must be available at build time. Is there guidelines > for that ? > > >> Jussi > >> > >> -- > >> ___ > >> Openembedded-core mailing list > >> Openembedded-core@lists.openembedded.org > >> http://lists.openembedded.org/mailman/listinfo/openembedded-core > > David -- Martin 'JaMa' Jansa jabber: martin.ja...@gmail.com signature.asc Description: Digital signature -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 4/4] native.bbclass: Use fixed DISTRO_FEATURES
On 7 April 2017 at 15:13, Richard Purdiewrote: > > > Also, one question. Does this have any effect on qemu-native? Does > > > qemu-native need/use x11 today? > > qemu itself does not use anything x11 since last year and the default > > native packageconfig is already not > > dependent on distro features. > > > > Now that you mentioned I had a closer look at qemu & SDL: > > * qemu-native doesn't build with "sdl" by default, but someone might > > change that of course > > * If that happens (and libsdl-native is not in ASSUME_PROVIDED), > > libsdl is built and by default depends on libx11 > > I completely expected this to fail now (without x11 in distro > > features) but it actually builds just fine. It turns out that a > > clever Burton has tweaked > > REQUIRED_DISTRO_FEATURES_class-native for some X libraries for > > exactly this purpose already. > > Right, we actually have a commented section for sdl and qemu in our > local.conf.sample so we do need to test and figure this piece out. > > Would we want to put x11 in the default native distro flags to avoid > some of the other issues above? I don't see issues that need fixing right now: libx11-native and some other native X libraries build just fine without "x11" feature because of the tweaks I mentioned. So building libsdl-native with "x11" packageconfig works. Did I miss something else? Jussi -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] openssl: Fix symlink creation
On 7 April 2017 at 15:27, David Vincentwrote: > > On jeudi 6 avril 2017 15:03:36 CEST Martin Jansa wrote: > > I still don't understand why not use standard update-alternatives and > > install another package with your favorite openssl.conf which has higher > > ALTERNATIVE_PRIORITY. > > Why not, but maybe this https://bugzilla.yoctoproject.org/show_bug.cgi? > id=10777 can be a stopper since libcrypto RRECOMMENDS openssl-conf > > > This way u-a will switch to new config even when you just install the > > package which require it on the target later and will switch back to > > default openssl.conf when the alternative package with config file is > > uninstalled. > > > > On Thu, Apr 6, 2017 at 12:55 PM, Jussi Kukkonen < jussi.kukko...@intel.com> > >> So previously openssl-conf package included etc/ssl/openssl.cnf and the > >> symlink ${libdir}/ssl/openssl.conf. > > The symlink is not inside openssl-conf package but rather inside openssl. Right. > >> Nothing RDEPENDS on this package (but > >> libcrypto RRECOMMENDS it). > >> > >> After your patch the actual configuration file is still installed. In a > >> postinst > >> > >> * ${libdir}/ssl/openssl.conf is removed if it exists (why? If it's for > >> upgrading, then this should happen in a prerm or postrm) > >> * the symlink ${libdir}/ssl/openssl.conf is created > >> > >> My confusion is this: how does the above solve the problem you describe? > >> If you've managed to use RCONFLICTS to prevent the configuration package > >> from getting included in the image, why are changes to the package needed? > >> > > To avoid creation of the symlink inside openssl package. I'm really not trying to be difficult but ... that still doesn't help me understand your reasons at all and I think I need to if I want to fix the current issue. Could you please explain what your other configuration recipe does and what files it contains, how you switch between the two and why the symlink in a postinstall works for you but an installed symlink does not. Thank you, Jussi -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] openssl: Fix symlink creation
On jeudi 6 avril 2017 15:03:36 CEST Martin Jansa wrote: > I still don't understand why not use standard update-alternatives and > install another package with your favorite openssl.conf which has higher > ALTERNATIVE_PRIORITY. Why not, but maybe this https://bugzilla.yoctoproject.org/show_bug.cgi? id=10777 can be a stopper since libcrypto RRECOMMENDS openssl-conf > This way u-a will switch to new config even when you just install the > package which require it on the target later and will switch back to > default openssl.conf when the alternative package with config file is > uninstalled. > > On Thu, Apr 6, 2017 at 12:55 PM, Jussi Kukkonen>> So previously openssl-conf package included etc/ssl/openssl.cnf and the >> symlink ${libdir}/ssl/openssl.conf. The symlink is not inside openssl-conf package but rather inside openssl. >> Nothing RDEPENDS on this package (but >> libcrypto RRECOMMENDS it). >> >> After your patch the actual configuration file is still installed. In a >> postinst >> >> * ${libdir}/ssl/openssl.conf is removed if it exists (why? If it's for >> upgrading, then this should happen in a prerm or postrm) >> * the symlink ${libdir}/ssl/openssl.conf is created >> >> My confusion is this: how does the above solve the problem you describe? >> If you've managed to use RCONFLICTS to prevent the configuration package >> from getting included in the image, why are changes to the package needed? >> To avoid creation of the symlink inside openssl package. But I agree for the postrm/prerm tasks instead of postinst. >> >> Some alternative solutions to your problem I think might work: >> * openssl_%.bbappend with a do_install_append() that simply copies your >> conf file over the one from upstream recipe. No extra packages needed >> * BAD_RECOMMENDATIONS or PACKAGE_EXCLUDE to prevent openssl-conf from >> getting included in your image, then adding your own package with your >> configuration (does not work for dpkg I think) >> I could consider this if the patch gets reverted, but I still prefer using extra packages. It's easier this way to know which configuration has been applied (but update-alternatives could work too). TBH, I say that because I've submitted a similar series of patches for openssh based on the same principle. I think my main problem is the handling of configuration files at build time. This holds especially true for read-only rootfs where these files must be available at build time. Is there guidelines for that ? >> Jussi >> >> -- >> ___ >> Openembedded-core mailing list >> Openembedded-core@lists.openembedded.org >> http://lists.openembedded.org/mailman/listinfo/openembedded-core David -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 4/4] native.bbclass: Use fixed DISTRO_FEATURES
On Fri, 2017-04-07 at 14:59 +0300, Jussi Kukkonen wrote: > On 7 April 2017 at 11:28, Richard Purdieion.org> wrote: > > On Fri, 2017-04-07 at 09:09 +0300, Jussi Kukkonen wrote: > > > There seems to be no advantage to letting distro features affect > > > native builds. There is a significant disadvantage: a change to > > > DISTRO_FEATURES will trigger a lot of unnecessary native tasks. > > In a > > > test like this: > > > $ bitbake core-image-minimal > > > # append " systemd" to DISTRO_FEATURES > > > $ bitbake core-image-minimal > > > The latter build takes 44 minutes (28%) of cpu-time less with > > this > > > patch (skipping 135 native tasks). Sadly wall clock time was not > > > affected as glibc remains the bottleneck. > > > > > > Set DISTRO_FEATURES to a fixed value for native recipes to avoid > > the > > > unnecessary tasks: currently the default value is empty. > > > > > > Do the variable setting in native_virtclass_handler() because > > > otherwise > > > it could still be overridden by appends and the feature > > backfilling. > > > Shuffle the early returns so DISTRO_FEATURES gets set as long as > > > the packagename ends with "-native". > > > > > > Signed-off-by: Jussi Kukkonen > > > --- > > > meta/classes/native.bbclass | 12 > > > meta/conf/bitbake.conf | 2 ++ > > > 2 files changed, 10 insertions(+), 4 deletions(-) > > > > > > diff --git a/meta/classes/native.bbclass > > > b/meta/classes/native.bbclass > > > index 1919fbc..fbca4c6 100644 > > > --- a/meta/classes/native.bbclass > > > +++ b/meta/classes/native.bbclass > > > @@ -121,14 +121,18 @@ PATH_prepend = "${COREBASE}/scripts/native- > > > intercept:" > > > SSTATE_SCAN_CMD ?= "${SSTATE_SCAN_CMD_NATIVE}" > > > > > > python native_virtclass_handler () { > > > -classextend = e.data.getVar('BBCLASSEXTEND') or "" > > > -if "native" not in classextend: > > > -return > > > - > > > pn = e.data.getVar("PN") > > > if not pn.endswith("-native"): > > > return > > > > > > +# Set features here to prevent appends and distro features > > > backfill > > > +# from modifying native distro features > > > +d.setVar("DISTRO_FEATURES", "${NATIVE_DISTRO_FEATURES}") > > > + > > > +classextend = e.data.getVar('BBCLASSEXTEND') or "" > > > +if "native" not in classextend: > > > +return > > > + > > > def map_dependencies(varname, d, suffix = ""): > > > if suffix: > > > varname = varname + "_" + suffix > > > diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf > > > index 5e98d45..78a3470 100644 > > > --- a/meta/conf/bitbake.conf > > > +++ b/meta/conf/bitbake.conf > > > @@ -789,6 +789,8 @@ MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= "" > > > EXTRA_IMAGE_FEATURES ??= "" > > > IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}" > > > > > > +NATIVE_DISTRO_FEATURES ?= "" > > > + > > > DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit bluez5 gobject- > > > introspection-data ldconfig" > > > MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode" > > > > Thanks for working on this, looks good. > > > > Most native variables are called XXX_NATIVE, not NATIVE_XXX so we > > might > > want to make this match? > Will do. > > > Also, one question. Does this have any effect on qemu-native? Does > > qemu-native need/use x11 today? > qemu itself does not use anything x11 since last year and the default > native packageconfig is already not > dependent on distro features. > > Now that you mentioned I had a closer look at qemu & SDL: > * qemu-native doesn't build with "sdl" by default, but someone might > change that of course > * If that happens (and libsdl-native is not in ASSUME_PROVIDED), > libsdl is built and by default depends on libx11 > I completely expected this to fail now (without x11 in distro > features) but it actually builds just fine. It turns out that a > clever Burton has tweaked > REQUIRED_DISTRO_FEATURES_class-native for some X libraries for > exactly this purpose already. Right, we actually have a commented section for sdl and qemu in our local.conf.sample so we do need to test and figure this piece out. Would we want to put x11 in the default native distro flags to avoid some of the other issues above? Cheers, Richard -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 4/4] native.bbclass: Use fixed DISTRO_FEATURES
On 7 April 2017 at 11:28, Richard Purdiewrote: > On Fri, 2017-04-07 at 09:09 +0300, Jussi Kukkonen wrote: > > There seems to be no advantage to letting distro features affect > > native builds. There is a significant disadvantage: a change to > > DISTRO_FEATURES will trigger a lot of unnecessary native tasks. In a > > test like this: > > $ bitbake core-image-minimal > > # append " systemd" to DISTRO_FEATURES > > $ bitbake core-image-minimal > > The latter build takes 44 minutes (28%) of cpu-time less with this > > patch (skipping 135 native tasks). Sadly wall clock time was not > > affected as glibc remains the bottleneck. > > > > Set DISTRO_FEATURES to a fixed value for native recipes to avoid the > > unnecessary tasks: currently the default value is empty. > > > > Do the variable setting in native_virtclass_handler() because > > otherwise > > it could still be overridden by appends and the feature backfilling. > > Shuffle the early returns so DISTRO_FEATURES gets set as long as > > the packagename ends with "-native". > > > > Signed-off-by: Jussi Kukkonen > > --- > > meta/classes/native.bbclass | 12 > > meta/conf/bitbake.conf | 2 ++ > > 2 files changed, 10 insertions(+), 4 deletions(-) > > > > diff --git a/meta/classes/native.bbclass > > b/meta/classes/native.bbclass > > index 1919fbc..fbca4c6 100644 > > --- a/meta/classes/native.bbclass > > +++ b/meta/classes/native.bbclass > > @@ -121,14 +121,18 @@ PATH_prepend = "${COREBASE}/scripts/native- > > intercept:" > > SSTATE_SCAN_CMD ?= "${SSTATE_SCAN_CMD_NATIVE}" > > > > python native_virtclass_handler () { > > -classextend = e.data.getVar('BBCLASSEXTEND') or "" > > -if "native" not in classextend: > > -return > > - > > pn = e.data.getVar("PN") > > if not pn.endswith("-native"): > > return > > > > +# Set features here to prevent appends and distro features > > backfill > > +# from modifying native distro features > > +d.setVar("DISTRO_FEATURES", "${NATIVE_DISTRO_FEATURES}") > > + > > +classextend = e.data.getVar('BBCLASSEXTEND') or "" > > +if "native" not in classextend: > > +return > > + > > def map_dependencies(varname, d, suffix = ""): > > if suffix: > > varname = varname + "_" + suffix > > diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf > > index 5e98d45..78a3470 100644 > > --- a/meta/conf/bitbake.conf > > +++ b/meta/conf/bitbake.conf > > @@ -789,6 +789,8 @@ MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= "" > > EXTRA_IMAGE_FEATURES ??= "" > > IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}" > > > > +NATIVE_DISTRO_FEATURES ?= "" > > + > > DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit bluez5 gobject- > > introspection-data ldconfig" > > MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode" > > Thanks for working on this, looks good. > > Most native variables are called XXX_NATIVE, not NATIVE_XXX so we might > want to make this match? > Will do. > Also, one question. Does this have any effect on qemu-native? Does > qemu-native need/use x11 today? > qemu itself does not use anything x11 since last year and the default native packageconfig is already not dependent on distro features. Now that you mentioned I had a closer look at qemu & SDL: * qemu-native doesn't build with "sdl" by default, but someone might change that of course * If that happens (and libsdl-native is not in ASSUME_PROVIDED), libsdl is built and by default depends on libx11 I completely expected this to fail now (without x11 in distro features) but it actually builds just fine. It turns out that a clever Burton has tweaked REQUIRED_DISTRO_FEATURES_class-native for some X libraries for exactly this purpose already. Jussi -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 3/3] scripts/oe-build-perf-report: improve guessing of args
Search remote branches, too, when finding the latest commit. Signed-off-by: Markus Lehtonen--- scripts/oe-build-perf-report | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/oe-build-perf-report b/scripts/oe-build-perf-report index 6f2db49d5c..ced5ff2e12 100755 --- a/scripts/oe-build-perf-report +++ b/scripts/oe-build-perf-report @@ -380,7 +380,7 @@ def auto_args(repo, args): """Guess arguments, if not defined by the user""" # Get the latest commit in the repo log.debug("Guessing arguments from the latest commit") -msg = repo.run_cmd(['log', '-1', '--branches', '--format=%b']) +msg = repo.run_cmd(['log', '-1', '--branches', '--remotes', '--format=%b']) for line in msg.splitlines(): split = line.split(':', 1) if len(split) != 2: -- 2.12.0 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 0/3] Fixes to build perf test reporting
Three miscellaneous one-liners fixing minor issues in build performance test reporting scripts. Markus Lehtonen (3): build-perf-test-wrapper.sh: support extra args for email script oe-build-perf-report-email.py: use proper fallback email address scripts/oe-build-perf-report: improve guessing of args scripts/contrib/build-perf-test-wrapper.sh| 2 +- scripts/contrib/oe-build-perf-report-email.py | 4 +++- scripts/oe-build-perf-report | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) -- 2.12.0 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 2/3] oe-build-perf-report-email.py: use proper fallback email address
Use properly formatted fallback email address instead of just the username. Signed-off-by: Markus Lehtonen--- scripts/contrib/oe-build-perf-report-email.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/contrib/oe-build-perf-report-email.py b/scripts/contrib/oe-build-perf-report-email.py index 81b58ab020..055a7b12cf 100755 --- a/scripts/contrib/oe-build-perf-report-email.py +++ b/scripts/contrib/oe-build-perf-report-email.py @@ -21,6 +21,7 @@ import pwd import re import shutil import smtplib +import socket import subprocess import sys import tempfile @@ -211,7 +212,8 @@ def send_email(text_fn, html_fn, subject, recipients): raise ReportError("Neither plain text nor html body specified") full_name = pwd.getpwuid(os.getuid()).pw_gecos.split(',')[0] -email = os.environ.get('EMAIL', os.getlogin()) +email = os.environ.get('EMAIL', + '{}@{}'.format(os.getlogin(), socket.getfqdn())) msg['From'] = "{} <{}>".format(full_name, email) msg['To'] = ', '.join(recipients) msg['Subject'] = subject -- 2.12.0 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/3] build-perf-test-wrapper.sh: support extra args for email script
Make it possible to provide (extra) command line arguments to the oe-build-perf-test-email script via a new environment variable OE_BUILD_PERF_REPORT_EMAIL_EXTRA_ARGS. Signed-off-by: Markus Lehtonen--- scripts/contrib/build-perf-test-wrapper.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/contrib/build-perf-test-wrapper.sh b/scripts/contrib/build-perf-test-wrapper.sh index 49bc298c5b..3da32532be 100755 --- a/scripts/contrib/build-perf-test-wrapper.sh +++ b/scripts/contrib/build-perf-test-wrapper.sh @@ -193,7 +193,7 @@ if [ -n "$results_repo" ]; then os_name=`get_os_release_var PRETTY_NAME` oe-build-perf-report -r "$results_repo" > report.txt oe-build-perf-report -r "$results_repo" --html > report.html -"$script_dir"/oe-build-perf-report-email.py --to "$email_to" --subject "Build Perf Test Report for $os_name" --text report.txt --html report.html +"$script_dir"/oe-build-perf-report-email.py --to "$email_to" --subject "Build Perf Test Report for $os_name" --text report.txt --html report.html "${OE_BUILD_PERF_REPORT_EMAIL_EXTRA_ARGS[@]}" fi fi -- 2.12.0 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH v2 0/3][YOCTO #11090] Set linux-firmware to correct license
Hi, On Fri, Apr 07, 2017 at 03:57:33AM -0700, wei.tee...@intel.com wrote: > From: "Ng, Wei Tee"> > These patches is to update the SRCREV of linux-firmware to the latest HEAD > and set thelicense file explicitly for linux-firmware-carl9170 to GPL-2. > > The SRCREV for linux-firmware was updated to the latest in order to include > the GPL-2 license file. The netronome firmware was removed until rpm > packaging issue is resolved. > > This configuration are build and tested. > > Please review and provide feedback if you have any. ipk packaging also seems to have some troubles with this modification. Failed in my setup as below: ERROR: linux-firmware-1_0.0+gitAUTOINC+b14134583c-r0 do_package_write_ipk: Error executing a python function in exec_python_func() autogenerated: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_python_func() autogenerated', lineno: 2, function: 0001: *** 0002:do_package_ipk(d) 0003: File: '/home/maxin/poky/meta/classes/package_ipk.bbclass', lineno: 228, function: do_package_ipk 0224:conffiles.close() 0225: 0226:os.chdir(basedir) 0227:subprocess.check_output("PATH=\"%s\" %s %s %s" % (localdata.getVar("PATH"), *** 0228: d.getVar("OPKGBUILDCMD"), pkg, pkgoutdir), shell=True) 0229: 0230:if d.getVar('IPK_SIGN_PACKAGES') == '1': 0231:ipkver = "%s-%s" % (d.getVar('PKGV'), d.getVar('PKGR')) 0232:ipk_to_sign = "%s/%s_%s_%s.ipk" % (pkgoutdir, pkgname, ipkver, d.getVar('PACKAGE_ARCH')) File: '/usr/lib64/python3.4/subprocess.py', lineno: 620, function: check_output 0616:process.wait() 0617:raise 0618:retcode = process.poll() 0619:if retcode: *** 0620:raise CalledProcessError(retcode, process.args, output=output) 0621:return output 0622: 0623: 0624:def list2cmdline(seq): Exception: subprocess.CalledProcessError: Command 'PATH="/home/maxin/poky/build/tmp/sysroots-uninative/x86_64-linux/usr/bin:/home/maxin/poky/scripts:/home/maxin/poky/build/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+b14134583c-r0/recipe-sysroot-native/usr/bin/allarch-poky-linux:/home/maxin/poky/build/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+b14134583c-r0/recipe-sysroot/usr/bin/crossscripts:/home/maxin/poky/build/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+b14134583c-r0/recipe-sysroot-native/usr/sbin:/home/maxin/poky/build/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+b14134583c-r0/recipe-sysroot-native/usr/bin:/home/maxin/poky/build/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+b14134583c-r0/recipe-sysroot-native/sbin:/home/maxin/poky/build/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+b14134583c-r0/recipe-sysroot-native/bin:/home/maxin/poky/bitbake/bin:/home/maxin/poky/build/tmp/hosttools" opkg-build linux- firmware-GPL-2-license /home/maxin/poky/build/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+b14134583c-r0/deploy-ipks/all' returned non-zero exit status 1 Subprocess output: linux-firmware-GPL-2-license ERROR: linux-firmware-1_0.0+gitAUTOINC+b14134583c-r0 do_package_write_ipk: Function failed: do_package_ipk ERROR: Logfile of failure stored in: /home/maxin/poky/build/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+b14134583c-r0/temp/log.do_package_write_ipk.32268 ERROR: Task (/home/maxin/poky/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb:do_package_write_ipk) failed with exit code '1' NOTE: Tasks Summary: Attempted 349 tasks of which 348 didn't need to be rerun and 1 failed. Summary: 1 task failed: /home/maxin/poky/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb:do_package_write_ipk > Thanks. > > Regards, > > Wei Tee > > > Chang, Rebecca Swee Fun (1): > linux-firmware: Fix build failure when update SRCREV to latest HEAD > > Ng, Wei Tee (2): > linux-firmware: update to revision a4dde74b > linux-firmware: Set the license for carl9170 to GPLv2 > > .../linux-firmware/linux-firmware_git.bb | 40 > ++ > 1 file changed, 25 insertions(+), 15 deletions(-) > > -- > 2.7.4 Best Regards, Maxin -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH v3 4/8] logrotate: replace fedorahosted.org SRC_URI with github.com source
On Fri, 2017-04-07 at 09:10 +, Choong, Yin Thong wrote: > Is wired. I bitbake successful on my machine. bitbake logrotate > -ccleanall and bitbake logrotate. > In this case, I should submit my entire patch or only resubmit this > patch [PATCH v3 4/8] with cover letter? Please send just this patch. If you setup a multiconfig configuration and then "bitbake lib32-logrotate" you'd see this error. You can see the configuration the autobuilder used here: https://autobuilder.yocto.io/builders/nightly-world/builds/214/steps/CreateAutoConf/logs/stdio for that world build for example. Cheers, Richard -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v2 2/3] linux-firmware: Set the license for carl9170 to GPLv2
From: "Ng, Wei Tee"linux-firmwara-carl9170 was set to a wrong license string. Carl9170 firmware is bounded by GPLv2 via code inspection on linux firmware source tree. Hence we include GPLv2 in LICENSE field and set carl9170 firmware to the correct license. [YOCTO #11090] Signed-off-by: Ng, Wei Tee --- .../linux-firmware/linux-firmware_git.bb| 21 - 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb index be82a63..9497531 100644 --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb @@ -19,6 +19,7 @@ LICENSE = "\ & Firmware-ene_firmware \ & Firmware-fw_sst_0f28 \ & Firmware-go7007 \ +& Firmware-GPL-2 \ & Firmware-hfi1_firmware \ & Firmware-i2400m \ & Firmware-i915 \ @@ -75,6 +76,7 @@ LIC_FILES_CHKSUM = "\ file://LICENCE.ene_firmware;md5=ed67f0f62f8f798130c296720b7d3921 \ file://LICENCE.fw_sst_0f28;md5=6353931c988ad52818ae733ac61cd293 \ file://LICENCE.go7007;md5=c0bb9f6aaaba55b0529ee9b30aa66beb \ +file://GPL-2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://LICENSE.hfi1_firmware;md5=5e7b6e586ce7339d12689e49931ad444 \ file://LICENCE.i2400m;md5=14b901969e23c41881327c0d9e4b7d36 \ file://LICENSE.i915;md5=2b0b2e0d20984affd4490ba2cba02570 \ @@ -132,6 +134,7 @@ NO_GENERIC_LICENSE[Firmware-e100] = "LICENCE.e100" NO_GENERIC_LICENSE[Firmware-ene_firmware] = "LICENCE.ene_firmware" NO_GENERIC_LICENSE[Firmware-fw_sst_0f28] = "LICENCE.fw_sst_0f28" NO_GENERIC_LICENSE[Firmware-go7007] = "LICENCE.go7007" +NO_GENERIC_LICENSE[Firmware-GPL-2] = "GPL-2" NO_GENERIC_LICENSE[Firmware-hfi1_firmware] = "LICENSE.hfi1_firmware" NO_GENERIC_LICENSE[Firmware-i2400m] = "LICENCE.i2400m" NO_GENERIC_LICENSE[Firmware-i915] = "LICENSE.i915" @@ -223,7 +226,8 @@ PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ ${PN}-vt6656-license ${PN}-vt6656 \ ${PN}-rtl-license ${PN}-rtl8188 ${PN}-rtl8192cu ${PN}-rtl8192ce ${PN}-rtl8192su ${PN}-rtl8723 ${PN}-rtl8821 \ ${PN}-broadcom-license ${PN}-bcm4329 ${PN}-bcm4330 ${PN}-bcm4334 ${PN}-bcm43340 ${PN}-bcm4339 ${PN}-bcm43430 ${PN}-bcm4354 \ - ${PN}-atheros-license ${PN}-ar9170 ${PN}-carl9170 ${PN}-ath6k ${PN}-ath9k \ + ${PN}-atheros-license ${PN}-ar9170 ${PN}-ath6k ${PN}-ath9k \ + ${PN}-GPL-2-license ${PN}-carl9170 \ ${PN}-ar3k-license ${PN}-ar3k ${PN}-ath10k-license ${PN}-ath10k \ \ ${PN}-iwlwifi-license ${PN}-iwlwifi \ @@ -253,9 +257,6 @@ FILES_${PN}-atheros-license = "${nonarch_base_libdir}/firmware/LICENCE.atheros_f FILES_${PN}-ar9170 = " \ ${nonarch_base_libdir}/firmware/ar9170*.fw \ " -FILES_${PN}-carl9170 = " \ - ${nonarch_base_libdir}/firmware/carl9170*.fw \ -" FILES_${PN}-ath6k = " \ ${nonarch_base_libdir}/firmware/ath6k \ " @@ -269,10 +270,20 @@ FILES_${PN}-ath9k = " \ " RDEPENDS_${PN}-ar9170 += "${PN}-atheros-license" -RDEPENDS_${PN}-carl9170 += "${PN}-atheros-license" RDEPENDS_${PN}-ath6k += "${PN}-atheros-license" RDEPENDS_${PN}-ath9k += "${PN}-atheros-license" +# For carl9170 +LICENSE_${PN}-carl9170 = "Firmware-GPL-2" +LICENSE_${PN}-GPL-2-license = "Firmware-GPL-2" + +FILES_${PN}-GPL-2-license = "${nonarch_base_libdir}/firmware/GPL-2" +FILES_${PN}-carl9170 = " \ + ${nonarch_base_libdir}/firmware/carl9170*.fw \ +" + +RDEPENDS_${PN}-carl9170 += "${PN}-GPL-2-license" + # For QualCommAthos LICENSE_${PN}-ar3k = "Firmware-qualcommAthos_ar3k" LICENSE_${PN}-ar3k-license = "Firmware-qualcommAthos_ar3k" -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v2 3/3] linux-firmware: Fix build failure when update SRCREV to latest HEAD
From: "Chang, Rebecca Swee Fun"When we update the SRCREV to latest, we will encouter the following bitbake error. Build error message: | Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 | error: Arch dependent binaries in noarch package | | | RPM build errors: | Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0081-0001_1x40.nffw | Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0099-0001_2x25.nffw | Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0097-0001_8x10.nffw | Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0081-0001_4x10.nffw | Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0097-0001_4x10_1x40.nffw | Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0099-0001_2x10.nffw | Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0097-0001_2x40.nffw | Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0096-0001_2x10.nffw | Deprecated external dependency generator is used! | Arch dependent binaries in noarch package | WARNING: exit code 1 from a shell command. This is due to netronome firmware is not included in noarch package. Hence we removed the netronome firmware before it is packaged, until the rpm issue is resolved. Signed-off-by: Chang, Rebecca Swee Fun Signed-off-by: Ng, Wei Tee --- meta/recipes-kernel/linux-firmware/linux-firmware_git.bb | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb index 9497531..3eb3bce 100644 --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb @@ -112,7 +112,7 @@ LIC_FILES_CHKSUM = "\ file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \ file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \ file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \ -file://WHENCE;md5=4c56371b1c0d9e75f7620563c652b566 \ +file://WHENCE;md5=ad12d0618287e8c10ae3da05fa0edcfb \ " # These are not common licenses, set NO_GENERIC_LICENSE for them @@ -172,7 +172,7 @@ NO_GENERIC_LICENSE[Firmware-xc5000] = "LICENCE.xc5000" NO_GENERIC_LICENSE[Firmware-xc5000c] = "LICENCE.xc5000c" NO_GENERIC_LICENSE[WHENCE] = "WHENCE" -SRCREV = "a4dde74b504522d239e8521617b53b03f393ed6a" +SRCREV = "b14134583c2a15d4404695f72cb523daedb877ab" PE = "1" PV = "0.0+git${SRCPV}" @@ -216,6 +216,9 @@ do_install() { # Copy the iwlwifi ucode cp ${WORKDIR}/iwlwifi-8000C-19.ucode ${D}${nonarch_base_libdir}/firmware/ + + # TODO: Remove netronome firmware until RPM packaging issue is resolved + rm -r ${D}${nonarch_base_libdir}/firmware/netronome/ } -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v2 1/3] linux-firmware: update to revision a4dde74b
From: "Ng, Wei Tee"-change in amdgpu firmware copyright year -change in radeon firmware copyright year -LICENCE.mwl8335 was removed in linux-firmware source tree -specify the copyright year for siano -change in qla2xxx firmware copyright year Signed-off-by: Ng, Wei Tee --- meta/recipes-kernel/linux-firmware/linux-firmware_git.bb | 16 ++-- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb index d393231..be82a63 100644 --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb @@ -29,7 +29,6 @@ LICENSE = "\ & Firmware-kaweth \ & Firmware-Marvell \ & Firmware-moxa \ -& Firmware-mwl8335 \ & Firmware-myri10ge_firmware \ & Firmware-nvidia \ & Firmware-OLPC \ @@ -62,7 +61,7 @@ LIC_FILES_CHKSUM = "\ file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \ file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \ file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \ -file://LICENSE.amdgpu;md5=3fe8a3430700a518990c3b3d75297209 \ +file://LICENSE.amdgpu;md5=0aa3c2f3e736af320a08a3aeeccecf29 \ file://LICENSE.amd-ucode;md5=3a0de451253cc1edbf30a3c621effee3 \ file://LICENCE.atheros_firmware;md5=30a14c7823beedac9fa39c64fdd01a13 \ file://LICENSE.atmel;md5=aa74ac0c60595dee4d4e239107ea77a3 \ @@ -86,7 +85,6 @@ LIC_FILES_CHKSUM = "\ file://LICENCE.kaweth;md5=b1d876e562f4b3b8d391ad8395dfe03f \ file://LICENCE.Marvell;md5=9ddea1734a4baf3c78d845151f42a37a \ file://LICENCE.moxa;md5=1086614767d8ccf744a923289d3d4261 \ -file://LICENCE.mwl8335;md5=9a6271ee0e644404b2ff3c61fd070983 \ file://LICENCE.myri10ge_firmware;md5=42e32fb89f6b959ca222e25ac8df8fed \ file://LICENCE.nvidia;md5=4428a922ed3ba2ceec95f076a488ce07 \ file://LICENCE.OLPC;md5=5b917f9d8c061991be4f6f5f108719cd \ @@ -94,15 +92,15 @@ LIC_FILES_CHKSUM = "\ file://LICENCE.phanfw;md5=954dcec0e051f9409812b561ea743bfa \ file://LICENCE.qat_firmware;md5=9e7d8bea77612d7cc7d9e9b54b623062 \ file://LICENCE.qla1280;md5=d6895732e622d950609093223a2c4f5d \ -file://LICENCE.qla2xxx;md5=f5ce8529ec5c17cb7f911d2721d90e91 \ +file://LICENCE.qla2xxx;md5=505855e921b75f1be4a437ad9b79dff0 \ file://LICENSE.QualcommAtheros_ar3k;md5=b5fe244fb2b532311de1472a3bc06da5 \ file://LICENSE.QualcommAtheros_ath10k;md5=b5fe244fb2b532311de1472a3bc06da5 \ file://LICENCE.r8a779x_usb3;md5=4c1671656153025d7076105a5da7e498 \ -file://LICENSE.radeon;md5=69612f4f7b141a97659cb1d609a1bde2 \ +file://LICENSE.radeon;md5=68ec28bacb3613200bca44f404c69b16 \ file://LICENCE.ralink_a_mediatek_company_firmware;md5=728f1a85fd53fd67fa8d7afb080bc435 \ file://LICENCE.ralink-firmware.txt;md5=ab2c269277c45476fb449673911a2dfd \ file://LICENCE.rtlwifi_firmware.txt;md5=00d06cfd3eddd5a2698948ead2ad54a5 \ -file://LICENCE.siano;md5=602c79ae3f98f1e73d880fd9f940a418 \ +file://LICENCE.siano;md5=4556c1bf830067f12ca151ad953ec2a5 \ file://LICENCE.tda7706-firmware.txt;md5=835997cf5e3c131d0695c7d9103e \ file://LICENCE.ti-connectivity;md5=c5e02be633f1499c109d1652514d85ec \ file://LICENCE.ti-keystone;md5=3a86335d32864b0bef996bee26cc0f2c \ @@ -112,7 +110,7 @@ LIC_FILES_CHKSUM = "\ file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \ file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \ file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \ -file://WHENCE;md5=f514a0c53c5d73c2fe98d5861103f0c6 \ +file://WHENCE;md5=4c56371b1c0d9e75f7620563c652b566 \ " # These are not common licenses, set NO_GENERIC_LICENSE for them @@ -144,7 +142,6 @@ NO_GENERIC_LICENSE[Firmware-iwlwifi_firmware] = "LICENCE.iwlwifi_firmware" NO_GENERIC_LICENSE[Firmware-kaweth] = "LICENCE.kaweth" NO_GENERIC_LICENSE[Firmware-Marvell] = "LICENCE.Marvell" NO_GENERIC_LICENSE[Firmware-moxa] = "LICENCE.moxa" -NO_GENERIC_LICENSE[Firmware-mwl8335] = "LICENCE.mwl8335" NO_GENERIC_LICENSE[Firmware-myri10ge_firmware] = "LICENCE.myri10ge_firmware" NO_GENERIC_LICENSE[Firmware-nvidia] = "LICENCE.nvidia" NO_GENERIC_LICENSE[Firmware-OLPC] = "LICENCE.OLPC" @@ -172,7 +169,7 @@ NO_GENERIC_LICENSE[Firmware-xc5000] = "LICENCE.xc5000" NO_GENERIC_LICENSE[Firmware-xc5000c] = "LICENCE.xc5000c" NO_GENERIC_LICENSE[WHENCE] = "WHENCE" -SRCREV = "42ad5367dd38371b2a1bb263b6efa85f9b92fc93" +SRCREV = "a4dde74b504522d239e8521617b53b03f393ed6a" PE = "1" PV = "0.0+git${SRCPV}" @@ -598,7 +595,6 @@ LICENSE_${PN} = "\ & Firmware-IntcSST2 \ & Firmware-kaweth \ & Firmware-moxa \ -& Firmware-mwl8335 \ & Firmware-myri10ge_firmware \ & Firmware-nvidia \ & Firmware-OLPC \ -- 2.7.4 -- ___ Openembedded-core mailing list
[OE-core] [PATCH v2 0/3][YOCTO #11090] Set linux-firmware to correct license
From: "Ng, Wei Tee"These patches is to update the SRCREV of linux-firmware to the latest HEAD and set thelicense file explicitly for linux-firmware-carl9170 to GPL-2. The SRCREV for linux-firmware was updated to the latest in order to include the GPL-2 license file. The netronome firmware was removed until rpm packaging issue is resolved. This configuration are build and tested. Please review and provide feedback if you have any. Thanks. Regards, Wei Tee Chang, Rebecca Swee Fun (1): linux-firmware: Fix build failure when update SRCREV to latest HEAD Ng, Wei Tee (2): linux-firmware: update to revision a4dde74b linux-firmware: Set the license for carl9170 to GPLv2 .../linux-firmware/linux-firmware_git.bb | 40 ++ 1 file changed, 25 insertions(+), 15 deletions(-) -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] ✗ patchtest: failure for Set linux-firmware to correct license
== Series Details == Series: Set linux-firmware to correct license Revision: 1 URL : https://patchwork.openembedded.org/series/6226/ State : failure == Summary == Thank you for submitting this patch series to OpenEmbedded Core. This is an automated response. Several tests have been executed on the proposed series by patchtest resulting in the following failures: * Issue Series does not apply on top of target branch [test_series_merge_on_head] Suggested fixRebase your series on top of targeted branch Targeted branch master (currently at 901659a51c) If you believe any of these test results are incorrect, please reply to the mailing list (openembedded-core@lists.openembedded.org) raising your concerns. Otherwise we would appreciate you correcting the issues and submitting a new version of the patchset if applicable. Please ensure you add/increment the version number when sending the new version (i.e. [PATCH] -> [PATCH v2] -> [PATCH v3] -> ...). --- Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 3/4] linux-firmware: Set the license for carl9170 to GPLv2
From: "Ng, Wei Tee"linux-firmwara-carl9170 was set to a wrong license string. Carl9170 firmware is bounded by GPLv2 via code inspection on linux firmware source tree. Hence we include GPLv2 in LICENSE field and set carl9170 firmware to the correct license. [YOCTO #11090] Signed-off-by: Ng, Wei Tee --- .../linux-firmware/linux-firmware_git.bb| 21 - 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb index be82a63..9497531 100644 --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb @@ -19,6 +19,7 @@ LICENSE = "\ & Firmware-ene_firmware \ & Firmware-fw_sst_0f28 \ & Firmware-go7007 \ +& Firmware-GPL-2 \ & Firmware-hfi1_firmware \ & Firmware-i2400m \ & Firmware-i915 \ @@ -75,6 +76,7 @@ LIC_FILES_CHKSUM = "\ file://LICENCE.ene_firmware;md5=ed67f0f62f8f798130c296720b7d3921 \ file://LICENCE.fw_sst_0f28;md5=6353931c988ad52818ae733ac61cd293 \ file://LICENCE.go7007;md5=c0bb9f6aaaba55b0529ee9b30aa66beb \ +file://GPL-2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://LICENSE.hfi1_firmware;md5=5e7b6e586ce7339d12689e49931ad444 \ file://LICENCE.i2400m;md5=14b901969e23c41881327c0d9e4b7d36 \ file://LICENSE.i915;md5=2b0b2e0d20984affd4490ba2cba02570 \ @@ -132,6 +134,7 @@ NO_GENERIC_LICENSE[Firmware-e100] = "LICENCE.e100" NO_GENERIC_LICENSE[Firmware-ene_firmware] = "LICENCE.ene_firmware" NO_GENERIC_LICENSE[Firmware-fw_sst_0f28] = "LICENCE.fw_sst_0f28" NO_GENERIC_LICENSE[Firmware-go7007] = "LICENCE.go7007" +NO_GENERIC_LICENSE[Firmware-GPL-2] = "GPL-2" NO_GENERIC_LICENSE[Firmware-hfi1_firmware] = "LICENSE.hfi1_firmware" NO_GENERIC_LICENSE[Firmware-i2400m] = "LICENCE.i2400m" NO_GENERIC_LICENSE[Firmware-i915] = "LICENSE.i915" @@ -223,7 +226,8 @@ PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ ${PN}-vt6656-license ${PN}-vt6656 \ ${PN}-rtl-license ${PN}-rtl8188 ${PN}-rtl8192cu ${PN}-rtl8192ce ${PN}-rtl8192su ${PN}-rtl8723 ${PN}-rtl8821 \ ${PN}-broadcom-license ${PN}-bcm4329 ${PN}-bcm4330 ${PN}-bcm4334 ${PN}-bcm43340 ${PN}-bcm4339 ${PN}-bcm43430 ${PN}-bcm4354 \ - ${PN}-atheros-license ${PN}-ar9170 ${PN}-carl9170 ${PN}-ath6k ${PN}-ath9k \ + ${PN}-atheros-license ${PN}-ar9170 ${PN}-ath6k ${PN}-ath9k \ + ${PN}-GPL-2-license ${PN}-carl9170 \ ${PN}-ar3k-license ${PN}-ar3k ${PN}-ath10k-license ${PN}-ath10k \ \ ${PN}-iwlwifi-license ${PN}-iwlwifi \ @@ -253,9 +257,6 @@ FILES_${PN}-atheros-license = "${nonarch_base_libdir}/firmware/LICENCE.atheros_f FILES_${PN}-ar9170 = " \ ${nonarch_base_libdir}/firmware/ar9170*.fw \ " -FILES_${PN}-carl9170 = " \ - ${nonarch_base_libdir}/firmware/carl9170*.fw \ -" FILES_${PN}-ath6k = " \ ${nonarch_base_libdir}/firmware/ath6k \ " @@ -269,10 +270,20 @@ FILES_${PN}-ath9k = " \ " RDEPENDS_${PN}-ar9170 += "${PN}-atheros-license" -RDEPENDS_${PN}-carl9170 += "${PN}-atheros-license" RDEPENDS_${PN}-ath6k += "${PN}-atheros-license" RDEPENDS_${PN}-ath9k += "${PN}-atheros-license" +# For carl9170 +LICENSE_${PN}-carl9170 = "Firmware-GPL-2" +LICENSE_${PN}-GPL-2-license = "Firmware-GPL-2" + +FILES_${PN}-GPL-2-license = "${nonarch_base_libdir}/firmware/GPL-2" +FILES_${PN}-carl9170 = " \ + ${nonarch_base_libdir}/firmware/carl9170*.fw \ +" + +RDEPENDS_${PN}-carl9170 += "${PN}-GPL-2-license" + # For QualCommAthos LICENSE_${PN}-ar3k = "Firmware-qualcommAthos_ar3k" LICENSE_${PN}-ar3k-license = "Firmware-qualcommAthos_ar3k" -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 4/4] linux-firmware: Fix build failure when update SRCREV to latest HEAD
From: "Chang, Rebecca Swee Fun"When we update the SRCREV to latest, we will encouter the following bitbake error. Build error message: | Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 | error: Arch dependent binaries in noarch package | | | RPM build errors: | Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0081-0001_1x40.nffw | Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0099-0001_2x25.nffw | Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0097-0001_8x10.nffw | Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0081-0001_4x10.nffw | Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0097-0001_4x10_1x40.nffw | Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0099-0001_2x10.nffw | Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0097-0001_2x40.nffw | Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0096-0001_2x10.nffw | Deprecated external dependency generator is used! | Arch dependent binaries in noarch package | WARNING: exit code 1 from a shell command. This is due to netronome firmware is not included in noarch package. Hence we removed the netronome firmware before it is packaged, until the rpm issue is resolved. Signed-off-by: Chang, Rebecca Swee Fun Signed-off-by: Ng, Wei Tee --- meta/recipes-kernel/linux-firmware/linux-firmware_git.bb | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb index 9497531..3eb3bce 100644 --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb @@ -112,7 +112,7 @@ LIC_FILES_CHKSUM = "\ file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \ file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \ file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \ -file://WHENCE;md5=4c56371b1c0d9e75f7620563c652b566 \ +file://WHENCE;md5=ad12d0618287e8c10ae3da05fa0edcfb \ " # These are not common licenses, set NO_GENERIC_LICENSE for them @@ -172,7 +172,7 @@ NO_GENERIC_LICENSE[Firmware-xc5000] = "LICENCE.xc5000" NO_GENERIC_LICENSE[Firmware-xc5000c] = "LICENCE.xc5000c" NO_GENERIC_LICENSE[WHENCE] = "WHENCE" -SRCREV = "a4dde74b504522d239e8521617b53b03f393ed6a" +SRCREV = "b14134583c2a15d4404695f72cb523daedb877ab" PE = "1" PV = "0.0+git${SRCPV}" @@ -216,6 +216,9 @@ do_install() { # Copy the iwlwifi ucode cp ${WORKDIR}/iwlwifi-8000C-19.ucode ${D}${nonarch_base_libdir}/firmware/ + + # TODO: Remove netronome firmware until RPM packaging issue is resolved + rm -r ${D}${nonarch_base_libdir}/firmware/netronome/ } -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/4] bitbake: fetch2: Do not fail to create symbolic links if they already exist
From: Peter KjellerstedtWhen the fetcher retrieves file:// URLs, there is no lock file being used. This means that in case two separate tasks (typically from two concurrent invocations of bitbake) want to download the same file:// URL at the same time, there is a very small chance that they also end up wanting to create a symbolic link to the file at the same time. This would previously lead to one of the tasks failing as the other task would have created the link. (Bitbake rev: 58a03531c8183b165bb7dcad86d8559c92bc150d) Signed-off-by: Peter Kjellerstedt Signed-off-by: Richard Purdie --- bitbake/lib/bb/fetch2/__init__.py | 15 +-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index ea72025..136fc29 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py @@ -983,7 +983,14 @@ def try_mirror_url(fetch, origud, ud, ld, check = False): open(ud.donestamp, 'w').close() dest = os.path.join(dldir, os.path.basename(ud.localpath)) if not os.path.exists(dest): -os.symlink(ud.localpath, dest) +# In case this is executing without any file locks held (as is +# the case for file:// URLs), two tasks may end up here at the +# same time, in which case we do not want the second task to +# fail when the link has already been created by the first task. +try: +os.symlink(ud.localpath, dest) +except FileExistsError: +pass if not verify_donestamp(origud, ld) or origud.method.need_update(origud, ld): origud.method.download(origud, ld) if hasattr(origud.method,"build_mirror_data"): @@ -995,7 +1002,11 @@ def try_mirror_url(fetch, origud, ud, ld, check = False): # Broken symbolic link os.unlink(origud.localpath) -os.symlink(ud.localpath, origud.localpath) +# As per above, in case two tasks end up here simultaneously. +try: +os.symlink(ud.localpath, origud.localpath) +except FileExistsError: +pass update_stamp(origud, ld) return ud.localpath -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 0/4][YOCTO #11090] Set linux-firmware to correct license
From: "Ng, Wei Tee"These patches is to update the SRCREV of linux-firmware to the latest HEAD and set the license file explicitly for linux-firmware-carl9170 to GPL-2. The SRCREV for linux-firmware was updated to the latest in order to include the GPL-2 license file. The netronome firmware was removed until rpm packaging issue is resolved. This configuration are build and tested. Please review and provide feedback if you have any. Thanks. Regards, Wei Tee Chang, Rebecca Swee Fun (1): linux-firmware: Fix build failure when update SRCREV to latest HEAD Ng, Wei Tee (2): linux-firmware: update to revision a4dde74b linux-firmware: Set the license for carl9170 to GPLv2 Peter Kjellerstedt (1): bitbake: fetch2: Do not fail to create symbolic links if they already exist bitbake/lib/bb/fetch2/__init__.py | 15 ++-- .../linux-firmware/linux-firmware_git.bb | 40 ++ 2 files changed, 38 insertions(+), 17 deletions(-) -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 0/2] Fixes for building on Fedora 26 (Alpha)
On Thu, 2017-04-06 at 06:50 -0700, Khem Raj wrote: > On Thu, Apr 6, 2017 at 6:23 AM, Joshua Lock> wrote: > > As Fedora 26 has a new gcc [1] and a new system pkg-config > > implementation [2] I > > wanted to do some testing on that host OS so that we might be able > > to get some > > fixes in before Pyro/2.3 is released. > > > > The following series were the only changes required to start > > building (I have > > tested core-image-minimal, core-image-base and core-image-sato) on > > Fedora 26. > > gcc patch looks fine to me. Thanks for the review. > > > > 1. https://fedoraproject.org/wiki/Changes/GCC7 > > 2. https://fedoraproject.org/wiki/Changes/pkgconf_as_system_pkg-con > > fig_implementation > > I think we should think about making pkgconf as default too for OE in > next release cycle. I've filed that as a 2.4 enhancement bug: https://bugzilla.yoctoproject.org/show_bug.cgi?id=11308 Joshua -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 8/8] runqemu: make use of two new vars
From: Chen QiMake use of STAGING_DIR_TUNCTL_NATIVE and STAGING_DIR_QEMU_BINDIR_NATIVE to run correctly. In this way, runqemu would still work when 'rm_work' is enabled. [YOCTO #11266] [YOCTO #11193] Signed-off-by: Chen Qi --- scripts/runqemu | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/scripts/runqemu b/scripts/runqemu index 5b5d56b9ef..e741dfe05d 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -920,7 +920,10 @@ class BaseConfig(object): gid = os.getgid() uid = os.getuid() logger.info("Setting up tap interface under sudo") -cmd = 'sudo %s %s %s %s' % (self.qemuifup, uid, gid, self.get('STAGING_DIR_NATIVE')) +if os.path.exists(self.get('STAGING_DIR_TUNCTL_NATIVE')): +cmd = 'sudo %s %s %s %s' % (self.qemuifup, uid, gid, self.get('STAGING_DIR_TUNCTL_NATIVE')) +else: +cmd = 'sudo %s %s %s %s' % (self.qemuifup, uid, gid, self.get('STAGING_DIR_NATIVE')) tap = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).stdout.read().decode('utf-8').rstrip('\n') lockfile = os.path.join(lockdir, tap) self.lock = lockfile + '.lock' @@ -1056,7 +1059,10 @@ class BaseConfig(object): if not qemu_system: raise Exception("Failed to boot, QB_SYSTEM_NAME is NULL!") -qemu_bin = '%s/%s' % (self.get('STAGING_BINDIR_NATIVE'), qemu_system) +if os.path.exists(self.get('STAGING_DIR_QEMU_BINDIR_NATIVE')): +qemu_bin = '%s/%s' % (self.get('STAGING_DIR_QEMU_BINDIR_NATIVE'), qemu_system) +else: +qemu_bin = '%s/%s' % (self.get('STAGING_BINDIR_NATIVE'), qemu_system) # It is possible to have qemu-native in ASSUME_PROVIDED, and it won't # find QEMU in sysroot, it needs to use host's qemu. -- 2.11.0.rc2.dirty -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 7/8] qemuboot.bbclass: add two vars for use by runqemu
From: Chen QiAdd STAGING_DIR_TUNCTL_NATIVE and STAGING_DIR_QEMU_BINDIR_NATIVE so that runqemu could find 'tunctl' and 'qemu-xxx' binaries to run correctly. [YOCTO #11266] [YOCTO #11193] Signed-off-by: Chen Qi --- meta/classes/qemuboot.bbclass | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/meta/classes/qemuboot.bbclass b/meta/classes/qemuboot.bbclass index 2870388dfb..ac52ef295e 100644 --- a/meta/classes/qemuboot.bbclass +++ b/meta/classes/qemuboot.bbclass @@ -70,12 +70,15 @@ QB_DRIVE_TYPE ?= "/dev/sd" # Create qemuboot.conf addtask do_write_qemuboot_conf after do_rootfs before do_image IMGDEPLOYDIR ?= "${WORKDIR}/deploy-${PN}-image-complete" +STAGING_DIR_TUNCTL_NATIVE = "${STAGING_DIR}-components/${BUILD_ARCH}/qemu-helper-native" +STAGING_DIR_QEMU_BINDIR_NATIVE = "${STAGING_DIR}-components/${BUILD_ARCH}/qemu-native/usr/bin" def qemuboot_vars(d): build_vars = ['MACHINE', 'TUNE_ARCH', 'DEPLOY_DIR_IMAGE', 'KERNEL_IMAGETYPE', 'IMAGE_NAME', 'IMAGE_LINK_NAME', 'STAGING_DIR_NATIVE', 'STAGING_BINDIR_NATIVE', -'STAGING_DIR_HOST'] +'STAGING_DIR_HOST', 'STAGING_DIR_TUNCTL_NATIVE', +'STAGING_DIR_QEMU_BINDIR_NATIVE'] return build_vars + [k for k in d.keys() if k.startswith('QB_')] do_write_qemuboot_conf[vardeps] += "${@' '.join(qemuboot_vars(d))}" -- 2.11.0.rc2.dirty -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 6/8] runqemu: do not rely on grepping images
Fixed when the image is large and not enough memory: grep: memory exhausted Aborted [YOCTO #11073] Signed-off-by: Robert Yang--- meta/classes/qemuboot.bbclass | 3 +++ scripts/runqemu | 19 +++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/meta/classes/qemuboot.bbclass b/meta/classes/qemuboot.bbclass index 3ca97cad4c..2870388dfb 100644 --- a/meta/classes/qemuboot.bbclass +++ b/meta/classes/qemuboot.bbclass @@ -64,6 +64,9 @@ QB_DEFAULT_FSTYPE ?= "ext4" QB_OPT_APPEND ?= "-show-cursor" QB_NETWORK_DEVICE ?= "-device virtio-net-pci,netdev=net0,mac=@MAC@" +# This should be kept align with ROOT_VM +QB_DRIVE_TYPE ?= "/dev/sd" + # Create qemuboot.conf addtask do_write_qemuboot_conf after do_rootfs before do_image IMGDEPLOYDIR ?= "${WORKDIR}/deploy-${PN}-image-complete" diff --git a/scripts/runqemu b/scripts/runqemu index a4036ae091..5b5d56b9ef 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -978,23 +978,26 @@ class BaseConfig(object): self.kernel_cmdline = 'root=/dev/ram0 rw debugshell' self.rootfs_options = '-initrd %s' % self.rootfs else: +vm_drive = '' if self.fstype in self.vmtypes: if self.fstype == 'iso': vm_drive = '-cdrom %s' % self.rootfs -else: -cmd1 = "grep -q 'root=/dev/sd' %s" % self.rootfs -cmd2 = "grep -q 'root=/dev/hd' %s" % self.rootfs -if subprocess.call(cmd1, shell=True) == 0: +elif self.get('QB_DRIVE_TYPE'): +drive_type = self.get('QB_DRIVE_TYPE') +if drive_type.startswith("/dev/sd"): logger.info('Using scsi drive') vm_drive = '-drive if=none,id=hd,file=%s,format=%s -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd' \ % (self.rootfs, rootfs_format) -elif subprocess.call(cmd2, shell=True) == 0: +elif drive_type.startswith("/dev/hd"): logger.info('Using ide drive') vm_drive = "%s,format=%s" % (self.rootfs, rootfs_format) else: -logger.warn("Can't detect drive type %s" % self.rootfs) -logger.warn('Trying to use virtio block drive') -vm_drive = '-drive if=virtio,file=%s,format=%s' % (self.rootfs, rootfs_format) +logger.warn("Unknown QB_DRIVE_TYPE: %s" % drive_type) + +if not vm_drive: +logger.warn("Failed to figure out drive type, consider define or fix QB_DRIVE_TYPE") +logger.warn('Trying to use virtio block drive') +vm_drive = '-drive if=virtio,file=%s,format=%s' % (self.rootfs, rootfs_format) self.rootfs_options = '%s -no-reboot' % vm_drive self.kernel_cmdline = 'root=%s rw highres=off' % (self.get('QB_KERNEL_ROOT')) -- 2.11.0.rc2.dirty -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 5/8] runqemu: use realpath for imgdir
The DEPLOY_DIR_IMAGE maybe relative or absolute path since it can be read from env vars, so use realpath for both imgdir and DEPLOY_DIR_IMAGE when compare. Signed-off-by: Robert Yang--- scripts/runqemu | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/runqemu b/scripts/runqemu index f55494df12..a4036ae091 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -705,8 +705,8 @@ class BaseConfig(object): # artefacts are relative to that file, rather than in whatever # directory DEPLOY_DIR_IMAGE in the conf file points to. if self.qbconfload: -imgdir = os.path.dirname(self.qemuboot) -if imgdir != self.get('DEPLOY_DIR_IMAGE'): +imgdir = os.path.realpath(os.path.dirname(self.qemuboot)) +if imgdir != os.path.realpath(self.get('DEPLOY_DIR_IMAGE')): logger.info('Setting DEPLOY_DIR_IMAGE to folder containing %s (%s)' % (self.qemuboot, imgdir)) self.set('DEPLOY_DIR_IMAGE', imgdir) -- 2.11.0.rc2.dirty -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 2/8] runqemu: support env vars explicitly
Use self.env_vars to support get vars from environment explicity. The MACHINE, ROOTFS and KERNEL was supported by shell based runqemu, and the help text says support them from env vars, so add them back. [YOCTO #11141] Signed-off-by: Robert Yang--- scripts/runqemu | 71 ++--- 1 file changed, 42 insertions(+), 29 deletions(-) diff --git a/scripts/runqemu b/scripts/runqemu index 251f5f7e94..ddbff4b221 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -163,12 +163,18 @@ def check_free_port(host, port): class BaseConfig(object): def __init__(self): -# Vars can be merged with .qemuboot.conf, use a dict to manage them. -self.d = { -'MACHINE': '', -'DEPLOY_DIR_IMAGE': '', -'QB_KERNEL_ROOT': '/dev/vda', -} +# The self.d saved vars from self.set(), part of them are from qemuboot.conf +self.d = {'QB_KERNEL_ROOT': '/dev/vda'} + +# Supported env vars, add it here if a var can be got from env, +# and don't use os.getenv in the code. +self.env_vars = ('MACHINE', +'ROOTFS', +'KERNEL', +'DEPLOY_DIR_IMAGE', +'OE_TMPDIR', +'OECORE_NATIVE_SYSROOT', +) self.qemu_opt = '' self.qemu_opt_script = '' @@ -238,6 +244,8 @@ class BaseConfig(object): def get(self, key): if key in self.d: return self.d.get(key) +elif os.getenv(key): +return os.getenv(key) else: return '' @@ -338,10 +346,13 @@ class BaseConfig(object): def check_arg_machine(self, arg): """Check whether it is a machine""" -if self.get('MACHINE') and self.get('MACHINE') != arg or re.search('/', arg): -raise Exception("Unknown arg: %s" % arg) -elif self.get('MACHINE') == arg: +if self.get('MACHINE') == arg: return +elif self.get('MACHINE') and self.get('MACHINE') != arg: +raise Exception("Maybe conflicted MACHINE: %s vs %s" % (self.get('MACHINE'), arg)) +elif re.search('/', arg): +raise Exception("Unknown arg: %s" % arg) + logger.info('Assuming MACHINE = %s' % arg) # if we're running under testimage, or similarly as a child @@ -350,14 +361,14 @@ class BaseConfig(object): # FIXME: testimage.bbclass exports these two variables into env, # are there other scenarios in which we need to support being # invoked by bitbake? -deploy = os.environ.get('DEPLOY_DIR_IMAGE') -bbchild = deploy and os.environ.get('OE_TMPDIR') +deploy = self.get('DEPLOY_DIR_IMAGE') +bbchild = deploy and self.get('OE_TMPDIR') if bbchild: self.set_machine_deploy_dir(arg, deploy) return # also check whether we're running under a sourced toolchain # environment file -if os.environ.get('OECORE_NATIVE_SYSROOT'): +if self.get('OECORE_NATIVE_SYSROOT'): self.set("MACHINE", arg) return @@ -430,20 +441,15 @@ class BaseConfig(object): if unknown_arg: if self.get('MACHINE') == unknown_arg: return -if not self.get('DEPLOY_DIR_IMAGE'): -# Trying to get DEPLOY_DIR_IMAGE from env. -p = os.getenv('DEPLOY_DIR_IMAGE') -if p and self.is_deploy_dir_image(p): -machine = os.path.basename(p) -if unknown_arg == machine: -self.set_machine_deploy_dir(machine, p) -return -else: -logger.info('DEPLOY_DIR_IMAGE: %s' % p) -self.set("DEPLOY_DIR_IMAGE", p) +if self.get('DEPLOY_DIR_IMAGE'): +machine = os.path.basename(self.get('DEPLOY_DIR_IMAGE')) +if unknown_arg == machine: +self.set("MACHINE", machine) +return + self.check_arg_machine(unknown_arg) -if not (self.get('MACHINE') or self.get('DEPLOY_DIR_IMAGE')): +if not self.get('DEPLOY_DIR_IMAGE'): self.load_bitbake_env() s = re.search('^DEPLOY_DIR_IMAGE="(.*)"', self.bitbake_e, re.M) if s: @@ -505,7 +511,16 @@ class BaseConfig(object): def check_rootfs(self): """Check and set rootfs""" -if self.fstype == 'nfs' or self.fstype == "none": +if self.fstype == "none": +return + +if self.get('ROOTFS'): +if not self.rootfs: +self.rootfs = self.get('ROOTFS') +elif self.get('ROOTFS') != self.rootfs: +raise Exception("Maybe conflicted ROOTFS: %s vs %s" % (self.get('ROOTFS'), self.rootfs)) +
[OE-core] [PATCH 3/8] runqemu: use self.rootfs to replace self.nfs_dir
We can use self.rootfs as self.nfs_dir when self.fstype is nfs, this can reduce the code's complexity and we can re-use the code of checking ROOTFS conflictions. Signed-off-by: Robert Yang--- scripts/runqemu | 28 +--- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/scripts/runqemu b/scripts/runqemu index ddbff4b221..7e7a6b4915 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -178,7 +178,6 @@ class BaseConfig(object): self.qemu_opt = '' self.qemu_opt_script = '' -self.nfs_dir = '' self.clean_nfs_dir = False self.nfs_server = '' self.rootfs = '' @@ -284,12 +283,11 @@ class BaseConfig(object): def check_arg_nfs(self, p): if os.path.isdir(p): -self.nfs_dir = p +self.rootfs = p else: m = re.match('(.*):(.*)', p) self.nfs_server = m.group(1) -self.nfs_dir = m.group(2) -self.rootfs = "" +self.rootfs = m.group(2) self.check_arg_fstype('nfs') def check_arg_path(self, p): @@ -759,7 +757,7 @@ class BaseConfig(object): print('MACHINE: [%s]' % self.get('MACHINE')) print('FSTYPE: [%s]' % self.fstype) if self.fstype == 'nfs': -print('NFS_DIR: [%s]' % self.nfs_dir) +print('NFS_DIR: [%s]' % self.rootfs) else: print('ROOTFS: [%s]' % self.rootfs) if self.ovmf_bios: @@ -804,13 +802,13 @@ class BaseConfig(object): self.unfs_opts="nfsvers=3,port=%s,mountprog=%s,nfsprog=%s,udp,mountport=%s" % (nfsd_port, mountd_rpcport, nfsd_rpcport, mountd_port) -# Extract .tar.bz2 or .tar.bz if no self.nfs_dir -if not self.nfs_dir: +# Extract .tar.bz2 or .tar.bz if no nfs dir +if not (self.rootfs and os.path.isdir(self.rootfs)): src_prefix = '%s/%s' % (self.get('DEPLOY_DIR_IMAGE'), self.get('IMAGE_LINK_NAME')) dest = "%s-nfsroot" % src_prefix if os.path.exists('%s.pseudo_state' % dest): logger.info('Use %s as NFS_DIR' % dest) -self.nfs_dir = dest +self.rootfs = dest else: src = "" src1 = '%s.tar.bz2' % src_prefix @@ -827,10 +825,10 @@ class BaseConfig(object): if subprocess.call(cmd, shell=True) != 0: raise Exception('Failed to run %s' % cmd) self.clean_nfs_dir = True -self.nfs_dir = dest +self.rootfs = dest # Start the userspace NFS server -cmd = 'runqemu-export-rootfs start %s' % self.nfs_dir +cmd = 'runqemu-export-rootfs start %s' % self.rootfs logger.info('Running %s...' % cmd) if subprocess.call(cmd, shell=True) != 0: raise Exception('Failed to run %s' % cmd) @@ -1001,7 +999,7 @@ class BaseConfig(object): if self.fstype == 'nfs': self.rootfs_options = '' -k_root = '/dev/nfs nfsroot=%s:%s,%s' % (self.nfs_server, self.nfs_dir, self.unfs_opts) +k_root = '/dev/nfs nfsroot=%s:%s,%s' % (self.nfs_server, self.rootfs, self.unfs_opts) self.kernel_cmdline = 'root=%s rw highres=off' % k_root if self.fstype == 'none': @@ -1147,7 +1145,7 @@ class BaseConfig(object): if self.nfs_running: logger.info("Shutting down the userspace NFS server...") -cmd = "runqemu-export-rootfs stop %s" % self.nfs_dir +cmd = "runqemu-export-rootfs stop %s" % self.rootfs logger.info('Running %s' % cmd) subprocess.call(cmd, shell=True) @@ -1156,9 +1154,9 @@ class BaseConfig(object): subprocess.call(cmd, shell=True) if self.clean_nfs_dir: -logger.info('Removing %s' % self.nfs_dir) -shutil.rmtree(self.nfs_dir) -shutil.rmtree('%s.pseudo_state' % self.nfs_dir) +logger.info('Removing %s' % self.rootfs) +shutil.rmtree(self.rootfs) +shutil.rmtree('%s.pseudo_state' % self.rootfs) def load_bitbake_env(self, mach=None): if self.bitbake_e: -- 2.11.0.rc2.dirty -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 4/8] runqemu: run without arguments
Since we can get MACHINE and others from env vars and "bitbake -e", "runqemu" can work without any arguments. Signed-off-by: Robert Yang--- scripts/runqemu | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/runqemu b/scripts/runqemu index 7e7a6b4915..f55494df12 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -83,6 +83,7 @@ of the following environment variables (in any order): help, -h, --help: print this text Examples: + runqemu runqemu qemuarm runqemu tmp/deploy/images/qemuarm runqemu tmp/deploy/images/qemux86/ @@ -1182,8 +1183,7 @@ class BaseConfig(object): logger.warn("Couldn't run 'bitbake -e' to gather environment information:\n%s" % err.output.decode('utf-8')) def main(): -if len(sys.argv) == 1 or "help" in sys.argv or \ -'-h' in sys.argv or '--help' in sys.argv: +if "help" in sys.argv or '-h' in sys.argv or '--help' in sys.argv: print_usage() return 0 config = BaseConfig() -- 2.11.0.rc2.dirty -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 0/8 V2] fixes for runqemu and runqemu + rm_work
* V2: - Fixed "ERROR - name 'p' is not defined" - Add Qi's patch. // Robert The following changes since commit 901659a51cd53625a93f57a9c5865e90a07ec09d: oeqa/runtime/utils/targetbuildproject: use parent classes defaults tmpdir (2017-04-06 10:13:34 +0100) are available in the git repository at: git://git.openembedded.org/openembedded-core-contrib rbt/qemu http://cgit.openembedded.org/openembedded-core-contrib/log/?h=rbt/qemu Chen Qi (2): qemuboot.bbclass: add two vars for use by runqemu runqemu: make use of two new vars Robert Yang (6): runqemu: fix 2 typos runqemu: support env vars explicitly runqemu: use self.rootfs to replace self.nfs_dir runqemu: run without arguments runqemu: use realpath for imgdir runqemu: do not rely on grepping images meta/classes/qemuboot.bbclass | 8 ++- scripts/runqemu | 140 -- 2 files changed, 87 insertions(+), 61 deletions(-) -- 2.11.0.rc2.dirty -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/8] runqemu: fix 2 typos
* "is it" -> "it is" * Remove ".qemuboot.conf =" in the error message which looked strange. Signed-off-by: Robert Yang--- scripts/runqemu | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/runqemu b/scripts/runqemu index 23c9efbae2..251f5f7e94 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -421,7 +421,7 @@ class BaseConfig(object): elif arg.startswith('ovmf'): self.ovmf_bios.append(arg) else: -# At last, assume is it the MACHINE +# At last, assume it is the MACHINE if (not unknown_arg) or unknown_arg == arg: unknown_arg = arg else: @@ -677,7 +677,7 @@ class BaseConfig(object): return if not os.path.exists(self.qemuboot): -raise Exception("Failed to find .qemuboot.conf = %s (wrong image name or BSP does not support running under qemu?)." % self.qemuboot) +raise Exception("Failed to find %s (wrong image name or BSP does not support running under qemu?)." % self.qemuboot) logger.info('CONFFILE: %s' % self.qemuboot) -- 2.11.0.rc2.dirty -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 0/6] fixes for runqemu
On 04/07/2017 07:54 AM, Richard Purdie wrote: On Wed, 2017-04-05 at 23:41 -0700, Robert Yang wrote: The following changes since commit 3a1cce659156ef2654a55a6e3c6922fa2dc780e4: glibc: fix nativesdk ldd RTLDLIST (2017-04-05 23:22:06 +0100) are available in the git repository at: git://git.openembedded.org/openembedded-core-contrib rbt/qemu http://cgit.openembedded.org/openembedded-core-contrib/log/?h=rbt/q emu Robert Yang (6): runqemu: fix 2 typos runqemu: support env vars explicitly runqemu: use self.rootfs to replace self.nfs_dir runqemu: run without arguments runqemu: use realpath for imgdir runqemu: do not rely on grepping images Something in here breaks the use of "bitbake xxx-image -c testimage": https://autobuilder.yocto.io/builders/nightly-arm/builds/280 [basically all sanity tests failed in that build] I'm really very sorry for the stupid errors, I had seen it, and I thought that I had fixed it, but didn't. I will send a V2 and include Qi's patch since there are conflicts, I will resolve the conflicts. // Robert Cheers, Richard -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH v3 4/8] logrotate: replace fedorahosted.org SRC_URI with github.com source
Is wired. I bitbake successful on my machine. bitbake logrotate -ccleanall and bitbake logrotate. In this case, I should submit my entire patch or only resubmit this patch [PATCH v3 4/8] with cover letter? Thanks and Regards Choong YinThong -Original Message- From: Richard Purdie [mailto:richard.pur...@linuxfoundation.org] Sent: Friday, April 7, 2017 3:37 PM To: Choong, Yin Thong; openembedded-core@lists.openembedded.org Subject: Re: [OE-core] [PATCH v3 4/8] logrotate: replace fedorahosted.org SRC_URI with github.com source On Thu, 2017-04-06 at 01:35 -0700, yin.thong.cho...@intel.com wrote: > From: Choong YinThong > > fedorahosted.org was retired on March 1st, 2017. This is to update the > SRC_URI to point to github.com. > > [YOCTO #11226] > > Signed-off-by: Choong YinThong This failed autobuilder testing in multilib builds: https://autobuilder.yocto.io/builders/nightly-world-lsb/builds/214/steps/BuildImages/logs/stdio https://autobuilder.yocto.io/builders/nightly-world/builds/214/steps/BuildImages/logs/stdio Probably you need ${BPN}, not ${PN}. > meta/recipes-extended/logrotate/logrotate_3.9.1.bb | 19 > +++ > 1 file changed, 15 insertions(+), 4 deletions(-) > > diff --git a/meta/recipes-extended/logrotate/logrotate_3.9.1.bb > b/meta/recipes-extended/logrotate/logrotate_3.9.1.bb > index 9c2dfe0..5cbd9ff 100644 > --- a/meta/recipes-extended/logrotate/logrotate_3.9.1.bb > +++ b/meta/recipes-extended/logrotate/logrotate_3.9.1.bb > @@ -1,6 +1,6 @@ > SUMMARY = "Rotates, compresses, removes and mails system log files" > SECTION = "console/utils" > -HOMEPAGE = "https://fedorahosted.org/logrotate/; > +HOMEPAGE = "https://github.com/logrotate/logrotate/issues; > LICENSE = "GPLv2" > > # TODO: logrotate 3.8.8 adds autotools/automake support, update > recipe to use it. > @@ -10,14 +10,25 @@ DEPENDS="coreutils popt" > > LIC_FILES_CHKSUM = > "file://COPYING;md5=18810669f13b87348459e611d31ab760" > > -SRC_URI = "https://fedorahosted.org/releases/l/o/logrotate/logrotate > -${PV}.tar.gz \ > +# When updating logrotate to latest upstream, SRC_URI should point > to > +# a proper release tarball from https://github.com/logrotate/logrota > te/releases > +# and we have to take the snapshot for now because there is no such # > +tarball available for 3.9.1. > + > +S = "${WORKDIR}/${PN}-r3-9-1" > + > +UPSTREAM_CHECK_URI = "https://github.com/${PN}/${PN}/releases; > + > +SRC_URI = "https://github.com/${PN}/${PN}/archive/r3-9-1.tar.gz \ > file://act-as-mv-when-rotate.patch \ > file://update-the-manual.patch \ > file://disable-check-different-filesystems.patch \ > " > > -SRC_URI[md5sum] = "4492b145b6d542e4a2f41e77fa199ab0" > -SRC_URI[sha256sum] = > "022769e3288c80981559a8421703c88e8438b447235e36dd3c8e97cd94c52545" > +# Checksum changed due to tarball source folder changes in upstream > + > +SRC_URI[md5sum] = "8572b7c2cf9ade09a8a8e10098500fb3" > +SRC_URI[sha256sum] = > "5bf8e478c428e7744fefa465118f8296e7e771c981fb6dffb7527856a0ea3617" > > PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'acl > selinux', d)}" > > -- > 2.7.4 > -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 4/4] native.bbclass: Use fixed DISTRO_FEATURES
On Fri, 2017-04-07 at 09:09 +0300, Jussi Kukkonen wrote: > There seems to be no advantage to letting distro features affect > native builds. There is a significant disadvantage: a change to > DISTRO_FEATURES will trigger a lot of unnecessary native tasks. In a > test like this: > $ bitbake core-image-minimal > # append " systemd" to DISTRO_FEATURES > $ bitbake core-image-minimal > The latter build takes 44 minutes (28%) of cpu-time less with this > patch (skipping 135 native tasks). Sadly wall clock time was not > affected as glibc remains the bottleneck. > > Set DISTRO_FEATURES to a fixed value for native recipes to avoid the > unnecessary tasks: currently the default value is empty. > > Do the variable setting in native_virtclass_handler() because > otherwise > it could still be overridden by appends and the feature backfilling. > Shuffle the early returns so DISTRO_FEATURES gets set as long as > the packagename ends with "-native". > > Signed-off-by: Jussi Kukkonen> --- > meta/classes/native.bbclass | 12 > meta/conf/bitbake.conf | 2 ++ > 2 files changed, 10 insertions(+), 4 deletions(-) > > diff --git a/meta/classes/native.bbclass > b/meta/classes/native.bbclass > index 1919fbc..fbca4c6 100644 > --- a/meta/classes/native.bbclass > +++ b/meta/classes/native.bbclass > @@ -121,14 +121,18 @@ PATH_prepend = "${COREBASE}/scripts/native- > intercept:" > SSTATE_SCAN_CMD ?= "${SSTATE_SCAN_CMD_NATIVE}" > > python native_virtclass_handler () { > -classextend = e.data.getVar('BBCLASSEXTEND') or "" > -if "native" not in classextend: > -return > - > pn = e.data.getVar("PN") > if not pn.endswith("-native"): > return > > +# Set features here to prevent appends and distro features > backfill > +# from modifying native distro features > +d.setVar("DISTRO_FEATURES", "${NATIVE_DISTRO_FEATURES}") > + > +classextend = e.data.getVar('BBCLASSEXTEND') or "" > +if "native" not in classextend: > +return > + > def map_dependencies(varname, d, suffix = ""): > if suffix: > varname = varname + "_" + suffix > diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf > index 5e98d45..78a3470 100644 > --- a/meta/conf/bitbake.conf > +++ b/meta/conf/bitbake.conf > @@ -789,6 +789,8 @@ MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= "" > EXTRA_IMAGE_FEATURES ??= "" > IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}" > > +NATIVE_DISTRO_FEATURES ?= "" > + > DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit bluez5 gobject- > introspection-data ldconfig" > MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode" Thanks for working on this, looks good. Most native variables are called XXX_NATIVE, not NATIVE_XXX so we might want to make this match? Also, one question. Does this have any effect on qemu-native? Does qemu-native need/use x11 today? Cheers, Richard -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/1] image.inc/qemu.inc: preserve directories to be used by runqemu
On 04/05/2017 07:22 PM, Richard Purdie wrote: On Wed, 2017-04-05 at 20:06 +1000, Nathan Rossi wrote: On 30 March 2017 at 15:12, Chen Qiwrote: The 'recipe-sysroot' and 'recipe-sysroot-native' directories need to be preserved for runqemu to work correctly. Otherwise, when 'rm_work' is enabled, these directories are removed, thus causing errors when using runqemu . [YOCTO #11266] [YOCTO #11193] Signed-off-by: Chen Qi --- meta/classes/image.bbclass | 1 + meta/conf/machine/include/qemu.inc | 3 +++ 2 files changed, 4 insertions(+) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 405fd73..cac3a5f 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -8,6 +8,7 @@ inherit ${SDKEXTCLASS} TOOLCHAIN_TARGET_TASK += "${PACKAGE_INSTALL}" TOOLCHAIN_TARGET_TASK_ATTEMPTONLY += "${PACKAGE_INSTALL_ATTEMPTONLY}" POPULATE_SDK_POST_TARGET_COMMAND += "rootfs_sysroot_relativelinks; " +RM_WORK_EXCLUDE_ITEMS_append = " ${IMAGE_RM_WORK_EXCLUDE_ITEMS}" LICENSE = "MIT" PACKAGES = "" diff --git a/meta/conf/machine/include/qemu.inc b/meta/conf/machine/include/qemu.inc index 0e4103b..8345c08 100644 --- a/meta/conf/machine/include/qemu.inc +++ b/meta/conf/machine/include/qemu.inc @@ -29,3 +29,6 @@ KERNEL_FEATURES_append_pn-linux-yocto = " features/nfsd/nfsd-enable.scc" MACHINE_EXTRA_RRECOMMENDS += "rng-tools" IMAGE_CLASSES += "qemuboot" + +# These two directories need to be preserved for runqemu to work well +IMAGE_RM_WORK_EXCLUDE_ITEMS = "recipe-sysroot recipe-sysroot- native" Should this be setup by qemuboot.bbclass instead, so that it applies to any image/machine (even those that do not use qemu.inc) that is intended to be used by runqemu? I'm trying to decide what the best approach here is. I'm thinking it might be better to: a) make qemu builds depend on qemu-helper-native b) make that preserve its native sysroot (not the target one). c) have runqemu look at qemu-helper-native I think that should solve problems and work better than the above? Cheers, Richard Hi Richard, I've sent out a new patch series. The solution is a little bit different from the above. As 'tunctl' is from qemu-helper-native, and 'qemu-xxx' is from qemu-native, I choose to have runqemu look at things under sysroots-components. The STAGING_DIR_NATIVE and STAGING_BINDIR_NATIVE logic is still preserved so that runqemu still works well in SDK. I've used the following test cases for testing. 1) runqemu + rm_work 2) oe-selftest -r runqemu 3) runqemu + SDK 4) runqemu + Ext SDK Best Regards, Chen Qi -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/2] qemuboot.bbclass: add two vars for use by runqemu
Add STAGING_DIR_TUNCTL_NATIVE and STAGING_DIR_QEMU_BINDIR_NATIVE so that runqemu could find 'tunctl' and 'qemu-xxx' binaries to run correctly. [YOCTO #11266] [YOCTO #11193] Signed-off-by: Chen Qi--- meta/classes/qemuboot.bbclass | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/meta/classes/qemuboot.bbclass b/meta/classes/qemuboot.bbclass index 3ca97ca..bd2102b 100644 --- a/meta/classes/qemuboot.bbclass +++ b/meta/classes/qemuboot.bbclass @@ -67,12 +67,15 @@ QB_NETWORK_DEVICE ?= "-device virtio-net-pci,netdev=net0,mac=@MAC@" # Create qemuboot.conf addtask do_write_qemuboot_conf after do_rootfs before do_image IMGDEPLOYDIR ?= "${WORKDIR}/deploy-${PN}-image-complete" +STAGING_DIR_TUNCTL_NATIVE = "${STAGING_DIR}-components/${BUILD_ARCH}/qemu-helper-native" +STAGING_DIR_QEMU_BINDIR_NATIVE = "${STAGING_DIR}-components/${BUILD_ARCH}/qemu-native/usr/bin" def qemuboot_vars(d): build_vars = ['MACHINE', 'TUNE_ARCH', 'DEPLOY_DIR_IMAGE', 'KERNEL_IMAGETYPE', 'IMAGE_NAME', 'IMAGE_LINK_NAME', 'STAGING_DIR_NATIVE', 'STAGING_BINDIR_NATIVE', -'STAGING_DIR_HOST'] +'STAGING_DIR_HOST', 'STAGING_DIR_TUNCTL_NATIVE', +'STAGING_DIR_QEMU_BINDIR_NATIVE'] return build_vars + [k for k in d.keys() if k.startswith('QB_')] do_write_qemuboot_conf[vardeps] += "${@' '.join(qemuboot_vars(d))}" -- 1.9.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 2/2] runqemu: make use of two new vars
Make use of STAGING_DIR_TUNCTL_NATIVE and STAGING_DIR_QEMU_BINDIR_NATIVE to run correctly. In this way, runqemu would still work when 'rm_work' is enabled. [YOCTO #11266] [YOCTO #11193] Signed-off-by: Chen Qi--- scripts/runqemu | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/scripts/runqemu b/scripts/runqemu index 23c9efb..cde9ae5 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -908,7 +908,10 @@ class BaseConfig(object): gid = os.getgid() uid = os.getuid() logger.info("Setting up tap interface under sudo") -cmd = 'sudo %s %s %s %s' % (self.qemuifup, uid, gid, self.get('STAGING_DIR_NATIVE')) +if os.path.exists(self.get('STAGING_DIR_TUNCTL_NATIVE')): +cmd = 'sudo %s %s %s %s' % (self.qemuifup, uid, gid, self.get('STAGING_DIR_TUNCTL_NATIVE')) +else: +cmd = 'sudo %s %s %s %s' % (self.qemuifup, uid, gid, self.get('STAGING_DIR_NATIVE')) tap = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).stdout.read().decode('utf-8').rstrip('\n') lockfile = os.path.join(lockdir, tap) self.lock = lockfile + '.lock' @@ -1041,7 +1044,10 @@ class BaseConfig(object): if not qemu_system: raise Exception("Failed to boot, QB_SYSTEM_NAME is NULL!") -qemu_bin = '%s/%s' % (self.get('STAGING_BINDIR_NATIVE'), qemu_system) +if os.path.exists(self.get('STAGING_DIR_QEMU_BINDIR_NATIVE')): +qemu_bin = '%s/%s' % (self.get('STAGING_DIR_QEMU_BINDIR_NATIVE'), qemu_system) +else: +qemu_bin = '%s/%s' % (self.get('STAGING_BINDIR_NATIVE'), qemu_system) # It is possible to have qemu-native in ASSUME_PROVIDED, and it won't # find QEMU in sysroot, it needs to use host's qemu. -- 1.9.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 0/2] Fix runqemu problem when 'rm_work' is enabled
The following changes since commit 633ad6c9f436f5d2b6ee1a005b697661a054a394: oeqa/runtime/utils/targetbuildproject: use parent classes defaults tmpdir (2017-04-06 10:13:39 +0100) are available in the git repository at: git://git.pokylinux.org/poky-contrib ChenQi/runqemu_rm_work http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/runqemu_rm_work Chen Qi (2): qemuboot.bbclass: add two vars for use by runqemu runqemu: make use of two new vars meta/classes/qemuboot.bbclass | 5 - scripts/runqemu | 10 -- 2 files changed, 12 insertions(+), 3 deletions(-) -- 1.9.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 0/4] Fix some incorrect TARGET_-* flags
On Thu, 2017-04-06 at 14:09 +0200, liu.min...@gmail.com wrote: > From: Ming Liu> > I had found a lot of churn in sysroots when multiple MACHINEs are > sharing a same build folder, which is the case in my company, after > digging into it, I found it's caused by the TARGET_-* flags, they > are exported but not in use at all, they should be replaced by > particular flags for cross,crosssdk,nativesdk,cross-canadian, native > class does not need that because it's already done in: > > commit 05a70ac30b37cab0952f1b9df501993a9dec70da: > [ native.bbclass: Override TARGET_ flags too ] Whilst I understand why you want to do this, unfortunately these change did break our automated tests, e.g.: https://autobuilder.yocto.io/builders/nightly-x86-lsb/builds/232/steps/BuildImages/logs/stdio https://autobuilder.yocto.io/builders/nightly-arm/builds/281/steps/BuildImages/logs/stdio I think roughly what happened is that binutils-native was built on a machine which doesn't default to PIC (providing libiberty), then prelink-native was attempted on a machine that does. The result is the error you see. Previously this happened to work since enough target flags leaked into the native ones to avoid the problem. After your change it breaks. We're going to have to look into and fix this before I can merge these changes... Cheers, Richard -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] python-pycurl: create python3-pycurl recipe
On Wed, 2017-04-05 at 10:01 +0300, Dmitry Rozhkov wrote: > The python-pycurl recipe can be used with python2 only even > though python3 is officially supported by upstream. > > Create python3-pycurl recipe enabling the pycurl module for > python3. This failed autobuilder tests: https://autobuilder.yocto.io/builders/nightly-world-lsb/builds/214/step s/BuildImages/logs/stdio > Signed-off-by: Dmitry Rozhkov> --- > meta/recipes-devtools/python/python-pycurl.inc | 31 > + > .../python/python-pycurl_7.21.5.bb | 32 +--- > -- > .../python/python3-pycurl_7.21.5.bb| 5 > 3 files changed, 37 insertions(+), 31 deletions(-) > create mode 100644 meta/recipes-devtools/python/python-pycurl.inc > create mode 100644 meta/recipes-devtools/python/python3- > pycurl_7.21.5.bb > > diff --git a/meta/recipes-devtools/python/python-pycurl.inc > b/meta/recipes-devtools/python/python-pycurl.inc > new file mode 100644 > index 000..d26318b > --- /dev/null > +++ b/meta/recipes-devtools/python/python-pycurl.inc > @@ -0,0 +1,31 @@ > +SUMMARY = "Python bindings for libcurl" > +HOMEPAGE = "http://pycurl.sourceforge.net/; > +SECTION = "devel/python" > +LICENSE = "LGPLv2.1+ | MIT" > +LIC_FILES_CHKSUM = > "file://README.rst;beginline=166;endline=182;md5=a84a1caa65b89d4584b6 > 93d3680062fb \ > +file://COPYING- > LGPL;md5=3579a9fd0221d49a237aaa33492f988c \ > +file://COPYING- > MIT;md5=b7e434aeb228ed731c00bcf177e79b19" > + > +DEPENDS = "curl ${PYTHON_PN}" > +RDEPENDS_${PN} = "${PYTHON_PN}-core curl" > +SRCNAME = "pycurl" > + > +SRC_URI = "\ > + http://${SRCNAME}.sourceforge.net/download/${SRCNAME}- > ${PV}.tar.gz;name=archive \ > + file://no-static-link.patch \ > +" > + > +SRC_URI[archive.md5sum] = "bca7bf47320082588db544ced2ba8717" > +SRC_URI[archive.sha256sum] = > "8a1e0eb55573388275a1d6c2534ca4cfca5d7fa772b99b505c08fa149b27aed0" > +S = "${WORKDIR}/${SRCNAME}-${PV}" > + > +BBCLASSEXTEND = "native" > + > +# Ensure the docstrings are generated as make clean will remove them > +do_compile_prepend() { > + ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} > setup.py docstrings > +} > + > +do_install_append() { > + rm -rf ${D}${datadir}/share > +} > diff --git a/meta/recipes-devtools/python/python-pycurl_7.21.5.bb > b/meta/recipes-devtools/python/python-pycurl_7.21.5.bb > index 7b41f6d..eb70cea 100644 > --- a/meta/recipes-devtools/python/python-pycurl_7.21.5.bb > +++ b/meta/recipes-devtools/python/python-pycurl_7.21.5.bb > @@ -1,33 +1,3 @@ > -SUMMARY = "Python bindings for libcurl" > -HOMEPAGE = "http://pycurl.sourceforge.net/; > -SECTION = "devel/python" > -LICENSE = "LGPLv2.1+ | MIT" > -LIC_FILES_CHKSUM = > "file://README.rst;beginline=166;endline=182;md5=a84a1caa65b89d4584b6 > 93d3680062fb \ > -file://COPYING- > LGPL;md5=3579a9fd0221d49a237aaa33492f988c \ > -file://COPYING- > MIT;md5=b7e434aeb228ed731c00bcf177e79b19" > - > -DEPENDS = "curl python" > -RDEPENDS_${PN} = "python-core curl" > -SRCNAME = "pycurl" > - > -SRC_URI = "\ > - http://${SRCNAME}.sourceforge.net/download/${SRCNAME}- > ${PV}.tar.gz;name=archive \ > - file://no-static-link.patch \ > -" > - > -SRC_URI[archive.md5sum] = "bca7bf47320082588db544ced2ba8717" > -SRC_URI[archive.sha256sum] = > "8a1e0eb55573388275a1d6c2534ca4cfca5d7fa772b99b505c08fa149b27aed0" > -S = "${WORKDIR}/${SRCNAME}-${PV}" > +require python-pycurl.inc > > inherit distutils > - > -BBCLASSEXTEND = "native" > - > -# Ensure the docstrings are generated as make clean will remove them > -do_compile_prepend() { > - ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} > setup.py docstrings > -} > - > -do_install_append() { > - rm -rf ${D}${datadir}/share > -} > diff --git a/meta/recipes-devtools/python/python3-pycurl_7.21.5.bb > b/meta/recipes-devtools/python/python3-pycurl_7.21.5.bb > new file mode 100644 > index 000..5d11192 > --- /dev/null > +++ b/meta/recipes-devtools/python/python3-pycurl_7.21.5.bb > @@ -0,0 +1,5 @@ > +FILESEXTRAPATHS_prepend := "${THISDIR}/python-pycurl:" > + > +require python-pycurl.inc > + > +inherit distutils3 > -- > 2.9.3 > -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH v3 4/8] logrotate: replace fedorahosted.org SRC_URI with github.com source
On Thu, 2017-04-06 at 01:35 -0700, yin.thong.cho...@intel.com wrote: > From: Choong YinThong> > fedorahosted.org was retired on March 1st, 2017. This is to > update the SRC_URI to point to github.com. > > [YOCTO #11226] > > Signed-off-by: Choong YinThong This failed autobuilder testing in multilib builds: https://autobuilder.yocto.io/builders/nightly-world-lsb/builds/214/steps/BuildImages/logs/stdio https://autobuilder.yocto.io/builders/nightly-world/builds/214/steps/BuildImages/logs/stdio Probably you need ${BPN}, not ${PN}. > meta/recipes-extended/logrotate/logrotate_3.9.1.bb | 19 > +++ > 1 file changed, 15 insertions(+), 4 deletions(-) > > diff --git a/meta/recipes-extended/logrotate/logrotate_3.9.1.bb > b/meta/recipes-extended/logrotate/logrotate_3.9.1.bb > index 9c2dfe0..5cbd9ff 100644 > --- a/meta/recipes-extended/logrotate/logrotate_3.9.1.bb > +++ b/meta/recipes-extended/logrotate/logrotate_3.9.1.bb > @@ -1,6 +1,6 @@ > SUMMARY = "Rotates, compresses, removes and mails system log files" > SECTION = "console/utils" > -HOMEPAGE = "https://fedorahosted.org/logrotate/; > +HOMEPAGE = "https://github.com/logrotate/logrotate/issues; > LICENSE = "GPLv2" > > # TODO: logrotate 3.8.8 adds autotools/automake support, update > recipe to use it. > @@ -10,14 +10,25 @@ DEPENDS="coreutils popt" > > LIC_FILES_CHKSUM = > "file://COPYING;md5=18810669f13b87348459e611d31ab760" > > -SRC_URI = "https://fedorahosted.org/releases/l/o/logrotate/logrotate > -${PV}.tar.gz \ > +# When updating logrotate to latest upstream, SRC_URI should point > to > +# a proper release tarball from https://github.com/logrotate/logrota > te/releases > +# and we have to take the snapshot for now because there is no such > +# tarball available for 3.9.1. > + > +S = "${WORKDIR}/${PN}-r3-9-1" > + > +UPSTREAM_CHECK_URI = "https://github.com/${PN}/${PN}/releases; > + > +SRC_URI = "https://github.com/${PN}/${PN}/archive/r3-9-1.tar.gz \ > file://act-as-mv-when-rotate.patch \ > file://update-the-manual.patch \ > file://disable-check-different-filesystems.patch \ > " > > -SRC_URI[md5sum] = "4492b145b6d542e4a2f41e77fa199ab0" > -SRC_URI[sha256sum] = > "022769e3288c80981559a8421703c88e8438b447235e36dd3c8e97cd94c52545" > +# Checksum changed due to tarball source folder changes in upstream > + > +SRC_URI[md5sum] = "8572b7c2cf9ade09a8a8e10098500fb3" > +SRC_URI[sha256sum] = > "5bf8e478c428e7744fefa465118f8296e7e771c981fb6dffb7527856a0ea3617" > > PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'acl > selinux', d)}" > > -- > 2.7.4 > -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 2/3] yocto-compat-layer: limit report of signature changes
On Fri, 2017-04-07 at 08:38 +1200, Paul Eggleton wrote: > On Thursday, 6 April 2017 1:36:05 AM NZST you wrote: > >AssertionError: False is not true : Layer meta- changed 120 > > signatures, initial differences (first hash without, second with layer): > > BTW, rather than self.assertTrue(False, ... ) you can just use self.fail(...) > and then you avoid this ugly "False is not True" bit. I suspected that there must be something like that when changing the message, but then was too lazy to look it up - thanks for pointing it out ;-} I'll change that in a V2. -- Best Regards, Patrick Ohly The content of this message is my personal opinion only and although I am an employee of Intel, the statements I make here in no way represent Intel's position on the issue, nor am I authorized to speak on behalf of Intel on this matter. -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 2/4] mkfontscale: Remove x11 requirement
Build does not need libx11, so also does not need the distro feature. Signed-off-by: Jussi Kukkonen--- meta/recipes-graphics/xorg-app/mkfontscale_1.1.2.bb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/meta/recipes-graphics/xorg-app/mkfontscale_1.1.2.bb b/meta/recipes-graphics/xorg-app/mkfontscale_1.1.2.bb index 31cf186..066f4a7 100644 --- a/meta/recipes-graphics/xorg-app/mkfontscale_1.1.2.bb +++ b/meta/recipes-graphics/xorg-app/mkfontscale_1.1.2.bb @@ -10,6 +10,9 @@ is used by the mkfontdir program." DEPENDS = "util-macros-native zlib libfontenc freetype xproto" +# We don't actually need x11 as xorg-app-common claims +REQUIRED_DISTRO_FEATURES = "" + BBCLASSEXTEND = "native" LIC_FILES_CHKSUM = "file://COPYING;md5=2e0d129d05305176d1a790e0ac1acb7f" -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 0/4] Use fixed DISTRO_FEATURES for native
Avoid signifant native task churn when DISTRO_FEATURES is changed by defining a fixed DISTRO_FEATURES value (default is "") for native recipes. The xorg changes are all removals of x11 requirements (that were not real) from recipes that have native versions. I added a configuration default in bitbake.conf, let me know if this is not a good place. This seems to work fine (tested multiple different images) but I am not really sure how to test it further... Suggestions are welcome, as are results from autobuilder. Thanks, Jussi The following changes since commit 633ad6c9f436f5d2b6ee1a005b697661a054a394: oeqa/runtime/utils/targetbuildproject: use parent classes defaults tmpdir (2017-04-06 10:13:39 +0100) are available in the git repository at: git://git.yoctoproject.org/poky-contrib jku/native-distro-features http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=jku/native-distro-features Jussi Kukkonen (4): mkfontdir: Remove x11 requirement mkfontscale: Remove x11 requirement xorg-font-common.inc: Remove x11 requirement native.bbclass: Use fixed DISTRO_FEATURES meta/classes/native.bbclass | 12 meta/conf/bitbake.conf | 2 ++ meta/recipes-graphics/xorg-app/mkfontdir_1.0.7.bb| 4 meta/recipes-graphics/xorg-app/mkfontscale_1.1.2.bb | 3 +++ meta/recipes-graphics/xorg-font/xorg-font-common.inc | 3 --- 5 files changed, 17 insertions(+), 7 deletions(-) -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 4/4] native.bbclass: Use fixed DISTRO_FEATURES
There seems to be no advantage to letting distro features affect native builds. There is a significant disadvantage: a change to DISTRO_FEATURES will trigger a lot of unnecessary native tasks. In a test like this: $ bitbake core-image-minimal # append " systemd" to DISTRO_FEATURES $ bitbake core-image-minimal The latter build takes 44 minutes (28%) of cpu-time less with this patch (skipping 135 native tasks). Sadly wall clock time was not affected as glibc remains the bottleneck. Set DISTRO_FEATURES to a fixed value for native recipes to avoid the unnecessary tasks: currently the default value is empty. Do the variable setting in native_virtclass_handler() because otherwise it could still be overridden by appends and the feature backfilling. Shuffle the early returns so DISTRO_FEATURES gets set as long as the packagename ends with "-native". Signed-off-by: Jussi Kukkonen--- meta/classes/native.bbclass | 12 meta/conf/bitbake.conf | 2 ++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/meta/classes/native.bbclass b/meta/classes/native.bbclass index 1919fbc..fbca4c6 100644 --- a/meta/classes/native.bbclass +++ b/meta/classes/native.bbclass @@ -121,14 +121,18 @@ PATH_prepend = "${COREBASE}/scripts/native-intercept:" SSTATE_SCAN_CMD ?= "${SSTATE_SCAN_CMD_NATIVE}" python native_virtclass_handler () { -classextend = e.data.getVar('BBCLASSEXTEND') or "" -if "native" not in classextend: -return - pn = e.data.getVar("PN") if not pn.endswith("-native"): return +# Set features here to prevent appends and distro features backfill +# from modifying native distro features +d.setVar("DISTRO_FEATURES", "${NATIVE_DISTRO_FEATURES}") + +classextend = e.data.getVar('BBCLASSEXTEND') or "" +if "native" not in classextend: +return + def map_dependencies(varname, d, suffix = ""): if suffix: varname = varname + "_" + suffix diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 5e98d45..78a3470 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -789,6 +789,8 @@ MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= "" EXTRA_IMAGE_FEATURES ??= "" IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}" +NATIVE_DISTRO_FEATURES ?= "" + DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit bluez5 gobject-introspection-data ldconfig" MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode" -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 3/4] xorg-font-common.inc: Remove x11 requirement
Remove the fake news about mkfontscale-native needing x11. Signed-off-by: Jussi Kukkonen--- meta/recipes-graphics/xorg-font/xorg-font-common.inc | 3 --- 1 file changed, 3 deletions(-) diff --git a/meta/recipes-graphics/xorg-font/xorg-font-common.inc b/meta/recipes-graphics/xorg-font/xorg-font-common.inc index cdbebcf..82a8487 100644 --- a/meta/recipes-graphics/xorg-font/xorg-font-common.inc +++ b/meta/recipes-graphics/xorg-font/xorg-font-common.inc @@ -16,9 +16,6 @@ S = "${WORKDIR}/${XORG_PN}-${PV}" inherit autotools pkgconfig distro_features_check -# The mkfontscale-native requires x11 in DISTRO_FEATURES -REQUIRED_DISTRO_FEATURES = "x11" - EXTRA_OEMAKE += "FCCACHE=/bin/true UTIL_DIR=${STAGING_DIR_TARGET}\$\(MAPFILES_PATH\)" do_install_append() { -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/4] mkfontdir: Remove x11 requirement
Build does not need libx11, so also does not need the distro feature. Signed-off-by: Jussi Kukkonen--- meta/recipes-graphics/xorg-app/mkfontdir_1.0.7.bb | 4 1 file changed, 4 insertions(+) diff --git a/meta/recipes-graphics/xorg-app/mkfontdir_1.0.7.bb b/meta/recipes-graphics/xorg-app/mkfontdir_1.0.7.bb index a453e24..371d9a1 100644 --- a/meta/recipes-graphics/xorg-app/mkfontdir_1.0.7.bb +++ b/meta/recipes-graphics/xorg-app/mkfontdir_1.0.7.bb @@ -11,6 +11,10 @@ files." PE = "1" PR = "${INC_PR}.0" +# We don't actually need x11 as xorg-app-common claims +DEPENDS = "util-macros-native" +REQUIRED_DISTRO_FEATURES = "" + RDEPENDS_${PN} += "mkfontscale" RDEPENDS_${PN}_class-native += "mkfontscale-native" -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core