Re: [OE-core] [PATCH 1/2] systemd: upgrade to 239
On 07/26/2018 07:05 AM, Ricardo Salveti wrote: On Mon, Jul 16, 2018 at 11:05 PM, Chen Qi wrote: Upgrade systemd to 239. 1. Patch Changes * Rebased Patches 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch 0003-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch 0006-Make-root-s-home-directory-configurable.patch 0027-remove-nobody-user-group-checking.patch 0011-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch 0013-add-fallback-parse_printf_format-implementation.patch 0014-src-basic-missing.h-check-for-missing-strndupa.patch 0015-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch 0016-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch 0017-Include-netinet-if_ether.h.patch 0019-Do-not-enable-nss-tests-if-nss-systemd-is-not-enable.patch 0022-don-t-use-glibc-specific-qsort_r.patch 0024-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch 0026-Use-uintmax_t-for-handling-rlim_t.patch 0030-fix-missing-of-__register_atfork-for-non-glibc-build.patch 0031-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch 0001-core-device.c-Change-the-default-device-timeout-to-2.patch 0001-Remove-fstack-protector-flags-to-workaround-musl-bui.patch * Dropped Patches and Reasons 0001-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch This patch is dropped because the problem has been fixed by binutils upstream. And this workaround could be dropped. https://sourceware.org/bugzilla/show_bug.cgi?id=18548 0007-Revert-rules-remove-firmware-loading-rules.patch 0008-Revert-udev-remove-userspace-firmware-loading-suppor.patch These two patches are dropped because they are for kernel < 3.7. But the current minimal requirement of kernel to build systemd is as below. REQUIREMENTS: Linux kernel >= 3.13 Linux kernel >= 4.2 for unified cgroup hierarchy support So these two patches no long make any sense. Also remove non-exist firmware-path option 0009-remove-duplicate-include-uchar.h.patch 0010-check-for-uchar.h-in-meson.build.patch These two patches are dropped because musl has implemented uchar.h. See commit below from musl repo. """ ab9672ae73248f51e30f4553c4b8878525e46383 implement uchar.h (C11 UTF-16/32 conversion) interfaces """ 0018-check-for-missing-canonicalize_file_name.patch The above patch is dropped because current systemd does not need canonicalize_file_name. 0025-Define-_PATH_WTMPX-and-_PATH_UTMPX-if-not-defined.patch The above patch is dropped because utmp makes no sense in musl. Check code below from musl. include/utmp.h:#define _PATH_UTMP "/dev/null/utmp" And utmp PACKAGECONFIG has been explicitly disabled for musl. So we don't need this patch. 0032-memfd.patch 0033-basic-macros-rename-noreturn-into-_noreturn_-8456.patch libmount.patch 0034-Fix-format-truncation-compile-failure-by-typecasting.patch The above patches are dropped because they are backported patches. And current systemd has contained these patches. 0036-time-util-fix-build-with-gcc8-Werror-format-truncati.patch The above patch is dropped because it has been merged and is now in new version. * Newly Added Patch 0005-include-gshadow-only-if-ENABLE_GSHADOW-is-1.patch This patch is added to fix build for musl. 0019-Do-not-disable-buffering-when-writing-to-oom_score_a.patch This patch is added to fix the following error which caused system unable to boot up. systemd-udevd.service: Failed to adjust OOM setting: Invalid argument dbus.service: Failed to adjust OOM setting: Invalid argument 0020-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch This patch is added to fix segment fault error on musl systems. 0001-login-use-parse_uid-when-unmounting-user-runtime-dir.patch This patch is backported to solve a race condition between user-runtime-dir@xxx.service stop and user deletion. 2. PACKAGECONFIG and Dependency Changes * Add a new PACKAGECONFIG item 'gshadow'. Enable it by default for glibc but disable it by default for musl. This is because musl does not provide gshadow.h. * Add a new PACKAGECONFIG item 'portabled'. Default to disable it because it's still experimental, according to the announcement letter. """ Currently, the support is still experimental, but this is expected to change soon. Reflecting this experimental state, the "portablectl" binary is not installed into /usr/bin yet. """ * Change 'kmod' from a hard dependency to a PACKAGECONFIG item. Default to enable it. * Change 'acl' from a hard dependency to a PACKAGECONFIG item. Default to enable it. * Remove 'readline' from DEPENDS. systemd does not need it. * Remove 'libcgroup' from DEPENDS. The dependency on libcgroup has been removed from systemd a long time ago. We now remove this unnecessary
[OE-core] mdadm: systemd service question
Hi All: I found there is a systemd service file in the source code of mdadm-4.0. mdadm-4.0/systemd/mdmonitor.service And why this service was not added into the rpm package? rpm -qpl deploy-rpms/x86_64/mdadm-4.0-r0.x86_64.rpm /lib /lib/udev /lib/udev/rules.d /lib/udev/rules.d/63-md-raid-arrays.rules /lib/udev/rules.d/64-md-raid-assembly.rules /sbin /sbin/mdadm /sbin/mdmon -- Zheng Ruoqin Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST) ADDR.: No.6 Wenzhu Road, Software Avenue, Nanjing, 210012, China MAIL : zhengrq.f...@cn.fujistu.com -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/6] oeqa: Add selftest parallelisation support
Hi RP, On 07/17/2018 12:33 AM, Richard Purdie wrote: This allows oe-selftest to take a -j option which specifies how much test parallelisation to use. Currently this is "module" based with each module being split and run in a separate build directory. Further splitting could be done but this seems a good compromise between test setup and parallelism. You need python-testtools and python-subunit installed to use this but only when the -j option is specified. Should we add python-testtools-native and python-subunit-native, please ? And add them to TESTIMAGEDEPENDS ? // Robert See notes posted to the openedmbedded-architecture list for more details about the design choices here. Some of this functionality may make more sense in the oeqa core ultimately. Signed-off-by: Richard Purdie --- meta/lib/oeqa/core/context.py | 10 +- meta/lib/oeqa/core/runner.py| 24 +- meta/lib/oeqa/core/utils/concurrencytest.py | 254 meta/lib/oeqa/selftest/context.py | 8 +- 4 files changed, 288 insertions(+), 8 deletions(-) create mode 100644 meta/lib/oeqa/core/utils/concurrencytest.py diff --git a/meta/lib/oeqa/core/context.py b/meta/lib/oeqa/core/context.py index 10481b44b61..8cdfbf834f3 100644 --- a/meta/lib/oeqa/core/context.py +++ b/meta/lib/oeqa/core/context.py @@ -58,14 +58,20 @@ class OETestContext(object): modules_required, filters) self.suites = self.loader.discover() -def runTests(self, skips=[]): +def runTests(self, processes=None, skips=[]): self.runner = self.runnerClass(self, descriptions=False, verbosity=2, buffer=True) # Dinamically skip those tests specified though arguments self.skipTests(skips) self._run_start_time = time.time() -result = self.runner.run(self.suites) +if processes: +from oeqa.core.utils.concurrencytest import ConcurrentTestSuite + +concurrent_suite = ConcurrentTestSuite(self.suites, processes) +result = self.runner.run(concurrent_suite) +else: +result = self.runner.run(self.suites) self._run_end_time = time.time() return result diff --git a/meta/lib/oeqa/core/runner.py b/meta/lib/oeqa/core/runner.py index 219102c6b0f..6adbe3827b4 100644 --- a/meta/lib/oeqa/core/runner.py +++ b/meta/lib/oeqa/core/runner.py @@ -43,11 +43,17 @@ class OETestResult(_TestResult): super(OETestResult, self).__init__(*args, **kwargs) self.successes = [] +self.starttime = {} +self.endtime = {} +self.progressinfo = {} self.tc = tc self._tc_map_results() def startTest(self, test): +# May have been set by concurrencytest +if test.id() not in self.starttime: +self.starttime[test.id()] = time.time() super(OETestResult, self).startTest(test) def _tc_map_results(self): @@ -57,6 +63,12 @@ class OETestResult(_TestResult): self.tc._results['expectedFailures'] = self.expectedFailures self.tc._results['successes'] = self.successes +def stopTest(self, test): +self.endtime[test.id()] = time.time() +super(OETestResult, self).stopTest(test) +if test.id() in self.progressinfo: +print(self.progressinfo[test.id()]) + def logSummary(self, component, context_msg=''): elapsed_time = self.tc._run_end_time - self.tc._run_start_time self.tc.logger.info("SUMMARY:") @@ -141,12 +153,16 @@ class OETestResult(_TestResult): if hasattr(d, 'oeid'): oeid = d.oeid +t = "" +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" % (case.id(), -oeid, desc)) +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" % (case.id(), -oeid, 'UNKNOWN')) +self.tc.logger.info("RESULTS - %s - Testcase %s: %s%s" % (case.id(), +oeid, 'UNKNOWN', t)) class OEListTestsResult(object): def wasSuccessful(self): diff --git a/meta/lib/oeqa/core/utils/concurrencytest.py b/meta/lib/oeqa/core/utils/concurrencytest.py new file mode 100644 index 000..850586516a4 --- /dev/null +++ b/meta/lib/oeqa/core/utils/concurrencytest.py @@ -0,0 +1,254 @@ +#!/usr/bin/env python3 +# +# Modified for use in OE by Richard Purdie, 2018 +# +# Modified by: Corey Goldberg, 2013 +# License: GPLv2+ +# +# Original code from: +# Bazaar (bzrlib.tests.__init__.py, v2.6, copied Jun 01 2013)
[OE-core] ✗ patchtest: failure for webkitgtk: fix compile failure on beaglebone (rev2)
== Series Details == Series: webkitgtk: fix compile failure on beaglebone (rev2) Revision: 2 URL : https://patchwork.openembedded.org/series/13187/ State : failure == Summary == Thank you for submitting this patch series to OpenEmbedded Core. This is an automated response. Several tests have been executed on the proposed series by patchtest resulting in the following failures: * Issue Upstream-Status is Submitted, but it is not mentioned where [test_upstream_status_presence_format] Suggested fixInclude where 0001-Fix-PaintingData-has-no-member-named-lightVector-on-.patch was submitted Current Upstream-Status: Submitted Standard format Upstream-Status: Submitted [where] If you believe any of these test results are incorrect, please reply to the mailing list (openembedded-core@lists.openembedded.org) raising your concerns. Otherwise we would appreciate you correcting the issues and submitting a new version of the patchset if applicable. Please ensure you add/increment the version number when sending the new version (i.e. [PATCH] -> [PATCH v2] -> [PATCH v3] -> ...). --- Guidelines: https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH V2] webkitgtk: fix compile failure on beaglebone
Since the following patch applied in upstream webkitgtk ... commit 1a55d8c685b3e5b4dbeda202009e7527aa59eadd Author: simon.fra...@apple.com Date: Thu Nov 23 22:20:09 2017 + FELighting cleanup and optimization https://bugs.webkit.org/show_bug.cgi?id=179933 ... It missed to tweak `paintingData.lightVector' which caused PaintingData' has no member named 'lightVector' on ARM_NEON (beaglebone) Signed-off-by: Hongxu Jia --- ...gData-has-no-member-named-lightVector-on-.patch | 37 ++ meta/recipes-sato/webkit/webkitgtk_2.20.3.bb | 1 + 2 files changed, 38 insertions(+) create mode 100644 meta/recipes-sato/webkit/webkitgtk/0001-Fix-PaintingData-has-no-member-named-lightVector-on-.patch diff --git a/meta/recipes-sato/webkit/webkitgtk/0001-Fix-PaintingData-has-no-member-named-lightVector-on-.patch b/meta/recipes-sato/webkit/webkitgtk/0001-Fix-PaintingData-has-no-member-named-lightVector-on-.patch new file mode 100644 index 000..25f4846 --- /dev/null +++ b/meta/recipes-sato/webkit/webkitgtk/0001-Fix-PaintingData-has-no-member-named-lightVector-on-.patch @@ -0,0 +1,37 @@ +From a5d4e038268ae23486fecc1966fd2e16a7f40ce8 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Wed, 25 Jul 2018 00:23:48 -0700 +Subject: [PATCH] Fix PaintingData' has no member named 'lightVector' on + ARM_NEON + +* platform/graphics/cpu/arm/filters/FELightingNEON.h: +(WebCore::FELighting::platformApplyNeon): + +Upstream-Status: Submitted +https://bugs.webkit.org/show_bug.cgi?id=187991 + +Signed-off-by: Hongxu Jia +--- + Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h +index 42af922..b542a4c 100644 +--- a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h +@@ -144,9 +144,9 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS + neonData.flags |= FLAG_CONE_EXPONENT_IS_1; + } else { + ASSERT(m_lightSource->type() == LS_DISTANT); +-floatArguments.lightX = paintingData.lightVector.x(); +-floatArguments.lightY = paintingData.lightVector.y(); +-floatArguments.lightZ = paintingData.lightVector.z(); ++floatArguments.lightX = paintingData.initialLightingData.lightVector.x(); ++floatArguments.lightY = paintingData.initialLightingData.lightVector.y(); ++floatArguments.lightZ = paintingData.initialLightingData.lightVector.z(); + floatArguments.padding2 = 1; + } + +-- +2.10.2 + diff --git a/meta/recipes-sato/webkit/webkitgtk_2.20.3.bb b/meta/recipes-sato/webkit/webkitgtk_2.20.3.bb index 9d0f00a..a528c5d 100644 --- a/meta/recipes-sato/webkit/webkitgtk_2.20.3.bb +++ b/meta/recipes-sato/webkit/webkitgtk_2.20.3.bb @@ -21,6 +21,7 @@ SRC_URI = "http://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \ file://0001-Fix-build-with-musl.patch \ file://detect-gstreamer-gl.patch \ file://0012-soup-Forward-declare-URL-class.patch \ + file://0001-Fix-PaintingData-has-no-member-named-lightVector-on-.patch \ " SRC_URI[md5sum] = "efb69a0cc3cc67ef2647efec22e44c69" -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] ✗ patchtest: failure for fetch2: fix import error for Python 3.6.5
== Series Details == Series: fetch2: fix import error for Python 3.6.5 Revision: 1 URL : https://patchwork.openembedded.org/series/13205/ State : failure == Summary == Thank you for submitting this patch series to OpenEmbedded Core. This is an automated response. Several tests have been executed on the proposed series by patchtest resulting in the following failures: * Issue Series does not apply on top of target branch [test_series_merge_on_head] Suggested fixRebase your series on top of targeted branch Targeted branch master (currently at 662be652ed) If you believe any of these test results are incorrect, please reply to the mailing list (openembedded-core@lists.openembedded.org) raising your concerns. Otherwise we would appreciate you correcting the issues and submitting a new version of the patchset if applicable. Please ensure you add/increment the version number when sending the new version (i.e. [PATCH] -> [PATCH v2] -> [PATCH v3] -> ...). --- Guidelines: https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [bitbake-devel][PATCH][1.32] fetch2: fix import error for Python 3.6.5
From: Tzu Hsiang Lin When running bitbake command with Python 3.6.5 always result in import error causing by the change of distutils module. This patch replaces the method to search executable in PATH by "/usr/bin/env ". Signed-off-by: Tzu Hsiang Lin Signed-off-by: Richard Purdie Signed-off-by: Changhyeok Bae --- lib/bb/fetch2/clearcase.py | 3 +-- lib/bb/fetch2/npm.py | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/bb/fetch2/clearcase.py b/lib/bb/fetch2/clearcase.py index 70e280a..b0b5eff 100644 --- a/lib/bb/fetch2/clearcase.py +++ b/lib/bb/fetch2/clearcase.py @@ -70,7 +70,6 @@ from bb.fetch2 import FetchMethod from bb.fetch2 import FetchError from bb.fetch2 import runfetchcmd from bb.fetch2 import logger -from distutils import spawn class ClearCase(FetchMethod): """Class to fetch urls via 'clearcase'""" @@ -108,7 +107,7 @@ class ClearCase(FetchMethod): else: ud.module = "" -ud.basecmd = d.getVar("FETCHCMD_ccrc", True) or spawn.find_executable("cleartool") or spawn.find_executable("rcleartool") +ud.basecmd = d.getVar("FETCHCMD_ccrc") or "/usr/bin/env cleartool || rcleartool" if data.getVar("SRCREV", d, True) == "INVALID": raise FetchError("Set a valid SRCREV for the clearcase fetcher in your recipe, e.g. SRCREV = \"/main/LATEST\" or any other label of your choice.") diff --git a/lib/bb/fetch2/npm.py b/lib/bb/fetch2/npm.py index 699ae72..7ccaba9 100644 --- a/lib/bb/fetch2/npm.py +++ b/lib/bb/fetch2/npm.py @@ -33,7 +33,6 @@ from bb.fetch2 import runfetchcmd from bb.fetch2 import logger from bb.fetch2 import UnpackError from bb.fetch2 import ParameterError -from distutils import spawn def subprocess_setup(): # Python installs a SIGPIPE handler by default. This is usually not what -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v2] binutils : enable x86_64-pep for producing EFI binaries
From: Christopher Clark On EFI architectures (arm/x86/x86_64/aarch64) add the x86_64-pep emulation support to the linker to enable production of Portable Executables for EFI binaries. Enables building the EFI variant of the Xen hypervisor. Signed-off-by: Christopher Clark --- meta/recipes-devtools/binutils/binutils.inc | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/meta/recipes-devtools/binutils/binutils.inc b/meta/recipes-devtools/binutils/binutils.inc index 37813dd..b3efbad 100644 --- a/meta/recipes-devtools/binutils/binutils.inc +++ b/meta/recipes-devtools/binutils/binutils.inc @@ -69,12 +69,19 @@ python do_package_prepend() { B = "${S}/build.${HOST_SYS}.${TARGET_SYS}" +def enable_efi_targets(d): +translated_arch = d.getVar('TRANSLATED_TARGET_ARCH') +if translated_arch in ["x86-64", "i586", "i686", "arm", "aarch64"]: +return "--enable-targets=x86_64-pep" +return "" + EXTRA_OECONF = "--program-prefix=${TARGET_PREFIX} \ --disable-werror \ --enable-deterministic-archives \ --enable-plugins \ ${LDGOLD} \ -${@bb.utils.contains('DISTRO_FEATURES', 'multiarch', '--enable-64-bit-bfd', '', d)}" +${@bb.utils.contains('DISTRO_FEATURES', 'multiarch', '--enable-64-bit-bfd', '', d)} \ +${@enable_efi_targets(d)}" LDGOLD_class-native = "" LDGOLD_class-crosssdk = "" -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/2] systemd: upgrade to 239
On Mon, Jul 16, 2018 at 11:05 PM, Chen Qi wrote: > Upgrade systemd to 239. > > 1. Patch Changes > * Rebased Patches > 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch > 0003-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch > 0006-Make-root-s-home-directory-configurable.patch > 0027-remove-nobody-user-group-checking.patch > 0011-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch > 0013-add-fallback-parse_printf_format-implementation.patch > 0014-src-basic-missing.h-check-for-missing-strndupa.patch > 0015-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch > 0016-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch > 0017-Include-netinet-if_ether.h.patch > 0019-Do-not-enable-nss-tests-if-nss-systemd-is-not-enable.patch > 0022-don-t-use-glibc-specific-qsort_r.patch > 0024-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch > 0026-Use-uintmax_t-for-handling-rlim_t.patch > 0030-fix-missing-of-__register_atfork-for-non-glibc-build.patch > 0031-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch > 0001-core-device.c-Change-the-default-device-timeout-to-2.patch > 0001-Remove-fstack-protector-flags-to-workaround-musl-bui.patch > > * Dropped Patches and Reasons > 0001-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch > This patch is dropped because the problem has been fixed by > binutils upstream. And this workaround could be dropped. > https://sourceware.org/bugzilla/show_bug.cgi?id=18548 > > 0007-Revert-rules-remove-firmware-loading-rules.patch > 0008-Revert-udev-remove-userspace-firmware-loading-suppor.patch > These two patches are dropped because they are for kernel < 3.7. > But the current minimal requirement of kernel to build systemd > is as below. > REQUIREMENTS: > Linux kernel >= 3.13 > Linux kernel >= 4.2 for unified cgroup hierarchy support > So these two patches no long make any sense. > Also remove non-exist firmware-path option > > 0009-remove-duplicate-include-uchar.h.patch > 0010-check-for-uchar.h-in-meson.build.patch > These two patches are dropped because musl has implemented > uchar.h. See commit below from musl repo. > """ > ab9672ae73248f51e30f4553c4b8878525e46383 > implement uchar.h (C11 UTF-16/32 conversion) interfaces > """ > > 0018-check-for-missing-canonicalize_file_name.patch > The above patch is dropped because current systemd does not need > canonicalize_file_name. > > 0025-Define-_PATH_WTMPX-and-_PATH_UTMPX-if-not-defined.patch > The above patch is dropped because utmp makes no sense in musl. > Check code below from musl. > include/utmp.h:#define _PATH_UTMP "/dev/null/utmp" > And utmp PACKAGECONFIG has been explicitly disabled for musl. > So we don't need this patch. > > 0032-memfd.patch > 0033-basic-macros-rename-noreturn-into-_noreturn_-8456.patch > libmount.patch > 0034-Fix-format-truncation-compile-failure-by-typecasting.patch > The above patches are dropped because they are backported patches. > And current systemd has contained these patches. > > 0036-time-util-fix-build-with-gcc8-Werror-format-truncati.patch > The above patch is dropped because it has been merged and is now > in new version. > > * Newly Added Patch > 0005-include-gshadow-only-if-ENABLE_GSHADOW-is-1.patch > This patch is added to fix build for musl. > > 0019-Do-not-disable-buffering-when-writing-to-oom_score_a.patch > This patch is added to fix the following error which caused system > unable to boot up. > systemd-udevd.service: Failed to adjust OOM setting: Invalid argument > dbus.service: Failed to adjust OOM setting: Invalid argument > > 0020-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch > This patch is added to fix segment fault error on musl systems. > > 0001-login-use-parse_uid-when-unmounting-user-runtime-dir.patch > This patch is backported to solve a race condition between > user-runtime-dir@xxx.service stop and user deletion. > > 2. PACKAGECONFIG and Dependency Changes > * Add a new PACKAGECONFIG item 'gshadow'. Enable it by default for glibc > but disable it by default for musl. This is because musl does not provide > gshadow.h. > > * Add a new PACKAGECONFIG item 'portabled'. Default to disable it because > it's still experimental, according to the announcement letter. > """ > Currently, the support is still experimental, but this is expected to > change soon. Reflecting this experimental state, the "portablectl" binary > is not installed into /usr/bin yet. > """ > > * Change 'kmod' from a hard dependency to a PACKAGECONFIG item. Default > to enable it. > > * Change 'acl' from a hard dependency to a PACKAGECONFIG item. Default > to enable it. > > * Remove 'readline' from DEPENDS. systemd does not need it. > > * Remove 'libcgroup' from DEPENDS. The dependency on libcgroup has been >
Re: [OE-core] [RFC PATCH 0/2] Install rdependent of allarch package with same multilib variant of image
Hi Kai, On Thu, 2018-07-26 at 00:41 +0800, kai.k...@windriver.com wrote: > The series rfc patch is trying to install 64bits packages which is > required by allarch package to 32 bits image. Work for rpm and need > little more work and test for dpkg and opkg. > > Take ca-certificates as example. It requires openssl. So it intalls > openssl for both core-image-sato and lib32-core-image-sato. But > lib32-openssl is expected to be installed to lib32-core-image-sato. > > So extend rdpendent of allarch package with all multilib variants and > 'noarch-' as well. > > Extend > ca-certificates -> openssl > > to > > ca-certificates -> openssl, lib32-openssl, noarch-openssl > > Rdepends on openssl and lib32-openssl make both of them exist in > oe-core-repo when do rootfs. And then make both openssl and > lib32-openssl provide noarch-openssl. And only keep noarch-openssl in > RDEPENDS when write package for ca-certificates. When do image rootfs > for lib32-core-image-sato, remove openssl if installed already and > install lib32-openssl to provide noarch-openssl for allarch pacakge > ca-certificates. > > And extend rprovides of allarch package with prefix 'noarch-' too > that > it may be required by other allarch packages. Put all dependent > packages > of all allarch recipes in oe-core to a new ariable > 'ALLARCH_RDEP_PKGS'. > > Any comment for this method is welcomed. Thanks a lot. I think this is kind of the right direction but its not ready in this form. Taking a step back and thinking about this problem, its actually similar to the allarch recipes signature problem. Normally if A DEPENDS on B, the taskhash of A includes the taskhash of B. In the allarch case this is problematic so you see ca-certificates- >openssl listed in SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS. I think (but am not 100% sure) that everything you list in ALLARCH_RDEP_PKGS is already covered somewhere in SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS. I'd therefore propose using SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS instead of adding a ALLARCH_RDEP_PKGS which duplicates information. I can't see any case where you'd want an entry in one but not the other. Rather than changing the RPROVIDES/RDEPENDS in package_{deb|ipk|rpm}, you should do this once in package.bbclass. There is a bigger problem though since the allarch recipe signature filtering doesn't change what bitbake will actually build, only how its represented in sstate and the circumstances under which it would rebuild it. If ca-certificates DEPENDS on openssl, it will build openssl whether you're targeting core-image-sato or lib32-core-image- sato. This potentially means you can end up in a situation where it wouldn't build lib32-openssl if nothing else in lib32-core-image-sato depended upon it more directly. There is no easy way to solve this problem since somehow, if you're building lib32- it needs to build lib32-openssl and if you're building it needs to build openssl. "pushing" that information back up the dependency chain is very hard, we have no such mechanism. I'm afraid I don't have a solution for this piece, its a very hard problem to solve. Your current patches happen to work as there are other more direct dependencies which tend to ensure the right thing happens but we can't rely on that and it probably isn't the case for all the dependencies. Finally, the package manager shouldn't really need changes for this approach to work. If things RPROVIDE and RDEPEND on the noarch versions, the feed priorities should mean the right things happen. If that doesn't happen automatically, the feed prorities are not working correctly and that needs fixing, not the 2/2 patch you're proposing. I suspect this issue needs fixing regardless of anything else. Cheers, Richard -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] uninative-tarball: Add nativesdk-libnss-nis to resolve glibc symbol issues
We need this to avoid symbol mismatch issues for binaries that use this on newer systems which then won't run on older ones where it isn't present. Signed-off-by: Richard Purdie --- meta/conf/distro/include/yocto-uninative.inc | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/meta/conf/distro/include/yocto-uninative.inc b/meta/conf/distro/include/yocto-uninative.inc index dcd59f87ccc..38080c63b58 100644 --- a/meta/conf/distro/include/yocto-uninative.inc +++ b/meta/conf/distro/include/yocto-uninative.inc @@ -8,6 +8,7 @@ UNINATIVE_MAXGLIBCVERSION = "2.27" -UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/2.1/; -UNINATIVE_CHECKSUM[i686] ?= "a90db17d8845ece764aaac19348cd78504c0e554cb998da39ebad03aeef76185" -UNINATIVE_CHECKSUM[x86_64] ?= "d43555df8d5a056ef5b20c7d8e0287207974e09df1e969a3e19302c8b4ea6b4b" +UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/2.2/; +UNINATIVE_CHECKSUM[i686] ?= "036b60092fe4acfa1a321d110673030db20344a2d56f33a4d047f0279498bdad" +UNINATIVE_CHECKSUM[x86_64] ?= "e3b77208169bf1ac4e89496f3cdbf27695f5b18a2694a908a793390f28b67f83" + -- 2.17.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] classes/kernel-yocto: Cleanup getstatusoutput usage
On Wed, 2018-07-25 at 15:44 -0500, Joshua Watt wrote: > On Wed, 2018-07-25 at 16:32 -0400, Bruce Ashfield wrote: > > On Wed, Jul 25, 2018 at 4:20 PM, Bruce Ashfield > > wrote: > > > On Wed, Jul 25, 2018 at 4:17 PM, Burton, Ross > > co > > > m> wrote: > > > > On 25 July 2018 at 21:05, Bruce Ashfield > > > co > > > > m> wrote: > > > > > My question about the change .. is why ? I really don't like > > > > > cleanup > > > > > patches on principle, and want things pinned to a bug, a > > > > > performance > > > > > issue or something else. > > > > > > > > See a post by RP to the oe-core list a few days ago: a general > > > > cleanup > > > > of Python code that spawns is well overdue. In this case > > > > oe.utils.getstatusoutpus is a wrapper that just calls a > > > > deprecated > > > > function in subprocess, is best to pass arguments as an array > > > > instead > > > > of string, best not to use a shell, etc. > > > > > > ah ok. > > > > > > I still don't like it, but it is what it is. > > > > ... and I found the original email, I see the part about things > > being > > depreciated. Makes sense. > > > > I'll queue it up and run some tests on some intentionally bad BSPs. > > Works for me. > > I wasn't sure about if the subprocess exceptions should be fatal or > not. Suppressing them maintained the old behavior, but it didn't > quite seem "correct" to me. We should at least put a comment in about this as its not best practise not to check return codes. I do understand it can make sense in some cases. Part of the reason to clean these calls up is also to ensure we illustrate best practise in OE-Core so that when people copy and paste it to other layers, we don't end up with bad things spreading. In general, using the "proper" calls encourages better error handling so that when something does fail, the user gets decent error messages. For that reason I'd usually recommend the stderr -> stdout mapping so that errors are displayed if a command fails. I appreciate that its a moot point here since you ignore failures but in general it is a good practise to encourage. We've had a spate of problems recently where errors have been hidden making problems much harder to understand and debug. Cheers, Richard -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] classes/kernel-yocto: Cleanup getstatusoutput usage
On Wed, 2018-07-25 at 16:32 -0400, Bruce Ashfield wrote: > On Wed, Jul 25, 2018 at 4:20 PM, Bruce Ashfield > wrote: > > On Wed, Jul 25, 2018 at 4:17 PM, Burton, Ross > m> wrote: > > > On 25 July 2018 at 21:05, Bruce Ashfield > > m> wrote: > > > > My question about the change .. is why ? I really don't like > > > > cleanup > > > > patches on principle, and want things pinned to a bug, a > > > > performance > > > > issue or something else. > > > > > > See a post by RP to the oe-core list a few days ago: a general > > > cleanup > > > of Python code that spawns is well overdue. In this case > > > oe.utils.getstatusoutpus is a wrapper that just calls a > > > deprecated > > > function in subprocess, is best to pass arguments as an array > > > instead > > > of string, best not to use a shell, etc. > > > > ah ok. > > > > I still don't like it, but it is what it is. > > ... and I found the original email, I see the part about things being > depreciated. Makes sense. > > I'll queue it up and run some tests on some intentionally bad BSPs. Works for me. I wasn't sure about if the subprocess exceptions should be fatal or not. Suppressing them maintained the old behavior, but it didn't quite seem "correct" to me. Thanks, Joshua Watt > > Bruce > > > > > My comment stands, I'll figure out how to incorporate this and send > > it > > along with my next pull request. > > > > Bruce > > > > > > > > Ross > > > > > > > > -- > > "Thou shalt not follow the NULL pointer, for chaos and madness > > await > > thee at its end" > > > -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] classes/kernel-yocto: Cleanup getstatusoutput usage
On Wed, Jul 25, 2018 at 4:20 PM, Bruce Ashfield wrote: > On Wed, Jul 25, 2018 at 4:17 PM, Burton, Ross wrote: >> On 25 July 2018 at 21:05, Bruce Ashfield wrote: >>> My question about the change .. is why ? I really don't like cleanup >>> patches on principle, and want things pinned to a bug, a performance >>> issue or something else. >> >> See a post by RP to the oe-core list a few days ago: a general cleanup >> of Python code that spawns is well overdue. In this case >> oe.utils.getstatusoutpus is a wrapper that just calls a deprecated >> function in subprocess, is best to pass arguments as an array instead >> of string, best not to use a shell, etc. > > ah ok. > > I still don't like it, but it is what it is. ... and I found the original email, I see the part about things being depreciated. Makes sense. I'll queue it up and run some tests on some intentionally bad BSPs. Bruce > > My comment stands, I'll figure out how to incorporate this and send it > along with my next pull request. > > Bruce > >> >> Ross > > > > -- > "Thou shalt not follow the NULL pointer, for chaos and madness await > thee at its end" -- "Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end" -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 3/7] libsdl2: Find wayland-protocol files in proper location during cross compile
On 25 July 2018 at 21:18, Khem Raj wrote: > while I agree its due to a different behavior from pkgconf, the > solution is not relying on pkgconfig features > in itself is an improvement IMO unless you say its regressing builds > when not using pkgconfig This is a behavioural change between the two and personally I don't consider this a bug in pkgconfig, so pkgconf should do the same. Also it turns out that you can override variable lookups with environment variables in pkgconfig (see https://git.dereferenced.org/pkgconf/pkgconf/issues/2) so when pkgconf does this we can override the lookups without needing any patches. Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] classes/kernel-yocto: Cleanup getstatusoutput usage
On Wed, Jul 25, 2018 at 4:17 PM, Burton, Ross wrote: > On 25 July 2018 at 21:05, Bruce Ashfield wrote: >> My question about the change .. is why ? I really don't like cleanup >> patches on principle, and want things pinned to a bug, a performance >> issue or something else. > > See a post by RP to the oe-core list a few days ago: a general cleanup > of Python code that spawns is well overdue. In this case > oe.utils.getstatusoutpus is a wrapper that just calls a deprecated > function in subprocess, is best to pass arguments as an array instead > of string, best not to use a shell, etc. ah ok. I still don't like it, but it is what it is. My comment stands, I'll figure out how to incorporate this and send it along with my next pull request. Bruce > > Ross -- "Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end" -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] classes/kernel-yocto: Cleanup getstatusoutput usage
On 25 July 2018 at 21:05, Bruce Ashfield wrote: > My question about the change .. is why ? I really don't like cleanup > patches on principle, and want things pinned to a bug, a performance > issue or something else. See a post by RP to the oe-core list a few days ago: a general cleanup of Python code that spawns is well overdue. In this case oe.utils.getstatusoutpus is a wrapper that just calls a deprecated function in subprocess, is best to pass arguments as an array instead of string, best not to use a shell, etc. Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 3/7] libsdl2: Find wayland-protocol files in proper location during cross compile
On Wed, Jul 25, 2018 at 1:08 PM Burton, Ross wrote: > > On 21 July 2018 at 17:27, Khem Raj wrote: > > +pkgconfig would return an absolute path in /usr/share/wayland-protocols > > +for the pkgdatadir value, which is not suitable for cross-compiling. > > For reference this is due to pkgconf (not pkgconfig) having different > behaviour compared to pkgconfig, which is breaking recipes. > Personally I consider this a bug in pkgconf and there are bugs > upstream (and new releases) which may solve it directly instead of > having to fix every user of Weston (which isn't the only user of this > pattern). > while I agree its due to a different behavior from pkgconf, the solution is not relying on pkgconfig features in itself is an improvement IMO unless you say its regressing builds when not using pkgconfig > Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 3/7] libsdl2: Find wayland-protocol files in proper location during cross compile
On 21 July 2018 at 17:27, Khem Raj wrote: > +pkgconfig would return an absolute path in /usr/share/wayland-protocols > +for the pkgdatadir value, which is not suitable for cross-compiling. For reference this is due to pkgconf (not pkgconfig) having different behaviour compared to pkgconfig, which is breaking recipes. Personally I consider this a bug in pkgconf and there are bugs upstream (and new releases) which may solve it directly instead of having to fix every user of Weston (which isn't the only user of this pattern). Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] classes/kernel-yocto: Cleanup getstatusoutput usage
On Wed, Jul 25, 2018 at 3:50 PM, Burton, Ross wrote: > On 25 July 2018 at 19:35, Joshua Watt wrote: >> -cmd = d.expand("cd ${S}; kconf_check --report -o ${S}/%s/cfg/ >> ${B}/.config ${S} %s" % (kmeta,configs)) >> -ret, result = oe.utils.getstatusoutput("%s%s" % (pathprefix, cmd)) >> +try: >> +configs = subprocess.check_output(['scc', '--configs', '-o', s + >> '/.kernel-meta'], env=env).decode('utf-8') >> +except subprocess.CalledProcessError: >> +# Is this really non-fatal? >> +pass >> + >> +try: >> +subprocess.check_call(['kconf_check', '--report', '-o', >> +'%s/%s/cfg' % (s, kmeta), d.getVar('B') + '/.config', s, >> configs], cwd=s, env=env) >> +except subprocess.CalledProcessError: >> +# Is this really non-fatal? >> +pass > > CCing Bruce for his feedback. Either one or both of these calls can > fail without it being fatal which should be documented, or it > shouldn't be catching the exceptions. Yah. Don't grab this patch at all. I have a set of changes that muck all about in here, so I'll have to look and integrate things by hand. My question about the change .. is why ? I really don't like cleanup patches on principle, and want things pinned to a bug, a performance issue or something else. Cheers, Bruce > > Ross > -- > ___ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- "Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end" -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] lsof: Update SRC_URI
On 24 July 2018 at 21:18, Randy MacLeod wrote: > I expect that Ovidiu just forgot the branch prefix in his subject line. > Do you want him to resend for 2.5 and 2.4 ? Probably for the best to be sure that the relevant release maintainer sees the patches. Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] webkitgtk: fix compile failure on beaglebone
U-S should be Submitted with a link to that bug then. Ross On 25 July 2018 at 14:57, Hongxu Jia wrote: > On 2018年07月25日 17:53, Burton, Ross wrote: >> >> On 25 July 2018 at 08:55, Hongxu Jia wrote: >>> >>> +Upstream-Status: Pending >> >> You'll be submitting this upstream right? > > > Of course, I submitted upstream after oe-core > There patch review system is based on bugzilla > > https://bugs.webkit.org/show_bug.cgi?id=187991 > > Patch status seems ` commit-queue-' > > //Hongxu >> >> Ross > > > -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] classes/kernel-yocto: Cleanup getstatusoutput usage
On 25 July 2018 at 19:35, Joshua Watt wrote: > -cmd = d.expand("cd ${S}; kconf_check --report -o ${S}/%s/cfg/ > ${B}/.config ${S} %s" % (kmeta,configs)) > -ret, result = oe.utils.getstatusoutput("%s%s" % (pathprefix, cmd)) > +try: > +configs = subprocess.check_output(['scc', '--configs', '-o', s + > '/.kernel-meta'], env=env).decode('utf-8') > +except subprocess.CalledProcessError: > +# Is this really non-fatal? > +pass > + > +try: > +subprocess.check_call(['kconf_check', '--report', '-o', > +'%s/%s/cfg' % (s, kmeta), d.getVar('B') + '/.config', s, > configs], cwd=s, env=env) > +except subprocess.CalledProcessError: > +# Is this really non-fatal? > +pass CCing Bruce for his feedback. Either one or both of these calls can fail without it being fatal which should be documented, or it shouldn't be catching the exceptions. Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 2/2] multiconfig: Enable multiconfig dependencies on oe-core
This patch enables multiconfig dependencies (mcdepends) to be used on recipes using the following format: task[mcdepends] = "multiconfig:FROM-MC:TO-MC:PN:task-to-depend-on" For the sake of simplicity consider the following example: Assuming we have set up multiconfig builds, one for qemux86 and one for qemuarm, named x86 and arm respectively. Adding the following line to an image recipe (core-image-sato): do_image[mcdepends] = "multiconfig:x86:arm:core-image-minimal:do_rootfs" Would state that core-image-sato:do_image from x86 will depend on core-image-minimal:do_rootfs from arm so it can be executed. This patch makes modifications to bitbake.conf to enable mcdepends, and to sstatesig and staging.bbclass to avoid conflicts between packages from different multiconfigs. [YOCTO #10681] Signed-off-by: Alejandro Enedino Hernandez Samaniego --- meta/classes/staging.bbclass | 8 +++- meta/conf/bitbake.conf | 2 +- meta/lib/oe/sstatesig.py | 9 - 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass index 41df883..27b012e 100644 --- a/meta/classes/staging.bbclass +++ b/meta/classes/staging.bbclass @@ -256,7 +256,7 @@ python extend_recipe_sysroot() { workdir = d.getVar("WORKDIR") #bb.warn(str(taskdepdata)) pn = d.getVar("PN") - +mc = d.getVar("BB_CURRENT_MC") stagingdir = d.getVar("STAGING_DIR") sharedmanifests = d.getVar("COMPONENTS_DIR") + "/manifests" recipesysroot = d.getVar("RECIPE_SYSROOT") @@ -443,7 +443,13 @@ python extend_recipe_sysroot() { msg_exists = [] msg_adding = [] + for dep in configuredeps: +if mc != 'default': +# We should not care about other multiconfigs +depmc = dep.split(':')[1] +if depmc != mc: +continue c = setscenedeps[dep][0] if c not in installed: continue diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index e28f3c7..f68954c 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -877,7 +877,7 @@ BB_SIGNATURE_EXCLUDE_FLAGS ?= "doc deps depends \ file-checksums python func task export unexport noexec nostamp dirs cleandirs \ sstate-lockfile-shared prefuncs postfuncs export_func deptask rdeptask \ recrdeptask nodeprrecs stamp-extra-info sstate-outputdirs filename lineno \ -progress" +progress mcdepends" MLPREFIX ??= "" MULTILIB_VARIANTS ??= "" diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py index 5dcc2f5..18c5a35 100644 --- a/meta/lib/oe/sstatesig.py +++ b/meta/lib/oe/sstatesig.py @@ -150,16 +150,23 @@ class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash): if recipename in self.unlockedrecipes: unlocked = True else: +def get_mc(tid): +tid = tid.rsplit('.', 1)[0] +if tid.startswith('multiconfig:'): +elems = tid.split(':') +return elems[1] def recipename_from_dep(dep): # The dep entry will look something like # /path/path/recipename.bb.task, virtual:native:/p/foo.bb.task, # ... + fn = dep.rsplit('.', 1)[0] return dataCache.pkg_fn[fn] +mc = get_mc(fn) # If any unlocked recipe is in the direct dependencies then the # current recipe should be unlocked as well. -depnames = [ recipename_from_dep(x) for x in deps ] +depnames = [ recipename_from_dep(x) for x in deps if mc == get_mc(x)] if any(x in y for y in depnames for x in self.unlockedrecipes): self.unlockedrecipes[recipename] = '' unlocked = True -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] glibc: Avoid multilibbing on wordsize.h
Once another header #includes , there is a potential recursion going on because the multilib_header_wrapper.h #includes again! This should not happen because an __arm__ (32-bits) or an __aarch64__ (64-bits) environment guarantees that we will be getting the correct definition, but when building against a different target (like BPF), recursion is what happens. This can be seen, for instance, when building eBPF programs from the kernel with `clang -target bpf', such as the ones located in linux/tools/testing/selftests/bpf/. Signed-off-by: Daniel Díaz Signed-off-by: Aníbal Limón --- meta/recipes-core/glibc/glibc-package.inc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/meta/recipes-core/glibc/glibc-package.inc b/meta/recipes-core/glibc/glibc-package.inc index ae3f2f6..a4f61f8 100644 --- a/meta/recipes-core/glibc/glibc-package.inc +++ b/meta/recipes-core/glibc/glibc-package.inc @@ -136,8 +136,7 @@ do_install_append_armeb () { } do_install_armmultilib () { - - oe_multilib_header bits/endian.h bits/fcntl.h bits/fenv.h bits/fp-fast.h bits/hwcap.h bits/ipc.h bits/link.h bits/wordsize.h + oe_multilib_header bits/endian.h bits/fcntl.h bits/fenv.h bits/fp-fast.h bits/hwcap.h bits/ipc.h bits/link.h oe_multilib_header bits/local_lim.h bits/mman.h bits/msq.h bits/pthreadtypes.h bits/pthreadtypes-arch.h bits/sem.h bits/semaphore.h bits/setjmp.h oe_multilib_header bits/shm.h bits/sigstack.h bits/stat.h bits/statfs.h bits/typesizes.h -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] classes/kernel-yocto: Cleanup getstatusoutput usage
Replace usage of os.utils.getstatusoutput() with direct subprocess calls. Pass a modified environment and working directory where necessary to bypass the need to execute in a shell. Signed-off-by: Joshua Watt --- meta/classes/kernel-yocto.bbclass | 22 -- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass index 82d80741a95..3a7717282f3 100644 --- a/meta/classes/kernel-yocto.bbclass +++ b/meta/classes/kernel-yocto.bbclass @@ -319,7 +319,7 @@ do_kernel_configme() { addtask kernel_configme before do_configure after do_patch python do_kernel_configcheck() { -import re, string, sys +import re, string, sys, subprocess # if KMETA isn't set globally by a recipe using this routine, we need to # set the default to 'meta'. Otherwise, kconf_check is not passed a valid @@ -328,13 +328,23 @@ python do_kernel_configcheck() { if not os.path.exists(kmeta): kmeta = "." + kmeta -pathprefix = "export PATH=%s:%s; " % (d.getVar('PATH'), "${S}/scripts/util/") +s = d.getVar('S') -cmd = d.expand("scc --configs -o ${S}/.kernel-meta") -ret, configs = oe.utils.getstatusoutput("%s%s" % (pathprefix, cmd)) +env = os.environ.copy() +env['PATH'] = "%s:%s%s" % (d.getVar('PATH'), s, "/scripts/util/") -cmd = d.expand("cd ${S}; kconf_check --report -o ${S}/%s/cfg/ ${B}/.config ${S} %s" % (kmeta,configs)) -ret, result = oe.utils.getstatusoutput("%s%s" % (pathprefix, cmd)) +try: +configs = subprocess.check_output(['scc', '--configs', '-o', s + '/.kernel-meta'], env=env).decode('utf-8') +except subprocess.CalledProcessError: +# Is this really non-fatal? +pass + +try: +subprocess.check_call(['kconf_check', '--report', '-o', +'%s/%s/cfg' % (s, kmeta), d.getVar('B') + '/.config', s, configs], cwd=s, env=env) +except subprocess.CalledProcessError: +# Is this really non-fatal? +pass config_check_visibility = int(d.getVar("KCONF_AUDIT_LEVEL") or 0) bsp_check_visibility = int(d.getVar("KCONF_BSP_AUDIT_LEVEL") or 0) -- 2.17.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [sumo][PATCH v2] u-boot: Fix build race condition
Backports 2f61b13d6acba787b00598d519c85222e993e4ca (included in the 2018.07 release) which fixes a race condition when building. Signed-off-by: Joshua Watt --- ...efi_loader-avoid-make-race-condition.patch | 51 +++ .../u-boot/u-boot-common_2018.01.inc | 1 + 2 files changed, 52 insertions(+) create mode 100644 meta/recipes-bsp/u-boot/files/0001-efi_loader-avoid-make-race-condition.patch diff --git a/meta/recipes-bsp/u-boot/files/0001-efi_loader-avoid-make-race-condition.patch b/meta/recipes-bsp/u-boot/files/0001-efi_loader-avoid-make-race-condition.patch new file mode 100644 index 00..da7e27c64c --- /dev/null +++ b/meta/recipes-bsp/u-boot/files/0001-efi_loader-avoid-make-race-condition.patch @@ -0,0 +1,51 @@ +From 5c2e24a9ed54dfee77d1844a080e998b4affe916 Mon Sep 17 00:00:00 2001 +From: Heinrich Schuchardt +Date: Sat, 2 Jun 2018 19:00:41 +0200 +Subject: [PATCH] efi_loader: avoid make race condition + +When U-Boot is built with 'make -j' there is not guarantee that targets in +directory arch/ are built before targets in directory lib/. The current +build instruction for EFI binaries in lib/ rely on dependencies in arch/. +If $(EFI_CRT0) or $(EFI_RELOC) is not yet built before trying to build +%.efi an error +*** No rule to make target '%.efi' +occurs. + +With the patch separate copies of $(EFI_CRT0) and $(EFI_RELOC) named +efi_crt0.o and efi_reloc.o are built in lib/efi_loader and +lib/efi_selftest. + +Signed-off-by: Heinrich Schuchardt +Signed-off-by: Alexander Graf + +Upstream-Status: Backport from 2018.07 + +Signed-off-by: Joshua Watt +--- + scripts/Makefile.lib | 10 -- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib +index 8f19b2db56..f2f398c935 100644 +--- a/scripts/Makefile.lib b/scripts/Makefile.lib +@@ -404,8 +404,14 @@ cmd_efi_ld = $(LD) -nostdlib -znocombreloc -T $(EFI_LDS_PATH) -shared \ + + EFI_LDS_PATH = $(srctree)/arch/$(ARCH)/lib/$(EFI_LDS) + +-$(obj)/%_efi.so: $(obj)/%.o arch/$(ARCH)/lib/$(EFI_CRT0) \ +- arch/$(ARCH)/lib/$(EFI_RELOC) ++$(obj)/efi_crt0.o: $(srctree)/arch/$(ARCH)/lib/$(EFI_CRT0:.o=.S) ++ $(call if_changed_dep,as_o_S) ++ ++$(obj)/efi_reloc.o: $(srctree)/arch/$(ARCH)/lib/$(EFI_RELOC:.o=.c) $(recordmcount_source) FORCE ++ $(call cmd,force_checksrc) ++ $(call if_changed_rule,cc_o_c) ++ ++$(obj)/%_efi.so: $(obj)/%.o $(obj)/efi_crt0.o $(obj)/efi_reloc.o + $(call cmd,efi_ld) + + # ACPI +-- +2.17.1 + diff --git a/meta/recipes-bsp/u-boot/u-boot-common_2018.01.inc b/meta/recipes-bsp/u-boot/u-boot-common_2018.01.inc index d2073ea0c7..11b82b7e26 100644 --- a/meta/recipes-bsp/u-boot/u-boot-common_2018.01.inc +++ b/meta/recipes-bsp/u-boot/u-boot-common_2018.01.inc @@ -11,6 +11,7 @@ SRCREV = "f3dd87e0b98999a78e500e8c6d2b063ebadf535a" SRC_URI = "git://git.denx.de/u-boot.git \ file://MPC8315ERDB-enable-DHCP.patch \ +file://0001-efi_loader-avoid-make-race-condition.patch \ " S = "${WORKDIR}/git" -- 2.17.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [sumo][PATCH] u-boot: Fix build race condition
From: Joshua Watt Backports 2f61b13d6acba787b00598d519c85222e993e4ca (included in the 2018.07 release) which fixes a race condition when building. Change-Id: If7af74cafd9d22fcb23cfe2ffd12084ca5ca083b Signed-off-by: Joshua Watt --- ...efi_loader-avoid-make-race-condition.patch | 51 +++ .../u-boot/u-boot-common_2018.01.inc | 1 + 2 files changed, 52 insertions(+) create mode 100644 meta/recipes-bsp/u-boot/files/0001-efi_loader-avoid-make-race-condition.patch diff --git a/meta/recipes-bsp/u-boot/files/0001-efi_loader-avoid-make-race-condition.patch b/meta/recipes-bsp/u-boot/files/0001-efi_loader-avoid-make-race-condition.patch new file mode 100644 index 00..da7e27c64c --- /dev/null +++ b/meta/recipes-bsp/u-boot/files/0001-efi_loader-avoid-make-race-condition.patch @@ -0,0 +1,51 @@ +From 5c2e24a9ed54dfee77d1844a080e998b4affe916 Mon Sep 17 00:00:00 2001 +From: Heinrich Schuchardt +Date: Sat, 2 Jun 2018 19:00:41 +0200 +Subject: [PATCH] efi_loader: avoid make race condition + +When U-Boot is built with 'make -j' there is not guarantee that targets in +directory arch/ are built before targets in directory lib/. The current +build instruction for EFI binaries in lib/ rely on dependencies in arch/. +If $(EFI_CRT0) or $(EFI_RELOC) is not yet built before trying to build +%.efi an error +*** No rule to make target '%.efi' +occurs. + +With the patch separate copies of $(EFI_CRT0) and $(EFI_RELOC) named +efi_crt0.o and efi_reloc.o are built in lib/efi_loader and +lib/efi_selftest. + +Signed-off-by: Heinrich Schuchardt +Signed-off-by: Alexander Graf + +Upstream-Status: Backport from 2018.07 + +Signed-off-by: Joshua Watt +--- + scripts/Makefile.lib | 10 -- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib +index 8f19b2db56..f2f398c935 100644 +--- a/scripts/Makefile.lib b/scripts/Makefile.lib +@@ -404,8 +404,14 @@ cmd_efi_ld = $(LD) -nostdlib -znocombreloc -T $(EFI_LDS_PATH) -shared \ + + EFI_LDS_PATH = $(srctree)/arch/$(ARCH)/lib/$(EFI_LDS) + +-$(obj)/%_efi.so: $(obj)/%.o arch/$(ARCH)/lib/$(EFI_CRT0) \ +- arch/$(ARCH)/lib/$(EFI_RELOC) ++$(obj)/efi_crt0.o: $(srctree)/arch/$(ARCH)/lib/$(EFI_CRT0:.o=.S) ++ $(call if_changed_dep,as_o_S) ++ ++$(obj)/efi_reloc.o: $(srctree)/arch/$(ARCH)/lib/$(EFI_RELOC:.o=.c) $(recordmcount_source) FORCE ++ $(call cmd,force_checksrc) ++ $(call if_changed_rule,cc_o_c) ++ ++$(obj)/%_efi.so: $(obj)/%.o $(obj)/efi_crt0.o $(obj)/efi_reloc.o + $(call cmd,efi_ld) + + # ACPI +-- +2.17.1 + diff --git a/meta/recipes-bsp/u-boot/u-boot-common_2018.01.inc b/meta/recipes-bsp/u-boot/u-boot-common_2018.01.inc index d2073ea0c7..11b82b7e26 100644 --- a/meta/recipes-bsp/u-boot/u-boot-common_2018.01.inc +++ b/meta/recipes-bsp/u-boot/u-boot-common_2018.01.inc @@ -11,6 +11,7 @@ SRCREV = "f3dd87e0b98999a78e500e8c6d2b063ebadf535a" SRC_URI = "git://git.denx.de/u-boot.git \ file://MPC8315ERDB-enable-DHCP.patch \ +file://0001-efi_loader-avoid-make-race-condition.patch \ " S = "${WORKDIR}/git" -- 2.17.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [RFC PATCH 1/2] make allarch packages don't dependent specific multilib package
From: Kai Kang The dependencies of allarch packages doesn't not extend when enable multilib. So take ca-certificates as an example, it always requires openssl no matter whether multilib is enabled. For multilib image such as lib32-core-image-sato, it installs 64 bits openssl rather than lib32-openssl which is expected. So extend rdependencies of allarch package with prefix 'noarch-' and all of multilib variants. For ca-certificates -> openssl exends to ca-certificates -> openssl, lib32-openssl, noarch-openssl Rdepends on openssl and lib32-openssl make both of them exist in oe-core-repo when do rootfs. And then make both openssl and lib32-openssl provide noarch-openssl. And only keep noarch-openssl in RDEPENDS when write package for ca-certificates. So when do image rootfs for lib32-core-image-sato, remove openssl if installed already and install lib32-openssl for allarch pacakge ca-certificates. And extend rprovides of allarch package with prefix 'noarch-' too that it may be required by other allarch packages. Put all dependent packages of all allarch recipes in oe-core to a new ariable 'ALLARCH_RDEP_PKGS'. Signed-off-by: Kai Kang --- meta/classes/allarch.bbclass | 3 --- meta/classes/multilib.bbclass| 3 ++- meta/classes/multilib_global.bbclass | 31 +++- meta/classes/nativesdk.bbclass | 8 +++ meta/classes/package_deb.bbclass | 7 ++- meta/classes/package_ipk.bbclass | 7 ++- meta/classes/package_rpm.bbclass | 8 ++- meta/conf/multilib.conf | 16 ++ 8 files changed, 75 insertions(+), 8 deletions(-) diff --git a/meta/classes/allarch.bbclass b/meta/classes/allarch.bbclass index 1eebe0bf2e..52efba405a 100644 --- a/meta/classes/allarch.bbclass +++ b/meta/classes/allarch.bbclass @@ -42,9 +42,6 @@ python () { d.setVar("INHIBIT_PACKAGE_DEBUG_SPLIT", "1") d.setVar("INHIBIT_PACKAGE_STRIP", "1") -# These multilib values shouldn't change allarch packages so exclude them -d.appendVarFlag("emit_pkgdata", "vardepsexclude", " MULTILIB_VARIANTS") -d.appendVarFlag("write_specfile", "vardepsexclude", " MULTILIBS") d.appendVarFlag("do_package", "vardepsexclude", " package_do_shlibs") elif bb.data.inherits_class('packagegroup', d) and not bb.data.inherits_class('nativesdk', d): bb.error("Please ensure recipe %s sets PACKAGE_ARCH before inherit packagegroup" % d.getVar("FILE")) diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass index f2ac8bdfef..f9417ce69e 100644 --- a/meta/classes/multilib.bbclass +++ b/meta/classes/multilib.bbclass @@ -134,7 +134,8 @@ python do_package_qa_multilib() { i = i[len('virtual/'):] if (not i.startswith('kernel-module')) and (not i.startswith(mlprefix)) and \ (not 'cross-canadian' in i) and (not i.startswith("nativesdk-")) and \ -(not i.startswith("rtld")) and (not i.startswith('kernel-vmlinux')): +(not i.startswith("rtld")) and (not i.startswith('kernel-vmlinux')) and \ +(not i.startswith("noarch")): candidates.append(i) if len(candidates) > 0: msg = "%s package %s - suspicious values '%s' in %s" \ diff --git a/meta/classes/multilib_global.bbclass b/meta/classes/multilib_global.bbclass index d2ec1adfea..a5e3046498 100644 --- a/meta/classes/multilib_global.bbclass +++ b/meta/classes/multilib_global.bbclass @@ -161,6 +161,16 @@ multilib_virtclass_handler_vendor[eventmask] = "bb.event.ConfigParsed" python multilib_virtclass_handler_global () { variant = e.data.getVar("BBEXTENDVARIANT") + +# make packages from ALLARCH_RDEP_PKGS provide noarch-pkg +if not (bb.data.inherits_class('nativesdk', e.data) or bb.data.inherits_class('crosssdk', e.data)): +for pkg in (e.data.getVar("PACKAGES") or "").split(): +bpkg = pkg.lstrip(variant + "-" if variant else "") +if bpkg in (e.data.getVar("ALLARCH_RDEP_PKGS") or ""): +rprovs = d.getVar("RPROVIDES_%s" % pkg) or "" +rprovs = rprovs + " noarch-" + bpkg +d.setVar("RPROVIDES_%s" % pkg, rprovs.strip()) + if variant: return @@ -194,9 +204,28 @@ python multilib_virtclass_handler_global () { for clsextend in clsextends: rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES_%s" % pkg, setvar=False) rprovs = rprovs + " " + clsextend.extname + "-" + pkg + +if bb.data.inherits_class('allarch', e.data): +# make allarch pkg rprovides noarch-itself +if not pkg.endswith(("-dbg", "-dev", "-staticdev")): +rprovs = rprovs + " noarch-" + pkg + e.data.setVar("RPROVIDES_%s" % pkg, rprovs) + +# Process RDEPENDS for noarch recipe +if
[OE-core] [RFC PATCH 0/2] Install rdependent of allarch package with same multilib variant of image
From: Kai Kang Hi Richard and Mark, The series rfc patch is trying to install 64bits packages which is required by allarch package to 32 bits image. Work for rpm and need little more work and test for dpkg and opkg. Take ca-certificates as example. It requires openssl. So it intalls openssl for both core-image-sato and lib32-core-image-sato. But lib32-openssl is expected to be installed to lib32-core-image-sato. So extend rdpendent of allarch package with all multilib variants and 'noarch-' as well. Extend ca-certificates -> openssl to ca-certificates -> openssl, lib32-openssl, noarch-openssl Rdepends on openssl and lib32-openssl make both of them exist in oe-core-repo when do rootfs. And then make both openssl and lib32-openssl provide noarch-openssl. And only keep noarch-openssl in RDEPENDS when write package for ca-certificates. When do image rootfs for lib32-core-image-sato, remove openssl if installed already and install lib32-openssl to provide noarch-openssl for allarch pacakge ca-certificates. And extend rprovides of allarch package with prefix 'noarch-' too that it may be required by other allarch packages. Put all dependent packages of all allarch recipes in oe-core to a new ariable 'ALLARCH_RDEP_PKGS'. Any comment for this method is welcomed. Thanks a lot. --Kai Kai Kang (2): make allarch packages don't dependent specific multilib package WIP: install rdependent packages of allarch packages according to image rootfs meta/classes/allarch.bbclass | 3 -- meta/classes/multilib.bbclass| 3 +- meta/classes/multilib_global.bbclass | 31 - meta/classes/nativesdk.bbclass | 8 + meta/classes/package_deb.bbclass | 7 +++- meta/classes/package_ipk.bbclass | 7 +++- meta/classes/package_rpm.bbclass | 8 - meta/conf/multilib.conf | 16 + meta/lib/oe/package_manager.py | 51 ++-- meta/lib/oe/rootfs.py| 28 +++ 10 files changed, 152 insertions(+), 10 deletions(-) -- 2.17.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [RFC PATCH 2/2] WIP: install rdependent packages of allarch packages according to image rootfs
From: Kai Kang Add interface is_leaf to package managers. If any multilib variant of package from 'ALLARCH_RDEP_PKGS' is installed to image rootfs, then install the packages with 'BBEXTENDVARIANT' of current image and remove the already installed package if not required by others and not add to image intentionally. Signed-off-by: Kai Kang --- meta/lib/oe/package_manager.py | 51 -- meta/lib/oe/rootfs.py | 28 +++ 2 files changed, 77 insertions(+), 2 deletions(-) diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py index 9aa5847c8a..eeaf297432 100644 --- a/meta/lib/oe/package_manager.py +++ b/meta/lib/oe/package_manager.py @@ -249,7 +249,7 @@ class DpkgIndexer(Indexer): release.write("Label: %s\n" % arch) cmd += "PSEUDO_UNLOAD=1 %s release . >> Release" % apt_ftparchive - + index_cmds.append(cmd) deb_dirs_found = True @@ -448,6 +448,13 @@ class PackageManager(object, metaclass=ABCMeta): def list_installed(self): pass +@abstractmethod +def is_leaf(self, pkg): +""" +Whether pkg is required by other packages +""" +pass + @abstractmethod def extract(self, pkg): """ @@ -587,7 +594,7 @@ def create_packages_dir(d, rpm_repo_dir, deploydir, taskname, filterbydependenci pn = d.getVar("PN") seendirs = set() multilibs = {} - + rpm_subrepo_dir = oe.path.join(rpm_repo_dir, "rpm") bb.utils.remove(rpm_subrepo_dir, recurse=True) @@ -895,6 +902,20 @@ class RpmPM(PackageManager): return packages +def is_leaf(self, pkg): +if not pkg: +return False + +cmd = bb.utils.which(os.getenv('PATH'), "rpm") +args = ["-q", "--whatrequires", "--root=%s" % self.target_rootfs] + +bb.note("Running %s" % ' '.join([cmd] + args + [pkg])) +# return value 0 stands for other(s) require(s) pkg +if subprocess.call([cmd] + args + [pkg], shell=True): +return True +else: +return False + def update(self): self._invoke_dnf(["makecache", "--refresh"]) @@ -1327,6 +1348,12 @@ class OpkgPM(OpkgDpkgPM): def list_installed(self): return OpkgPkgsList(self.d, self.target_rootfs, self.config_file).list_pkgs() +def is_leaf(self, pkg): +if not pkg: +return False + + + def handle_bad_recommendations(self): bad_recommendations = self.d.getVar("BAD_RECOMMENDATIONS") or "" if bad_recommendations.strip() == "": @@ -1753,6 +1780,26 @@ class DpkgPM(OpkgDpkgPM): def list_installed(self): return DpkgPkgsList(self.d, self.target_rootfs).list_pkgs() +def is_leaf(self, pkg): +bb.warn("=in dpkg is_leaf()\n") +if not pkg: +return False + +cmd = "%s rdepends %s" % (self.apt_cache_cmd, pkg) + +try: +output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8") +except subprocess.CalledProcessError as e: +bb.fatal("Unable to list rdepends packages. Command '%s' " + "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8"))) + +bb.warn(output) +bb.warn(len(output.split())) +if len(output.split()) > 2: +return False +else: +return True + def package_info(self, pkg): """ Returns a dictionary with the package info. diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py index 28642abbd9..54bde6798b 100644 --- a/meta/lib/oe/rootfs.py +++ b/meta/lib/oe/rootfs.py @@ -170,6 +170,7 @@ class Rootfs(object, metaclass=ABCMeta): def create(self): bb.note("## Generate rootfs ###") +bb.warn(" in create ## Generate rootfs ###") pre_process_cmds = self.d.getVar("ROOTFS_PREPROCESS_COMMAND") post_process_cmds = self.d.getVar("ROOTFS_POSTPROCESS_COMMAND") rootfs_post_install_cmds = self.d.getVar('ROOTFS_POSTINSTALL_COMMAND') @@ -213,6 +214,9 @@ class Rootfs(object, metaclass=ABCMeta): self._uninstall_unneeded() +bb.warn("= in rootfs() before self._fix_allarch_ml_rdeps\n") +self._fix_allarch_ml_rdeps() + if self.progress_reporter: self.progress_reporter.next_stage() @@ -279,6 +283,30 @@ class Rootfs(object, metaclass=ABCMeta): # Remove the package manager data files self.pm.remove_packaging_data() +def _fix_allarch_ml_rdeps(self): +variant = self.d.getVar("BBEXTENDVARIANT") or "" +ml_variants = self.d.getVar("MULTILIB_VARIANTS") or "" + +packages = self.pm.list_installed() + +pkg_to_remove = list() +bb.warn("=== in _fix_allarch_ml_rdeps \n") +for var in ml_variants.split(): +for pkg
Re: [OE-core] Setting include path in a recipe
On Tue, Jul 24, 2018 at 10:51 AM Andre McCurdy wrote: > On Tue, Jul 24, 2018 at 6:52 AM, Adam Lee wrote: > > > > How do I defined a custom include path for an autotools recipe? > > > > This may as well be explained somewhere in the reference manual, but I > can't > > seem to find it. > > Assuming you want to add a custom directory which is within sysroot: > > CPPFLAGS += "-I=/usr/include/specialheaders" > -- -I= is gcc specific using STAGING_INCDIR would be portable > > ___ > 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] relocate_sdk.py: remove hardcoded SDK path
Whilst we merged this, it has unfortunately totally broken uninative- tarball. We're under pressure to update to a new uninative to unbreak builds on recent distros with sstate sharing and this now blocks doing so. I can't add the value to the relocate_sdk.py call from uninative.bbclass since I don't know what value the tarball would have been generated with. I suspect I'll have to revert this and then you can work on a way to fix this... Cheers, Richard On Tue, 2018-07-17 at 08:22 -0700, Christopher Larson wrote: > IMHO this is a solid improvement that should go in. > > On Tue, Jul 17, 2018 at 8:09 AM Ruslan Bilovol via Openembedded-core > wrote: > > Hi all, > > > > Any comments on this patch? > > > > Thanks > > Ruslan > > > > On 11/22/2017 01:20 PM, Ruslan Bilovol wrote: > > > This patch removes hardcodes added to relocate_sdk.py > > > during SDK build, making it flexible and reusable. > > > Now default SDK path is passed to the script as > > > parameter rather then harcoded inside it. > > > > > > This allows to reuse this script for multiple > > > relocations, and adds possibility to relocate > > > SDK multiple times > > > > > > Signed-off-by: Ruslan Bilovol > > > --- > > > meta/classes/populate_sdk_base.bbclass | 5 - > > > meta/files/toolchain-shar-relocate.sh | 2 +- > > > scripts/relocate_sdk.py| 17 + > > > 3 files changed, 10 insertions(+), 14 deletions(-) > > > > > > diff --git a/meta/classes/populate_sdk_base.bbclass > > b/meta/classes/populate_sdk_base.bbclass > > > index 424c63c..e7aa5a8 100644 > > > --- a/meta/classes/populate_sdk_base.bbclass > > > +++ b/meta/classes/populate_sdk_base.bbclass > > > @@ -152,11 +152,6 @@ do_populate_sdk[stamp-extra-info] = > > "${MACHINE}${SDKMACHINE}" > > > > > > fakeroot create_sdk_files() { > > > cp ${COREBASE}/scripts/relocate_sdk.py > > ${SDK_OUTPUT}/${SDKPATH}/ > > > - > > > - # Replace the ##DEFAULT_INSTALL_DIR## with the correct > > pattern. > > > - # Escape special characters like '+' and '.' in the SDKPATH > > > - escaped_sdkpath=$(echo ${SDKPATH} |sed -e > > "s:[\+\.]:\0:g") > > > - sed -i -e "s:##DEFAULT_INSTALL_DIR##:$escaped_sdkpath:" > > ${SDK_OUTPUT}/${SDKPATH}/relocate_sdk.py > > > } > > > > > > python check_sdk_sysroots() { > > > diff --git a/meta/files/toolchain-shar-relocate.sh > > b/meta/files/toolchain-shar-relocate.sh > > > index e3c1001..f82ff2b 100644 > > > --- a/meta/files/toolchain-shar-relocate.sh > > > +++ b/meta/files/toolchain-shar-relocate.sh > > > @@ -36,7 +36,7 @@ if [ x\${PYTHON} = "x" ]; then > > > echo "SDK could not be relocated. No python found." > > > exit 1 > > > fi > > > -\${PYTHON} ${env_setup_script%/*}/relocate_sdk.py > > $target_sdk_dir $dl_path $executable_files > > > +\${PYTHON} ${env_setup_script%/*}/relocate_sdk.py > > $DEFAULT_INSTALL_DIR $target_sdk_dir $dl_path $executable_files > > > EOF > > > > > > $SUDO_EXEC mv $tdir/relocate_sdk.sh > > ${env_setup_script%/*}/relocate_sdk.sh > > > diff --git a/scripts/relocate_sdk.py b/scripts/relocate_sdk.py > > > index c752fa2..0d5a6f5 100755 > > > --- a/scripts/relocate_sdk.py > > > +++ b/scripts/relocate_sdk.py > > > @@ -38,8 +38,6 @@ else: > > > def b(x): > > > return x.encode(sys.getfilesystemencoding()) > > > > > > -old_prefix = re.compile(b("##DEFAULT_INSTALL_DIR##")) > > > - > > > def get_arch(): > > > f.seek(0) > > > e_ident =f.read(16) > > > @@ -212,19 +210,22 @@ def change_dl_sysdirs(elf_file_name): > > > f.write(sysdirslen) > > > > > > # MAIN > > > -if len(sys.argv) < 4: > > > +if len(sys.argv) < 5: > > > sys.exit(-1) > > > > > > # In python > 3, strings may also contain Unicode characters. > > So, convert > > > # them to bytes > > > if sys.version_info < (3,): > > > -new_prefix = sys.argv[1] > > > -new_dl_path = sys.argv[2] > > > +new_prefix = sys.argv[2] > > > +new_dl_path = sys.argv[3] > > > else: > > > -new_prefix = sys.argv[1].encode() > > > -new_dl_path = sys.argv[2].encode() > > > +new_prefix = sys.argv[2].encode() > > > +new_dl_path = sys.argv[3].encode() > > > + > > > +executables_list = sys.argv[4:] > > > > > > -executables_list = sys.argv[3:] > > > +old_prefix_ne = b(sys.argv[1]) > > > +old_prefix = re.compile(re.escape(old_prefix_ne)); > > > > > > for e in executables_list: > > > perms = os.stat(e)[stat.ST_MODE] > > > > > -- > > ___ > > 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] webkitgtk: fix compile failure on beaglebone
On 2018年07月25日 17:53, Burton, Ross wrote: On 25 July 2018 at 08:55, Hongxu Jia wrote: +Upstream-Status: Pending You'll be submitting this upstream right? Of course, I submitted upstream after oe-core There patch review system is based on bugzilla https://bugs.webkit.org/show_bug.cgi?id=187991 Patch status seems ` commit-queue-' //Hongxu Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 2/2] selftest/bbtests: Add test for bitbake execution outside the build directory
Also fix a related test's error message to match what it does. Signed-off-by: Richard Purdie --- meta/lib/oeqa/selftest/cases/bbtests.py | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/meta/lib/oeqa/selftest/cases/bbtests.py b/meta/lib/oeqa/selftest/cases/bbtests.py index 350614967c9..005fdd09640 100644 --- a/meta/lib/oeqa/selftest/cases/bbtests.py +++ b/meta/lib/oeqa/selftest/cases/bbtests.py @@ -15,16 +15,26 @@ class BitbakeTests(OESelftestTestCase): return l @OETestID(789) +# Test bitbake can run from the /conf directory def test_run_bitbake_from_dir_1(self): os.chdir(os.path.join(self.builddir, 'conf')) self.assertEqual(bitbake('-e').status, 0, msg = "bitbake couldn't run from \"conf\" dir") @OETestID(790) +# Test bitbake can run from the 's parent directory def test_run_bitbake_from_dir_2(self): my_env = os.environ.copy() my_env['BBPATH'] = my_env['BUILDDIR'] os.chdir(os.path.dirname(os.environ['BUILDDIR'])) -self.assertEqual(bitbake('-e', env=my_env).status, 0, msg = "bitbake couldn't run from builddir") +self.assertEqual(bitbake('-e', env=my_env).status, 0, msg = "bitbake couldn't run from builddir's parent directory") + +# Test bitbake can run from some other random system location (we use /tmp/) +def test_run_bitbake_from_dir_3(self): +my_env = os.environ.copy() +my_env['BBPATH'] = my_env['BUILDDIR'] +os.chdir("/tmp/") +self.assertEqual(bitbake('-e', env=my_env).status, 0, msg = "bitbake couldn't run from /tmp/") + @OETestID(806) def test_event_handler(self): -- 2.17.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/2] selftest/bblayers: Place the test layer directory in builddir
Placing the layer in meta means the directory is in an unclean state which may influence other tests. Use our build directory instead since we 'own' that. This helps keep oe-selftest parallelisation clean. Signed-off-by: Richard Purdie --- meta/lib/oeqa/selftest/cases/bblayers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/lib/oeqa/selftest/cases/bblayers.py b/meta/lib/oeqa/selftest/cases/bblayers.py index 3448ae1999b..447c54b7e60 100644 --- a/meta/lib/oeqa/selftest/cases/bblayers.py +++ b/meta/lib/oeqa/selftest/cases/bblayers.py @@ -88,7 +88,7 @@ class BitbakeLayers(OESelftestTestCase): def test_bitbakelayers_createlayer(self): priority = 10 layername = 'test-bitbakelayer-layercreate' -layerpath = os.path.join(get_bb_var('COREBASE'), layername) +layerpath = os.path.join(self.builddir, layername) self.assertFalse(os.path.exists(layerpath), '%s should not exist at this point in time' % layerpath) result = runCmd('bitbake-layers create-layer --priority=%d %s' % (priority, layerpath)) self.track_for_cleanup(layerpath) -- 2.17.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] lsof: upgrade 4.89 -> 4.91
Signed-off-by: Ovidiu Panait --- meta/recipes-extended/lsof/{lsof_4.89.bb => lsof_4.91.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta/recipes-extended/lsof/{lsof_4.89.bb => lsof_4.91.bb} (93%) diff --git a/meta/recipes-extended/lsof/lsof_4.89.bb b/meta/recipes-extended/lsof/lsof_4.91.bb similarity index 93% rename from meta/recipes-extended/lsof/lsof_4.89.bb rename to meta/recipes-extended/lsof/lsof_4.91.bb index 14546db23c..0128de4a6e 100644 --- a/meta/recipes-extended/lsof/lsof_4.89.bb +++ b/meta/recipes-extended/lsof/lsof_4.91.bb @@ -15,8 +15,8 @@ SRC_URI = "http://www.mirrorservice.org/sites/lsof.itap.purdue.edu/pub/tools/uni file://lsof-remove-host-information.patch \ " -SRC_URI[md5sum] = "1b9cd34f3fb86856a125abbf2be3a386" -SRC_URI[sha256sum] = "81ac2fc5fdc944793baf41a14002b6deb5a29096b387744e28f8c30a360a3718" +SRC_URI[md5sum] = "148ed410cb52e08c2adc0c60f480f11f" +SRC_URI[sha256sum] = "c9da946a525fbf82ff80090b6d1879c38df090556f3fe0e6d782cb44172450a3" LOCALSRC = "file://${WORKDIR}/lsof_${PV}/lsof_${PV}_src.tar" -- 2.17.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] oe-selftest test cases which write to meta/
As some will have gathered we want to parallelise oe-selftest. In the weekly status report I promised a report of the problems. There are some test cases which write to meta/ and these interfere with other tests which may be running in parallel. I've run oe-selftest with monitoring in the background to spot changes. The tests I found were making changes are: devtool.DevtoolUpdateTests.test_devtool_update_recipe bblayers.BitbakeLayers.test_bitbakelayers_createlayer devtool.DevtoolUpdateTests.test_devtool_update_recipe_git devtool.DevtoolUpdateTests.test_devtool_update_recipe_append_git devtool.DevtoolUpdateTests.test_devtool_update_recipe_local_files devtool.DevtoolUpgradeTests.test_devtool_finish_modify_origlayer devtool.DevtoolUpgradeTests.test_devtool_load_plugin recipetool.RecipetoolTests.test_recipetool_load_plugin bbtests.BitbakeTests.test_run_bitbake_from_dir_2 I believe Paul is going to look at a generic solution for devtool.DevtoolUpgradeTests and devtool.DevtoolUpdateTests where we'll make a copy of meta/ since those have a genuine need to modify the meta/ directory for the test. That will leave: bblayers.BitbakeLayers.test_bitbakelayers_createlayer devtool.DevtoolUpgradeTests.test_devtool_load_plugin recipetool.RecipetoolTests.test_recipetool_load_plugin bbtests.BitbakeTests.test_run_bitbake_from_dir_2 I suspect these 4 don't break other tests so we don't need to fix these before enabling parallelisation by default but we still need to fix them. createlayer is probably easy to fix, the load_plugins test is harder (both are the same issue). The last bitbake one generates a cookerlog in an annoying location so is hopefully easy to fix by choice of working directory too. Details follow below with a list of files each test changes or creates. Cheers, Richard *** devtool.DevtoolUpdateTests.test_devtool_update_recipe: diff --git a/meta/recipes-extended/minicom/minicom_2.7.1.bb b/meta/recipes-extended/minicom/minicom_2.7.1.bb index 1e6f1317ebe..94c75d8b7d8 100644 --- a/meta/recipes-extended/minicom/minicom_2.7.1.bb +++ b/meta/recipes-extended/minicom/minicom_2.7.1.bb @@ -11,7 +11,9 @@ SRC_URI = "${DEBIAN_MIRROR}/main/m/${BPN}/${BPN}_${PV}.orig.tar.gz \ file://allow.to.disable.lockdev.patch \ file://0001-fix-minicom-h-v-return-value-is-not-0.patch \ file://0001-Fix-build-issus-surfaced-due-to-musl.patch \ - " + file://0001-Change-the-README.patch \ + file://0002-Add-a-new-file.patch \ + " SRC_URI[md5sum] = "9021cb8c5445f6e6e74b2acc39962d62" SRC_URI[sha256sum] = "532f836b7a677eb0cb1dca8d70302b73729c3d30df26d58368d712e5cca041f1" *** bblayers.BitbakeLayers.test_bitbakelayers_createlayer test-bitbakelayer-layercreate/COPYING.MIT test-bitbakelayer-layercreate/README test-bitbakelayer-layercreate/conf/layer.conf test-bitbakelayer-layercreate/recipes-example/example/example_0.1.bb *** devtool.DevtoolUpdateTests.test_devtool_update_recipe_append_git diff --git a/meta/recipes-devtools/mtd/mtd-utils/add-exclusion-to-mkfs-jffs2-git-2.patch b/meta/recipes-devtools/mtd/mtd-utils/add-exclusion-to-mkfs-jffs2-git-2.patch deleted file mode 100644 index 5d874d9810b..000 --- a/meta/recipes-devtools/mtd/mtd-utils/add-exclusion-to-mkfs-jffs2-git-2.patch +++ /dev/null @@ -1,105 +0,0 @@ -Upstream-Status: Pending - -Index: git/jffsX-utils/mkfs.jffs2.c -=== git.orig/jffsX-utils/mkfs.jffs2.c -+++ git/jffsX-utils/mkfs.jffs2.c -@@ -100,6 +100,11 @@ struct filesystem_entry { - struct rb_node hardlink_rb; - }; - -+struct ignorepath_entry { -+ struct ignorepath_entry* next; /* Points to the next ignorepath element */ -+ char name[PATH_MAX];/* Name of the entry */ -+}; -+static struct ignorepath_entry* ignorepath = 0; - struct rb_root hardlinks; - static int out_fd = -1; - static int in_fd = -1; -@@ -309,7 +314,7 @@ static struct filesystem_entry *recursiv - char *hpath, *tpath; - struct dirent *dp, **namelist; - struct filesystem_entry *entry; -- -+ struct ignorepath_entry* element = ignorepath; - - if (lstat(hostpath, )) { - sys_errmsg_die("%s", hostpath); -@@ -318,6 +323,15 @@ static struct filesystem_entry *recursiv - entry = add_host_filesystem_entry(targetpath, hostpath, - sb.st_uid, sb.st_gid, sb.st_mode, 0, parent); - -+ while ( element ) { -+ if ( strcmp( element->name, targetpath ) == 0 ) { -+ printf( "Note: ignoring directories below '%s'\n", targetpath ); -+ return entry; -+ break; -+ } -+ element = element->next; -+ } -+ - n = scandir(hostpath, , 0, alphasort); - if (n < 0) { - sys_errmsg_die("opening directory %s", hostpath); -@@ -1359,6 +1373,7 @@ static struct option long_options[] = { - {"root", 1,
Re: [OE-core] [PATCH] binutils : enable production of EFI binaries on x86-64
Yes, please just enable it as widely as possible. Ross On 25 July 2018 at 06:56, Khem Raj wrote: > On Tue, Jul 24, 2018 at 8:16 PM Christopher Clark > wrote: >> >> From: Christopher Clark >> >> When MACHINE_FEATURES includes "efi" and target is x86-64, >> enable the linker to produce Portable Executables: EFI binaries. >> >> Supplies "--enable-targets=x86_64-pep" in EXTRA_OECONF. >> >> Enables building the EFI variant of the Xen hypervisor. >> >> Signed-off-by: Christopher Clark >> --- >> meta/recipes-devtools/binutils/binutils.inc | 5 - >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/meta/recipes-devtools/binutils/binutils.inc >> b/meta/recipes-devtools/binutils/binutils.inc >> index 37813dd..eedcc7e 100644 >> --- a/meta/recipes-devtools/binutils/binutils.inc >> +++ b/meta/recipes-devtools/binutils/binutils.inc >> @@ -69,12 +69,15 @@ python do_package_prepend() { >> >> B = "${S}/build.${HOST_SYS}.${TARGET_SYS}" >> >> +ENABLE_EFI_BINARIES_x86-64 = "--enable-targets=x86_64-pep" >> + > > > >> EXTRA_OECONF = "--program-prefix=${TARGET_PREFIX} \ >> --disable-werror \ >> --enable-deterministic-archives \ >> --enable-plugins \ >> ${LDGOLD} \ >> -${@bb.utils.contains('DISTRO_FEATURES', 'multiarch', >> '--enable-64-bit-bfd', '', d)}" >> +${@bb.utils.contains('DISTRO_FEATURES', 'multiarch', >> '--enable-64-bit-bfd', '', d)} \ >> +${@bb.utils.contains('MACHINE_FEATURES', 'efi', >> '${ENABLE_EFI_BINARIES}', '', d)}" > > I think we should avoid using machine features rather enable this > emulation unconditionally for efi enabled > targets, which for now are arm/x86/x86_64/aarch64 > >> >> LDGOLD_class-native = "" >> LDGOLD_class-crosssdk = "" >> -- >> 2.7.4 >> > -- > ___ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] webkitgtk: fix compile failure on beaglebone
On 25 July 2018 at 08:55, Hongxu Jia wrote: > +Upstream-Status: Pending You'll be submitting this upstream right? Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 2/3] runqemu: default qemumips memory to 256M
Sorry, please ignore this one, it had been fixed by: commit c68e4c6e3eb612bb7afd9d7f1e9a6dc295d44346 Author: He Zhe Date: Sun Jul 8 20:14:43 2018 -0700 scripts/runqemu: fix qemumips qemumips64 memory detection kernel panic I removed it from repo. // Robert On 07/25/2018 04:34 PM, Robert Yang wrote: The qemumips or qemumips64 can't be boot with 512M. *Fixed when no QB_MEM is set: - runqemu qemumips nographic core-image-minimal [0.00] Call Trace: [0.00] [<8011c010>] clear_page+0x0/0x128 [0.00] [<8022b818>] get_page_from_freelist+0xa1c/0xb48 [0.00] [<8022c00c>] __alloc_pages_nodemask+0xd8/0xf0c [0.00] [<8022ce58>] __get_free_pages+0x18/0x60 [0.00] [<80118674>] setup_zero_pages+0x1c/0x98 [0.00] [<80bd23e4>] mem_init+0x44/0x54 [0.00] [<80bca964>] start_kernel+0x20c/0x4bc [0.00] [<80920090>] kernel_entry+0x0/0x40 [0.00] Code: <34860f80> cc9e cc9e0010 cc9e0020 cc9e0030 cc9e0040 [0.00] [0.00] ---[ end trace ]--- [0.00] Kernel panic - not syncing: Attempted to kill the idle task! [0.00] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! [YOCTO #11521] Signed-off-by: Robert Yang --- scripts/runqemu | 9 +++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/scripts/runqemu b/scripts/runqemu index 73d7d58..7a13e5d 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -665,8 +665,13 @@ class BaseConfig(object): if s: self.set('QB_MEM', '-m %s' % s.group(1)) elif not self.get('QB_MEM'): -logger.info('QB_MEM is not set, use 512M by default') -self.set('QB_MEM', '-m 512') +mach = self.get('MACHINE') +if mach.startswith('qemumips'): +logger.info('QB_MEM is not set, use 256M by default') +self.set('QB_MEM', '-m 256') +else: +logger.info('QB_MEM is not set, use 512M by default') +self.set('QB_MEM', '-m 512') mach = self.get('MACHINE') if not mach.startswith('qemumips'): -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 2/3] runqemu: default qemumips memory to 256M
The qemumips or qemumips64 can't be boot with 512M. *Fixed when no QB_MEM is set: - runqemu qemumips nographic core-image-minimal [0.00] Call Trace: [0.00] [<8011c010>] clear_page+0x0/0x128 [0.00] [<8022b818>] get_page_from_freelist+0xa1c/0xb48 [0.00] [<8022c00c>] __alloc_pages_nodemask+0xd8/0xf0c [0.00] [<8022ce58>] __get_free_pages+0x18/0x60 [0.00] [<80118674>] setup_zero_pages+0x1c/0x98 [0.00] [<80bd23e4>] mem_init+0x44/0x54 [0.00] [<80bca964>] start_kernel+0x20c/0x4bc [0.00] [<80920090>] kernel_entry+0x0/0x40 [0.00] Code: <34860f80> cc9e cc9e0010 cc9e0020 cc9e0030 cc9e0040 [0.00] [0.00] ---[ end trace ]--- [0.00] Kernel panic - not syncing: Attempted to kill the idle task! [0.00] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! [YOCTO #11521] Signed-off-by: Robert Yang --- scripts/runqemu | 9 +++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/scripts/runqemu b/scripts/runqemu index 73d7d58..7a13e5d 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -665,8 +665,13 @@ class BaseConfig(object): if s: self.set('QB_MEM', '-m %s' % s.group(1)) elif not self.get('QB_MEM'): -logger.info('QB_MEM is not set, use 512M by default') -self.set('QB_MEM', '-m 512') +mach = self.get('MACHINE') +if mach.startswith('qemumips'): +logger.info('QB_MEM is not set, use 256M by default') +self.set('QB_MEM', '-m 256') +else: +logger.info('QB_MEM is not set, use 512M by default') +self.set('QB_MEM', '-m 512') mach = self.get('MACHINE') if not mach.startswith('qemumips'): -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/3] qemurunner.py: fix is_alive() to avoid confusing with recycled pid
[YOCTO #12493] Fixed: - qemu started with pid 1 - qemu exited unexpectedly - The pid 1 is re-used by another different process. The is_alive() returned True in such a case because both qemu_pidfile and /proc/1 exist, but it's another process, this patch fixed the problem. Signed-off-by: Robert Yang --- meta/lib/oeqa/utils/qemurunner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py index c962602..864fc71 100644 --- a/meta/lib/oeqa/utils/qemurunner.py +++ b/meta/lib/oeqa/utils/qemurunner.py @@ -400,7 +400,7 @@ class QemuRunner: return False def is_alive(self): -if not self.runqemu: +if not self.runqemu or self.runqemu.poll() is not None: return False if os.path.isfile(self.qemu_pidfile): f = open(self.qemu_pidfile, 'r') -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 3/3] runqemu: let qemuparams override previous settings
Fixed: $ runqemu qemux86-64 qemuparams="-cpu coreduo" The default cpu is core2duo, but coreduo should be used here. Append qemuparams to the last can fix the problem. [YOCTO #11773] Signed-off-by: Robert Yang --- scripts/runqemu | 17 - 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/scripts/runqemu b/scripts/runqemu index 7a13e5d..6b4078f 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -188,6 +188,7 @@ class BaseConfig(object): self.qemu_opt = '' self.qemu_opt_script = '' +self.qemuparams = '' self.clean_nfs_dir = False self.nfs_server = '' self.rootfs = '' @@ -451,7 +452,7 @@ class BaseConfig(object): elif arg.startswith('biosfilename='): self.qemu_opt_script += ' -bios %s' % arg[len('biosfilename='):] elif arg.startswith('qemuparams='): -self.qemu_opt_script += ' %s' % arg[len('qemuparams='):] +self.qemuparams = ' %s' % arg[len('qemuparams='):] elif arg.startswith('bootparams='): self.bootparams = arg[len('bootparams='):] elif os.path.exists(arg) or (re.search(':', arg) and re.search('/', arg)): @@ -661,10 +662,12 @@ class BaseConfig(object): raise RunQemuError("Invalid custombiosdir: %s" % self.custombiosdir) def check_mem(self): -s = re.search('-m +([0-9]+)', self.qemu_opt_script) -if s: -self.set('QB_MEM', '-m %s' % s.group(1)) -elif not self.get('QB_MEM'): +for opt in (self.qemu_opt_script, self.qemuparams): +s = re.search('-m +([0-9]+)', opt) +if s: +self.set('QB_MEM', '-m %s' % s.group(1)) + +if not self.get('QB_MEM'): mach = self.get('MACHINE') if mach.startswith('qemumips'): logger.info('QB_MEM is not set, use 256M by default') @@ -1166,6 +1169,10 @@ class BaseConfig(object): self.qemu_opt += ' ' + self.qemu_opt_script +# Append qemuparams to override previous settings +if self.qemuparams: +self.qemu_opt += ' ' + self.qemuparams + if self.snapshot: self.qemu_opt += " -snapshot" -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 0/3] 3 fixes for runqemu and qemurunner.py
The following changes since commit 39c1719a32ed5567e3bf2df5c4f9068d0f5a9400: uninative-tarball: Add nativesdk-libnss-nis to resolve glibc symbol issues (2018-07-24 17:03:39 +0100) are available in the git repository at: git://git.openembedded.org/openembedded-core-contrib rbt/qemu http://cgit.openembedded.org/openembedded-core-contrib/log/?h=rbt/qemu Robert Yang (3): qemurunner.py: fix is_alive() to avoid confusing with recycled pid runqemu: default qemumips memory to 256M runqemu: let qemuparams override previous settings meta/lib/oeqa/utils/qemurunner.py | 2 +- scripts/runqemu | 26 +++--- 2 files changed, 20 insertions(+), 8 deletions(-) -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH v2] cross-canadian/libgcc: fix aarch64's multilib SDK
Hi Maohui, Thanks for sending it, I do think that oe-core needs this patch. // Robert On 06/26/2018 06:27 AM, Lei Maohui wrote: The arm toolchain has a "-gnueabi" suffix, but aarch64 doesn't, this makes multilib sdk doesn't work, there will be error as following: .../usr/libexec/armeb-poky-linux-gux-linux-gnueabi/7.3.0/real-ld: cannot find crtbeginS.o: No such file or directo .../usr/libexec/armeb-poky-linux-gux-linux-gnueabi/7.3.0/real-ld: cannot find -lgcc .../usr/libexec/armeb-poky-linux-gux-linux-gnueabi/7.3.0/real-ld: cannot find -lgcc collect2: error: ld returned 1 exit status Signed-off-by: Robert Yang Signed-off-by: Lei Maohui --- meta/recipes-devtools/gcc/libgcc-common.inc | 23 +-- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/meta/recipes-devtools/gcc/libgcc-common.inc b/meta/recipes-devtools/gcc/libgcc-common.inc index 848a476..a49fc98 100644 --- a/meta/recipes-devtools/gcc/libgcc-common.inc +++ b/meta/recipes-devtools/gcc/libgcc-common.inc @@ -145,11 +145,22 @@ fakeroot python do_extra_symlinks() { if bb.data.inherits_class('nativesdk', d): return -targetsys = d.getVar('BASETARGET_SYS') +base_targetsys = d.getVar('BASETARGET_SYS') +targetsys = d.getVar('TARGET_SYS') + +if base_targetsys != targetsys: +dest = d.getVar('D') + d.getVar('libdir') + '/' + base_targetsys +dest_list = [dest] +# For multilib like aarch64 + arm, need 2 symlinks: +# 1) BASETARGET_SYS as usual +# 2) BASETARGET_SYS + "-gnueabi" for multilib +libce = d.getVar('LIBCEXTENSION') +abie = d.getVar('ABIEXTENSION') +if abie and libce and targetsys.endswith(libce + abie): +dest_list.append(dest + libce + abie) +src = targetsys +for dir in dest_list: +if not os.path.lexists(dir) and os.path.lexists(d.getVar('D', True) + d.getVar('libdir', True)): +os.symlink(src, dir) -if targetsys != d.getVar('TARGET_SYS'): -dest = d.getVar('D') + d.getVar('libdir') + '/' + targetsys -src = d.getVar('TARGET_SYS') -if not os.path.lexists(dest) and os.path.lexists(d.getVar('D') + d.getVar('libdir')): -os.symlink(src, dest) } -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] cryptodev-linux: Fixes a kernel crash observed with cipher-gcm test.
Seems this needs updating. The context of cryptiodev-module_1.9.bb has changed. Thanks, Zhe On 2018年07月09日 10:24, Jiping Ma wrote: > The crypto API for AEAD ciphers changed in recent kernels so that > associated data is now part of both source and destination scatter > gathers. The source, destination and associated data buffers need > to be stiched accordingly for the operations to succeed. > > Signed-off-by: Jiping Ma > --- > .../cryptodev/cryptodev-module_1.9.bb | 2 + > ...inux-split-big-function-to-simplify-maint.patch | 249 > + > ...inux-Fixes-a-kernel-crash-observed-with-c.patch | 115 ++ > 3 files changed, 366 insertions(+) > create mode 100644 > meta/recipes-kernel/cryptodev/files/0001-cryptodev-linux-split-big-function-to-simplify-maint.patch > create mode 100644 > meta/recipes-kernel/cryptodev/files/0002-cryptodev-linux-Fixes-a-kernel-crash-observed-with-c.patch > > diff --git a/meta/recipes-kernel/cryptodev/cryptodev-module_1.9.bb > b/meta/recipes-kernel/cryptodev/cryptodev-module_1.9.bb > index 552eb6a..16ac527 100644 > --- a/meta/recipes-kernel/cryptodev/cryptodev-module_1.9.bb > +++ b/meta/recipes-kernel/cryptodev/cryptodev-module_1.9.bb > @@ -9,6 +9,8 @@ DEPENDS += "cryptodev-linux" > > SRC_URI += " \ > file://0001-Disable-installing-header-file-provided-by-another-p.patch \ > +file://0001-cryptodev-linux-split-big-function-to-simplify-maint.patch \ > +file://0002-cryptodev-linux-Fixes-a-kernel-crash-observed-with-c.patch \ > " > > EXTRA_OEMAKE='KERNEL_DIR="${STAGING_KERNEL_DIR}" PREFIX="${D}"' > diff --git > a/meta/recipes-kernel/cryptodev/files/0001-cryptodev-linux-split-big-function-to-simplify-maint.patch > > b/meta/recipes-kernel/cryptodev/files/0001-cryptodev-linux-split-big-function-to-simplify-maint.patch > new file mode 100644 > index 000..56a5bb7 > --- /dev/null > +++ > b/meta/recipes-kernel/cryptodev/files/0001-cryptodev-linux-split-big-function-to-simplify-maint.patch > @@ -0,0 +1,249 @@ > +From 1b0b6cc97ba5cc71ae1385d125256fc1b2d606b0 Mon Sep 17 00:00:00 2001 > +From: Jiping Ma > +Date: Wed, 2 May 2018 04:59:32 + > +Subject: [PATCH 1/2] cryptodev-linux: split big function to simplify > + maintainance > + > +The setup of auth_buf in tls and aead is now duplicated but this > +is temporary and allows necessary corrections for the aead case > +with v4.2+ kernels. > + > +Upstream-Status: Backported > + > +commit 20dcf071bc3076ee7db9d603cfbe6a06e86c7d5f > + > +Signed-off-by: Jiping Ma > +--- > + authenc.c | 197 > -- > + 1 file changed, 126 insertions(+), 71 deletions(-) > + > +diff --git a/authenc.c b/authenc.c > +index 1bd7377..28eb0f9 100644 > +--- a/authenc.c > b/authenc.c > +@@ -609,96 +609,151 @@ auth_n_crypt(struct csession *ses_ptr, struct > kernel_crypt_auth_op *kcaop, > + return 0; > + } > + > +-/* This is the main crypto function - zero-copy edition */ > +-static int > +-__crypto_auth_run_zc(struct csession *ses_ptr, struct kernel_crypt_auth_op > *kcaop) > ++static int crypto_auth_zc_srtp(struct csession *ses_ptr, struct > kernel_crypt_auth_op *kcaop) > + { > +-struct scatterlist *dst_sg, *auth_sg, *src_sg; > ++struct scatterlist *dst_sg, *auth_sg; > + struct crypt_auth_op *caop = >caop; > +-int ret = 0; > ++int ret; > + > +-if (caop->flags & COP_FLAG_AEAD_SRTP_TYPE) { > +-if (unlikely(ses_ptr->cdata.init != 0 && > +- (ses_ptr->cdata.stream == 0 || > +- ses_ptr->cdata.aead != 0))) { > +-derr(0, "Only stream modes are allowed in SRTP mode > (but not AEAD)"); > +-return -EINVAL; > +-} > ++if (unlikely(ses_ptr->cdata.init != 0 && > ++(ses_ptr->cdata.stream == 0 || ses_ptr->cdata.aead != 0))) { > ++derr(0, "Only stream modes are allowed in SRTP mode (but not > AEAD)"); > ++return -EINVAL; > ++} > + > +-ret = get_userbuf_srtp(ses_ptr, kcaop, _sg, _sg); > +-if (unlikely(ret)) { > +-derr(1, "get_userbuf_srtp(): Error getting user > pages."); > +-return ret; > +-} > ++ret = get_userbuf_srtp(ses_ptr, kcaop, _sg, _sg); > ++if (unlikely(ret)) { > ++derr(1, "get_userbuf_srtp(): Error getting user pages."); > ++return ret; > ++} > + > +-ret = srtp_auth_n_crypt(ses_ptr, kcaop, auth_sg, caop->auth_len, > +- dst_sg, caop->len); > ++ret = srtp_auth_n_crypt(ses_ptr, kcaop, auth_sg, caop->auth_len, > ++dst_sg, caop->len); > + > +-release_user_pages(ses_ptr); > +-} else { /* TLS and normal cases. Here auth data are usually small > +- * so we just copy them to a free page, instead of trying > +- * to map them. > +- */ > +-
[OE-core] [PATCH] webkitgtk: fix compile failure on beaglebone
Since the following patch applied in upstream webkitgtk ... commit 1a55d8c685b3e5b4dbeda202009e7527aa59eadd Author: simon.fra...@apple.com Date: Thu Nov 23 22:20:09 2017 + FELighting cleanup and optimization https://bugs.webkit.org/show_bug.cgi?id=179933 ... It missed to tweak `paintingData.lightVector' which caused PaintingData' has no member named 'lightVector' on ARM_NEON (beaglebone) Signed-off-by: Hongxu Jia --- ...gData-has-no-member-named-lightVector-on-.patch | 36 ++ meta/recipes-sato/webkit/webkitgtk_2.20.3.bb | 1 + 2 files changed, 37 insertions(+) create mode 100644 meta/recipes-sato/webkit/webkitgtk/0001-Fix-PaintingData-has-no-member-named-lightVector-on-.patch diff --git a/meta/recipes-sato/webkit/webkitgtk/0001-Fix-PaintingData-has-no-member-named-lightVector-on-.patch b/meta/recipes-sato/webkit/webkitgtk/0001-Fix-PaintingData-has-no-member-named-lightVector-on-.patch new file mode 100644 index 000..af90ad7 --- /dev/null +++ b/meta/recipes-sato/webkit/webkitgtk/0001-Fix-PaintingData-has-no-member-named-lightVector-on-.patch @@ -0,0 +1,36 @@ +From a5d4e038268ae23486fecc1966fd2e16a7f40ce8 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Wed, 25 Jul 2018 00:23:48 -0700 +Subject: [PATCH] Fix PaintingData' has no member named 'lightVector' on + ARM_NEON + +* platform/graphics/cpu/arm/filters/FELightingNEON.h: +(WebCore::FELighting::platformApplyNeon): + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h +index 42af922..b542a4c 100644 +--- a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h +@@ -144,9 +144,9 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS + neonData.flags |= FLAG_CONE_EXPONENT_IS_1; + } else { + ASSERT(m_lightSource->type() == LS_DISTANT); +-floatArguments.lightX = paintingData.lightVector.x(); +-floatArguments.lightY = paintingData.lightVector.y(); +-floatArguments.lightZ = paintingData.lightVector.z(); ++floatArguments.lightX = paintingData.initialLightingData.lightVector.x(); ++floatArguments.lightY = paintingData.initialLightingData.lightVector.y(); ++floatArguments.lightZ = paintingData.initialLightingData.lightVector.z(); + floatArguments.padding2 = 1; + } + +-- +2.10.2 + diff --git a/meta/recipes-sato/webkit/webkitgtk_2.20.3.bb b/meta/recipes-sato/webkit/webkitgtk_2.20.3.bb index 9d0f00a..a528c5d 100644 --- a/meta/recipes-sato/webkit/webkitgtk_2.20.3.bb +++ b/meta/recipes-sato/webkit/webkitgtk_2.20.3.bb @@ -21,6 +21,7 @@ SRC_URI = "http://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \ file://0001-Fix-build-with-musl.patch \ file://detect-gstreamer-gl.patch \ file://0012-soup-Forward-declare-URL-class.patch \ + file://0001-Fix-PaintingData-has-no-member-named-lightVector-on-.patch \ " SRC_URI[md5sum] = "efb69a0cc3cc67ef2647efec22e44c69" -- 2.10.2 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core