[OE-core] [PATCH 0/1] systemd: add back alternatives for init utitilies
*** BLURB HERE *** The following changes since commit 52f1041e1a99d391d954f138589cef497a143cb1: qemux86/gstreamer: Move kernel module recommendation to the machine configuration (2018-10-18 23:26:35 +0100) are available in the git repository at: git://git.pokylinux.org/poky-contrib ChenQi/systemd-alternatives http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/systemd-alternatives Chen Qi (1): systemd: add back alternatives for init utitilies meta/recipes-core/systemd/systemd_239.bb | 27 --- 1 file changed, 24 insertions(+), 3 deletions(-) -- 1.9.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/1] systemd: add back alternatives for init utitilies
Add back alternatives for init utilities to avoid regression. These alternatives were removed when upgradeing systemd to 239. They were removed out of the logic that init utitilies should be bound to init manager. However, it turned out that two use cases were not covered. 1) initramfs using commands like 'reboot' from busybox. 2) Users use customized busybox defconfig which enables init utilities. The first use case caused a regression bug in yocto. https://bugzilla.yoctoproject.org/show_bug.cgi?id=12914 Patches were sent to fix the reboot problem. But this is not enough. As we may have the second use case. In such situation, users will find themselves having regression error when using 'busybox + systemd' (and busybox is installed after systemd, overriding the systemd symlinks). So in order to avoid regression, add back these alternatives. Signed-off-by: Chen Qi --- meta/recipes-core/systemd/systemd_239.bb | 27 --- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/meta/recipes-core/systemd/systemd_239.bb b/meta/recipes-core/systemd/systemd_239.bb index 7ed9321..0e84531 100644 --- a/meta/recipes-core/systemd/systemd_239.bb +++ b/meta/recipes-core/systemd/systemd_239.bb @@ -447,7 +447,7 @@ FILES_${PN} = " ${base_bindir}/* \ ${base_sbindir}/runlevel \ ${base_sbindir}/telinit \ ${base_sbindir}/resolvconf \ -${base_sbindir}/reboot.systemd \ +${base_sbindir}/reboot \ ${base_sbindir}/init \ ${datadir}/dbus-1/services \ ${datadir}/dbus-1/system-services \ @@ -556,14 +556,35 @@ python __anonymous() { d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1") } -ALTERNATIVE_${PN} = "resolv-conf reboot" +ALTERNATIVE_${PN} = "init halt reboot shutdown poweroff runlevel resolv-conf" ALTERNATIVE_TARGET[resolv-conf] = "${sysconfdir}/resolv-conf.systemd" ALTERNATIVE_LINK_NAME[resolv-conf] = "${sysconfdir}/resolv.conf" ALTERNATIVE_PRIORITY[resolv-conf] ?= "50" +ALTERNATIVE_TARGET[init] = "${rootlibexecdir}/systemd/systemd" +ALTERNATIVE_LINK_NAME[init] = "${base_sbindir}/init" +ALTERNATIVE_PRIORITY[init] ?= "300" + +ALTERNATIVE_TARGET[halt] = "${base_bindir}/systemctl" +ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt" +ALTERNATIVE_PRIORITY[halt] ?= "300" + +ALTERNATIVE_TARGET[reboot] = "${base_bindir}/systemctl" ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot" -ALTERNATIVE_PRIORITY[reboot] = "100" +ALTERNATIVE_PRIORITY[reboot] ?= "300" + +ALTERNATIVE_TARGET[shutdown] = "${base_bindir}/systemctl" +ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown" +ALTERNATIVE_PRIORITY[shutdown] ?= "300" + +ALTERNATIVE_TARGET[poweroff] = "${base_bindir}/systemctl" +ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff" +ALTERNATIVE_PRIORITY[poweroff] ?= "300" + +ALTERNATIVE_TARGET[runlevel] = "${base_bindir}/systemctl" +ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel" +ALTERNATIVE_PRIORITY[runlevel] ?= "300" pkg_postinst_${PN} () { sed -e '/^hosts:/s/\s*\//' \ -- 1.9.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] os-release: move to nonarch_libdir
On 2018/10/19 上午10:21, ChenQi wrote: I suspect this is the correct fix for multilib conflict of os-release after the allarch/multilib change. Kai, could you please verify if the following patch could be dropped with this patch applied? commit 591a11ba58ce3c2c147bb1f8202bc6a0092b70eb Author: Kai Kang Date: Wed Oct 3 00:27:14 2018 +0800 os-release: avoid multilib expand Add os-release to NON_MULTILIB_RECIPES in multilib.conf that do not do multilib expand for os-release. This commit is to fix file conflict of /etc/os-release between lib32-os-release and os-release. When install os-release to nonarch_libdir, the issue is gone. So my commit could be reverted when this commit is merged. Tested for qemux86-64. --Kai (From OE-Core rev: 361382ca16c276e1e404eab58c0956a2b6d23d7e) Signed-off-by: Kai Kang Signed-off-by: Richard Purdie Best Regards, Chen Qi On 10/18/2018 11:24 PM, Dan McGregor wrote: From: Dan McGregor Even on multilib systems, /usr/lib is where systemd expects the os-release file to live. Signed-off-by: Dan McGregor --- meta/recipes-core/os-release/os-release.bb | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/meta/recipes-core/os-release/os-release.bb b/meta/recipes-core/os-release/os-release.bb index bf4f815a10d..7f3d9cba00c 100644 --- a/meta/recipes-core/os-release/os-release.bb +++ b/meta/recipes-core/os-release/os-release.bb @@ -42,9 +42,9 @@ python do_compile () { do_compile[vardeps] += "${OS_RELEASE_FIELDS}" do_install () { - install -d ${D}${libdir} ${D}${sysconfdir} - install -m 0644 os-release ${D}${libdir}/ - lnr ${D}${libdir}/os-release ${D}${sysconfdir}/os-release + install -d ${D}${nonarch_libdir} ${D}${sysconfdir} + install -m 0644 os-release ${D}${nonarch_libdir}/ + lnr ${D}${nonarch_libdir}/os-release ${D}${sysconfdir}/os-release } -FILES_${PN} += "${libdir}/os-release" +FILES_${PN} += "${nonarch_libdir}/os-release" -- Regards, Neil | Kai Kang -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/2] python: backport patch to fix CVE-2018-1000802
Backport a patch to fix the following CVE. CVE: CVE-2018-1000802 Signed-off-by: Chen Qi --- ...34540-Convert-shutil._call_external_zip-t.patch | 69 ++ meta/recipes-devtools/python/python_2.7.15.bb | 1 + 2 files changed, 70 insertions(+) create mode 100644 meta/recipes-devtools/python/python/0001-closes-bpo-34540-Convert-shutil._call_external_zip-t.patch diff --git a/meta/recipes-devtools/python/python/0001-closes-bpo-34540-Convert-shutil._call_external_zip-t.patch b/meta/recipes-devtools/python/python/0001-closes-bpo-34540-Convert-shutil._call_external_zip-t.patch new file mode 100644 index 000..e6fe5f2 --- /dev/null +++ b/meta/recipes-devtools/python/python/0001-closes-bpo-34540-Convert-shutil._call_external_zip-t.patch @@ -0,0 +1,69 @@ +From c7e692c61dc091d07dee573f5f424b6b427ff056 Mon Sep 17 00:00:00 2001 +From: Benjamin Peterson +Date: Wed, 29 Aug 2018 21:59:21 -0700 +Subject: [PATCH] closes bpo-34540: Convert shutil._call_external_zip to use + subprocess rather than distutils.spawn. (GH-8985) + +Upstream-Status: Backport + +Fix CVE-2018-1000802 + +Signed-off-by: Chen Qi +--- + Lib/shutil.py| 16 ++-- + .../Security/2018-08-28-22-11-54.bpo-34540.gfQ0TM.rst| 3 +++ + 2 files changed, 13 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Security/2018-08-28-22-11-54.bpo-34540.gfQ0TM.rst + +diff --git a/Lib/shutil.py b/Lib/shutil.py +index 3462f7c..0ab1a06 100644 +--- a/Lib/shutil.py b/Lib/shutil.py +@@ -413,17 +413,21 @@ def _make_tarball(base_name, base_dir, compress="gzip", verbose=0, dry_run=0, + + return archive_name + +-def _call_external_zip(base_dir, zip_filename, verbose=False, dry_run=False): ++def _call_external_zip(base_dir, zip_filename, verbose, dry_run, logger): + # XXX see if we want to keep an external call here + if verbose: + zipoptions = "-r" + else: + zipoptions = "-rq" +-from distutils.errors import DistutilsExecError +-from distutils.spawn import spawn ++cmd = ["zip", zipoptions, zip_filename, base_dir] ++if logger is not None: ++logger.info(' '.join(cmd)) ++if dry_run: ++return ++import subprocess + try: +-spawn(["zip", zipoptions, zip_filename, base_dir], dry_run=dry_run) +-except DistutilsExecError: ++subprocess.check_call(cmd) ++except subprocess.CalledProcessError: + # XXX really should distinguish between "couldn't find + # external 'zip' command" and "zip failed". + raise ExecError, \ +@@ -458,7 +462,7 @@ def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, logger=None): + zipfile = None + + if zipfile is None: +-_call_external_zip(base_dir, zip_filename, verbose, dry_run) ++_call_external_zip(base_dir, zip_filename, verbose, dry_run, logger) + else: + if logger is not None: + logger.info("creating '%s' and adding '%s' to it", +diff --git a/Misc/NEWS.d/next/Security/2018-08-28-22-11-54.bpo-34540.gfQ0TM.rst b/Misc/NEWS.d/next/Security/2018-08-28-22-11-54.bpo-34540.gfQ0TM.rst +new file mode 100644 +index 000..4f68696 +--- /dev/null b/Misc/NEWS.d/next/Security/2018-08-28-22-11-54.bpo-34540.gfQ0TM.rst +@@ -0,0 +1,3 @@ ++When ``shutil.make_archive`` falls back to the external ``zip`` problem, it ++uses :mod:`subprocess` to invoke it rather than :mod:`distutils.spawn`. This ++closes a possible shell injection vector. +-- +2.7.4 + diff --git a/meta/recipes-devtools/python/python_2.7.15.bb b/meta/recipes-devtools/python/python_2.7.15.bb index b402ad6..e8c9475 100644 --- a/meta/recipes-devtools/python/python_2.7.15.bb +++ b/meta/recipes-devtools/python/python_2.7.15.bb @@ -31,6 +31,7 @@ SRC_URI += "\ file://pass-missing-libraries-to-Extension-for-mul.patch \ file://support_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch \ file://float-endian.patch \ + file://0001-closes-bpo-34540-Convert-shutil._call_external_zip-t.patch \ " S = "${WORKDIR}/Python-${PV}" -- 1.9.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 2/2] python: backport patch to fix CVE-2018-14647
Backport patch to fix the following CVE. CVE: CVE-2018-14647 Signed-off-by: Chen Qi --- ...23-Use-XML_SetHashSalt-in-_elementtree-GH.patch | 98 ++ meta/recipes-devtools/python/python_2.7.15.bb | 1 + 2 files changed, 99 insertions(+) create mode 100644 meta/recipes-devtools/python/python/0001-2.7-bpo-34623-Use-XML_SetHashSalt-in-_elementtree-GH.patch diff --git a/meta/recipes-devtools/python/python/0001-2.7-bpo-34623-Use-XML_SetHashSalt-in-_elementtree-GH.patch b/meta/recipes-devtools/python/python/0001-2.7-bpo-34623-Use-XML_SetHashSalt-in-_elementtree-GH.patch new file mode 100644 index 000..42c64ca --- /dev/null +++ b/meta/recipes-devtools/python/python/0001-2.7-bpo-34623-Use-XML_SetHashSalt-in-_elementtree-GH.patch @@ -0,0 +1,98 @@ +From 3ffc80959f01f9fde548f1632694b9f950c2dd7c Mon Sep 17 00:00:00 2001 +From: Christian Heimes +Date: Tue, 18 Sep 2018 15:13:09 +0200 +Subject: [PATCH] [2.7] bpo-34623: Use XML_SetHashSalt in _elementtree + (GH-9146) (GH-9394) + +The C accelerated _elementtree module now initializes hash randomization +salt from _Py_HashSecret instead of libexpat's default CPRNG. + +Signed-off-by: Christian Heimes + +https://bugs.python.org/issue34623. +(cherry picked from commit cb5778f00ce48631c7140f33ba242496aaf7102b) + +Co-authored-by: Christian Heimes + + + +https://bugs.python.org/issue34623 + +Upstream-Status: Backport + +Fix CVE-2018-14647 + +Signed-off-by: Chen Qi +--- + Include/pyexpat.h | 4 +++- + Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst | 2 ++ + Modules/_elementtree.c | 5 + + Modules/pyexpat.c | 5 + + 4 files changed, 15 insertions(+), 1 deletion(-) + create mode 100644 Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst + +diff --git a/Include/pyexpat.h b/Include/pyexpat.h +index 5340ef5..3fc5fa5 100644 +--- a/Include/pyexpat.h b/Include/pyexpat.h +@@ -3,7 +3,7 @@ + + /* note: you must import expat.h before importing this module! */ + +-#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.0" ++#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.1" + #define PyExpat_CAPSULE_NAME "pyexpat.expat_CAPI" + + struct PyExpat_CAPI +@@ -43,6 +43,8 @@ struct PyExpat_CAPI + XML_Parser parser, XML_UnknownEncodingHandler handler, + void *encodingHandlerData); + void (*SetUserData)(XML_Parser parser, void *userData); ++/* might be none for expat < 2.1.0 */ ++int (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt); + /* always add new stuff to the end! */ + }; + +diff --git a/Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst b/Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst +new file mode 100644 +index 000..31ad92e +--- /dev/null b/Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst +@@ -0,0 +1,2 @@ ++The C accelerated _elementtree module now initializes hash randomization ++salt from _Py_HashSecret instead of libexpat's default CSPRNG. +diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c +index 1d316a1..a19cbf7 100644 +--- a/Modules/_elementtree.c b/Modules/_elementtree.c +@@ -2574,6 +2574,11 @@ xmlparser(PyObject* self_, PyObject* args, PyObject* kw) + PyErr_NoMemory(); + return NULL; + } ++/* expat < 2.1.0 has no XML_SetHashSalt() */ ++if (EXPAT(SetHashSalt) != NULL) { ++EXPAT(SetHashSalt)(self->parser, ++ (unsigned long)_Py_HashSecret.prefix); ++} + + ALLOC(sizeof(XMLParserObject), "create expatparser"); + +diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c +index 2b4d312..1f8c0d7 100644 +--- a/Modules/pyexpat.c b/Modules/pyexpat.c +@@ -2042,6 +2042,11 @@ MODULE_INITFUNC(void) + capi.SetProcessingInstructionHandler = XML_SetProcessingInstructionHandler; + capi.SetUnknownEncodingHandler = XML_SetUnknownEncodingHandler; + capi.SetUserData = XML_SetUserData; ++#if XML_COMBINED_VERSION >= 20100 ++capi.SetHashSalt = XML_SetHashSalt; ++#else ++capi.SetHashSalt = NULL; ++#endif + + /* export using capsule */ + capi_object = PyCapsule_New(&capi, PyExpat_CAPSULE_NAME, NULL); +-- +2.7.4 + diff --git a/meta/recipes-devtools/python/python_2.7.15.bb b/meta/recipes-devtools/python/python_2.7.15.bb index e8c9475..dd969d8 100644 --- a/meta/recipes-devtools/python/python_2.7.15.bb +++ b/meta/recipes-devtools/python/python_2.7.15.bb @@ -32,6 +32,7 @@ SRC_URI += "\ file://support_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch \ file://float-endian.patch \ file://0001-closes-bpo-34540-Convert-shutil._call_external_zip-t.patch \ + file://0001-2.7-bpo-34623-Use-XML_SetHashSalt-in-_elementtree-GH.patch \ " S = "${WORKDIR}/Python-${PV}" -- 1.9.1 -- ___ Openembedded-core mailing list Openembedded-core@
[OE-core] [PATCH] buildtools-tarball: add nativesdk-rpcsvc-proto
From: Mingli Yu Fedora28 repackages rpcgen program to rpcgen package and the program will no longer be part of the glibc-common package. fedora 28: $ rpm -qf /usr/bin/rpcgen rpcgen-1.3.1-4.fc28.x86_64 fedora 27: $ rpm -qf /usr/bin/rpcgen glibc-common-2.26-27.fc27.x86_64 Once build a project on fedora28 host without installing the extra rpcgen package, there comes below error: ERROR: Unable to start bitbake server ERROR: Last 10 lines of server log for this session (/yocto/builds/upgrade2/bitbake-cookerdaemon.log): self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset) File "/yocto/poky/bitbake/lib/bb/cooker.py", line 197, in __init__ self.initConfigurationData() File "/yocto/poky/bitbake/lib/bb/cooker.py", line 356, in initConfigurationData self.databuilder.parseBaseConfiguration() File "/yocto/poky/bitbake/lib/bb/cookerdata.py", line 317, in parseBaseConfiguration raise bb.BBHandledException bb.BBHandledException ERROR: The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed: rpcgen So add nativesdk-rpcsvc-proto to provide the program rpcgen to fix the gap. Signed-off-by: Mingli Yu --- meta/recipes-core/meta/buildtools-tarball.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/recipes-core/meta/buildtools-tarball.bb b/meta/recipes-core/meta/buildtools-tarball.bb index 7ab7907..91df6f1 100644 --- a/meta/recipes-core/meta/buildtools-tarball.bb +++ b/meta/recipes-core/meta/buildtools-tarball.bb @@ -24,6 +24,7 @@ TOOLCHAIN_HOST_TASK ?= "\ nativesdk-ca-certificates \ nativesdk-texinfo \ nativesdk-libnss-nis \ +nativesdk-rpcsvc-proto \ " MULTIMACH_TARGET_SYS = "${SDK_ARCH}-nativesdk${SDK_VENDOR}-${SDK_OS}" -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 0/2] python: fix two CVEs
The following changes since commit 7e8056d96ebe85d72bc4cb961e5766968db2ece2: systemtap: Fix typo in chown command (2018-10-17 13:41:12 +0100) are available in the git repository at: git://git.pokylinux.org/poky-contrib ChenQi/python-cve http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/python-cve Chen Qi (2): python: backport patch to fix CVE-2018-1000802 python: backport patch to fix CVE-2018-14647 ...23-Use-XML_SetHashSalt-in-_elementtree-GH.patch | 98 ++ ...34540-Convert-shutil._call_external_zip-t.patch | 69 +++ meta/recipes-devtools/python/python_2.7.15.bb | 2 + 3 files changed, 169 insertions(+) create mode 100644 meta/recipes-devtools/python/python/0001-2.7-bpo-34623-Use-XML_SetHashSalt-in-_elementtree-GH.patch create mode 100644 meta/recipes-devtools/python/python/0001-closes-bpo-34540-Convert-shutil._call_external_zip-t.patch -- 1.9.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] os-release: move to nonarch_libdir
I suspect this is the correct fix for multilib conflict of os-release after the allarch/multilib change. Kai, could you please verify if the following patch could be dropped with this patch applied? commit 591a11ba58ce3c2c147bb1f8202bc6a0092b70eb Author: Kai Kang Date: Wed Oct 3 00:27:14 2018 +0800 os-release: avoid multilib expand Add os-release to NON_MULTILIB_RECIPES in multilib.conf that do not do multilib expand for os-release. (From OE-Core rev: 361382ca16c276e1e404eab58c0956a2b6d23d7e) Signed-off-by: Kai Kang Signed-off-by: Richard Purdie Best Regards, Chen Qi On 10/18/2018 11:24 PM, Dan McGregor wrote: From: Dan McGregor Even on multilib systems, /usr/lib is where systemd expects the os-release file to live. Signed-off-by: Dan McGregor --- meta/recipes-core/os-release/os-release.bb | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/meta/recipes-core/os-release/os-release.bb b/meta/recipes-core/os-release/os-release.bb index bf4f815a10d..7f3d9cba00c 100644 --- a/meta/recipes-core/os-release/os-release.bb +++ b/meta/recipes-core/os-release/os-release.bb @@ -42,9 +42,9 @@ python do_compile () { do_compile[vardeps] += "${OS_RELEASE_FIELDS}" do_install () { -install -d ${D}${libdir} ${D}${sysconfdir} -install -m 0644 os-release ${D}${libdir}/ -lnr ${D}${libdir}/os-release ${D}${sysconfdir}/os-release +install -d ${D}${nonarch_libdir} ${D}${sysconfdir} +install -m 0644 os-release ${D}${nonarch_libdir}/ +lnr ${D}${nonarch_libdir}/os-release ${D}${sysconfdir}/os-release } -FILES_${PN} += "${libdir}/os-release" +FILES_${PN} += "${nonarch_libdir}/os-release" -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/2] go: Upgrade to 1.11.1
Drop 1.10 recipes in favor of 1.11 we have had reports of 1.10 not being quite functional wth OE Signed-off-by: Khem Raj --- ...-to-be-overridden-in-the-environment.patch | 64 -- ...-arm64-fix-branch-too-far-with-TBZ-l.patch | 58 .../go/{go-1.10.inc => go-1.11.inc} | 9 ++- ...ow-CC-and-CXX-to-have-multiple-words.patch | 12 ++-- ...ent-based-hash-generation-less-pedan.patch | 46 ++--- ...-to-be-overridden-in-the-environment.patch | 48 + ...4-ld-add-soname-to-shareable-objects.patch | 16 ++--- ...de-CC-when-building-dist-and-go_boot.patch | 15 ++--- ...dist-separate-host-and-target-builds.patch | 67 ++- ...d-go-make-GOROOT-precious-by-default.patch | 50 +++--- ...place-glibc-dynamic-linker-with-musl.patch | 24 +++ ...dian_1.10.bb => go-cross-canadian_1.11.bb} | 0 .../go/{go-cross_1.10.bb => go-cross_1.11.bb} | 0 ...o-crosssdk_1.10.bb => go-crosssdk_1.11.bb} | 0 .../{go-native_1.10.bb => go-native_1.11.bb} | 0 ...{go-runtime_1.10.bb => go-runtime_1.11.bb} | 0 .../go/{go_1.10.bb => go_1.11.bb} | 0 17 files changed, 163 insertions(+), 246 deletions(-) delete mode 100644 meta/recipes-devtools/go/go-1.10/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch delete mode 100644 meta/recipes-devtools/go/go-1.10/0008-cmd-internal-obj-arm64-fix-branch-too-far-with-TBZ-l.patch rename meta/recipes-devtools/go/{go-1.10.inc => go-1.11.inc} (74%) rename meta/recipes-devtools/go/{go-1.10 => go-1.11}/0001-allow-CC-and-CXX-to-have-multiple-words.patch (79%) rename meta/recipes-devtools/go/{go-1.10 => go-1.11}/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch (85%) create mode 100644 meta/recipes-devtools/go/go-1.11/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch rename meta/recipes-devtools/go/{go-1.10 => go-1.11}/0004-ld-add-soname-to-shareable-objects.patch (79%) rename meta/recipes-devtools/go/{go-1.10 => go-1.11}/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch (80%) rename meta/recipes-devtools/go/{go-1.10 => go-1.11}/0006-cmd-dist-separate-host-and-target-builds.patch (88%) rename meta/recipes-devtools/go/{go-1.10 => go-1.11}/0007-cmd-go-make-GOROOT-precious-by-default.patch (64%) rename meta/recipes-devtools/go/{go-1.10 => go-1.11}/0009-ld-replace-glibc-dynamic-linker-with-musl.patch (91%) rename meta/recipes-devtools/go/{go-cross-canadian_1.10.bb => go-cross-canadian_1.11.bb} (100%) rename meta/recipes-devtools/go/{go-cross_1.10.bb => go-cross_1.11.bb} (100%) rename meta/recipes-devtools/go/{go-crosssdk_1.10.bb => go-crosssdk_1.11.bb} (100%) rename meta/recipes-devtools/go/{go-native_1.10.bb => go-native_1.11.bb} (100%) rename meta/recipes-devtools/go/{go-runtime_1.10.bb => go-runtime_1.11.bb} (100%) rename meta/recipes-devtools/go/{go_1.10.bb => go_1.11.bb} (100%) diff --git a/meta/recipes-devtools/go/go-1.10/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch b/meta/recipes-devtools/go/go-1.10/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch deleted file mode 100644 index 818fe66700..00 --- a/meta/recipes-devtools/go/go-1.10/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch +++ /dev/null @@ -1,64 +0,0 @@ -From acd179b49f1fc8d6f7f69e569fb4a56039c725a1 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Sat, 17 Feb 2018 05:24:20 -0800 -Subject: [PATCH 3/9] allow GOTOOLDIR to be overridden in the environment - -to allow for split host/target build roots - -Upstream-Status: Inappropriate [OE specific] - -Signed-off-by: Matt Madison - src/cmd/dist/build.go | 4 +++- - src/cmd/go/internal/cfg/cfg.go | 6 +- - src/go/build/build.go | 2 +- - 3 files changed, 9 insertions(+), 3 deletions(-) - -diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go -index 49ed80033e..afc615b5c2 100644 a/src/cmd/dist/build.go -+++ b/src/cmd/dist/build.go -@@ -220,7 +220,9 @@ func xinit() { - workdir = xworkdir() - xatexit(rmworkdir) - -- tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch) -+ if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" { -+ tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch) -+ } - } - - // compilerEnv returns a map from "goos/goarch" to the -diff --git a/src/cmd/go/internal/cfg/cfg.go b/src/cmd/go/internal/cfg/cfg.go -index 1de4f0dc79..4f6010d660 100644 a/src/cmd/go/internal/cfg/cfg.go -+++ b/src/cmd/go/internal/cfg/cfg.go -@@ -96,7 +96,11 @@ func init() { - // as the tool directory does not move based on environment variables. - // This matches the initialization of ToolDir in go/build, - // except for using GOROOT rather than runtime.GOROOT(). -- build.ToolDir = filepath.Join(GOROOT, "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH) -+ if s := os.Getenv("GOTOOLDIR"); s != "" { -+ build.ToolDir = filepath.Clean
[OE-core] [PATCH 2/2] tcmode-default: Drop pinning go to 1.9
This ensures that we default to latest go recipes 1.9 is not supported anymore Signed-off-by: Khem Raj --- meta/conf/distro/include/tcmode-default.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc index 15daf801f1..f8da651c5b 100644 --- a/meta/conf/distro/include/tcmode-default.inc +++ b/meta/conf/distro/include/tcmode-default.inc @@ -29,6 +29,7 @@ GDBVERSION ?= "8.2%" GLIBCVERSION ?= "2.28%" LINUXLIBCVERSION ?= "4.18%" QEMUVERSION ?= "3.0%" +GOVERSION ?= "1.11%" PREFERRED_VERSION_gcc ?= "${GCCVERSION}" PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION}" @@ -69,7 +70,6 @@ PREFERRED_VERSION_qemu ?= "${QEMUVERSION}" PREFERRED_VERSION_qemu-native ?= "${QEMUVERSION}" PREFERRED_VERSION_nativesdk-qemu ?= "${QEMUVERSION}" -GOVERSION ?= "1.9%" PREFERRED_VERSION_virtual/${TARGET_PREFIX}go ?= "${GOVERSION}" PREFERRED_VERSION_go-cross-${TARGET_ARCH} ?= "${GOVERSION}" PREFERRED_VERSION_go-crosssdk-${SDK_ARCH} ?= "${GOVERSION}" -- 2.19.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH v2] initscripts: populate-volatiles: Speed up processing
On 12-10-18 18:24, Joshua Watt wrote: > Checking the requirements for each volatiles file in the > populate-volatiles script can be very slow when there are a large number > of volatiles files, easily consuming over 80% of the processing time. > These checks don't usually uncover any problems so concatenate all the > volatiles files together and process them as one large file for a "fast > path" option. This ensures that the penalty for checking the > requirements is only incurred once. In the event that checking the > requirements for the unified file fails, fall back to the slow process > of checking each one individually so that the offending one can be > skipped. > > The core file is handled separately because it is responsible for > creating the temp directory used by check_requirements and thus must > always run first and without having its requirements checked. > > [YOCTO #12949] > > Signed-off-by: Joshua Watt > --- > .../initscripts-1.0/populate-volatile.sh | 37 +-- > 1 file changed, 33 insertions(+), 4 deletions(-) > > diff --git > a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh > b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh > index 35316ec2baa..824f8f3a6ba 100755 > --- a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh > +++ b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh > @@ -112,7 +112,6 @@ check_requirements() { > } > > CFGFILE="$1" > - [ `basename "${CFGFILE}"` = "${COREDEF}" ] && return 0 > > TMP_INTERMED="${TMPROOT}/tmp.$$" > TMP_DEFINED="${TMPROOT}/tmpdefined.$$" > @@ -154,8 +153,11 @@ check_requirements() { > > apply_cfgfile() { > CFGFILE="$1" > + SKIP_REQUIREMENTS="$2" > > - check_requirements "${CFGFILE}" || { > + [ "${VERBOSE}" != "no" ] && echo "Applying ${CFGFILE}" > + > + [ "${SKIP_REQUIREMENTS}" == "yes" ] || check_requirements "${CFGFILE}" > || { > echo "Skipping ${CFGFILE}" > return 1 > } > @@ -231,10 +233,37 @@ then > sh ${ROOT_DIR}/etc/volatile.cache > else > rm -f ${ROOT_DIR}/etc/volatile.cache > ${ROOT_DIR}/etc/volatile.cache.build > - for file in `ls -1 "${CFGDIR}" | sort`; do > - apply_cfgfile "${CFGDIR}/${file}" > + > + # Apply the core file with out checking requirements. ${TMPROOT} is > + # needed by check_requirements but is setup by this file, so it must be > + # processed first and without being checked. > + [ -e "${CFGDIR}/${COREDEF}" ] && apply_cfgfile "${CFGDIR}/${COREDEF}" > "yes" > + > + # Fast path: check_requirements is slow and most of the time doesn't > + # find any problems. If there are a lot of config files, it is much > + # faster to to concatenate them all together and process them once to > + # avoid the overhead of calling check_requirements repeatedly > + TMP_FILE="${TMPROOT}/tmp_volatile.$$" > + rm -f "$TMP_FILE" > + > + CFGFILES="`ls -1 "${CFGDIR}" | grep -v "^${COREDEF}\$" | sort`" > + for file in ${CFGFILES}; do > + cat "${CFGDIR}/${file}" >> "$TMP_FILE" > done You can replace that loop with this: cat `ls -1 "${CFGDIR}" | grep -v "^${COREDEF}\$" | sort` > "$TMP_FILE" (And the ">" instead of ">>" makes that you can remove the "rm" command as well.) > > + if check_requirements "$TMP_FILE" > + then > + apply_cfgfile "$TMP_FILE" "yes" > + else > + # Slow path: One or more config files failed requirements. > + # Process each one individually so the offending one can be > + # skipped > + for file in ${CFGFILES}; do > + apply_cfgfile "${CFGDIR}/${file}" > + done > + fi > + rm "$TMP_FILE" > + > [ -e ${ROOT_DIR}/etc/volatile.cache.build ] && sync && mv > ${ROOT_DIR}/etc/volatile.cache.build ${ROOT_DIR}/etc/volatile.cache > fi > > -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] valgrind: update from 3.13.0 to 3.14.0
On 10/18/18 1:51 PM, Khem Raj wrote: On Thu, Oct 18, 2018 at 5:02 AM Richard Purdie wrote: On #if defined(__GLIBC__) && defined(__GLIBC_PREREQ) Tue, 2018-10-16 at 22:22 -0400, Randy MacLeod wrote: Removed patches are all upstream. Adjusted two patches due to rebase. Signed-off-by: Randy MacLeod I set the autobuilder at this and it fails in musl in do_compile_ptest_base: https://autobuilder.yoctoproject.org/typhoon/#/builders/27/builds/126/steps/7/logs/step1b yeah using __GLIBC_PREREQ needs to be wrapped in #if defined(__GLIBC__) && defined(__GLIBC_PREREQ) #endif For v2 I'll fix the build for musl and remove that unused patch that patchworks pointed out. All the glibc builds succeeded except for arm and mips64 which were not supported by the recipe. I'll check on that with the new version of valgrind at some point, likely on master-wr-> 2.6.1. Here is the pass rate compared to 2.6-M3 QA run: Test run: qa-3.13 vg-3.14 vg-3.13 Tests ran 558 547 538 Passed 215 287 201 Failed 343 260 337 Passrate38.53 52.5 37.4 Last Passrate 49.1 where: qa-3.13 is from the 2.6-M3 QA report vg-3.14 is this update and vg-3.13 is with this update removed using poky at: 3b77e7b785 systemtap: Fix issues from 4.0 upgrade So the ptest results really are better and they are even better than the last pass rate that QA reported. Nonetheless, a 52.5% pass rate isn't good enough so I'll work on that for master-wr with backports to 2.6.1. ../Randy Some notes and more raw data than presented above. BTW, I allocated 4G RAM to the qemu machine after running with the default and seeing the OOM killer run many times. I wonder if the QA test doesn't allocate enough RAM to deal with valgrind's high overhead. The ptests summary using: qemux86-64 using core-image-full-cmdline and 40GB extra FS in the image and running: $ runqemu nographic slirp kvm qemuparams="-m 4096" valgrind-3.14 is: === Test Summary === TOTAL: 579 PASSED: 287 FAILED: 260 SKIPPED: 32 with valgrind-3.13: === Test Summary === TOTAL: 570 PASSED: 201 FAILED: 337 SKIPPED: 32 Cheers, Richard -- ___ 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 1/4] systemd: Remove items that made this machine (qemu) specific
On Wed, 2018-10-17 at 12:43 -0400, Mark Hatle wrote: > Create a new systemd-conf recipe to contain the specific system/machine > configuration items. This new package is now machine specific. > > Without doing this trying to create a single system with multiple BSPs, > one of which was qemu based, would result in the systemd -and- everything that > dependend upon systemd to have their hash changed. The hash changing means > lots of rebuilds, but worse if it's a package based system each different > machine ends with a new PR value and a newly generated package. > > Signed-off-by: Mark Hatle > --- > meta/recipes-core/systemd/systemd-conf.bb | 51 +++ > ...ange-the-default-device-timeout-to-2.patch | 35 - > meta/recipes-core/systemd/systemd_239.bb | 28 -- > 3 files changed, 60 insertions(+), 54 deletions(-) > create mode 100644 meta/recipes-core/systemd/systemd-conf.bb > delete mode 100644 > meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch > With this patch, when systemd is enabled, it causes checksum issues: $ oe-selftest -r sstatetests.SStateTests.test_sstate_sametune_samesigs Its fixed by: diff --git a/meta/conf/layer.conf b/meta/conf/layer.conf index 6221a057ce6..504f7fa07ad 100644 --- a/meta/conf/layer.conf +++ b/meta/conf/layer.conf @@ -74,6 +74,7 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \ gnome-icon-theme->librsvg \ font-alias->font-util \ systemd-boot->systemd-bootconf \ + systemd->systemd-conf \ weston-init->weston \ weston-init->kbd \ " Cheers, Richard -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 2/5] oeqa/core/runner: write testresult to json files
On Thu, 2018-10-18 at 09:47 +, Yeoh, Ee Peng wrote: > Thank you very much for your great feedbacks and inputs! > I had completed the refactor and resubmitted the patches as below. > Please let me know if any more feedbacks and inputs! Thanks for the revised series, its looking very much improved! I've queued 1/5 onto the autobuilder and its tested ok so that will likely merge. I still have a few concerns about the data format for 2/5. @@ -249,3 +256,24 @@ class OETestRunner(_TestRunner): > self._list_tests_module(suite) > > return OEListTestsResult() > + > +class OETestResultJSONHelper(object): > + > +def _create_json_testresult_string(self, test_results, > test_environments): > +testcase_dict = {} > +for testcase in sorted(test_results): > +testcase_dict[testcase] = {"testresult": > test_results[testcase][0], "log": test_results[testcase][1]} > +testresult_object = {'testenvironment': test_environments, > + 'testcase': testcase_dict} I'd like to be able to store more than one set of results in a single json file. In order to make that work, the above format will need tweaking slightly. Something like: testresult_object = {resultid : {'configuration': test_environments, 'results': testcase_dict}} where resultid would be something like "imagetest-qemux86-core-image-sato-YYMMDDHHMMSS" and passed in to the function by the call site. It'd be similar to the other log file the tests generate. We could also perhaps use pid instead of a timestamp in there. A timestamp would be good in the configuration section. Also, we need to record which revision of the configured layers this test result was with. The get_layers_branch_rev() function in base.bbclass should give an idea of how to get this information using existing functions. > +return json.dumps(testresult_object, sort_keys=True, indent=4) > + > +def _write_file(self, write_dir, file_name, file_content): > +file_path = os.path.join(write_dir, file_name) > +with open(file_path, 'w') as the_file: > +the_file.write(file_content) > + > +def dump_testresult_file(self, test_results, test_environments, > write_dir): > +if not os.path.exists(write_dir): No need for this if test here since mkdirhier handles that. > +bb.utils.mkdirhier(write_dir) > +json_testresult = self._create_json_testresult_string(test_results, > test_environments) > +self._write_file(write_dir, 'testresults.json', json_testresult) As mentioned above, I'd really like if if we could put all the test results into one json file as this would save the autobuilder having to combine them all. That should be straight forward to do but we need to be careful about races. This means locking a lockfile alongside the results file which we can do with bb.utils.lockfile() call, then writing the results, then calling unlockfile(). With regard to the other patches, for selftest we do need to log which MACHINE/DISTRO was used. DISTRO and IMAGE_PKGTYPE also needs adding to testimage and SDKMACHINE and IMAGE_PKGTYPE to testsdk. Cheers, Richard -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] Missing venv module in Python 3
Hi Ross, Thank you for you prompt reply. Apologies if I was not clear enough in my previous message. python3-pyvenv is indeed a package that gets built with python3. However, pyvenv is just a short script that imports the venv module. Including the python3-pyvenv package does not solve the issue as the creation of a virtual environment using "python3 -m venv my_env" or "pyvenv my_env" results in a error about the missing venv module. See the entire content of pyvenv: --- #! /usr/bin/python3.5 if __name__ == '__main__': import sys rc = 1 try: import venv venv.main() rc = 0 except Exception as e: print('Error: %s' % e, file=sys.stderr) sys.exit(rc) The venv package (https://docs.python.org/3/library/venv.html) itself is missing although its source is available within Python 3.5 (https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tgz). As mentioned earlier, it seems the issue is because there is no entry in the manifest from which the various Python 3 modules are created (https://github.com/openembedded/openembedded-core/blob/master/meta/recipes-devtools/python/python3/python3-manifest.json). The manifest is generated from https://github.com/openembedded/openembedded-core/blob/master/meta/recipes-devtools/python/python3/create_manifest3.py, and it does not seem obvious to me how to go about correctly adding a new module to the manifest, using create_manifest3.py or otherwise. Can you, or others on the mailing list, provide some guidance on how to go about adding the venv module to the manifest? Regards, Hugues/Jonathan From: Burton, Ross Sent: 18 October 2018 14:56 To: Jonathan Haigh Cc: OE-core; Jeremy Johnson; Alejandro Enedino Hernandez Samaniego; Hugues Kamba Subject: Re: [OE-core] Missing venv module in Python 3 venv is packaged in python3-pyvenv. Patches welcome to get that installed out of the box. Ross On Thu, 18 Oct 2018 at 14:35, Jonathan Haigh wrote: > > Hello, > > I have noticed that the venv module is not available with Python 3 in Yocto. > This is possibly because there is no entry for it in > openembedded-core/meta/recipes-devtools/python/python3/python3-manifest.json > > Could you please provide guidance or a fix to make the module available? > > Thank you > > Jonathan Haigh on behalf of Hugues Kamba > IMPORTANT NOTICE: The contents of this email and any attachments are > confidential and may also be privileged. If you are not the intended > recipient, please notify the sender immediately and do not disclose the > contents to any other person, use it for any purpose, or store or copy the > information in any medium. Thank you. > -- > ___ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH v4 2/4] cmake.bbclass: search both sysroot-native and host for native packages
On Thu, 18 Oct 2018 at 16:05, Pascal Bach wrote: > > My suspicion is that for systems where the host has python3-devel > > installed, libcomp-native's cmake is using the host python instead of > > the native python in the sysroot. I'm not sure yet if BOTH means it > > searches the host before the sysroots, or if it is finding the python > > binary in HOSTTOOLS and then asking that what the paths are. Either > > way, it ends up linking to the host libpython3.5.so and going into > > sstate. Another machine in the pool reuses this sstate but it doesn't > > have Python 3.6 installed, so the library link is broken. > That is definitively not the intention here. > > For target builds it is pretty clear that there should be no usage of host > dependencies. > For native it is not so clear to me. There seems to be some dependencies like > the compiler and associated libs. I think ensuring the ordering for native searches is sysroot then host would be sufficient. > What I'm traying to solve here was to get rid of these two lines in the > wireshark recipe [1]: > > -DM_INCLUDE_DIR=${includedir} \ > -DM_LIBRARY=${libdir} \ > > As they effectively add /usr/include and /usr/lib to the search path of cmake. Well that's terrifying. What is that trying to solve? It's building for the target, right? So why is it passing host paths? Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] valgrind: update from 3.13.0 to 3.14.0
On Thu, Oct 18, 2018 at 5:02 AM Richard Purdie wrote: > > On #if defined(__GLIBC__) && defined(__GLIBC_PREREQ) Tue, 2018-10-16 at 22:22 -0400, Randy MacLeod wrote: > > Removed patches are all upstream. > > Adjusted two patches due to rebase. > > > > Signed-off-by: Randy MacLeod > > I set the autobuilder at this and it fails in musl in > do_compile_ptest_base: > > https://autobuilder.yoctoproject.org/typhoon/#/builders/27/builds/126/steps/7/logs/step1b > yeah using __GLIBC_PREREQ needs to be wrapped in #if defined(__GLIBC__) && defined(__GLIBC_PREREQ) #endif > 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
[OE-core] [PATCH 1/1] udev-hwdb: fix postinstall scripts failures when multilib enabled
From: Kai Kang When multilib is enabled and both udev-hwdb and ${MLPREFIX}udev-hwdb are installed to image, it fails to run one of their postinstall scripts that they both call ${base_bindir}/udevadm with same user mode qemu. Duplicate udevadm and add postinst-intercept update_udev_hwdb to fix the failures. Signed-off-by: Kai Kang --- meta/recipes-core/systemd/systemd_239.bb | 13 ++--- meta/recipes-core/udev/eudev_3.2.5.bb| 11 +-- scripts/postinst-intercepts/update_udev_hwdb | 6 ++ 3 files changed, 17 insertions(+), 13 deletions(-) create mode 100644 scripts/postinst-intercepts/update_udev_hwdb diff --git a/meta/recipes-core/systemd/systemd_239.bb b/meta/recipes-core/systemd/systemd_239.bb index 7ed932141d..44e972ebce 100644 --- a/meta/recipes-core/systemd/systemd_239.bb +++ b/meta/recipes-core/systemd/systemd_239.bb @@ -284,6 +284,10 @@ do_install() { chown polkitd:root ${D}${datadir}/polkit-1/rules.d fi fi + + # duplicate udevadm for postinst script + install -d ${D}${libexecdir} + ln ${D}${base_bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm } @@ -542,6 +546,7 @@ FILES_udev += "${base_sbindir}/udevd \ ${systemd_unitdir}/system/*udev* \ ${systemd_unitdir}/system/*.wants/*udev* \ ${base_bindir}/udevadm \ + ${libexecdir}/${MLPREFIX}udevadm \ ${datadir}/bash-completion/completions/udevadm \ " @@ -580,13 +585,7 @@ pkg_prerm_${PN} () { PACKAGE_WRITE_DEPS += "qemu-native" pkg_postinst_udev-hwdb () { if test -n "$D"; then - if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true','false', d)}; then - ${@qemu_run_binary(d, '$D', '${base_bindir}/udevadm')} hwdb --update \ - --root $D - chown root:root $D${sysconfdir}/udev/hwdb.bin - else - $INTERCEPT_DIR/postinst_intercept delay_to_first_boot ${PKG} mlprefix=${MLPREFIX} - fi + $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} else udevadm hwdb --update fi diff --git a/meta/recipes-core/udev/eudev_3.2.5.bb b/meta/recipes-core/udev/eudev_3.2.5.bb index efd62c6495..592dd8f22a 100644 --- a/meta/recipes-core/udev/eudev_3.2.5.bb +++ b/meta/recipes-core/udev/eudev_3.2.5.bb @@ -50,6 +50,10 @@ do_install_append() { # hid2hci has moved to bluez4. removed in udev as of version 169 rm -f ${D}${base_libdir}/udev/hid2hci + + # duplicate udevadm for postinst script + install -d ${D}${libexecdir} + ln ${D}${bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm } do_install_prepend_class-target () { @@ -81,12 +85,7 @@ RPROVIDES_eudev-hwdb += "udev-hwdb" PACKAGE_WRITE_DEPS += "qemu-native" pkg_postinst_eudev-hwdb () { if test -n "$D"; then -if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true','false', d)}; then -${@qemu_run_binary(d, '$D', '${bindir}/udevadm')} hwdb --update --root $D -chown root:root $D${sysconfdir}/udev/hwdb.bin -else -$INTERCEPT_DIR/postinst_intercept delay_to_first_boot ${PKG} mlprefix=${MLPREFIX} -fi +$INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} else udevadm hwdb --update fi diff --git a/scripts/postinst-intercepts/update_udev_hwdb b/scripts/postinst-intercepts/update_udev_hwdb new file mode 100644 index 00..b5cce0a09d --- /dev/null +++ b/scripts/postinst-intercepts/update_udev_hwdb @@ -0,0 +1,6 @@ +#!/bin/sh + +set -e + +PSEUDO_UNLOAD=1 ${binprefix}qemuwrapper -L $D $D${libexecdir}/${binprefix}udevadm hwdb --update --root $D +chown root:root $D${sysconfdir}/udev/hwdb.bin -- 2.18.0 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 0/1] udev-hwdb: fix postinstall scripts failures when multilib enabled
From: Kai Kang The following changes since commit 4ef016683d986cc5291e494789ff5a49b28030eb: bitbake: test/data: Add new tests for task checksum changing/not changing (2018-10-18 10:59:27 +0100) are available in the Git repository at: git://git.pokylinux.org/poky-contrib kangkai/udev http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=kangkai/udev Kai Kang (1): udev-hwdb: fix postinstall scripts failures when multilib enabled meta/recipes-core/systemd/systemd_239.bb | 13 ++--- meta/recipes-core/udev/eudev_3.2.5.bb| 11 +-- scripts/postinst-intercepts/update_udev_hwdb | 6 ++ 3 files changed, 17 insertions(+), 13 deletions(-) create mode 100644 scripts/postinst-intercepts/update_udev_hwdb -- 2.18.0 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/2] meta/classes/testexport: Use manfiest filenames for package and testdata
On Wed, 2018-10-17 at 18:00 -0500, Aníbal Limón wrote: > Is clear to know for what image and machine the testexport package > manifest and testdata was build. > > Signed-off-by: Aníbal Limón > --- > meta/classes/testexport.bbclass | 4 ++-- > meta/lib/oeqa/runtime/context.py | 9 +++-- > 2 files changed, 9 insertions(+), 4 deletions(-) I think this breaks oe-selftest: https://autobuilder.yoctoproject.org/typhoon/#/builders/28/builds/132/steps/7/logs/step2d Cheers, Richard -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 3/4] weston: Remove machine specific append
On 10/18/18 5:24 AM, Burton, Ross wrote: > On Wed, 17 Oct 2018 at 17:44, Mark Hatle wrote: >> -EXTRA_OECONF_append_qemux86 = "\ >> +EXTRA_OECONF_append_x86 = "\ >> WESTON_NATIVE_BACKEND=fbdev-backend.so \ >> " > > This forces all x86 Westons that are not running inside X11 to use > fbdev instead of drm. > > Two questions: > 1) does qemu still need fbdev or does virtio/drm work now? (iirc, we > still have a crippled qemu here) > 2) Can this be overridden in a config file instead I did not understand how to do this. The alternative I see then is to make this a machine_arch package.. since the configuration can change? (I'm not very familiar with this part of the system.) --Mark > Ross > -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/4] systemd: Remove items that made this machine (qemu) specific
On 10/18/18 3:53 AM, ChenQi wrote: > On 10/18/2018 12:43 AM, Mark Hatle wrote: >> Create a new systemd-conf recipe to contain the specific system/machine >> configuration items. This new package is now machine specific. >> >> Without doing this trying to create a single system with multiple BSPs, >> one of which was qemu based, would result in the systemd -and- everything >> that >> dependend upon systemd to have their hash changed. The hash changing means >> lots of rebuilds, but worse if it's a package based system each different >> machine ends with a new PR value and a newly generated package. >> >> Signed-off-by: Mark Hatle >> --- >> meta/recipes-core/systemd/systemd-conf.bb | 51 +++ >> ...ange-the-default-device-timeout-to-2.patch | 35 - >> meta/recipes-core/systemd/systemd_239.bb | 28 -- >> 3 files changed, 60 insertions(+), 54 deletions(-) >> create mode 100644 meta/recipes-core/systemd/systemd-conf.bb >> delete mode 100644 >> meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch >> >> diff --git a/meta/recipes-core/systemd/systemd-conf.bb >> b/meta/recipes-core/systemd/systemd-conf.bb >> new file mode 100644 >> index 00..d39742b3a8 >> --- /dev/null >> +++ b/meta/recipes-core/systemd/systemd-conf.bb >> @@ -0,0 +1,51 @@ >> +require systemd.inc >> + >> +SUMMARY = "Systemd system configuration" >> +DESCRIPTION = "Systemd may require slightly different configuration for \ >> +different machines. For example, qemu machines require a longer \ >> +DefaultTimeoutStartSec setting." >> + >> +PACKAGE_ARCH = "${MACHINE_ARCH}" >> + >> +CONFFILES_${PN} = "${sysconfdir}/machine-id \ >> +${sysconfdir}/systemd/coredump.conf \ >> +${sysconfdir}/systemd/journald.conf \ >> +${sysconfdir}/systemd/logind.conf \ >> +${sysconfdir}/systemd/system.conf \ >> +${sysconfdir}/systemd/user.conf" >> + >> +FILES_${PN} = "${sysconfdir}/machine-id ${sysconfdir}/systemd" >> + >> +do_compile[noexec] = '1' >> + >> +do_install() { >> +install -d ${D}/${sysconfdir}/systemd >> + >> +# Create machine-id >> +# 20:12 < mezcalero> koen: you have three options: a) run >> systemd-machine-id-setup at install time, b) have / read-only and an empty >> file there (for stateless) and c) boot with / writable >> +touch ${D}${sysconfdir}/machine-id >> + >> +install -m 0644 ${S}/src/coredump/coredump.conf >> ${D}${sysconfdir}/systemd/coredump.conf >> + >> +install -m 0644 ${S}/src/journal/journald.conf >> ${D}${sysconfdir}/systemd/journald.conf >> +# Enable journal to forward message to syslog daemon >> +sed -i -e 's/.*ForwardToSyslog.*/ForwardToSyslog=yes/' >> ${D}${sysconfdir}/systemd/journald.conf >> +# Set the maximium size of runtime journal to 64M as default >> +sed -i -e 's/.*RuntimeMaxUse.*/RuntimeMaxUse=64M/' >> ${D}${sysconfdir}/systemd/journald.conf >> + >> +install -m 0644 ${S}/src/login/logind.conf.in >> ${D}${sysconfdir}/systemd/logind.conf >> +# Set KILL_USER_PROCESSES to yes >> +sed -i -e 's/@KILL_USER_PROCESSES@/yes/' >> ${D}${sysconfdir}/systemd/logind.conf >> + >> +install -m 0644 ${S}/src/core/system.conf.in >> ${D}${sysconfdir}/systemd/system.conf >> +# Set MEMORY_ACCOUNTING_DEFAULT to yes >> +sed -i -e 's/@MEMORY_ACCOUNTING_DEFAULT@/yes/' >> ${D}${sysconfdir}/systemd/system.conf >> + >> +install -m 0644 ${S}/src/core/user.conf >> ${D}${sysconfdir}/systemd/user.conf >> +} >> + >> +# Based on change from YP bug 8141, OE commit >> 5196d7bacaef1076c361adaa2867be31759c1b52 >> +do_install_append_qemuall() { >> +# Change DefaultTimeoutStartSec from 90s to 240s >> +echo "DefaultTimeoutStartSec = 240s" >> +} > > Seems to miss something like ">> ${D}${sysconfdir}/systemd/system.conf" ? I will update the commit. Good catch. --Mark > Best Regards, > Chen Qi > >> diff --git >> a/meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch >> >> b/meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch >> deleted file mode 100644 >> index fd7bf3fcf6..00 >> --- >> a/meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch >> +++ /dev/null >> @@ -1,35 +0,0 @@ >> -From 2925c0c3b6ce4056622b86c1c61ee14add430790 Mon Sep 17 00:00:00 2001 >> -From: Chen Qi >> -Date: Thu, 28 Jun 2018 10:56:29 +0800 >> -Subject: [PATCH] core/device.c: Change the default device timeout to 240 >> sec. >> - MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 >> - Content-Transfer-Encoding: 8bit >> -MIME-Version: 1.0 >> -Content-Type: text/plain; charset=UTF-8 >> -Content-Transfer-Encoding: 8bit >> - >> -Upstream-Status: Inappropriate [Specific case QEMU/AB] >> - >> -Signed-off-by: Aníbal Limón >> -Signed-off-by: Khem Raj >> -Signed-off-by: Chen Qi >> >> - src/core/device.c | 2 +- >> - 1 file changed, 1 insertion(+), 1 d
Re: [OE-core] Missing venv module in Python 3
On Thu, 18 Oct 2018 at 16:19, Jonathan Haigh wrote: > The venv package (https://docs.python.org/3/library/venv.html) itself is > missing although its source is available within Python 3.5 > (https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tgz). As mentioned > earlier, it seems the issue is because there is no entry in the manifest from > which the various Python 3 modules are created > (https://github.com/openembedded/openembedded-core/blob/master/meta/recipes-devtools/python/python3/python3-manifest.json). > > The manifest is generated from > https://github.com/openembedded/openembedded-core/blob/master/meta/recipes-devtools/python/python3/create_manifest3.py, > and it does not seem obvious to me how to go about correctly adding a new > module to the manifest, using create_manifest3.py or otherwise. Ah, right. In that case: $ oe-pkgdata-util find-path */*venv*py python3-tests: /usr/lib/python3.5/test/test_venv.py python3-misc: /usr/lib/python3.5/venv/__main__.py python3-misc: /usr/lib/python3.5/venv/__init__.py The files are in the python3-misc package, which is the fallback for everything which isn't explicitly put into another package. I'd say the best fix for this would be to edit the manifest so the venv module goes into the python3-pyvenv package too. Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH v4 0/4] cmake.bbclass improvements
On Thu, Oct 18, 2018 at 7:58 AM Pascal Bach wrote: > > > On 17.10.2018 20:50, Khem Raj wrote: > > On Wed, Oct 17, 2018 at 3:43 AM Pascal Bach wrote: > >> This patchset is unmodified from v3. It is just rebased on top of master > >> which > >> already includes a fixed version of libproxy and piglit. > >> > >> I built all cmake based recipes in oe-core (qemuarm64) and did not find > >> any more issues. > >> > > Can you run world builds on meta-openembedded repositories with > > this series applied and also compile some other large projects which > > use cmake like meta-browser > I can try but usually I get into trouble with the proxy because there are > always some recipes that fetch from some location via some protocol that > doesn't work. Once the current cycle of builds is done on OE builders I will try to schedule this in OE builds and see where it ends up. hopefully by this weekend. > > > > >> Pascal Bach (4): > >> cmake.bbclass: use CMAKE_SYSTEM_LIBRARY_PATH instead of > >> CMAKE_LIBRARY_PATH > >> cmake.bbclass: search both sysroot-native and host for native packages > >> cmake.bbclass: move CMAKE_NO_SYSTEM_FROM_IMPORTED to toolchain.cmake > >> cmake.bbclass: allow cmake to find hosttools > >> > >> meta/classes/cmake.bbclass | 24 +++- > >> 1 file changed, 15 insertions(+), 9 deletions(-) > >> > >> -- > >> 2.11.0 > >> > >> -- > >> ___ > >> Openembedded-core mailing list > >> Openembedded-core@lists.openembedded.org > >> http://lists.openembedded.org/mailman/listinfo/openembedded-core > -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] os-release: move to nonarch_libdir
From: Dan McGregor Even on multilib systems, /usr/lib is where systemd expects the os-release file to live. Signed-off-by: Dan McGregor --- meta/recipes-core/os-release/os-release.bb | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/meta/recipes-core/os-release/os-release.bb b/meta/recipes-core/os-release/os-release.bb index bf4f815a10d..7f3d9cba00c 100644 --- a/meta/recipes-core/os-release/os-release.bb +++ b/meta/recipes-core/os-release/os-release.bb @@ -42,9 +42,9 @@ python do_compile () { do_compile[vardeps] += "${OS_RELEASE_FIELDS}" do_install () { -install -d ${D}${libdir} ${D}${sysconfdir} -install -m 0644 os-release ${D}${libdir}/ -lnr ${D}${libdir}/os-release ${D}${sysconfdir}/os-release +install -d ${D}${nonarch_libdir} ${D}${sysconfdir} +install -m 0644 os-release ${D}${nonarch_libdir}/ +lnr ${D}${nonarch_libdir}/os-release ${D}${sysconfdir}/os-release } -FILES_${PN} += "${libdir}/os-release" +FILES_${PN} += "${nonarch_libdir}/os-release" -- 2.19.0-dev -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v2] util-linux: alternatify cal, rev, and ionice
From: Dan McGregor These are also provided by toybox in its default configuration, and can be turned on in busybox. Signed-off-by: Dan McGregor --- meta/recipes-core/util-linux/util-linux.inc | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/meta/recipes-core/util-linux/util-linux.inc b/meta/recipes-core/util-linux/util-linux.inc index 3d8b3ff592c..2f99e8409f5 100644 --- a/meta/recipes-core/util-linux/util-linux.inc +++ b/meta/recipes-core/util-linux/util-linux.inc @@ -93,7 +93,7 @@ FILES_util-linux-findfs = "${sbindir}/findfs" FILES_util-linux-getopt = "${base_bindir}/getopt.${BPN}" FILES_util-linux-runuser = "${sbindir}/runuser" FILES_util-linux-prlimit = "${bindir}/prlimit" -FILES_util-linux-ionice = "${bindir}/ionice" +FILES_util-linux-ionice = "${bindir}/ionice.${BPN}" FILES_util-linux-su = "${bindir}/su.util-linux ${sysconfdir}/pam.d/su-l" CONFFILES_util-linux-su = "${sysconfdir}/pam.d/su-l" @@ -209,7 +209,7 @@ ALTERNATIVE_${PN} = " \ dmesg kill more mkswap blockdev pivot_root \ hexdump last lastb logger mesg renice wall \ setsid chrt flock utmpdump eject nologin taskset fallocate \ -fsfreeze nsenter \ +fsfreeze nsenter cal rev \ " ALTERNATIVE_LINK_NAME[dmesg] = "${base_bindir}/dmesg" @@ -218,8 +218,10 @@ ALTERNATIVE_LINK_NAME[more] = "${base_bindir}/more" ALTERNATIVE_LINK_NAME[mkswap] = "${base_sbindir}/mkswap" ALTERNATIVE_LINK_NAME[blockdev] = "${base_sbindir}/blockdev" ALTERNATIVE_LINK_NAME[pivot_root] = "${base_sbindir}/pivot_root" +ALTERNATIVE_LINK_NAME[cal] = "${bindir}/cal" ALTERNATIVE_LINK_NAME[eject] = "${bindir}/eject" ALTERNATIVE_LINK_NAME[fallocate] = "${bindir}/fallocate" +ALTERNATIVE_LINK_NAME[rev] = "${bindir}/rev" ALTERNATIVE_LINK_NAME[fsfreeze] = "${sbindir}/fsfreeze" ALTERNATIVE_LINK_NAME[nologin] = "${base_sbindir}/nologin" @@ -293,8 +295,8 @@ ALTERNATIVE_LINK_NAME[mountpoint] = "${base_bindir}/mountpoint" ALTERNATIVE_util-linux-unshare = "unshare" ALTERNATIVE_LINK_NAME[unshare] = "${bindir}/unshare" -ALTERNATIVE_util-linux-switch-root = "switch_root" -ALTERNATIVE_LINK_NAME[switch_root] = "${base_sbindir}/switch_root" +ALTERNATIVE_util-linux-ionice = "ionice" +ALTERNATIVE_LINK_NAME[ionice] = "${bindir}/ionice" BBCLASSEXTEND = "native nativesdk" -- 2.19.0-dev -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH v4 2/4] cmake.bbclass: search both sysroot-native and host for native packages
On 17.10.2018 18:24, Burton, Ross wrote: > I think I figured out why we're seeing odd failures on the > autobuilder, such as > https://autobuilder.yoctoproject.org/typhoon/#/builders/15/builds/125. > > The important bit of the log is: > > File > "/home/pokybuild/yocto-worker/poky-tiny/build/build/tmp/work/qemux86-poky-linux-musl/core-image-minimal/1.0-r0/recipe-sysroot-native/usr/lib/python3.5/site-packages/libcomps/__init__.py", > line 1, in > from ._libpycomps import * > ImportError: libpython3.6m.so.1.0: cannot open shared object file: No > such file or directory > > The smoking gun is that oe-core doesn't have Python 3.6, but 3.5. > > My suspicion is that for systems where the host has python3-devel > installed, libcomp-native's cmake is using the host python instead of > the native python in the sysroot. I'm not sure yet if BOTH means it > searches the host before the sysroots, or if it is finding the python > binary in HOSTTOOLS and then asking that what the paths are. Either > way, it ends up linking to the host libpython3.5.so and going into > sstate. Another machine in the pool reuses this sstate but it doesn't > have Python 3.6 installed, so the library link is broken. That is definitively not the intention here. For target builds it is pretty clear that there should be no usage of host dependencies. For native it is not so clear to me. There seems to be some dependencies like the compiler and associated libs. Maybe there is a way to bring this in a different way that is more selective instead of a general fallback to host as it would be with this patch? What I'm traying to solve here was to get rid of these two lines in the wireshark recipe [1]: -DM_INCLUDE_DIR=${includedir} \ -DM_LIBRARY=${libdir} \ As they effectively add /usr/include and /usr/lib to the search path of cmake. Any toughts? Pascal [1] http://cgit.openembedded.org/meta-openembedded/tree/meta-networking/recipes-support/wireshark/wireshark_2.6.2.bb?h=master#n62 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH v4 0/4] cmake.bbclass improvements
On 17.10.2018 20:50, Khem Raj wrote: > On Wed, Oct 17, 2018 at 3:43 AM Pascal Bach wrote: >> This patchset is unmodified from v3. It is just rebased on top of master >> which >> already includes a fixed version of libproxy and piglit. >> >> I built all cmake based recipes in oe-core (qemuarm64) and did not find any >> more issues. >> > Can you run world builds on meta-openembedded repositories with > this series applied and also compile some other large projects which > use cmake like meta-browser I can try but usually I get into trouble with the proxy because there are always some recipes that fetch from some location via some protocol that doesn't work. > >> Pascal Bach (4): >> cmake.bbclass: use CMAKE_SYSTEM_LIBRARY_PATH instead of >> CMAKE_LIBRARY_PATH >> cmake.bbclass: search both sysroot-native and host for native packages >> cmake.bbclass: move CMAKE_NO_SYSTEM_FROM_IMPORTED to toolchain.cmake >> cmake.bbclass: allow cmake to find hosttools >> >> meta/classes/cmake.bbclass | 24 +++- >> 1 file changed, 15 insertions(+), 9 deletions(-) >> >> -- >> 2.11.0 >> >> -- >> ___ >> 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] Missing venv module in Python 3
venv is packaged in python3-pyvenv. Patches welcome to get that installed out of the box. Ross On Thu, 18 Oct 2018 at 14:35, Jonathan Haigh wrote: > > Hello, > > I have noticed that the venv module is not available with Python 3 in Yocto. > This is possibly because there is no entry for it in > openembedded-core/meta/recipes-devtools/python/python3/python3-manifest.json > > Could you please provide guidance or a fix to make the module available? > > Thank you > > Jonathan Haigh on behalf of Hugues Kamba > IMPORTANT NOTICE: The contents of this email and any attachments are > confidential and may also be privileged. If you are not the intended > recipient, please notify the sender immediately and do not disclose the > contents to any other person, use it for any purpose, or store or copy the > information in any medium. Thank you. > -- > ___ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] Missing venv module in Python 3
Hello, I have noticed that the venv module is not available with Python 3 in Yocto. This is possibly because there is no entry for it in openembedded-core/meta/recipes-devtools/python/python3/python3-manifest.json Could you please provide guidance or a fix to make the module available? Thank you Jonathan Haigh on behalf of Hugues Kamba IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] perf: fix do_compile failure with /tmp mounted with noexec
On a builder which has /tmp mounted nexec, the ARM64 generation of the sycall table will fail: [snip] |perf-1.0/tools/perf/arch/arm64/entry/syscalls//mksyscalltbl: /tmp/create-table-6VGPSt: Permission denied [snip] To avoid the permission denied error, we must instruct the perf build to place temporary files in an appropriate directory (versus always using /tmp). To do this, we need both a kernel source change to perf, and a recipe change to pass the temp directory in by a TMPDIR variable. The linux-yocto has a reference kernel change: [perf arm64: Fix generate system call table failed with /tmp mounted with noexec], that has also been submitted upstream mailing list linux-perf-us...@vger.kernel.org Signed-off-by: Hongxu Jia Reviewed-by: Bruce Ashfield --- meta/recipes-kernel/perf/perf.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb index 586422f..af09904 100644 --- a/meta/recipes-kernel/perf/perf.bb +++ b/meta/recipes-kernel/perf/perf.bb @@ -75,6 +75,7 @@ EXTRA_OEMAKE = '\ perfexecdir=${libexecdir} \ NO_GTK2=1 \ ${PACKAGECONFIG_CONFARGS} \ +TMPDIR="${B}" \ ' EXTRA_OEMAKE += "\ -- 2.10.2 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] valgrind: update from 3.13.0 to 3.14.0
On Tue, 2018-10-16 at 22:22 -0400, Randy MacLeod wrote: > Removed patches are all upstream. > Adjusted two patches due to rebase. > > Signed-off-by: Randy MacLeod I set the autobuilder at this and it fails in musl in do_compile_ptest_base: https://autobuilder.yoctoproject.org/typhoon/#/builders/27/builds/126/steps/7/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 4/4] gstreamer: Remove machine specific append
On Wed, 2018-10-17 at 12:43 -0400, Mark Hatle wrote: > If you try to build a system with multiple BSPs, one of which is qemux86 > or qemux86-64, the gstreamer package will change. This will trigger > anything using gstream to also be rebuilt. > > For a package based system, the PR values will also be incremented each > time. The end result will be an ever growing set of PR values as well as > being unable to tell which configured version of the multimedia components > are really being deployed. > > The solution here was to remove the rrecommend for consistency. > > Signed-off-by: Mark Hatle > --- > meta/recipes-multimedia/gstreamer/gstreamer1.0_1.14.2.bb | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.14.2.bb > b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.14.2.bb > index 7f291f6630..3a6e53de04 100644 > --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.14.2.bb > +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.14.2.bb > @@ -55,8 +55,6 @@ FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" > FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la ${libdir}/gstreamer-1.0/*.a > ${libdir}/gstreamer-1.0/include" > FILES_${PN}-bash-completion += "${datadir}/bash-completion/completions/ > ${datadir}/bash-completion/helpers/gst*" > > -RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 > kernel-module-snd-rawmidi" > -RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 > kernel-module-snd-rawmidi" > RDEPENDS_${PN}-ptest += "make" We can't just delete these, they need moving to the machine conf files instead. Since we need to build M4 soon and this is a problem, I've put a patch into master-next which does this for testing. Cheers, Richard -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] packagegroup-core-tools-profile: disable valgrind on arc
As of today there's no port of Valgrind for ARC so disabling it. Signed-off-by: Alexey Brodkin --- meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb b/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb index 520d907714..4ec1f9284f 100644 --- a/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb +++ b/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb @@ -55,6 +55,7 @@ VALGRIND = "valgrind" VALGRIND_libc-musl = "" VALGRIND_mipsarch = "" VALGRIND_nios2 = "" +VALGRIND_arc = "" VALGRIND_armv4 = "" VALGRIND_armv5 = "" VALGRIND_armv6 = "" -- 2.16.2 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 3/4] weston: Remove machine specific append
On Wed, 17 Oct 2018 at 17:44, Mark Hatle wrote: > -EXTRA_OECONF_append_qemux86 = "\ > +EXTRA_OECONF_append_x86 = "\ > WESTON_NATIVE_BACKEND=fbdev-backend.so \ > " This forces all x86 Westons that are not running inside X11 to use fbdev instead of drm. Two questions: 1) does qemu still need fbdev or does virtio/drm work now? (iirc, we still have a crippled qemu here) 2) Can this be overridden in a config file instead Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/4] util-linux: alternatify cal, rev, and ionice
Can you rebase this on master? There's been a lot of changes here recently. Ross On Wed, 17 Oct 2018 at 22:22, Dan McGregor wrote: > > From: Dan McGregor > > These are also provided by toybox in its default configuration, > and can be turned on in busybox. > > Signed-off-by: Dan McGregor > --- > meta/recipes-core/util-linux/util-linux.inc | 9 +++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/meta/recipes-core/util-linux/util-linux.inc > b/meta/recipes-core/util-linux/util-linux.inc > index 60ac9c20064..35c67a8bd53 100644 > --- a/meta/recipes-core/util-linux/util-linux.inc > +++ b/meta/recipes-core/util-linux/util-linux.inc > @@ -93,7 +93,7 @@ FILES_util-linux-findfs = "${sbindir}/findfs" > FILES_util-linux-getopt = "${base_bindir}/getopt.${BPN}" > FILES_util-linux-runuser = "${sbindir}/runuser" > FILES_util-linux-prlimit = "${bindir}/prlimit" > -FILES_util-linux-ionice = "${bindir}/ionice" > +FILES_util-linux-ionice = "${bindir}/ionice.${BPN}" > FILES_util-linux-su = "${bindir}/su.util-linux ${sysconfdir}/pam.d/su-l" > CONFFILES_util-linux-su = "${sysconfdir}/pam.d/su-l" > > @@ -209,7 +209,7 @@ ALTERNATIVE_${PN} = " \ > dmesg kill more mkswap blockdev pivot_root switch_root \ > hexdump last lastb logger mesg renice wall \ > setsid chrt flock utmpdump eject nologin taskset fallocate \ > -fsfreeze nsenter \ > +fsfreeze nsenter cal rev \ > " > > ALTERNATIVE_LINK_NAME[dmesg] = "${base_bindir}/dmesg" > @@ -219,8 +219,10 @@ ALTERNATIVE_LINK_NAME[mkswap] = "${base_sbindir}/mkswap" > ALTERNATIVE_LINK_NAME[blockdev] = "${base_sbindir}/blockdev" > ALTERNATIVE_LINK_NAME[pivot_root] = "${base_sbindir}/pivot_root" > ALTERNATIVE_LINK_NAME[switch_root] = "${base_sbindir}/switch_root" > +ALTERNATIVE_LINK_NAME[cal] = "${bindir}/cal" > ALTERNATIVE_LINK_NAME[eject] = "${bindir}/eject" > ALTERNATIVE_LINK_NAME[fallocate] = "${bindir}/fallocate" > +ALTERNATIVE_LINK_NAME[rev] = "${bindir}/rev" > ALTERNATIVE_LINK_NAME[fsfreeze] = "${sbindir}/fsfreeze" > ALTERNATIVE_LINK_NAME[nologin] = "${base_sbindir}/nologin" > > @@ -294,6 +296,9 @@ ALTERNATIVE_LINK_NAME[mountpoint] = > "${base_bindir}/mountpoint" > ALTERNATIVE_util-linux-unshare = "unshare" > ALTERNATIVE_LINK_NAME[unshare] = "${bindir}/unshare" > > +ALTERNATIVE_util-linux-ionice = "ionice" > +ALTERNATIVE_LINK_NAME[ionice] = "${bindir}/ionice" > + > BBCLASSEXTEND = "native nativesdk" > > python do_package_prepend () { > -- > 2.19.0-dev > > -- > ___ > 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 2/5] oeqa/core/runner: write testresult to json files
Hi Richard, Thank you very much for your great feedbacks and inputs! I had completed the refactor and resubmitted the patches as below. Please let me know if any more feedbacks and inputs! Thanks, Yeoh Ee Peng [1] http://lists.openembedded.org/pipermail/openembedded-core/2018-October/156835.html [2] http://lists.openembedded.org/pipermail/openembedded-core/2018-October/156836.html [3] http://lists.openembedded.org/pipermail/openembedded-core/2018-October/156837.html [4] http://lists.openembedded.org/pipermail/openembedded-core/2018-October/156838.html [5] http://lists.openembedded.org/pipermail/openembedded-core/2018-October/156839.html -Original Message- From: richard.pur...@linuxfoundation.org [mailto:richard.pur...@linuxfoundation.org] Sent: Monday, October 15, 2018 4:54 PM To: Yeoh, Ee Peng ; openembedded-core@lists.openembedded.org Subject: Re: [OE-core] [PATCH 2/5] oeqa/core/runner: write testresult to json files On Mon, 2018-10-15 at 15:24 +0800, Yeoh Ee Peng wrote: > As part of the solution to replace Testopia to store testresult, OEQA > need to output testresult into json file, where these json testresult > file will be stored in git repository by the future > test-case-management tools. > > Both the testresult (eg. PASSED, FAILED, ERROR) and the test log (eg. > message from unit test assertion) will be created for storing. > > Also the library class inside this patch will be reused by the future > test-case-management tools to write json testresult for manual test > case executed. > > Signed-off-by: Yeoh Ee Peng > --- > meta/lib/oeqa/core/runner.py | 64 > +++- > 1 file changed, 63 insertions(+), 1 deletion(-) > > diff --git a/meta/lib/oeqa/core/runner.py > b/meta/lib/oeqa/core/runner.py index 5ee..56e8526 100644 > --- a/meta/lib/oeqa/core/runner.py > +++ b/meta/lib/oeqa/core/runner.py > @@ -6,6 +6,8 @@ import time > import unittest > import logging > import re > +import json > +import pathlib > > from unittest import TextTestResult as _TestResult from unittest > import TextTestRunner as _TestRunner @@ -119,8 +121,9 @@ class > OETestResult(_TestResult): > self.successes.append((test, None)) > super(OETestResult, self).addSuccess(test) > > -def logDetails(self): > +def logDetails(self, json_file_dir=''): json_file_dir=None > self.tc.logger.info("RESULTS:") > +results = {} > for case_name in self.tc._registry['cases']: > case = self.tc._registry['cases'][case_name] > > @@ -137,6 +140,12 @@ class OETestResult(_TestResult): > t = " (" + "{0:.2f}".format(self.endtime[case.id()] - > self.starttime[case.id()]) + "s)" > > self.tc.logger.info("RESULTS - %s - Testcase %s: %s%s" % > (case.id(), oeid, status, t)) > +results[case.id()] = (status, log) > + > +if len(json_file_dir) > 0: if json_file_dir: > +tresultjsonhelper = OETestResultJSONHelper() > +tresultjsonhelper.dump_testresult_file(results, json_file_dir) > +tresultjsonhelper.dump_log_files(results, > + os.path.join(json_file_dir, 'logs')) > > class OEListTestsResult(object): > def wasSuccessful(self): > @@ -249,3 +258,56 @@ class OETestRunner(_TestRunner): > self._list_tests_module(suite) > > return OEListTestsResult() > + > +class OETestResultJSONHelper(object): > + > +def get_testsuite_from_testcase(self, testcase): > +testsuite = testcase[0:testcase.rfind(".")] > +return testsuite > + > +def get_testsuite_testcase_dictionary(self, testresults): > +testsuite_testcase_dict = {} > +for testcase in testresults.keys(): > +testsuite = self.get_testsuite_from_testcase(testcase) > +if testsuite in testsuite_testcase_dict: > +testsuite_testcase_dict[testsuite].append(testcase) > +else: > +testsuite_testcase_dict[testsuite] = [testcase] > +return testsuite_testcase_dict > + > +def _create_testcase_testresult_object(self, testcase_list, testresults): > +testcase_dict = {} > +for testcase in sorted(testcase_list): > +testcase_dict[testcase] = {"testresult": > testresults[testcase][0]} > +return testcase_dict > + > +def _create_json_testsuite_string(self, testresults): > +testsuite_testcase = > self.get_testsuite_testcase_dictionary(testresults) > +testsuite_object = {'testsuite': {}} > +testsuite_dict = testsuite_object['testsuite'] > +for testsuite in sorted(testsuite_testcase.keys()): > +testsuite_dict[testsuite] = {'testcase': {}} > +testsuite_dict[testsuite]['testcase'] = > self._create_testcase_testresult_object( > + > testsuite_testcase[testsuite], > +
[OE-core] [PATCH 2/5] oeqa/core/runner: write testresult to json files
As part of the solution to replace Testopia to store testresult, OEQA need to output testresult into json file, where these json testresult file will be stored in git repository by the future test-case-management tools. Both the testresult (eg. PASSED, FAILED, ERROR) and the test log (eg. message from unit test assertion) will be created for storing. Also the library class inside this patch will be reused by the future test-case-management tools to write json testresult for manual test case executed. Signed-off-by: Yeoh Ee Peng --- meta/lib/oeqa/core/runner.py | 30 +- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/meta/lib/oeqa/core/runner.py b/meta/lib/oeqa/core/runner.py index f1dd080..e82acdf 100644 --- a/meta/lib/oeqa/core/runner.py +++ b/meta/lib/oeqa/core/runner.py @@ -6,6 +6,7 @@ import time import unittest import logging import re +import json from unittest import TextTestResult as _TestResult from unittest import TextTestRunner as _TestRunner @@ -119,8 +120,9 @@ class OETestResult(_TestResult): self.successes.append((test, None)) super(OETestResult, self).addSuccess(test) -def logDetails(self): +def logDetails(self, json_file_dir=None, test_environments=None): self.tc.logger.info("RESULTS:") +results = {} for case_name in self.tc._registry['cases']: case = self.tc._registry['cases'][case_name] @@ -137,6 +139,11 @@ class OETestResult(_TestResult): t = " (" + "{0:.2f}".format(self.endtime[case.id()] - self.starttime[case.id()]) + "s)" self.tc.logger.info("RESULTS - %s - Testcase %s: %s%s" % (case.id(), oeid, status, t)) +results[case.id()] = (status, log) + +if json_file_dir: +tresultjsonhelper = OETestResultJSONHelper() +tresultjsonhelper.dump_testresult_file(results, test_environments, json_file_dir) class OEListTestsResult(object): def wasSuccessful(self): @@ -249,3 +256,24 @@ class OETestRunner(_TestRunner): self._list_tests_module(suite) return OEListTestsResult() + +class OETestResultJSONHelper(object): + +def _create_json_testresult_string(self, test_results, test_environments): +testcase_dict = {} +for testcase in sorted(test_results): +testcase_dict[testcase] = {"testresult": test_results[testcase][0], "log": test_results[testcase][1]} +testresult_object = {'testenvironment': test_environments, + 'testcase': testcase_dict} +return json.dumps(testresult_object, sort_keys=True, indent=4) + +def _write_file(self, write_dir, file_name, file_content): +file_path = os.path.join(write_dir, file_name) +with open(file_path, 'w') as the_file: +the_file.write(file_content) + +def dump_testresult_file(self, test_results, test_environments, write_dir): +if not os.path.exists(write_dir): +bb.utils.mkdirhier(write_dir) +json_testresult = self._create_json_testresult_string(test_results, test_environments) +self._write_file(write_dir, 'testresults.json', json_testresult) -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 4/5] testimage.bbclass: write testresult to json files
As part of the solution to replace Testopia to store testresult, OEQA testimage need to output testresult into json files, where these json testresult files will be stored into git repository by the future test-case-management tools. Signed-off-by: Yeoh Ee Peng --- meta/classes/testimage.bbclass | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/meta/classes/testimage.bbclass b/meta/classes/testimage.bbclass index 2642a72..728c1af 100644 --- a/meta/classes/testimage.bbclass +++ b/meta/classes/testimage.bbclass @@ -308,7 +308,14 @@ def testimage_main(d): # Show results (if we have them) if not results: bb.fatal('%s - FAILED - tests were interrupted during execution' % pn, forcelog=True) -results.logDetails() +image = d.getVar("IMAGE_BASENAME") +json_result_dir = os.path.join(d.getVar("WORKDIR"), + 'temp', + 'json_testresults-%s' % os.getpid(), + 'runtime', + machine, + image) +results.logDetails(json_result_dir, {'TEST_TYPE': 'runtime', 'MACHINE': machine, 'IMAGE_BASENAME': image}) results.logSummary(pn) if not results.wasSuccessful(): bb.fatal('%s - FAILED - check the task log and the ssh log' % pn, forcelog=True) -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 5/5] testsdk.bbclass: write testresult to json files
As part of the solution to replace Testopia to store testresult, OEQA sdk and sdkext need to output testresult into json files, where these json testresult files will be stored into git repository by the future test-case-management tools. Signed-off-by: Yeoh Ee Peng --- meta/classes/testsdk.bbclass | 18 ++ 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/meta/classes/testsdk.bbclass b/meta/classes/testsdk.bbclass index d3f475d..ef4d160 100644 --- a/meta/classes/testsdk.bbclass +++ b/meta/classes/testsdk.bbclass @@ -80,8 +80,13 @@ def testsdk_main(d): component = "%s %s" % (pn, OESDKTestContextExecutor.name) context_msg = "%s:%s" % (os.path.basename(tcname), os.path.basename(sdk_env)) - -result.logDetails() +image = d.getVar("IMAGE_BASENAME") +json_result_dir = os.path.join(d.getVar("WORKDIR"), + 'temp', + 'json_testresults-%s' % os.getpid(), + 'sdk', + image) +result.logDetails(json_result_dir, {'TEST_TYPE': 'sdk', 'IMAGE_BASENAME': image}) result.logSummary(component, context_msg) if not result.wasSuccessful(): @@ -184,8 +189,13 @@ def testsdkext_main(d): component = "%s %s" % (pn, OESDKExtTestContextExecutor.name) context_msg = "%s:%s" % (os.path.basename(tcname), os.path.basename(sdk_env)) - -result.logDetails() +image = d.getVar("IMAGE_BASENAME") +json_result_dir = os.path.join(d.getVar("WORKDIR"), + 'temp', + 'json_testresults-%s' % os.getpid(), + 'sdkext', + image) +result.logDetails(json_result_dir, {'TEST_TYPE': 'sdkext', 'IMAGE_BASENAME': image}) result.logSummary(component, context_msg) if not result.wasSuccessful(): -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/5] oeqa/core/runner: refactor for OEQA to write json testresult
Refactor the original _getDetailsNotPassed method to return testresult details (test status and log), which will be reused by future OEQA code to write json testresult. Take the opportunity to consolidate and simplify the logic used to gather test status and log within the TestResult instance. Signed-off-by: Yeoh Ee Peng --- meta/lib/oeqa/core/runner.py | 70 ++-- 1 file changed, 29 insertions(+), 41 deletions(-) diff --git a/meta/lib/oeqa/core/runner.py b/meta/lib/oeqa/core/runner.py index eeb625b..f1dd080 100644 --- a/meta/lib/oeqa/core/runner.py +++ b/meta/lib/oeqa/core/runner.py @@ -76,40 +76,43 @@ class OETestResult(_TestResult): else: msg = "%s - FAIL - Required tests failed" % component skipped = len(self.skipped) -if skipped: +if skipped: msg += " (skipped=%d)" % skipped self.tc.logger.info(msg) -def _getDetailsNotPassed(self, case, type, desc): -found = False +def _getTestResultDetails(self, case): +result_types = {'failures': 'FAILED', 'errors': 'ERROR', 'skipped': 'SKIPPED', +'expectedFailures': 'EXPECTEDFAIL', 'successes': 'PASSED'} -for (scase, msg) in getattr(self, type): -if case.id() == scase.id(): -found = True -break -scase_str = str(scase.id()) - -# When fails at module or class level the class name is passed as string -# so figure out to see if match -m = re.search("^setUpModule \((?P.*)\)$", scase_str) -if m: -if case.__class__.__module__ == m.group('module_name'): +for rtype in result_types: +found = False +for (scase, msg) in getattr(self, rtype): +if case.id() == scase.id(): found = True break +scase_str = str(scase.id()) -m = re.search("^setUpClass \((?P.*)\)$", scase_str) -if m: -class_name = "%s.%s" % (case.__class__.__module__, -case.__class__.__name__) +# When fails at module or class level the class name is passed as string +# so figure out to see if match +m = re.search("^setUpModule \((?P.*)\)$", scase_str) +if m: +if case.__class__.__module__ == m.group('module_name'): +found = True +break -if class_name == m.group('class_name'): -found = True -break +m = re.search("^setUpClass \((?P.*)\)$", scase_str) +if m: +class_name = "%s.%s" % (case.__class__.__module__, +case.__class__.__name__) + +if class_name == m.group('class_name'): +found = True +break -if found: -return (found, msg) +if found: +return result_types[rtype], msg -return (found, None) +return 'UNKNOWN', None def addSuccess(self, test): #Added so we can keep track of successes too @@ -121,17 +124,7 @@ class OETestResult(_TestResult): for case_name in self.tc._registry['cases']: case = self.tc._registry['cases'][case_name] -result_types = ['failures', 'errors', 'skipped', 'expectedFailures', 'successes'] -result_desc = ['FAILED', 'ERROR', 'SKIPPED', 'EXPECTEDFAIL', 'PASSED'] - -fail = False -desc = None -for idx, name in enumerate(result_types): -(fail, msg) = self._getDetailsNotPassed(case, result_types[idx], -result_desc[idx]) -if fail: -desc = result_desc[idx] -break +(status, log) = self._getTestResultDetails(case) oeid = -1 if hasattr(case, 'decorators'): @@ -143,12 +136,7 @@ class OETestResult(_TestResult): if case.id() in self.starttime and case.id() in self.endtime: t = " (" + "{0:.2f}".format(self.endtime[case.id()] - self.starttime[case.id()]) + "s)" -if fail: -self.tc.logger.info("RESULTS - %s - Testcase %s: %s%s" % (case.id(), -oeid, desc, t)) -else: -self.tc.logger.info("RESULTS - %s - Testcase %s: %s%s" % (case.id(), -oeid, 'UNKNOWN', t)) +self.tc.logger.info("RESULTS - %s - Testcase %s: %s%s" % (case.id(), oeid, status, t)) class OEListTestsResult(object): def wasSuccessful(self): -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.or
[OE-core] [PATCH 3/5] oeqa/selftest/context: write testresult to json files
As part of the solution to replace Testopia to store testresult, OEQA selftest need to output testresult into json files, where these json testresult files will be stored into git repository by the future test-case-management tools. Signed-off-by: Yeoh Ee Peng --- meta/lib/oeqa/selftest/context.py | 13 + 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/meta/lib/oeqa/selftest/context.py b/meta/lib/oeqa/selftest/context.py index c78947e..c443e74 100644 --- a/meta/lib/oeqa/selftest/context.py +++ b/meta/lib/oeqa/selftest/context.py @@ -73,7 +73,7 @@ class OESelftestTestContextExecutor(OETestContextExecutor): parser.add_argument('--machine', required=False, choices=['random', 'all'], help='Run tests on different machines (random/all).') - + parser.set_defaults(func=self.run) def _get_available_machines(self): @@ -99,8 +99,8 @@ class OESelftestTestContextExecutor(OETestContextExecutor): return cases_paths def _process_args(self, logger, args): -args.output_log = '%s-results-%s.log' % (self.name, -time.strftime("%Y%m%d%H%M%S")) +args.test_start_time = time.strftime("%Y%m%d%H%M%S") +args.output_log = '%s-results-%s.log' % (self.name, args.test_start_time) args.test_data_file = None args.CASES_PATHS = None @@ -205,6 +205,7 @@ class OESelftestTestContextExecutor(OETestContextExecutor): runCmd("bitbake -e") def _internal_run(self, logger, args): +import platform self.module_paths = self._get_cases_paths( self.tc_kwargs['init']['td']['BBPATH'].split(':')) @@ -220,7 +221,11 @@ class OESelftestTestContextExecutor(OETestContextExecutor): else: self._pre_run() rc = self.tc.runTests(**self.tc_kwargs['run']) -rc.logDetails() +json_result_dir = os.path.join(os.path.dirname(os.path.abspath(args.output_log)), + 'json_testresults-%s' % args.test_start_time, + 'oe-selftest') +rc.logDetails(json_result_dir, {'TEST_TYPE': 'oe-selftest', +'HOST_OS': platform.linux_distribution()}) rc.logSummary(self.name) return rc -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] boost.inc: make libboost_python3.so available
On Thu, 18 Oct 2018 at 03:29, Yu, Mingli wrote: > Many thanks for Ross's clarification! > If we need to fix the packages one by one, but not add the hack at boost > side, then https://bugzilla.yoctoproject.org/show_bug.cgi?id=12833 > should be invalid. Agreed, done! Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] mpfr: Fix compilation for ARC
MPFR has a couple of things implemented in assembly and in case of ARC those parts were written long ago when ARC GCC port was not yet upstreamed. On upstreaming of GCC some constraints were changed and so we can no longer build MPFR for ARC with up-to-date tools seeing something like that: | In file included from ../../mpfr-4.0.1/src/mpfr-impl.h:112, | from ../../mpfr-4.0.1/src/mul.c:24: | ../../mpfr-4.0.1/src/mul.c: In function 'mpfr_mul': | ../../mpfr-4.0.1/src/mpfr-longlong.h:415:3: error: impossible constraint in 'asm' |__asm__ ("add.f\t%1, %4, %5\n\tadc\t%0, %2, %3" \ |^~~ Signed-off-by: Alexey Brodkin --- .../0001-Fix-obsolete-ARC-asm-constraints.patch| 45 ++ meta/recipes-support/mpfr/mpfr_4.0.1.bb| 3 +- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-support/mpfr/mpfr/0001-Fix-obsolete-ARC-asm-constraints.patch diff --git a/meta/recipes-support/mpfr/mpfr/0001-Fix-obsolete-ARC-asm-constraints.patch b/meta/recipes-support/mpfr/mpfr/0001-Fix-obsolete-ARC-asm-constraints.patch new file mode 100644 index 00..59d1b0db67 --- /dev/null +++ b/meta/recipes-support/mpfr/mpfr/0001-Fix-obsolete-ARC-asm-constraints.patch @@ -0,0 +1,45 @@ +mpfr-longlong.h: Fix obsolete ARC asm constraints + +This patch replaces obsolete ARC "J" asm constraint with +up-to-date "Cal" constraint. + +"J" constraint only existed in pre-upstream GCC port for ARC. +In current upstream port "Cal" constraint is used which leads +to compile-time error. + +Proposed fix is known to work in Buildroot, Crosstool-NG etc. + +[1] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=09cb6a17e71bd40d2fbfaf82a1502fc210e33c87 + +Signed-off-by: Claudiu Zissulescu +Signed-off-by: Vlad Zakharov +Signed-off-by: Alexey Brodkin + +Upstream-Status: Backport [https://gforge.inria.fr/scm/viewvc.php/mpfr?view=revision&revision=13251] +--- +Index: src/mpfr-longlong.h +=== +--- a/src/mpfr-longlong.h (revision 10963) b/src/mpfr-longlong.h (working copy) +@@ -416,17 +416,17 @@ + : "=r" (sh), \ +"=&r" (sl) \ + : "r" ((USItype) (ah)), \ +- "rIJ" ((USItype) (bh)),\ ++ "rICal" ((USItype) (bh)), \ +"%r" ((USItype) (al)), \ +- "rIJ" ((USItype) (bl))) ++ "rICal" ((USItype) (bl))) + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + __asm__ ("sub.f\t%1, %4, %5\n\tsbc\t%0, %2, %3" \ + : "=r" (sh), \ +"=&r" (sl) \ + : "r" ((USItype) (ah)), \ +- "rIJ" ((USItype) (bh)),\ ++ "rICal" ((USItype) (bh)), \ +"r" ((USItype) (al)), \ +- "rIJ" ((USItype) (bl))) ++ "rICal" ((USItype) (bl))) + #endif + + #if defined (__arm__) && (defined (__thumb2__) || !defined (__thumb__)) \ diff --git a/meta/recipes-support/mpfr/mpfr_4.0.1.bb b/meta/recipes-support/mpfr/mpfr_4.0.1.bb index f85a846e33..2eee76a357 100644 --- a/meta/recipes-support/mpfr/mpfr_4.0.1.bb +++ b/meta/recipes-support/mpfr/mpfr_4.0.1.bb @@ -9,7 +9,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6" DEPENDS = "gmp autoconf-archive" -SRC_URI = "http://www.mpfr.org/mpfr-${PV}/mpfr-${PV}.tar.xz"; +SRC_URI = "http://www.mpfr.org/mpfr-${PV}/mpfr-${PV}.tar.xz \ + file://0001-Fix-obsolete-ARC-asm-constraints.patch" SRC_URI[md5sum] = "b8dd19bd9bb1ec8831a6a582a7308073" SRC_URI[sha256sum] = "67874a60826303ee2fb6affc6dc0ddd3e749e9bfcb4c8655e3953d0458a6e16e" -- 2.16.2 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/4] systemd: Remove items that made this machine (qemu) specific
On 10/18/2018 12:43 AM, Mark Hatle wrote: Create a new systemd-conf recipe to contain the specific system/machine configuration items. This new package is now machine specific. Without doing this trying to create a single system with multiple BSPs, one of which was qemu based, would result in the systemd -and- everything that dependend upon systemd to have their hash changed. The hash changing means lots of rebuilds, but worse if it's a package based system each different machine ends with a new PR value and a newly generated package. Signed-off-by: Mark Hatle --- meta/recipes-core/systemd/systemd-conf.bb | 51 +++ ...ange-the-default-device-timeout-to-2.patch | 35 - meta/recipes-core/systemd/systemd_239.bb | 28 -- 3 files changed, 60 insertions(+), 54 deletions(-) create mode 100644 meta/recipes-core/systemd/systemd-conf.bb delete mode 100644 meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch diff --git a/meta/recipes-core/systemd/systemd-conf.bb b/meta/recipes-core/systemd/systemd-conf.bb new file mode 100644 index 00..d39742b3a8 --- /dev/null +++ b/meta/recipes-core/systemd/systemd-conf.bb @@ -0,0 +1,51 @@ +require systemd.inc + +SUMMARY = "Systemd system configuration" +DESCRIPTION = "Systemd may require slightly different configuration for \ +different machines. For example, qemu machines require a longer \ +DefaultTimeoutStartSec setting." + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +CONFFILES_${PN} = "${sysconfdir}/machine-id \ +${sysconfdir}/systemd/coredump.conf \ +${sysconfdir}/systemd/journald.conf \ +${sysconfdir}/systemd/logind.conf \ +${sysconfdir}/systemd/system.conf \ +${sysconfdir}/systemd/user.conf" + +FILES_${PN} = "${sysconfdir}/machine-id ${sysconfdir}/systemd" + +do_compile[noexec] = '1' + +do_install() { + install -d ${D}/${sysconfdir}/systemd + + # Create machine-id + # 20:12 < mezcalero> koen: you have three options: a) run systemd-machine-id-setup at install time, b) have / read-only and an empty file there (for stateless) and c) boot with / writable + touch ${D}${sysconfdir}/machine-id + + install -m 0644 ${S}/src/coredump/coredump.conf ${D}${sysconfdir}/systemd/coredump.conf + + install -m 0644 ${S}/src/journal/journald.conf ${D}${sysconfdir}/systemd/journald.conf + # Enable journal to forward message to syslog daemon + sed -i -e 's/.*ForwardToSyslog.*/ForwardToSyslog=yes/' ${D}${sysconfdir}/systemd/journald.conf + # Set the maximium size of runtime journal to 64M as default + sed -i -e 's/.*RuntimeMaxUse.*/RuntimeMaxUse=64M/' ${D}${sysconfdir}/systemd/journald.conf + + install -m 0644 ${S}/src/login/logind.conf.in ${D}${sysconfdir}/systemd/logind.conf + # Set KILL_USER_PROCESSES to yes + sed -i -e 's/@KILL_USER_PROCESSES@/yes/' ${D}${sysconfdir}/systemd/logind.conf + + install -m 0644 ${S}/src/core/system.conf.in ${D}${sysconfdir}/systemd/system.conf + # Set MEMORY_ACCOUNTING_DEFAULT to yes + sed -i -e 's/@MEMORY_ACCOUNTING_DEFAULT@/yes/' ${D}${sysconfdir}/systemd/system.conf + + install -m 0644 ${S}/src/core/user.conf ${D}${sysconfdir}/systemd/user.conf +} + +# Based on change from YP bug 8141, OE commit 5196d7bacaef1076c361adaa2867be31759c1b52 +do_install_append_qemuall() { + # Change DefaultTimeoutStartSec from 90s to 240s +echo "DefaultTimeoutStartSec = 240s" +} Seems to miss something like ">> ${D}${sysconfdir}/systemd/system.conf" ? Best Regards, Chen Qi diff --git a/meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch b/meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch deleted file mode 100644 index fd7bf3fcf6..00 --- a/meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 2925c0c3b6ce4056622b86c1c61ee14add430790 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Thu, 28 Jun 2018 10:56:29 +0800 -Subject: [PATCH] core/device.c: Change the default device timeout to 240 sec. - MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 - Content-Transfer-Encoding: 8bit -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Upstream-Status: Inappropriate [Specific case QEMU/AB] - -Signed-off-by: Aníbal Limón -Signed-off-by: Khem Raj -Signed-off-by: Chen Qi - src/core/device.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/device.c b/src/core/device.c -index a2d00a0fb..f26e55ebb 100644 a/src/core/device.c -+++ b/src/core/device.c -@@ -95,7 +95,7 @@ static void device_init(Unit *u) { - * indefinitely for plugged in devices, something which cannot - * happen for the other units since their operations time out - * anyway. */ --u->job_run
[OE-core] [PATCH] dhcp: use config file dhcpd6.conf in dhcpd6.service for DHCP IPv6
Use dhcpd6.conf for DHCP IPv6 and dhpcd.conf for DHCP IPv4. Signed-off-by: Yi Zhao --- meta/recipes-connectivity/dhcp/files/dhcpd6.service | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-connectivity/dhcp/files/dhcpd6.service b/meta/recipes-connectivity/dhcp/files/dhcpd6.service index ca96abb..52a6224 100644 --- a/meta/recipes-connectivity/dhcp/files/dhcpd6.service +++ b/meta/recipes-connectivity/dhcp/files/dhcpd6.service @@ -9,7 +9,7 @@ PIDFile=@localstatedir@/run/dhcpd6.pid EnvironmentFile=@SYSCONFDIR@/default/dhcp-server EnvironmentFile=-@SYSCONFDIR@/sysconfig/dhcpd6 ExecStartPre=@base_bindir@/touch @localstatedir@/lib/dhcp/dhcpd6.leases -ExecStart=@SBINDIR@/dhcpd -f -6 -cf @SYSCONFDIR@/dhcp/dhcpd.conf -pf @localstatedir@/run/dhcpd6.pid $DHCPDARGS -q $INTERFACES +ExecStart=@SBINDIR@/dhcpd -f -6 -cf @SYSCONFDIR@/dhcp/dhcpd6.conf -pf @localstatedir@/run/dhcpd6.pid $DHCPDARGS -q $INTERFACES [Install] WantedBy=multi-user.target -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core