Re: [OE-core] [PATCH 20/30] oeqa/selftest/cases: runqemu enable thraded runs

2017-07-12 Thread Patrick Ohly
s/thraded/threaded/ in the subject. There are more spelling mistakes
elsewhere ("wrapper methos"). I don't know how important that is.

On Tue, 2017-07-11 at 15:23 -0500, Aníbal Limón wrote:
> - Update to use wrappers {bitbake,get_bb_var} from OESelfTestCase class.

s/OESelfTestCase/OESelftestTestCase/

Sorry to be pedantic, but I wanted to look up what these wrappers do and
couldn't even find the class ;-}

I've found them in the "oeqa/selftest/case: Add wrappers to
utils.commands modules" patch. I'm a bit worried that this entire patch
series is introducing concepts and methods without any documentation or
explanations why things are done this way. I suspect it will make it
very hard to write selftests correctly.

For example, this patch and others like it seem fairly arbitrary. It
doesn't explain why self.bitbake() is better than bitbake(). If in some
future patch or test someone were to use bitbake() when they should have
used self.bitbake() it's not going to be obvious either whether that is
correct.

Perhaps all OE tests should have these wrappers and only
OESelftestTestCase does something special with them? Then we can
gradually replace the direct calls to oeqa.utils.commands completely.

Add also a wrapper for runqemu and we can get rid of "from
oeqa.utils.commands import" completely.

> - Run into the main thread because it needs tinfoil to run.
> 
> Signed-off-by: Aníbal Limón 
> ---
>  meta/lib/oeqa/selftest/cases/runqemu.py | 7 +++
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/meta/lib/oeqa/selftest/cases/runqemu.py 
> b/meta/lib/oeqa/selftest/cases/runqemu.py
> index 4050a4123ba..e30cb24046f 100644
> --- a/meta/lib/oeqa/selftest/cases/runqemu.py
> +++ b/meta/lib/oeqa/selftest/cases/runqemu.py
> @@ -6,12 +6,11 @@ import re
>  import logging
>  
>  from oeqa.selftest.case import OESelftestTestCase
> -from oeqa.utils.commands import bitbake, runqemu, get_bb_var
> +from oeqa.utils.commands import runqemu
>  from oeqa.core.decorator.oeid import OETestID
>  
>  class RunqemuTests(OESelftestTestCase):
>  """Runqemu test class"""
> -
>  image_is_ready = False
>  deploy_dir_image = ''
>  
> @@ -37,8 +36,8 @@ SYSLINUX_TIMEOUT = "10"
>  )
>  
>  if not RunqemuTests.image_is_ready:
> -RunqemuTests.deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
> -bitbake(self.recipe)
> +RunqemuTests.deploy_dir_image = 
> self.get_bb_var('DEPLOY_DIR_IMAGE')
> +self.bitbake(self.recipe)
>  RunqemuTests.image_is_ready = True
>  
>  @OETestID(2001)

-- 
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


Re: [OE-core] [PATCH 3/3] libepoxy: Upgrade 1.4.2 -> 1.4.3

2017-07-12 Thread Jussi Kukkonen
On 12 July 2017 at 08:11, Khem Raj  wrote:

> On Tue, Jul 11, 2017 at 9:56 PM, Andrea Galbusera 
> wrote:
> > I may be in the need to craft something locally to unbreak building with
> > current master... Could you please shed some light on how this should be
> > done then? Is this a matter of completely removing either mesa-gl or
> > userland from gtk+3 deps or a more selective change to avoid the clash in
> > recipe-sysroot?
>
> Firstly, determine where this file belongs to. If it is part of
> egl/gles then it should go to userland, otherwise it should be
> provided by mesa when using userland for graphics
>

It's a "generic" Khronos platform header (so not part of EGL or GLES[1-3]
but needed by all), in a perfect world we could use any version of it ...
unfortunately "Adopters may modify this file to suit their platform" and of
course that's what Userland has done.

I think I'll just send a patch to mesa-gl recipe to not install the header.
If someone wants to solve this properly with the upstreams, be my guest.

Jussi
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [V2 PATCH] dhcp: fix shutdown not work by SIGTERM while bind9 enable threads

2017-07-12 Thread Hongxu Jia
In https://source.isc.org/git/bind9.git, since the following
commit applied:
...
commit b99bfa184bc9375421b5df915eea7dfac6a68a99
Author: Evan Hunt 
Date:   Wed Apr 10 13:49:57 2013 -0700

[master] unify internal and export libraries

3550.   [func]  Unified the internal and export versions of the
BIND libraries, allowing external clients to use
the same libraries as BIND. [RT #33131]
...
(git show b99bfa184bc9375421b5df915eea7dfac6a68a99 -- ./lib/isc/unix/app.c)

In this commit, if bind9 enable threads(ISC_PLATFORM_USETHREADS),
it blocks signal SIGHUP, SIGINT and SIGTERM in isc__app_ctxstart.
Which caused dhclient/dhcpd could not be stopped by SIGTERM.

It caused systemd's reboot hung which send SIGTERM by default.

Signed-off-by: Hongxu Jia 
---
 ...all-to-isc_app_ctxstart-to-not-get-signal.patch | 81 ++
 meta/recipes-connectivity/dhcp/dhcp_4.3.5.bb   |  1 +
 2 files changed, 82 insertions(+)
 create mode 100644 
meta/recipes-connectivity/dhcp/dhcp/Moved-the-call-to-isc_app_ctxstart-to-not-get-signal.patch

diff --git 
a/meta/recipes-connectivity/dhcp/dhcp/Moved-the-call-to-isc_app_ctxstart-to-not-get-signal.patch
 
b/meta/recipes-connectivity/dhcp/dhcp/Moved-the-call-to-isc_app_ctxstart-to-not-get-signal.patch
new file mode 100644
index 000..9b43f96
--- /dev/null
+++ 
b/meta/recipes-connectivity/dhcp/dhcp/Moved-the-call-to-isc_app_ctxstart-to-not-get-signal.patch
@@ -0,0 +1,81 @@
+From e8c30bac53f8baeb80f87b445f42259cc8984fb5 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia 
+Date: Wed, 12 Jul 2017 03:05:13 -0400
+Subject: [PATCH] Moved the call to isc_app_ctxstart() to not get signal block
+ by all threads
+
+Signed-off-by: Francis Dupont 
+
+In https://source.isc.org/git/bind9.git, since the following
+commit applied:
+...
+commit b99bfa184bc9375421b5df915eea7dfac6a68a99
+Author: Evan Hunt 
+Date:   Wed Apr 10 13:49:57 2013 -0700
+
+[master] unify internal and export libraries
+
+3550.   [func]  Unified the internal and export versions of the
+BIND libraries, allowing external clients to use
+the same libraries as BIND. [RT #33131]
+...
+(git show b99bfa184bc9375421b5df915eea7dfac6a68a99 -- ./lib/isc/unix/app.c)
+
+In this commit, if bind9 enable threads(ISC_PLATFORM_USETHREADS),
+it blocks signal SIGHUP, SIGINT and SIGTERM in isc__app_ctxstart.
+Which caused dhclient/dhcpd could not be stopped by SIGTERM.
+
+It caused systemd's reboot hung which send SIGTERM by default.
+
+Upstream-Status: Backport [https://source.isc.org/git/dhcp.git]
+Signed-off-by: Hongxu Jia 
+---
+ omapip/isclib.c | 25 +++--
+ 1 file changed, 15 insertions(+), 10 deletions(-)
+
+diff --git a/omapip/isclib.c b/omapip/isclib.c
+index 13f0d3e..4af04b6 100644
+--- a/omapip/isclib.c
 b/omapip/isclib.c
+@@ -185,16 +185,6 @@ dhcp_context_create(int flags,
+   if (result != ISC_R_SUCCESS)
+   goto cleanup;
+ 
+-  result = isc_app_ctxstart(dhcp_gbl_ctx.actx);
+-  if (result != ISC_R_SUCCESS)
+-  return (result);
+-  dhcp_gbl_ctx.actx_started = ISC_TRUE;
+-
+-  /* Not all OSs support suppressing SIGPIPE through socket
+-   * options, so set the sigal action to be ignore.  This allows
+-   * broken connections to fail gracefully with EPIPE on writes */
+-  handle_signal(SIGPIPE, SIG_IGN);
+-
+   result = isc_taskmgr_createinctx(dhcp_gbl_ctx.mctx,
+dhcp_gbl_ctx.actx,
+1, 0,
+@@ -217,6 +207,21 @@ dhcp_context_create(int flags,
+   result = isc_task_create(dhcp_gbl_ctx.taskmgr, 0, 
&dhcp_gbl_ctx.task);
+   if (result != ISC_R_SUCCESS)
+   goto cleanup;
++
++  result = isc_app_ctxstart(dhcp_gbl_ctx.actx);
++  if (result != ISC_R_SUCCESS)
++  return (result);
++  dhcp_gbl_ctx.actx_started = ISC_TRUE;
++
++  /* Not all OSs support suppressing SIGPIPE through socket
++   * options, so set the sigal action to be ignore.  This allows
++   * broken connections to fail gracefully with EPIPE on writes */
++  handle_signal(SIGPIPE, SIG_IGN);
++
++  /* Reset handlers installed by isc_app_ctxstart()
++   * to default for control-c and kill */
++  handle_signal(SIGINT, SIG_DFL);
++  handle_signal(SIGTERM, SIG_DFL);
+   }
+ 
+ #if defined (NSUPDATE)
+-- 
+2.8.1
+
diff --git a/meta/recipes-connectivity/dhcp/dhcp_4.3.5.bb 
b/meta/recipes-connectivity/dhcp/dhcp_4.3.5.bb
index 0a73ecc..964d05dd 100644
--- a/meta/recipes-connectivity/dhcp/dhcp_4.3.5.bb
+++ b/meta/recipes-connectivity/dhcp/dhcp_4.3.5.bb
@@ -10,6 +10,7 @@ SRC_URI += 
"file://dhcp-3.0

Re: [OE-core] [PATCH 0/1] bind: 9.10..3-P3 -> 9.10.5-P3

2017-07-12 Thread Kang Kai

On 2017年07月12日 09:25, kai.k...@windriver.com wrote:

From: Kai Kang 

The following changes since commit 81498aac9560fbeaeb58eaada32ce80e0ea51628:

   yocto-project-qs: Updated Next Steps list (2017-07-12 00:28:16 +0100)

are available in the git repository at:

   git://git.pokylinux.org/poky-contrib kangkai/bind
   http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=kangkai/bind


Oops. Duplicate dot in commit subject. Updated in poky-contrib.

--Kai



Kai Kang (1):
   bind: 9.10..3-P3 -> 9.10.5-P3

  ...0001-build-use-pkg-config-to-find-libxml2.patch |   10 +-
  .../bind/bind/CVE-2016-1285.patch  |  154 ---
  .../bind/bind/CVE-2016-1286_1.patch|   79 --
  .../bind/bind/CVE-2016-1286_2.patch|  317 --
  .../bind/bind/CVE-2016-2088.patch  |  247 -
  .../bind/bind/CVE-2016-2775.patch  |   90 --
  .../bind/bind/CVE-2016-2776.patch  |  123 ---
  .../bind/bind/CVE-2016-6170.patch  | 1090 
  .../bind/bind/CVE-2016-8864.patch  |  219 
  .../bind/bind/bind-confgen-build-unix.o-once.patch |   10 +-
  .../bind/bind/mips1-not-support-opcode.diff|  104 --
  .../use-python3-and-fix-install-lib-path.patch |   36 +
  .../bind/{bind_9.10.3-P3.bb => bind_9.10.5-P3.bb}  |   25 +-
  13 files changed, 61 insertions(+), 2443 deletions(-)
  delete mode 100644 meta/recipes-connectivity/bind/bind/CVE-2016-1285.patch
  delete mode 100644 meta/recipes-connectivity/bind/bind/CVE-2016-1286_1.patch
  delete mode 100644 meta/recipes-connectivity/bind/bind/CVE-2016-1286_2.patch
  delete mode 100644 meta/recipes-connectivity/bind/bind/CVE-2016-2088.patch
  delete mode 100644 meta/recipes-connectivity/bind/bind/CVE-2016-2775.patch
  delete mode 100644 meta/recipes-connectivity/bind/bind/CVE-2016-2776.patch
  delete mode 100644 meta/recipes-connectivity/bind/bind/CVE-2016-6170.patch
  delete mode 100644 meta/recipes-connectivity/bind/bind/CVE-2016-8864.patch
  delete mode 100644 
meta/recipes-connectivity/bind/bind/mips1-not-support-opcode.diff
  create mode 100644 
meta/recipes-connectivity/bind/bind/use-python3-and-fix-install-lib-path.patch
  rename meta/recipes-connectivity/bind/{bind_9.10.3-P3.bb => 
bind_9.10.5-P3.bb} (85%)



--
Regards,
Neil | Kai Kang

--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 2/2] base-files: ignore "mesg n" error messages

2017-07-12 Thread Patrick Ohly
When using "su - myuser" to change from root to a non-privileged user,
"mesg n" from the default .profile fails with "mesg: error: tty device
is not owned by group `tty' or "mesg: cannot open /dev/ttyS0:
Permission denied", depending on whether mesg comes from busybox or
util-linux.

This does not happen during a normal login because permissions on
/dev/tty* get changed while doing that, something that isn't possible
with plain "su -".

As the error can't be avoided and failures of mesg probably aren't
particularly important, now error messages get dumped to /dev/null.

[YOCTO #11127]

Signed-off-by: Patrick Ohly 
---
 meta/recipes-core/base-files/base-files/share/dot.profile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-core/base-files/base-files/share/dot.profile 
b/meta/recipes-core/base-files/base-files/share/dot.profile
index 979793e..a873160 100644
--- a/meta/recipes-core/base-files/base-files/share/dot.profile
+++ b/meta/recipes-core/base-files/base-files/share/dot.profile
@@ -7,4 +7,5 @@ fi
 # path set by /etc/profile
 # export PATH
 
-mesg n
+# Might fail after "su - myuser" when /dev/tty* is not writable by "myuser".
+mesg n 2>/dev/null
-- 
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/2] util-linux: fix "su -" and package su separately

2017-07-12 Thread Patrick Ohly
"su -" == "su --login" was broken because it uses /etc/pam.d/su-l and
lacking that, falls back to /etc/pam.d/other which denies the
operation. The fix is to symlink "su-l" to the normal "su" pam config
file.

Because "su" usually comes from "shadow" and has been broken like this
without anyone noticing, it probably is not used much and thus should
be packaged separately so that it can be installed only when really
needed. For backwards compatibility, "util-linux" still pulls it in.

It is a bit strange that DISTRO_FEATURES are getting checked when
deciding whether the packages should be defined. It is not wrong, the
packages will be simply empty and thus probably not created when the
distro feature is on and the package config is off. Perhaps there is a
reason, so this is kept unchanged. The symlink however only gets
created when su.util-linux really gets built.

[YOCTO #11126]

Signed-off-by: Patrick Ohly 
---
 meta/recipes-core/util-linux/util-linux.inc | 13 +++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-core/util-linux/util-linux.inc 
b/meta/recipes-core/util-linux/util-linux.inc
index 1656e92..47c2839 100644
--- a/meta/recipes-core/util-linux/util-linux.inc
+++ b/meta/recipes-core/util-linux/util-linux.inc
@@ -35,7 +35,7 @@ PACKAGES =+ "util-linux-agetty util-linux-fdisk 
util-linux-cfdisk util-linux-sfd
  util-linux-partx util-linux-hwclock util-linux-mountpoint \
  util-linux-findfs util-linux-getopt util-linux-sulogin 
util-linux-prlimit"
 PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pylibmount', 
'util-linux-pylibmount', '', d)}"
-PACKAGES =+ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 
'util-linux-runuser', '', d)}"
+PACKAGES =+ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 
'util-linux-runuser util-linux-su', '', d)}"
 
 PACKAGES_DYNAMIC = "^util-linux-lib.*"
 
@@ -91,6 +91,8 @@ FILES_util-linux-findfs = "${sbindir}/findfs"
 FILES_util-linux-getopt = "${base_bindir}/getopt.${BPN}"
 FILES_util-linux-runuser = "${sbindir}/runuser"
 FILES_util-linux-prlimit = "${bindir}/prlimit"
+FILES_util-linux-su = "${bindir}/su.util-linux ${sysconfdir}/pam.d/su-l"
+CONFFILES_util-linux-su = "${sysconfdir}/pam.d/su-l"
 
 FILES_util-linux-pylibmount = 
"${PYTHON_SITEPACKAGES_DIR}/libmount/pylibmount.so \
${PYTHON_SITEPACKAGES_DIR}/libmount/__init__.* \
@@ -116,9 +118,10 @@ RREPLACES_util-linux-blkid = "e2fsprogs-blkid"
 RDEPENDS_util-linux-reset += "ncurses"
 
 RDEPENDS_util-linux-runuser += "libpam"
+RDEPENDS_util-linux-su += "libpam"
 
 RDEPENDS_${PN} = "util-linux-umount util-linux-swaponoff util-linux-losetup 
util-linux-sulogin util-linux-lsblk"
-RDEPENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 
'util-linux-runuser', '', d)}"
+RDEPENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 
'util-linux-runuser util-linux-su', '', d)}"
 
 RRECOMMENDS_${PN} = "util-linux-fdisk util-linux-cfdisk util-linux-sfdisk 
util-linux-mount util-linux-readprofile util-linux-mkfs util-linux-mountpoint 
util-linux-prlimit"
 
@@ -182,6 +185,12 @@ do_install () {
install -m 0644 ${WORKDIR}/runuser.pamd 
${D}${sysconfdir}/pam.d/runuser
install -m 0644 ${WORKDIR}/runuser-l.pamd 
${D}${sysconfdir}/pam.d/runuser-l
fi
+   if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then
+   # Required for "su -" aka "su --login" because
+   # otherwise it uses "other", which has "auth pam_deny.so"
+   # and thus prevents the operation.
+   ln -s su ${D}${sysconfdir}/pam.d/su-l
+   fi
 }
 
 # reset and nologin causes a conflict with ncurses-native and shadow-native
-- 
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 0/2] some "su -" fixes

2017-07-12 Thread Patrick Ohly
Ran into this while experimenting with stateless logins

Patrick Ohly (2):
  util-linux: fix "su -" and package su separately
  base-files: ignore "mesg n" error messages

 meta/recipes-core/base-files/base-files/share/dot.profile |  3 +-
 meta/recipes-core/util-linux/util-linux.inc   | 13 ++--
 2 files changed, 13 insertions(+), 3 deletions(-)

base-commit: 7dd5dfc4d56f1201110d947ce1ca3c6d64fbc7da
-- 
git-series 0.9.1
-- 
___
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-07-11

2017-07-12 Thread Martin Jansa
http://www.openembedded.org/wiki/Bitbake_World_Status

There is pending fix for valgrind and klibc, I've dropped udevil until v2 is 
sent, so
hopefully next build will show only new issues caused by glibc upgrade.

== Number of issues - stats ==
{| class='wikitable'
!|Date   !!colspan='3'|Failed tasks 
!!|Signatures !!colspan='14'|QA !!Comment
|-
||  ||qemuarm   ||qemux86   ||qemux86_64||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-07-11||3 ||2 ||2 ||0 ||0 ||1 
||0 ||0 ||0 ||229   ||0 
||0 ||0 ||0 ||0 ||0 
||0 ||0 ||  
|}

== Failed tasks 2017-07-11 ==

INFO: jenkins-job.sh-1.8.24 Complete log available at 
http://logs.nslu2-linux.org/buildlogs/oe/world/rocko/log.report.20170711_071226.log

=== common (1) ===
* 
meta-openembedded/meta-filesystems/recipes-utils/udevil/udevil_0.4.4.bb:do_package

=== common-x86 (1) ===
* 
openembedded-core/meta/recipes-devtools/valgrind/valgrind_3.12.0.bb:do_compile_ptest_base

=== qemuarm (2) ===
* 
meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc_2.0.4.bb:do_compile
* 
meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.4.bb:do_compile

=== qemux86 (0) ===

=== qemux86_64 (0) ===

=== Number of failed tasks (7) ===
{| class=wikitable
|-
|| qemuarm  || 3 || 
http://logs.nslu2-linux.org/buildlogs/oe/world/rocko/log.world.qemuarm.20170710_232524.log/
 || http://errors.yoctoproject.org/Errors/Build/40944/
|-
|| qemux86  || 2 || 
http://logs.nslu2-linux.org/buildlogs/oe/world/rocko/log.world.qemux86.20170711_003346.log/
 || http://errors.yoctoproject.org/Errors/Build/40945/
|-
|| qemux86_64   || 2 || 
http://logs.nslu2-linux.org/buildlogs/oe/world/rocko/log.world.qemux86-64.20170711_035611.log/
 || http://errors.yoctoproject.org/Errors/Build/40946/
|}

=== PNBLACKLISTs (14) ===

=== QA issues (230) ===
{| 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 ||pkgname
|-
||0 ||symlink-to-sysroot
|-
||0 ||textrel
|-
||0 ||unknown-configure-option
|-
||1 ||libdir
|-
||229   ||version-going-backwards
|}



=== Incorrect PACKAGE_ARCH or sstate signatures (0) ===

Complete log: 
http://logs.nslu2-linux.org/buildlogs/oe/world/rocko/log.signatures.20170711_015904.log/

No issues detected


PNBLACKLISTs:
openembedded-core/:
meta-browser:
meta-openembedded:
meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.17.bb:PNBLACKLIST[lksctp-tools]
 ?= "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', "BROKEN: fails to 
link against sctp_connectx symbol", '', d)}"
meta-oe/recipes-connectivity/bluez/bluez-hcidump_2.5.bb:PNBLACKLIST[bluez-hcidump]
 ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with 
bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
meta-oe/recipes-connectivity/bluez/bluez4_4.101.bb:PNBLACKLIST[bluez4] ?= 
"${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with 
bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
meta-oe/recipes-connectivity/bluez/gst-plugin-bluetooth_4.101.bb:PNBLACKLIST[gst-plugin-bluetooth]
 ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with 
bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
meta-oe/recipes-graphics/libsexy/libsexy_0.1.11.bb:PNBLACKLIST[libsexy] ?= 
"Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130607/ 
- the recipe will be removed on 2017-09-01 unless the issue is fixed"
meta-oe/recipes-graphics/xorg-driver/xf86-video-geode_2.11.16.bb:PNBLACKLIST[xf86-video-geode]
 ?= "BROKEN, fails to build - the recipe will be removed on 2017-09-01 unless 
the issue is fixed"
meta-oe/recipes-navigation/foxtrotgps/foxtrotgps_1.1.1.bb:PNBLACKLIST[foxtrotgps]
 ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with 
bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
meta-oe/recipes-navigation/gypsy/gypsy.inc:PNBLACKLIST[gypsy] ?= 
"${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with 
bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
meta-oe/recipes-navigation/navit/navit.inc:PNBLACKLIST[navit] ?= 
"${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with 
bluez4 and bluez5 is selecte

[OE-core] [PATCH] distrooverrides.bbclass: fix default configuration

2017-07-12 Thread Patrick Ohly
When using distrooverrides.bbclass without setting
DISTRO_FEATURES_OVERRIDES, the code failed because of a spelling error
in the default.

[YOCTO #11759]

Signed-off-by: Patrick Ohly 
---
 meta/classes/distrooverrides.bbclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/meta/classes/distrooverrides.bbclass 
b/meta/classes/distrooverrides.bbclass
index 9a42712..9f4db0d 100644
--- a/meta/classes/distrooverrides.bbclass
+++ b/meta/classes/distrooverrides.bbclass
@@ -18,8 +18,8 @@
 # of these overrides should be limited to .bb and .bbappend files,
 # because then DISTRO_FEATURES is final.
 
-DISTRO_FEATURE_OVERRIDES ?= ""
-DISTRO_FEATURE_OVERRIDES[doc] = "A space-separated list of  entries. \
+DISTRO_FEATURES_OVERRIDES ?= ""
+DISTRO_FEATURES_OVERRIDES[doc] = "A space-separated list of  entries. 
\
 Each entry is added to OVERRIDES as df- if  is in 
DISTRO_FEATURES."
 
 DISTRO_FEATURES_FILTER_NATIVE_append = " ${DISTRO_FEATURES_OVERRIDES}"

base-commit: f441186bafe2b8a80d3229f13aacf92138f63cd8
-- 
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] recipetool: git reformat URI mangling & parameter stripped

2017-07-12 Thread stanley . cheong . kwan . phoong
From: "Stanley Cheong Kwan, Phoong" 

recipetool seems to be mangling and stripping out the parameters for git
URI. This will fix this issue as well as resolve the conflict of
protocol parameter added by user. If a user adds their own protocol as
an argument, it'll be honored.

[YOCTO #11390]
[YOCTO #11391]

Signed-off-by: Stanley Cheong Kwan, Phoong 

---
 scripts/lib/recipetool/create.py | 35 ++-
 1 file changed, 26 insertions(+), 9 deletions(-)

diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index 2a5a84c..8e63580 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -26,7 +26,7 @@ import logging
 import scriptutils
 from urllib.parse import urlparse, urldefrag, urlsplit
 import hashlib
-
+import bb.fetch2
 logger = logging.getLogger('recipetool')
 
 tinfoil = None
@@ -373,14 +373,31 @@ def reformat_git_uri(uri):
 '''Convert any http[s]://git URI into git://...;protocol=http[s]'''
 checkuri = uri.split(';', 1)[0]
 if checkuri.endswith('.git') or '/git/' in checkuri or 
re.match('https?://github.com/[^/]+/[^/]+/?$', checkuri):
-res = re.match('(http|https|ssh)://([^;]+(\.git)?)(;.*)?$', uri)
-if res:
-# Need to switch the URI around so that the git fetcher is used
-return 'git://%s;protocol=%s%s' % (res.group(2), res.group(1), 
res.group(4) or '')
-elif '@' in checkuri:
-# Catch e.g. g...@git.example.com:repo.git
-return 'git://%s;protocol=ssh' % checkuri.replace(':', '/', 1)
-return uri
+# Appends scheme if the scheme is missing
+if not '://' in uri:
+uri = 'git://' + uri
+scheme, host, path, user, pswd, parms = bb.fetch2.decodeurl(uri)
+# Detection mechanism, this is required due to certain URL are 
formatter with ":" rather than "/"
+# which causes decodeurl to fail getting the right host and path
+if len(host.split(':')) > 1:
+splitslash = host.split(':')
+host = splitslash[0]
+path = '/' + splitslash[1] + path
+#Algorithm:
+# if user is defined, append protocol=ssh or if a protocol is defined, 
then honor the user-defined protocol
+# if no user & password is defined, check for scheme type and append 
the protocol with the scheme type
+# finally if protocols or if the url is well-formed, do nothing and 
rejoin everything back to normal
+# Need to repackage the arguments for encodeurl, the format is: 
(scheme, host, path, user, password, OrderedDict([('key', 'value')]))
+if user:
+if not 'protocol' in parms:
+parms.update({('protocol', 'ssh')})
+elif (scheme == "http" or scheme == 'https' or scheme == 'ssh') and 
not ('protocol' in parms):
+parms.update({('protocol', scheme)})
+# Always append 'git://'
+fUrl = bb.fetch2.encodeurl(('git', host, path, user, pswd, parms))
+return fUrl
+else:
+return uri
 
 def is_package(url):
 '''Check if a URL points to a package'''
-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 3/3] libepoxy: Upgrade 1.4.2 -> 1.4.3

2017-07-12 Thread Burton, Ross
On 12 July 2017 at 08:24, Jussi Kukkonen  wrote:

> I think I'll just send a patch to mesa-gl recipe to not install the
> header. If someone wants to solve this properly with the upstreams, be my
> guest.
>

Sounds like the best fix considering the alternatives, to be honest.

Ross
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] gettext: Enable generation of libasprintf in gettext 0.19

2017-07-12 Thread Burton, Ross
On 11 July 2017 at 16:57, Lev Iserovich 
wrote:

> Libasprintf was included in gettext 0.16 recipe, but omitted for some
> reason
> in 0.19. This turns it back on.
>

As this pulls C++ libraries into the core package, can it be split out like
the other libraries?

Ross
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 0/6] Packages Upgrade

2017-07-12 Thread Robert Yang
The following changes since commit b1c4661742d12cfd444043e597d01bd627ee4ca4:

  libiconv: remove 0001-Fix-link-error-when-compiling-with-gcc-O0.patch 
(2017-07-11 15:41:35 +0100)

are available in the git repository at:

  git://git.openembedded.org/openembedded-core-contrib rbt/PU
  http://cgit.openembedded.org/openembedded-core-contrib/log/?h=rbt/PU

Robert Yang (6):
  automake: 1.15 -> 1.15.1
  cryptodev: 1.8 -> 1.9
  debianutils: 4.8.1 -> 4.8.1.1
  git: 2.11.1 -> 2.13.2
  gnu-efi: 3.0.5 -> 3.0.6
  libbsd: 0.8.3 -> 0.8.5

 ...plicit-fall-through-so-Wextra-will-work-i.patch |  34 ---
 .../gnu-efi/gnu-efi/parallel-make-archives.patch   |  30 +--
 .../gnu-efi/{gnu-efi_3.0.5.bb => gnu-efi_3.0.6.bb} |   5 +-
 ...0001-automake-port-to-Perl-5.22-and-later.patch |  32 ---
 .../{automake_1.15.bb => automake_1.15.1.bb}   |   5 +-
 meta/recipes-devtools/git/git.inc  |   1 -
 meta/recipes-devtools/git/git_2.11.1.bb|  11 -
 meta/recipes-devtools/git/git_2.13.2.bb|  11 +
 ...yptodev-linux_1.8.bb => cryptodev-linux_1.9.bb} |   0
 ...todev-module_1.8.bb => cryptodev-module_1.9.bb} |   0
 ...yptodev-tests_1.8.bb => cryptodev-tests_1.9.bb} |   2 +-
 meta/recipes-kernel/cryptodev/cryptodev.inc|  10 +-
 ...st-to-another-change-in-the-user-page-API.patch |  40 ---
 ...talling-header-file-provided-by-another-p.patch |  18 +-
 .../06d6b560c6e45dc317dae47c74706fa43f4a31d8.patch |  54 
 .../cb186f682679383e8b5806240927903730ce85d9.patch | 279 -
 .../cryptodev/files/kernel-4-10-changes.patch  |  57 -
 ...debianutils_4.8.1.bb => debianutils_4.8.1.1.bb} |   7 +-
 .../libbsd/{libbsd_0.8.3.bb => libbsd_0.8.5.bb}|   6 +-
 19 files changed, 39 insertions(+), 563 deletions(-)
 delete mode 100644 
meta/recipes-bsp/gnu-efi/gnu-efi/0001-Mark-our-explicit-fall-through-so-Wextra-will-work-i.patch
 rename meta/recipes-bsp/gnu-efi/{gnu-efi_3.0.5.bb => gnu-efi_3.0.6.bb} (92%)
 delete mode 100644 
meta/recipes-devtools/automake/automake/0001-automake-port-to-Perl-5.22-and-later.patch
 rename meta/recipes-devtools/automake/{automake_1.15.bb => automake_1.15.1.bb} 
(84%)
 delete mode 100644 meta/recipes-devtools/git/git_2.11.1.bb
 create mode 100644 meta/recipes-devtools/git/git_2.13.2.bb
 rename meta/recipes-kernel/cryptodev/{cryptodev-linux_1.8.bb => 
cryptodev-linux_1.9.bb} (100%)
 rename meta/recipes-kernel/cryptodev/{cryptodev-module_1.8.bb => 
cryptodev-module_1.9.bb} (100%)
 rename meta/recipes-kernel/cryptodev/{cryptodev-tests_1.8.bb => 
cryptodev-tests_1.9.bb} (88%)
 delete mode 100644 
meta/recipes-kernel/cryptodev/files/0001-Adjust-to-another-change-in-the-user-page-API.patch
 delete mode 100644 
meta/recipes-kernel/cryptodev/files/06d6b560c6e45dc317dae47c74706fa43f4a31d8.patch
 delete mode 100644 
meta/recipes-kernel/cryptodev/files/cb186f682679383e8b5806240927903730ce85d9.patch
 delete mode 100644 
meta/recipes-kernel/cryptodev/files/kernel-4-10-changes.patch
 rename meta/recipes-support/debianutils/{debianutils_4.8.1.bb => 
debianutils_4.8.1.1.bb} (86%)
 rename meta/recipes-support/libbsd/{libbsd_0.8.3.bb => libbsd_0.8.5.bb} (88%)

-- 
2.10.2

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 1/6] automake: 1.15 -> 1.15.1

2017-07-12 Thread Robert Yang
* Remove backported patch:
  - 0001-automake-port-to-Perl-5.22-and-later.patch

Signed-off-by: Robert Yang 
---
 ...0001-automake-port-to-Perl-5.22-and-later.patch | 32 --
 .../{automake_1.15.bb => automake_1.15.1.bb}   |  5 ++--
 2 files changed, 2 insertions(+), 35 deletions(-)
 delete mode 100644 
meta/recipes-devtools/automake/automake/0001-automake-port-to-Perl-5.22-and-later.patch
 rename meta/recipes-devtools/automake/{automake_1.15.bb => automake_1.15.1.bb} 
(84%)

diff --git 
a/meta/recipes-devtools/automake/automake/0001-automake-port-to-Perl-5.22-and-later.patch
 
b/meta/recipes-devtools/automake/automake/0001-automake-port-to-Perl-5.22-and-later.patch
deleted file mode 100644
index 0e6895f..000
--- 
a/meta/recipes-devtools/automake/automake/0001-automake-port-to-Perl-5.22-and-later.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 13f00eb4493c217269b76614759e452d8302955e Mon Sep 17 00:00:00 2001
-From: Paul Eggert 
-Date: Thu, 31 Mar 2016 16:35:29 -0700
-Subject: [PATCH] automake: port to Perl 5.22 and later
-
-Without this change, Perl 5.22 complains "Unescaped left brace in
-regex is deprecated" and this is planned to become a hard error in
-Perl 5.26.  See:
-http://search.cpan.org/dist/perl-5.22.0/pod/perldelta.pod#A_literal_%22{%22_should_now_be_escaped_in_a_pattern
-* bin/automake.in (substitute_ac_subst_variables): Escape left brace.
-
-Upstream-Status: Backport [13f00eb4493c217269b76614759e452d8302955e]

- bin/automake.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/bin/automake.in b/bin/automake.in
-index a3a0aa318..2c8f31e14 100644
 a/bin/automake.in
-+++ b/bin/automake.in
-@@ -3878,7 +3878,7 @@ sub substitute_ac_subst_variables_worker
- sub substitute_ac_subst_variables
- {
-   my ($text) = @_;
--  $text =~ s/\${([^ \t=:+{}]+)}/substitute_ac_subst_variables_worker ($1)/ge;
-+  $text =~ s/\$[{]([^ \t=:+{}]+)}/substitute_ac_subst_variables_worker 
($1)/ge;
-   return $text;
- }
- 
--- 
-2.11.0
-
diff --git a/meta/recipes-devtools/automake/automake_1.15.bb 
b/meta/recipes-devtools/automake/automake_1.15.1.bb
similarity index 84%
rename from meta/recipes-devtools/automake/automake_1.15.bb
rename to meta/recipes-devtools/automake/automake_1.15.1.bb
index 902dd63..4812341 100644
--- a/meta/recipes-devtools/automake/automake_1.15.bb
+++ b/meta/recipes-devtools/automake/automake_1.15.1.bb
@@ -24,11 +24,10 @@ SRC_URI += "file://python-libdir.patch \
 file://performance.patch \
 file://new_rt_path_for_test-driver.patch \
 
file://automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch \
-file://0001-automake-port-to-Perl-5.22-and-later.patch \
 "
 
-SRC_URI[md5sum] = "716946a105ca228ab545fc37a70df3a3"
-SRC_URI[sha256sum] = 
"7946e945a96e28152ba5a6beb0625ca715c6e32ac55f2e353ef54def0c8ed924"
+SRC_URI[md5sum] = "95df3f2d6eb8f81e70b8cb63a93c8853"
+SRC_URI[sha256sum] = 
"988e32527abe052307d21c8ca000aa238b914df363a617e38f4fb89f5abf6260"
 
 PERL = "${USRBINPATH}/perl"
 PERL_class-native = "${USRBINPATH}/env perl"
-- 
2.10.2

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 2/6] cryptodev: 1.8 -> 1.9

2017-07-12 Thread Robert Yang
* Remove backported patch:
  - 0001-Adjust-to-another-change-in-the-user-page-API.patch
  - 06d6b560c6e45dc317dae47c74706fa43f4a31d8.patch
  - cb186f682679383e8b5806240927903730ce85d9.patch
  - kernel-4-10-changes.patch

* Update patch:
  - 0001-Disable-installing-header-file-provided-by-another-p.patch

* Update FILES_${PN} since there are files in bindir:
  /usr/bin/hmac_comp
  /usr/bin/cipher_comp
  /usr/bin/async_hmac
  /usr/bin/cipher-aead-srtp
  /usr/bin/hash_comp
  /usr/bin/async_speed
  /usr/bin/async_cipher
  /usr/bin/sha_speed
  /usr/bin/hashcrypt_speed
  /usr/bin/hmac
  /usr/bin/cipher-gcm
  /usr/bin/cipher
  /usr/bin/fullspeed
  /usr/bin/speed
  /usr/bin/cipher-aead

Signed-off-by: Robert Yang 
---
 ...yptodev-linux_1.8.bb => cryptodev-linux_1.9.bb} |   0
 ...todev-module_1.8.bb => cryptodev-module_1.9.bb} |   0
 ...yptodev-tests_1.8.bb => cryptodev-tests_1.9.bb} |   2 +-
 meta/recipes-kernel/cryptodev/cryptodev.inc|  10 +-
 ...st-to-another-change-in-the-user-page-API.patch |  40 ---
 ...talling-header-file-provided-by-another-p.patch |  18 +-
 .../06d6b560c6e45dc317dae47c74706fa43f4a31d8.patch |  54 
 .../cb186f682679383e8b5806240927903730ce85d9.patch | 279 -
 .../cryptodev/files/kernel-4-10-changes.patch  |  57 -
 9 files changed, 11 insertions(+), 449 deletions(-)
 rename meta/recipes-kernel/cryptodev/{cryptodev-linux_1.8.bb => 
cryptodev-linux_1.9.bb} (100%)
 rename meta/recipes-kernel/cryptodev/{cryptodev-module_1.8.bb => 
cryptodev-module_1.9.bb} (100%)
 rename meta/recipes-kernel/cryptodev/{cryptodev-tests_1.8.bb => 
cryptodev-tests_1.9.bb} (88%)
 delete mode 100644 
meta/recipes-kernel/cryptodev/files/0001-Adjust-to-another-change-in-the-user-page-API.patch
 delete mode 100644 
meta/recipes-kernel/cryptodev/files/06d6b560c6e45dc317dae47c74706fa43f4a31d8.patch
 delete mode 100644 
meta/recipes-kernel/cryptodev/files/cb186f682679383e8b5806240927903730ce85d9.patch
 delete mode 100644 
meta/recipes-kernel/cryptodev/files/kernel-4-10-changes.patch

diff --git a/meta/recipes-kernel/cryptodev/cryptodev-linux_1.8.bb 
b/meta/recipes-kernel/cryptodev/cryptodev-linux_1.9.bb
similarity index 100%
rename from meta/recipes-kernel/cryptodev/cryptodev-linux_1.8.bb
rename to meta/recipes-kernel/cryptodev/cryptodev-linux_1.9.bb
diff --git a/meta/recipes-kernel/cryptodev/cryptodev-module_1.8.bb 
b/meta/recipes-kernel/cryptodev/cryptodev-module_1.9.bb
similarity index 100%
rename from meta/recipes-kernel/cryptodev/cryptodev-module_1.8.bb
rename to meta/recipes-kernel/cryptodev/cryptodev-module_1.9.bb
diff --git a/meta/recipes-kernel/cryptodev/cryptodev-tests_1.8.bb 
b/meta/recipes-kernel/cryptodev/cryptodev-tests_1.9.bb
similarity index 88%
rename from meta/recipes-kernel/cryptodev/cryptodev-tests_1.8.bb
rename to meta/recipes-kernel/cryptodev/cryptodev-tests_1.9.bb
index c400524..9cb5dcb 100644
--- a/meta/recipes-kernel/cryptodev/cryptodev-tests_1.8.bb
+++ b/meta/recipes-kernel/cryptodev/cryptodev-tests_1.9.bb
@@ -18,4 +18,4 @@ do_install() {
oe_runmake install_tests
 }
 
-FILES_${PN} = "${bindir}/tests_cryptodev/*"
+FILES_${PN} = "${bindir}/*"
diff --git a/meta/recipes-kernel/cryptodev/cryptodev.inc 
b/meta/recipes-kernel/cryptodev/cryptodev.inc
index 4ae0a2b..50366e7 100644
--- a/meta/recipes-kernel/cryptodev/cryptodev.inc
+++ b/meta/recipes-kernel/cryptodev/cryptodev.inc
@@ -3,14 +3,10 @@ HOMEPAGE = "http://cryptodev-linux.org/";
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
-SRC_URI = "http://nwl.cc/pub/cryptodev-linux/cryptodev-linux-${PV}.tar.gz \
-   file://06d6b560c6e45dc317dae47c74706fa43f4a31d8.patch \
-   file://cb186f682679383e8b5806240927903730ce85d9.patch \
-   file://0001-Adjust-to-another-change-in-the-user-page-API.patch \
-   file://kernel-4-10-changes.patch"
+SRC_URI = "http://nwl.cc/pub/cryptodev-linux/cryptodev-linux-${PV}.tar.gz";
 
-SRC_URI[md5sum] = "02644cc4cd02301e0b503a332eb2f0b5"
-SRC_URI[sha256sum] = 
"67fabde9fb67b286a96c4f45b594b0eccd0f761b495705c18f2ae9461b831376"
+SRC_URI[md5sum] = "cb4e0ed9e5937716c7c8a7be84895b6d"
+SRC_URI[sha256sum] = 
"9f4c0b49b30e267d776f79455d09c70cc9c12c86eee400a0d0a0cd1d8e467950"
 
 S = "${WORKDIR}/cryptodev-linux-${PV}"
 
diff --git 
a/meta/recipes-kernel/cryptodev/files/0001-Adjust-to-another-change-in-the-user-page-API.patch
 
b/meta/recipes-kernel/cryptodev/files/0001-Adjust-to-another-change-in-the-user-page-API.patch
deleted file mode 100644
index fb75278..000
--- 
a/meta/recipes-kernel/cryptodev/files/0001-Adjust-to-another-change-in-the-user-page-API.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From f126e4837e6334d0464540995df7426fedf6b175 Mon Sep 17 00:00:00 2001
-From: Michael Weiser 
-Date: Fri, 11 Nov 2016 18:09:32 +0100
-Subject: [PATCH] Adjust to another change in the user page API
-
-4.9.0 will replace the write and force flags of get_user_pages_remote()
-with a gup_flags parameter[1]. Distinguish the two API

[OE-core] [PATCH 3/6] debianutils: 4.8.1 -> 4.8.1.1

2017-07-12 Thread Robert Yang
Signed-off-by: Robert Yang 
---
 .../debianutils/{debianutils_4.8.1.bb => debianutils_4.8.1.1.bb}   | 7 +++
 1 file changed, 3 insertions(+), 4 deletions(-)
 rename meta/recipes-support/debianutils/{debianutils_4.8.1.bb => 
debianutils_4.8.1.1.bb} (86%)

diff --git a/meta/recipes-support/debianutils/debianutils_4.8.1.bb 
b/meta/recipes-support/debianutils/debianutils_4.8.1.1.bb
similarity index 86%
rename from meta/recipes-support/debianutils/debianutils_4.8.1.bb
rename to meta/recipes-support/debianutils/debianutils_4.8.1.1.bb
index 54c345e..23f8421 100644
--- a/meta/recipes-support/debianutils/debianutils_4.8.1.bb
+++ b/meta/recipes-support/debianutils/debianutils_4.8.1.1.bb
@@ -3,14 +3,13 @@ SECTION = "base"
 LICENSE = "GPLv2 & SMAIL_GPL"
 LIC_FILES_CHKSUM = 
"file://debian/copyright;md5=f01a5203d50512fc4830b4332b696a9f"
 
-SRC_URI = 
"http://snapshot.debian.org/archive/debian/20161118T033019Z/pool/main/d/${BPN}/${BPN}_${PV}.tar.xz";
+SRC_URI = 
"http://snapshot.debian.org/archive/debian/20170402T211732Z/pool/main/d/${BPN}/${BPN}_${PV}.tar.xz";
 # the package is taken from snapshots.debian.org; that source is static and 
goes stale
 # so we check the latest upstream from a directory that does get updated
 UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/"
 
-
-SRC_URI[md5sum] = "44083fc66164746880dffd30d62d054b"
-SRC_URI[sha256sum] = 
"2c395c0bdcfe89de30828b1d25cc5549ded5225a6d3625fbcb2cc0881ef5f026"
+SRC_URI[md5sum] = "ee5fcecaab071bd0c93e8a0cee65d6c4"
+SRC_URI[sha256sum] = 
"06446cd4c0d309fd31a0682c5c2f07f7613fb867f769414b9cc51f155ad73172"
 
 inherit autotools update-alternatives
 
-- 
2.10.2

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 4/6] git: 2.11.1 -> 2.13.2

2017-07-12 Thread Robert Yang
* Remove git-relink from PERLTOOLS:
  git-2.13.2/Documentation/RelNotes/2.12.0.txt:
  * An ancient script "git relink" has been removed.

Signed-off-by: Robert Yang 
---
 meta/recipes-devtools/git/git.inc   |  1 -
 meta/recipes-devtools/git/git_2.11.1.bb | 11 ---
 meta/recipes-devtools/git/git_2.13.2.bb | 11 +++
 3 files changed, 11 insertions(+), 12 deletions(-)
 delete mode 100644 meta/recipes-devtools/git/git_2.11.1.bb
 create mode 100644 meta/recipes-devtools/git/git_2.13.2.bb

diff --git a/meta/recipes-devtools/git/git.inc 
b/meta/recipes-devtools/git/git.inc
index 9b0d328..4390b8d 100644
--- a/meta/recipes-devtools/git/git.inc
+++ b/meta/recipes-devtools/git/git.inc
@@ -86,7 +86,6 @@ PERLTOOLS = " \
 ${libexecdir}/git-core/git-cvsserver \
 ${bindir}/git-cvsserver \
 ${libexecdir}/git-core/git-difftool \
-${libexecdir}/git-core/git-relink \
 ${libexecdir}/git-core/git-send-email \
 ${libexecdir}/git-core/git-svn \
 ${libexecdir}/git-core/git-instaweb \
diff --git a/meta/recipes-devtools/git/git_2.11.1.bb 
b/meta/recipes-devtools/git/git_2.11.1.bb
deleted file mode 100644
index f2f072c..000
--- a/meta/recipes-devtools/git/git_2.11.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require git.inc
-
-EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
- 
ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
- "
-EXTRA_OEMAKE += "NO_GETTEXT=1"
-
-SRC_URI[tarball.md5sum] = "6a7a73db076bb0514b602720669d685c"
-SRC_URI[tarball.sha256sum] = 
"a1cdd7c820f92c44abb5003b36dc8cb7201ba38e8744802399f59c97285ca043"
-SRC_URI[manpages.md5sum] = "e4268a6b514ccdb624b6450ff55881a3"
-SRC_URI[manpages.sha256sum] = 
"ee567e7b0f95333816793714bb31c54e288cf8041f77a0092b85e62c9c2974f9"
diff --git a/meta/recipes-devtools/git/git_2.13.2.bb 
b/meta/recipes-devtools/git/git_2.13.2.bb
new file mode 100644
index 000..e7cae40
--- /dev/null
+++ b/meta/recipes-devtools/git/git_2.13.2.bb
@@ -0,0 +1,11 @@
+require git.inc
+
+EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
+ 
ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
+ "
+EXTRA_OEMAKE += "NO_GETTEXT=1"
+
+SRC_URI[tarball.md5sum] = "894583cddfb0ec3b0156484966f9db9c"
+SRC_URI[tarball.sha256sum] = 
"e19d450648d6d100eb93abaa5d06ffbc778394fb502354b7026d73e9bcbc3160"
+SRC_URI[manpages.md5sum] = "97384d23f2ee88d5ce51ffc75096bd3e"
+SRC_URI[manpages.sha256sum] = 
"1c2bd0a2340b2ef118b7b167a8fec6cc05eb18cad9043e6e7a95fd8a70bb8c4c"
-- 
2.10.2

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 6/6] libbsd: 0.8.3 -> 0.8.5

2017-07-12 Thread Robert Yang
* The LIC_FILES_CHKSUM is changed becauses the files updated the date, and added
  a BSD-3-clause-John-Birrell for man/timeradd.3bsd, this license is already
  there for other files.

Signed-off-by: Robert Yang 
---
 meta/recipes-support/libbsd/{libbsd_0.8.3.bb => libbsd_0.8.5.bb} | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
 rename meta/recipes-support/libbsd/{libbsd_0.8.3.bb => libbsd_0.8.5.bb} (88%)

diff --git a/meta/recipes-support/libbsd/libbsd_0.8.3.bb 
b/meta/recipes-support/libbsd/libbsd_0.8.5.bb
similarity index 88%
rename from meta/recipes-support/libbsd/libbsd_0.8.3.bb
rename to meta/recipes-support/libbsd/libbsd_0.8.5.bb
index e85ee21..33190a7 100644
--- a/meta/recipes-support/libbsd/libbsd_0.8.3.bb
+++ b/meta/recipes-support/libbsd/libbsd_0.8.5.bb
@@ -30,7 +30,7 @@ HOMEPAGE = "http://libbsd.freedesktop.org/wiki/";
 # License: public-domain
 # License: public-domain-Colin-Plumb
 LICENSE = "BSD-4-Clause & ISC & PD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0b9c89d861915b86655b96e5e32fa2aa"
+LIC_FILES_CHKSUM = "file://COPYING;md5=08fc4e66be4526715dab09c5fba5e9e8"
 SECTION = "libs"
 
 SRC_URI = " \
@@ -43,8 +43,8 @@ SRC_URI_append_libc-musl  = " \
 file://0003-Fix-build-breaks-due-to-missing-a.out.h.patch \
 "
 
-SRC_URI[md5sum] = "e935c1bb6cc98a4a43cb1da22795493a"
-SRC_URI[sha256sum] = 
"934b634f4dfd865b6482650b8f522c70ae65c463529de8be907b53c89c3a34a8"
+SRC_URI[md5sum] = "f1a0dc285f5d21ea40ef5bfc9b647346"
+SRC_URI[sha256sum] = 
"7647d024f41389305272c263da933a6f2a978213c1801592f47e68d83ac05b28"
 
 inherit autotools pkgconfig
 
-- 
2.10.2

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 5/6] gnu-efi: 3.0.5 -> 3.0.6

2017-07-12 Thread Robert Yang
* Update parallel-make-archives.patch, the patch for lib/Makefile is
  already in the source.
* Remove 0001-Mark-our-explicit-fall-through-so-Wextra-will-work-i.patch, the
  source uses a similar way to fix it.

Signed-off-by: Robert Yang 
---
 ...plicit-fall-through-so-Wextra-will-work-i.patch | 34 --
 .../gnu-efi/gnu-efi/parallel-make-archives.patch   | 30 +--
 .../gnu-efi/{gnu-efi_3.0.5.bb => gnu-efi_3.0.6.bb} |  5 ++--
 3 files changed, 9 insertions(+), 60 deletions(-)
 delete mode 100644 
meta/recipes-bsp/gnu-efi/gnu-efi/0001-Mark-our-explicit-fall-through-so-Wextra-will-work-i.patch
 rename meta/recipes-bsp/gnu-efi/{gnu-efi_3.0.5.bb => gnu-efi_3.0.6.bb} (92%)

diff --git 
a/meta/recipes-bsp/gnu-efi/gnu-efi/0001-Mark-our-explicit-fall-through-so-Wextra-will-work-i.patch
 
b/meta/recipes-bsp/gnu-efi/gnu-efi/0001-Mark-our-explicit-fall-through-so-Wextra-will-work-i.patch
deleted file mode 100644
index d0aeb2d..000
--- 
a/meta/recipes-bsp/gnu-efi/gnu-efi/0001-Mark-our-explicit-fall-through-so-Wextra-will-work-i.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 676a8a9001f06808b4dbe0a545d76b5d9a8ebf48 Mon Sep 17 00:00:00 2001
-From: Peter Jones 
-Date: Thu, 2 Feb 2017 13:51:27 -0500
-Subject: [PATCH] Mark our explicit fall through so -Wextra will work in gcc 7
-
-gcc 7 introduces detection of fall-through behavior in switch/case
-statements, and will warn if -Wimplicit-fallthrough is present and there
-is no comment stating that the fall-through is intentional.  This is
-also triggered by -Wextra, as it enables -Wimplicit-fallthrough=1.
-
-This patch adds the comment in the one place we use fall-through.
-
-Signed-off-by: Peter Jones 

-Upstream-Status: Pending
-
- lib/print.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/lib/print.c b/lib/print.c
-index b8a9d38..cb732f0 100644
 a/lib/print.c
-+++ b/lib/print.c
-@@ -1131,6 +1131,7 @@ Returns:
- case 'X':
- Item.Width = Item.Long ? 16 : 8;
- Item.Pad = '0';
-+  /* falls through */
- case 'x':
- ValueToHex (
- Item.Scratch,
--- 
-2.12.2
-
diff --git a/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch 
b/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch
index e5b47c1..5404051 100644
--- a/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch
+++ b/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch
@@ -13,30 +13,14 @@ for details.
 Signed-off-by: Saul Wold 
 Signed-off-by: Darren Hart 
 ---

- gnuefi/Makefile |3 ++-
- lib/Makefile|3 ++-
- 2 files changed, 4 insertions(+), 2 deletions(-)
+ gnuefi/Makefile | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
 
-Index: gnu-efi-3.0/lib/Makefile
-===
 gnu-efi-3.0.orig/lib/Makefile
-+++ gnu-efi-3.0/lib/Makefile
-@@ -66,7 +66,8 @@ all: libsubdirs libefi.a
- libsubdirs:
-   for sdir in $(SUBDIRS); do mkdir -p $$sdir; done
- 
--libefi.a: $(patsubst %,libefi.a(%),$(OBJS))
-+libefi.a: $(OBJS)
-+  $(AR) rv $@ $(OBJS)
- 
- clean:
-   rm -f libefi.a *~ $(OBJS) */*.o
-Index: gnu-efi-3.0/gnuefi/Makefile
-===
 gnu-efi-3.0.orig/gnuefi/Makefile
-+++ gnu-efi-3.0/gnuefi/Makefile
-@@ -51,7 +51,8 @@ TARGETS  = crt0-efi-$(ARCH).o libgnuefi.a
+diff --git a/gnuefi/Makefile b/gnuefi/Makefile
+index 2a61699..148106e 100644
+--- a/gnuefi/Makefile
 b/gnuefi/Makefile
+@@ -54,7 +54,8 @@ TARGETS  = crt0-efi-$(ARCH).o libgnuefi.a
  
  all:  $(TARGETS)
  
diff --git a/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.5.bb 
b/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.6.bb
similarity index 92%
rename from meta/recipes-bsp/gnu-efi/gnu-efi_3.0.5.bb
rename to meta/recipes-bsp/gnu-efi/gnu-efi_3.0.6.bb
index 7346737..2a60717 100644
--- a/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.5.bb
+++ b/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.6.bb
@@ -16,11 +16,10 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2 \
file://parallel-make-archives.patch \
file://lib-Makefile-fix-parallel-issue.patch \
file://gcc46-compatibility.patch \
-   
file://0001-Mark-our-explicit-fall-through-so-Wextra-will-work-i.patch \
"
 
-SRC_URI[md5sum] = "1f719c9c135778aa6b087b89a1cc2423"
-SRC_URI[sha256sum] = 
"bd8fcd5914f18fc0e4ba948ab03b00013e528504f529c60739b748f6ef130b22"
+SRC_URI[md5sum] = "46f633758a8a37db9fd6909fe270c26b"
+SRC_URI[sha256sum] = 
"21515902d80fbea23328a61d70d3d51a47204abd1507ebfa27550a7b9bf22c91"
 
 COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
 COMPATIBLE_HOST_armv4 = 'null'
-- 
2.10.2

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 0/2] mesa: Improve Khronos header handling

2017-07-12 Thread Jussi Kukkonen
Andrea: can you please confirm if this fixes the issue with
meta-raspberrypi (the second patch is just cosmetic)?

This should fix mesa-gl and RPi userland conflict by not installing
khrplatform.h in mesa-gl. I decided to do an actual mesa patch instead
of a do_install_append() based on positive comments from upstream.

As a side note: the header is now installed in libegl-mesa-dev which
is not really correct. I'll see about fixing this in a later patch.

Cheers,
  Jussi

The following changes since commit 81498aac9560fbeaeb58eaada32ce80e0ea51628:

  yocto-project-qs: Updated Next Steps list (2017-07-12 00:28:16 +0100)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib jku/khr-headers
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=jku/khr-headers

Jussi Kukkonen (2):
  mesa: Avoid installing khrplatfrom.h when not needed
  mesa-gl: Clean recipe

 ...ly-install-khrplatform.h-with-EGL-or-GLES.patch | 52 ++
 meta/recipes-graphics/mesa/mesa-gl_17.1.4.bb   |  4 --
 meta/recipes-graphics/mesa/mesa_17.1.4.bb  |  1 +
 3 files changed, 53 insertions(+), 4 deletions(-)
 create mode 100644 
meta/recipes-graphics/mesa/files/0001-mapi-Only-install-khrplatform.h-with-EGL-or-GLES.patch

-- 
2.1.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 2/2] mesa-gl: Clean recipe

2017-07-12 Thread Jussi Kukkonen
Don't EXCLUDE_FROM_WORLD, mesa.inc already does this.
Don't add a non-existing path to FILESEXTRAPATHS.

Signed-off-by: Jussi Kukkonen 
---
 meta/recipes-graphics/mesa/mesa-gl_17.1.4.bb | 4 
 1 file changed, 4 deletions(-)

diff --git a/meta/recipes-graphics/mesa/mesa-gl_17.1.4.bb 
b/meta/recipes-graphics/mesa/mesa-gl_17.1.4.bb
index e3604f3..b9e3b80 100644
--- a/meta/recipes-graphics/mesa/mesa-gl_17.1.4.bb
+++ b/meta/recipes-graphics/mesa/mesa-gl_17.1.4.bb
@@ -2,12 +2,8 @@ require mesa_${PV}.bb
 
 SUMMARY += " (OpenGL only, no EGL/GLES)"
 
-FILESEXTRAPATHS =. "${FILE_DIRNAME}/mesa:"
-
 PROVIDES = "virtual/libgl virtual/mesa"
 
 S = "${WORKDIR}/mesa-${PV}"
 
 PACKAGECONFIG ??= "dri ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-
-EXCLUDE_FROM_WORLD = "1"
-- 
2.1.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 1/2] mesa: Avoid installing khrplatfrom.h when not needed

2017-07-12 Thread Jussi Kukkonen
Fix the conflict between mesa and userland (when former is used to
provide GL and letter used to provide EGL+GLES) by not installing
khrplatform.h header when its not needed.

Signed-off-by: Jussi Kukkonen 
---
 ...ly-install-khrplatform.h-with-EGL-or-GLES.patch | 52 ++
 meta/recipes-graphics/mesa/mesa_17.1.4.bb  |  1 +
 2 files changed, 53 insertions(+)
 create mode 100644 
meta/recipes-graphics/mesa/files/0001-mapi-Only-install-khrplatform.h-with-EGL-or-GLES.patch

diff --git 
a/meta/recipes-graphics/mesa/files/0001-mapi-Only-install-khrplatform.h-with-EGL-or-GLES.patch
 
b/meta/recipes-graphics/mesa/files/0001-mapi-Only-install-khrplatform.h-with-EGL-or-GLES.patch
new file mode 100644
index 000..be61e2e
--- /dev/null
+++ 
b/meta/recipes-graphics/mesa/files/0001-mapi-Only-install-khrplatform.h-with-EGL-or-GLES.patch
@@ -0,0 +1,52 @@
+From 922cb47a5b950ee5545a7a3cb4cd9a88a8b15054 Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen 
+Date: Wed, 12 Jul 2017 12:21:29 +0300
+Subject: [PATCH] mapi: Only install khrplatform.h with EGL or GLES
+
+When mesa is built with "--disable-egl --disable-gles1
+--disable-gles2" the KHR platform headers are not needed.
+
+Not installing the header when not needed allows using mesa for GL
+and another implementation for GLES+EGL (as is done in practice with
+userland on raspberrypi).
+
+Upstream-Status: Pending [waiting for test results before sending]
+Signed-off-by: Jussi Kukkonen 
+---
+ src/mapi/Makefile.am | 9 -
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/src/mapi/Makefile.am b/src/mapi/Makefile.am
+index 9ff70a14fd..94c77fb82c 100644
+--- a/src/mapi/Makefile.am
 b/src/mapi/Makefile.am
+@@ -188,6 +188,8 @@ es1api_libGLESv1_CM_la_LDFLAGS = \
+   $(LD_NO_UNDEFINED)
+ 
+ es1api_libGLESv1_CM_la_LIBADD += shared-glapi/libglapi.la
++
++khr_HEADERS = $(top_srcdir)/include/KHR/khrplatform.h
+ endif
+ 
+ es1api/glapi_mapi_tmp.h: glapi/gen/gl_and_es_API.xml $(glapi_gen_mapi_deps)
+@@ -233,6 +235,12 @@ es2api_libGLESv2_la_LDFLAGS = \
+   $(LD_NO_UNDEFINED)
+ 
+ es2api_libGLESv2_la_LIBADD += shared-glapi/libglapi.la
++
++khr_HEADERS = $(top_srcdir)/include/KHR/khrplatform.h
++endif
++
++if HAVE_EGL
++khr_HEADERS = $(top_srcdir)/include/KHR/khrplatform.h
+ endif
+ 
+ es2api/glapi_mapi_tmp.h: glapi/gen/gl_and_es_API.xml $(glapi_gen_mapi_deps)
+@@ -243,4 +251,3 @@ es2api/glapi_mapi_tmp.h: glapi/gen/gl_and_es_API.xml 
$(glapi_gen_mapi_deps)
+ include $(top_srcdir)/install-lib-links.mk
+ 
+ khrdir = $(includedir)/KHR
+-khr_HEADERS = $(top_srcdir)/include/KHR/khrplatform.h
+-- 
+2.13.2
+
diff --git a/meta/recipes-graphics/mesa/mesa_17.1.4.bb 
b/meta/recipes-graphics/mesa/mesa_17.1.4.bb
index 3289cd6..2257045 100644
--- a/meta/recipes-graphics/mesa/mesa_17.1.4.bb
+++ b/meta/recipes-graphics/mesa/mesa_17.1.4.bb
@@ -6,6 +6,7 @@ SRC_URI = 
"https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \
file://etnaviv_fix-shader-miscompilation.patch \
file://0001-Use-wayland-scanner-in-the-path.patch \
file://0002-hardware-gloat.patch \
+   file://0001-mapi-Only-install-khrplatform.h-with-EGL-or-GLES.patch \
 "
 
 SRC_URI[md5sum] = "be2ef7c9edec23b07f74f6512a6a6fa5"
-- 
2.1.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 2/6] cryptodev: 1.8 -> 1.9

2017-07-12 Thread Burton, Ross
ERROR: cryptodev-module-1.9-r0 do_patch: Command Error: 'quilt --quiltrc
/data/poky-tmp/master/work/intel_corei7_64-poky-linux/cryptodev-module/1.9-r0/recipe-sysroot-native/etc/quiltrc
push' exited with 0  Output:
Applying patch 0001-zc-Force-4.10-get_user_pages_remote-API.patch
patching file zc.c
Hunk #1 FAILED at 67.
1 out of 1 hunk FAILED -- rejects in file zc.c
Patch 0001-zc-Force-4.10-get_user_pages_remote-API.patch does not apply
(enforce with -f)

Ross
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/2] mesa: Avoid installing khrplatfrom.h when not needed

2017-07-12 Thread Otavio Salvador
On Wed, Jul 12, 2017 at 9:11 AM, Jussi Kukkonen
 wrote:
> Fix the conflict between mesa and userland (when former is used to
> provide GL and letter used to provide EGL+GLES) by not installing
> khrplatform.h header when its not needed.
>
> Signed-off-by: Jussi Kukkonen 

It is fine; if Andrea could test it would be good.


-- 
Otavio Salvador O.S. Systems
http://www.ossystems.com.brhttp://code.ossystems.com.br
Mobile: +55 (53) 9981-7854Mobile: +1 (347) 903-9750
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 2/5] bitbake.conf: add CCACHE_NOHASHDIR to hash whitelist

2017-07-12 Thread Ross Burton
Signed-off-by: Ross Burton 
---
 meta/conf/bitbake.conf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 042a03cbf90..9a3aa8bbf29 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -842,7 +842,7 @@ BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH 
BBPATH BBSERVER DL_DI
 SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM \
 USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \
 PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \
-CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE LICENSE_PATH SDKPKGSUFFIX \
+CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_NOHASHDIR LICENSE_PATH 
SDKPKGSUFFIX \
 WARN_QA ERROR_QA WORKDIR STAMPCLEAN PKGDATA_DIR BUILD_ARCH SSTATE_PKGARCH \
 BB_WORKERCONTEXT BB_LIMITEDDEPS extend_recipe_sysroot DEPLOY_DIR"
 BB_HASHCONFIG_WHITELIST ?= "${BB_HASHBASE_WHITELIST} DATE TIME SSH_AGENT_PID \
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 4/5] ccache: don't search PATH for ccache

2017-07-12 Thread Ross Burton
Instead of searching $PATH for ccache in all builds, simply set CCACHE in target
builds to 'ccache ' directly.  We build-depend on ccache-native for target
builds so this will always be present.

Signed-off-by: Ross Burton 
---
 meta/classes/ccache.bbclass | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/meta/classes/ccache.bbclass b/meta/classes/ccache.bbclass
index 960902065c4..8e4b5ab8410 100644
--- a/meta/classes/ccache.bbclass
+++ b/meta/classes/ccache.bbclass
@@ -1,4 +1,5 @@
-CCACHE = "${@bb.utils.which(d.getVar('PATH'), 'ccache') and 'ccache '}"
+CCACHE_class-target = "ccache "
+
 export CCACHE_DIR ?= "${TMPDIR}/ccache/${MULTIMACH_TARGET_SYS}/${PN}"
 
 # We need to stop ccache considering the current directory or the
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 1/5] ccache: don't export CCACHE_DISABLE globally

2017-07-12 Thread Ross Burton
CCACHE_DISABLE was added to bitbake.conf in oe-core dd2bab (June 2012) because
autogen-native exports HOME=/dev/null during the build, which is then used by a
host ccache to construct the path to it's cache (/dev/null/.ccache) and this
fails.

However we now always export CCACHE_DIR to solve the same problem in a more
efficient way so CCACHE_DISABLE can be deleted.

Signed-off-by: Ross Burton 
---
 meta/classes/ccache.bbclass | 1 -
 meta/conf/bitbake.conf  | 5 +
 2 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/meta/classes/ccache.bbclass b/meta/classes/ccache.bbclass
index d58c8f6e57a..9f1b1f45e34 100644
--- a/meta/classes/ccache.bbclass
+++ b/meta/classes/ccache.bbclass
@@ -1,6 +1,5 @@
 CCACHE = "${@bb.utils.which(d.getVar('PATH'), 'ccache') and 'ccache '}"
 export CCACHE_DIR ?= "${TMPDIR}/ccache/${MULTIMACH_TARGET_SYS}/${PN}"
-CCACHE_DISABLE[unexport] = "1"
 
 # We need to stop ccache considering the current directory or the
 # debug-prefix-map target directory to be significant when calculating
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 962eb437c7b..042a03cbf90 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -480,9 +480,6 @@ HOSTTOOLS_NONFATAL += "aws ccache gcc-ar gpg ld.bfd ld.gold 
nc sftp socat sudo"
 HOSTTOOLS_NONFATAL += "join nl size yes zcat"
 
 CCACHE ??= ""
-# Disable ccache explicitly if CCACHE is null since gcc may be a symlink
-# of ccache some distributions (e.g., Fedora 17).
-export CCACHE_DISABLE ??= "${@[0,1][d.getVar('CCACHE') == '']}"
 # ccache < 3.1.10 will create CCACHE_DIR on startup even if disabled, and
 # autogen sets HOME=/dev/null so in certain situations builds can fail.
 # Explicitly export CCACHE_DIR until we can assume ccache >3.1.10 on the host.
@@ -845,7 +842,7 @@ BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH 
BBPATH BBSERVER DL_DI
 SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM \
 USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \
 PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \
-CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH 
SDKPKGSUFFIX \
+CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE LICENSE_PATH SDKPKGSUFFIX \
 WARN_QA ERROR_QA WORKDIR STAMPCLEAN PKGDATA_DIR BUILD_ARCH SSTATE_PKGARCH \
 BB_WORKERCONTEXT BB_LIMITEDDEPS extend_recipe_sysroot DEPLOY_DIR"
 BB_HASHCONFIG_WHITELIST ?= "${BB_HASHBASE_WHITELIST} DATE TIME SSH_AGENT_PID \
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 3/5] ccache: let ccache create CCACHE_DIR, reducing hash changes

2017-07-12 Thread Ross Burton
Signed-off-by: Ross Burton 
---
 meta/classes/ccache.bbclass | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/meta/classes/ccache.bbclass b/meta/classes/ccache.bbclass
index 9f1b1f45e34..960902065c4 100644
--- a/meta/classes/ccache.bbclass
+++ b/meta/classes/ccache.bbclass
@@ -9,6 +9,3 @@ export CCACHE_NOHASHDIR ?= "1"
 
 DEPENDS_append_class-target = " ccache-native"
 DEPENDS[vardepvalueexclude] = " ccache-native"
-
-do_configure[dirs] =+ "${CCACHE_DIR}"
-do_kernel_configme[dirs] =+ "${CCACHE_DIR}"
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 5/5] lib/oe/sstatesig: exclude ccache-native from signature hashes

2017-07-12 Thread Ross Burton
Enabling ccache should not cause a complete rebuild, so filter out ccache-native
from the dependencies the same way we do for quilt-native (so the world doesn't
repatch if quilt changes).

This doesn't effect the actual dependencies, just the dependencies that impact
the hash.

[ YOCTO #11417 ]

Signed-off-by: Ross Burton 
---
 meta/lib/oe/sstatesig.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index b8dd4c869ed..5a4093266d4 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -29,7 +29,7 @@ def sstate_rundepfilter(siggen, fn, recipename, task, dep, 
depname, dataCache):
 return True
 
 # Quilt (patch application) changing isn't likely to affect anything
-excludelist = ['quilt-native', 'subversion-native', 'git-native']
+excludelist = ['quilt-native', 'subversion-native', 'git-native', 
'ccache-native']
 if depname in excludelist and recipename != depname:
 return False
 
-- 
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/6] cryptodev: 1.8 -> 1.9

2017-07-12 Thread Robert Yang



On 07/12/2017 08:32 PM, Burton, Ross wrote:

ERROR: cryptodev-module-1.9-r0 do_patch: Command Error: 'quilt --quiltrc
/data/poky-tmp/master/work/intel_corei7_64-poky-linux/cryptodev-module/1.9-r0/recipe-sysroot-native/etc/quiltrc
push' exited with 0  Output:
Applying patch 0001-zc-Force-4.10-get_user_pages_remote-API.patch
patching file zc.c
Hunk #1 FAILED at 67.
1 out of 1 hunk FAILED -- rejects in file zc.c
Patch 0001-zc-Force-4.10-get_user_pages_remote-API.patch does not apply (enforce
with -f)


This patch is from meta-intel which I didn't build, sorry, I will fix it.

// Robert




Ross

--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 2/6] cryptodev: 1.8 -> 1.9

2017-07-12 Thread Burton, Ross
Oh, didn't notice that.  Not sure I want to know why meta-intel has to
patch cryptodev!

CCing Saul for his input.

Ross

On 12 July 2017 at 14:36, Robert Yang  wrote:

>
>
> On 07/12/2017 08:32 PM, Burton, Ross wrote:
>
>> ERROR: cryptodev-module-1.9-r0 do_patch: Command Error: 'quilt --quiltrc
>> /data/poky-tmp/master/work/intel_corei7_64-poky-linux/crypto
>> dev-module/1.9-r0/recipe-sysroot-native/etc/quiltrc
>> push' exited with 0  Output:
>> Applying patch 0001-zc-Force-4.10-get_user_pages_remote-API.patch
>> patching file zc.c
>> Hunk #1 FAILED at 67.
>> 1 out of 1 hunk FAILED -- rejects in file zc.c
>> Patch 0001-zc-Force-4.10-get_user_pages_remote-API.patch does not apply
>> (enforce
>> with -f)
>>
>
> This patch is from meta-intel which I didn't build, sorry, I will fix it.
>
> // Robert
>
>
>
>> Ross
>>
>
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 02/30] oeqa/selftest/{context, case}: Handle KeyboardInterrupt/SIGINT and SIGTERM

2017-07-12 Thread Leonardo Sandoval
I saw a similar patch in the past. Is this a new revision?

Leo


On Tue, 2017-07-11 at 15:23 -0500, Aníbal Limón wrote:
> In order to avoid corrupt local.conf and bblayers.conf adds
> signal handler for SIGTERM and use try/finally (KeyboardIntrrupt) block
> to restore previously backuped configuration.
> 
> [YOCTO #11650]
> 
> Signed-off-by: Aníbal Limón 
> ---
>  meta/lib/oeqa/selftest/case.py|  36 +++--
>  meta/lib/oeqa/selftest/context.py | 107 
> +++---
>  2 files changed, 97 insertions(+), 46 deletions(-)
> 
> diff --git a/meta/lib/oeqa/selftest/case.py b/meta/lib/oeqa/selftest/case.py
> index 31a11fddda9..871009c568b 100644
> --- a/meta/lib/oeqa/selftest/case.py
> +++ b/meta/lib/oeqa/selftest/case.py
> @@ -13,28 +13,34 @@ from oeqa.utils.commands import runCmd, bitbake, 
> get_bb_var
>  from oeqa.core.case import OETestCase
>  
>  class OESelftestTestCase(OETestCase):
> -builddir = os.environ.get("BUILDDIR") or ""
> -localconf_path = os.path.join(builddir, "conf/local.conf")
> -localconf_backup = os.path.join(builddir, "conf/local.bk")
> -testinc_path = os.path.join(builddir, "conf/selftest.inc")
> -local_bblayers_path = os.path.join(builddir, "conf/bblayers.conf")
> -local_bblayers_backup = os.path.join(builddir, "conf/bblayers.bk")
> -testinc_bblayers_path = os.path.join(builddir, "conf/bblayers.inc")
> -machineinc_path = os.path.join(builddir, "conf/machine.inc")
> -
>  def __init__(self, methodName="runTest"):
>  self._extra_tear_down_commands = []
> -self._track_for_cleanup = [
> -self.testinc_path, self.testinc_bblayers_path,
> -self.machineinc_path, self.localconf_backup,
> -self.local_bblayers_backup]
> -
>  super(OESelftestTestCase, self).__init__(methodName)
>  
>  @classmethod
>  def setUpClass(cls):
>  super(OESelftestTestCase, cls).setUpClass()
> -cls.testlayer_path = cls.tc.testlayer_path
> +
> +cls.testlayer_path = cls.tc.config_paths['testlayer_path']
> +cls.builddir = cls.tc.config_paths['builddir']
> +
> +cls.localconf_path = cls.tc.config_paths['localconf']
> +cls.localconf_backup = cls.tc.config_paths['localconf_class_backup']
> +cls.local_bblayers_path = cls.tc.config_paths['bblayers']
> +cls.local_bblayers_backup = 
> cls.tc.config_paths['bblayers_class_backup']
> +
> +cls.testinc_path = os.path.join(cls.tc.config_paths['builddir'],
> +"conf/selftest.inc")
> +cls.testinc_bblayers_path = 
> os.path.join(cls.tc.config_paths['builddir'],
> +"conf/bblayers.inc")
> +cls.machineinc_path = os.path.join(cls.tc.config_paths['builddir'],
> +"conf/machine.inc")
> +
> +cls._track_for_cleanup = [
> +cls.testinc_path, cls.testinc_bblayers_path,
> +cls.machineinc_path, cls.localconf_backup,
> +cls.local_bblayers_backup]
> +
>  cls.add_include()
>  
>  @classmethod
> diff --git a/meta/lib/oeqa/selftest/context.py 
> b/meta/lib/oeqa/selftest/context.py
> index ca87398224c..4575a0537fb 100644
> --- a/meta/lib/oeqa/selftest/context.py
> +++ b/meta/lib/oeqa/selftest/context.py
> @@ -6,6 +6,8 @@ import time
>  import glob
>  import sys
>  import imp
> +import signal
> +from shutil import copyfile
>  from random import choice
>  
>  import oeqa
> @@ -16,13 +18,12 @@ from oeqa.core.exception import OEQAPreRun
>  from oeqa.utils.commands import runCmd, get_bb_vars, get_test_layer
>  
>  class OESelftestTestContext(OETestContext):
> -def __init__(self, td=None, logger=None, machines=None, 
> testlayer_path=None):
> +def __init__(self, td=None, logger=None, machines=None, 
> config_paths=None):
>  super(OESelftestTestContext, self).__init__(td, logger)
>  
>  self.machines = machines
>  self.custommachine = None
> -
> -self.testlayer_path = testlayer_path
> +self.config_paths = config_paths
>  
>  def runTests(self, machine=None):
>  if machine:
> @@ -108,7 +109,29 @@ class 
> OESelftestTestContextExecutor(OETestContextExecutor):
>  
>  self.tc_kwargs['init']['td'] = get_bb_vars()
>  self.tc_kwargs['init']['machines'] = self._get_available_machines()
> -self.tc_kwargs['init']['testlayer_path'] = get_test_layer()
> +
> +builddir = os.environ.get("BUILDDIR")
> +self.tc_kwargs['init']['config_paths'] = {}
> +self.tc_kwargs['init']['config_paths']['testlayer_path'] = \
> +get_test_layer()
> +self.tc_kwargs['init']['config_paths']['builddir'] = builddir
> +self.tc_kwargs['init']['config_paths']['localconf'] = \
> +os.path.join(builddir, "conf/local.conf")
> +self.tc_kwargs['init']['config_paths']['localconf_backup'] = \
> +os.path.join(builddir, "conf/local.conf.orig")
> +self.tc_kwargs['in

Re: [OE-core] [PATCH 07/30] oeqa/core/threaded: Add support to run into a thread at end of execution

2017-07-12 Thread Leonardo Sandoval
On Tue, 2017-07-11 at 15:23 -0500, Aníbal Limón wrote:
> Some test cases aren't allowed to run into a multi-thread environment so
> add the posibility to run those tests at end of execution.
> 

Hi Anibal,

which is the reason these need to run at the end?



> Signed-off-by: Aníbal Limón 
> ---
>  meta/lib/oeqa/core/threaded.py | 102 
> +++--
>  1 file changed, 78 insertions(+), 24 deletions(-)
> 
> diff --git a/meta/lib/oeqa/core/threaded.py b/meta/lib/oeqa/core/threaded.py
> index 34217f1a8b8..a7dc0aed401 100644
> --- a/meta/lib/oeqa/core/threaded.py
> +++ b/meta/lib/oeqa/core/threaded.py
> @@ -30,18 +30,35 @@ class OETestLoaderThreaded(OETestLoader):
>  suites = {}
>  suites['main'] = self.suiteClass()
>  suites['pool'] = []
> +suites['end'] = self.suiteClass()
>  for _ in range(self.process_num - 1):
>  suites['pool'].append(self.suiteClass())
>  
> +def _add_by_module_or_dep(suite, case, depends):
> +"""
> +A test case that needs to run into the same thread
> +because is on the same module or for dependency
> +reasons.
> +"""
> +
> +for c in suite._tests:
> +if case.__module__ == c.__module__:
> +suite.addTest(case)
> +return True
> +
> +if case.id() in depends:
> +case_depends = depends[case.id()]
> +for c in suite._tests:
> +if c.id() in case_depends:
> +suite.addTest(case)
> +return True
> +
> +return False
> +
>  def _add_to_main_thread(main_suite, case, depends):
>  """
>  Some test cases needs to be run into the main
> -thread for several resons.
> -
> -A test case that needs to run in the main thread
> -can be for specific set via test class _main_thread
> -attr or because is on the same module or for a dependency
> -reason.
> +thread by request.
>  """
>  
>  if hasattr(case.__class__, '_main_thread') and \
> @@ -50,19 +67,20 @@ class OETestLoaderThreaded(OETestLoader):
>  main_suite.addTest(case)
>  return True
>  
> -for c in main_suite._tests:
> -if case.__module__ == c.__module__:
> -main_suite.addTest(case)
> -return True
> +return _add_by_module_or_dep(main_suite, case, depends)
>  
> -if case.id() in depends:
> -case_depends = depends[case.id()]
> -for c in main_suite._tests:
> -if c.id() in case_depends:
> -main_suite.addTest(case)
> -return True
> +def _add_to_end_thread(end_suite, case, depends):
> +"""
> +Some test cases needs to be run into at end of
> +execution into the main by request.
> +"""
> +if hasattr(case.__class__, '_end_thread') and \
> +case.__class__._end_thread or \
> +self.process_num == 1:
> +end_suite.addTest(case)
> +return True
>  
> -return False
> +return _add_by_module_or_dep(end_suite, case, depends)
>  
>  def _search_for_module_idx(suites, case):
>  """
> @@ -112,6 +130,9 @@ class OETestLoaderThreaded(OETestLoader):
>  if 'depends' in self.tc._registry:
>  depends = self.tc._registry['depends']
>  
> +if _add_to_end_thread(suites['end'], case, depends):
> +continue
> +
>  if _add_to_main_thread(suites['main'], case, depends):
>  continue
>  
> @@ -135,7 +156,7 @@ class OETestLoaderThreaded(OETestLoader):
>  
>  # if the main suite doesn't have test cases
>  # use the first element of the suites pool
> -if not len(suites['main']._tests):
> +if not len(suites['main']._tests) and len(suites['pool']):
>  suites['main'] = suites['pool'].pop(0)
>  
>  return suites
> @@ -268,6 +289,12 @@ class _ThreadedPool:
>  self.tasks = queue.Queue(num_tasks)
>  self.workers = []
>  
> +self.stream = stream
> +self.result = result
> +
> +self.end_task = None
> +self.end_worker = None
> +
>  for _ in range(num_workers):
>  worker = _Worker(self.tasks, result, stream)
>  self.workers.append(worker)
> @@ -280,12 +307,25 @@ class _ThreadedPool:
>  """Add a task to the queue"""
>  self.tasks.put((func, args, kargs))
>  
> +def add_end_task(self, func, *args, **kwargs):
> +"""Add 

Re: [OE-core] [PATCH 28/30] argparse_oe: Add int_positive type

2017-07-12 Thread Leonardo Sandoval
On Tue, 2017-07-11 at 15:23 -0500, Aníbal Limón wrote:
> Sometimes only expect positive values from cmdline so it's better
> to filter at parsing cmdline step instead of validate later.
> 
> Signed-off-by: Aníbal Limón 
> ---
>  scripts/lib/argparse_oe.py | 7 +++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/scripts/lib/argparse_oe.py b/scripts/lib/argparse_oe.py
> index bf6eb17197b..9bdfc1ceca2 100644
> --- a/scripts/lib/argparse_oe.py
> +++ b/scripts/lib/argparse_oe.py
> @@ -167,3 +167,10 @@ class OeHelpFormatter(argparse.HelpFormatter):
>  return '\n'.join(lines)
>  else:
>  return super(OeHelpFormatter, self)._format_action(action)
> +


when adding an argument into a script, one can define the type expected
so and the library itself does what you are doing for free, so not sure
if this is needed.



> +def int_positive(value):
> +ivalue = int(value)
> +if ivalue <= 0:
> +raise argparse.ArgumentTypeError(
> +"%s is not a positive int value" % value)
> +return ivalue


-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 0/2] mesa: Improve Khronos header handling

2017-07-12 Thread Andrea Galbusera
Il 12 lug 2017 2:11 PM, "Jussi Kukkonen"  ha
scritto:

Andrea: can you please confirm if this fixes the issue with
meta-raspberrypi (the second patch is just cosmetic)?


I'll give it a spin as soon as I find some spare cycles! BTW, thank you
guys for looking into it!


This should fix mesa-gl and RPi userland conflict by not installing
khrplatform.h in mesa-gl. I decided to do an actual mesa patch instead
of a do_install_append() based on positive comments from upstream.

As a side note: the header is now installed in libegl-mesa-dev which
is not really correct. I'll see about fixing this in a later patch.

Cheers,
  Jussi

The following changes since commit 81498aac9560fbeaeb58eaada32ce80e0ea51628:

  yocto-project-qs: Updated Next Steps list (2017-07-12 00:28:16 +0100)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib jku/khr-headers
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=jku/khr-headers

Jussi Kukkonen (2):
  mesa: Avoid installing khrplatfrom.h when not needed
  mesa-gl: Clean recipe

 ...ly-install-khrplatform.h-with-EGL-or-GLES.patch | 52
++
 meta/recipes-graphics/mesa/mesa-gl_17.1.4.bb   |  4 --
 meta/recipes-graphics/mesa/mesa_17.1.4.bb  |  1 +
 3 files changed, 53 insertions(+), 4 deletions(-)
 create mode 100644 meta/recipes-graphics/mesa/files/0001-mapi-Only-install-
khrplatform.h-with-EGL-or-GLES.patch

--
2.1.4
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] gettext: Enable generation of libasprintf in gettext 0.19

2017-07-12 Thread Lev Iserovich

  
  
On 07/12/2017 06:03 AM, Burton, Ross
  wrote:


  
  

  On 11 July 2017 at 16:57, Lev
Iserovich 
wrote:

  Libasprintf
was included in gettext 0.16
recipe, but omitted for some reason
in 0.19. This turns it back on.
  

  
  
  As this pulls C++ libraries into the core package, can it be
  split out like the other libraries?
  

Sure, I can do that - can you point to some prior art for how this
is generally done?

Lev
  

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 02/30] oeqa/selftest/{context, case}: Handle KeyboardInterrupt/SIGINT and SIGTERM

2017-07-12 Thread Aníbal Limón
Yes is the same,

Anibal

On 07/12/2017 09:18 AM, Leonardo Sandoval wrote:
> I saw a similar patch in the past. Is this a new revision?
> 
> Leo
> 
> 
> On Tue, 2017-07-11 at 15:23 -0500, Aníbal Limón wrote:
>> In order to avoid corrupt local.conf and bblayers.conf adds
>> signal handler for SIGTERM and use try/finally (KeyboardIntrrupt) block
>> to restore previously backuped configuration.
>>
>> [YOCTO #11650]
>>
>> Signed-off-by: Aníbal Limón 
>> ---
>>  meta/lib/oeqa/selftest/case.py|  36 +++--
>>  meta/lib/oeqa/selftest/context.py | 107 
>> +++---
>>  2 files changed, 97 insertions(+), 46 deletions(-)
>>
>> diff --git a/meta/lib/oeqa/selftest/case.py b/meta/lib/oeqa/selftest/case.py
>> index 31a11fddda9..871009c568b 100644
>> --- a/meta/lib/oeqa/selftest/case.py
>> +++ b/meta/lib/oeqa/selftest/case.py
>> @@ -13,28 +13,34 @@ from oeqa.utils.commands import runCmd, bitbake, 
>> get_bb_var
>>  from oeqa.core.case import OETestCase
>>  
>>  class OESelftestTestCase(OETestCase):
>> -builddir = os.environ.get("BUILDDIR") or ""
>> -localconf_path = os.path.join(builddir, "conf/local.conf")
>> -localconf_backup = os.path.join(builddir, "conf/local.bk")
>> -testinc_path = os.path.join(builddir, "conf/selftest.inc")
>> -local_bblayers_path = os.path.join(builddir, "conf/bblayers.conf")
>> -local_bblayers_backup = os.path.join(builddir, "conf/bblayers.bk")
>> -testinc_bblayers_path = os.path.join(builddir, "conf/bblayers.inc")
>> -machineinc_path = os.path.join(builddir, "conf/machine.inc")
>> -
>>  def __init__(self, methodName="runTest"):
>>  self._extra_tear_down_commands = []
>> -self._track_for_cleanup = [
>> -self.testinc_path, self.testinc_bblayers_path,
>> -self.machineinc_path, self.localconf_backup,
>> -self.local_bblayers_backup]
>> -
>>  super(OESelftestTestCase, self).__init__(methodName)
>>  
>>  @classmethod
>>  def setUpClass(cls):
>>  super(OESelftestTestCase, cls).setUpClass()
>> -cls.testlayer_path = cls.tc.testlayer_path
>> +
>> +cls.testlayer_path = cls.tc.config_paths['testlayer_path']
>> +cls.builddir = cls.tc.config_paths['builddir']
>> +
>> +cls.localconf_path = cls.tc.config_paths['localconf']
>> +cls.localconf_backup = cls.tc.config_paths['localconf_class_backup']
>> +cls.local_bblayers_path = cls.tc.config_paths['bblayers']
>> +cls.local_bblayers_backup = 
>> cls.tc.config_paths['bblayers_class_backup']
>> +
>> +cls.testinc_path = os.path.join(cls.tc.config_paths['builddir'],
>> +"conf/selftest.inc")
>> +cls.testinc_bblayers_path = 
>> os.path.join(cls.tc.config_paths['builddir'],
>> +"conf/bblayers.inc")
>> +cls.machineinc_path = os.path.join(cls.tc.config_paths['builddir'],
>> +"conf/machine.inc")
>> +
>> +cls._track_for_cleanup = [
>> +cls.testinc_path, cls.testinc_bblayers_path,
>> +cls.machineinc_path, cls.localconf_backup,
>> +cls.local_bblayers_backup]
>> +
>>  cls.add_include()
>>  
>>  @classmethod
>> diff --git a/meta/lib/oeqa/selftest/context.py 
>> b/meta/lib/oeqa/selftest/context.py
>> index ca87398224c..4575a0537fb 100644
>> --- a/meta/lib/oeqa/selftest/context.py
>> +++ b/meta/lib/oeqa/selftest/context.py
>> @@ -6,6 +6,8 @@ import time
>>  import glob
>>  import sys
>>  import imp
>> +import signal
>> +from shutil import copyfile
>>  from random import choice
>>  
>>  import oeqa
>> @@ -16,13 +18,12 @@ from oeqa.core.exception import OEQAPreRun
>>  from oeqa.utils.commands import runCmd, get_bb_vars, get_test_layer
>>  
>>  class OESelftestTestContext(OETestContext):
>> -def __init__(self, td=None, logger=None, machines=None, 
>> testlayer_path=None):
>> +def __init__(self, td=None, logger=None, machines=None, 
>> config_paths=None):
>>  super(OESelftestTestContext, self).__init__(td, logger)
>>  
>>  self.machines = machines
>>  self.custommachine = None
>> -
>> -self.testlayer_path = testlayer_path
>> +self.config_paths = config_paths
>>  
>>  def runTests(self, machine=None):
>>  if machine:
>> @@ -108,7 +109,29 @@ class 
>> OESelftestTestContextExecutor(OETestContextExecutor):
>>  
>>  self.tc_kwargs['init']['td'] = get_bb_vars()
>>  self.tc_kwargs['init']['machines'] = self._get_available_machines()
>> -self.tc_kwargs['init']['testlayer_path'] = get_test_layer()
>> +
>> +builddir = os.environ.get("BUILDDIR")
>> +self.tc_kwargs['init']['config_paths'] = {}
>> +self.tc_kwargs['init']['config_paths']['testlayer_path'] = \
>> +get_test_layer()
>> +self.tc_kwargs['init']['config_paths']['builddir'] = builddir
>> +self.tc_kwargs['init']['config_paths']['localconf'] = \
>> +os.path.joi

Re: [OE-core] [PATCH 07/30] oeqa/core/threaded: Add support to run into a thread at end of execution

2017-07-12 Thread Aníbal Limón


On 07/12/2017 09:22 AM, Leonardo Sandoval wrote:
> On Tue, 2017-07-11 at 15:23 -0500, Aníbal Limón wrote:
>> Some test cases aren't allowed to run into a multi-thread environment so
>> add the posibility to run those tests at end of execution.
>>
> 
> Hi Anibal,
> 
> which is the reason these need to run at the end?
> 

Some devtool tests made modifications to the meta directory causing
deterministic meta-data bitbake errors in other threads, see the patch
devtool_end in this series.

Anibal

> 
> 
>> Signed-off-by: Aníbal Limón 
>> ---
>>  meta/lib/oeqa/core/threaded.py | 102 
>> +++--
>>  1 file changed, 78 insertions(+), 24 deletions(-)
>>
>> diff --git a/meta/lib/oeqa/core/threaded.py b/meta/lib/oeqa/core/threaded.py
>> index 34217f1a8b8..a7dc0aed401 100644
>> --- a/meta/lib/oeqa/core/threaded.py
>> +++ b/meta/lib/oeqa/core/threaded.py
>> @@ -30,18 +30,35 @@ class OETestLoaderThreaded(OETestLoader):
>>  suites = {}
>>  suites['main'] = self.suiteClass()
>>  suites['pool'] = []
>> +suites['end'] = self.suiteClass()
>>  for _ in range(self.process_num - 1):
>>  suites['pool'].append(self.suiteClass())
>>  
>> +def _add_by_module_or_dep(suite, case, depends):
>> +"""
>> +A test case that needs to run into the same thread
>> +because is on the same module or for dependency
>> +reasons.
>> +"""
>> +
>> +for c in suite._tests:
>> +if case.__module__ == c.__module__:
>> +suite.addTest(case)
>> +return True
>> +
>> +if case.id() in depends:
>> +case_depends = depends[case.id()]
>> +for c in suite._tests:
>> +if c.id() in case_depends:
>> +suite.addTest(case)
>> +return True
>> +
>> +return False
>> +
>>  def _add_to_main_thread(main_suite, case, depends):
>>  """
>>  Some test cases needs to be run into the main
>> -thread for several resons.
>> -
>> -A test case that needs to run in the main thread
>> -can be for specific set via test class _main_thread
>> -attr or because is on the same module or for a dependency
>> -reason.
>> +thread by request.
>>  """
>>  
>>  if hasattr(case.__class__, '_main_thread') and \
>> @@ -50,19 +67,20 @@ class OETestLoaderThreaded(OETestLoader):
>>  main_suite.addTest(case)
>>  return True
>>  
>> -for c in main_suite._tests:
>> -if case.__module__ == c.__module__:
>> -main_suite.addTest(case)
>> -return True
>> +return _add_by_module_or_dep(main_suite, case, depends)
>>  
>> -if case.id() in depends:
>> -case_depends = depends[case.id()]
>> -for c in main_suite._tests:
>> -if c.id() in case_depends:
>> -main_suite.addTest(case)
>> -return True
>> +def _add_to_end_thread(end_suite, case, depends):
>> +"""
>> +Some test cases needs to be run into at end of
>> +execution into the main by request.
>> +"""
>> +if hasattr(case.__class__, '_end_thread') and \
>> +case.__class__._end_thread or \
>> +self.process_num == 1:
>> +end_suite.addTest(case)
>> +return True
>>  
>> -return False
>> +return _add_by_module_or_dep(end_suite, case, depends)
>>  
>>  def _search_for_module_idx(suites, case):
>>  """
>> @@ -112,6 +130,9 @@ class OETestLoaderThreaded(OETestLoader):
>>  if 'depends' in self.tc._registry:
>>  depends = self.tc._registry['depends']
>>  
>> +if _add_to_end_thread(suites['end'], case, depends):
>> +continue
>> +
>>  if _add_to_main_thread(suites['main'], case, depends):
>>  continue
>>  
>> @@ -135,7 +156,7 @@ class OETestLoaderThreaded(OETestLoader):
>>  
>>  # if the main suite doesn't have test cases
>>  # use the first element of the suites pool
>> -if not len(suites['main']._tests):
>> +if not len(suites['main']._tests) and len(suites['pool']):
>>  suites['main'] = suites['pool'].pop(0)
>>  
>>  return suites
>> @@ -268,6 +289,12 @@ class _ThreadedPool:
>>  self.tasks = queue.Queue(num_tasks)
>>  self.workers = []
>>  
>> +self.stream = stream
>> +self.result = result
>> +
>> +self.end_task = None
>> +self.end_worker = None

Re: [OE-core] [PATCH 18/30] oeqa/selftest/cases: tinfoil to run in the main thread

2017-07-12 Thread Aníbal Limón


On 07/12/2017 01:56 AM, Patrick Ohly wrote:
> On Tue, 2017-07-11 at 15:23 -0500, Aníbal Limón wrote:
>> The tinfoil tests needs to initialize bitbake internals and wasn't
>> designed to be in a thread environment causing problems when try
>> for example set signal handlers in a thread different than the
>> main one.
>>
>> To workaround this execute tinfoil tests in the main thread and
>> don't use custom builddir because isn't make sense too.
>>
>> Signed-off-by: Aníbal Limón 
>> ---
>>  meta/lib/oeqa/selftest/cases/tinfoil.py | 1 -
>>  1 file changed, 1 deletion(-)
>>
>> diff --git a/meta/lib/oeqa/selftest/cases/tinfoil.py
>> b/meta/lib/oeqa/selftest/cases/tinfoil.py
>> index aa1af7e0423..7248b755812 100644
>> --- a/meta/lib/oeqa/selftest/cases/tinfoil.py
>> +++ b/meta/lib/oeqa/selftest/cases/tinfoil.py
>> @@ -9,7 +9,6 @@ from oeqa.core.decorator.oeid import OETestID
>>  
>>  class TinfoilTests(OESelftestTestCase):
>>  """ Basic tests for the tinfoil API """
>> -
>>  @OETestID(1568)
>>  def test_getvar(self):
>>  with bb.tinfoil.Tinfoil() as tinfoil:
> 
> There's just a line removal in this patch. That's probably not what was
> intended?

Yes, thanks for pointing it, i changed the default behaviour to the old
one it means run by default into the main thread and uses the same build
dir, so this patch needs to be removed.

Cheers,
Anibal

> 
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 28/30] argparse_oe: Add int_positive type

2017-07-12 Thread Aníbal Limón


On 07/12/2017 09:33 AM, Leonardo Sandoval wrote:
> On Tue, 2017-07-11 at 15:23 -0500, Aníbal Limón wrote:
>> Sometimes only expect positive values from cmdline so it's better
>> to filter at parsing cmdline step instead of validate later.
>>
>> Signed-off-by: Aníbal Limón 
>> ---
>>  scripts/lib/argparse_oe.py | 7 +++
>>  1 file changed, 7 insertions(+)
>>
>> diff --git a/scripts/lib/argparse_oe.py b/scripts/lib/argparse_oe.py
>> index bf6eb17197b..9bdfc1ceca2 100644
>> --- a/scripts/lib/argparse_oe.py
>> +++ b/scripts/lib/argparse_oe.py
>> @@ -167,3 +167,10 @@ class OeHelpFormatter(argparse.HelpFormatter):
>>  return '\n'.join(lines)
>>  else:
>>  return super(OeHelpFormatter, self)._format_action(action)
>> +
> 
> 
> when adding an argument into a script, one can define the type expected
> so and the library itself does what you are doing for free, so not sure
> if this is needed.

The argparse only has int type so i need to ensure that only positive
numbers are allowed.

Anibal
> 
> 
> 
>> +def int_positive(value):
>> +ivalue = int(value)
>> +if ivalue <= 0:
>> +raise argparse.ArgumentTypeError(
>> +"%s is not a positive int value" % value)
>> +return ivalue
> 
> 
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 20/30] oeqa/selftest/cases: runqemu enable thraded runs

2017-07-12 Thread Aníbal Limón


On 07/12/2017 02:15 AM, Patrick Ohly wrote:
> s/thraded/threaded/ in the subject. There are more spelling mistakes
> elsewhere ("wrapper methos"). I don't know how important that is.
> 
> On Tue, 2017-07-11 at 15:23 -0500, Aníbal Limón wrote:
>> - Update to use wrappers {bitbake,get_bb_var} from OESelfTestCase class.
> 
> s/OESelfTestCase/OESelftestTestCase/
> 
> Sorry to be pedantic, but I wanted to look up what these wrappers do and
> couldn't even find the class ;-}

Yes np,

> 
> I've found them in the "oeqa/selftest/case: Add wrappers to
> utils.commands modules" patch. I'm a bit worried that this entire patch
> series is introducing concepts and methods without any documentation or
> explanations why things are done this way. I suspect it will make it
> very hard to write selftests correctly.
> 
> For example, this patch and others like it seem fairly arbitrary. It
> doesn't explain why self.bitbake() is better than bitbake(). If in some
> future patch or test someone were to use bitbake() when they should have
> used self.bitbake() it's not going to be obvious either whether that is
> correct.
> 
> Perhaps all OE tests should have these wrappers and only
> OESelftestTestCase does something special with them? Then we can
> gradually replace the direct calls to oeqa.utils.commands completely.

You are right, the reason for add the wrappers is to be able to run
bitbake, runCmd, get_bb_var{,s}, in certain build directory.


For compatibility reasons the base class OESelftestTestCase is set to
use the main thread and the original builddir, and that's the reason to
don't delete the oeqa.utils.commands.

I guess the best way to address this is to include a README explaining
this situation into the meta/lib/oeqa/selftest folder.

> 
> Add also a wrapper for runqemu and we can get rid of "from
> oeqa.utils.commands import" completely.

Yes we can after the refkit and other selftest are adapted.


Cheers,
Anibal

> 
>> - Run into the main thread because it needs tinfoil to run.
>>
>> Signed-off-by: Aníbal Limón 
>> ---
>>  meta/lib/oeqa/selftest/cases/runqemu.py | 7 +++
>>  1 file changed, 3 insertions(+), 4 deletions(-)
>>
>> diff --git a/meta/lib/oeqa/selftest/cases/runqemu.py 
>> b/meta/lib/oeqa/selftest/cases/runqemu.py
>> index 4050a4123ba..e30cb24046f 100644
>> --- a/meta/lib/oeqa/selftest/cases/runqemu.py
>> +++ b/meta/lib/oeqa/selftest/cases/runqemu.py
>> @@ -6,12 +6,11 @@ import re
>>  import logging
>>  
>>  from oeqa.selftest.case import OESelftestTestCase
>> -from oeqa.utils.commands import bitbake, runqemu, get_bb_var
>> +from oeqa.utils.commands import runqemu
>>  from oeqa.core.decorator.oeid import OETestID
>>  
>>  class RunqemuTests(OESelftestTestCase):
>>  """Runqemu test class"""
>> -
>>  image_is_ready = False
>>  deploy_dir_image = ''
>>  
>> @@ -37,8 +36,8 @@ SYSLINUX_TIMEOUT = "10"
>>  )
>>  
>>  if not RunqemuTests.image_is_ready:
>> -RunqemuTests.deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
>> -bitbake(self.recipe)
>> +RunqemuTests.deploy_dir_image = 
>> self.get_bb_var('DEPLOY_DIR_IMAGE')
>> +self.bitbake(self.recipe)
>>  RunqemuTests.image_is_ready = True
>>  
>>  @OETestID(2001)
> 
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [OE-Core][Morty] gmp: Fix Disable assembly for MIPS R6

2017-07-12 Thread Zubair Lutfullah Kakakhel
The miparchr6 option was introduced pyro onwards and doesn't exist
for morty. Disable assembly the old fashioned way for MIPS R6

Signed-off-by: Zubair Lutfullah Kakakhel 
---
 meta/recipes-support/gmp/gmp_6.1.1.bb | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-support/gmp/gmp_6.1.1.bb 
b/meta/recipes-support/gmp/gmp_6.1.1.bb
index 614d21a..8679461 100644
--- a/meta/recipes-support/gmp/gmp_6.1.1.bb
+++ b/meta/recipes-support/gmp/gmp_6.1.1.bb
@@ -21,7 +21,10 @@ SRC_URI[sha256sum] = 
"a8109865f2893f1373b0a8ed5ff7429de8db696fc451b1036bd7bdf95b
 acpaths = ""
 
 EXTRA_OECONF += " --enable-cxx=detect"
-EXTRA_OECONF_mipsarchr6_append = " --disable-assembly"
+EXTRA_OECONF_mipsisa32r6_append   = " --disable-assembly"
+EXTRA_OECONF_mipsisa32r6el_append = " --disable-assembly"
+EXTRA_OECONF_mipsisa64r6_append   = " --disable-assembly"
+EXTRA_OECONF_mipsisa64r6el_append = " --disable-assembly"
 
 PACKAGES =+ "libgmpxx"
 FILES_libgmpxx = "${libdir}/libgmpxx${SOLIBS}"
-- 
2.10.2

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 4/6] git: 2.11.1 -> 2.13.2

2017-07-12 Thread Leonardo Sandoval
for some reason git did not detect (as other patches in this series)
the renaming (delete/create), make it easier to review.



On Wed, 2017-07-12 at 03:15 -0700, Robert Yang wrote:
> * Remove git-relink from PERLTOOLS:
>   git-2.13.2/Documentation/RelNotes/2.12.0.txt:
>   * An ancient script "git relink" has been removed.
> 
> Signed-off-by: Robert Yang 
> ---
>  meta/recipes-devtools/git/git.inc   |  1 -
>  meta/recipes-devtools/git/git_2.11.1.bb | 11 ---
>  meta/recipes-devtools/git/git_2.13.2.bb | 11 +++
>  3 files changed, 11 insertions(+), 12 deletions(-)
>  delete mode 100644 meta/recipes-devtools/git/git_2.11.1.bb
>  create mode 100644 meta/recipes-devtools/git/git_2.13.2.bb
> 
> diff --git a/meta/recipes-devtools/git/git.inc 
> b/meta/recipes-devtools/git/git.inc
> index 9b0d328..4390b8d 100644
> --- a/meta/recipes-devtools/git/git.inc
> +++ b/meta/recipes-devtools/git/git.inc
> @@ -86,7 +86,6 @@ PERLTOOLS = " \
>  ${libexecdir}/git-core/git-cvsserver \
>  ${bindir}/git-cvsserver \
>  ${libexecdir}/git-core/git-difftool \
> -${libexecdir}/git-core/git-relink \
>  ${libexecdir}/git-core/git-send-email \
>  ${libexecdir}/git-core/git-svn \
>  ${libexecdir}/git-core/git-instaweb \
> diff --git a/meta/recipes-devtools/git/git_2.11.1.bb 
> b/meta/recipes-devtools/git/git_2.11.1.bb
> deleted file mode 100644
> index f2f072c..000
> --- a/meta/recipes-devtools/git/git_2.11.1.bb
> +++ /dev/null
> @@ -1,11 +0,0 @@
> -require git.inc
> -
> -EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
> - 
> ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
> - "
> -EXTRA_OEMAKE += "NO_GETTEXT=1"
> -
> -SRC_URI[tarball.md5sum] = "6a7a73db076bb0514b602720669d685c"
> -SRC_URI[tarball.sha256sum] = 
> "a1cdd7c820f92c44abb5003b36dc8cb7201ba38e8744802399f59c97285ca043"
> -SRC_URI[manpages.md5sum] = "e4268a6b514ccdb624b6450ff55881a3"
> -SRC_URI[manpages.sha256sum] = 
> "ee567e7b0f95333816793714bb31c54e288cf8041f77a0092b85e62c9c2974f9"
> diff --git a/meta/recipes-devtools/git/git_2.13.2.bb 
> b/meta/recipes-devtools/git/git_2.13.2.bb
> new file mode 100644
> index 000..e7cae40
> --- /dev/null
> +++ b/meta/recipes-devtools/git/git_2.13.2.bb
> @@ -0,0 +1,11 @@
> +require git.inc
> +
> +EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
> + 
> ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
> + "
> +EXTRA_OEMAKE += "NO_GETTEXT=1"
> +
> +SRC_URI[tarball.md5sum] = "894583cddfb0ec3b0156484966f9db9c"
> +SRC_URI[tarball.sha256sum] = 
> "e19d450648d6d100eb93abaa5d06ffbc778394fb502354b7026d73e9bcbc3160"
> +SRC_URI[manpages.md5sum] = "97384d23f2ee88d5ce51ffc75096bd3e"
> +SRC_URI[manpages.sha256sum] = 
> "1c2bd0a2340b2ef118b7b167a8fec6cc05eb18cad9043e6e7a95fd8a70bb8c4c"
> -- 
> 2.10.2
> 


-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 03/30] selftest/cases/package: Call parent setUpClass method

2017-07-12 Thread Aníbal Limón


On 07/12/2017 01:51 AM, Patrick Ohly wrote:
> On Tue, 2017-07-11 at 15:23 -0500, Aníbal Limón wrote:
>>  def setUpClass(cls):
>> +super(VersionOrdering, cls).setUpClass()
>> +
> 
> In Python3 one can simply use super().setUpClass().
> 
> Not sure whether that's worth a V2 by itself. There's also plenty of
> other code outside of this patch which could be simplified like this.

Yes may be is better to send a patch changing all the cases to the new
py3 form.

Anibal

> 
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH] mesa: fix build race on src/intel/vulkan

2017-07-12 Thread Ross Burton
It's possible that src/intel/vulkcan can be written into by sed before it has
been created, so add the required mkdir calls.

Signed-off-by: Ross Burton 
---
 .../recipes-graphics/mesa/files/vulkan-mkdir.patch | 37 ++
 meta/recipes-graphics/mesa/mesa_17.1.4.bb  |  1 +
 2 files changed, 38 insertions(+)
 create mode 100644 meta/recipes-graphics/mesa/files/vulkan-mkdir.patch

diff --git a/meta/recipes-graphics/mesa/files/vulkan-mkdir.patch 
b/meta/recipes-graphics/mesa/files/vulkan-mkdir.patch
new file mode 100644
index 000..15ee5eeb14c
--- /dev/null
+++ b/meta/recipes-graphics/mesa/files/vulkan-mkdir.patch
@@ -0,0 +1,37 @@
+Upstream-Status: Submitted
+Signed-off-by: Ross Burton 
+
+From c78979fd95a1c4f732f7e6edf0f32c524e5955b8 Mon Sep 17 00:00:00 2001
+From: Ross Burton 
+Date: Wed, 12 Jul 2017 17:10:07 +0100
+Subject: [PATCH] src/intel/Makefile.vulkan.am: create target directories when
+ required
+
+In out-of-tree builds src/intel/vulkan won't exist, so always create it before
+writing into it.
+
+Signed-off-by: Ross Burton 
+---
+ src/intel/Makefile.vulkan.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/intel/Makefile.vulkan.am b/src/intel/Makefile.vulkan.am
+index 3857a5dc62..26e9cd410c 100644
+--- a/src/intel/Makefile.vulkan.am
 b/src/intel/Makefile.vulkan.am
+@@ -44,11 +44,13 @@ EXTRA_DIST += \
+   vulkan/TODO
+ 
+ vulkan/dev_icd.json : vulkan/dev_icd.json.in
++  $(MKDIR_GEN)
+   $(AM_V_GEN) $(SED) \
+   -e "s#@build_libdir@#${abs_top_builddir}/${LIB_DIR}#" \
+   < $(srcdir)/vulkan/dev_icd.json.in > $@
+ 
+ vulkan/intel_icd.@host_cpu@.json : vulkan/intel_icd.json.in
++  $(MKDIR_GEN)
+   $(AM_V_GEN) $(SED) \
+   -e "s#@install_libdir@#${libdir}#" \
+   < $(srcdir)/vulkan/intel_icd.json.in > $@
+-- 
+2.11.0
diff --git a/meta/recipes-graphics/mesa/mesa_17.1.4.bb 
b/meta/recipes-graphics/mesa/mesa_17.1.4.bb
index 2257045c42c..f0b634a045b 100644
--- a/meta/recipes-graphics/mesa/mesa_17.1.4.bb
+++ b/meta/recipes-graphics/mesa/mesa_17.1.4.bb
@@ -7,6 +7,7 @@ SRC_URI = 
"https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \
file://0001-Use-wayland-scanner-in-the-path.patch \
file://0002-hardware-gloat.patch \
file://0001-mapi-Only-install-khrplatform.h-with-EGL-or-GLES.patch \
+   file://vulkan-mkdir.patch \
 "
 
 SRC_URI[md5sum] = "be2ef7c9edec23b07f74f6512a6a6fa5"
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/2] dropbear: reduce local pending patches

2017-07-12 Thread Burton, Ross
On 12 July 2017 at 03:21, Dengke Du  wrote:

> -Upstream-Status: Pending
> +Upstream-Status: Pending [ The dropbear upstream master branch already
> +contains this, this patch will be droped when meet next release ]
>

If the same fix is upstream, then this can be Backport surely?

Ross
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] gettext: Enable generation of libasprintf in gettext 0.19

2017-07-12 Thread Burton, Ross
On 12 July 2017 at 15:31, Lev Iserovich 
wrote:

> As this pulls C++ libraries into the core package, can it be split out
> like the other libraries?
>
> Sure, I can do that - can you point to some prior art for how this is
> generally done?
>

Add the package name to PACKAGES and fiddle FILES to put the bits in the
right place. gettext already does this for some other libraries.

Ross
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] ✗ patchtest: failure for mesa: fix build race on src/intel/vulkan

2017-07-12 Thread Patchwork
== Series Details ==

Series: mesa: fix build race on src/intel/vulkan
Revision: 1
URL   : https://patchwork.openembedded.org/series/7715/
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 b1c4661742)



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] [oe] State of bitbake world, Failed tasks 2017-07-11

2017-07-12 Thread Khem Raj
On Wed, Jul 12, 2017 at 1:57 AM, Martin Jansa  wrote:
> http://www.openembedded.org/wiki/Bitbake_World_Status
>
> There is pending fix for valgrind and klibc, I've dropped udevil until v2 is 
> sent, so
> hopefully next build will show only new issues caused by glibc upgrade.
>

there shouldn't be any :)

> == Number of issues - stats ==
> {| class='wikitable'
> !|Date   !!colspan='3'|Failed tasks 
> !!|Signatures !!colspan='14'|QA !!Comment
> |-
> ||  ||qemuarm   ||qemux86   ||qemux86_64||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-07-11||3 ||2 ||2 ||0 ||0 ||1   
>   ||0 ||0 ||0 ||229   ||0 
> ||0 ||0 ||0 ||0 ||0   
>   ||0 ||0 ||
> |}
>
> == Failed tasks 2017-07-11 ==
>
> INFO: jenkins-job.sh-1.8.24 Complete log available at 
> http://logs.nslu2-linux.org/buildlogs/oe/world/rocko/log.report.20170711_071226.log
>
> === common (1) ===
> * 
> meta-openembedded/meta-filesystems/recipes-utils/udevil/udevil_0.4.4.bb:do_package
>
> === common-x86 (1) ===
> * 
> openembedded-core/meta/recipes-devtools/valgrind/valgrind_3.12.0.bb:do_compile_ptest_base
>
> === qemuarm (2) ===
> * 
> meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc_2.0.4.bb:do_compile
> * 
> meta-openembedded/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.4.bb:do_compile
>
> === qemux86 (0) ===
>
> === qemux86_64 (0) ===
>
> === Number of failed tasks (7) ===
> {| class=wikitable
> |-
> || qemuarm  || 3 || 
> http://logs.nslu2-linux.org/buildlogs/oe/world/rocko/log.world.qemuarm.20170710_232524.log/
>  || http://errors.yoctoproject.org/Errors/Build/40944/
> |-
> || qemux86  || 2 || 
> http://logs.nslu2-linux.org/buildlogs/oe/world/rocko/log.world.qemux86.20170711_003346.log/
>  || http://errors.yoctoproject.org/Errors/Build/40945/
> |-
> || qemux86_64   || 2 || 
> http://logs.nslu2-linux.org/buildlogs/oe/world/rocko/log.world.qemux86-64.20170711_035611.log/
>  || http://errors.yoctoproject.org/Errors/Build/40946/
> |}
>
> === PNBLACKLISTs (14) ===
>
> === QA issues (230) ===
> {| 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 ||pkgname
> |-
> ||0 ||symlink-to-sysroot
> |-
> ||0 ||textrel
> |-
> ||0 ||unknown-configure-option
> |-
> ||1 ||libdir
> |-
> ||229   ||version-going-backwards
> |}
>
>
>
> === Incorrect PACKAGE_ARCH or sstate signatures (0) ===
>
> Complete log: 
> http://logs.nslu2-linux.org/buildlogs/oe/world/rocko/log.signatures.20170711_015904.log/
>
> No issues detected
>
>
> PNBLACKLISTs:
> openembedded-core/:
> meta-browser:
> meta-openembedded:
> meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.17.bb:PNBLACKLIST[lksctp-tools]
>  ?= "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', "BROKEN: fails to 
> link against sctp_connectx symbol", '', d)}"
> meta-oe/recipes-connectivity/bluez/bluez-hcidump_2.5.bb:PNBLACKLIST[bluez-hcidump]
>  ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with 
> bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
> meta-oe/recipes-connectivity/bluez/bluez4_4.101.bb:PNBLACKLIST[bluez4] ?= 
> "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with 
> bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
> meta-oe/recipes-connectivity/bluez/gst-plugin-bluetooth_4.101.bb:PNBLACKLIST[gst-plugin-bluetooth]
>  ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with 
> bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
> meta-oe/recipes-graphics/libsexy/libsexy_0.1.11.bb:PNBLACKLIST[libsexy] ?= 
> "Fails to build with RSS 
> http://errors.yoctoproject.org/Errors/Details/130607/ - the recipe will be 
> removed on 2017-09-01 unless the issue is fixed"
> meta-oe/recipes-graphics/xorg-driver/xf86-video-geode_2.11.16.bb:PNBLACKLIST[xf86-video-geode]
>  ?= "BROKEN, fails to build - the recipe will be removed on 2017-09-01 unless 
> the issue is fixed"
> meta-oe/recipes-navigation/foxtrotgps/foxtrotgps_1.1.1.bb:PNBLACKLIST[foxtrotgps]
>  ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with 
> bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
> meta-oe/recipes-navigation/gypsy/gypsy.inc:PNBLA

Re: [OE-core] [PATCH 0/2] mesa: Improve Khronos header handling

2017-07-12 Thread Khem Raj
On Wed, Jul 12, 2017 at 5:11 AM, Jussi Kukkonen
 wrote:
> Andrea: can you please confirm if this fixes the issue with
> meta-raspberrypi (the second patch is just cosmetic)?
>
> This should fix mesa-gl and RPi userland conflict by not installing
> khrplatform.h in mesa-gl. I decided to do an actual mesa patch instead
> of a do_install_append() based on positive comments from upstream.
>
> As a side note: the header is now installed in libegl-mesa-dev which
> is not really correct. I'll see about fixing this in a later patch.
>

you might have to express dependencies on it explicitly, so it get included
into rootfs. but it looks a good solution for now.

> Cheers,
>   Jussi
>
> The following changes since commit 81498aac9560fbeaeb58eaada32ce80e0ea51628:
>
>   yocto-project-qs: Updated Next Steps list (2017-07-12 00:28:16 +0100)
>
> are available in the git repository at:
>
>   git://git.yoctoproject.org/poky-contrib jku/khr-headers
>   http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=jku/khr-headers
>
> Jussi Kukkonen (2):
>   mesa: Avoid installing khrplatfrom.h when not needed
>   mesa-gl: Clean recipe
>
>  ...ly-install-khrplatform.h-with-EGL-or-GLES.patch | 52 
> ++
>  meta/recipes-graphics/mesa/mesa-gl_17.1.4.bb   |  4 --
>  meta/recipes-graphics/mesa/mesa_17.1.4.bb  |  1 +
>  3 files changed, 53 insertions(+), 4 deletions(-)
>  create mode 100644 
> meta/recipes-graphics/mesa/files/0001-mapi-Only-install-khrplatform.h-with-EGL-or-GLES.patch
>
> --
> 2.1.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


Re: [OE-core] [PATCH 03/30] selftest/cases/package: Call parent setUpClass method

2017-07-12 Thread Patrick Ohly
On Wed, 2017-07-12 at 10:44 -0500, Aníbal Limón wrote:
> 
> On 07/12/2017 01:51 AM, Patrick Ohly wrote:
> > On Tue, 2017-07-11 at 15:23 -0500, Aníbal Limón wrote:
> >>  def setUpClass(cls):
> >> +super(VersionOrdering, cls).setUpClass()
> >> +
> > 
> > In Python3 one can simply use super().setUpClass().
> > 
> > Not sure whether that's worth a V2 by itself. There's also plenty of
> > other code outside of this patch which could be simplified like this.
> 
> Yes may be is better to send a patch changing all the cases to the new
> py3 form.

Definitely not something for this patch series. However, I think
new code should avoid the more complex form whenever possible. So if you
do a V2, then I'd prefer to have super() in your patch.

-- 
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 1/2] image_types: remove Hob convenience variable

2017-07-12 Thread Joshua Lock
IMAGE_EXTENSION_live is no longer used. It was used by Hob to map the
live image type, but Hob is no longer part of the Bitbake codebase.

Signed-off-by: Joshua Lock 
---
 meta/classes/image_types.bbclass | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass
index 92e0f2c..d04bb08 100644
--- a/meta/classes/image_types.bbclass
+++ b/meta/classes/image_types.bbclass
@@ -301,9 +301,6 @@ RUNNABLE_MACHINE_PATTERNS ?= "qemu"
 
 DEPLOYABLE_IMAGE_TYPES ?= "hddimg iso" 
 
-# Use IMAGE_EXTENSION_xxx to map image type 'xxx' with real image file 
extension name(s) for Hob
-IMAGE_EXTENSION_live = "hddimg iso"
-
 # The IMAGE_TYPES_MASKED variable will be used to mask out from the 
IMAGE_FSTYPES,
 # images that will not be built at do_rootfs time: vmdk, vdi, qcow2, 
hdddirect, hddimg, iso, etc.
 IMAGE_TYPES_MASKED ?= ""
-- 
2.9.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 2/2] x86-base: build only hddimg, rather than iso and hddimg, for x86 machines

2017-07-12 Thread Joshua Lock
Signed-off-by: Joshua Lock 
---
 meta/conf/machine/include/x86-base.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/conf/machine/include/x86-base.inc 
b/meta/conf/machine/include/x86-base.inc
index bfacdf5..a29641a 100644
--- a/meta/conf/machine/include/x86-base.inc
+++ b/meta/conf/machine/include/x86-base.inc
@@ -10,7 +10,7 @@ MACHINE_FEATURES += "screen keyboard pci usbhost ext2 ext3 
x86 \
 
 MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
 
-IMAGE_FSTYPES ?= "live"
+IMAGE_FSTYPES ?= "hddimg"
 
 KERNEL_IMAGETYPE ?= "bzImage"
 
-- 
2.9.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH] classes/sanity: check for case-sensitive file systems

2017-07-12 Thread Ross Burton
Case-insensitive file systems fail during builds in very mysterious ways, such
as mpfr:

  ERROR: patch_do_patch: Not a directory

The problem here being that mpfr has a PATCHES file, so when we try to copy the
patches into ${S}/patches/ it fails.

We can't and won't support case-insensitive file systems so add a sanity check
to abort the build if one is found.

Signed-off-by: Ross Burton 
---
 meta/classes/sanity.bbclass | 12 
 1 file changed, 12 insertions(+)

diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
index b746b173b79..5699287a4a2 100644
--- a/meta/classes/sanity.bbclass
+++ b/meta/classes/sanity.bbclass
@@ -350,6 +350,14 @@ def check_not_nfs(path, name):
 return "The %s: %s can't be located on nfs.\n" % (name, path)
 return ""
 
+# Check that the path is on a case-sensitive file system
+def check_case_sensitive(path, name):
+import tempfile
+with tempfile.NamedTemporaryFile(prefix='TmP', dir=path) as tmp_file:
+if os.path.exists(tmp_file.name.lower()):
+return "The %s (%s) can't be on a case-insensitive file system.\n" 
% (name, path)
+return ""
+
 # Check that path isn't a broken symlink
 def check_symlink(lnk, data):
 if os.path.islink(lnk) and not os.path.exists(lnk):
@@ -672,6 +680,10 @@ def check_sanity_version_change(status, d):
 # Check that TMPDIR isn't located on nfs
 status.addresult(check_not_nfs(tmpdir, "TMPDIR"))
 
+# Check for case-insensitive file systems (such as Linux in Docker on
+# macOS with default HFS+ file system)
+status.addresult(check_case_sensitive(tmpdir, "TMPDIR"))
+
 def sanity_check_locale(d):
 """
 Currently bitbake switches locale to en_US.UTF-8 so check that this locale 
actually exists.
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 04/29] bb/tinfoil: run_command handle busy status in bitbake server

2017-07-12 Thread Aníbal Limón
When tinfoil request a command to bitbake is handled in async
manner [1], sometimes is this ends on return a Busy status.

This is a workaround a needs to be fixed in proper manner
inside bitbake code.

For example when running clientComplete and buildFile is on progress,

  ERROR: Function failed: base_do_unpack
  Traceback (most recent call last):
File "/home/alimon/repos/poky/scripts/lib/devtool/standard.py", line
  797, in modify
  initial_rev = _extract_source(srctree, args.keep_temp, args.branch,
  False, rd, tinfoil)
File "/home/alimon/repos/poky/scripts/lib/devtool/standard.py", line
  562, in _extract_source
  runtask(fn, 'unpack')
File "/home/alimon/repos/poky/scripts/lib/devtool/standard.py", line
  552, in runtask
  raise DevtoolError('Task do_%s failed' % task)
  devtool.DevtoolError: Task do_unpack failed

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
File "/home/alimon/repos/poky/scripts/devtool", line 351, in 
  ret = main()
File "/home/alimon/repos/poky/scripts/devtool", line 338, in main
  ret = args.func(args, config, basepath, workspace)
File "/home/alimon/repos/poky/scripts/lib/devtool/standard.py", line
  864, in modify
  tinfoil.shutdown()
File "/home/alimon/repos/poky/bitbake/lib/bb/tinfoil.py", line 427, in
  shutdown
  self.run_command('clientComplete')
File "/home/alimon/repos/poky/bitbake/lib/bb/tinfoil.py", line 320, in
  run_command
  raise TinfoilCommandFailed(result[1])
  bb.tinfoil.TinfoilCommandFailed: Busy (buildFile in progress)

Signed-off-by: Aníbal Limón 
---
 bitbake/lib/bb/tinfoil.py | 23 +++
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/bitbake/lib/bb/tinfoil.py b/bitbake/lib/bb/tinfoil.py
index fb0da622433..f3a1563e8f3 100644
--- a/bitbake/lib/bb/tinfoil.py
+++ b/bitbake/lib/bb/tinfoil.py
@@ -21,6 +21,7 @@ import os
 import sys
 import atexit
 import re
+import time
 from collections import OrderedDict, defaultdict
 
 import bb.cache
@@ -298,7 +299,7 @@ class Tinfoil:
 config_params = TinfoilConfigParameters(config_only=False)
 self.run_actions(config_params)
 
-def run_command(self, command, *params):
+def run_command(self, command, *params, ntries=0):
 """
 Run a command on the server (as implemented in bb.command).
 Note that there are two types of command - synchronous and
@@ -315,9 +316,23 @@ class Tinfoil:
 commandline = [command]
 if params:
 commandline.extend(params)
-result = self.server_connection.connection.runCommand(commandline)
-if result[1]:
+
+# XXX: Tinfoil commands are run by Cooker in async mode so gives
+# some time to get done.
+result = None
+while True:
+result = self.server_connection.connection.runCommand(commandline)
+if not result[1]:
+break
+elif ntries == 0:
+break
+elif 'Busy' in result[1]:
+ntries = ntries - 1
+time.sleep(1)
+continue
+
 raise TinfoilCommandFailed(result[1])
+
 return result[0]
 
 def set_event_mask(self, eventlist):
@@ -424,7 +439,7 @@ class Tinfoil:
 
 def shutdown(self):
 if self.server_connection:
-self.run_command('clientComplete')
+self.run_command('clientComplete', ntries=1)
 _server_connections.remove(self.server_connection)
 bb.event.ui_queue = []
 self.server_connection.terminate()
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 00/29] oeqa core and oe-selftest threaded enablement

2017-07-12 Thread Aníbal Limón
The v2 address comments did by Patrick about add better explanation
on the commit messages and some typos.

Other interesting information to add is that with this series we will
able to execute oe-selftest in around half [1] of the original time [2],
(9406.782s vs 17303.014s).

[1] https://bugzilla.yoctoproject.org/attachment.cgi?id=3863
[2] https://bugzilla.yoctoproject.org/attachment.cgi?id=3864

This series is to enable oe-selftest threaded runs along some fixes,

* Implementation of main/end thread usage in oeqa threaded
* Adaptation of oe-selftest cases to be able to run in threaded env,
  ** Usage of own build directory by Test class.
  ** Mark the test modules that are enabled to run into a thread.
  ** Split some test modules because aren't support run into a thread
 due to bitbake/tinfoil constraints.

The oe-selftest script now has an cmdline option (-t) to enable threaded
runs, by default is set to 1, this needs to be set manually because 
depending on HW resources available can cause ran out of cpu/memory.

By default the oe-selftest cases runs on the main thread and uses
the main build directory for compatibility purposes.

The following changes since commit 81498aac9560fbeaeb58eaada32ce80e0ea51628:

  yocto-project-qs: Updated Next Steps list (2017-07-12 00:28:16 +0100)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib alimon/oe_selftest_threaded
  
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=alimon/oe_selftest_threaded

Aníbal Limón (29):
  oeqa/core/loader: Switch method definition for _make_failed_test
  oeqa/selftest/{context,case}: Handle KeyboardInterrupt/SIGINT and
SIGTERM
  selftest/cases/package: Call parent setUpClass method
  bb/tinfoil: run_command handle busy status in bitbake server
  oe/copy_buildsystem: check_sstate_task_list also pop BBPATH from env
  oeqa/core/threaded: Enable support to use the main thread
  oeqa/core/threaded: Add support to run into a thread at end of
execution
  oeqa/core/threaded: logSummary add skipped tests info
  oeqa/core/tests: Update test_loader threaded to cover main thread
usage
  oeqa/selftest/{case,context}: Add builddir by test class and context
  oeqa/selftest/case: Add wrappers to utils.commands modules
  oeqa/selftest/case: Creates meta-selftest layer per class
  oeqa/selftest/case: tearDown extra commands print what actually fails
  oeqa/selftest/case: Support bitbake memres mode in per build directory
  oeqa/selftest/cases: Use testlayer_path instead of call
get_test_layer()
  oeqa/selftest/cases: Use builddir from class instead of get from
environment
  oeqa/selftest/cases: Use wrapper methods from OESelfTestCase class
  oeqa/selftest/cases: imagefeatures enable threaded runs
  oeqa/selftest/cases: runqemu enable threaded runs
  oeqa/selftest/cases: runtime enable threaded runs
  oeqa/selftest/cases: eSDK enable threaded runs
  oeqa/selftest/cases: devtool enable threaded runs
  oeqa/selftest/cases: recipetool enable for threaded runs
  oeqa/selftest/cases: Move devtool deploy test case to own module
  selftest/cases/devtool{,end}: Move update/finish_modify tests to its
own module
  seltest/cases/devtool: Build dbus on test_devtool_add_git_local
  argparse_oe: Add int_positive type
  oeqa/selftest/context: Enable support for threaded runs
  oeqa/selftest/cases: systemd_boot enable threaded runs

 bitbake/lib/bb/tinfoil.py  |   23 +-
 .../lib/oeqa/selftest/cases/systemd_boot.py|   26 +-
 meta/lib/oe/copy_buildsystem.py|1 +
 meta/lib/oeqa/core/loader.py   |4 +-
 meta/lib/oeqa/core/tests/test_loader.py|   17 +-
 meta/lib/oeqa/core/threaded.py |  169 +++-
 meta/lib/oeqa/selftest/case.py |  251 -
 .../lib/oeqa/selftest/cases/_sstatetests_noauto.py |   23 +-
 meta/lib/oeqa/selftest/cases/archiver.py   |   21 +-
 meta/lib/oeqa/selftest/cases/bblayers.py   |   45 +-
 meta/lib/oeqa/selftest/cases/bbtests.py|  103 +-
 meta/lib/oeqa/selftest/cases/buildhistory.py   |9 +-
 meta/lib/oeqa/selftest/cases/buildoptions.py   |   51 +-
 meta/lib/oeqa/selftest/cases/containerimage.py |9 +-
 meta/lib/oeqa/selftest/cases/devtool.py| 1014 +---
 meta/lib/oeqa/selftest/cases/devtool_deploy.py |   93 ++
 meta/lib/oeqa/selftest/cases/devtool_end.py|  506 ++
 meta/lib/oeqa/selftest/cases/distrodata.py |7 +-
 meta/lib/oeqa/selftest/cases/eSDK.py   |   61 +-
 meta/lib/oeqa/selftest/cases/image_typedep.py  |8 +-
 meta/lib/oeqa/selftest/cases/imagefeatures.py  |   78 +-
 meta/lib/oeqa/selftest/cases/imagefeatures_boot.py |   63 ++
 meta/lib/oeqa/selftest/cases/layerappend.py|   22 +-
 meta/lib/oeqa/selftest/cases/liboe.py  |   13 +-
 meta/lib/oeqa/selftest/cases/lic_checksum.py   |8 +-
 meta/lib/oeqa/sel

[OE-core] [PATCHv2 02/29] oeqa/selftest/{context, case}: Handle KeyboardInterrupt/SIGINT and SIGTERM

2017-07-12 Thread Aníbal Limón
In order to avoid corrupt local.conf and bblayers.conf adds
signal handler for SIGTERM and use try/finally (KeyboardIntrrupt) block
to restore previously backuped configuration.

[YOCTO #11650]

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/case.py|  36 +++--
 meta/lib/oeqa/selftest/context.py | 107 +++---
 2 files changed, 97 insertions(+), 46 deletions(-)

diff --git a/meta/lib/oeqa/selftest/case.py b/meta/lib/oeqa/selftest/case.py
index 31a11fddda9..871009c568b 100644
--- a/meta/lib/oeqa/selftest/case.py
+++ b/meta/lib/oeqa/selftest/case.py
@@ -13,28 +13,34 @@ from oeqa.utils.commands import runCmd, bitbake, get_bb_var
 from oeqa.core.case import OETestCase
 
 class OESelftestTestCase(OETestCase):
-builddir = os.environ.get("BUILDDIR") or ""
-localconf_path = os.path.join(builddir, "conf/local.conf")
-localconf_backup = os.path.join(builddir, "conf/local.bk")
-testinc_path = os.path.join(builddir, "conf/selftest.inc")
-local_bblayers_path = os.path.join(builddir, "conf/bblayers.conf")
-local_bblayers_backup = os.path.join(builddir, "conf/bblayers.bk")
-testinc_bblayers_path = os.path.join(builddir, "conf/bblayers.inc")
-machineinc_path = os.path.join(builddir, "conf/machine.inc")
-
 def __init__(self, methodName="runTest"):
 self._extra_tear_down_commands = []
-self._track_for_cleanup = [
-self.testinc_path, self.testinc_bblayers_path,
-self.machineinc_path, self.localconf_backup,
-self.local_bblayers_backup]
-
 super(OESelftestTestCase, self).__init__(methodName)
 
 @classmethod
 def setUpClass(cls):
 super(OESelftestTestCase, cls).setUpClass()
-cls.testlayer_path = cls.tc.testlayer_path
+
+cls.testlayer_path = cls.tc.config_paths['testlayer_path']
+cls.builddir = cls.tc.config_paths['builddir']
+
+cls.localconf_path = cls.tc.config_paths['localconf']
+cls.localconf_backup = cls.tc.config_paths['localconf_class_backup']
+cls.local_bblayers_path = cls.tc.config_paths['bblayers']
+cls.local_bblayers_backup = 
cls.tc.config_paths['bblayers_class_backup']
+
+cls.testinc_path = os.path.join(cls.tc.config_paths['builddir'],
+"conf/selftest.inc")
+cls.testinc_bblayers_path = 
os.path.join(cls.tc.config_paths['builddir'],
+"conf/bblayers.inc")
+cls.machineinc_path = os.path.join(cls.tc.config_paths['builddir'],
+"conf/machine.inc")
+
+cls._track_for_cleanup = [
+cls.testinc_path, cls.testinc_bblayers_path,
+cls.machineinc_path, cls.localconf_backup,
+cls.local_bblayers_backup]
+
 cls.add_include()
 
 @classmethod
diff --git a/meta/lib/oeqa/selftest/context.py 
b/meta/lib/oeqa/selftest/context.py
index ca87398224c..4575a0537fb 100644
--- a/meta/lib/oeqa/selftest/context.py
+++ b/meta/lib/oeqa/selftest/context.py
@@ -6,6 +6,8 @@ import time
 import glob
 import sys
 import imp
+import signal
+from shutil import copyfile
 from random import choice
 
 import oeqa
@@ -16,13 +18,12 @@ from oeqa.core.exception import OEQAPreRun
 from oeqa.utils.commands import runCmd, get_bb_vars, get_test_layer
 
 class OESelftestTestContext(OETestContext):
-def __init__(self, td=None, logger=None, machines=None, 
testlayer_path=None):
+def __init__(self, td=None, logger=None, machines=None, config_paths=None):
 super(OESelftestTestContext, self).__init__(td, logger)
 
 self.machines = machines
 self.custommachine = None
-
-self.testlayer_path = testlayer_path
+self.config_paths = config_paths
 
 def runTests(self, machine=None):
 if machine:
@@ -108,7 +109,29 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
 
 self.tc_kwargs['init']['td'] = get_bb_vars()
 self.tc_kwargs['init']['machines'] = self._get_available_machines()
-self.tc_kwargs['init']['testlayer_path'] = get_test_layer()
+
+builddir = os.environ.get("BUILDDIR")
+self.tc_kwargs['init']['config_paths'] = {}
+self.tc_kwargs['init']['config_paths']['testlayer_path'] = \
+get_test_layer()
+self.tc_kwargs['init']['config_paths']['builddir'] = builddir
+self.tc_kwargs['init']['config_paths']['localconf'] = \
+os.path.join(builddir, "conf/local.conf")
+self.tc_kwargs['init']['config_paths']['localconf_backup'] = \
+os.path.join(builddir, "conf/local.conf.orig")
+self.tc_kwargs['init']['config_paths']['localconf_class_backup'] = \
+os.path.join(builddir, "conf/local.conf.bk")
+self.tc_kwargs['init']['config_paths']['bblayers'] = \
+os.path.join(builddir, "conf/bblayers.conf")
+self.tc_kwargs['init']['config_paths']['bblayers_backup'] = \
+os.path.join(builddir, "conf/bblayer

[OE-core] [PATCHv2 01/29] oeqa/core/loader: Switch method definition for _make_failed_test

2017-07-12 Thread Aníbal Limón
This was a mistake of me to define wrong what methods needs
to be defined by certain python version.

See rev d8380d098a290510b442a7abd2dd5a50cabf5844.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/core/loader.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/meta/lib/oeqa/core/loader.py b/meta/lib/oeqa/core/loader.py
index 80e3d2800cd..3306e85d219 100644
--- a/meta/lib/oeqa/core/loader.py
+++ b/meta/lib/oeqa/core/loader.py
@@ -13,7 +13,7 @@ from oeqa.core.decorator import decoratorClasses, 
OETestDecorator, \
 OETestFilter, OETestDiscover
 
 if sys.version_info >= (3,4,4):
-def _make_failed_test(classname, methodname, exception, suiteClass):
+def _make_failed_test(classname, exception, suiteClass):
 """
 When loading tests, the unittest framework stores any exceptions 
and
 displays them only when the 'run' method is called.
@@ -23,7 +23,7 @@ if sys.version_info >= (3,4,4):
 """
 raise exception
 else:
-def _make_failed_test(classname, exception, suiteClass):
+def _make_failed_test(classname, methodname, exception, suiteClass):
 raise exception
 unittest.loader._make_failed_test = _make_failed_test
 
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 07/29] oeqa/core/threaded: Add support to run into a thread at end of execution

2017-07-12 Thread Aníbal Limón
Some test cases aren't allowed to run into a multi-thread environment so
add the posibility to run those tests at end of execution.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/core/threaded.py | 102 +++--
 1 file changed, 78 insertions(+), 24 deletions(-)

diff --git a/meta/lib/oeqa/core/threaded.py b/meta/lib/oeqa/core/threaded.py
index 34217f1a8b8..a7dc0aed401 100644
--- a/meta/lib/oeqa/core/threaded.py
+++ b/meta/lib/oeqa/core/threaded.py
@@ -30,18 +30,35 @@ class OETestLoaderThreaded(OETestLoader):
 suites = {}
 suites['main'] = self.suiteClass()
 suites['pool'] = []
+suites['end'] = self.suiteClass()
 for _ in range(self.process_num - 1):
 suites['pool'].append(self.suiteClass())
 
+def _add_by_module_or_dep(suite, case, depends):
+"""
+A test case that needs to run into the same thread
+because is on the same module or for dependency
+reasons.
+"""
+
+for c in suite._tests:
+if case.__module__ == c.__module__:
+suite.addTest(case)
+return True
+
+if case.id() in depends:
+case_depends = depends[case.id()]
+for c in suite._tests:
+if c.id() in case_depends:
+suite.addTest(case)
+return True
+
+return False
+
 def _add_to_main_thread(main_suite, case, depends):
 """
 Some test cases needs to be run into the main
-thread for several resons.
-
-A test case that needs to run in the main thread
-can be for specific set via test class _main_thread
-attr or because is on the same module or for a dependency
-reason.
+thread by request.
 """
 
 if hasattr(case.__class__, '_main_thread') and \
@@ -50,19 +67,20 @@ class OETestLoaderThreaded(OETestLoader):
 main_suite.addTest(case)
 return True
 
-for c in main_suite._tests:
-if case.__module__ == c.__module__:
-main_suite.addTest(case)
-return True
+return _add_by_module_or_dep(main_suite, case, depends)
 
-if case.id() in depends:
-case_depends = depends[case.id()]
-for c in main_suite._tests:
-if c.id() in case_depends:
-main_suite.addTest(case)
-return True
+def _add_to_end_thread(end_suite, case, depends):
+"""
+Some test cases needs to be run into at end of
+execution into the main by request.
+"""
+if hasattr(case.__class__, '_end_thread') and \
+case.__class__._end_thread or \
+self.process_num == 1:
+end_suite.addTest(case)
+return True
 
-return False
+return _add_by_module_or_dep(end_suite, case, depends)
 
 def _search_for_module_idx(suites, case):
 """
@@ -112,6 +130,9 @@ class OETestLoaderThreaded(OETestLoader):
 if 'depends' in self.tc._registry:
 depends = self.tc._registry['depends']
 
+if _add_to_end_thread(suites['end'], case, depends):
+continue
+
 if _add_to_main_thread(suites['main'], case, depends):
 continue
 
@@ -135,7 +156,7 @@ class OETestLoaderThreaded(OETestLoader):
 
 # if the main suite doesn't have test cases
 # use the first element of the suites pool
-if not len(suites['main']._tests):
+if not len(suites['main']._tests) and len(suites['pool']):
 suites['main'] = suites['pool'].pop(0)
 
 return suites
@@ -268,6 +289,12 @@ class _ThreadedPool:
 self.tasks = queue.Queue(num_tasks)
 self.workers = []
 
+self.stream = stream
+self.result = result
+
+self.end_task = None
+self.end_worker = None
+
 for _ in range(num_workers):
 worker = _Worker(self.tasks, result, stream)
 self.workers.append(worker)
@@ -280,12 +307,25 @@ class _ThreadedPool:
 """Add a task to the queue"""
 self.tasks.put((func, args, kargs))
 
+def add_end_task(self, func, *args, **kwargs):
+"""Add a task to be executed at end"""
+
+self.end_task = queue.Queue(1)
+self.end_task.put((func, args, kwargs))
+self.end_worker = _Worker(self.end_task, self.result,
+self.stream)
+
 def wait_completion(self):
 """Wait for completion of all the tasks in the queue"""
 self.tasks.join()
 for worker in self.wo

[OE-core] [PATCHv2 05/29] oe/copy_buildsystem: check_sstate_task_list also pop BBPATH from env

2017-07-12 Thread Aníbal Limón
The BBPATH environment could be set and can make a failure when try
to build an extensible sdk because it will look the bitbake.lock
file in the original build folder.

Example:

$ export BBPATH=`pwd`
$ bitbake core-image-minimal -c populate_sdk_ext

ERROR: bitbake failed:
ERROR: Only one copy of bitbake should be run against a build directory
ERROR: core-image-minimal-1.0-r0 do_populate_sdk_ext: Function failed:
copy_buildsystem

Signed-off-by: Aníbal Limón 
---
 meta/lib/oe/copy_buildsystem.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/meta/lib/oe/copy_buildsystem.py b/meta/lib/oe/copy_buildsystem.py
index a3729041835..dd506a39e6c 100644
--- a/meta/lib/oe/copy_buildsystem.py
+++ b/meta/lib/oe/copy_buildsystem.py
@@ -239,6 +239,7 @@ def check_sstate_task_list(d, targets, filteroutfile, 
cmdprefix='', cwd=None, lo
 cmd = "%sBB_SETSCENE_ENFORCE=1 PSEUDO_DISABLED=1 oe-check-sstate %s -s -o 
%s %s" % (cmdprefix, targets, filteroutfile, logparam)
 env = dict(d.getVar('BB_ORIGENV', False))
 env.pop('BUILDDIR', '')
+env.pop('BBPATH', '')
 pathitems = env['PATH'].split(':')
 env['PATH'] = ':'.join([item for item in pathitems if not 
item.endswith('/bitbake/bin')])
 bb.process.run(cmd, stderr=subprocess.STDOUT, env=env, cwd=cwd, 
executable='/bin/bash')
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 06/29] oeqa/core/threaded: Enable support to use the main thread

2017-07-12 Thread Aníbal Limón
Some test cases needs to be executed by the main thread for
several resons, this implmentation enables usage of the main
thread to execute suites.

The rules are if some test case request by test class attr
_main_thread it will be executed, if no tests are scheduled
to be executed into the main thread the algorithm with take
the first suite in the pool, finallay this will avoid
thread usage if only one suite needs to be executed.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/core/threaded.py | 104 -
 1 file changed, 83 insertions(+), 21 deletions(-)

diff --git a/meta/lib/oeqa/core/threaded.py b/meta/lib/oeqa/core/threaded.py
index 2cafe03a212..34217f1a8b8 100644
--- a/meta/lib/oeqa/core/threaded.py
+++ b/meta/lib/oeqa/core/threaded.py
@@ -27,9 +27,42 @@ class OETestLoaderThreaded(OETestLoader):
 self.process_num = min(multiprocessing.cpu_count(),
 len(suite._tests))
 
-suites = []
-for _ in range(self.process_num):
-suites.append(self.suiteClass())
+suites = {}
+suites['main'] = self.suiteClass()
+suites['pool'] = []
+for _ in range(self.process_num - 1):
+suites['pool'].append(self.suiteClass())
+
+def _add_to_main_thread(main_suite, case, depends):
+"""
+Some test cases needs to be run into the main
+thread for several resons.
+
+A test case that needs to run in the main thread
+can be for specific set via test class _main_thread
+attr or because is on the same module or for a dependency
+reason.
+"""
+
+if hasattr(case.__class__, '_main_thread') and \
+case.__class__._main_thread or \
+self.process_num == 1:
+main_suite.addTest(case)
+return True
+
+for c in main_suite._tests:
+if case.__module__ == c.__module__:
+main_suite.addTest(case)
+return True
+
+if case.id() in depends:
+case_depends = depends[case.id()]
+for c in main_suite._tests:
+if c.id() in case_depends:
+main_suite.addTest(case)
+return True
+
+return False
 
 def _search_for_module_idx(suites, case):
 """
@@ -37,8 +70,7 @@ class OETestLoaderThreaded(OETestLoader):
 in the same thread because PyUnit keeps track
 of setUp{Module, Class,} and tearDown{Module, Class,}.
 """
-
-for idx in range(self.process_num):
+for idx in range(self.process_num - 1):
 suite = suites[idx]
 for c in suite._tests:
 if case.__module__ == c.__module__:
@@ -53,7 +85,7 @@ class OETestLoaderThreaded(OETestLoader):
 of dependant test to figure out if skip or not.
 """
 
-for idx in range(self.process_num):
+for idx in range(self.process_num - 1):
 suite = suites[idx]
 
 for case in suite._tests:
@@ -62,6 +94,11 @@ class OETestLoaderThreaded(OETestLoader):
 return -1
 
 def _get_best_idx(suites):
+"""
+The best index is selected to the suite that has
+minor test cases to run.
+"""
+
 sizes = [len(suite._tests) for suite in suites]
 return sizes.index(min(sizes))
 
@@ -71,27 +108,35 @@ class OETestLoaderThreaded(OETestLoader):
 if isinstance(case, TestSuite):
 _fill_suites(case)
 else:
-idx = _search_for_module_idx(suites, case)
-
 depends = {}
 if 'depends' in self.tc._registry:
 depends = self.tc._registry['depends']
 
+if _add_to_main_thread(suites['main'], case, depends):
+continue
+
+# Get the best index in the suite pool to add the case
+idx = _search_for_module_idx(suites['pool'], case)
 if idx == -1 and case.id() in depends:
 case_depends = depends[case.id()] 
-idx = _search_for_depend_idx(suites, case_depends)
-
+idx = _search_for_depend_idx(suites['pool'], 
case_depends)
 if idx == -1:
-idx = _get_best_idx(suites)
+idx = _get_best_idx(suites['pool'])
+suites['pool'][idx].addTest(case)
 
-suites[idx].addTest(case)
 _fill_suites(suite)
 
-suites_tmp = suites
-suites = []
+# clean suites in pool without test cases
+suites_tmp = suites['pool']
+ 

[OE-core] [PATCHv2 03/29] selftest/cases/package: Call parent setUpClass method

2017-07-12 Thread Aníbal Limón
Since config paths are now passed in Test context the setUpClass
method is expected to be call.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/cases/package.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meta/lib/oeqa/selftest/cases/package.py 
b/meta/lib/oeqa/selftest/cases/package.py
index 5b9a6d15851..169698f780d 100644
--- a/meta/lib/oeqa/selftest/cases/package.py
+++ b/meta/lib/oeqa/selftest/cases/package.py
@@ -17,6 +17,8 @@ class VersionOrdering(OESelftestTestCase):
 
 @classmethod
 def setUpClass(cls):
+super().setUpClass()
+
 # Build the tools we need and populate a sysroot
 bitbake("dpkg-native opkg-native rpm-native python3-native")
 bitbake("build-sysroots -c build_native_sysroot")
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 11/29] oeqa/selftest/case: Add wrappers to utils.commands modules

2017-07-12 Thread Aníbal Limón
This wrappers are for be able to use a custom build directory
per Test class, there is a function to modify the environment
setting BUILDDIR, BBPATH and CWD.

The oeqa.utils.commands module could be removed when other selftests
(refkit, etc) are adapted to use this wrappers methods (get_bb_var{,s},
bitbake, runCmd).

The remaining command (oeqa.utils) to provide a wrapper is runqemu, this
has other issue because bitbake/tinfoil are expected to run into the
main thread (signal handling, etc).

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/case.py | 96 +-
 1 file changed, 94 insertions(+), 2 deletions(-)

diff --git a/meta/lib/oeqa/selftest/case.py b/meta/lib/oeqa/selftest/case.py
index dd24e366abd..3998aeac5c4 100644
--- a/meta/lib/oeqa/selftest/case.py
+++ b/meta/lib/oeqa/selftest/case.py
@@ -6,10 +6,11 @@ import os
 import shutil
 import glob
 import errno
+import re
 from unittest.util import safe_repr
 
 import oeqa.utils.ftools as ftools
-from oeqa.utils.commands import runCmd, bitbake, get_bb_var
+from oeqa.utils.commands import runCmd, bitbake, get_bb_env, get_bb_var, 
get_bb_vars
 from oeqa.core.case import OETestCase
 
 class OESelftestTestCase(OETestCase):
@@ -197,7 +198,7 @@ to ensure accurate results.")
 if self._extra_tear_down_commands:
 failed_extra_commands = []
 for command in self._extra_tear_down_commands:
-result = runCmd(command, ignore_status=True)
+result = self.runCmd(command, ignore_status=True)
 if not result.status ==  0:
 failed_extra_commands.append(command)
 if failed_extra_commands:
@@ -313,3 +314,94 @@ to ensure accurate results.")
 msg = self._formatMessage(msg, "%s exists when it should not" % 
safe_repr(expr))
 
 raise self.failureException(msg)
+
+# utils commands to run on it's on builddir
+@classmethod 
+def _env_own_builddir(cls, **kwargs):
+env = None
+
+if 'env' in kwargs:
+env = kwargs['env']
+
+if not 'BUILDDIR' in env:
+env['BUILDDIR'] = cls.builddir
+if not 'BBPATH' in env:
+env['BBPATH'] = cls.builddir
+
+else:
+env = os.environ.copy()
+env['BUILDDIR'] = cls.builddir
+env['BBPATH'] = cls.builddir
+
+kwargs['env'] = env
+
+# XXX: tinfoil doesn't honor BBPATH bblayers and tinfoil test
+# modules uses it
+if not 'cwd' in kwargs:
+kwargs['cwd'] = cls.builddir
+
+# XXX: uncomment for debugging purposes
+#kwargs['output_log'] = cls.logger
+
+return kwargs
+
+@classmethod
+def runCmd(cls, *args, **kwargs):
+kwargs = cls._env_own_builddir(**kwargs)
+return runCmd(*args, **kwargs)
+
+@classmethod
+def bitbake(cls, *args, **kwargs):
+kwargs = cls._env_own_builddir(**kwargs)
+return bitbake(*args, **kwargs)
+
+@classmethod
+def get_bb_env(cls, target=None, postconfig=None):
+if target:
+return cls.bitbake("-e %s" % target, postconfig=postconfig).output
+else:
+return cls.bitbake("-e", postconfig=postconfig).output
+
+@classmethod
+def get_bb_vars(cls, variables=None, target=None, postconfig=None):
+"""Get values of multiple bitbake variables"""
+bbenv = cls.get_bb_env(target, postconfig=postconfig)
+
+if variables is not None:
+variables = variables.copy()
+var_re = re.compile(r'^(export )?(?P\w+(_.*)?)="(?P.*)"$')
+unset_re = re.compile(r'^unset (?P\w+)$')
+lastline = None
+values = {}
+for line in bbenv.splitlines():
+match = var_re.match(line)
+val = None
+if match:
+val = match.group('value')
+else:
+match = unset_re.match(line)
+if match:
+# Handle [unexport] variables
+if lastline.startswith('#   "'):
+val = lastline.split('"')[1]
+if val:
+var = match.group('var')
+if variables is None:
+values[var] = val
+else:
+if var in variables:
+values[var] = val
+variables.remove(var)
+# Stop after all required variables have been found
+if not variables:
+break
+lastline = line
+if variables:
+# Fill in missing values
+for var in variables:
+values[var] = None
+return values
+
+@classmethod 
+def get_bb_var(cls, var, target=None, postconfig=None):
+return cls.get_bb_vars([var], target, postconfig)[var]
-- 
2.11.0

-- 
__

[OE-core] [PATCHv2 09/29] oeqa/core/tests: Update test_loader threaded to cover main thread usage

2017-07-12 Thread Aníbal Limón
Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/core/tests/test_loader.py | 17 ++---
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/meta/lib/oeqa/core/tests/test_loader.py 
b/meta/lib/oeqa/core/tests/test_loader.py
index e0d917d317d..c4d5eeb462b 100755
--- a/meta/lib/oeqa/core/tests/test_loader.py
+++ b/meta/lib/oeqa/core/tests/test_loader.py
@@ -88,25 +88,28 @@ class TestLoader(TestBase):
 self.cases_path = [os.path.join(self.cases_path, 'loader', 'threaded')]
 
 tc = self._testLoaderThreaded()
-self.assertEqual(len(tc.suites), 3, "Expected to be 3 suites")
+self.assertTrue(len(tc.suites['main']._tests),
+"Expected to have tests in main suite")
+self.assertEqual(len(tc.suites['pool']), 2,
+"Expected to be 2 suites in pool")
 
 case_ids = ['threaded.ThreadedTest.test_threaded_no_depends',
 'threaded.ThreadedTest2.test_threaded_same_module',
 'threaded_depends.ThreadedTest3.test_threaded_depends']
-for case in tc.suites[0]._tests:
+for case in tc.suites['main']._tests:
 self.assertEqual(case.id(),
-case_ids[tc.suites[0]._tests.index(case)])
+case_ids[tc.suites['main']._tests.index(case)])
 
 case_ids = ['threaded_alone.ThreadedTestAlone.test_threaded_alone']
-for case in tc.suites[1]._tests:
+for case in tc.suites['pool'][0]._tests:
 self.assertEqual(case.id(),
-case_ids[tc.suites[1]._tests.index(case)])
+case_ids[tc.suites['pool'][0]._tests.index(case)])
 
 case_ids = ['threaded_module.ThreadedTestModule.test_threaded_module',
 'threaded_module.ThreadedTestModule2.test_threaded_module2']
-for case in tc.suites[2]._tests:
+for case in tc.suites['pool'][1]._tests:
 self.assertEqual(case.id(),
-case_ids[tc.suites[2]._tests.index(case)])
+case_ids[tc.suites['pool'][1]._tests.index(case)])
 
 self.cases_path = cases_path
 
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 08/29] oeqa/core/threaded: logSummary add skipped tests info

2017-07-12 Thread Aníbal Limón
Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/core/threaded.py | 11 +++
 1 file changed, 11 insertions(+)

diff --git a/meta/lib/oeqa/core/threaded.py b/meta/lib/oeqa/core/threaded.py
index a7dc0aed401..022c9ac59a2 100644
--- a/meta/lib/oeqa/core/threaded.py
+++ b/meta/lib/oeqa/core/threaded.py
@@ -234,6 +234,14 @@ class OETestResultThreaded(object):
 self._results[tid]['result'].wasSuccessful()
 return wasSuccessful
 
+def getSkippedTests(self):
+skipped = 0
+
+for tid in self._results.keys():
+skipped = skipped + len(self.tc._results[tid]['skipped'])
+
+return skipped
+
 def stop(self):
 for tid in self._results.keys():
 self._results[tid]['result'].stop()
@@ -248,6 +256,9 @@ class OETestResultThreaded(object):
 msg = "%s - OK - All required tests passed" % component
 else:
 msg = "%s - FAIL - Required tests failed" % component
+skipped = self.getSkippedTests()
+if skipped:
+msg += " (skipped=%d)" % skipped
 self.tc.logger.info(msg)
 
 def logDetails(self):
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 10/29] oeqa/selftest/{case, context}: Add builddir by test class and context

2017-07-12 Thread Aníbal Limón
The build directory by Test class will enable to use several instances
of bitbake in parallel to enable oe-selftest threaded runs.

[YOCTO #11429]

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/case.py| 97 ---
 meta/lib/oeqa/selftest/context.py |  4 ++
 2 files changed, 74 insertions(+), 27 deletions(-)

diff --git a/meta/lib/oeqa/selftest/case.py b/meta/lib/oeqa/selftest/case.py
index 871009c568b..dd24e366abd 100644
--- a/meta/lib/oeqa/selftest/case.py
+++ b/meta/lib/oeqa/selftest/case.py
@@ -13,28 +13,73 @@ from oeqa.utils.commands import runCmd, bitbake, get_bb_var
 from oeqa.core.case import OETestCase
 
 class OESelftestTestCase(OETestCase):
+_use_own_builddir = False
+_main_thread = True
+_end_thread = False
+
 def __init__(self, methodName="runTest"):
 self._extra_tear_down_commands = []
 super(OESelftestTestCase, self).__init__(methodName)
 
 @classmethod
+def _setUpBuildDir(cls):
+if cls._use_own_builddir:
+cls.builddir = os.path.join(cls.tc.config_paths['base_builddir'],
+cls.__module__, cls.__name__)
+
+cls.localconf_path = os.path.join(cls.builddir, "conf/local.conf")
+cls.localconf_backup = os.path.join(cls.builddir,
+"conf/local.conf.bk")
+cls.local_bblayers_path = os.path.join(cls.builddir,
+"conf/bblayers.conf")
+cls.local_bblayers_backup = os.path.join(cls.builddir,
+"conf/bblayers.conf.bk")
+else:
+cls.builddir = cls.tc.config_paths['builddir']
+cls.localconf_path = cls.tc.config_paths['localconf']
+cls.localconf_backup = 
cls.tc.config_paths['localconf_class_backup']
+cls.local_bblayers_path = cls.tc.config_paths['bblayers']
+cls.local_bblayers_backup = \
+cls.tc.config_paths['bblayers_class_backup']
+
+cls.testinc_path = os.path.join(cls.builddir, "conf/selftest.inc")
+cls.testinc_bblayers_path = os.path.join(cls.builddir,
+"conf/bblayers.inc")
+cls.machineinc_path = os.path.join(cls.builddir, "conf/machine.inc")
+
+# creates a custom build directory for every test class
+if not os.path.exists(cls.builddir):
+os.makedirs(cls.builddir)
+
+builddir_conf = os.path.join(cls.builddir, 'conf')
+origdir_conf = os.path.join(cls.tc.config_paths['builddir'], 
'conf')
+shutil.copytree(origdir_conf, builddir_conf)
+
+ftools.append_file(cls.localconf_path, "# added by oe-selftest 
base class")
+
+# shares original sstate_dir across build directories to speed up
+sstate_line = "SSTATE_DIR=\"%s\"" % cls.td['SSTATE_DIR']
+ftools.append_file(cls.localconf_path, sstate_line)
+
+# shares original dl_dir across build directories to avoid 
additional
+# network usage
+dldir_line = "DL_DIR=\"%s\"" % cls.td['DL_DIR']
+ftools.append_file(cls.localconf_path, dldir_line)
+
+# use the same value of threads for BB_NUMBER_THREADS/PARALLEL_MAKE
+# to avoid ran out resources (cpu/memory)
+if hasattr(cls.tc.loader, 'process_num'):
+ftools.append_file(cls.localconf_path, 
"BB_NUMBER_THREADS?=\"%d\"" %
+cls.tc.loader.process_num)
+ftools.append_file(cls.localconf_path, "PARALLEL_MAKE?=\"-j 
%d\"" %
+cls.tc.loader.process_num)
+
+@classmethod
 def setUpClass(cls):
 super(OESelftestTestCase, cls).setUpClass()
 
 cls.testlayer_path = cls.tc.config_paths['testlayer_path']
-cls.builddir = cls.tc.config_paths['builddir']
-
-cls.localconf_path = cls.tc.config_paths['localconf']
-cls.localconf_backup = cls.tc.config_paths['localconf_class_backup']
-cls.local_bblayers_path = cls.tc.config_paths['bblayers']
-cls.local_bblayers_backup = 
cls.tc.config_paths['bblayers_class_backup']
-
-cls.testinc_path = os.path.join(cls.tc.config_paths['builddir'],
-"conf/selftest.inc")
-cls.testinc_bblayers_path = 
os.path.join(cls.tc.config_paths['builddir'],
-"conf/bblayers.inc")
-cls.machineinc_path = os.path.join(cls.tc.config_paths['builddir'],
-"conf/machine.inc")
+cls._setUpBuildDir()
 
 cls._track_for_cleanup = [
 cls.testinc_path, cls.testinc_bblayers_path,
@@ -52,35 +97,31 @@ class OESelftestTestCase(OETestCase):
 @classmethod
 def add_include(cls):
 if "#include added by oe-selftest" \
-not in ftools.read_file(os.path.join(cls.builddir, 
"conf/local.conf")):
-cls.logger.info("Adding: \"include selftest.inc\" in %s" % 
os.path.join(cls.builddir, "conf/local.conf"))
-ftools.append_file(o

[OE-core] [PATCHv2 13/29] oeqa/selftest/case: tearDown extra commands print what actually fails

2017-07-12 Thread Aníbal Limón
Its better to have the output to see what actually fails in a
command that is aim to execute at end of a test case.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/case.py | 13 +
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/meta/lib/oeqa/selftest/case.py b/meta/lib/oeqa/selftest/case.py
index bbdce4cf9e8..c6f2d184ea3 100644
--- a/meta/lib/oeqa/selftest/case.py
+++ b/meta/lib/oeqa/selftest/case.py
@@ -224,13 +224,18 @@ to ensure accurate results.")
 
 def tearDown(self):
 if self._extra_tear_down_commands:
-failed_extra_commands = []
+failed_extra_commands = {}
 for command in self._extra_tear_down_commands:
 result = self.runCmd(command, ignore_status=True)
-if not result.status ==  0:
-failed_extra_commands.append(command)
+if not result.status == 0:
+failed_extra_commands[command] = result
 if failed_extra_commands:
-self.logger.warning("tearDown commands have failed: %s" % ', 
'.join(map(str, failed_extra_commands)))
+self.logger.warning("%s: tearDown commands have failed" % \
+self.id())
+for cmd in failed_extra_commands:
+result = failed_extra_commands[cmd]
+self.logger.warning("%s: %s\n%s" % (self.id(), cmd,
+result.output))
 self.logger.debug("Trying to move on.")
 self._extra_tear_down_commands = []
 
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 12/29] oeqa/selftest/case: Creates meta-selftest layer per class

2017-07-12 Thread Aníbal Limón
The meta-selftest layer is used by test cases to modify
meta data but in a threaded environment two test cases can
modify the meta data causing errors because the signatures
will change.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/case.py | 34 +++---
 1 file changed, 31 insertions(+), 3 deletions(-)

diff --git a/meta/lib/oeqa/selftest/case.py b/meta/lib/oeqa/selftest/case.py
index 3998aeac5c4..bbdce4cf9e8 100644
--- a/meta/lib/oeqa/selftest/case.py
+++ b/meta/lib/oeqa/selftest/case.py
@@ -7,6 +7,7 @@ import shutil
 import glob
 import errno
 import re
+import subprocess
 from unittest.util import safe_repr
 
 import oeqa.utils.ftools as ftools
@@ -24,6 +25,8 @@ class OESelftestTestCase(OETestCase):
 
 @classmethod
 def _setUpBuildDir(cls):
+cls.orig_testlayer_path = cls.tc.config_paths['testlayer_path']
+
 if cls._use_own_builddir:
 cls.builddir = os.path.join(cls.tc.config_paths['base_builddir'],
 cls.__module__, cls.__name__)
@@ -35,14 +38,23 @@ class OESelftestTestCase(OETestCase):
 "conf/bblayers.conf")
 cls.local_bblayers_backup = os.path.join(cls.builddir,
 "conf/bblayers.conf.bk")
+
+cls.base_testlayer_path = os.path.join(cls.builddir,
+'layers')
+cls.testlayer_path = os.path.join(cls.base_testlayer_path,
+os.path.basename(cls.orig_testlayer_path))
 else:
 cls.builddir = cls.tc.config_paths['builddir']
+
 cls.localconf_path = cls.tc.config_paths['localconf']
 cls.localconf_backup = 
cls.tc.config_paths['localconf_class_backup']
 cls.local_bblayers_path = cls.tc.config_paths['bblayers']
 cls.local_bblayers_backup = \
 cls.tc.config_paths['bblayers_class_backup']
 
+cls.base_testlayer_path = os.path.dirname(cls.orig_testlayer_path)
+cls.testlayer_path = cls.orig_testlayer_path
+
 cls.testinc_path = os.path.join(cls.builddir, "conf/selftest.inc")
 cls.testinc_bblayers_path = os.path.join(cls.builddir,
 "conf/bblayers.inc")
@@ -53,8 +65,11 @@ class OESelftestTestCase(OETestCase):
 os.makedirs(cls.builddir)
 
 builddir_conf = os.path.join(cls.builddir, 'conf')
-origdir_conf = os.path.join(cls.tc.config_paths['builddir'], 
'conf')
-shutil.copytree(origdir_conf, builddir_conf)
+os.makedirs(builddir_conf)
+shutil.copyfile(cls.tc.config_paths['localconf_backup'],
+os.path.join(builddir_conf, 'local.conf'))
+shutil.copyfile(cls.tc.config_paths['bblayers_backup'],
+os.path.join(builddir_conf, 'bblayers.conf'))
 
 ftools.append_file(cls.localconf_path, "# added by oe-selftest 
base class")
 
@@ -75,11 +90,24 @@ class OESelftestTestCase(OETestCase):
 ftools.append_file(cls.localconf_path, "PARALLEL_MAKE?=\"-j 
%d\"" %
 cls.tc.loader.process_num)
 
+# copy meta-selftest per class to avoid races when changing 
meta-data
+# and init git repository because some tests review the repo status
+os.makedirs(cls.base_testlayer_path)
+shutil.copytree(cls.orig_testlayer_path, cls.testlayer_path)
+cls.runCmd("git init; git add *; git commit -a -m 'initial'",
+cwd=cls.testlayer_path)
+
+# XXX: sometimes meta-selftest isn't on bblayers at first backup
+try:
+cls.runCmd("bitbake-layers remove-layer %s" % 
cls.orig_testlayer_path)
+except:
+pass
+cls.runCmd("bitbake-layers add-layer %s" % cls.testlayer_path)
+
 @classmethod
 def setUpClass(cls):
 super(OESelftestTestCase, cls).setUpClass()
 
-cls.testlayer_path = cls.tc.config_paths['testlayer_path']
 cls._setUpBuildDir()
 
 cls._track_for_cleanup = [
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 21/29] oeqa/selftest/cases: eSDK enable threaded runs

2017-07-12 Thread Aníbal Limón
- Change some staticmethods to classmethods to be able access
wrappers from OESelfTestCase.
- Remove unused method update_configuration.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/cases/eSDK.py | 61 +++-
 1 file changed, 19 insertions(+), 42 deletions(-)

diff --git a/meta/lib/oeqa/selftest/cases/eSDK.py 
b/meta/lib/oeqa/selftest/cases/eSDK.py
index 60f4e239ab0..618f93c53c1 100644
--- a/meta/lib/oeqa/selftest/cases/eSDK.py
+++ b/meta/lib/oeqa/selftest/cases/eSDK.py
@@ -4,7 +4,6 @@ import os
 import glob
 from oeqa.core.decorator.oeid import OETestID
 from oeqa.selftest.case import OESelftestTestCase
-from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
 
 class oeSDKExtSelfTest(OESelftestTestCase):
 """
@@ -12,16 +11,15 @@ class oeSDKExtSelfTest(OESelftestTestCase):
 # This code is planned to be part of the automation for eSDK containig
 # Install libraries and headers, image generation binary feeds, sdk-update.
 """
-
-@staticmethod
-def get_esdk_environment(env_eSDK, tmpdir_eSDKQA):
+@classmethod
+def get_esdk_environment(cls, env_eSDK, tmpdir_eSDKQA):
 # XXX: at this time use the first env need to investigate
 # what environment load oe-selftest, i586, x86_64
 pattern = os.path.join(tmpdir_eSDKQA, 'environment-setup-*')
 return glob.glob(pattern)[0]
 
-@staticmethod
-def run_esdk_cmd(env_eSDK, tmpdir_eSDKQA, cmd, postconfig=None, **options):
+@classmethod
+def run_esdk_cmd(cls, env_eSDK, tmpdir_eSDKQA, cmd, postconfig=None, 
**options):
 if postconfig:
 esdk_conf_file = os.path.join(tmpdir_eSDKQA, 'conf', 'local.conf')
 with open(esdk_conf_file, 'a+') as f:
@@ -31,57 +29,37 @@ class oeSDKExtSelfTest(OESelftestTestCase):
 if not 'shell' in options:
 options['shell'] = True
 
-runCmd("cd %s; . %s; %s" % (tmpdir_eSDKQA, env_eSDK, cmd), **options)
+cls.runCmd("cd %s; . %s; %s" % (tmpdir_eSDKQA, env_eSDK, cmd), 
**options)
 
-@staticmethod
-def generate_eSDK(image):
+@classmethod
+def generate_eSDK(cls, image):
 pn_task = '%s -c populate_sdk_ext' % image
-bitbake(pn_task)
+cls.bitbake(pn_task)
 
-@staticmethod
-def get_eSDK_toolchain(image):
+@classmethod
+def get_eSDK_toolchain(cls, image):
 pn_task = '%s -c populate_sdk_ext' % image
 
-bb_vars = get_bb_vars(['SDK_DEPLOY', 'TOOLCHAINEXT_OUTPUTNAME'], 
pn_task)
+bb_vars = cls.get_bb_vars(['SDK_DEPLOY', 'TOOLCHAINEXT_OUTPUTNAME'], 
pn_task)
 sdk_deploy = bb_vars['SDK_DEPLOY']
 toolchain_name = bb_vars['TOOLCHAINEXT_OUTPUTNAME']
 return os.path.join(sdk_deploy, toolchain_name + '.sh')
 
-@staticmethod
-def update_configuration(cls, image, tmpdir_eSDKQA, env_eSDK, 
ext_sdk_path):
-sstate_dir = os.path.join(cls.builddir, 'sstate-cache')
-
-oeSDKExtSelfTest.generate_eSDK(cls.image)
-
-cls.ext_sdk_path = oeSDKExtSelfTest.get_eSDK_toolchain(cls.image)
-runCmd("%s -y -d \"%s\"" % (cls.ext_sdk_path, cls.tmpdir_eSDKQA))
-
-cls.env_eSDK = oeSDKExtSelfTest.get_esdk_environment('', 
cls.tmpdir_eSDKQA)
-
-sstate_config="""
-SDK_LOCAL_CONF_WHITELIST = "SSTATE_MIRRORS"
-SSTATE_MIRRORS =  "file://.* file://%s/PATH"
-CORE_IMAGE_EXTRA_INSTALL = "perl"
-""" % sstate_dir
-
-with open(os.path.join(cls.tmpdir_eSDKQA, 'conf', 'local.conf'), 'a+') 
as f:
-f.write(sstate_config)
-
 @classmethod
 def setUpClass(cls):
 super(oeSDKExtSelfTest, cls).setUpClass()
 cls.tmpdir_eSDKQA = tempfile.mkdtemp(prefix='eSDKQA')
 
-sstate_dir = get_bb_var('SSTATE_DIR')
+sstate_dir = cls.get_bb_var('SSTATE_DIR')
 
 cls.image = 'core-image-minimal'
-oeSDKExtSelfTest.generate_eSDK(cls.image)
+cls.generate_eSDK(cls.image)
 
 # Install eSDK
-cls.ext_sdk_path = oeSDKExtSelfTest.get_eSDK_toolchain(cls.image)
-runCmd("%s -y -d \"%s\"" % (cls.ext_sdk_path, cls.tmpdir_eSDKQA))
+cls.ext_sdk_path = cls.get_eSDK_toolchain(cls.image)
+cls.runCmd("%s -y -d \"%s\"" % (cls.ext_sdk_path, cls.tmpdir_eSDKQA))
 
-cls.env_eSDK = oeSDKExtSelfTest.get_esdk_environment('', 
cls.tmpdir_eSDKQA)
+cls.env_eSDK = cls.get_esdk_environment('', cls.tmpdir_eSDKQA)
 
 # Configure eSDK to use sstate mirror from poky
 sstate_config="""
@@ -99,13 +77,12 @@ SSTATE_MIRRORS =  "file://.* file://%s/PATH"
 @OETestID(1602)
 def test_install_libraries_headers(self):
 pn_sstate = 'bc'
-bitbake(pn_sstate)
+self.bitbake(pn_sstate)
 cmd = "devtool sdk-install %s " % pn_sstate
-oeSDKExtSelfTest.run_esdk_cmd(self.env_eSDK, self.tmpdir_eSDKQA, cmd)
+self.run_esdk_cmd(self.env_eSDK, self.tmpdir_eSDKQA, cmd)
 
 @OETestID(1603)
 def test_image_generation_binary_f

[OE-core] [PATCHv2 16/29] oeqa/selftest/cases: Use builddir from class instead of get from environment

2017-07-12 Thread Aníbal Limón
Now the build directory is setup by Test class, so the builddir attr
points to the actual BUILDDIR instead of get from environment.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py | 7 +++
 meta/lib/oeqa/selftest/cases/bbtests.py | 4 ++--
 meta/lib/oeqa/selftest/cases/eSDK.py| 2 +-
 meta/lib/oeqa/selftest/cases/signing.py | 2 +-
 4 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py 
b/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py
index b42aa3638d5..98b8b60f51a 100644
--- a/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py
+++ b/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py
@@ -11,7 +11,6 @@ class RebuildFromSState(SStateBase):
 @classmethod
 def setUpClass(self):
 super(RebuildFromSState, self).setUpClass()
-self.builddir = os.path.join(os.environ.get('BUILDDIR'))
 
 def get_dep_targets(self, primary_targets):
 found_targets = []
@@ -24,16 +23,16 @@ class RebuildFromSState(SStateBase):
 os.mkdir(builddir)
 self.track_for_cleanup(builddir)
 os.mkdir(os.path.join(builddir, 'conf'))
-shutil.copyfile(os.path.join(os.environ.get('BUILDDIR'), 
'conf/local.conf'), os.path.join(builddir, 'conf/local.conf'))
+shutil.copyfile(self.localconf_path, os.path.join(builddir, 
'conf/local.conf'))
 config = {}
 config['default_sstate_dir'] = "SSTATE_DIR ?= 
\"${TOPDIR}/sstate-cache\""
 config['null_sstate_mirrors'] = "SSTATE_MIRRORS = \"\""
 config['default_tmp_dir'] = "TMPDIR = \"${TOPDIR}/tmp\""
 for key in config:
 ftools.append_file(os.path.join(builddir, 'conf/selftest.inc'), 
config[key])
-shutil.copyfile(os.path.join(os.environ.get('BUILDDIR'), 
'conf/bblayers.conf'), os.path.join(builddir, 'conf/bblayers.conf'))
+shutil.copyfile(self.local_bblayers_path, os.path.join(builddir, 
'conf/bblayers.conf'))
 try:
-shutil.copyfile(os.path.join(os.environ.get('BUILDDIR'), 
'conf/auto.conf'), os.path.join(builddir, 'conf/auto.conf'))
+shutil.copyfile(self.autoconf_path, os.path.join(builddir, 
'conf/auto.conf'))
 except:
 pass
 
diff --git a/meta/lib/oeqa/selftest/cases/bbtests.py 
b/meta/lib/oeqa/selftest/cases/bbtests.py
index 4c82049032b..df11a6bc6d0 100644
--- a/meta/lib/oeqa/selftest/cases/bbtests.py
+++ b/meta/lib/oeqa/selftest/cases/bbtests.py
@@ -22,8 +22,8 @@ class BitbakeTests(OESelftestTestCase):
 @OETestID(790)
 def test_run_bitbake_from_dir_2(self):
 my_env = os.environ.copy()
-my_env['BBPATH'] = my_env['BUILDDIR']
-os.chdir(os.path.dirname(os.environ['BUILDDIR']))
+my_env['BBPATH'] = self.builddir
+os.chdir(os.path.dirname(self.builddir))
 self.assertEqual(bitbake('-e', env=my_env).status, 0, msg = "bitbake 
couldn't run from builddir")
 
 @OETestID(806)
diff --git a/meta/lib/oeqa/selftest/cases/eSDK.py 
b/meta/lib/oeqa/selftest/cases/eSDK.py
index f36c3ccd3b4..60f4e239ab0 100644
--- a/meta/lib/oeqa/selftest/cases/eSDK.py
+++ b/meta/lib/oeqa/selftest/cases/eSDK.py
@@ -49,7 +49,7 @@ class oeSDKExtSelfTest(OESelftestTestCase):
 
 @staticmethod
 def update_configuration(cls, image, tmpdir_eSDKQA, env_eSDK, 
ext_sdk_path):
-sstate_dir = os.path.join(os.environ['BUILDDIR'], 'sstate-cache')
+sstate_dir = os.path.join(cls.builddir, 'sstate-cache')
 
 oeSDKExtSelfTest.generate_eSDK(cls.image)
 
diff --git a/meta/lib/oeqa/selftest/cases/signing.py 
b/meta/lib/oeqa/selftest/cases/signing.py
index edb5f653f20..6ef8d8eb5d0 100644
--- a/meta/lib/oeqa/selftest/cases/signing.py
+++ b/meta/lib/oeqa/selftest/cases/signing.py
@@ -105,7 +105,7 @@ class Signing(OESelftestTestCase):
 
 test_recipe = 'ed'
 
-builddir = os.environ.get('BUILDDIR')
+builddir = self.builddir
 sstatedir = os.path.join(builddir, 'test-sstate')
 
 self.add_command_to_tearDown('bitbake -c clean %s' % test_recipe)
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 20/29] oeqa/selftest/cases: runtime enable threaded runs

2017-07-12 Thread Aníbal Limón
- Use wrappers from OESelfTestCase for runCmd, bitbake, etc.
- Split into tree modules because runtime_test_export and
runtime_test_postinsts uses runqemu/tinfoil and needs to be
executed into the main thread.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/cases/runtime_test.py   | 225 +
 .../lib/oeqa/selftest/cases/runtime_test_export.py | 104 ++
 .../oeqa/selftest/cases/runtime_test_postinsts.py  | 114 +++
 3 files changed, 226 insertions(+), 217 deletions(-)
 create mode 100644 meta/lib/oeqa/selftest/cases/runtime_test_export.py
 create mode 100644 meta/lib/oeqa/selftest/cases/runtime_test_postinsts.py

diff --git a/meta/lib/oeqa/selftest/cases/runtime_test.py 
b/meta/lib/oeqa/selftest/cases/runtime_test.py
index 2a70ae15b81..e45410e0e56 100644
--- a/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -1,110 +1,9 @@
 from oeqa.selftest.case import OESelftestTestCase
-from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, 
runqemu
 from oeqa.core.decorator.oeid import OETestID
-import os
-import re
-
-class TestExport(OESelftestTestCase):
-
-@classmethod
-def tearDownClass(cls):
-runCmd("rm -rf /tmp/sdk")
-super(TestExport, cls).tearDownClass()
-
-@OETestID(1499)
-def test_testexport_basic(self):
-"""
-Summary: Check basic testexport functionality with only ping test 
enabled.
-Expected: 1. testexport directory must be created.
-  2. runexported.py must run without any error/exception.
-  3. ping test must succeed.
-Product: oe-core
-Author: Mariano Lopez 
-"""
-
-features = 'INHERIT += "testexport"\n'
-# These aren't the actual IP addresses but testexport class needs 
something defined
-features += 'TEST_SERVER_IP = "192.168.7.1"\n'
-features += 'TEST_TARGET_IP = "192.168.7.1"\n'
-features += 'TEST_SUITES = "ping"\n'
-self.write_config(features)
-
-# Build tesexport for core-image-minimal
-bitbake('core-image-minimal')
-bitbake('-c testexport core-image-minimal')
-
-testexport_dir = get_bb_var('TEST_EXPORT_DIR', 'core-image-minimal')
-
-# Verify if TEST_EXPORT_DIR was created
-isdir = os.path.isdir(testexport_dir)
-self.assertEqual(True, isdir, 'Failed to create testexport dir: %s' % 
testexport_dir)
-
-with runqemu('core-image-minimal') as qemu:
-# Attempt to run runexported.py to perform ping test
-test_path = os.path.join(testexport_dir, "oe-test")
-data_file = os.path.join(testexport_dir, 'data', 'testdata.json')
-manifest = os.path.join(testexport_dir, 'data', 'manifest')
-cmd = ("%s runtime --test-data-file %s --packages-manifest %s "
-   "--target-ip %s --server-ip %s --quiet"
-  % (test_path, data_file, manifest, qemu.ip, qemu.server_ip))
-result = runCmd(cmd)
-# Verify ping test was succesful
-self.assertEqual(0, result.status, 'oe-test runtime returned a non 
0 status')
-
-@OETestID(1641)
-def test_testexport_sdk(self):
-"""
-Summary: Check sdk functionality for testexport.
-Expected: 1. testexport directory must be created.
-  2. SDK tarball must exists.
-  3. Uncompressing of tarball must succeed.
-  4. Check if the SDK directory is added to PATH.
-  5. Run tar from the SDK directory.
-Product: oe-core
-Author: Mariano Lopez 
-"""
-
-features = 'INHERIT += "testexport"\n'
-# These aren't the actual IP addresses but testexport class needs 
something defined
-features += 'TEST_SERVER_IP = "192.168.7.1"\n'
-features += 'TEST_TARGET_IP = "192.168.7.1"\n'
-features += 'TEST_SUITES = "ping"\n'
-features += 'TEST_EXPORT_SDK_ENABLED = "1"\n'
-features += 'TEST_EXPORT_SDK_PACKAGES = "nativesdk-tar"\n'
-self.write_config(features)
-
-# Build tesexport for core-image-minimal
-bitbake('core-image-minimal')
-bitbake('-c testexport core-image-minimal')
-
-needed_vars = ['TEST_EXPORT_DIR', 'TEST_EXPORT_SDK_DIR', 
'TEST_EXPORT_SDK_NAME']
-bb_vars = get_bb_vars(needed_vars, 'core-image-minimal')
-testexport_dir = bb_vars['TEST_EXPORT_DIR']
-sdk_dir = bb_vars['TEST_EXPORT_SDK_DIR']
-sdk_name = bb_vars['TEST_EXPORT_SDK_NAME']
-
-# Check for SDK
-tarball_name = "%s.sh" % sdk_name
-tarball_path = os.path.join(testexport_dir, sdk_dir, tarball_name)
-msg = "Couldn't find SDK tarball: %s" % tarball_path
-self.assertEqual(os.path.isfile(tarball_path), True, msg)
-
-# Extract SDK and run tar from SDK
-result = runCmd("%s -y -d /tmp/sdk" % tarball_path)
- 

[OE-core] [PATCHv2 22/29] oeqa/selftest/cases: devtool enable threaded runs

2017-07-12 Thread Aníbal Limón
- Add new class DevtoolCommon to split devtool suite into other modules.
- Change to use wrappers from OESelfTest class (runCmd, bitbake).
- When remove workspacedir using bitbake-layers use full path because
now has it own builddir.
- Add a build of xz-native because some tests needs it to
decompress tarballs and is supposed to be provided, see bug [YOCTO #11474].

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/cases/devtool.py | 644 
 1 file changed, 325 insertions(+), 319 deletions(-)

diff --git a/meta/lib/oeqa/selftest/cases/devtool.py 
b/meta/lib/oeqa/selftest/cases/devtool.py
index 28c84679a17..c66e77a9ace 100644
--- a/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/meta/lib/oeqa/selftest/cases/devtool.py
@@ -6,13 +6,12 @@ import glob
 import fnmatch
 
 import oeqa.utils.ftools as ftools
+from oeqa.utils.commands import create_temp_layer, runqemu
+
 from oeqa.selftest.case import OESelftestTestCase
-from oeqa.utils.commands import runCmd, bitbake, get_bb_var, create_temp_layer
-from oeqa.utils.commands import get_bb_vars, runqemu
 from oeqa.core.decorator.oeid import OETestID
 
 class DevtoolBase(OESelftestTestCase):
-
 def _test_recipe_contents(self, recipefile, checkvars, checkinherits):
 with open(recipefile, 'r') as f:
 invar = None
@@ -62,7 +61,7 @@ class DevtoolBase(OESelftestTestCase):
 self.assertIn(inherit, inherits, 'Missing inherit of %s' % inherit)
 
 def _check_bbappend(self, testrecipe, recipefile, appenddir):
-result = runCmd('bitbake-layers show-appends', cwd=self.builddir)
+result = self.runCmd('bitbake-layers show-appends', cwd=self.builddir)
 resultlines = result.output.splitlines()
 inrecipe = False
 bbappends = []
@@ -88,7 +87,7 @@ class DevtoolBase(OESelftestTestCase):
 create_temp_layer(templayerdir, templayername, priority, 
recipepathspec)
 if addlayer:
 self.add_command_to_tearDown('bitbake-layers remove-layer %s || 
true' % templayerdir)
-result = runCmd('bitbake-layers add-layer %s' % templayerdir, 
cwd=self.builddir)
+result = self.runCmd('bitbake-layers add-layer %s' % templayerdir, 
cwd=self.builddir)
 
 def _process_ls_output(self, output):
 """
@@ -114,47 +113,54 @@ class DevtoolBase(OESelftestTestCase):
 return filelist
 
 
-class DevtoolTests(DevtoolBase):
-
+class DevtoolCommon(DevtoolBase):
 @classmethod
 def setUpClass(cls):
-super(DevtoolTests, cls).setUpClass()
-bb_vars = get_bb_vars(['TOPDIR', 'SSTATE_DIR'])
+super(DevtoolCommon, cls).setUpClass()
+bb_vars = cls.get_bb_vars(['TOPDIR', 'SSTATE_DIR'])
 cls.original_sstate = bb_vars['SSTATE_DIR']
 cls.devtool_sstate = os.path.join(bb_vars['TOPDIR'], 'sstate_devtool')
 cls.sstate_conf  = 'SSTATE_DIR = "%s"\n' % cls.devtool_sstate
 cls.sstate_conf += ('SSTATE_MIRRORS += "file://.* file:///%s/PATH"\n'
 % cls.original_sstate)
 
+# XXX: some test cases needs xz-native to unpack like mdadm recipes
+# and it is supposed to be provided
+cls.bitbake("xz-native")
+
 @classmethod
 def tearDownClass(cls):
 cls.logger.debug('Deleting devtool sstate cache on %s' % 
cls.devtool_sstate)
-runCmd('rm -rf %s' % cls.devtool_sstate)
-super(DevtoolTests, cls).tearDownClass()
+cls.runCmd('rm -rf %s' % cls.devtool_sstate)
+super(DevtoolCommon, cls).tearDownClass()
 
 def setUp(self):
 """Test case setup function"""
-super(DevtoolTests, self).setUp()
+super(DevtoolCommon, self).setUp()
 self.workspacedir = os.path.join(self.builddir, 'workspace')
 self.assertTrue(not os.path.exists(self.workspacedir),
 'This test cannot be run with a workspace directory '
 'under the build directory')
 self.append_config(self.sstate_conf)
 
+class DevtoolTests(DevtoolCommon):
+_use_own_builddir = True
+_main_thread = False
+
 def _check_src_repo(self, repo_dir):
 """Check srctree git repository"""
 self.assertTrue(os.path.isdir(os.path.join(repo_dir, '.git')),
 'git repository for external source tree not found')
-result = runCmd('git status --porcelain', cwd=repo_dir)
+result = self.runCmd('git status --porcelain', cwd=repo_dir)
 self.assertEqual(result.output.strip(), "",
  'Created git repo is not clean')
-result = runCmd('git symbolic-ref HEAD', cwd=repo_dir)
+result = self.runCmd('git symbolic-ref HEAD', cwd=repo_dir)
 self.assertEqual(result.output.strip(), "refs/heads/devtool",
  'Wrong branch in git repo')
 
 def _check_repo_status(self, repo_dir, expected_status):
 """Check the worktree status of a repository"""
-result = ru

[OE-core] [PATCHv2 14/29] oeqa/selftest/case: Support bitbake memres mode in per build directory

2017-07-12 Thread Aníbal Limón
If BBSERVER is set on the environment the bitbake is set to be used
as a memres, so starts an bitbake server per TestClass.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/case.py | 9 +
 1 file changed, 9 insertions(+)

diff --git a/meta/lib/oeqa/selftest/case.py b/meta/lib/oeqa/selftest/case.py
index c6f2d184ea3..d98a3760415 100644
--- a/meta/lib/oeqa/selftest/case.py
+++ b/meta/lib/oeqa/selftest/case.py
@@ -97,6 +97,12 @@ class OESelftestTestCase(OETestCase):
 cls.runCmd("git init; git add *; git commit -a -m 'initial'",
 cwd=cls.testlayer_path)
 
+if cls._use_own_builddir and 'BBSERVER' in os.environ:
+env = os.environ.copy()
+del env['BBSERVER']
+result = cls.runCmd('bitbake --server-only -t xmlrpc -B 
localhost:-1',
+env=env)
+
 # XXX: sometimes meta-selftest isn't on bblayers at first backup
 try:
 cls.runCmd("bitbake-layers remove-layer %s" % 
cls.orig_testlayer_path)
@@ -119,6 +125,9 @@ class OESelftestTestCase(OETestCase):
 
 @classmethod
 def tearDownClass(cls):
+if cls._use_own_builddir and 'BBSERVER' in os.environ:
+cls.runCmd('bitbake --kill-server')
+
 cls.remove_include()
 cls.remove_inc_files()
 super(OESelftestTestCase, cls).tearDownClass()
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 26/29] seltest/cases/devtool: Build dbus on test_devtool_add_git_local

2017-07-12 Thread Aníbal Limón
The dbus-wait recipe has the dependency of dbus, due to now we have
build folder per test class the dependency needs to be build before
run devtool add because without it the DEPENDS field is unset.

The devtool/recipetool uses previously build recipes to figure out
the dependencies.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/cases/devtool.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meta/lib/oeqa/selftest/cases/devtool.py 
b/meta/lib/oeqa/selftest/cases/devtool.py
index 44ba361f16c..c5ca95022bb 100644
--- a/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/meta/lib/oeqa/selftest/cases/devtool.py
@@ -248,6 +248,8 @@ class DevtoolTests(DevtoolCommon):
 # Test devtool add
 self.track_for_cleanup(self.workspacedir)
 self.add_command_to_tearDown('bitbake-layers remove-layer %s' % 
self.workspacedir)
+# dbus needs to be built because is a dependency of dbus-wait
+self.bitbake('dbus')
 # Don't specify a name since we should be able to auto-detect it
 result = self.runCmd('devtool add %s' % srcdir)
 self.assertExists(os.path.join(self.workspacedir, 'conf', 
'layer.conf'), 'Workspace directory not created')
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 25/29] selftest/cases/devtool{, end}: Move update/finish_modify tests to its own module

2017-07-12 Thread Aníbal Limón
This devtool tests are set to run at end because made changes into the
poky repository causing problems (non deteministic meta data) in other
execution threads.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/cases/devtool.py | 545 ++--
 meta/lib/oeqa/selftest/cases/devtool_end.py | 506 ++
 2 files changed, 532 insertions(+), 519 deletions(-)
 create mode 100644 meta/lib/oeqa/selftest/cases/devtool_end.py

diff --git a/meta/lib/oeqa/selftest/cases/devtool.py 
b/meta/lib/oeqa/selftest/cases/devtool.py
index 3d8d246bb7c..44ba361f16c 100644
--- a/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/meta/lib/oeqa/selftest/cases/devtool.py
@@ -112,6 +112,32 @@ class DevtoolBase(OESelftestTestCase):
 filelist.append(' '.join(splitline))
 return filelist
 
+def _check_src_repo(self, repo_dir):
+"""Check srctree git repository"""
+self.assertTrue(os.path.isdir(os.path.join(repo_dir, '.git')),
+'git repository for external source tree not found')
+result = self.runCmd('git status --porcelain', cwd=repo_dir)
+self.assertEqual(result.output.strip(), "",
+ 'Created git repo is not clean')
+result = self.runCmd('git symbolic-ref HEAD', cwd=repo_dir)
+self.assertEqual(result.output.strip(), "refs/heads/devtool",
+ 'Wrong branch in git repo')
+
+def _check_repo_status(self, repo_dir, expected_status):
+"""Check the worktree status of a repository"""
+result = self.runCmd('git status . --porcelain',
+cwd=repo_dir)
+for line in result.output.splitlines():
+for ind, (f_status, fn_re) in enumerate(expected_status):
+if re.match(fn_re, line[3:]):
+if f_status != line[:2]:
+self.fail('Unexpected status in line: %s' % line)
+expected_status.pop(ind)
+break
+else:
+self.fail('Unexpected modified file in line: %s' % line)
+if expected_status:
+self.fail('Missing file changes: %s' % expected_status)
 
 class DevtoolCommon(DevtoolBase):
 _use_own_builddir = True
@@ -150,33 +176,6 @@ class DevtoolTests(DevtoolCommon):
 _use_own_builddir = True
 _main_thread = False
 
-def _check_src_repo(self, repo_dir):
-"""Check srctree git repository"""
-self.assertTrue(os.path.isdir(os.path.join(repo_dir, '.git')),
-'git repository for external source tree not found')
-result = self.runCmd('git status --porcelain', cwd=repo_dir)
-self.assertEqual(result.output.strip(), "",
- 'Created git repo is not clean')
-result = self.runCmd('git symbolic-ref HEAD', cwd=repo_dir)
-self.assertEqual(result.output.strip(), "refs/heads/devtool",
- 'Wrong branch in git repo')
-
-def _check_repo_status(self, repo_dir, expected_status):
-"""Check the worktree status of a repository"""
-result = self.runCmd('git status . --porcelain',
-cwd=repo_dir)
-for line in result.output.splitlines():
-for ind, (f_status, fn_re) in enumerate(expected_status):
-if re.match(fn_re, line[3:]):
-if f_status != line[:2]:
-self.fail('Unexpected status in line: %s' % line)
-expected_status.pop(ind)
-break
-else:
-self.fail('Unexpected modified file in line: %s' % line)
-if expected_status:
-self.fail('Missing file changes: %s' % expected_status)
-
 @OETestID(1158)
 def test_create_workspace(self):
 # Check preconditions
@@ -687,417 +686,6 @@ class DevtoolTests(DevtoolCommon):
 self._check_src_repo(tempdir)
 # This is probably sufficient
 
-
-@OETestID(1169)
-def test_devtool_update_recipe(self):
-# Check preconditions
-testrecipe = 'minicom'
-bb_vars = self.get_bb_vars(['FILE', 'SRC_URI'], testrecipe)
-recipefile = bb_vars['FILE']
-src_uri = bb_vars['SRC_URI']
-self.assertNotIn('git://', src_uri, 'This test expects the %s recipe 
to NOT be a git recipe' % testrecipe)
-self._check_repo_status(os.path.dirname(recipefile), [])
-# First, modify a recipe
-tempdir = tempfile.mkdtemp(prefix='devtoolqa')
-self.track_for_cleanup(tempdir)
-self.track_for_cleanup(self.workspacedir)
-self.add_command_to_tearDown('bitbake-layers remove-layer %s' % 
self.workspacedir)
-# (don't bother with cleaning the recipe on teardown, we won't be 
building it)
-# We don't use -x here so that we test the behaviour of devtool modify 
without it
-result = self.runCmd('devtool modify %s %s' % (testrecipe, tempdir))

[OE-core] [PATCHv2 28/29] oeqa/selftest/context: Enable support for threaded runs

2017-07-12 Thread Aníbal Limón
Add an option to specify how many threads will be used for
execution, default to 1.

If the thread_num are greater than 1 the OESelftestContextThreaded
will be used, this is due to compatibility reasons.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/context.py | 26 ++
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/meta/lib/oeqa/selftest/context.py 
b/meta/lib/oeqa/selftest/context.py
index 697ea0b4933..e54c871596d 100644
--- a/meta/lib/oeqa/selftest/context.py
+++ b/meta/lib/oeqa/selftest/context.py
@@ -11,11 +11,12 @@ from shutil import copyfile
 import tempfile
 from random import choice
 
-import oeqa
+from argparse_oe import int_positive
 
-from oeqa.core.context import OETestContext, OETestContextExecutor
+import oeqa
+from oeqa.core.context import OETestContext, OETestContextExecutor 
 from oeqa.core.exception import OEQAPreRun
-
+from oeqa.core.threaded import OETestContextThreaded
 from oeqa.utils.commands import runCmd, get_bb_vars, get_test_layer
 
 class OESelftestTestContext(OETestContext):
@@ -38,14 +39,19 @@ class OESelftestTestContext(OETestContext):
 def listTests(self, display_type, machine=None):
 return super(OESelftestTestContext, self).listTests(display_type)
 
+class OESelftestTestContextThreaded(OESelftestTestContext, 
OETestContextThreaded):
+pass
+
 class OESelftestTestContextExecutor(OETestContextExecutor):
-_context_class = OESelftestTestContext
+_context_class = OESelftestTestContextThreaded
 _script_executor = 'oe-selftest'
 
 name = 'oe-selftest'
 help = 'oe-selftest test component'
 description = 'Executes selftest tests'
 
+DEFAULT_THREADS = 1
+
 def register_commands(self, logger, parser):
 group = parser.add_mutually_exclusive_group(required=True)
 
@@ -66,6 +72,11 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
 action="store_true", default=False,
 help='List all available tests.')
 
+parser.add_argument('-t', '--thread-num', required=False, 
action='store',
+dest="thread_num", default=self.DEFAULT_THREADS, 
type=int_positive,
+help='Number of threads to use for execute selftests,'\
+   ' default: %d' % self.DEFAULT_THREADS)
+
 parser.add_argument('--machine', required=False, choices=['random', 
'all'],
 help='Run tests on different machines 
(random/all).')
 
@@ -137,6 +148,8 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
 self.tc_kwargs['init']['config_paths']['base_builddir'] = \
 tempfile.mkdtemp(prefix='build-selftest-', dir=builddir)
 
+self.tc_kwargs['load']['process_num'] = args.thread_num
+
 def _pre_run(self):
 def _check_required_env_variables(vars):
 for var in vars:
@@ -199,6 +212,11 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
 self.module_paths = self._get_cases_paths(
 self.tc_kwargs['init']['td']['BBPATH'].split(':'))
 
+if self.tc_kwargs['load']['process_num'] == 1:
+self._context_class = OESelftestTestContext
+# OESelftestTestContext class doesn't expect process_num
+del self.tc_kwargs['load']['process_num']
+
 self.tc = self._context_class(**self.tc_kwargs['init'])
 self.tc.loadTests(self.module_paths, **self.tc_kwargs['load'])
 
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 18/29] oeqa/selftest/cases: imagefeatures enable threaded runs

2017-07-12 Thread Aníbal Limón
- Change to use wrapper methos from OESelfTestCase.
- Move tests that use runqemu to its own module because
  it needs tinfoil and run in the main thread.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/cases/imagefeatures.py  | 78 +++---
 meta/lib/oeqa/selftest/cases/imagefeatures_boot.py | 63 +
 2 files changed, 73 insertions(+), 68 deletions(-)
 create mode 100644 meta/lib/oeqa/selftest/cases/imagefeatures_boot.py

diff --git a/meta/lib/oeqa/selftest/cases/imagefeatures.py 
b/meta/lib/oeqa/selftest/cases/imagefeatures.py
index e6652ec7aba..325be934419 100644
--- a/meta/lib/oeqa/selftest/cases/imagefeatures.py
+++ b/meta/lib/oeqa/selftest/cases/imagefeatures.py
@@ -1,69 +1,11 @@
+import os
+
 from oeqa.selftest.case import OESelftestTestCase
-from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu
 from oeqa.core.decorator.oeid import OETestID
-from oeqa.utils.sshcontrol import SSHControl
-import os
 
 class ImageFeatures(OESelftestTestCase):
-
-test_user = 'tester'
-root_user = 'root'
-
-@OETestID(1107)
-def test_non_root_user_can_connect_via_ssh_without_password(self):
-"""
-Summary: Check if non root user can connect via ssh without password
-Expected: 1. Connection to the image via ssh using root user without 
providing a password should be allowed.
-  2. Connection to the image via ssh using tester user without 
providing a password should be allowed.
-Product: oe-core
-Author: Ionut Chisanovici 
-AutomatedBy: Daniel Istrate 
-"""
-
-features = 'EXTRA_IMAGE_FEATURES = "ssh-server-openssh 
empty-root-password allow-empty-password"\n'
-features += 'INHERIT += "extrausers"\n'
-features += 'EXTRA_USERS_PARAMS = "useradd -p \'\' {}; usermod -s 
/bin/sh {};"'.format(self.test_user, self.test_user)
-self.write_config(features)
-
-# Build a core-image-minimal
-bitbake('core-image-minimal')
-
-with runqemu("core-image-minimal") as qemu:
-# Attempt to ssh with each user into qemu with empty password
-for user in [self.root_user, self.test_user]:
-ssh = SSHControl(ip=qemu.ip, logfile=qemu.sshlog, user=user)
-status, output = ssh.run("true")
-self.assertEqual(status, 0, 'ssh to user %s failed with %s' % 
(user, output))
-
-@OETestID(1115)
-def test_all_users_can_connect_via_ssh_without_password(self):
-"""
-Summary: Check if all users can connect via ssh without password
-Expected: 1. Connection to the image via ssh using root user without 
providing a password should NOT be allowed.
-  2. Connection to the image via ssh using tester user without 
providing a password should be allowed.
-Product: oe-core
-Author:  Ionut Chisanovici 
-AutomatedBy: Daniel Istrate 
-"""
-
-features = 'EXTRA_IMAGE_FEATURES = "ssh-server-openssh 
allow-empty-password"\n'
-features += 'INHERIT += "extrausers"\n'
-features += 'EXTRA_USERS_PARAMS = "useradd -p \'\' {}; usermod -s 
/bin/sh {};"'.format(self.test_user, self.test_user)
-self.write_config(features)
-
-# Build a core-image-minimal
-bitbake('core-image-minimal')
-
-with runqemu("core-image-minimal") as qemu:
-# Attempt to ssh with each user into qemu with empty password
-for user in [self.root_user, self.test_user]:
-ssh = SSHControl(ip=qemu.ip, logfile=qemu.sshlog, user=user)
-status, output = ssh.run("true")
-if user == 'root':
-self.assertNotEqual(status, 0, 'ssh to user root was 
allowed when it should not have been')
-else:
-self.assertEqual(status, 0, 'ssh to user tester failed 
with %s' % output)
-
+_use_own_builddir = True
+_main_thread = False
 
 @OETestID(1116)
 def test_clutter_image_can_be_built(self):
@@ -76,7 +18,7 @@ class ImageFeatures(OESelftestTestCase):
 """
 
 # Build a core-image-clutter
-bitbake('core-image-clutter')
+self.bitbake('core-image-clutter')
 
 @OETestID(1117)
 def test_wayland_support_in_image(self):
@@ -89,12 +31,12 @@ class ImageFeatures(OESelftestTestCase):
 AutomatedBy: Daniel Istrate 
 """
 
-distro_features = get_bb_var('DISTRO_FEATURES')
+distro_features = self.get_bb_var('DISTRO_FEATURES')
 if not ('opengl' in distro_features and 'wayland' in distro_features):
 self.skipTest('neither opengl nor wayland present on 
DISTRO_FEATURES so core-image-weston cannot be built')
 
 # Build a core-image-weston
-bitbake('core-image-weston')
+self.bitbake('core-image-weston')
 
 @OETestID(1497)
 def test_bmap(self):
@@ -110,10 +52,10 @@ class ImageFeatures(OESelftestTes

[OE-core] [PATCHv2 23/29] oeqa/selftest/cases: recipetool enable for threaded runs

2017-07-12 Thread Aníbal Limón
- Change to use wrappers from OESelfTestCase.
- Move templayer dir creation to RecipetoolBase class because
  now every class has its own build folder.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/cases/recipetool.py | 105 +++--
 1 file changed, 54 insertions(+), 51 deletions(-)

diff --git a/meta/lib/oeqa/selftest/cases/recipetool.py 
b/meta/lib/oeqa/selftest/cases/recipetool.py
index bdd405f1cc0..59544336578 100644
--- a/meta/lib/oeqa/selftest/cases/recipetool.py
+++ b/meta/lib/oeqa/selftest/cases/recipetool.py
@@ -3,30 +3,30 @@ import shutil
 import tempfile
 import urllib.parse
 
-from oeqa.utils.commands import runCmd, bitbake, get_bb_var
-from oeqa.utils.commands import get_bb_vars, create_temp_layer
-from oeqa.core.decorator.oeid import OETestID
 from oeqa.selftest.cases import devtool
+from oeqa.utils.commands import create_temp_layer
+from oeqa.core.decorator.oeid import OETestID
 
-templayerdir = None
-
-def setUpModule():
-global templayerdir
-templayerdir = tempfile.mkdtemp(prefix='recipetoolqa')
-create_temp_layer(templayerdir, 'selftestrecipetool')
-runCmd('bitbake-layers add-layer %s' % templayerdir)
-
+class RecipetoolBase(devtool.DevtoolBase):
+@classmethod
+def setUpClass(cls):
+super(RecipetoolBase, cls).setUpClass()
 
-def tearDownModule():
-runCmd('bitbake-layers remove-layer %s' % templayerdir, ignore_status=True)
-runCmd('rm -rf %s' % templayerdir)
+cls.templayerdir = tempfile.mkdtemp(prefix='recipetoolqa')
+create_temp_layer(cls.templayerdir, 'selftestrecipetool')
+cls.runCmd('bitbake-layers add-layer %s' % cls.templayerdir)
 
+@classmethod
+def tearDownClass(cls):
+super(RecipetoolBase, cls).tearDownClass()
 
-class RecipetoolBase(devtool.DevtoolBase):
+cls.runCmd('bitbake-layers remove-layer %s' % cls.templayerdir,
+ignore_status=True)
+cls.runCmd('rm -rf %s' % cls.templayerdir)
 
 def setUpLocal(self):
 super(RecipetoolBase, self).setUpLocal()
-self.templayerdir = templayerdir
+
 self.tempdir = tempfile.mkdtemp(prefix='recipetoolqa')
 self.track_for_cleanup(self.tempdir)
 self.testfile = os.path.join(self.tempdir, 'testfile')
@@ -34,15 +34,15 @@ class RecipetoolBase(devtool.DevtoolBase):
 f.write('Test file\n')
 
 def tearDownLocal(self):
-runCmd('rm -rf %s/recipes-*' % self.templayerdir)
+self.runCmd('rm -rf %s/recipes-*' % self.templayerdir)
 super(RecipetoolBase, self).tearDownLocal()
 
 def _try_recipetool_appendcmd(self, cmd, testrecipe, expectedfiles, 
expectedlines=None):
-result = runCmd(cmd)
+result = self.runCmd(cmd)
 self.assertNotIn('Traceback', result.output)
 
 # Check the bbappend was created and applies properly
-recipefile = get_bb_var('FILE', testrecipe)
+recipefile = self.get_bb_var('FILE', testrecipe)
 bbappendfile = self._check_bbappend(testrecipe, recipefile, 
self.templayerdir)
 
 # Check the bbappend contents
@@ -66,14 +66,16 @@ class RecipetoolBase(devtool.DevtoolBase):
 
 
 class RecipetoolTests(RecipetoolBase):
+_use_own_builddir = True
+_main_thread = False
 
 @classmethod
 def setUpClass(cls):
 super(RecipetoolTests, cls).setUpClass()
 # Ensure we have the right data in shlibs/pkgdata
 cls.logger.info('Running bitbake to generate pkgdata')
-bitbake('-c packagedata base-files coreutils busybox 
selftest-recipetool-appendfile')
-bb_vars = get_bb_vars(['COREBASE', 'BBPATH'])
+cls.bitbake('-c packagedata base-files coreutils busybox 
selftest-recipetool-appendfile')
+bb_vars = cls.get_bb_vars(['COREBASE', 'BBPATH'])
 cls.corebase = bb_vars['COREBASE']
 cls.bbpath = bb_vars['BBPATH']
 
@@ -83,7 +85,7 @@ class RecipetoolTests(RecipetoolBase):
 
 def _try_recipetool_appendfile_fail(self, destfile, newfile, checkerror):
 cmd = 'recipetool appendfile %s %s %s' % (self.templayerdir, destfile, 
newfile)
-result = runCmd(cmd, ignore_status=True)
+result = self.runCmd(cmd, ignore_status=True)
 self.assertNotEqual(result.status, 0, 'Command "%s" should have failed 
but didn\'t' % cmd)
 self.assertNotIn('Traceback', result.output)
 for errorstr in checkerror:
@@ -125,7 +127,7 @@ class RecipetoolTests(RecipetoolBase):
 bbappendfile, _ = self._try_recipetool_appendfile('coreutils', 
'/bin/ls', self.testfile, '-r coreutils', expectedlines, [testfile2name])
 # But file should have
 copiedfile = os.path.join(os.path.dirname(bbappendfile), 'coreutils', 
testfile2name)
-result = runCmd('diff -q %s %s' % (testfile2, copiedfile), 
ignore_status=True)
+result = self.runCmd('diff -q %s %s' % (testfile2, copiedfile), 
ignore_status=True)
 self.assertNotEqual(result.status, 0, 'New file should have 

[OE-core] [PATCHv2 24/29] oeqa/selftest/cases: Move devtool deploy test case to own module

2017-07-12 Thread Aníbal Limón
The devtool deploy test case uses runqemu that uses tinfoil so
tinfoil requires to run on the main thread.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/cases/devtool.py| 91 ++---
 meta/lib/oeqa/selftest/cases/devtool_deploy.py | 93 ++
 2 files changed, 97 insertions(+), 87 deletions(-)
 create mode 100644 meta/lib/oeqa/selftest/cases/devtool_deploy.py

diff --git a/meta/lib/oeqa/selftest/cases/devtool.py 
b/meta/lib/oeqa/selftest/cases/devtool.py
index c66e77a9ace..3d8d246bb7c 100644
--- a/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/meta/lib/oeqa/selftest/cases/devtool.py
@@ -6,7 +6,7 @@ import glob
 import fnmatch
 
 import oeqa.utils.ftools as ftools
-from oeqa.utils.commands import create_temp_layer, runqemu
+from oeqa.utils.commands import create_temp_layer
 
 from oeqa.selftest.case import OESelftestTestCase
 from oeqa.core.decorator.oeid import OETestID
@@ -114,6 +114,9 @@ class DevtoolBase(OESelftestTestCase):
 
 
 class DevtoolCommon(DevtoolBase):
+_use_own_builddir = True
+_main_thread = False
+
 @classmethod
 def setUpClass(cls):
 super(DevtoolCommon, cls).setUpClass()
@@ -1144,92 +1147,6 @@ class DevtoolTests(DevtoolCommon):
 matches2 = glob.glob(stampprefix2 + '*')
 self.assertFalse(matches2, 'Stamp files exist for recipe %s that 
should have been cleaned' % testrecipe2)
 
-@OETestID(1272)
-def test_devtool_deploy_target(self):
-# NOTE: Whilst this test would seemingly be better placed as a runtime 
test,
-# unfortunately the runtime tests run under bitbake and you can't run
-# devtool within bitbake (since devtool needs to run bitbake itself).
-# Additionally we are testing build-time functionality as well, so
-# really this has to be done as an oe-selftest test.
-#
-# Check preconditions
-machine = self.get_bb_var('MACHINE')
-if not machine.startswith('qemu'):
-self.skipTest('This test only works with qemu machines')
-if not os.path.exists('/etc/runqemu-nosudo'):
-self.skipTest('You must set up tap devices with 
scripts/runqemu-gen-tapdevs before running this test')
-result = self.runCmd('PATH="$PATH:/sbin:/usr/sbin" ip tuntap show', 
ignore_status=True)
-if result.status != 0:
-result = self.runCmd('PATH="$PATH:/sbin:/usr/sbin" ifconfig -a', 
ignore_status=True)
-if result.status != 0:
-self.skipTest('Failed to determine if tap devices exist with 
ifconfig or ip: %s' % result.output)
-for line in result.output.splitlines():
-if line.startswith('tap'):
-break
-else:
-self.skipTest('No tap devices found - you must set up tap devices 
with scripts/runqemu-gen-tapdevs before running this test')
-self.assertTrue(not os.path.exists(self.workspacedir), 'This test 
cannot be run with a workspace directory under the build directory')
-# Definitions
-testrecipe = 'mdadm'
-testfile = '/sbin/mdadm'
-testimage = 'oe-selftest-image'
-testcommand = '/sbin/mdadm --help'
-# Build an image to run
-self.bitbake("%s qemu-native qemu-helper-native" % testimage)
-deploy_dir_image = self.get_bb_var('DEPLOY_DIR_IMAGE')
-self.add_command_to_tearDown('bitbake -c clean %s' % testimage)
-self.add_command_to_tearDown('rm -f %s/%s*' % (deploy_dir_image, 
testimage))
-# Clean recipe so the first deploy will fail
-self.bitbake("%s -c clean" % testrecipe)
-# Try devtool modify
-tempdir = tempfile.mkdtemp(prefix='devtoolqa')
-self.track_for_cleanup(tempdir)
-self.track_for_cleanup(self.workspacedir)
-self.add_command_to_tearDown('bitbake-layers remove-layer %s' % 
self.workspacedir)
-self.add_command_to_tearDown('bitbake -c clean %s' % testrecipe)
-result = self.runCmd('devtool modify %s -x %s' % (testrecipe, tempdir))
-# Test that deploy-target at this point fails (properly)
-result = self.runCmd('devtool deploy-target -n %s root@localhost' % 
testrecipe, ignore_status=True)
-self.assertNotEqual(result.output, 0, 'devtool deploy-target should 
have failed, output: %s' % result.output)
-self.assertNotIn(result.output, 'Traceback', 'devtool deploy-target 
should have failed with a proper error not a traceback, output: %s' % 
result.output)
-result = self.runCmd('devtool build %s' % testrecipe)
-# First try a dry-run of deploy-target
-result = self.runCmd('devtool deploy-target -n %s root@localhost' % 
testrecipe)
-self.assertIn('  %s' % testfile, result.output)
-# Boot the image
-with runqemu(testimage) as qemu:
-# Now really test deploy-target
-result = self.runCmd('devtool deploy-target -c %s root@%s' % 
(testrecipe, qemu.ip))
-

[OE-core] [PATCHv2 15/29] oeqa/selftest/cases: Use testlayer_path instead of call get_test_layer()

2017-07-12 Thread Aníbal Limón
The testlayer_path is set at init of selftest so isn't need to call
every time get_test_layer to get it.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py | 2 +-
 meta/lib/oeqa/selftest/cases/devtool.py | 4 ++--
 meta/lib/oeqa/selftest/cases/oescripts.py   | 2 +-
 meta/lib/oeqa/selftest/cases/sstate.py  | 2 +-
 meta/lib/oeqa/selftest/cases/sstatetests.py | 2 +-
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py 
b/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py
index 0e5896234c3..b42aa3638d5 100644
--- a/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py
+++ b/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py
@@ -2,7 +2,7 @@ import os
 import shutil
 
 import oeqa.utils.ftools as ftools
-from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_test_layer
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var
 from oeqa.selftest.cases.sstate import SStateBase
 
 
diff --git a/meta/lib/oeqa/selftest/cases/devtool.py 
b/meta/lib/oeqa/selftest/cases/devtool.py
index 88d69724f93..28c84679a17 100644
--- a/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/meta/lib/oeqa/selftest/cases/devtool.py
@@ -8,7 +8,7 @@ import fnmatch
 import oeqa.utils.ftools as ftools
 from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import runCmd, bitbake, get_bb_var, create_temp_layer
-from oeqa.utils.commands import get_bb_vars, runqemu, get_test_layer
+from oeqa.utils.commands import get_bb_vars, runqemu
 from oeqa.core.decorator.oeid import OETestID
 
 class DevtoolBase(OESelftestTestCase):
@@ -1530,7 +1530,7 @@ class DevtoolTests(DevtoolBase):
 # Ensure the recipe is where we think it should be (so that cleanup 
doesn't trash things)
 self.assertIn('/meta/', recipedir)
 relpth = os.path.relpath(recipedir, 
os.path.join(get_bb_var('COREBASE'), 'meta'))
-appenddir = os.path.join(get_test_layer(), relpth)
+appenddir = os.path.join(self.testlayer_path, relpth)
 self.track_for_cleanup(appenddir)
 # Try finish to the original layer
 self.add_command_to_tearDown('rm -rf %s ; cd %s ; git checkout %s' % 
(recipedir, os.path.dirname(recipedir), recipedir))
diff --git a/meta/lib/oeqa/selftest/cases/oescripts.py 
b/meta/lib/oeqa/selftest/cases/oescripts.py
index 1ee753763ec..f7fe200cfac 100644
--- a/meta/lib/oeqa/selftest/cases/oescripts.py
+++ b/meta/lib/oeqa/selftest/cases/oescripts.py
@@ -1,6 +1,6 @@
 from oeqa.selftest.case import OESelftestTestCase
 from oeqa.selftest.cases.buildhistory import BuildhistoryBase
-from oeqa.utils.commands import Command, runCmd, bitbake, get_bb_var, 
get_test_layer
+from oeqa.utils.commands import Command, runCmd, bitbake, get_bb_var
 from oeqa.core.decorator.oeid import OETestID
 
 class BuildhistoryDiffTests(BuildhistoryBase):
diff --git a/meta/lib/oeqa/selftest/cases/sstate.py 
b/meta/lib/oeqa/selftest/cases/sstate.py
index bc2fdbd8ccb..b8c2880ad06 100644
--- a/meta/lib/oeqa/selftest/cases/sstate.py
+++ b/meta/lib/oeqa/selftest/cases/sstate.py
@@ -6,7 +6,7 @@ import shutil
 
 import oeqa.utils.ftools as ftools
 from oeqa.selftest.case import OESelftestTestCase
-from oeqa.utils.commands import runCmd, bitbake, get_bb_vars, get_test_layer
+from oeqa.utils.commands import runCmd, bitbake, get_bb_vars
 
 
 class SStateBase(OESelftestTestCase):
diff --git a/meta/lib/oeqa/selftest/cases/sstatetests.py 
b/meta/lib/oeqa/selftest/cases/sstatetests.py
index 07a206824aa..4617d16d212 100644
--- a/meta/lib/oeqa/selftest/cases/sstatetests.py
+++ b/meta/lib/oeqa/selftest/cases/sstatetests.py
@@ -4,7 +4,7 @@ import glob
 import subprocess
 
 from oeqa.selftest.case import OESelftestTestCase
-from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_test_layer
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var
 from oeqa.selftest.cases.sstate import SStateBase
 from oeqa.core.decorator.oeid import OETestID
 
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 29/29] oeqa/selftest/cases: systemd_boot enable threaded runs

2017-07-12 Thread Aníbal Limón
Signed-off-by: Aníbal Limón 
---
 .../lib/oeqa/selftest/cases/systemd_boot.py| 26 --
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/meta-yocto-bsp/lib/oeqa/selftest/cases/systemd_boot.py 
b/meta-yocto-bsp/lib/oeqa/selftest/cases/systemd_boot.py
index dd5eeec1633..0bd52dc6b85 100644
--- a/meta-yocto-bsp/lib/oeqa/selftest/cases/systemd_boot.py
+++ b/meta-yocto-bsp/lib/oeqa/selftest/cases/systemd_boot.py
@@ -3,9 +3,11 @@ import os
 from oeqa.selftest.case import OESelftestTestCase
 from oeqa.core.decorator.oeid import OETestID
 from oeqa.core.decorator.depends import OETestDepends
-from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu
 
 class Systemdboot(OESelftestTestCase):
+_use_own_builddir = True
+_main_thread = False
+
 def _common_setup(self):
 """
 Common setup for test cases: 1445, 1528
@@ -22,7 +24,7 @@ class Systemdboot(OESelftestTestCase):
 """
 
 # Build a genericx86-64/efi systemdboot image
-bitbake('mtools-native core-image-minimal')
+self.bitbake('mtools-native core-image-minimal')
 
 
 @OETestID(1445)
@@ -38,14 +40,14 @@ class Systemdboot(OESelftestTestCase):
 
 # We'd use DEPLOY_DIR_IMAGE here, except that we need its value for
 # MACHINE="genericx86-64 which is probably not the one configured
-systemdbootfile = os.path.join(get_bb_var('DEPLOY_DIR'), 'images', 
'genericx86-64', 'systemd-bootx64.efi')
+systemdbootfile = os.path.join(self.get_bb_var('DEPLOY_DIR'), 
'images', 'genericx86-64', 'systemd-bootx64.efi')
 
 self._common_setup()
 
 # Ensure we're actually testing that this gets built and not that
 # it was around from an earlier build
-bitbake('-c cleansstate systemd-boot')
-runCmd('rm -f %s' % systemdbootfile)
+self.bitbake('-c cleansstate systemd-boot')
+self.runCmd('rm -f %s' % systemdbootfile)
 
 self._common_build()
 
@@ -71,20 +73,20 @@ class Systemdboot(OESelftestTestCase):
 AutomatedBy:  Jose Perez Carranza 
 """
 
-systemdbootfile = os.path.join(get_bb_var('DEPLOY_DIR'), 'images', 
'genericx86-64',
+systemdbootfile = os.path.join(self.get_bb_var('DEPLOY_DIR'), 
'images', 'genericx86-64',
'systemd-bootx64.efi')
-systemdbootimage = os.path.join(get_bb_var('DEPLOY_DIR'), 'images', 
'genericx86-64',
+systemdbootimage = os.path.join(self.get_bb_var('DEPLOY_DIR'), 
'images', 'genericx86-64',
 
'core-image-minimal-genericx86-64.hddimg')
-imagebootfile = os.path.join(get_bb_var('DEPLOY_DIR'), 'images', 
'genericx86-64',
+imagebootfile = os.path.join(self.get_bb_var('DEPLOY_DIR'), 'images', 
'genericx86-64',
 'bootx64.efi')
-mcopynative = os.path.join(get_bb_var('STAGING_BINDIR_NATIVE'), 
'mcopy')
+mcopynative = os.path.join(self.get_bb_var('STAGING_BINDIR_NATIVE'), 
'mcopy')
 
 #Clean environment before start the test
 if os.path.isfile(imagebootfile):
-runCmd('rm -f %s' % imagebootfile)
+self.runCmd('rm -f %s' % imagebootfile)
 
 #Step 1
-runCmd('%s -i %s ::EFI/BOOT/bootx64.efi %s' % (mcopynative 
,systemdbootimage,
+self.runCmd('%s -i %s ::EFI/BOOT/bootx64.efi %s' % (mcopynative 
,systemdbootimage,
imagebootfile))
 
 #Step 2
@@ -93,6 +95,6 @@ class Systemdboot(OESelftestTestCase):
 % imagebootfile)
 
 #Step 3
-result = runCmd('md5sum %s %s' % (systemdbootfile, imagebootfile))
+result = self.runCmd('md5sum %s %s' % (systemdbootfile, 
imagebootfile))
 self.assertEqual(result.output.split()[0], 
result.output.split()[2],
  '%s was not correclty generated' % imagebootfile)
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 27/29] argparse_oe: Add int_positive type

2017-07-12 Thread Aníbal Limón
Sometimes only expect positive values from cmdline so it's better
to filter at parsing cmdline step instead of validate later.

Signed-off-by: Aníbal Limón 
---
 scripts/lib/argparse_oe.py | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/scripts/lib/argparse_oe.py b/scripts/lib/argparse_oe.py
index bf6eb17197b..9bdfc1ceca2 100644
--- a/scripts/lib/argparse_oe.py
+++ b/scripts/lib/argparse_oe.py
@@ -167,3 +167,10 @@ class OeHelpFormatter(argparse.HelpFormatter):
 return '\n'.join(lines)
 else:
 return super(OeHelpFormatter, self)._format_action(action)
+
+def int_positive(value):
+ivalue = int(value)
+if ivalue <= 0:
+raise argparse.ArgumentTypeError(
+"%s is not a positive int value" % value)
+return ivalue
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 19/29] oeqa/selftest/cases: runqemu enable threaded runs

2017-07-12 Thread Aníbal Limón
- Update to use wrappers {bitbake,get_bb_var} from OESelftestTestCase class.
- Run into the main thread because it needs tinfoil to run.

Signed-off-by: Aníbal Limón 
---
 meta/lib/oeqa/selftest/cases/runqemu.py | 7 +++
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/meta/lib/oeqa/selftest/cases/runqemu.py 
b/meta/lib/oeqa/selftest/cases/runqemu.py
index 4050a4123ba..e30cb24046f 100644
--- a/meta/lib/oeqa/selftest/cases/runqemu.py
+++ b/meta/lib/oeqa/selftest/cases/runqemu.py
@@ -6,12 +6,11 @@ import re
 import logging
 
 from oeqa.selftest.case import OESelftestTestCase
-from oeqa.utils.commands import bitbake, runqemu, get_bb_var
+from oeqa.utils.commands import runqemu
 from oeqa.core.decorator.oeid import OETestID
 
 class RunqemuTests(OESelftestTestCase):
 """Runqemu test class"""
-
 image_is_ready = False
 deploy_dir_image = ''
 
@@ -37,8 +36,8 @@ SYSLINUX_TIMEOUT = "10"
 )
 
 if not RunqemuTests.image_is_ready:
-RunqemuTests.deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
-bitbake(self.recipe)
+RunqemuTests.deploy_dir_image = self.get_bb_var('DEPLOY_DIR_IMAGE')
+self.bitbake(self.recipe)
 RunqemuTests.image_is_ready = True
 
 @OETestID(2001)
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 17/29] oeqa/selftest/cases: Use wrapper methods from OESelfTestCase class

2017-07-12 Thread Aníbal Limón
In order to support threaded runs in oe-selftest cases, there is a need
to use wrapper methods that takes into account the current builddir
by Test class.

Signed-off-by: Aníbal Limón 
---
 .../lib/oeqa/selftest/cases/_sstatetests_noauto.py |  16 ++--
 meta/lib/oeqa/selftest/cases/archiver.py   |  21 +++--
 meta/lib/oeqa/selftest/cases/bblayers.py   |  45 -
 meta/lib/oeqa/selftest/cases/bbtests.py| 101 +++--
 meta/lib/oeqa/selftest/cases/buildhistory.py   |   9 +-
 meta/lib/oeqa/selftest/cases/buildoptions.py   |  51 ++-
 meta/lib/oeqa/selftest/cases/containerimage.py |   9 +-
 meta/lib/oeqa/selftest/cases/distrodata.py |   7 +-
 meta/lib/oeqa/selftest/cases/image_typedep.py  |   8 +-
 meta/lib/oeqa/selftest/cases/layerappend.py|  22 ++---
 meta/lib/oeqa/selftest/cases/liboe.py  |  13 +--
 meta/lib/oeqa/selftest/cases/lic_checksum.py   |   8 +-
 meta/lib/oeqa/selftest/cases/manifest.py   |  13 +--
 meta/lib/oeqa/selftest/cases/oelib/buildhistory.py |   7 +-
 meta/lib/oeqa/selftest/cases/oescripts.py  |   5 +-
 meta/lib/oeqa/selftest/cases/package.py|  10 +-
 meta/lib/oeqa/selftest/cases/pkgdata.py|  73 +++
 meta/lib/oeqa/selftest/cases/prservice.py  |  19 ++--
 meta/lib/oeqa/selftest/cases/signing.py|  38 
 meta/lib/oeqa/selftest/cases/sstate.py |   5 +-
 meta/lib/oeqa/selftest/cases/sstatetests.py|  51 ++-
 21 files changed, 273 insertions(+), 258 deletions(-)

diff --git a/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py 
b/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py
index 98b8b60f51a..08e71f33526 100644
--- a/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py
+++ b/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py
@@ -2,19 +2,15 @@ import os
 import shutil
 
 import oeqa.utils.ftools as ftools
-from oeqa.utils.commands import runCmd, bitbake, get_bb_var
 from oeqa.selftest.cases.sstate import SStateBase
 
-
 class RebuildFromSState(SStateBase):
-
-@classmethod
-def setUpClass(self):
-super(RebuildFromSState, self).setUpClass()
+_use_own_builddir = True
+_main_thread = False
 
 def get_dep_targets(self, primary_targets):
 found_targets = []
-bitbake("-g " + ' '.join(map(str, primary_targets)))
+self.bitbake("-g " + ' '.join(map(str, primary_targets)))
 with open(os.path.join(self.builddir, 'pn-buildlist'), 'r') as pnfile:
 found_targets = pnfile.read().splitlines()
 return found_targets
@@ -59,7 +55,7 @@ class RebuildFromSState(SStateBase):
 rebuild_targets = primary_targets
 
 self.configure_builddir(buildA)
-runCmd((". %s/oe-init-build-env %s && " % (get_bb_var('COREBASE'), 
buildA)) + 'bitbake  ' + ' '.join(map(str, primary_targets)), shell=True, 
executable='/bin/bash')
+self.runCmd((". %s/oe-init-build-env %s && " % 
(self.get_bb_var('COREBASE'), buildA)) + 'bitbake  ' + ' '.join(map(str, 
primary_targets)), shell=True, executable='/bin/bash')
 self.hardlink_tree(os.path.join(buildA, 'sstate-cache'), 
os.path.join(self.builddir, 'sstate-cache-buildA'))
 shutil.rmtree(buildA)
 
@@ -69,13 +65,13 @@ class RebuildFromSState(SStateBase):
 self.configure_builddir(buildB)
 self.hardlink_tree(os.path.join(self.builddir, 
'sstate-cache-buildA'), os.path.join(buildB, 'sstate-cache'))
 
-result_cleansstate = runCmd((". %s/oe-init-build-env %s && " % 
(get_bb_var('COREBASE'), buildB)) + 'bitbake -ccleansstate ' + target, 
ignore_status=True, shell=True, executable='/bin/bash')
+result_cleansstate = self.runCmd((". %s/oe-init-build-env %s && " 
% (self.get_bb_var('COREBASE'), buildB)) + 'bitbake -ccleansstate ' + target, 
ignore_status=True, shell=True, executable='/bin/bash')
 if not result_cleansstate.status == 0:
 failed_cleansstate.append(target)
 shutil.rmtree(buildB)
 continue
 
-result_build = runCmd((". %s/oe-init-build-env %s && " % 
(get_bb_var('COREBASE'), buildB)) + 'bitbake ' + target, ignore_status=True, 
shell=True, executable='/bin/bash')
+result_build = self.runCmd((". %s/oe-init-build-env %s && " % 
(self.get_bb_var('COREBASE'), buildB)) + 'bitbake ' + target, 
ignore_status=True, shell=True, executable='/bin/bash')
 if not result_build.status == 0:
 failed_rebuild.append(target)
 
diff --git a/meta/lib/oeqa/selftest/cases/archiver.py 
b/meta/lib/oeqa/selftest/cases/archiver.py
index 72026d573cc..347d0a8a5f5 100644
--- a/meta/lib/oeqa/selftest/cases/archiver.py
+++ b/meta/lib/oeqa/selftest/cases/archiver.py
@@ -1,10 +1,11 @@
 import os
 import glob
-from oeqa.utils.commands import bitbake, get_bb_vars
 from oeqa.selftest.case import OESelftestTestCase
 from oeqa.core.decorator.oeid 

Re: [OE-core] [PATCH v3] slang: add ptest

2017-07-12 Thread Stefan Strogin
Oh, I see. There are no errors in my log.do_compile_ptest_base
and nothing is written to the terminal when building slang, it confused me.
But there is an error in log.do_configure indeed,
"ERROR: /usr/bin/ncurses5-config should not be used". I'll fix it.

On 12/07/17 04:36, Robert Yang wrote:
> 
> On 07/12/2017 01:31 AM, Stefan Strogin wrote:
>> Hi Robert,
>>
>> Thanks for the report. Could you say how to reproduce the error? What target 
>> architecture, config options, oe-core version, etc do you use?
>> I have tried with openembedded-core 643c81af (master), with
>> MACHINE = "qemux86-64",
>> EXTRA_IMAGE_FEATURES ?= "debug-tweaks ptest-pkgs"
>> DISTRO_FEATURES += "ptest"
>> and CORE_IMAGE_EXTRA_INSTALL += "slang"
>> set in local.conf, everything builds fine.
> 
> The ARCH doesn't matter, I can see the error on every builds, is there
> "ERROR: /usr/bin/ncurses5-config should not be used" in your log.do_configure
> please ? What does it use for ncurses in your build?
> 
> // Robert
> 
>>
>> --
>> Stefan
>>
>> On 11/07/17 04:36, Robert Yang wrote:
>>> Hello Stefan,
>>>
>>> There is an error when do_compile_ptest_base:
>>>
>>> | ../objs/libslang.a(sldisply.o): In function `tt_tgetstr':
>>> | /usr/src/debug/slang/2.3.1a-r0/slang-2.3.1a/src/sldisply.c:2576: undefined
>>> reference to `tgetstr'
>>> | ../objs/libslang.a(sldisply.o): In function `SLtt_initialize':
>>> | /usr/src/debug/slang/2.3.1a-r0/slang-2.3.1a/src/sldisply.c:2770: undefined
>>> reference to `tgetent'
>>> | ../objs/libslang.a(sldisply.o): In function `tt_tgetflag':
>>> | /usr/src/debug/slang/2.3.1a-r0/slang-2.3.1a/src/sldisply.c:2635: undefined
>>> reference to `tgetflag'
>>>
>>>
>>> It is because it uses ncurses5-config which is wrong in oe-core, the
>>> log.do_configure shows:
>>>
>>> checking for ncurses5-config...
>>> /buildarea/lyang1/test_m/tmp/work/i586-poky-linux/slang/2.3.1a-r0/recipe-sysroot/usr/bin/crossscripts/ncurses5-config
>>> checking for terminfo... ERROR: /usr/bin/ncurses5-config should not be 
>>> used, use
>>> an alternative such as pkg-config
>>>
>>> Would you please fix it?
>>>
>>> // Robert
>>>
>>> On 06/21/2017 12:21 AM, Stefan Strogin wrote:
 This patch adds ptest for slang, it uses `make runtests` to run tests.
 The Makefile runs runtests.sh for each *.sl and *.slc tests.
 runtests.sh is patched for printing test results in a common format,
 Makefile is patched in order not to compile any dependencies.

 Changes v2->v3: rebased on the latest master (1d9a88f6).

 Signed-off-by: Stefan Strogin 
 Cc: xe-linux-exter...@cisco.com
 ---
  meta/recipes-extended/slang/slang/run-ptest|  3 +++
  ...-add-output-in-the-format-result-testname.patch | 30 
 ++
  meta/recipes-extended/slang/slang_2.3.1a.bb| 25 +-
  3 files changed, 57 insertions(+), 1 deletion(-)
  create mode 100644 meta/recipes-extended/slang/slang/run-ptest
  create mode 100644 
 meta/recipes-extended/slang/slang/test-add-output-in-the-format-result-testname.patch

 diff --git a/meta/recipes-extended/slang/slang/run-ptest 
 b/meta/recipes-extended/slang/slang/run-ptest
 new file mode 100644
 index 00..39f474af31
 --- /dev/null
 +++ b/meta/recipes-extended/slang/slang/run-ptest
 @@ -0,0 +1,3 @@
 +#!/bin/sh
 +
 +make -C test runtests
 diff --git 
 a/meta/recipes-extended/slang/slang/test-add-output-in-the-format-result-testname.patch
  
 b/meta/recipes-extended/slang/slang/test-add-output-in-the-format-result-testname.patch
 new file mode 100644
 index 00..27a9bb87ea
 --- /dev/null
 +++ 
 b/meta/recipes-extended/slang/slang/test-add-output-in-the-format-result-testname.patch
 @@ -0,0 +1,30 @@
 +From 38688ee2754415cf2a1935dafb8278861b7315e7 Mon Sep 17 00:00:00 2001
 +From: Stefan Strogin 
 +Date: Thu, 2 Mar 2017 00:26:31 +0200
 +Subject: [PATCH] test: add output in the format "result: testname"
 +
 +Upstream-Status: Inappropriate [oe specific]
 +
 +Signed-off-by: Stefan Strogin 
 +---
 + src/test/runtests.sh | 2 ++
 + 1 file changed, 2 insertions(+)
 +
 +diff --git a/src/test/runtests.sh b/src/test/runtests.sh
 +index a3eaad0..64f0705 100755
 +--- a/src/test/runtests.sh
  b/src/test/runtests.sh
 +@@ -34,8 +34,10 @@ do
 + then
 +  n_failed=`expr ${n_failed} + 1`
 +  tests_failed="$tests_failed $testfile"
 ++ echo "FAIL: $testfile"
 + else
 + touch lastrun/$testfile
 ++ echo "PASS: $testfile"
 + fi
 + done
 +
 +--
 +2.11.0
 +
 diff --git a/meta/recipes-extended/slang/slang_2.3.1a.bb 
 b/meta/recipes-extended/slang/slang_2.3.1a.bb
 index c71d80481f..b302104ee1 100644
 --- a/meta/recipes-extended/slang/slang_2.3.1a.bb
 +++ b/meta/recipes-extended/slang/slang_2.3.1a.bb
 @@ -17,6 +17,8 @@ 

[OE-core] ✗ patchtest: failure for oeqa core and oe-selftest threaded enablement (rev2)

2017-07-12 Thread Patchwork
== Series Details ==

Series: oeqa core and oe-selftest threaded enablement (rev2)
Revision: 2
URL   : https://patchwork.openembedded.org/series/7694/
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 b1c4661742)

* Issue Series sent to the wrong mailing list or some patches from 
the series correspond to different mailing lists [test_target_mailing_list] 
  Suggested fixSend the series again to the correct mailing list (ML)
  Suggested ML p...@yoctoproject.org 
[http://git.yoctoproject.org/cgit/cgit.cgi/poky/]
  Patch's path:meta-yocto-bsp/lib/oeqa/selftest/cases/systemd_boot.py



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] ✗ patchtest: failure for oeqa core and oe-selftest threaded enablement (rev2)

2017-07-12 Thread Leonardo Sandoval
On Wed, 2017-07-12 at 20:01 +, Patchwork wrote:
> == Series Details ==
> 
> Series: oeqa core and oe-selftest threaded enablement (rev2)
> Revision: 2
> URL   : https://patchwork.openembedded.org/series/7694/
> 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 b1c4661742)

Just dig into it and found the following: the above issue raised by
patchtest is due to the below one. The safest is to rebase against
oe-core, not poky and send the patch or patches to the correct ML.

Leo


> 
> * Issue Series sent to the wrong mailing list or some patches 
> from the series correspond to different mailing lists 
> [test_target_mailing_list] 
>   Suggested fixSend the series again to the correct mailing list (ML)
>   Suggested ML p...@yoctoproject.org 
> [http://git.yoctoproject.org/cgit/cgit.cgi/poky/]
>   Patch's path:meta-yocto-bsp/lib/oeqa/selftest/cases/systemd_boot.py
> 
> 
> 
> 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 1/3] pkgconf: add recipe

2017-07-12 Thread Burton, Ross
On 11 July 2017 at 13:58, Maxin B. John  wrote:
> Move pkgconf recipe to oe-core from meta-pkgconf:
> https://github.com/kergoth/meta-kergoth-wip/tree/master/meta-pkgconf

Fails under mingw, which is a regression compared to pkg-config.

libpkgconf/.libs/path.o:path.c:(.text+0x164): undefined reference to `lstat'
libpkgconf/.libs/path.o:path.c:(.text+0x1f9): undefined reference to
`S_ISLNK'
libpkgconf/.libs/path.o:path.c:(.text+0x2e5): undefined reference to
`readlink'

(http://errors.yoctoproject.org/Errors/Details/147303/)

Ross
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 3/6] linux-yocto/4.1: update to v4.1.41

2017-07-12 Thread Burton, Ross
On 11 July 2017 at 16:04, Bruce Ashfield 
wrote:
>
> Integrating the korg -stable update that comprises the following
> commits:

I'm guessing this is the cause of this failure with poky-lsb on qemux86-64.

ERROR: Package Version (4.1.41+gitAUTOINC+9f9c9a66ef_9f0d87a53d) does not
match of kernel being built (4.1.42). Please update the PV variable to
match the kernel source or set KERNEL_VERSION_SANITY_SKIP="1" in your
recipe.

(http://errors.yoctoproject.org/Errors/Details/147312/)
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 3/6] linux-yocto/4.1: update to v4.1.41

2017-07-12 Thread Bruce Ashfield

On 2017-07-12 6:17 PM, Burton, Ross wrote:


On 11 July 2017 at 16:04, Bruce Ashfield > wrote:

 >
 > Integrating the korg -stable update that comprises the following
 > commits:

I'm guessing this is the cause of this failure with poky-lsb on qemux86-64.

ERROR: Package Version (4.1.41+gitAUTOINC+9f9c9a66ef_9f0d87a53d) does 
not match of kernel being built (4.1.42). Please update the PV variable 
to match the kernel source or set KERNEL_VERSION_SANITY_SKIP="1" in your 
recipe.


Yep, anything using 4.1 needs to have a PV bump done. I
haven't typically done that in the past, but can loop
around in a bit and see what needs bumping.

Bruce



(http://errors.yoctoproject.org/Errors/Details/147312/ 
)


--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/2] gpg_sign.py: fix overwriting the RPM macro __gpg in a wrong way

2017-07-12 Thread Lans Zhang

Hi Robert,

Could you help me to review this RR?

Thanks,

Jia


On 07/11/2017 12:43 PM, Jia Zhang wrote:

From: Lans Zhang 

The RPM macro used in --define option should not be prefixed by %%.

Signed-off-by: Lans Zhang 
---
  meta/lib/oe/gpg_sign.py | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/lib/oe/gpg_sign.py b/meta/lib/oe/gpg_sign.py
index 7ce767e..c53df54 100644
--- a/meta/lib/oe/gpg_sign.py
+++ b/meta/lib/oe/gpg_sign.py
@@ -36,7 +36,7 @@ class LocalSigner(object):
  gpg_args += ' --pinentry-mode=loopback'
  cmd += "--define '_gpg_sign_cmd_extra_args %s' " % gpg_args
  if self.gpg_bin:
-cmd += "--define '%%__gpg %s' " % self.gpg_bin
+cmd += "--define '__gpg %s' " % self.gpg_bin
  if self.gpg_path:
  cmd += "--define '_gpg_path %s' " % self.gpg_path
  


--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/2] gpg_sign.py: fix overwriting the RPM macro __gpg in a wrong way

2017-07-12 Thread Robert Yang



On 07/13/2017 09:54 AM, Lans Zhang wrote:

Hi Robert,

Could you help me to review this RR?


I've looked at the patches, looks fine to me.

// Robert



Thanks,

Jia


On 07/11/2017 12:43 PM, Jia Zhang wrote:

From: Lans Zhang 

The RPM macro used in --define option should not be prefixed by %%.

Signed-off-by: Lans Zhang 
---
  meta/lib/oe/gpg_sign.py | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/lib/oe/gpg_sign.py b/meta/lib/oe/gpg_sign.py
index 7ce767e..c53df54 100644
--- a/meta/lib/oe/gpg_sign.py
+++ b/meta/lib/oe/gpg_sign.py
@@ -36,7 +36,7 @@ class LocalSigner(object):
  gpg_args += ' --pinentry-mode=loopback'
  cmd += "--define '_gpg_sign_cmd_extra_args %s' " % gpg_args
  if self.gpg_bin:
-cmd += "--define '%%__gpg %s' " % self.gpg_bin
+cmd += "--define '__gpg %s' " % self.gpg_bin
  if self.gpg_path:
  cmd += "--define '_gpg_path %s' " % self.gpg_path





--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH V2 0/2] dropbear, chrpath: reduce local pending patches

2017-07-12 Thread Dengke Du
The following changes since commit 81498aac9560fbeaeb58eaada32ce80e0ea51628:

  yocto-project-qs: Updated Next Steps list (2017-07-12 00:28:16 +0100)

are available in the git repository at:

  https://github.com/DengkeDu/openembedded-core.git 
dengke/dropbear-chrpath-reduce-local-pending-patch
  https://github.com//tree/dengke/dropbear-chrpath-reduce-local-pending-patch

Dengke Du (2):
  dropbear: reduce local pending patches
  chrpath: reduce local pending patches

 .../dropbear/dropbear/0003-configure.patch | 13 +--
 .../fix-libtomcrypt-libtommath-ordering.patch  | 11 +-
 .../chrpath/chrpath/standarddoc.patch  | 25 --
 3 files changed, 32 insertions(+), 17 deletions(-)

-- 
2.8.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH V2 2/2] chrpath: reduce local pending patches

2017-07-12 Thread Dengke Du
Signed-off-by: Dengke Du 
---
 .../chrpath/chrpath/standarddoc.patch  | 25 --
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/meta/recipes-devtools/chrpath/chrpath/standarddoc.patch 
b/meta/recipes-devtools/chrpath/chrpath/standarddoc.patch
index f96f104..3d303fb 100644
--- a/meta/recipes-devtools/chrpath/chrpath/standarddoc.patch
+++ b/meta/recipes-devtools/chrpath/chrpath/standarddoc.patch
@@ -1,14 +1,24 @@
-Upstream-Status: Pending
+From 285b5fbf1d6b25ff55d305c17edf4d327bf19dd3 Mon Sep 17 00:00:00 2001
+From: Richard Purdie 
+Date: Tue, 5 Jul 2011 23:42:29 +0100
+Subject: [PATCH] chrpath: Ensure the package respects the docdir variable
 
-autoconf/automake set docdir automatically, use their value ensuring 
+autoconf/automake set docdir automatically, use their value ensuring
 doc files are placed into $datadir/doc, not $prefix/doc.
 
 RP 5/7/2011
 
-Index: chrpath-0.13/Makefile.am
-===
 chrpath-0.13.orig/Makefile.am  2011-07-05 23:40:14.769920254 +0100
-+++ chrpath-0.13/Makefile.am   2011-07-05 23:40:19.819920635 +0100
+Upstream-Status: Submitted [ 
http://lists.alioth.debian.org/pipermail/chrpath-devel/Week-of-Mon-20170710/13.html
 ]
+
+Signed-off-by: Dengke Du 
+---
+ Makefile.am | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index b50ad21..5f7e861 100644
+--- a/Makefile.am
 b/Makefile.am
 @@ -1,7 +1,5 @@
  SUBDIRS = testsuite deb
  
@@ -17,3 +27,6 @@ Index: chrpath-0.13/Makefile.am
  doc_DATA = AUTHORS COPYING ChangeLog INSTALL NEWS README
  
  bin_PROGRAMS = chrpath
+-- 
+2.8.1
+
-- 
2.8.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH V2 1/2] dropbear: reduce local pending patches

2017-07-12 Thread Dengke Du
Signed-off-by: Dengke Du 
---
 meta/recipes-core/dropbear/dropbear/0003-configure.patch| 13 +++--
 .../dropbear/fix-libtomcrypt-libtommath-ordering.patch  | 11 ++-
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/meta/recipes-core/dropbear/dropbear/0003-configure.patch 
b/meta/recipes-core/dropbear/dropbear/0003-configure.patch
index c53ab01..8469a50 100644
--- a/meta/recipes-core/dropbear/dropbear/0003-configure.patch
+++ b/meta/recipes-core/dropbear/dropbear/0003-configure.patch
@@ -1,19 +1,20 @@
-From c5f5c5054c1b15539dccf866e2c3faba7ed68456 Mon Sep 17 00:00:00 2001
+From 58dd24a80ca0f400d0761afd9ce2b7f684fc9125 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Eric=20B=C3=A9nard?= 
 Date: Thu, 25 Apr 2013 00:27:25 +0200
-Subject: [PATCH 3/6] configure: add a variable to allow openpty check to be 
cached
+Subject: [PATCH] configure: add a variable to allow openpty check to be cached
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [ https://github.com/mkj/dropbear/pull/48 ]
 
+Signed-off-by: Dengke Du 
 ---
  configure.ac | 11 ---
  1 file changed, 8 insertions(+), 3 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index 05461f3..9c16d90 100644
+index 893b904..245408d 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -166,15 +166,20 @@ AC_ARG_ENABLE(openpty,
+@@ -177,15 +177,20 @@ AC_ARG_ENABLE(openpty,
AC_MSG_NOTICE(Not using openpty)
else
AC_MSG_NOTICE(Using openpty if available)
@@ -38,5 +39,5 @@ index 05461f3..9c16d90 100644
  AC_ARG_ENABLE(syslog,
[  --disable-syslogDon't include syslog support],
 -- 
-1.7.11.7
+2.8.1
 
diff --git 
a/meta/recipes-core/dropbear/dropbear/fix-libtomcrypt-libtommath-ordering.patch 
b/meta/recipes-core/dropbear/dropbear/fix-libtomcrypt-libtommath-ordering.patch
index de930f2..2b05e18 100644
--- 
a/meta/recipes-core/dropbear/dropbear/fix-libtomcrypt-libtommath-ordering.patch
+++ 
b/meta/recipes-core/dropbear/dropbear/fix-libtomcrypt-libtommath-ordering.patch
@@ -1,4 +1,4 @@
-From 2fd8d2aedad0c50cdf1e43edd2387874b720ad4c Mon Sep 17 00:00:00 2001
+From f37fa9a41f248fa41dd74a41c66cb41a291c03d2 Mon Sep 17 00:00:00 2001
 From: Andre McCurdy 
 Date: Fri, 16 Sep 2016 12:18:23 -0700
 Subject: [PATCH] fix libtomcrypt/libtommath ordering
@@ -11,18 +11,19 @@ prepended to LIBTOM_LIBS as they are found, not appended.
 Note that LIBTOM_LIBS is not used when linking with the bundled
 libtom libs.
 
-Upstream-Status: Pending
+Upstream-Status: Backport [ 
https://github.com/mkj/dropbear/commit/f9e6bc2aecab0f4b5b529e07a92cc63c8a66cd4b 
]
 
 Signed-off-by: Andre McCurdy 
+Signed-off-by: Dengke Du 
 ---
  configure.ac | 8 
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index b6abe4c..85bb8bc 100644
+index 245408d..d624853 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -390,16 +390,16 @@ AC_ARG_ENABLE(bundled-libtom,
+@@ -393,16 +393,16 @@ AC_ARG_ENABLE(bundled-libtom,
AC_MSG_NOTICE(Forcing bundled libtom*)
else
BUNDLED_LIBTOM=0
@@ -44,5 +45,5 @@ index b6abe4c..85bb8bc 100644
  )
  
 -- 
-1.9.1
+2.8.1
 
-- 
2.8.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH v2] distro_alias.inc: update unmap packages to other distro

2017-07-12 Thread Tan Shen Joon
From: Shen Joon Tan 

Added packages with different names or based on sources that
generates multiple binaries eg: python-pycurl source generates
python3-pycurl as well. Currently, some of these packages are not
displayed as part of other distro due to naming differences on
the source rather than the binaries as a single source could
produce multiple binaries with different names.

Signed-off-by: Shen Joon Tan 
---
 meta/conf/distro/include/distro_alias.inc | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/meta/conf/distro/include/distro_alias.inc 
b/meta/conf/distro/include/distro_alias.inc
index ba47f90..f7c8b4a 100644
--- a/meta/conf/distro/include/distro_alias.inc
+++ b/meta/conf/distro/include/distro_alias.inc
@@ -62,6 +62,7 @@ DISTRO_PN_ALIAS_pn-core-image-testmaster = "OE-Core"
 DISTRO_PN_ALIAS_pn-core-image-testmaster-initramfs = "OE-Core"
 DISTRO_PN_ALIAS_pn-core-image-weston = "OE-Core"
 DISTRO_PN_ALIAS_pn-core-image-x11 = "OE-Core"
+DISTRO_PN_ALIAS_pn-createrepo-c = "Fedora=createrepo_c Clear=createrepo_c"
 DISTRO_PN_ALIAS_pn-cross-localedef = "OSPDT"
 DISTRO_PN_ALIAS_pn-cryptodev-linux = "OE-Core"
 DISTRO_PN_ALIAS_pn-cryptodev-module = "OE-Core"
@@ -128,6 +129,7 @@ DISTRO_PN_ALIAS_pn-gstreamer1.0-plugins-bad = 
"Debian=gstreamer1.0-plugins-bad U
 DISTRO_PN_ALIAS_pn-gstreamer1.0-plugins-base = 
"Debian=gstreamer1.0-plugins-base Ubuntu=gstreamer1.0-plugins-base"
 DISTRO_PN_ALIAS_pn-gstreamer1.0-plugins-good = 
"Debian=gstreamer1.0-plugins-good Ubuntu=gstreamer1.0-plugins-bad"
 DISTRO_PN_ALIAS_pn-gstreamer1.0-rtsp-server = "Ubuntu=gstreamer0.10-rtsp 
Fedora=gstreamer-rtsp"
+DISTRO_PN_ALIAS_pn-gstreamer1.0-vaapi = "Fedora=gstreamer1-vaapi 
Debian=gstreamer-vaapi Clear=gstreamer-vaapi"
 DISTRO_PN_ALIAS_pn-gtk+ = "Meego=gtk2 Fedora=gtk2 OpenSuSE=gtk2 Ubuntu=gtk+2.0 
Mandriva=gtk+2.0 Debian=gtk+2.0"
 DISTRO_PN_ALIAS_pn-gtk+3 = "Ubuntu=gtk+3.0 Debian=gtk+3.0 Fedora=gtk3"
 DISTRO_PN_ALIAS_pn-gtk-doc = "Fedora=gtk-doc Ubuntu=gtk-doc"
@@ -193,6 +195,7 @@ DISTRO_PN_ALIAS_pn-libomxil = "OSPDT 
upstream=http://omxil.sourceforge.net/";
 DISTRO_PN_ALIAS_pn-libowl = "Debian=owl OpenedHand"
 DISTRO_PN_ALIAS_pn-libpam = "Meego=pam Fedora=pam OpenSuSE=pam Ubuntu=pam 
Mandriva=pam Debian=pam"
 DISTRO_PN_ALIAS_pn-libpcre = "Mandriva=libpcre0 Fedora=pcre"
+DISTRO_PN_ALIAS_pn-libpcre2 = "Fedora=pcre2 Debian=pcre2 Clear=pcre2"
 DISTRO_PN_ALIAS_pn-libpng12 = "Debian=libpng12-0 Fedora=libpng"
 DISTRO_PN_ALIAS_pn-libpod-plainer-perl = "OSPDT"
 DISTRO_PN_ALIAS_pn-libsamplerate0 = "Meego=libsamplerate Fedora=libsamplerate 
OpenSuSE=libsamplerate Ubuntu=libsamplerate Mandriva=libsamplerate 
Debian=libsamplerate"
@@ -207,6 +210,7 @@ DISTRO_PN_ALIAS_pn-libusb1 = "Debian=libusb-1.0-0 
Fedora=libusb1"
 DISTRO_PN_ALIAS_pn-libusb-compat = "OSPDT"
 DISTRO_PN_ALIAS_pn-libx11 = "Debian=libx11-6 Fedora=libX11 Ubuntu=libx11-6 
OpenSuSE=xorg-x11-libX11"
 DISTRO_PN_ALIAS_pn-libxcalibrate = "OSPDT 
upstream=http://cgit.freedesktop.org/xorg/lib/libXCalibrate/";
+DISTRO_PN_ALIAS_pn-libxfont2 = "Fedora=libXfont2 Clear=libXfont2"
 DISTRO_PN_ALIAS_pn-libxft = "Mandriva=libxft Debian=libxft2 Ubuntu=libxft2"
 DISTRO_PN_ALIAS_pn-libxi = "Ubuntu=libxi Fedora=libXi"
 DISTRO_PN_ALIAS_pn-libxkbcommon = "Fedora=libxkbcommon Debian=libxkbcommon"
@@ -323,7 +327,10 @@ DISTRO_PN_ALIAS_pn-pulseaudio-client-conf-sato = "OE-Core"
 DISTRO_PN_ALIAS_pn-puzzles = "Debian=sgt-puzzles Fedora=puzzles"
 DISTRO_PN_ALIAS_pn-python3 = "Fedora=python3 Debian=python3.2"
 DISTRO_PN_ALIAS_pn-python3-distribute = "Debian=python3-setuptools 
Fedora=python3-setuptools"
+DISTRO_PN_ALIAS_pn-python3-iniparse = "Fedora=python-iniparse 
Debian=python-iniparse"
 DISTRO_PN_ALIAS_pn-python3-pip = "OpenSuSE=python3-pip Debian=python3-pip"
+DISTRO_PN_ALIAS_pn-python3-pycurl = "Fedora=python-pycurl Debian=pycurl"
+DISTRO_PN_ALIAS_pn-python3-pygpgme = "Fedora=python-pygpgme Debian=pygpgme"
 DISTRO_PN_ALIAS_pn-python3-setuptools = "OpenSuSE=python3-setuptools 
Debian=python3-setuptools"
 DISTRO_PN_ALIAS_pn-python-dbus = "Ubuntu=python-dbus Debian=python-dbus 
Mandriva=python-dbus"
 DISTRO_PN_ALIAS_pn-python-distribute = "Opensuse=python-setuptools 
Fedora=python-setuptools"
-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [poky][master] [PATCH v6 0/1] initramfs-framework:configuration to boot up live image

2017-07-12 Thread wei . tee . ng
From: "Ng, Wei Tee" 

Hi, 

This patch is to get initramfs-framework able to boot up live image.
A new scriplet named setup-live module has been created to handle the 
removeable media detection and assign the rootfs.img. This is because the 
current rootfs module has no support for rootfs images, only rootfs partitions. 

This version included the changes for typo, re-correct the indenting issues and 
squashing 2 commits into single commit. It involve the creation of 
initramfs-module-setup-live in the recipe and added udev-extraconf rdepends on 
this module because it is needed for automounting process. 

This changes has been verified with build test and boot up test on Minnowboard 
Max platform.

Please review and provide feedback if you have any.
The patches are targeted for merging into poky master branch.

Thanks and regards,
Wei Tee

The following changes since commit 81498aac9560fbeaeb58eaada32ce80e0ea51628:

  yocto-project-qs: Updated Next Steps list (2017-07-12 00:28:16 +0100)

are available in the git repository at:

  ssh://git.yoctoproject.org/poky-contrib weiteeng/initramfs-final
  http://git.yoctoproject.org/cgit.cgi//log/?h=weiteeng/initramfs-final

Ng, Wei Tee (1):
  initramfs-framework: module to support boot live image

 .../initrdscripts/initramfs-framework/setup-live   | 66 ++
 .../initrdscripts/initramfs-framework_1.0.bb   | 13 -
 2 files changed, 77 insertions(+), 2 deletions(-)
 create mode 100644 
meta/recipes-core/initrdscripts/initramfs-framework/setup-live

-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH v6 1/1] initramfs-framework: module to support boot live image

2017-07-12 Thread wei . tee . ng
From: "Ng, Wei Tee" 

setup-live module is a new module being introduced to integrate the
functionality of init-live.sh into new scriptlet named setup-live in
order to support the live boot image. The udev-extraconf rdepends is
being added to perform automounting. It gets to run before the rootfs
and finish module.

The setup-live scriplet include the changes for:

- Create a conditional loop for the bootparam_root variable. If it is
not set, then it will boot from ROOT_IMAGE. Else, it will boot normally
which is not from removable media.

- Gives a standard path to the original boot disk mount which can be
used to. While /media/sda is a good guess, it isn't always right, nor
is it a good assumption that only one boot disk is in the system.

- The current rootfs module has no support for rootfs images, currently
it only support for rootfs partitions for wic image. Therefore, there
is a need to assign the rootfs image for live image.

[YOCTO #11701]

Signed-off-by: Ng, Wei Tee 
---
This version is to re-correct the typo in the message.

 .../initrdscripts/initramfs-framework/setup-live   | 66 ++
 .../initrdscripts/initramfs-framework_1.0.bb   | 13 -
 2 files changed, 77 insertions(+), 2 deletions(-)
 create mode 100644 
meta/recipes-core/initrdscripts/initramfs-framework/setup-live

diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/setup-live 
b/meta/recipes-core/initrdscripts/initramfs-framework/setup-live
new file mode 100644
index 000..ec4a139
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/initramfs-framework/setup-live
@@ -0,0 +1,66 @@
+#/bin/sh
+# Copyright (C) 2011 O.S. Systems Software LTDA.
+# Licensed on MIT
+
+setup_enabled() {
+   return 0
+}
+
+setup_run() {
+ROOT_IMAGE="rootfs.img"
+ISOLINUX=""
+ROOT_DISK=""
+shelltimeout=30
+
+   if [ -z $bootparam_root ]; then
+   echo "Waiting for removable media..."
+   C=0
+   while true
+   do
+ for i in `ls /run/media 2>/dev/null`; do
+ if [ -f /run/media/$i/$ROOT_IMAGE ] ; then
+   found="yes"
+   ROOT_DISK="$i"
+   break
+ elif [ -f /run/media/$i/isolinux/$ROOT_IMAGE ]; then
+   found="yes"
+   ISOLINUX="isolinux"
+   ROOT_DISK="$i"
+   break
+ fi
+ done
+ if [ "$found" = "yes" ]; then
+ break;
+ fi
+ # don't wait for more than $shelltimeout seconds, if it's set
+ if [ -n "$shelltimeout" ]; then
+ echo -n " " $(( $shelltimeout - $C ))
+ if [ $C -ge $shelltimeout ]; then
+  echo "..."
+  echo "Mounted filesystems"
+  mount | grep media
+  echo "Available block devices"
+  cat /proc/partitions
+  fatal "Cannot find $ROOT_IMAGE file in /run/media/* 
, dropping to a shell "
+ fi
+ C=$(( C + 1 ))
+ fi
+ sleep 1
+   done
+   # The existing rootfs module has no support for rootfs images. 
Assign the rootfs image.
+   bootparam_root="/run/media/$ROOT_DISK/$ISOLINUX/$ROOT_IMAGE"
+   else
+   break
+   fi
+
+   if [ "$bootparam_LABEL" != "boot" -a -f /init.d/$bootparam_LABEL.sh ] ; 
then
+   if [ -f /run/media/$i/$ISOLINUX/$ROOT_IMAGE ] ; then
+   ./init.d/$bootparam_LABEL.sh $i/$ISOLINUX $ROOT_IMAGE 
$video_mode $vga_mode $console_params
+   else
+   fatal "Could not find $bootparam_LABEL script"
+   fi
+
+   # If we're getting here, we failed...
+   fatal "Target $bootparam_LABEL failed"
+   fi
+}
diff --git a/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb 
b/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
index 67a1b04..211e89d 100644
--- a/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
@@ -13,7 +13,8 @@ SRC_URI = "file://init \
file://mdev \
file://udev \
file://e2fs \
-   file://debug"
+   file://debug \
+   file://setup-live"
 
 S = "${WORKDIR}"
 
@@ -25,6 +26,9 @@ do_install() {
 install -m 0755 ${WORKDIR}/rootfs ${D}/init.d/90-rootfs
 install -m 0755 ${WORKDIR}/finish ${D}/init.d/99-finish
 
+# setup-live
+install -m 0755 ${WORKDIR}/setup-live ${D}/init.d/80-setup-live
+
 # mdev
 install -m 0755 ${WORKDIR}/mdev ${D}/init.d/01-mdev
 
@@ -48,7 +52,8 @@ PACKAGES = "${PN}-base \
 initram

Re: [OE-core] [PATCH 2/6] cryptodev: 1.8 -> 1.9

2017-07-12 Thread Robert Yang



On 07/12/2017 09:39 PM, Burton, Ross wrote:

Oh, didn't notice that.  Not sure I want to know why meta-intel has to patch
cryptodev!

CCing Saul for his input.


I've sent a patch to meta-in...@yoctoproject.org to update the patch.
If a layer has a bbappend and it patches the source, I usually prefer
not using wildcard as the version:

cryptodev-module_%.bbappend

And also set BB_DANGLINGAPPENDS_WARNONLY in layer.conf during development,
then we can have time to fix the errors.

BTW, I sent a meta-gplv2 patch to p...@yoctoproject.org two days ago, but
I didn't find it in p...@yoctoproject.org, Ross, did you see it, please ?
Maybe I should send it again.


// Robert



Ross

On 12 July 2017 at 14:36, Robert Yang mailto:liezhi.y...@windriver.com>> wrote:



On 07/12/2017 08:32 PM, Burton, Ross wrote:

ERROR: cryptodev-module-1.9-r0 do_patch: Command Error: 'quilt --quiltrc

/data/poky-tmp/master/work/intel_corei7_64-poky-linux/cryptodev-module/1.9-r0/recipe-sysroot-native/etc/quiltrc
push' exited with 0  Output:
Applying patch 0001-zc-Force-4.10-get_user_pages_remote-API.patch
patching file zc.c
Hunk #1 FAILED at 67.
1 out of 1 hunk FAILED -- rejects in file zc.c
Patch 0001-zc-Force-4.10-get_user_pages_remote-API.patch does not apply
(enforce
with -f)


This patch is from meta-intel which I didn't build, sorry, I will fix it.

// Robert



Ross



--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 4/6] git: 2.11.1 -> 2.13.2

2017-07-12 Thread Robert Yang



On 07/12/2017 11:38 PM, Leonardo Sandoval wrote:

for some reason git did not detect (as other patches in this series)
the renaming (delete/create), make it easier to review.



By default, git format-patch handles similarity > 50% as rename,
the git_2.13.2.bb changes a lot, so no renames.

// Robert




On Wed, 2017-07-12 at 03:15 -0700, Robert Yang wrote:

* Remove git-relink from PERLTOOLS:
  git-2.13.2/Documentation/RelNotes/2.12.0.txt:
  * An ancient script "git relink" has been removed.

Signed-off-by: Robert Yang 
---
 meta/recipes-devtools/git/git.inc   |  1 -
 meta/recipes-devtools/git/git_2.11.1.bb | 11 ---
 meta/recipes-devtools/git/git_2.13.2.bb | 11 +++
 3 files changed, 11 insertions(+), 12 deletions(-)
 delete mode 100644 meta/recipes-devtools/git/git_2.11.1.bb
 create mode 100644 meta/recipes-devtools/git/git_2.13.2.bb

diff --git a/meta/recipes-devtools/git/git.inc 
b/meta/recipes-devtools/git/git.inc
index 9b0d328..4390b8d 100644
--- a/meta/recipes-devtools/git/git.inc
+++ b/meta/recipes-devtools/git/git.inc
@@ -86,7 +86,6 @@ PERLTOOLS = " \
 ${libexecdir}/git-core/git-cvsserver \
 ${bindir}/git-cvsserver \
 ${libexecdir}/git-core/git-difftool \
-${libexecdir}/git-core/git-relink \
 ${libexecdir}/git-core/git-send-email \
 ${libexecdir}/git-core/git-svn \
 ${libexecdir}/git-core/git-instaweb \
diff --git a/meta/recipes-devtools/git/git_2.11.1.bb 
b/meta/recipes-devtools/git/git_2.11.1.bb
deleted file mode 100644
index f2f072c..000
--- a/meta/recipes-devtools/git/git_2.11.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require git.inc
-
-EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
- 
ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
- "
-EXTRA_OEMAKE += "NO_GETTEXT=1"
-
-SRC_URI[tarball.md5sum] = "6a7a73db076bb0514b602720669d685c"
-SRC_URI[tarball.sha256sum] = 
"a1cdd7c820f92c44abb5003b36dc8cb7201ba38e8744802399f59c97285ca043"
-SRC_URI[manpages.md5sum] = "e4268a6b514ccdb624b6450ff55881a3"
-SRC_URI[manpages.sha256sum] = 
"ee567e7b0f95333816793714bb31c54e288cf8041f77a0092b85e62c9c2974f9"
diff --git a/meta/recipes-devtools/git/git_2.13.2.bb 
b/meta/recipes-devtools/git/git_2.13.2.bb
new file mode 100644
index 000..e7cae40
--- /dev/null
+++ b/meta/recipes-devtools/git/git_2.13.2.bb
@@ -0,0 +1,11 @@
+require git.inc
+
+EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
+ 
ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
+ "
+EXTRA_OEMAKE += "NO_GETTEXT=1"
+
+SRC_URI[tarball.md5sum] = "894583cddfb0ec3b0156484966f9db9c"
+SRC_URI[tarball.sha256sum] = 
"e19d450648d6d100eb93abaa5d06ffbc778394fb502354b7026d73e9bcbc3160"
+SRC_URI[manpages.md5sum] = "97384d23f2ee88d5ce51ffc75096bd3e"
+SRC_URI[manpages.sha256sum] = 
"1c2bd0a2340b2ef118b7b167a8fec6cc05eb18cad9043e6e7a95fd8a70bb8c4c"
--
2.10.2






--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


  1   2   >