[OE-core] [PATCH v2 2/2] runqemu: Fix guest has not initialized error

2019-08-27 Thread shohei.maruyama
By default qemu use -device VGA,edid=on but in some case cannot use
display because of it.

Signed-off-by: Shohei Maruyama 
---
 meta/conf/machine/qemuarm64.conf | 2 +-
 scripts/runqemu  | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/meta/conf/machine/qemuarm64.conf b/meta/conf/machine/qemuarm64.conf
index 5c8aac1511..2c6d4dfc98 100644
--- a/meta/conf/machine/qemuarm64.conf
+++ b/meta/conf/machine/qemuarm64.conf
@@ -17,7 +17,7 @@ QB_CPU = "-cpu cortex-a57"
 # Standard Serial console
 QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0"
 # For graphics to work we need to define the VGA device as well as the 
necessary USB devices
-QB_OPT_APPEND = "-show-cursor -device VGA,edid=on"
+QB_OPT_APPEND = "-show-cursor"
 QB_OPT_APPEND += "-device qemu-xhci -device usb-tablet -device usb-kbd"
 # Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
 QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device 
virtio-rng-pci,rng=rng0"
diff --git a/scripts/runqemu b/scripts/runqemu
index 28ecee97a7..d4ff5b9eb9 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -397,6 +397,8 @@ class BaseConfig(object):
 self.kernel_cmdline_script += ' console=ttyS0'
 elif arg == 'sdl':
 self.qemu_opt_script += ' -display sdl'
+elif arg == 'gtk':
+self.qemu_opt_script += ' -device virtio-gpu-pci'
 elif arg == 'gtk-gl':
 self.qemu_opt_script += ' -device virtio-gpu-pci,virgl=on 
-display gtk,gl=on'
 elif arg == 'gtk-gl-es':
-- 
2.23.0

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


[OE-core] [PATCH v2 1/2] runqemu: Change to use -device virtio-gpu-pci instead of -vga virtio

2019-08-27 Thread shohei.maruyama
If using qemu-system-aarch64 or qemu-system-arm with the options, an error
occured as follows:

  qemu-system-aarch64: Virtio VGA not available

this commit fixes the error by using -device virtio-gpu-pci instead of
-vga virtio.

Signed-off-by: Shohei Maruyama 
---
 scripts/runqemu | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index 19fd521cd9..28ecee97a7 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -398,11 +398,11 @@ class BaseConfig(object):
 elif arg == 'sdl':
 self.qemu_opt_script += ' -display sdl'
 elif arg == 'gtk-gl':
-self.qemu_opt_script += ' -vga virtio -display gtk,gl=on'
+self.qemu_opt_script += ' -device virtio-gpu-pci,virgl=on 
-display gtk,gl=on'
 elif arg == 'gtk-gl-es':
-self.qemu_opt_script += ' -vga virtio -display gtk,gl=es'
+self.qemu_opt_script += ' -device virtio-gpu-pci,virgl=on 
-display gtk,gl=es'
 elif arg == 'egl-headless':
-self.qemu_opt_script += ' -vga virtio -display egl-headless'
+self.qemu_opt_script += ' -device virtio-gpu-pci,virgl=on 
-display egl-headless'
 # As runqemu can be run within bitbake (when using testimage, 
for example),
 # we need to ensure that we run host pkg-config, and that it 
does not
 # get mis-directed to native build paths set by bitbake.
-- 
2.23.0

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


[OE-core] ✗ patchtest: failure for runqemu: Fix guest has not initialized error

2019-08-27 Thread Patchwork
== Series Details ==

Series: runqemu: Fix guest has not initialized error
Revision: 1
URL   : https://patchwork.openembedded.org/series/19518/
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 64f9fd2a1e)

* Patchrunqemu: Fix guest has not initialized error
 Issue Patch is missing Signed-off-by [test_signed_off_by_presence] 
  Suggested fixSign off the patch (either manually or with "git commit 
--amend -s")



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] -> ...).

---
Guidelines: 
https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest
Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe

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


[OE-core] [PATCH] runqemu: Fix guest has not initialized error

2019-08-27 Thread shohei.maruyama
By default qemu use -device VGA,edid=on but in some case cannot use
display because of it.
---
 meta/conf/machine/qemuarm64.conf | 2 +-
 scripts/runqemu  | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/meta/conf/machine/qemuarm64.conf b/meta/conf/machine/qemuarm64.conf
index 5c8aac1511..2c6d4dfc98 100644
--- a/meta/conf/machine/qemuarm64.conf
+++ b/meta/conf/machine/qemuarm64.conf
@@ -17,7 +17,7 @@ QB_CPU = "-cpu cortex-a57"
 # Standard Serial console
 QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0"
 # For graphics to work we need to define the VGA device as well as the 
necessary USB devices
-QB_OPT_APPEND = "-show-cursor -device VGA,edid=on"
+QB_OPT_APPEND = "-show-cursor"
 QB_OPT_APPEND += "-device qemu-xhci -device usb-tablet -device usb-kbd"
 # Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
 QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device 
virtio-rng-pci,rng=rng0"
diff --git a/scripts/runqemu b/scripts/runqemu
index 28ecee97a7..d4ff5b9eb9 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -397,6 +397,8 @@ class BaseConfig(object):
 self.kernel_cmdline_script += ' console=ttyS0'
 elif arg == 'sdl':
 self.qemu_opt_script += ' -display sdl'
+elif arg == 'gtk':
+self.qemu_opt_script += ' -device virtio-gpu-pci'
 elif arg == 'gtk-gl':
 self.qemu_opt_script += ' -device virtio-gpu-pci,virgl=on 
-display gtk,gl=on'
 elif arg == 'gtk-gl-es':
-- 
2.23.0

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


[OE-core] [PATCH 9/11] oeqa/utils/nfs: Add unfs_server function to setup a userspace NFS server

2019-08-27 Thread Nathan Rossi
Add a nfs module into oeqa utils. This module provides unfs_server which
allows a test case to build unfs3-native and setup the unfs server on a
target directory of the host. This directory is then shared and can be
mounted by the host or a target device attached to the host (e.g. qemu
via tap or slirp). The nfs server is setup over UDP and automatically
assigns user privileged ports. The function provides the UDP ports for
the server as part of a returned python contextmanager which handles
cleanup of the server process on completion or exception.

Also add a 'udp' arg to get_free_port to get a free UDP port.

Note: unfs3 still requires the host to have rpcbind or portmap running.

Signed-off-by: Nathan Rossi 
---
 meta/lib/oeqa/utils/network.py |  4 ++--
 meta/lib/oeqa/utils/nfs.py | 39 +++
 2 files changed, 41 insertions(+), 2 deletions(-)
 create mode 100644 meta/lib/oeqa/utils/nfs.py

diff --git a/meta/lib/oeqa/utils/network.py b/meta/lib/oeqa/utils/network.py
index 59cbbc4f1b..59d01723a1 100644
--- a/meta/lib/oeqa/utils/network.py
+++ b/meta/lib/oeqa/utils/network.py
@@ -4,8 +4,8 @@
 
 import socket
 
-def get_free_port():
-s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+def get_free_port(udp = False):
+s = socket.socket(socket.AF_INET, socket.SOCK_STREAM if not udp else 
socket.SOCK_DGRAM)
 s.bind(('', 0))
 addr = s.getsockname()
 s.close()
diff --git a/meta/lib/oeqa/utils/nfs.py b/meta/lib/oeqa/utils/nfs.py
new file mode 100644
index 00..a37686c914
--- /dev/null
+++ b/meta/lib/oeqa/utils/nfs.py
@@ -0,0 +1,39 @@
+# SPDX-License-Identifier: MIT
+import os
+import sys
+import tempfile
+import contextlib
+import socket
+from oeqa.utils.commands import bitbake, get_bb_var, Command
+from oeqa.utils.network import get_free_port
+
+@contextlib.contextmanager
+def unfs_server(directory, logger = None):
+unfs_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "unfs3-native")
+if not os.path.exists(os.path.join(unfs_sysroot, "usr", "bin", "unfsd")):
+# build native tool
+bitbake("unfs3-native -c addto_recipe_sysroot")
+
+exports = None
+cmd = None
+try:
+# create the exports file
+with tempfile.NamedTemporaryFile(delete = False) as exports:
+exports.write("{0} 
(rw,no_root_squash,no_all_squash,insecure)\n".format(directory).encode())
+
+# find some ports for the server
+nfsport, mountport = get_free_port(udp = True), get_free_port(udp = 
True)
+
+nenv = dict(os.environ)
+nenv['PATH'] = 
"{0}/sbin:{0}/usr/sbin:{0}/usr/bin:".format(unfs_sysroot) + nenv.get('PATH', '')
+cmd = Command(["unfsd", "-d", "-p", "-N", "-e", exports.name, "-n", 
str(nfsport), "-m", str(mountport)],
+bg = True, env = nenv, output_log = logger)
+cmd.run()
+yield nfsport, mountport
+finally:
+if cmd is not None:
+cmd.stop()
+if exports is not None:
+# clean up exports file
+os.unlink(exports.name)
+
---
2.23.0.rc1
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 10/11] oeqa/selftest/glibc: Create selftest case for glibc test suite

2019-08-27 Thread Nathan Rossi
Create a oeqa selftest test case to execute the glibc test suite and
report the results. The results are populated into the extraresults
variable of the test case which are written to testresults.json for
resulttool to analyse.

An additional subclass is created to separate the execution with qemu
linux-user and qemu system. The GlibcSelfTestSystemEmulated test case
handles setup of the target image, setup of and NFS server as well as
execution with runqemu.

Signed-off-by: Nathan Rossi 
---
 meta/lib/oeqa/selftest/cases/glibc.py | 91 +++
 1 file changed, 91 insertions(+)
 create mode 100644 meta/lib/oeqa/selftest/cases/glibc.py

diff --git a/meta/lib/oeqa/selftest/cases/glibc.py 
b/meta/lib/oeqa/selftest/cases/glibc.py
new file mode 100644
index 00..5252ebb1b5
--- /dev/null
+++ b/meta/lib/oeqa/selftest/cases/glibc.py
@@ -0,0 +1,91 @@
+# SPDX-License-Identifier: MIT
+import os
+import contextlib
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import bitbake, get_bb_var, get_bb_vars, runqemu, 
Command
+from oeqa.utils.nfs import unfs_server
+
+def parse_values(content):
+for i in content:
+for v in ["PASS", "FAIL", "XPASS", "XFAIL", "UNRESOLVED", 
"UNSUPPORTED", "UNTESTED", "ERROR", "WARNING"]:
+if i.startswith(v + ": "):
+yield i[len(v) + 2:].strip(), v
+break
+
+class GlibcSelfTest(OESelftestTestCase):
+@classmethod
+def setUpClass(cls):
+super().setUpClass()
+if not hasattr(cls.tc, "extraresults"):
+cls.tc.extraresults = {}
+
+def test_glibc(self):
+self.glibc_run_check()
+
+def glibc_run_check(self, ssh = None):
+# configure ssh target
+features = []
+if ssh is not None:
+features.append('BUILD_TEST_TARGET = "ssh"')
+features.append('BUILD_TEST_HOST = "{0}"'.format(ssh))
+features.append('BUILD_TEST_HOST_USER = "root"')
+features.append('BUILD_TEST_HOST_PORT = "22"')
+# force single threaded test execution
+features.append('EGLIBCPARALLELISM_task-check_pn-glibc-testsuite = 
"PARALLELMFLAGS="-j1""')
+self.write_config("\n".join(features))
+
+bitbake("glibc-testsuite -c check")
+
+builddir = get_bb_var("B", "glibc-testsuite")
+
+failed = 0
+with open(os.path.join(builddir, "tests.sum"), "r") as f:
+for test, result in parse_values(f):
+self.tc.extraresults["{}.{}".format(type(self).__name__, 
test)] = {"status" : result}
+if result == "FAIL":
+self.logger.info("failed: '{}'".format(test))
+failed += 1
+self.assertEqual(failed, 0)
+
+class GlibcSelfTestSystemEmulated(GlibcSelfTest):
+default_installed_packages = [
+"glibc-charmaps",
+"libgcc",
+"libstdc++",
+"libatomic",
+"libgomp",
+"python3",
+"python3-pexpect",
+"nfs-utils",
+]
+
+def glibc_run_check(self):
+with contextlib.ExitStack() as s:
+# use the base work dir, as the nfs mount, since the recipe 
directory may not exist
+tmpdir = get_bb_var("BASE_WORKDIR")
+nfsport, mountport = s.enter_context(unfs_server(tmpdir))
+
+# build core-image-minimal with required packages
+features = []
+features.append('IMAGE_FEATURES += "ssh-server-openssh"')
+features.append('CORE_IMAGE_EXTRA_INSTALL += "{0}"'.format(" 
".join(self.default_installed_packages)))
+self.write_config("\n".join(features))
+bitbake("core-image-minimal")
+
+# start runqemu
+qemu = s.enter_context(runqemu("core-image-minimal", runqemuparams 
= "nographic"))
+
+# validate that SSH is working
+status, _ = qemu.run("uname")
+self.assertEqual(status, 0)
+
+# setup nfs mount
+if qemu.run("mkdir -p \"{0}\"".format(tmpdir))[0] != 0:
+raise Exception("Failed to setup NFS mount directory on 
target")
+mountcmd = "mount -o noac,nfsvers=3,port={0},udp,mountport={1} 
\"{2}:{3}\" \"{3}\"".format(nfsport, mountport, qemu.server_ip, tmpdir)
+status, output = qemu.run(mountcmd)
+if status != 0:
+raise Exception("Failed to setup NFS mount on target 
({})".format(repr(output)))
+
+super().glibc_run_check(ssh = qemu.ip)
+
---
2.23.0.rc1
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 11/11] scripts/lib/resulttool/report.py: Add more result types

2019-08-27 Thread Nathan Rossi
Add additional result types into the dictionary to handle dejagnu style
test results. These include PASS, FAIL, XPASS, XFAIL, UNSUPPORTED,
UNTESTED, UNRESOLVED and ERROR.

Signed-off-by: Nathan Rossi 
---
 scripts/lib/resulttool/report.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/scripts/lib/resulttool/report.py b/scripts/lib/resulttool/report.py
index f706280aa7..8b03717d29 100644
--- a/scripts/lib/resulttool/report.py
+++ b/scripts/lib/resulttool/report.py
@@ -19,9 +19,9 @@ class ResultsTextReport(object):
 self.ptests = {}
 self.ltptests = {}
 self.ltpposixtests = {}
-self.result_types = {'passed': ['PASSED', 'passed'],
- 'failed': ['FAILED', 'failed', 'ERROR', 'error', 
'UNKNOWN'],
- 'skipped': ['SKIPPED', 'skipped']}
+self.result_types = {'passed': ['PASSED', 'passed', 'PASS', 'XFAIL'],
+ 'failed': ['FAILED', 'failed', 'FAIL', 'ERROR', 
'error', 'UNKNOWN', 'XPASS'],
+ 'skipped': ['SKIPPED', 'skipped', 'UNSUPPORTED', 
'UNTESTED', 'UNRESOLVED']}
 
 
 def handle_ptest_result(self, k, status, result, machine):
---
2.23.0.rc1
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 6/11] binutils: Fix mips patch which changes default emulation

2019-08-27 Thread Nathan Rossi
The patch incorrectly removes 'mips_elf32_ntrad_le_vec' from the
'targ_selvecs' replacing it with duplicate entries for
'mips_elf32_ntrad_be_vec'. Correct this so that the default binutils can
still handle 'mips_elf32_ntrad_le_vec' binaries.

Signed-off-by: Nathan Rossi 
---
 .../0010-Change-default-emulation-for-mips64-linux.patch | 9 +++--
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git 
a/meta/recipes-devtools/binutils/binutils/0010-Change-default-emulation-for-mips64-linux.patch
 
b/meta/recipes-devtools/binutils/binutils/0010-Change-default-emulation-for-mips64-linux.patch
index ba5e4c2ce5..5f4ac72f48 100644
--- 
a/meta/recipes-devtools/binutils/binutils/0010-Change-default-emulation-for-mips64-linux.patch
+++ 
b/meta/recipes-devtools/binutils/binutils/0010-Change-default-emulation-for-mips64-linux.patch
@@ -1,4 +1,4 @@
-From d540e95d05cd7c4b8924ac7b257c14ae0105d0ab Mon Sep 17 00:00:00 2001
+From 958a49749b772660d3bafb80748829cba6bed065 Mon Sep 17 00:00:00 2001
 From: Khem Raj 
 Date: Mon, 2 Mar 2015 01:44:14 +
 Subject: [PATCH 10/15] Change default emulation for mips64*-*-linux
@@ -14,7 +14,7 @@ Signed-off-by: Khem Raj 
  2 files changed, 8 insertions(+), 8 deletions(-)
 
 diff --git a/bfd/config.bfd b/bfd/config.bfd
-index 0e1ddb659c..cc65547588 100644
+index 0e1ddb659c..d4f50f0a8d 100644
 --- a/bfd/config.bfd
 +++ b/bfd/config.bfd
 @@ -919,12 +919,12 @@ case "${targ}" in
@@ -30,7 +30,7 @@ index 0e1ddb659c..cc65547588 100644
 -targ_defvec=mips_elf32_ntrad_be_vec
 -targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec 
mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
 +targ_defvec=mips_elf64_trad_be_vec
-+targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_be_vec 
mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec"
++targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec 
mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec"
  ;;
mips*el-*-linux*)
  targ_defvec=mips_elf32_trad_le_vec
@@ -54,6 +54,3 @@ index beba17ef51..917be6f8eb 100644
targ_extra_libpath=$targ_extra_emuls ;;
  mips*el-*-linux-*)targ_emul=elf32ltsmip
targ_extra_emuls="elf32btsmip elf32ltsmipn32 
elf64ltsmip elf32btsmipn32 elf64btsmip"
--- 
-2.20.1
-
---
2.23.0.rc1
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 8/11] oeqa/selftest/gcc: Create selftest case for gcc test suite

2019-08-27 Thread Nathan Rossi
Create a oeqa selftest test case to execute the gcc test suites and
report the results. The results are populated into the extraresults
variable of the test case which are written to testresults.json for
resulttool to analyse.

An additional subclass is created to separate the execution with qemu
linux-user and qemu system. The GccSelfTestSystemEmulated test case
handles setup of the target image as well as execution with runqemu.

Signed-off-by: Nathan Rossi 
---
 meta/lib/oeqa/selftest/cases/gcc.py | 107 
 1 file changed, 107 insertions(+)
 create mode 100644 meta/lib/oeqa/selftest/cases/gcc.py

diff --git a/meta/lib/oeqa/selftest/cases/gcc.py 
b/meta/lib/oeqa/selftest/cases/gcc.py
new file mode 100644
index 00..c36637d066
--- /dev/null
+++ b/meta/lib/oeqa/selftest/cases/gcc.py
@@ -0,0 +1,107 @@
+# SPDX-License-Identifier: MIT
+import os
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import bitbake, get_bb_var, get_bb_vars, runqemu, 
Command
+
+def parse_values(content):
+for i in content:
+for v in ["PASS", "FAIL", "XPASS", "XFAIL", "UNRESOLVED", 
"UNSUPPORTED", "UNTESTED", "ERROR", "WARNING"]:
+if i.startswith(v + ": "):
+yield i[len(v) + 2:].strip(), v
+break
+
+class GccSelfTest(OESelftestTestCase):
+@classmethod
+def setUpClass(cls):
+super().setUpClass()
+if not hasattr(cls.tc, "extraresults"):
+cls.tc.extraresults = {}
+
+def gcc_runtime_check_skip(self, suite):
+targets = get_bb_var("RUNTIMETARGET", "gcc-runtime").split()
+if suite not in targets:
+self.skipTest("Target does not use {0}".format(suite))
+
+def test_cross_gcc(self):
+self.gcc_cross_run_check("gcc")
+
+def test_cross_gxx(self):
+self.gcc_cross_run_check("g++")
+
+def test_gcc_runtime_libatomic(self):
+self.gcc_runtime_run_check("libatomic")
+
+def test_gcc_runtime_libgomp(self):
+self.gcc_runtime_run_check("libgomp")
+
+def test_gcc_runtime_libstdcxx(self):
+self.gcc_runtime_run_check("libstdc++-v3")
+
+def test_gcc_runtime_libssp(self):
+self.gcc_runtime_check_skip("libssp")
+self.gcc_runtime_run_check("libssp")
+
+def test_gcc_runtime_libitm(self):
+self.gcc_runtime_check_skip("libitm")
+self.gcc_runtime_run_check("libitm")
+
+def gcc_cross_run_check(self, suite):
+return 
self.gcc_run_check("gcc-cross-{0}".format(get_bb_var("TUNE_ARCH")), suite)
+
+def gcc_runtime_run_check(self, suite):
+return self.gcc_run_check("gcc-runtime", suite, target_prefix = 
"check-target-")
+
+def gcc_run_check(self, recipe, suite, target_prefix = "check-", ssh = 
None):
+target = target_prefix + suite.replace("gcc", "gcc").replace("g++", 
"c++")
+
+# configure ssh target
+features = []
+features.append('MAKE_CHECK_TARGETS = "{0}"'.format(target))
+if ssh is not None:
+features.append('BUILD_TEST_TARGET = "ssh"')
+features.append('BUILD_TEST_HOST = "{0}"'.format(ssh))
+features.append('BUILD_TEST_HOST_USER = "root"')
+features.append('BUILD_TEST_HOST_PORT = "22"')
+self.write_config("\n".join(features))
+
+bitbake("{0} -c check".format(recipe))
+
+bb_vars = get_bb_vars(["TUNE_ARCH", "B", "TARGET_SYS"], recipe)
+tune_arch, builddir, target_sys = bb_vars["TUNE_ARCH"], bb_vars["B"], 
bb_vars["TARGET_SYS"]
+
+sumspath = os.path.join(builddir, "gcc", "testsuite", suite, 
"{0}.sum".format(suite))
+if not os.path.exists(sumspath): # check in target dirs
+sumspath = os.path.join(builddir, target_sys, suite, "testsuite", 
"{0}.sum".format(suite))
+if not os.path.exists(sumspath): # handle libstdc++-v3 -> libstdc++
+sumspath = os.path.join(builddir, target_sys, suite, "testsuite", 
"{0}.sum".format(suite.split("-")[0]))
+
+failed = 0
+with open(sumspath, "r") as f:
+for test, result in parse_values(f):
+self.tc.extraresults["{}.{}.{}".format(type(self).__name__, 
suite, test)] = {"status" : result}
+if result == "FAIL":
+self.logger.info("failed: '{}'".format(test))
+failed += 1
+self.assertEqual(failed, 0)
+
+class GccSelfTestSystemEmulated(GccSelfTest):
+default_installed_packages = ["libgcc", "libstdc++", "libatomic", 
"libgomp"]
+
+def gcc_run_check(self, *args, **kwargs):
+tune_arch = get_bb_var("TUNE_ARCH")
+
+# build core-image-minimal with required packages
+features = []
+features.append('IMAGE_FEATURES += "ssh-server-openssh"')
+features.append('CORE_IMAGE_EXTRA_INSTALL += "{0}"'.format(" 
".join(self.default_installed_packages)))
+self.write_config("\n".join(features))
+

[OE-core] [PATCH 7/11] oeqa/selftest/binutils: Create selftest case for binutils test suite

2019-08-27 Thread Nathan Rossi
Create a oeqa selftest test case to execute the binutils test suites and
report the results. The results are populated into the extraresults
variable of the test case which are written to testresults.json for
resulttool to analyse.

Signed-off-by: Nathan Rossi 
---
 meta/lib/oeqa/selftest/cases/binutils.py | 95 
 1 file changed, 95 insertions(+)
 create mode 100644 meta/lib/oeqa/selftest/cases/binutils.py

diff --git a/meta/lib/oeqa/selftest/cases/binutils.py 
b/meta/lib/oeqa/selftest/cases/binutils.py
new file mode 100644
index 00..5cb7e106ac
--- /dev/null
+++ b/meta/lib/oeqa/selftest/cases/binutils.py
@@ -0,0 +1,95 @@
+# SPDX-License-Identifier: MIT
+import os
+import sys
+import re
+import logging
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import bitbake, get_bb_var, get_bb_vars
+
+def parse_values(content, gold = False):
+suffix = ": " if not gold else " "
+for i in content:
+for v in ["PASS", "FAIL", "XPASS", "XFAIL", "UNRESOLVED", 
"UNSUPPORTED", "UNTESTED", "ERROR", "WARNING"]:
+if i.startswith(v + suffix):
+name = i[len(v) + len(suffix):].strip()
+if v == "FAIL" and gold: # clean off exit status on gold
+name = name.split(" (exit status:")[0]
+yield name, v
+break
+
+class BinutilsCrossSelfTest(OESelftestTestCase):
+@classmethod
+def setUpClass(cls):
+super().setUpClass()
+if not hasattr(cls.tc, "extraresults"):
+cls.tc.extraresults = {}
+
+def test_binutils(self):
+self.run_binutils("binutils")
+
+def test_gas(self):
+self.run_binutils("gas")
+
+def test_ld(self):
+self.run_binutils("ld")
+
+def test_gold(self):
+self.run_binutils("gold")
+
+def test_libiberty(self):
+self.run_binutils("libiberty")
+
+def run_binutils(self, suite):
+features = []
+features.append('MAKE_CHECK_TARGETS = "check-{0}"'.format(suite))
+self.write_config("\n".join(features))
+
+tune_arch = get_bb_var("TUNE_ARCH")
+recipe = "binutils-cross-{0}".format(tune_arch)
+bb_vars = get_bb_vars(["B", "TARGET_SYS", "T"], recipe)
+builddir, target_sys, tdir = bb_vars["B"], bb_vars["TARGET_SYS"], 
bb_vars["T"]
+
+bitbake("{0} -c check".format(recipe))
+
+failed = 0
+def add_result(test, result):
+nonlocal failed
+self.tc.extraresults["binutils.{}.{}".format(suite, test)] = 
{"status" : result}
+if result == "FAIL":
+self.logger.info("failed: '{}'".format(test))
+failed += 1
+
+if suite in ["binutils", "gas", "ld"]:
+sumspath = os.path.join(builddir, suite, "{0}.sum".format(suite))
+if not os.path.exists(sumspath):
+sumspath = os.path.join(builddir, suite, "testsuite", 
"{0}.sum".format(suite))
+with open(sumspath, "r") as f:
+for test, result in parse_values(f):
+add_result(test, result)
+elif suite in ["gold"]:
+# gold tests are not dejagnu, so no sums file
+logspath = os.path.join(builddir, suite, "testsuite")
+if os.path.exists(logspath):
+for t in os.listdir(logspath):
+if not t.endswith(".log") or t == "test-suite.log":
+continue
+with open(os.path.join(logspath, t), "r") as f:
+for test, result in parse_values(f, gold = True):
+add_result(test, result)
+else:
+self.skipTest("Target does not use {0}".format(suite))
+elif suite in ["libiberty"]:
+# libiberty tests are not dejagnu, no sums or log files
+logpath = os.path.join(tdir, "log.do_check")
+if os.path.exists(logpath):
+with open(logpath, "r") as f:
+logdata = f.read()
+m = re.search(r"entering 
directory\s+'[^\r\n]+?libiberty/testsuite'.*?$(.*?)" +
+"^[^\r\n]+?leaving 
directory\s+'[^\r\n]+?libiberty/testsuite'.*?$",
+logdata, re.DOTALL | re.MULTILINE | re.IGNORECASE)
+if m is not None:
+for test, result in parse_values(m.group(1).splitlines()):
+add_result(test, result)
+
+self.assertEqual(failed, 0)
+
---
2.23.0.rc1
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 3/11] gcc-runtime: Add do_check task for executing gcc-runtime test suites

2019-08-27 Thread Nathan Rossi
Add a do_check task to implement execution of the gcc-runtime component
test suites. The component test suites require execution of compiled
programs on the target, this recipe reuses the same setup as gcc-cross
for setup of the target (either as ssh or qemu linux-user).

Signed-off-by: Nathan Rossi 
---
 meta/recipes-devtools/gcc/gcc-runtime.inc | 37 +++
 1 file changed, 37 insertions(+)

diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc 
b/meta/recipes-devtools/gcc/gcc-runtime.inc
index 22c1d78dd1..ce0b5e482d 100644
--- a/meta/recipes-devtools/gcc/gcc-runtime.inc
+++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
@@ -277,3 +277,40 @@ FILES_libitm-dev = "\
 SUMMARY_libitm-dev = "GNU transactional memory support library - development 
files"
 FILES_libitm-staticdev = "${libdir}/libitm.a"
 SUMMARY_libitm-staticdev = "GNU transactional memory support library - static 
development files"
+
+require gcc-testsuite.inc
+
+EXTRA_OEMAKE_prepend_task-check = "${PARALLEL_MAKE} "
+
+MAKE_CHECK_TARGETS ??= "${@" ".join("check-target-" + i for i in 
d.getVar("RUNTIMETARGET").split())}"
+MAKE_CHECK_IGNORE ??= "prettyprinters.exp xmethods.exp"
+MAKE_CHECK_RUNTESTFLAGS ??= "${MAKE_CHECK_BOARDARGS} --ignore 
'${MAKE_CHECK_IGNORE}'"
+
+# specific host and target dependencies required for test suite running
+do_check[depends] += "dejagnu-native:do_populate_sysroot 
expect-native:do_populate_sysroot"
+do_check[depends] += "virtual/libc:do_populate_sysroot"
+# only depend on qemu if targeting linux user execution
+do_check[depends] += "${@'qemu-native:do_populate_sysroot' if "user" in 
d.getVar('BUILD_TEST_TARGET') else ''}"
+# extend the recipe sysroot to include the built libraries (for qemu usermode)
+do_check[prefuncs] += "extend_recipe_sysroot"
+do_check[prefuncs] += "check_prepare"
+do_check[dirs] = "${WORKDIR}/dejagnu ${B}"
+do_check[nostamp] = "1"
+do_check() {
+export DEJAGNU="${WORKDIR}/dejagnu/site.exp"
+
+# HACK: this works around the configure setting CXX with -nostd* args
+sed -i 's/-nostdinc++ -nostdlib++//g' $(find ${B} -name testsuite_flags | 
head -1)
+
+if [ "${BUILD_TEST_TARGET}" = "user" ]; then
+# qemu user has issues allocating large amounts of memory
+export G_SLICE=always-malloc
+# no test should need more that 10G of memory, this prevents tests 
like pthread7-rope from leaking memory
+ulimit -m 4194304
+ulimit -v 10485760
+fi
+
+oe_runmake -i ${MAKE_CHECK_TARGETS} 
RUNTESTFLAGS="${MAKE_CHECK_RUNTESTFLAGS}"
+}
+addtask check after do_compile do_populate_sysroot
+
---
2.23.0.rc1
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 1/11] binutils: Add do_check task for executing binutils test suite

2019-08-27 Thread Nathan Rossi
Create the do_check task to the binutils-cross include. This task can be
used to execute the binutils test suite for the cross target binutils.
By default this executes all the check targets of the binutils Makefile,
this can however be changed by setting MAKE_CHECK_TARGETS to the desired
test suite target (e.g. check-gas).

The binutils test suites do not require any target execution, as such
the check target can be run without QEMU or a target device. However
since the binutils tests do rely on a C compiler there is dependence on
both gcc and libc in order to run the tests.

Signed-off-by: Nathan Rossi 
---
 meta/recipes-devtools/binutils/binutils-cross.inc | 28 +++
 1 file changed, 28 insertions(+)

diff --git a/meta/recipes-devtools/binutils/binutils-cross.inc 
b/meta/recipes-devtools/binutils/binutils-cross.inc
index 02ec891606..76eb453f0e 100644
--- a/meta/recipes-devtools/binutils/binutils-cross.inc
+++ b/meta/recipes-devtools/binutils/binutils-cross.inc
@@ -36,3 +36,31 @@ do_install () {
rmdir ${D}${STAGING_DIR_NATIVE}${prefix_native}/${libdir}64 || :
rmdir ${D}${STAGING_DIR_NATIVE}${prefix_native}/${prefix} || :
 }
+
+EXTRA_OEMAKE_prepend_task-check = "${PARALLEL_MAKE} "
+MAKE_CHECK_TARGETS ??= "check-binutils check-gas check-gold check-ld 
check-libiberty"
+
+python () {
+# crosssdk deps have different virtual targets
+if bb.data.inherits_class('crosssdk', d):
+d.appendVarFlag("do_check", "depends", " 
virtual/${TARGET_PREFIX}gcc-crosssdk:do_populate_sysroot")
+d.appendVarFlag("do_check", "depends", " 
virtual/nativesdk-${TARGET_PREFIX}compilerlibs:do_populate_sysroot")
+else:
+d.appendVarFlag("do_check", "depends", " 
virtual/${TARGET_PREFIX}gcc:do_populate_sysroot")
+d.appendVarFlag("do_check", "depends", " 
virtual/${TARGET_PREFIX}compilerlibs:do_populate_sysroot")
+}
+
+do_check[depends] += "dejagnu-native:do_populate_sysroot 
expect-native:do_populate_sysroot"
+do_check[depends] += "virtual/libc:do_populate_sysroot"
+do_check[dirs] = "${B}"
+do_check[nostamp] = "1"
+do_check() {
+# need to inject CC and CXX as the target CC and CXX with sysroot
+oe_runmake -i ${MAKE_CHECK_TARGETS} \
+RUNTESTFLAGS=" \
+CC='${TARGET_PREFIX}gcc --sysroot=${STAGING_DIR_TARGET} 
${TUNE_CCARGS}' \
+CXX='${TARGET_PREFIX}g++ --sysroot=${STAGING_DIR_TARGET} 
${TUNE_CCARGS}' \
+"
+}
+addtask check after do_compile
+
---
2.23.0.rc1
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 4/11] gcc-common.inc: Process staging fixme with correct target/native sysroot

2019-08-27 Thread Nathan Rossi
Correct the 'staging_processfixme' call so that target sysroot and
native sysroot paths are corrected when extracting the stashed build
directory. This is required for 'make check' to work correctly due paths
used in configuration and scripts which point at the native sysroot.

Signed-off-by: Nathan Rossi 
---
 meta/recipes-devtools/gcc/gcc-common.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-devtools/gcc/gcc-common.inc 
b/meta/recipes-devtools/gcc/gcc-common.inc
index 96334e54b4..a8f4b60c32 100644
--- a/meta/recipes-devtools/gcc/gcc-common.inc
+++ b/meta/recipes-devtools/gcc/gcc-common.inc
@@ -17,7 +17,7 @@ python extract_stashed_builddir () {
 src = 
d.expand("${COMPONENTS_DIR}/${BUILD_ARCH}/gcc-stashed-builddir-${TARGET_SYS}")
 dest = d.getVar("B")
 oe.path.copyhardlinktree(src, dest)
-staging_processfixme([src + "/fixmepath"], dest, dest, dest, d)
+staging_processfixme([src + "/fixmepath"], dest, 
d.getVar("RECIPE_SYSROOT"), d.getVar("RECIPE_SYSROOT_NATIVE"), d)
 }
 
 def get_gcc_float_setting(bb, d):
---
2.23.0.rc1
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 2/11] gcc-cross: Add do_check task for executing gcc test suite

2019-08-27 Thread Nathan Rossi
Add a do_check task and supporting configuration to implement execution
of the gcc compiler test suite. The test suite requires execution of
compiled programs.

The implementation provided allows for execution testing against a host
via SSH or within the local build environment using qemu linux-user
execution. The selection of execution is done via the BUILD_TEST_TARGET
variable, and configuration of the remote host is done with the
BUILD_TEST_HOST, BUILD_TEST_HOST_USER and BUILD_TEST_HOST_PORT
variables.

By default the do_check task will execute all check targets, this can be
changed by setting MAKE_CHECK_TARGETS to the desired test suite target
(e.g. check-gcc or check-g++).

Signed-off-by: Nathan Rossi 
---
 meta/recipes-devtools/gcc/gcc-cross.inc |  41 +++
 meta/recipes-devtools/gcc/gcc-testsuite.inc | 106 
 2 files changed, 147 insertions(+)
 create mode 100644 meta/recipes-devtools/gcc/gcc-testsuite.inc

diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc 
b/meta/recipes-devtools/gcc/gcc-cross.inc
index 6222c2e8c9..f9534340d2 100644
--- a/meta/recipes-devtools/gcc/gcc-cross.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross.inc
@@ -221,3 +221,44 @@ python do_gcc_stash_builddir_setscene () {
 sstate_setscene(d)
 }
 addtask do_gcc_stash_builddir_setscene
+
+require gcc-testsuite.inc
+
+check_prepare_sysroot () {
+if [ ! -s ${RECIPE_SYSROOT}${target_includedir}/limits.h ]; then
+# this file was created by the configure task, but is replaced by the
+# libc version when populating the sysroot for the do_check task
+rm ${RECIPE_SYSROOT}${target_includedir}/limits.h
+fi
+}
+
+EXTRA_OEMAKE_prepend_task-check = "${PARALLEL_MAKE} "
+
+MAKE_CHECK_TARGETS ??= "check-gcc check-g++ check-lto"
+
+python () {
+# crosssdk deps have different virtual targets
+if bb.data.inherits_class('crosssdk', d):
+d.appendVarFlag("do_check", "depends", " 
virtual/nativesdk-${TARGET_PREFIX}compilerlibs:do_populate_sysroot")
+else:
+d.appendVarFlag("do_check", "depends", " 
virtual/${TARGET_PREFIX}compilerlibs:do_populate_sysroot")
+}
+
+# specific host and target dependencies required for test suite running
+do_check[depends] += "dejagnu-native:do_populate_sysroot 
expect-native:do_populate_sysroot"
+do_check[depends] += "virtual/libc:do_populate_sysroot"
+# only depend on qemu if targeting linux user execution
+do_check[depends] += "${@'qemu-native:do_populate_sysroot' if "user" in 
d.getVar('BUILD_TEST_TARGET') else ''}"
+# check_prepare_sysroot is before extend in order to perform the limits.h 
removal
+do_check[prefuncs] += "check_prepare_sysroot"
+do_check[prefuncs] += "extend_recipe_sysroot"
+do_check[prefuncs] += "check_prepare"
+do_check[dirs] = "${WORKDIR}/dejagnu ${B}"
+do_check[nostamp] = "1"
+do_check() {
+export DEJAGNU="${WORKDIR}/dejagnu/site.exp"
+
+oe_runmake -i -C ${B}/gcc ${MAKE_CHECK_TARGETS} 
RUNTESTFLAGS="${MAKE_CHECK_BOARDARGS}"
+}
+addtask check after do_compile do_populate_sysroot
+
diff --git a/meta/recipes-devtools/gcc/gcc-testsuite.inc 
b/meta/recipes-devtools/gcc/gcc-testsuite.inc
new file mode 100644
index 00..f9924f2d86
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-testsuite.inc
@@ -0,0 +1,106 @@
+inherit qemu
+
+BUILD_TEST_TARGET ??= "user"
+BUILD_TEST_HOST ??= "localhost"
+BUILD_TEST_HOST_USER ??= "root"
+BUILD_TEST_HOST_PORT ??= ""
+
+MAKE_CHECK_BOARDFLAGS ??= ""
+MAKE_CHECK_BOARDARGS ??= 
"--target_board=${BUILD_TEST_TARGET}${MAKE_CHECK_BOARDFLAGS}"
+
+python () {
+# Provide the targets compiler args via targets options. This allows 
dejagnu to
+# correctly mark incompatible tests as UNSUPPORTED (e.g. needs soft-float
+# but running on hard-float target).
+#
+# These options are called "multilib_flags" within the gcc test suite. Most
+# architectures handle these options in a sensible way such that tests that
+# are incompatible with the provided multilib are marked as UNSUPPORTED.
+#
+# Note: multilib flags are added to the compile command after the args
+# provided by any test (through dg-options), CFLAGS_FOR_TARGET is always
+# added to the compile command before any other args but is not interpted
+# as options like multilib flags.
+#
+# i686, x86-64 and aarch64 are special, since most toolchains built for
+# these targets don't do multilib the tests do not get correctly marked as
+# UNSUPPORTED. More importantly the test suite itself does not handle
+# overriding the multilib flags where it could (like other archs do). As
+# such do not pass the target compiler args for these targets.
+args = d.getVar("TUNE_CCARGS").split()
+if d.getVar("TUNE_ARCH") in ["i686", "x86_64", "aarch64"]:
+args = []
+d.setVar("MAKE_CHECK_BOARDFLAGS", ("/" + "/".join(args)) if len(args) != 0 
else "")
+}
+
+python check_prepare() {
+def generate_qemu_linux_user_config(d):
+content = []
+

[OE-core] [PATCH 5/11] glibc-testsuite: Create a recipe to implement glibc test suite

2019-08-27 Thread Nathan Rossi
A recipe needs to be created for the test suite due to the dependency
chain between libgcc -> glibc -> libgcc-initial, and the requirements of
the test suite to have libgcc for compilation and execution.

The glibc test suite does not use dejagnu like the gcc test suites do.
Instead a test wrapper script is used along with the assumed dependency
of having the same filesystem available on build host and target. For
qemu linux-user the same filesystem is inherently available, for remote
targets NFS is used. Separate test wrapper scripts are created for qemu
linux-user or ssh targets, with the same BUILD_TEST_* variables used for
configuration.

Signed-off-by: Nathan Rossi 
---
 meta/recipes-core/glibc/glibc-testsuite_2.30.bb  | 51 +
 meta/recipes-core/glibc/glibc/check-test-wrapper | 71 
 2 files changed, 122 insertions(+)
 create mode 100644 meta/recipes-core/glibc/glibc-testsuite_2.30.bb
 create mode 100644 meta/recipes-core/glibc/glibc/check-test-wrapper

diff --git a/meta/recipes-core/glibc/glibc-testsuite_2.30.bb 
b/meta/recipes-core/glibc/glibc-testsuite_2.30.bb
new file mode 100644
index 00..665619377d
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-testsuite_2.30.bb
@@ -0,0 +1,51 @@
+require glibc_${PV}.bb
+
+# handle PN differences
+FILESEXTRAPATHS_prepend := "${THISDIR}/glibc:"
+
+# strip provides
+PROVIDES = ""
+# setup depends
+INHIBIT_DEFAULT_DEPS = ""
+
+DEPENDS += "glibc-locale libgcc gcc-runtime"
+
+# remove the initial depends
+DEPENDS_remove = "libgcc-initial"
+
+inherit qemu
+
+SRC_URI += "file://check-test-wrapper"
+
+DEPENDS += "${@'qemu-native' if d.getVar('BUILD_TEST_TARGET') == 'user' else 
''}"
+
+BUILD_TEST_TARGET ??= "user"
+BUILD_TEST_HOST ??= "localhost"
+BUILD_TEST_HOST_USER ??= "root"
+BUILD_TEST_HOST_PORT ??= ""
+
+do_check[dirs] += "${B}"
+do_check[nostamp] = "1"
+do_check () {
+chmod 0755 ${WORKDIR}/check-test-wrapper
+
+# clean out previous test results
+oe_runmake tests-clean
+# makefiles don't clean entirely (and also sometimes fails due to too many 
args)
+find ${B} -type f -name "*.out" -delete
+find ${B} -type f -name "*.test-result" -delete
+find ${B}/catgets -name "*.cat" -delete
+find ${B}/conform -name "symlist-*" -delete
+[ ! -e ${B}/timezone/testdata ] || rm -rf ${B}/timezone/testdata
+
+oe_runmake -i \
+QEMU_SYSROOT="${RECIPE_SYSROOT}" \
+QEMU_OPTIONS="${@qemu_target_binary(d)} ${QEMU_OPTIONS}" \
+SSH_HOST="${BUILD_TEST_HOST}" \
+SSH_HOST_USER="${BUILD_TEST_HOST_USER}" \
+SSH_HOST_PORT="${BUILD_TEST_HOST_PORT}" \
+test-wrapper="${WORKDIR}/check-test-wrapper ${BUILD_TEST_TARGET}" \
+check
+}
+addtask do_check after do_compile
+
diff --git a/meta/recipes-core/glibc/glibc/check-test-wrapper 
b/meta/recipes-core/glibc/glibc/check-test-wrapper
new file mode 100644
index 00..f8e04e02d2
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc/check-test-wrapper
@@ -0,0 +1,71 @@
+#!/usr/bin/env python3
+import sys
+import os
+import subprocess
+
+env = os.environ.copy()
+args = sys.argv[1:]
+targettype = args.pop(0)
+
+if targettype == "user":
+qemuargs = os.environ.get("QEMU_OPTIONS", "").split()
+if not os.path.exists(qemuargs[0]):
+# ensure qemu args has a valid absolute path
+for i in os.environ.get("PATH", "").split(":"):
+if os.path.exists(os.path.join(i, qemuargs[0])):
+qemuargs[0] = os.path.join(i, qemuargs[0])
+break
+sysroot = os.environ.get("QEMU_SYSROOT", None)
+if not sysroot:
+sys.exit(-1)
+libpaths = [sysroot + "/usr/lib", sysroot + "/lib"]
+
+if args[0] == "env":
+args.pop(0)
+if len(args) == 0:
+args = ["env"]
+else:
+# process options
+while args[0].startswith("-"):
+opt = args.pop(0).lstrip("-")
+if "i" in opt:
+env.clear()
+# process environment vars
+while "=" in args[0]:
+key, val = args.pop(0).split("=", 1)
+if key == "LD_LIBRARY_PATH":
+libpaths += val.split(":")
+else:
+env[key] = val
+if args[0] == "cp":
+# ignore copies, the filesystem is the same
+sys.exit(0)
+
+qemuargs += ["-L", sysroot]
+qemuargs += ["-E", "LD_LIBRARY_PATH={}".format(":".join(libpaths))]
+command = qemuargs + args
+elif targettype == "ssh":
+host = os.environ.get("SSH_HOST", None)
+user = os.environ.get("SSH_HOST_USER", None)
+port = os.environ.get("SSH_HOST_PORT", None)
+
+command = ["ssh", "-o", "UserKnownHostsFile=/dev/null", "-o", 
"StrictHostKeyChecking=no"]
+if port:
+command += ["-p", str(port)]
+if not host:
+sys.exit(-1)
+command += ["{}@{}".format(user, host) if user else host]
+
+# wrap and replace quotes for correct 

[OE-core] [PATCH 0/11] Add gnu testsuite execution for OEQA

2019-08-27 Thread Nathan Rossi
This series adds support to execute the gnu test suites for binutils,
gcc and glibc. With the intention for enabling automated test running of
these test suites within the OEQA framework such that they can be
executed by the Yocto Autobuilder.

The test suites covered need significant resources or build artifacts
such that running them on the target is undesirable which rules out the
use of ptest. Because of this the test suites can be run on the build
host and call out to the target for execution (via ssh or using qemu
usermode).

The following implementation adds a do_check task to binutils-cross,
gcc-cross and gcc-runtime in order to execute the test suite on the
build host. For glibc, a second recipe is created which includes the
base glibc recipe. The reason for this is due to the libgcc -> glibc
-> libgcc-initial dependency chain and the requirements of the test
suite to have libgcc for compilation and execution testing.

Target execution is another important issue specifically since target
execution is slow to extremely slow depending on the physical or
emulated target performance. In order to provide faster execution
performance qemu linux-user is implemented alongside qemu system
emulation (via ssh+nfs). In initial testing qemu linux user vs qemu
system emulation provided performance gains of between 10x to 60x whilst
initially having small pass/fail differences. Further work as covered in
this series reduces the pass/fail differences for gcc/gcc-runtime close
to 0, which can be further reduced by marking known failures with test
result filtering.

However glibc is more strict with its expectations of CPU implementation
as well as syscall behaviour. Additionally glibc expects to be able to
execute OS tools such as 'sh' and 'echo' of which is not easy to provide
in the recipe-sysroot (bindir is not populated into the sysroot). As
such correct test results for glibc rely on execution with qemu system
emulation or on a physical target. This series however still includes
qemu user execution for glibc which can be useful (especially on slow
targets) assuming the known failing tests are excluded.

   | binutils   | gas| gold  | ld| libiberty
arm|0/  201 |0/  862 |   0/   26 |   1/ 1587 |   0/   28
arm64  |0/  200 |0/  442 |   0/9 |   0/ 1591 |   0/   28
mips   |0/  224 |0/ 7214 |   1/5 |  21/ 1786 |   0/   28
ppc|0/  197 |1/  264 |   0/5 |   0/ 1492 |   0/   28
x86-64 |0/  243 |0/ 1185 |   0/   11 |   0/ 2085 |   0/   28

   | gcc| g++| libatomic | libgomp   | libitm| 
libstdc++-v3
arm|  31/121900 |   1/127963 |   0/   49 |   0/ 2519 |   0/   46 | 
19/12814
arm64  |  32/129632 |   0/128539 |   0/   54 |   0/ 2519 |   0/   46 |  
1/12813
mips   | 138/132198 |  20/127706 |   0/   49 |   2/ 2519 |   | 
24/12810
ppc| 356/119730 |  19/128635 |   0/   49 |   2/ 2519 |   0/   46 | 
33/13020
x86-64 |  44/135082 |   0/131493 |   0/   54 |   0/ 2526 |   0/   46 |  
6/13037
x86-64-kvm |  29/135322 |   0/131493 |   0/   54 |   1/ 2526 |  18/   46 | 
49/13034

   | glibc
arm|   65/ 5240
arm64  |   76/ 5994
mips   |   79/ 5199
ppc| 1223/ 5254
x86-64 | 1457/ 6101
x86-64-kvm |   47/ 6092

This series also introduces some OEQA test cases which cover running the
test suites. The test cases are split into binutils, gcc and glibc.
Individual test cases provide execution of the sub-suites of tests
within each target. For example binutils has binutils, gas, gold, ld and
libiberty suites which can each be executed independently.

The test cases populate the individual test suite test cases into the
testresults so that resulttool can analyse them. Filtering of the failed
test cases where expected failures occur is not included in this series.

The OEQA test cases implement execution on qemu linux user by default.
Subclasses implement qemu system emulation setup and configuration for
running the tests.
---

Nathan Rossi (11):
  binutils: Add do_check task for executing binutils test suite
  gcc-cross: Add do_check task for executing gcc test suite
  gcc-runtime: Add do_check task for executing gcc-runtime test suites
  gcc-common.inc: Process staging fixme with correct target/native
sysroot
  glibc-testsuite: Create a recipe to implement glibc test suite
  binutils: Fix mips patch which changes default emulation
  oeqa/selftest/binutils: Create selftest case for binutils test suite
  oeqa/selftest/gcc: Create selftest case for gcc test suite
  oeqa/utils/nfs: Add unfs_server function to setup a userspace NFS
server
  oeqa/selftest/glibc: Create selftest case for glibc test suite
  scripts/lib/resulttool/report.py: Add more result types

 meta/lib/oeqa/selftest/cases/binutils.py  |  95 
 meta/lib/oeqa/selftest/cases/gcc.py   | 107 ++
 

[OE-core] ✗ patchtest: failure for runqemu: Change to use -device virtio-gpu-pci instead of -vga virtio

2019-08-27 Thread Patchwork
== Series Details ==

Series: runqemu: Change to use -device virtio-gpu-pci instead of -vga virtio
Revision: 1
URL   : https://patchwork.openembedded.org/series/19516/
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:



* Patchrunqemu: Change to use -device virtio-gpu-pci instead of 
-vga virtio
 Issue Patch is missing Signed-off-by [test_signed_off_by_presence] 
  Suggested fixSign off the patch (either manually or with "git commit 
--amend -s")



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] -> ...).

---
Guidelines: 
https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest
Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe

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


[OE-core] [PATCH] runqemu: Change to use -device virtio-gpu-pci instead of -vga virtio

2019-08-27 Thread shohei.maruyama
If using qemu-system-aarch64 or qemu-system-arm with the options, an error
occured as follows:

  qemu-system-aarch64: Virtio VGA not available

this commit fixes the error to use -device virtio-gpu-pci instead of
-vga virtio.
---
 scripts/runqemu | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index 19fd521cd9..28ecee97a7 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -398,11 +398,11 @@ class BaseConfig(object):
 elif arg == 'sdl':
 self.qemu_opt_script += ' -display sdl'
 elif arg == 'gtk-gl':
-self.qemu_opt_script += ' -vga virtio -display gtk,gl=on'
+self.qemu_opt_script += ' -device virtio-gpu-pci,virgl=on 
-display gtk,gl=on'
 elif arg == 'gtk-gl-es':
-self.qemu_opt_script += ' -vga virtio -display gtk,gl=es'
+self.qemu_opt_script += ' -device virtio-gpu-pci,virgl=on 
-display gtk,gl=es'
 elif arg == 'egl-headless':
-self.qemu_opt_script += ' -vga virtio -display egl-headless'
+self.qemu_opt_script += ' -device virtio-gpu-pci,virgl=on 
-display egl-headless'
 # As runqemu can be run within bitbake (when using testimage, 
for example),
 # we need to ensure that we run host pkg-config, and that it 
does not
 # get mis-directed to native build paths set by bitbake.
-- 
2.23.0

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


Re: [OE-core] [PATCH V3] nfs-utils: decrease RLIMIT_NOFILE to 4k for systemd

2019-08-27 Thread Kang Kai

On 2019/8/28 上午7:29, richard.pur...@linuxfoundation.org wrote:

On Tue, 2019-08-27 at 17:43 +0800, Kang Kai wrote:

Hi Richard,

This patch could fix the test_image failure with systemd. Would like
to
try systemd as default init manager on yocto build again
to check whether any more blocking issues?


There is at least one issue:

https://autobuilder.yoctoproject.org/typhoon/#/builders/67/builds/967

Please monitor this build which should show up any other issues:


Got it. Thanks.




https://autobuilder.yoctoproject.org/typhoon/#/builders/85/builds/645

(master-next was looking green other than this change).


It fails with libedit-native do fetch errors. I'll check it but it seems 
not systemd related at first sight.


Regards,
Kai




Cheers,

Richard




--
Kai Kang

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


Re: [OE-core] [PATCH] serial-getty@.service: Allow device to fast fail if it does not exist

2019-08-27 Thread richard . purdie
On Tue, 2019-08-27 at 19:03 -0500, Jason Wessel wrote:
> 
> On 8/27/19 5:58 PM, Richard Purdie wrote:
> > Hi Jason,
> > Somehow this change is responsible for this build failure:
> > 
> > https://autobuilder.yoctoproject.org/typhoon/#/builders/72/builds/976
> > 
> > (steps 5c and 7c so failure during testimage).
> > 
> > I have bisected it to this change, I haven't looked into why.
> 
> Thanks for tracking it down.   I am sure how to try an duplicate
> this.  I clicked around to try and find out a bit about what it is
> running for these phases of the build but it is not very obvious.
> 
> Is there a local.conf I can try along with what ever commands it ran?

The configuration its using is shown in 
https://autobuilder.yoctoproject.org/typhoon/#/builders/72/builds/978/steps/8/logs/stdio
for each step.

Cheers,

Richard

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


Re: [OE-core] [PATCH] serial-getty@.service: Allow device to fast fail if it does not exist

2019-08-27 Thread Jason Wessel



On 8/27/19 5:58 PM, Richard Purdie wrote:

Hi Jason,
Somehow this change is responsible for this build failure:

https://autobuilder.yoctoproject.org/typhoon/#/builders/72/builds/976

(steps 5c and 7c so failure during testimage).

I have bisected it to this change, I haven't looked into why.



Thanks for tracking it down.   I am sure how to try an duplicate this.  I 
clicked around to try and find out a bit about what it is running for these 
phases of the build but it is not very obvious.

Is there a local.conf I can try along with what ever commands it ran?


Jason.

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


Re: [OE-core] [PATCH V3] nfs-utils: decrease RLIMIT_NOFILE to 4k for systemd

2019-08-27 Thread richard . purdie
On Tue, 2019-08-27 at 17:43 +0800, Kang Kai wrote:
> Hi Richard,
> 
> This patch could fix the test_image failure with systemd. Would like
> to 
> try systemd as default init manager on yocto build again
> to check whether any more blocking issues?


There is at least one issue:

https://autobuilder.yoctoproject.org/typhoon/#/builders/67/builds/967

Please monitor this build which should show up any other issues: 

https://autobuilder.yoctoproject.org/typhoon/#/builders/85/builds/645

(master-next was looking green other than this change).

Cheers,

Richard

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


Re: [OE-core] [PATCH] serial-getty@.service: Allow device to fast fail if it does not exist

2019-08-27 Thread Richard Purdie
On Tue, 2019-08-20 at 17:27 -0700, Jason Wessel wrote:
> Some BSPs use a USB serial port which may or may not actually be
> plugged all the time.  It is quite useful to have a USB serial port
> have a getty running but it does not make sense to wait for it for 90
> seconds before completing the system startup if it might never get
> plugged in.  The typical example is that a USB serial device might
> only need to be plugged in when debugging, upgrading, or initially
> configuring a device.
> 
> This change is somewhat subtle.  Systemd uses the "BindsTo" directive
> to ensure existence of the device in order to start the service as
> well as to terminate the service if the device goes away.  The
> "After"
> directive makes that same relationship stronger, and has the
> undesired
> side effect that systemd will wait until its internal time out value
> for the device to come on line before executing a fail operation or
> letting other tasks and groups continue.  This is certainly the kind
> of behavior we want for a disk, but not for serial ports in general.
> 
> The kernel module loader and device detection will have run a long
> time before the getty startup.  By the time the getty startup occurs
> the system has all the serial devices its going to get.
> 
> If you want to observe the problem with qemu, it is easy to
> replicate.
> Simply add the following line to your local.conf for a x86-64 qemu
> build.
> 
> SERIAL_CONSOLES="115200;ttyS0 115200;ttyUSB0"
> 
> Login right after the system boots and observe:
> 
>root@qemux86-64:~# systemctl list-jobs |cat
>JOB UNIT TYPE  STATE
>  1 multi-user.targetstart waiting
> 69 serial-getty@ttyUSB0.service start waiting
> 64 getty.target start waiting
> 71 dev-ttyUSB0.device   start running
> 62 systemd-update-utmp-runlevel.service start waiting
> 
>5 jobs listed.
> 
> You can see above that the dev-ttyUSB0.device will block for 1min 30
> seconds.  While that might not be a problem for this reference build.
> It is certainly a problem for images that have software watchdogs
> that
> verify the system booted up all the way to systemd completion in less
> than 90 seconds.
> 
> This other nice effect of this change is that the fast fail device
> extend to additional serial ports that may not exist on ARM BSPs or
> that might be configured in or out by the dtb files on different
> boards.
> 
> Signed-off-by: Jason Wessel 
> ---
>  .../systemd/systemd-serialgetty/serial-getty@.service   | 2
> +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Hi Jason,

Somehow this change is responsible for this build failure:

https://autobuilder.yoctoproject.org/typhoon/#/builders/72/builds/976

(steps 5c and 7c so failure during testimage).

I have bisected it to this change, I haven't looked into why.

Cheers,

Richard

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


Re: [OE-core] [PATCH] insane: improve license checksumming logic

2019-08-27 Thread Andre McCurdy
On Thu, Mar 21, 2019 at 5:30 AM Ross Burton  wrote:
>
> Instead of opening files as bytes and battling decoding to UTF-8 which can 
> throw
> exceptions, open directly as strings and replace invalid codepoints.  This
> handles licenses in encodings which are not UTF-8 but are based on ASCII much
> better.
>
> Also instead of extracting the license lines, writing them to a file, and then
> hashing the file, hash the lines directly.

This change seems to cause a regression in the debug output generated
if LIC_FILES_CHKSUM is wrong. If endline is set incorrectly to include
an empty line beyond the end of the intended license text then that
empty line will no longer be shown between the "vvv" and "^^^" lines
in the debug output... even though the extra line is included in the
md5 calculation.
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 3/5] oeqa: Set LD_LIBRARY_PATH when executing native commands

2019-08-27 Thread Joshua Watt
Some commands like to look for libraries at runtime manually (e.g.
Python's ctype.utils.find_library() function). For this to work
properly, the libraries in the native sysroot must be findable. To
accomplish this, set LD_LIBRARY_PATH to search library paths in the
native sysroot.

Signed-off-by: Joshua Watt 
---
 meta/lib/oeqa/utils/commands.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/meta/lib/oeqa/utils/commands.py b/meta/lib/oeqa/utils/commands.py
index 7140bc73d24..800160ee7e7 100644
--- a/meta/lib/oeqa/utils/commands.py
+++ b/meta/lib/oeqa/utils/commands.py
@@ -172,8 +172,11 @@ def runCmd(command, ignore_status=False, timeout=None, 
assert_error=True,
 if native_sysroot:
 extra_paths = "%s/sbin:%s/usr/sbin:%s/usr/bin" % \
   (native_sysroot, native_sysroot, native_sysroot)
+extra_libpaths = "%s/lib:%s/usr/lib" % \
+ (native_sysroot, native_sysroot)
 nenv = dict(options.get('env', os.environ))
 nenv['PATH'] = extra_paths + ':' + nenv.get('PATH', '')
+nenv['LD_LIBRARY_PATH'] = extra_libpaths + ':' + 
nenv.get('LD_LIBRARY_PATH', '')
 options['env'] = nenv
 
 cmd = Command(command, timeout=timeout, output_log=output_log, **options)
-- 
2.21.0

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


[OE-core] [PATCH 4/5] oeqa: reproducible: Record packages in test results

2019-08-27 Thread Joshua Watt
Records the results of the reproducibility analysis in the JSON test
results file. This makes it easier to do post-test analysis on the
packages.

[YOCTO #13324]

Signed-off-by: Joshua Watt 
---
 meta/lib/oeqa/selftest/cases/reproducible.py | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py 
b/meta/lib/oeqa/selftest/cases/reproducible.py
index 2b8b4e9e88e..ebfa88fbc55 100644
--- a/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -8,6 +8,7 @@ from oeqa.utils.commands import runCmd, bitbake, get_bb_var, 
get_bb_vars
 import functools
 import multiprocessing
 import textwrap
+import json
 import unittest
 
 MISSING = 'MISSING'
@@ -86,6 +87,7 @@ class ReproducibleTests(OESelftestTestCase):
 self.extras = self.tc.extraresults
 
 self.extras.setdefault('reproducible.rawlogs', {})['log'] = ''
+self.extras.setdefault('reproducible', {}).setdefault('files', {})
 
 def append_to_log(self, msg):
 self.extras['reproducible.rawlogs']['log'] += msg
@@ -114,6 +116,10 @@ class ReproducibleTests(OESelftestTestCase):
 result.sort()
 return result
 
+def write_package_list(self, package_class, name, packages):
+self.extras['reproducible']['files'].setdefault(package_class, 
{})[name] = [
+{'reference': p.reference, 'test': p.test} for p in packages]
+
 @unittest.skip("Reproducible builds do not yet pass")
 def test_reproducible_builds(self):
 capture_vars = ['DEPLOY_DIR_' + c.upper() for c in 
self.package_classes]
@@ -162,6 +168,10 @@ class ReproducibleTests(OESelftestTestCase):
 
 self.append_to_log('\n'.join("%s: %s" % (r.status, r.test) for 
r in result.total))
 
+self.write_package_list(package_class, 'missing', 
result.missing)
+self.write_package_list(package_class, 'different', 
result.different)
+self.write_package_list(package_class, 'same', result.same)
+
 if result.missing or result.different:
 self.fail("The following %s packages are missing or 
different: %s" %
 (c, ' '.join(r.test for r in (result.missing + 
result.different
-- 
2.21.0

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


[OE-core] [PATCH 1/5] oeqa: reproducible: Cleanup reproducible build

2019-08-27 Thread Joshua Watt
Cleans up the output from the reproducible build before building to
ensure consistent results. Note that the output put is purposely left
after around after the build so that non-reproducible packages can be
diffed.

Signed-off-by: Joshua Watt 
---
 meta/lib/oeqa/selftest/cases/reproducible.py | 13 ++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py 
b/meta/lib/oeqa/selftest/cases/reproducible.py
index 6dc83d28474..74d94fb20dd 100644
--- a/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -132,16 +132,23 @@ class ReproducibleTests(OESelftestTestCase):
 bitbake("diffutils-native -c addto_recipe_sysroot")
 diffutils_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", 
"diffutils-native")
 
+reproducible_tmp = os.path.join(self.topdir, 'reproducible', 'tmp')
+if os.path.exists(reproducible_tmp):
+bb.utils.remove(reproducible_tmp)
+
 # Perform another build. This build should *not* share sstate or pull
 # from any mirrors, but sharing a DL_DIR is fine
-self.write_config(textwrap.dedent('''\
-TMPDIR = "${TOPDIR}/reproducible/tmp"
+self.write_config((textwrap.dedent('''\
+TMPDIR = "%s"
 SSTATE_DIR = "${TMPDIR}/sstate"
 SSTATE_MIRROR = ""
-''') + common_config)
+''') % reproducible_tmp) + common_config)
 vars_test = get_bb_vars(capture_vars)
 bitbake(' '.join(self.images))
 
+# NOTE: The temp directory from the reproducible build is purposely
+# kept after the build so it can be diffed for debugging.
+
 for c in self.package_classes:
 package_class = 'package_' + c
 
-- 
2.21.0

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


[OE-core] [PATCH 2/5] oeqa: reproducible: Use subTest for packages

2019-08-27 Thread Joshua Watt
Runs each package class reproducibility test in a separate sub-test.
This allows the other sub tests to still run in the event that one
fails.

Signed-off-by: Joshua Watt 
---
 meta/lib/oeqa/selftest/cases/reproducible.py | 21 ++--
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py 
b/meta/lib/oeqa/selftest/cases/reproducible.py
index 74d94fb20dd..2b8b4e9e88e 100644
--- a/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -134,7 +134,7 @@ class ReproducibleTests(OESelftestTestCase):
 
 reproducible_tmp = os.path.join(self.topdir, 'reproducible', 'tmp')
 if os.path.exists(reproducible_tmp):
-bb.utils.remove(reproducible_tmp)
+bb.utils.remove(reproducible_tmp, recurse=True)
 
 # Perform another build. This build should *not* share sstate or pull
 # from any mirrors, but sharing a DL_DIR is fine
@@ -150,18 +150,19 @@ class ReproducibleTests(OESelftestTestCase):
 # kept after the build so it can be diffed for debugging.
 
 for c in self.package_classes:
-package_class = 'package_' + c
+with self.subTest(package_class=c):
+package_class = 'package_' + c
 
-deploy_reference = vars_reference['DEPLOY_DIR_' + c.upper()]
-deploy_test = vars_test['DEPLOY_DIR_' + c.upper()]
+deploy_reference = vars_reference['DEPLOY_DIR_' + c.upper()]
+deploy_test = vars_test['DEPLOY_DIR_' + c.upper()]
 
-result = self.compare_packages(deploy_reference, deploy_test, 
diffutils_sysroot)
+result = self.compare_packages(deploy_reference, deploy_test, 
diffutils_sysroot)
 
-self.logger.info('Reproducibility summary for %s: %s' % (c, 
result))
+self.logger.info('Reproducibility summary for %s: %s' % (c, 
result))
 
-self.append_to_log('\n'.join("%s: %s" % (r.status, r.test) for r 
in result.total))
+self.append_to_log('\n'.join("%s: %s" % (r.status, r.test) for 
r in result.total))
 
-if result.missing or result.different:
-self.fail("The following %s packages are missing or different: 
%s" %
-(c, ' '.join(r.test for r in (result.missing + 
result.different
+if result.missing or result.different:
+self.fail("The following %s packages are missing or 
different: %s" %
+(c, ' '.join(r.test for r in (result.missing + 
result.different
 
-- 
2.21.0

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


[OE-core] [PATCH 5/5] oeqa: Enable reproducible build test

2019-08-27 Thread Joshua Watt
[YOCTO #13323]

Signed-off-by: Joshua Watt 
---
 meta/lib/oeqa/selftest/cases/reproducible.py | 1 -
 1 file changed, 1 deletion(-)

diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py 
b/meta/lib/oeqa/selftest/cases/reproducible.py
index ebfa88fbc55..c6cc0b7d0eb 100644
--- a/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -120,7 +120,6 @@ class ReproducibleTests(OESelftestTestCase):
 self.extras['reproducible']['files'].setdefault(package_class, 
{})[name] = [
 {'reference': p.reference, 'test': p.test} for p in packages]
 
-@unittest.skip("Reproducible builds do not yet pass")
 def test_reproducible_builds(self):
 capture_vars = ['DEPLOY_DIR_' + c.upper() for c in 
self.package_classes]
 
-- 
2.21.0

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


[OE-core] [PATCH 0/5] Enable Reproducible OEQA Tests

2019-08-27 Thread Joshua Watt
Enables the OEQA test for reproducible builds, and reporting of the
results using resulttool

[YOCTO #13323]

Joshua Watt (5):
  oeqa: reproducible: Cleanup reproducible build
  oeqa: reproducible: Use subTest for packages
  oeqa: Set LD_LIBRARY_PATH when executing native commands
  oeqa: reproducible: Record packages in test results
  oeqa: Enable reproducible build test

 meta/lib/oeqa/selftest/cases/reproducible.py | 43 ++--
 meta/lib/oeqa/utils/commands.py  |  3 ++
 2 files changed, 33 insertions(+), 13 deletions(-)

-- 
2.21.0

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


Re: [OE-core] [PATCH 6/6] xz: Remove GPLv3 license checksum

2019-08-27 Thread Mark Hatle
On 8/27/19 1:04 PM, Adrian Bunk wrote:
> On Fri, Aug 16, 2019 at 01:50:14PM -0700, Khem Raj wrote:
>> On Fri, Aug 16, 2019 at 12:46 PM Wes Lindauer  
>> wrote:
>>>
>>> Although xz has some files that are GPLv3 licensed, none of them get
>>> packaged up, and therefore none of it ends up in the final rootfs. Since
>>> there is no GPLv3 code in the final image, we don't want to include it
>>> when we collect licenses, as that would give the incorrect impression
>>> that the image contains GPLv3 code.
>>
>> We will be distributing this in src packages though. Maybe these files
>> should be deleted before the build even starts.
> 
> OE does licence tracking on binary packages, not on source packages.

It tracks -both-.  Since MOST recipes and binary packages agree, people don't
often know this.

LICENSE is the -recipe source license-.  Nothing more nothing less.  It
typically does NOT include the license of things used to build the software
(such as makefiles, autoconf fragments, etc), but must include the license of
any sources that are or may be used to construct binaries.

LICENSE_ is automatically defined as LICENSE.  If a binary package has
a difference license (which must ALWAYS be a subset of the recipe LICENSE), then
it can be specified independently.

See sysfsutils as an example:

LICENSE = "GPLv2 & LGPLv2.1"
LICENSE_${PN} = "GPLv2"
LICENSE_libsysfs = "LGPLv2.1"

recipe is made of of source code consisting of GPLv2 and LGPLv2.1.

The LICENSE_${PN} is expected to be GPLv2, while the LICENSE_libsysfs is
expected to be LGPLv2.1.


The LIC_FILES_CHKSUM is supposed to represent the -recipe- source license.  If
the component is used to build the binaries, then it needs to be listed (but
only has to be listed once).

If the component MIGHT be used, it needs to be listed.

If the component will NOT be used, then it should not be listed (and it's
advised to remove it from the source to avoid accidental usage...)

--Mark


> There are recipes that build binary packages with different licences 
> from the same sources.
> 
> cu
> Adrian
> 

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


Re: [OE-core] Conflict of systemd and sysvinit

2019-08-27 Thread Adrian Bunk
On Mon, Aug 19, 2019 at 12:22:30PM -0500, Mark Hatle wrote:
> On 8/19/19 11:49 AM, Otavio Salvador wrote:
> > On Mon, Aug 19, 2019 at 1:48 PM Mark Hatle  wrote:
> >> On 8/19/19 11:27 AM, Ross Burton wrote:
> >>> On 19/08/2019 11:37, Otavio Salvador wrote:
>  On Sun, Aug 18, 2019 at 11:00 PM Kang Kai  wrote:
> > On 2019/8/18 上午3:27, Otavio Salvador wrote:
> > Would you like to give more detailed steps how the error occurred? And
> > what's extra settings in you local.conf please?
> 
>  I had sysvinit and systemd enabled.
> >>>
> >>> The autobuilder should be exercising this, so when it's fixed we need to
> >>> ensure the AB covers the case Otavio is hitting.
> >>
> >> If they are both enabled what is the expected functionality of the system?
> >> (which is init, etc...)
> > 
> > The image needs to pick the desired ones.
> 
> Ok.. so build both packages.. and then come install time, one or the other 
> must
> be in the PACKAGE_INSTALL (however the image chooses to do this), and the 
> other
> should NOT be included.
> 
> This could be problematic, as I've seen recipes build with systemd 
> dependencies
> in them.  (Both initscripts as well as system health monitoring and such..  
> That
> would conflict with a sysvinit [or systemd] if configured for the other.)
> Someone may need to review dependencies in the system looking for things that
> depend on systemd... or have a systemd/sysvinit 'conflict' of some kind.  
> (I've
> not attempted such an audit before.)
>...

Dependencies on libsystemd are not a problem in sysvinit systems,
assuming there is proper runtime fallback code.
Shipping both an init script and a systemd unit file is also not a problem.

In Debian you can just switch the init system and reboot and it works,
with all the other binary packages unchanged.

> --Mark

cu
Adrian

BTW: There are problems like how to make GNOME happy without systemd,
 and there is a lack of people in Debian working actively on the 
 sysvinit side. But on a high level the problems you were worried 
 about are "works in Debian".

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


Re: [OE-core] [PATCH 6/6] xz: Remove GPLv3 license checksum

2019-08-27 Thread Adrian Bunk
On Fri, Aug 16, 2019 at 01:50:14PM -0700, Khem Raj wrote:
> On Fri, Aug 16, 2019 at 12:46 PM Wes Lindauer  
> wrote:
> >
> > Although xz has some files that are GPLv3 licensed, none of them get
> > packaged up, and therefore none of it ends up in the final rootfs. Since
> > there is no GPLv3 code in the final image, we don't want to include it
> > when we collect licenses, as that would give the incorrect impression
> > that the image contains GPLv3 code.
> 
> We will be distributing this in src packages though. Maybe these files
> should be deleted before the build even starts.

OE does licence tracking on binary packages, not on source packages.

There are recipes that build binary packages with different licences 
from the same sources.

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed

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


Re: [OE-core] [PATCH 6/6] xz: Remove GPLv3 license checksum

2019-08-27 Thread Wes Lindauer
Yes, I see that could be a valid concern. Is this a sign that poky needs
per-package LIC_FILES_CHKSUM variables the same way each package can set
different LICENSE values? I would like to continue to use Yocto to collect
licenses for compliance reasons, but in this case I am getting an incorrect
license file in my image. In my configuration, I am placing "GPLv3" in
INCOMPATIBLE_LICENSES. Is there any way to use this information at rootfs
time to exclude GPLv3 licenses from being collected? Do you have any
recommendations for how I should proceed with collecting accurate licenses
in my image?

Thanks for your help,
Wes L

On Fri, Aug 16, 2019 at 4:50 PM Khem Raj  wrote:

> On Fri, Aug 16, 2019 at 12:46 PM Wes Lindauer 
> wrote:
> >
> > Although xz has some files that are GPLv3 licensed, none of them get
> > packaged up, and therefore none of it ends up in the final rootfs. Since
> > there is no GPLv3 code in the final image, we don't want to include it
> > when we collect licenses, as that would give the incorrect impression
> > that the image contains GPLv3 code.
>
> We will be distributing this in src packages though. Maybe these files
> should be deleted before the build even starts.
> >
> > Also fixes the endline for getopt.c which had a couple of non-license
> > text lines at the bottom.
> > ---
> >  meta/recipes-extended/xz/xz_5.2.4.bb | 3 +--
> >  1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/meta/recipes-extended/xz/xz_5.2.4.bb
> b/meta/recipes-extended/xz/xz_5.2.4.bb
> > index 791746e1cf..e6725e5f12 100644
> > --- a/meta/recipes-extended/xz/xz_5.2.4.bb
> > +++ b/meta/recipes-extended/xz/xz_5.2.4.bb
> > @@ -17,9 +17,8 @@ LICENSE_liblzma = "PD"
> >
> >  LIC_FILES_CHKSUM = "file://COPYING;md5=97d554a32881fee0aa283d96e47cb24a
> \
> >
> file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
> > -
> file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
> >
> file://COPYING.LGPLv2.1;md5=4fbd65380cdd255951079008b364516c \
> > -
> file://lib/getopt.c;endline=23;md5=2069b0ee710572c03bb3114e4532cd84 \
> > +
> file://lib/getopt.c;endline=21;md5=32575ca1a42c5fa04aac6f08566ddf48 \
> >  "
> >
> >  SRC_URI = "http://tukaani.org/xz/xz-${PV}.tar.gz;
> > --
> > 2.14.5
> >
> > --
> > ___
> > 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] [warrior][PATCH v3] systemd: update SRCREV for systemd v241-stable

2019-08-27 Thread Randy MacLeod

On 8/27/19 12:15 PM, Jan Klare wrote:

Hi,

Thanks for all the initial help and the quick followup review. I 
successfully build systemd for the patched SRCREV for all the platforms 
you mentioned, should I post something of the output or some proof 
somewhere?


No, that usually would be fine.
We trust you and the automated builders will verify that things work as 
well. :)


But...

In this case I just realized that my oneline build-all was wrong;
you need:

$ for i in `ls ../../oe-core.git/meta/conf/machine | \
grep qemu | sed -e 's/\.conf//'`; \
 do \
MACHINE=$i bitbake systemd && \
touch sd-okay-$i || \
touch sd-fail-$i; \
 done


I had left off the setting of the MACHINE variable. Sorry about that.
Can you re-run the test after removing the sd-* files?

../Randy



Cheers,
Jan

On 27. Aug 2019, at 17:14, Randy MacLeod > wrote:


On 8/27/19 10:52 AM, Jan Klare wrote:
Currently systemd 241 does break for kernels 5.2+ with the error 
described here:

* https://github.com/systemd/systemd/issues/12784
The issue has been fixed in master and will be fixed in the release 
243. The
necessary patches have been backported to systemd/systemd-stable in 
the branch
v241-stable, but currently in warrior an old version of that branch 
is pulled

in.
This patch updates the SRCREV to the latest commit from that branch and
therefore pulls in the needed fix to run systemd 241 on 5.2+ kernels.
Signed-off-by: Jan Klare mailto:jan.kl...@bisdn.de>>
---
 meta/recipes-core/systemd/systemd.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-core/systemd/systemd.inc 
b/meta/recipes-core/systemd/systemd.inc

index 5bd88ed6ed..2b9c291959 100644
--- a/meta/recipes-core/systemd/systemd.inc
+++ b/meta/recipes-core/systemd/systemd.inc
@@ -14,7 +14,7 @@ LICENSE = "GPLv2 & LGPLv2.1"
 LIC_FILES_CHKSUM = 
"file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \

file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
 -SRCREV = "c1f8ff8d0de7e303b8004b02a0a47d4cc103a7f8"
+SRCREV = "511646b8ac5c82f210b16920044465756913d238"
 SRCBRANCH = "v241-stable"
 SRC_URI = 
"git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH}"




That's a better log since it explains your motivation.

We don't require it but if you send something like this commit again,
it would be good to analyze the commit logs, like this (but likely
without the tutorial flavour):

$ cd .../systemd-stable.git
$ git checkout v241-stable
$ git pull
$ git log --oneline c1f8ff8d0de7..511646b8ac5c | wc -l
157

The patches are almost all (1) are cherry-picked back from master to 
fix bugs. The four commits (2) that are not cherry-picks,

are:

A revert of something that does not belong in stable,
A customized fix for stable,
A bug fix
A merge commit

I was talking with Jan on IRC and he said that he had built
and tested this update for his target (agema-ag7648 switch).
I've asked Jan to build for all qemus so hopefully that goes well.

Looks good to me.

../Randy


[1]

$ git log --oneline \
 --grep="cherry picked from commit" c1f8ff8d0de7..511646b8ac5c  | wc -l
153

$ git log --oneline c1f8ff8d0de7..511646b8ac5c | wc -l
157


[2]

$ git log --oneline --grep="cherry picked from commit" \
  --invert-grep c1f8ff8d0de7..511646b8ac5c

099c5e4f5f Revert "meson: stop creating enablement symlinks
  in /etc during installation"
dc903ec516 Enable RestrictSUIDSGID=yes for our services
  with DynamicUser=yes
ce52d60450 fstab-generator: use DefaultDependencies=no for
  /sysroot mounts
35387ea7e1 Merge pull request #48 from
  yuwata/v241-stable-dbus-and-timedated


--
# Randy MacLeod
# Wind River Linux
--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org 


http://lists.openembedded.org/mailman/listinfo/openembedded-core





--
# Randy MacLeod
# Wind River Linux
--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] openssl: Fix documentation DEPENDS

2019-08-27 Thread Richard Purdie
On Tue, 2019-08-27 at 18:16 +0200, Alexander Kanavin wrote:
> On Tue, 27 Aug 2019 at 18:12, Joshua Watt 
> wrote:
> > It's not populated just once. Any task can add things to the RSS as
> > the 
> > build progresses. However, the RSS is only cleaned out at one
> > specific 
> > point early in the build, which I can't recall ATM.
> 
> Can you point me to a specific example of tasks adding things to RSS
> please? I'm fairly sure I haven't seen this happen yet, so would
> like  to know the mechanism and use cases.

It definitely does happen. An easy example is quilt-native for
do_patch. Another would be file-native or rpm-native for do_package.

Cheers,

Richard

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


Re: [OE-core] [warrior][PATCH v3] systemd: update SRCREV for systemd v241-stable

2019-08-27 Thread Jan Klare
Hi,

Thanks for all the initial help and the quick followup review. I successfully 
build systemd for the patched SRCREV for all the platforms you mentioned, 
should I post something of the output or some proof somewhere?

Cheers,
Jan

> On 27. Aug 2019, at 17:14, Randy MacLeod  wrote:
> 
> On 8/27/19 10:52 AM, Jan Klare wrote:
>> Currently systemd 241 does break for kernels 5.2+ with the error described 
>> here:
>> * https://github.com/systemd/systemd/issues/12784
>> The issue has been fixed in master and will be fixed in the release 243. The
>> necessary patches have been backported to systemd/systemd-stable in the 
>> branch
>> v241-stable, but currently in warrior an old version of that branch is pulled
>> in.
>> This patch updates the SRCREV to the latest commit from that branch and
>> therefore pulls in the needed fix to run systemd 241 on 5.2+ kernels.
>> Signed-off-by: Jan Klare 
>> ---
>>  meta/recipes-core/systemd/systemd.inc | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> diff --git a/meta/recipes-core/systemd/systemd.inc 
>> b/meta/recipes-core/systemd/systemd.inc
>> index 5bd88ed6ed..2b9c291959 100644
>> --- a/meta/recipes-core/systemd/systemd.inc
>> +++ b/meta/recipes-core/systemd/systemd.inc
>> @@ -14,7 +14,7 @@ LICENSE = "GPLv2 & LGPLv2.1"
>>  LIC_FILES_CHKSUM = 
>> "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
>>  
>> file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
>>  -SRCREV = "c1f8ff8d0de7e303b8004b02a0a47d4cc103a7f8"
>> +SRCREV = "511646b8ac5c82f210b16920044465756913d238"
>>  SRCBRANCH = "v241-stable"
>>  SRC_URI = 
>> "git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH}"
>> 
> 
> That's a better log since it explains your motivation.
> 
> We don't require it but if you send something like this commit again,
> it would be good to analyze the commit logs, like this (but likely
> without the tutorial flavour):
> 
> $ cd .../systemd-stable.git
> $ git checkout v241-stable
> $ git pull
> $ git log --oneline c1f8ff8d0de7..511646b8ac5c | wc -l
> 157
> 
> The patches are almost all (1) are cherry-picked back from master to fix 
> bugs. The four commits (2) that are not cherry-picks,
> are:
> 
> A revert of something that does not belong in stable,
> A customized fix for stable,
> A bug fix
> A merge commit
> 
> I was talking with Jan on IRC and he said that he had built
> and tested this update for his target (agema-ag7648 switch).
> I've asked Jan to build for all qemus so hopefully that goes well.
> 
> Looks good to me.
> 
> ../Randy
> 
> 
> [1]
> 
> $ git log --oneline \
>  --grep="cherry picked from commit" c1f8ff8d0de7..511646b8ac5c  | wc -l
> 153
> 
> $ git log --oneline c1f8ff8d0de7..511646b8ac5c | wc -l
> 157
> 
> 
> [2]
> 
> $ git log --oneline --grep="cherry picked from commit" \
>   --invert-grep c1f8ff8d0de7..511646b8ac5c
> 
> 099c5e4f5f Revert "meson: stop creating enablement symlinks
>   in /etc during installation"
> dc903ec516 Enable RestrictSUIDSGID=yes for our services
>   with DynamicUser=yes
> ce52d60450 fstab-generator: use DefaultDependencies=no for
>   /sysroot mounts
> 35387ea7e1 Merge pull request #48 from
>   yuwata/v241-stable-dbus-and-timedated
> 
> 
> --
> # Randy MacLeod
> # Wind River Linux
> --
> ___
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org 
> 
> http://lists.openembedded.org/mailman/listinfo/openembedded-core 
> 


signature.asc
Description: Message signed with OpenPGP
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] openssl: Fix documentation DEPENDS

2019-08-27 Thread Alexander Kanavin
On Tue, 27 Aug 2019 at 18:12, Joshua Watt  wrote:

> It's not populated just once. Any task can add things to the RSS as the
> build progresses. However, the RSS is only cleaned out at one specific
> point early in the build, which I can't recall ATM.
>

Can you point me to a specific example of tasks adding things to RSS
please? I'm fairly sure I haven't seen this happen yet, so would like  to
know the mechanism and use cases.

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


Re: [OE-core] [PATCH] openssl: Fix documentation DEPENDS

2019-08-27 Thread Joshua Watt



On 8/27/19 8:25 AM, Alexander Kanavin wrote:
On Tue, 27 Aug 2019 at 15:08, Joshua Watt > wrote:


RSS doesn't clear out the sysroots if it goes back and executes
previous
tasks as part of a rebuild. As such, if perl gets added by a later
task,
then bitbake goes back and re-executes the task (I don't remember
exactly which one... do_configure maybe?), perl may be present
when it
wasn't before.


I am still not understanding. The sysroot is populated once before 
anything in configure/compile/install/package executes. How would perl 
then magically appear later on in the sysroot?


It's not populated just once. Any task can add things to the RSS as the 
build progresses. However, the RSS is only cleaned out at one specific 
point early in the build, which I can't recall ATM.




Alex

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


Re: [OE-core] [PATCH] rpm: resolve a host contamination issue for mono packaging

2019-08-27 Thread Alexander Kanavin
On Tue, 27 Aug 2019 at 18:01, Mark Hatle  wrote:

> Instead of hacking with with different names that (shouldn't or) don't
> exist..
> It would be better to just disable the mono-find-* wouldn't it?
>
> If that is the case..
>
> In the fileattrs/mono.attr directory, just remove mono.attr or comment out
> all
> of the lines.
>

The upcoming rpm 4.15 does exactly that (remove mono.attr and dependent
files altogether), so maybe it's not worth the time to improve this patch.

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


Re: [OE-core] [PATCH] rpm: resolve a host contamination issue for mono packaging

2019-08-27 Thread Mark Hatle
On 8/27/19 10:54 AM, Alexander Kanavin wrote:
> Signed-off-by: Alexander Kanavin 
> ---
>  ...es-requires-do-not-use-monodis-from-.patch | 58 +++
>  meta/recipes-devtools/rpm/rpm_4.14.2.1.bb |  1 +
>  2 files changed, 59 insertions(+)
>  create mode 100644 
> meta/recipes-devtools/rpm/files/0001-mono-find-provides-requires-do-not-use-monodis-from-.patch

Instead of hacking with with different names that (shouldn't or) don't exist..
It would be better to just disable the mono-find-* wouldn't it?

If that is the case..

In the fileattrs/mono.attr directory, just remove mono.attr or comment out all
of the lines.

--Mark

> diff --git 
> a/meta/recipes-devtools/rpm/files/0001-mono-find-provides-requires-do-not-use-monodis-from-.patch
>  
> b/meta/recipes-devtools/rpm/files/0001-mono-find-provides-requires-do-not-use-monodis-from-.patch
> new file mode 100644
> index 000..24aa4c7
> --- /dev/null
> +++ 
> b/meta/recipes-devtools/rpm/files/0001-mono-find-provides-requires-do-not-use-monodis-from-.patch
> @@ -0,0 +1,58 @@
> +From 43fbc3f53302a395463e8450ac81c53f623eec3f Mon Sep 17 00:00:00 2001
> +From: Alexander Kanavin 
> +Date: Tue, 27 Aug 2019 17:42:34 +0200
> +Subject: [PATCH] mono-find-provides/requires: do not use monodis from the 
> host
> +
> +There was a host contamination issue here: if monodis was installed
> +on the host, do_package would use that to resolve dependencies
> +of mono libraries (and often fail in that). Without monodis,
> +no dependencies are resolved, which is seemingly how things
> +are supposed to work.
> +
> +Upstream-Status: Inappropriate [oe-core specific]
> +Signed-off-by: Alexander Kanavin 
> +---
> + scripts/mono-find-provides | 8 
> + scripts/mono-find-requires | 8 
> + 2 files changed, 8 insertions(+), 8 deletions(-)
> +
> +diff --git a/scripts/mono-find-provides b/scripts/mono-find-provides
> +index 9348457d3..b28872ffb 100644
> +--- a/scripts/mono-find-provides
>  b/scripts/mono-find-provides
> +@@ -18,11 +18,11 @@ monolist=($(printf "%s\n" "${filelist[@]}" | grep -E 
> "\\.(exe|dll)\$"))
> + build_bindir="$2/usr/bin"
> + build_libdir="$2$3"
> + 
> +-if [ -x $build_bindir/monodis ]; then
> +-monodis="$build_bindir/monodis"
> ++if [ -x $build_bindir/monodis.bogus ]; then
> ++monodis="$build_bindir/monodis.bogus"
> + export 
> LD_LIBRARY_PATH=$build_libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
> +-elif [ -x /usr/bin/monodis ]; then
> +-monodis="/usr/bin/monodis"
> ++elif [ -x /usr/bin/monodis.bogus ]; then
> ++monodis="/usr/bin/monodis.bogus"
> + else
> + exit 0;
> + fi
> +diff --git a/scripts/mono-find-requires b/scripts/mono-find-requires
> +index ea58cae48..d270169e1 100644
> +--- a/scripts/mono-find-requires
>  b/scripts/mono-find-requires
> +@@ -18,11 +18,11 @@ monolist=($(printf "%s\n" "${filelist[@]}" | grep -E 
> "\\.(exe|dll)\$"))
> + build_bindir="$2/usr/bin"
> + build_libdir="$2$3"
> + 
> +-if [ -x $build_bindir/monodis ]; then
> +-monodis="$build_bindir/monodis"
> ++if [ -x $build_bindir/monodis.bogus ]; then
> ++monodis="$build_bindir/monodis.bogus"
> + export 
> LD_LIBRARY_PATH=$build_libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
> +-elif [ -x /usr/bin/monodis ]; then
> +-monodis="/usr/bin/monodis"
> ++elif [ -x /usr/bin/monodis.bogus ]; then
> ++monodis="/usr/bin/monodis.bogus"
> + else
> + exit 0;
> + fi
> diff --git a/meta/recipes-devtools/rpm/rpm_4.14.2.1.bb 
> b/meta/recipes-devtools/rpm/rpm_4.14.2.1.bb
> index 063f4269a57..c37330eb4c6 100644
> --- a/meta/recipes-devtools/rpm/rpm_4.14.2.1.bb
> +++ b/meta/recipes-devtools/rpm/rpm_4.14.2.1.bb
> @@ -41,6 +41,7 @@ SRC_URI = 
> "git://github.com/rpm-software-management/rpm;branch=rpm-4.14.x \
> file://0001-perl-disable-auto-reqs.patch \
> 
> file://0001-rpm-rpmio.c-restrict-virtual-memory-usage-if-limit-s.patch \
> 
> file://0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch \
> +   
> file://0001-mono-find-provides-requires-do-not-use-monodis-from-.patch \
> "
>  
>  PE = "1"
> 

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


Re: [OE-core] [PATCH] ltp: cve/meltdown.c: Fix kernel symbol finding

2019-08-27 Thread Richard Purdie
On Tue, 2019-08-27 at 12:38 +0800, zhe...@windriver.com wrote:
> From: He Zhe 
> 
> Backport a patch to fix the following error.
> safe_file_ops.c:219: BROK: Expected 3 conversions got 2 at
> meltdown.c:272
> 
> Signed-off-by: He Zhe 
> ---
>  ...-cve-meltdown.c-Fix-kernel-symbol-finding.patch | 83
> ++
>  meta/recipes-extended/ltp/ltp_20190517.bb  |  1 +
>  2 files changed, 84 insertions(+)
>  create mode 100644 meta/recipes-extended/ltp/ltp/0001-cve-
> meltdown.c-Fix-kernel-symbol-finding.patch

Patch doesn't apply, how was this tested?

https://autobuilder.yoctoproject.org/typhoon/#/builders/65/builds/981/steps/8/logs/step1b

Cheers,

Richard

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


Re: [OE-core] [PATCH 09/13] glibc: drop obsolete packaging of glibc libnsl libs

2019-08-27 Thread Richard Purdie
On Tue, 2019-08-27 at 16:56 +0300, Adrian Bunk wrote:
> On Fri, Aug 23, 2019 at 01:51:40PM -0700, Andre McCurdy wrote:
> > Packaging rules were left behind when libnsl was removed:
> > ...
> 
> How has this change been tested?
> 
> ERROR: glibc-2.30-r0 do_package: QA Issue: glibc: Files/directories
> were installed but not shipped in any package:
>   /lib/libnsl-2.30.so
>   /lib/libnsl.so.1
> Please set FILES such that these items are packaged. Alternatively if
> they are unneeded, avoid installing them or delete them within
> do_install.
> glibc: 2 installed and not shipped files. [installed-vs-shipped]
> ERROR: glibc-2.30-r0 do_package: Fatal QA errors found, failing task.

Showed up on the autobuilder too:

https://autobuilder.yoctoproject.org/typhoon/#/builders/65/builds/981/steps/8/logs/step1b

Cheers,

Richard


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


[OE-core] [PATCH] rpm: resolve a host contamination issue for mono packaging

2019-08-27 Thread Alexander Kanavin
Signed-off-by: Alexander Kanavin 
---
 ...es-requires-do-not-use-monodis-from-.patch | 58 +++
 meta/recipes-devtools/rpm/rpm_4.14.2.1.bb |  1 +
 2 files changed, 59 insertions(+)
 create mode 100644 
meta/recipes-devtools/rpm/files/0001-mono-find-provides-requires-do-not-use-monodis-from-.patch

diff --git 
a/meta/recipes-devtools/rpm/files/0001-mono-find-provides-requires-do-not-use-monodis-from-.patch
 
b/meta/recipes-devtools/rpm/files/0001-mono-find-provides-requires-do-not-use-monodis-from-.patch
new file mode 100644
index 000..24aa4c7
--- /dev/null
+++ 
b/meta/recipes-devtools/rpm/files/0001-mono-find-provides-requires-do-not-use-monodis-from-.patch
@@ -0,0 +1,58 @@
+From 43fbc3f53302a395463e8450ac81c53f623eec3f Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin 
+Date: Tue, 27 Aug 2019 17:42:34 +0200
+Subject: [PATCH] mono-find-provides/requires: do not use monodis from the host
+
+There was a host contamination issue here: if monodis was installed
+on the host, do_package would use that to resolve dependencies
+of mono libraries (and often fail in that). Without monodis,
+no dependencies are resolved, which is seemingly how things
+are supposed to work.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin 
+---
+ scripts/mono-find-provides | 8 
+ scripts/mono-find-requires | 8 
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/scripts/mono-find-provides b/scripts/mono-find-provides
+index 9348457d3..b28872ffb 100644
+--- a/scripts/mono-find-provides
 b/scripts/mono-find-provides
+@@ -18,11 +18,11 @@ monolist=($(printf "%s\n" "${filelist[@]}" | grep -E 
"\\.(exe|dll)\$"))
+ build_bindir="$2/usr/bin"
+ build_libdir="$2$3"
+ 
+-if [ -x $build_bindir/monodis ]; then
+-monodis="$build_bindir/monodis"
++if [ -x $build_bindir/monodis.bogus ]; then
++monodis="$build_bindir/monodis.bogus"
+ export LD_LIBRARY_PATH=$build_libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
+-elif [ -x /usr/bin/monodis ]; then
+-monodis="/usr/bin/monodis"
++elif [ -x /usr/bin/monodis.bogus ]; then
++monodis="/usr/bin/monodis.bogus"
+ else
+ exit 0;
+ fi
+diff --git a/scripts/mono-find-requires b/scripts/mono-find-requires
+index ea58cae48..d270169e1 100644
+--- a/scripts/mono-find-requires
 b/scripts/mono-find-requires
+@@ -18,11 +18,11 @@ monolist=($(printf "%s\n" "${filelist[@]}" | grep -E 
"\\.(exe|dll)\$"))
+ build_bindir="$2/usr/bin"
+ build_libdir="$2$3"
+ 
+-if [ -x $build_bindir/monodis ]; then
+-monodis="$build_bindir/monodis"
++if [ -x $build_bindir/monodis.bogus ]; then
++monodis="$build_bindir/monodis.bogus"
+ export LD_LIBRARY_PATH=$build_libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
+-elif [ -x /usr/bin/monodis ]; then
+-monodis="/usr/bin/monodis"
++elif [ -x /usr/bin/monodis.bogus ]; then
++monodis="/usr/bin/monodis.bogus"
+ else
+ exit 0;
+ fi
diff --git a/meta/recipes-devtools/rpm/rpm_4.14.2.1.bb 
b/meta/recipes-devtools/rpm/rpm_4.14.2.1.bb
index 063f4269a57..c37330eb4c6 100644
--- a/meta/recipes-devtools/rpm/rpm_4.14.2.1.bb
+++ b/meta/recipes-devtools/rpm/rpm_4.14.2.1.bb
@@ -41,6 +41,7 @@ SRC_URI = 
"git://github.com/rpm-software-management/rpm;branch=rpm-4.14.x \
file://0001-perl-disable-auto-reqs.patch \

file://0001-rpm-rpmio.c-restrict-virtual-memory-usage-if-limit-s.patch \

file://0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch \
+   
file://0001-mono-find-provides-requires-do-not-use-monodis-from-.patch \
"
 
 PE = "1"
-- 
2.17.1

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


Re: [OE-core] [warrior][PATCH v3] systemd: update SRCREV for systemd v241-stable

2019-08-27 Thread Randy MacLeod

On 8/27/19 10:52 AM, Jan Klare wrote:

Currently systemd 241 does break for kernels 5.2+ with the error described here:
* https://github.com/systemd/systemd/issues/12784

The issue has been fixed in master and will be fixed in the release 243. The
necessary patches have been backported to systemd/systemd-stable in the branch
v241-stable, but currently in warrior an old version of that branch is pulled
in.

This patch updates the SRCREV to the latest commit from that branch and
therefore pulls in the needed fix to run systemd 241 on 5.2+ kernels.

Signed-off-by: Jan Klare 
---
  meta/recipes-core/systemd/systemd.inc | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-core/systemd/systemd.inc 
b/meta/recipes-core/systemd/systemd.inc
index 5bd88ed6ed..2b9c291959 100644
--- a/meta/recipes-core/systemd/systemd.inc
+++ b/meta/recipes-core/systemd/systemd.inc
@@ -14,7 +14,7 @@ LICENSE = "GPLv2 & LGPLv2.1"
  LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
  
file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
  
-SRCREV = "c1f8ff8d0de7e303b8004b02a0a47d4cc103a7f8"

+SRCREV = "511646b8ac5c82f210b16920044465756913d238"
  SRCBRANCH = "v241-stable"
  SRC_URI = 
"git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH}"
  



That's a better log since it explains your motivation.

We don't require it but if you send something like this commit again,
it would be good to analyze the commit logs, like this (but likely
without the tutorial flavour):

$ cd .../systemd-stable.git
$ git checkout v241-stable
$ git pull
$ git log --oneline c1f8ff8d0de7..511646b8ac5c | wc -l
157

The patches are almost all (1) are cherry-picked back from master to fix 
bugs. The four commits (2) that are not cherry-picks,

are:

A revert of something that does not belong in stable,
A customized fix for stable,
A bug fix
A merge commit

I was talking with Jan on IRC and he said that he had built
and tested this update for his target (agema-ag7648 switch).
I've asked Jan to build for all qemus so hopefully that goes well.

Looks good to me.

../Randy


[1]

$ git log --oneline \
  --grep="cherry picked from commit" c1f8ff8d0de7..511646b8ac5c  | wc -l
153

$ git log --oneline c1f8ff8d0de7..511646b8ac5c | wc -l
157


[2]

$ git log --oneline --grep="cherry picked from commit" \
   --invert-grep c1f8ff8d0de7..511646b8ac5c

099c5e4f5f Revert "meson: stop creating enablement symlinks
   in /etc during installation"
dc903ec516 Enable RestrictSUIDSGID=yes for our services
   with DynamicUser=yes
ce52d60450 fstab-generator: use DefaultDependencies=no for
   /sysroot mounts
35387ea7e1 Merge pull request #48 from
   yuwata/v241-stable-dbus-and-timedated


--
# Randy MacLeod
# Wind River Linux
--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] ✗ patchtest: failure for update SRCREV for systemd v241-stable branch to latest (rev2)

2019-08-27 Thread Patchwork
== Series Details ==

Series: update SRCREV for systemd v241-stable branch to latest (rev2)
Revision: 2
URL   : https://patchwork.openembedded.org/series/19505/
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:



* Patch[warrior,v2] update SRCREV for systemd v241-stable branch to 
latest
 Issue Shortlog does not follow expected format 
[test_shortlog_format] 
  Suggested fixCommit shortlog (first line of commit message) should follow 
the format ": "



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] -> ...).

---
Guidelines: 
https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest
Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe

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


[OE-core] Yocto Project Status WW35’19

2019-08-27 Thread Richard Purdie
Current Dev Position: YP 2.8 M4 Feature Freeze
Next Deadline: YP 3.0 Final Release 25th Oct

SWAT Team Rotation:
SWAT lead is currently: AnujSWAT team rotation: Anuj -> Armin on Aug.
30, 2019SWAT team rotation: Armin -> Paulj on Sept. 6, 2019
https://wiki.yoctoproject.org/wiki/Yocto_Build_Failure_Swat_Team
Next Team Meetings:
Bug Triage meeting Thursday August 29th at 7:30am PDT (
https://zoom.us/j/454367603)Monthly Project Meeting Tuesday Sept. 3rd
at 8am PDT (https://zoom.us/j/990892712) Twitch - Next event is Tuesday
Sept. 10th at 8am PDT (https://www.twitch.tv/yocto_project)
Key Status/Updates:
We’re now in feature freeze for 3.0 and working on bug fixing for final
releaseThere are the following planned features which are still under
consideration for 3.0:Systemd vs. sysvinit defaults (maybe for the poky
alternative configuration tests)Removal of LSB and poky-lsb and
replacement with alt config testingFinal configuration of hash
equivalencyThe sstate hash equivalency continues to have challenges:we
need to rework the client/server communication to scale to the
autobuilderthere are some bugs in the code the autobuilder continues to
exposewe have cases where its not 100% clear what the correct behaviour
should betest cases are proving to be problematic to write in a
maintainable wayPatch merging has been delayed due to vacations (RP and
Ross) so the final feature patches aren’t resolved yet.If anyone has
any status items for the project they’d like to add to the weekly
reports, please email Richard+Stephen.
Planned Releases for YP 3.0 {2.8}:
M3 Release 6th SeptM4 Cutoff 30th Sept - this will be YP 3.0.YP 3.0
{2.8 (M4)} Final Release 25th Oct
Planned upcoming dot releases:
YP 2.7.2 (Warrior) is planned for after YP 3.0 release.YP 2.6.4 (Thud)
is planned for after YP 2.7.2  release.
Tracking Metrics:
WDD 2485 (last week 2495) (
https://wiki.yoctoproject.org/charts/combo.html)Poky Patch
Metrics  Total patches found: 1474 (last week 1491)Patches in the
Pending State: 613 (42%) [last week 616 (41%)]
Key Status Links for YP:
https://wiki.yoctoproject.org/wiki/Yocto_Project_v2.8_Status
https://wiki.yoctoproject.org/wiki/Yocto_2.8_Schedule
https://wiki.yoctoproject.org/wiki/Yocto_2.8_Features

The Yocto Project’s technical governance is through its Technical
Steering Committee, more information is available at:
https://wiki.yoctoproject.org/wiki/TSC

The Status reports are now stored on the wiki at: 
https://wiki.yoctoproject.org/wiki/Weekly_Status

[If anyone has suggestions for other information you’d like to see on
this weekly status update, let us know!]
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [warrior][PATCH v3] systemd: update SRCREV for systemd v241-stable

2019-08-27 Thread Jan Klare
Currently systemd 241 does break for kernels 5.2+ with the error described here:
* https://github.com/systemd/systemd/issues/12784

The issue has been fixed in master and will be fixed in the release 243. The
necessary patches have been backported to systemd/systemd-stable in the branch
v241-stable, but currently in warrior an old version of that branch is pulled
in. 

This patch updates the SRCREV to the latest commit from that branch and
therefore pulls in the needed fix to run systemd 241 on 5.2+ kernels.

Signed-off-by: Jan Klare 
---
 meta/recipes-core/systemd/systemd.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-core/systemd/systemd.inc 
b/meta/recipes-core/systemd/systemd.inc
index 5bd88ed6ed..2b9c291959 100644
--- a/meta/recipes-core/systemd/systemd.inc
+++ b/meta/recipes-core/systemd/systemd.inc
@@ -14,7 +14,7 @@ LICENSE = "GPLv2 & LGPLv2.1"
 LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
 
file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
 
-SRCREV = "c1f8ff8d0de7e303b8004b02a0a47d4cc103a7f8"
+SRCREV = "511646b8ac5c82f210b16920044465756913d238"
 SRCBRANCH = "v241-stable"
 SRC_URI = 
"git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH}"
 
-- 
2.20.1 (Apple Git-117)

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


[OE-core] [warrior][PATCH v2] update SRCREV for systemd v241-stable branch to latest

2019-08-27 Thread Jan Klare
This update allows to pull in the latest backports that have been
applied to systemd v241-stable

Signed-off-by: Jan Klare 
---
 meta/recipes-core/systemd/systemd.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-core/systemd/systemd.inc 
b/meta/recipes-core/systemd/systemd.inc
index 5bd88ed6ed..2b9c291959 100644
--- a/meta/recipes-core/systemd/systemd.inc
+++ b/meta/recipes-core/systemd/systemd.inc
@@ -14,7 +14,7 @@ LICENSE = "GPLv2 & LGPLv2.1"
 LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
 
file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
 
-SRCREV = "c1f8ff8d0de7e303b8004b02a0a47d4cc103a7f8"
+SRCREV = "511646b8ac5c82f210b16920044465756913d238"
 SRCBRANCH = "v241-stable"
 SRC_URI = 
"git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH}"
 
-- 
2.20.1 (Apple Git-117)

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


[OE-core] ✗ patchtest: failure for update SRCREV for systemd v241-stable branch to latest

2019-08-27 Thread Patchwork
== Series Details ==

Series: update SRCREV for systemd v241-stable branch to latest
Revision: 1
URL   : https://patchwork.openembedded.org/series/19505/
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 64f9fd2a1e)

* Patchupdate SRCREV for systemd v241-stable branch to latest
 Issue Shortlog does not follow expected format 
[test_shortlog_format] 
  Suggested fixCommit shortlog (first line of commit message) should follow 
the format ": "



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] -> ...).

---
Guidelines: 
https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest
Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe

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


[OE-core] [PATCH] qemu: Fix build failure with packageconfig libcurl

2019-08-27 Thread zhe.he
From: He Zhe 

ERROR: Nothing PROVIDES 'libcurl' (but
/build/layers/oe-core/meta/recipes-kernel/perf/perf.bb DEPENDS on or otherwise
requires it).

The name of build dependency of packageconfig libcurl should be curl.

Signed-off-by: He Zhe 
---
 meta/recipes-devtools/qemu/qemu.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-devtools/qemu/qemu.inc 
b/meta/recipes-devtools/qemu/qemu.inc
index d2dd2bc..ad46d18 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -131,7 +131,7 @@ PACKAGECONFIG[xen] = 
"--enable-xen,--disable-xen,xen,xen-libxenstore xen-libxenc
 PACKAGECONFIG[vnc-sasl] = "--enable-vnc 
--enable-vnc-sasl,--disable-vnc-sasl,cyrus-sasl,"
 PACKAGECONFIG[vnc-jpeg] = "--enable-vnc 
--enable-vnc-jpeg,--disable-vnc-jpeg,jpeg,"
 PACKAGECONFIG[vnc-png] = "--enable-vnc 
--enable-vnc-png,--disable-vnc-png,libpng,"
-PACKAGECONFIG[libcurl] = "--enable-curl,--disable-curl,libcurl,"
+PACKAGECONFIG[libcurl] = "--enable-curl,--disable-curl,curl,"
 PACKAGECONFIG[nss] = "--enable-smartcard,--disable-smartcard,nss,"
 PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses,"
 PACKAGECONFIG[gtk+] = "--enable-gtk,--disable-gtk,gtk+3 gettext-native"
-- 
2.7.4

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


Re: [OE-core] [PATCHv2] libxcrypt:upgrade 4.4.6 -> 4.4.7

2019-08-27 Thread Richard Purdie
On Tue, 2019-08-27 at 16:21 +0300, Adrian Bunk wrote:
> On Mon, Aug 26, 2019 at 01:32:38PM +0800, Zang Ruochen wrote:
> > -License-Update: Many individual files are under other
> > licenses,update their information.
> > 
> > Signed-off-by: Zang Ruochen 
> > ---
> >  .../libxcrypt/{libxcrypt_4.4.6.bb =>
> > libxcrypt_4.4.7.bb}| 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> >  rename meta/recipes-core/libxcrypt/{libxcrypt_4.4.6.bb =>
> > libxcrypt_4.4.7.bb} (86%)
> > ...
> 
> You also have to rename libxcrypt-compat_4.4.6.bb

Right, this just failed on the autobuilder and makes me wonder how it
was tested as it doesn't parse :/.

Cheers,

Richard

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


[OE-core] [PATCH] update SRCREV for systemd v241-stable branch to latest

2019-08-27 Thread Jan Klare
* this update allows to pull in the latest backports that have been
applied to systemd v241-stable

Signed-off-by: Jan Klare 
---
 meta/recipes-core/systemd/systemd.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-core/systemd/systemd.inc 
b/meta/recipes-core/systemd/systemd.inc
index 5bd88ed6ed..2b9c291959 100644
--- a/meta/recipes-core/systemd/systemd.inc
+++ b/meta/recipes-core/systemd/systemd.inc
@@ -14,7 +14,7 @@ LICENSE = "GPLv2 & LGPLv2.1"
 LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
 
file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
 
-SRCREV = "c1f8ff8d0de7e303b8004b02a0a47d4cc103a7f8"
+SRCREV = "511646b8ac5c82f210b16920044465756913d238"
 SRCBRANCH = "v241-stable"
 SRC_URI = 
"git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH}"
 
-- 
2.20.1 (Apple Git-117)

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


Re: [OE-core] [PATCH 09/13] glibc: drop obsolete packaging of glibc libnsl libs

2019-08-27 Thread Adrian Bunk
On Fri, Aug 23, 2019 at 01:51:40PM -0700, Andre McCurdy wrote:
> Packaging rules were left behind when libnsl was removed:
>...

How has this change been tested?

ERROR: glibc-2.30-r0 do_package: QA Issue: glibc: Files/directories were 
installed but not shipped in any package:
  /lib/libnsl-2.30.so
  /lib/libnsl.so.1
Please set FILES such that these items are packaged. Alternatively if they are 
unneeded, avoid installing them or delete them within do_install.
glibc: 2 installed and not shipped files. [installed-vs-shipped]
ERROR: glibc-2.30-r0 do_package: Fatal QA errors found, failing task.


cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed

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


Re: [OE-core] [PATCH] openssl: Fix documentation DEPENDS

2019-08-27 Thread Alexander Kanavin
On Tue, 27 Aug 2019 at 15:08, Joshua Watt  wrote:

> RSS doesn't clear out the sysroots if it goes back and executes previous
> tasks as part of a rebuild. As such, if perl gets added by a later task,
> then bitbake goes back and re-executes the task (I don't remember
> exactly which one... do_configure maybe?), perl may be present when it
> wasn't before.
>

I am still not understanding. The sysroot is populated once before anything
in configure/compile/install/package executes. How would perl then
magically appear later on in the sysroot?

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


Re: [OE-core] [PATCHv2] libxcrypt:upgrade 4.4.6 -> 4.4.7

2019-08-27 Thread Adrian Bunk
On Mon, Aug 26, 2019 at 01:32:38PM +0800, Zang Ruochen wrote:
> -License-Update: Many individual files are under other licenses,update their 
> information.
> 
> Signed-off-by: Zang Ruochen 
> ---
>  .../libxcrypt/{libxcrypt_4.4.6.bb => libxcrypt_4.4.7.bb}| 6 
> +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>  rename meta/recipes-core/libxcrypt/{libxcrypt_4.4.6.bb => 
> libxcrypt_4.4.7.bb} (86%)
>...

You also have to rename libxcrypt-compat_4.4.6.bb

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed

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


Re: [OE-core] [PATCH] openssl: Fix documentation DEPENDS

2019-08-27 Thread Joshua Watt

On 8/27/19 7:56 AM, Alexander Kanavin wrote:
On Tue, 27 Aug 2019 at 14:46, Joshua Watt > wrote:


perl is required to generate the OpenSSL documentation, and therefore
should be present at do_compile. If not, OpenSSL will skip the
documentation generation, which isn't reproducible


I'm not sure I follow you. If perl is present, documentation is 
generated. If perl is not present, documentation is not generated. 
Where is the non-reproducibility in this?


RSS doesn't clear out the sysroots if it goes back and executes previous 
tasks as part of a rebuild. As such, if perl gets added by a later task, 
then bitbake goes back and re-executes the task (I don't remember 
exactly which one... do_configure maybe?), perl may be present when it 
wasn't before.


This is generally true of all RSS dependencies, and until it gets 
resolved the best we can say for reproducible builds is that two builds 
from stratch without sstate can be binary identical. It will have to be 
resolved eventually, but my current plan is to do the reproducible build 
test as two clean builds for now so if there is a lot of push back we 
can drop it.





Alex

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


Re: [OE-core] [PATCH] openssl: Fix documentation DEPENDS

2019-08-27 Thread Alexander Kanavin
On Tue, 27 Aug 2019 at 14:46, Joshua Watt  wrote:

> perl is required to generate the OpenSSL documentation, and therefore
> should be present at do_compile. If not, OpenSSL will skip the
> documentation generation, which isn't reproducible
>

I'm not sure I follow you. If perl is present, documentation is generated.
If perl is not present, documentation is not generated. Where is the
non-reproducibility in this?

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


Re: [OE-core] [PATCH] glibc: Fix locale DEPENDS

2019-08-27 Thread Joshua Watt
On Mon, Jul 1, 2019 at 10:25 PM Khem Raj  wrote:
>
> Yes, I think so.

Oops, I forgot to mark the latest patch in-reply-to this one. It's
here: 
http://lists.openembedded.org/pipermail/openembedded-core/2019-August/286123.html

>
> On Mon, Jul 1, 2019 at 7:13 PM Peter Kjellerstedt 
>  wrote:
>>
>> Are you thinking of gettext-minimal-native? It is used by gettext.bbclass if 
>> USE_NLS is “no”.
>>
>>
>>
>> //Peter
>>
>>
>>
>> From: openembedded-core-boun...@lists.openembedded.org 
>>  On Behalf Of Khem Raj
>> Sent: den 28 juni 2019 18:37
>> To: Joshua Watt 
>> Cc: openembedded-core@lists.openembedded.org
>> Subject: Re: [OE-core] [PATCH] glibc: Fix locale DEPENDS
>>
>>
>>
>>
>>
>>
>>
>> On Thu, Jun 27, 2019 at 9:54 AM Joshua Watt  wrote:
>>
>> gettext is required to generate the glibc locales in do_compile. If not
>> present, glibc will skip the generation which isn't reproducible.
>>
>> Signed-off-by: Joshua Watt 
>> ---
>>  meta/recipes-core/glibc/glibc_2.29.bb | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/meta/recipes-core/glibc/glibc_2.29.bb 
>> b/meta/recipes-core/glibc/glibc_2.29.bb
>> index 073d1533e37..c400ee10b0f 100644
>> --- a/meta/recipes-core/glibc/glibc_2.29.bb
>> +++ b/meta/recipes-core/glibc/glibc_2.29.bb
>> @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = 
>> "file://LICENSES;md5=cfc0ed77a9f62fa62eded042ebe31d72 \
>>file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a 
>> \
>>file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
>>
>> -DEPENDS += "gperf-native bison-native make-native"
>> +DEPENDS += "gperf-native bison-native make-native gettext-native"
>>
>>
>>
>> I think we have had this dependency proposed in past and one think that 
>> worries me is that it will cause serialization a bit more and can affect 
>> bulls times wasn’t there a minimal gettext at some point and I wonder if 
>> that could satisfy needs here
>>
>>
>>
>>  PV = "2.29"
>>
>> --
>> 2.21.0
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH] openssl: Fix documentation DEPENDS

2019-08-27 Thread Joshua Watt
perl is required to generate the OpenSSL documentation, and therefore
should be present at do_compile. If not, OpenSSL will skip the
documentation generation, which isn't reproducible

Signed-off-by: Joshua Watt 
---
 meta/recipes-connectivity/openssl/openssl_1.1.1c.bb | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb 
b/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb
index 75159ac725c..da15bc22a7a 100644
--- a/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb
+++ b/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb
@@ -10,6 +10,8 @@ LICENSE = "openssl"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d343e62fc9c833710bbbed25f27364c8"
 
 DEPENDS = "hostperl-runtime-native"
+# Perl is required to generate documentation
+DEPENDS_append_class-target = " perl-native"
 
 SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \
file://run-ptest \
-- 
2.21.0

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


[OE-core] [PATCH] glibc: Fix locale DEPENDS

2019-08-27 Thread Joshua Watt
gettext is required to generate the glibc locales in do_compile. If not
present, glibc will skip the generation which isn't reproducible.

Signed-off-by: Joshua Watt 
---
 meta/recipes-core/glibc/glibc.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-core/glibc/glibc.inc 
b/meta/recipes-core/glibc/glibc.inc
index 252fd56c13c..f1a6ae2a245 100644
--- a/meta/recipes-core/glibc/glibc.inc
+++ b/meta/recipes-core/glibc/glibc.inc
@@ -6,7 +6,7 @@ DEPENDS = "virtual/${TARGET_PREFIX}gcc libgcc-initial 
linux-libc-headers"
 
 PROVIDES = "virtual/libc"
 PROVIDES += "virtual/libintl virtual/libiconv"
-inherit autotools texinfo distro_features_check systemd
+inherit autotools texinfo distro_features_check systemd gettext
 
 LEAD_SONAME = "libc.so"
 
-- 
2.21.0

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


Re: [OE-core] [PATCH 1/1] gettext: avoid useless RPATH QA issue

2019-08-27 Thread Alexander Kanavin
I also have to point out that a new release of gettext (0.20.x) has been
out for a while now, so maybe it's better to upgrade to that first.

Alex

On Tue, 27 Aug 2019 at 13:38, Richard Purdie <
richard.pur...@linuxfoundation.org> wrote:

> On Tue, 2019-08-27 at 10:22 +0800, Chen Qi wrote:
> > We are getting useless rpath QA error when enabling libunistring
> > and msgcat-curses PACKAGECONFIG. Use chrpath to delete the redundant
> > RPATH in binaries.
> >
> > Signed-off-by: Chen Qi 
> > ---
> >  meta/recipes-core/gettext/gettext_0.19.8.1.bb | 10 ++
> >  1 file changed, 10 insertions(+)
> >
> > diff --git a/meta/recipes-core/gettext/gettext_0.19.8.1.bb
> > b/meta/recipes-core/gettext/gettext_0.19.8.1.bb
> > index 30121ad..4ce47a6 100644
> > --- a/meta/recipes-core/gettext/gettext_0.19.8.1.bb
> > +++ b/meta/recipes-core/gettext/gettext_0.19.8.1.bb
> > @@ -118,6 +118,14 @@ FILES_gettext-runtime-doc =
> > "${mandir}/man1/gettext.* \
> >
> >  do_install_append() {
> >  rm -f ${D}${libdir}/preloadable_libintl.so
> > +# remove useless rpath to avoid QA issue
> > +useless_rpath_list="${D}${libdir}/gettext/urlget
> > ${D}${libdir}/gettext/cldr-plurals \
> > +${D}${libdir}/gettext/hostname
> > ${D}${bindir}/recode-sr-latin"
> > +for f in $useless_rpath_list; do
> > + if [ -e $f ]; then
> > + chrpath -d $f
> > + fi
> > +done
> >  }
> >
> >  do_install_append_class-native () {
> > @@ -163,6 +171,8 @@ do_install_ptest() {
> >  find ${D}${PTEST_PATH}/ -name "*.o" -exec rm {} \;
> >  chmod 0755 ${D}${PTEST_PATH}/tests/lang-vala
> > ${D}${PTEST_PATH}/tests/plural-1 ${D}${PTEST_PATH}/tests/xgettext-
> > tcl-4 \
> > ${D}${PTEST_PATH}/tests/xgettext-vala-
> > 1  ${D}${PTEST_PATH}/tests/xgettext-po-2
> > +# avoid useless rpath
> > +[ -e ${D}${PTEST_PATH}/src/cldr-plurals ] && chrpath -d
> > ${D}${PTEST_PATH}/src/cldr-plurals
> >  fi
> >  }
>
> In general we try and fix the reason they're getting included in the
> first place as it means the compiler flags are incorrect. Any idea why
> that is happening and if we can fix it?
>
> Cheers,
>
> Richard
>
>
>
> --
> ___
> 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 1/1] gettext: avoid useless RPATH QA issue

2019-08-27 Thread Richard Purdie
On Tue, 2019-08-27 at 10:22 +0800, Chen Qi wrote:
> We are getting useless rpath QA error when enabling libunistring
> and msgcat-curses PACKAGECONFIG. Use chrpath to delete the redundant
> RPATH in binaries.
> 
> Signed-off-by: Chen Qi 
> ---
>  meta/recipes-core/gettext/gettext_0.19.8.1.bb | 10 ++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/meta/recipes-core/gettext/gettext_0.19.8.1.bb
> b/meta/recipes-core/gettext/gettext_0.19.8.1.bb
> index 30121ad..4ce47a6 100644
> --- a/meta/recipes-core/gettext/gettext_0.19.8.1.bb
> +++ b/meta/recipes-core/gettext/gettext_0.19.8.1.bb
> @@ -118,6 +118,14 @@ FILES_gettext-runtime-doc =
> "${mandir}/man1/gettext.* \
>  
>  do_install_append() {
>  rm -f ${D}${libdir}/preloadable_libintl.so
> +# remove useless rpath to avoid QA issue
> +useless_rpath_list="${D}${libdir}/gettext/urlget
> ${D}${libdir}/gettext/cldr-plurals \
> +${D}${libdir}/gettext/hostname
> ${D}${bindir}/recode-sr-latin"
> +for f in $useless_rpath_list; do
> + if [ -e $f ]; then
> + chrpath -d $f
> + fi
> +done
>  }
>  
>  do_install_append_class-native () {
> @@ -163,6 +171,8 @@ do_install_ptest() {
>  find ${D}${PTEST_PATH}/ -name "*.o" -exec rm {} \;
>  chmod 0755 ${D}${PTEST_PATH}/tests/lang-vala
> ${D}${PTEST_PATH}/tests/plural-1 ${D}${PTEST_PATH}/tests/xgettext-
> tcl-4 \
> ${D}${PTEST_PATH}/tests/xgettext-vala-
> 1  ${D}${PTEST_PATH}/tests/xgettext-po-2
> +# avoid useless rpath
> +[ -e ${D}${PTEST_PATH}/src/cldr-plurals ] && chrpath -d
> ${D}${PTEST_PATH}/src/cldr-plurals
>  fi
>  }

In general we try and fix the reason they're getting included in the
first place as it means the compiler flags are incorrect. Any idea why
that is happening and if we can fix it?

Cheers,

Richard



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


[OE-core] [PATCH] icecc: blacklist systemtap

2019-08-27 Thread Tim Blechmann
compiling systemtap with icecc causes the following build failure

> build/tmp/work/silvermont-64-poky-linux/systemtap/4.0-r0/recipe-sysroot/usr/include/python3.7m/modsupport.h:120:66:
>  note: in definition of macro 'PyModule_AddIntMacro'
> HelperSDT/_HelperSDT.c:145:34: error: 'PyTrace_RETURN' undeclared (first use 
> in this function); did you mean 'PyTrace_C_RETURN'?

Signed-off-by: Tim Blechmann 
---
 meta/classes/icecc.bbclass | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/meta/classes/icecc.bbclass b/meta/classes/icecc.bbclass
index edb0e10434..1a4b4ab526 100644
--- a/meta/classes/icecc.bbclass
+++ b/meta/classes/icecc.bbclass
@@ -73,10 +73,13 @@ ICECC_ENV_DEBUG ??= ""
 #
 # libgcc-initial - fails with CPP sanity check error if host sysroot contains
 #  cross gcc built for another target tune/variant
+# systemtap - _HelperSDT.c undefs macros and uses the identifiers in macros 
emitting
+# inline assembly
 # target-sdk-provides-dummy - ${HOST_PREFIX} is empty which triggers the "NULL
 # prefix" error.
 ICECC_SYSTEM_PACKAGE_BL += "\
 libgcc-initial \
+systemtap \
 target-sdk-provides-dummy \
 "
 
-- 
2.23.0

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


[OE-core] ✗ patchtest: failure for icecc: blacklist systemtap

2019-08-27 Thread Patchwork
== Series Details ==

Series: icecc: blacklist systemtap
Revision: 1
URL   : https://patchwork.openembedded.org/series/19501/
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:



* Patchicecc: blacklist systemtap
 Issue Patch is missing Signed-off-by [test_signed_off_by_presence] 
  Suggested fixSign off the patch (either manually or with "git commit 
--amend -s")



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] -> ...).

---
Guidelines: 
https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest
Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe

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


[OE-core] [PATCH] icecc: blacklist systemtap

2019-08-27 Thread Tim Blechmann
compiling systemtap with icecc causes the following build failure

> build/tmp/work/silvermont-64-poky-linux/systemtap/4.0-r0/recipe-sysroot/usr/include/python3.7m/modsupport.h:120:66:
>  note: in definition of macro 'PyModule_AddIntMacro'
> HelperSDT/_HelperSDT.c:145:34: error: 'PyTrace_RETURN' undeclared (first use 
> in this function); did you mean 'PyTrace_C_RETURN'?
---
 meta/classes/icecc.bbclass | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/meta/classes/icecc.bbclass b/meta/classes/icecc.bbclass
index edb0e10434..1a4b4ab526 100644
--- a/meta/classes/icecc.bbclass
+++ b/meta/classes/icecc.bbclass
@@ -73,10 +73,13 @@ ICECC_ENV_DEBUG ??= ""
 #
 # libgcc-initial - fails with CPP sanity check error if host sysroot contains
 #  cross gcc built for another target tune/variant
+# systemtap - _HelperSDT.c undefs macros and uses the identifiers in macros 
emitting
+# inline assembly
 # target-sdk-provides-dummy - ${HOST_PREFIX} is empty which triggers the "NULL
 # prefix" error.
 ICECC_SYSTEM_PACKAGE_BL += "\
 libgcc-initial \
+systemtap \
 target-sdk-provides-dummy \
 "
 
-- 
2.23.0

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


Re: [OE-core] [PATCH V3] nfs-utils: decrease RLIMIT_NOFILE to 4k for systemd

2019-08-27 Thread Kang Kai

On 2019/8/20 下午1:45, Hongxu Jia wrote:

On systemd, it set RLIMIT_NOFILE to 512k, since do_testimage
for core-image-sato-sdk has memory limitation (256Mib) which
caused rpc.statd failed with out of memory.
[  531.306146] Out of memory: Kill process 193 (rpc.statd) score 200 or 
sacrifice child

The rpc.statd and rpc.mountd allocates memory according to
RLIMIT_NOFILE, so decrease it to 4k to keep sync with sysvinit


Hi Richard,

This patch could fix the test_image failure with systemd. Would like to 
try systemd as default init manager on yocto build again

to check whether any more blocking issues?

Thanks,
Kai




After applying the patch, the memory cost is the same with sysvinit:

root@qemux86-64:~# systemctl status nfs-statd
* nfs-statd.service - NFS status monitor for NFSv2/3 locking.
Loaded: loaded (/lib/systemd/system/nfs-statd.service; enabled; vendor 
preset: enabled)
Active: active (running) since Tue 2019-08-20 03:16:18 UTC; 3min 26s ago
  Main PID: 343 (rpc.statd)
 Tasks: 1 (limit: 271)
Memory: 1.0M

root@qemux86-64:~# systemctl status nfs-mountd
* nfs-mountd.service - NFS Mount Daemon
Loaded: loaded (/etc/systemd/system/nfs-mountd.service; enabled; vendor 
preset: enabled)
Active: active (running) since Tue 2019-08-20 03:19:01 UTC; 1min 21s ago
  Main PID: 451 (rpc.mountd)
 Tasks: 1 (limit: 271)
Memory: 736.0K

Suggested-by: Chen Qi 
Signed-off-by: Hongxu Jia 
---
  meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service | 1 +
  meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service  | 1 +
  meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.3.bb   | 4 
  3 files changed, 6 insertions(+)

diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service 
b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service
index 3c3a802..c01415d 100644
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service
+++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service
@@ -11,6 +11,7 @@ ConditionPathExists=@SYSCONFDIR@/exports
  [Service]
  EnvironmentFile=-@SYSCONFDIR@/nfs-utils.conf
  ExecStart=@SBINDIR@/rpc.mountd -F $MOUNTD_OPTS
+LimitNOFILE=@HIGH_RLIMIT_NOFILE@
  
  [Install]

  WantedBy=multi-user.target
diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service 
b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service
index 6e196b8..4fa64e1 100644
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service
+++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service
@@ -8,6 +8,7 @@ After=network.target nss-lookup.target rpcbind.service
  [Service]
  EnvironmentFile=-@SYSCONFDIR@/nfs-utils.conf
  ExecStart=@SBINDIR@/rpc.statd -F $STATD_OPTS
+LimitNOFILE=@HIGH_RLIMIT_NOFILE@
  
  [Install]

  WantedBy=multi-user.target
diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.3.bb 
b/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.3.bb
index ac4437b..28f9898 100644
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.3.bb
+++ b/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.3.bb
@@ -119,6 +119,9 @@ do_compile_prepend() {
make clean
  }
  
+# Works on systemd only

+HIGH_RLIMIT_NOFILE ??= "4096"
+
  do_install_append () {
install -d ${D}${sysconfdir}/init.d
install -m 0755 ${WORKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver
@@ -133,6 +136,7 @@ do_install_append () {
install -m 0644 ${WORKDIR}/nfs-statd.service 
${D}${systemd_unitdir}/system/
sed -i -e 's,@SBINDIR@,${sbindir},g' \
-e 's,@SYSCONFDIR@,${sysconfdir},g' \
+   -e 's,@HIGH_RLIMIT_NOFILE@,${HIGH_RLIMIT_NOFILE},g' \
${D}${systemd_unitdir}/system/*.service
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; 
then
install -m 0644 ${WORKDIR}/proc-fs-nfsd.mount 
${D}${systemd_unitdir}/system/



--
Kai Kang

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


Re: [OE-core] Consultation about the issue of archiver

2019-08-27 Thread Paul Barker
On Tue, 27 Aug 2019, at 08:21, zang wrote:
> hello:
> 
> Recently, when I enabled the archiver.bbclass, I found that some 
> packages could not generate the srpm package. The reason is that it 
> returned in the function copyleft_should_include() in the file 
> archiver.bbclass. 
> 
>  | included, reason = copyleft_should_include(d)
>  | if not included:
>  | bb.debug(1, 'archiver: %s is excluded: %s' % (pn, reason))
>  | /*return from here*/
>  | return 
>  | else:
>  | bb.debug(1, 'archiver: %s is included: %s' % (pn, reason)) 
> Why do you want to make a license judgment on the package?
>  I hope someone can answer it, thank you very much.
>  The following is my local.conf:
> 
> | ...
> | INHERIT += "archiver"
> | ARCHIVER_MODE[srpm] = "1"
> | ARCHIVER_MODE[src] = "original"
> | ...
> e.g. When I use the following 
> command,tmp/work/core2-64-poky-linux/openssl/1.1.1c-r0/deploy-sources/ 
> is empty.
> 
> | bitbake -f -c deploy_archives openssl 

The flexibility of the archiver class is a real advantage, you just need to 
configure it via the variables used by the copyleft_filter class. To capture 
everything except 'CLOSED' and 'Proprietary' recipes I have the following set:

COPYLEFT_LICENSE_INCLUDE = "*"

Give that a try and let me know if it works for you.

Thanks,

-- 
Paul Barker
Managing Director & Principal Engineer
Beta Five Ltd
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] Consultation about the issue of archiver

2019-08-27 Thread zang

hello:

Recently, when I enabled the archiver.bbclass, I found that some 
packages could not generate the srpm package. The reason is that it 
returned in the function copyleft_should_include() in the file 
archiver.bbclass.


|    included, reason = copyleft_should_include(d)
|    if not included:
|    bb.debug(1, 'archiver: %s is excluded: %s' % (pn, reason))
|    /*return from here*/
|    return
|    else:
|    bb.debug(1, 'archiver: %s is included: %s' % (pn, reason))

Why do you want to make a license judgment on the package?
I hope someone can answer it, thank you very much.
The following is my local.conf:

| ...
| INHERIT += "archiver"
| ARCHIVER_MODE[srpm] = "1"
| ARCHIVER_MODE[src] = "original"
| ...

e.g. When I use the following 
command,tmp/work/core2-64-poky-linux/openssl/1.1.1c-r0/deploy-sources/ 
is empty.


| bitbake -f -c deploy_archives openssl


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