Re: [OE-core] libpsl: Add config knobs for runtime/builtin conversion choices
The reason, why I want to apply it here, to switch replace libidn2 with icu. According to libpsl documentation, you can chose who will generate the PSL database (libidn, libidn2, icu). So I don't want to install a new component if there is a valid replacement which is already installed. Regards, Andrej On Thu, 2021-10-14 at 07:36 -1000, Steve Sakoman wrote: > On Wed, Oct 13, 2021 at 9:14 AM Valek, Andrej > wrote: > > > Would it be possible to include this commit > > https://lists.openembedded.org/g/openembedded-core/message/150627 i > > nto > > dunfell branch? > > At first glance this seems to change the default behavior. Perhaps a > version of the patch that adds the knobs but keeps the same behavior? > > I may be mistaken since I'm not really familiar with this package, so > would love input from those who are! > > Steve -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156987): https://lists.openembedded.org/g/openembedded-core/message/156987 Mute This Topic: https://lists.openembedded.org/mt/86296104/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH] opensbi-payloads.inc: Use strings for fallback
On Fri, Oct 15, 2021 at 1:17 PM Khem Raj wrote: > > This function is evaluated during parse and some machines maynot use > external payload, on such machines this fails to parse > > Fixes > bb.data_smart.ExpansionError: Failure expanding variable do_compile[depends], > expression was ${@riscv_get_do_compile_depends(d)} which triggered exception > TypeError: argument of type 'NoneType' is not iterab > le > > Signed-off-by: Khem Raj > Cc: Alistair Francis Acked-by: Alistair Francis Alistair > --- > meta/recipes-bsp/opensbi/opensbi-payloads.inc | 8 > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/meta/recipes-bsp/opensbi/opensbi-payloads.inc > b/meta/recipes-bsp/opensbi/opensbi-payloads.inc > index cc31ab3b1d..ce537c0587 100644 > --- a/meta/recipes-bsp/opensbi/opensbi-payloads.inc > +++ b/meta/recipes-bsp/opensbi/opensbi-payloads.inc > @@ -17,13 +17,13 @@ def riscv_get_extra_oemake_fdt(d): > return "FW_FDT_PATH=" + deploy_dir + "/" + sbi_fdt > > def riscv_get_do_compile_depends(d): > -sbi_payload = d.getVar('RISCV_SBI_PAYLOAD') > -sbi_fdt = d.getVar('RISCV_SBI_FDT') > +sbi_payload = d.getVar('RISCV_SBI_PAYLOAD') or "" > +sbi_fdt = d.getVar('RISCV_SBI_FDT') or "" > > -if sbi_payload is None and sbi_fdt is None: > +if sbi_payload == "" and sbi_fdt == "": > return "" > > -if sbi_fdt is not None and 'u-boot.bin' in sbi_payload: > +if sbi_fdt != "" and 'u-boot.bin' in sbi_payload: > return "virtual/kernel:do_deploy virtual/bootloader:do_deploy" > > if 'linux' in sbi_payload or 'Image' in sbi_payload: > -- > 2.33.1 > > > > -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156986): https://lists.openembedded.org/g/openembedded-core/message/156986 Mute This Topic: https://lists.openembedded.org/mt/86331377/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH v2] qemu: Add knob for enabling PMDK pmem support
This ensures that libpmem dependency is added in a consistent manner Signed-off-by: Khem Raj --- v2: Correct dependency name to a match recipe from meta-oe meta/recipes-devtools/qemu/qemu.inc | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc index 54ffb85286..57e5e1a015 100644 --- a/meta/recipes-devtools/qemu/qemu.inc +++ b/meta/recipes-devtools/qemu/qemu.inc @@ -194,6 +194,7 @@ PACKAGECONFIG[pie] = "--enable-pie,--disable-pie,," PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp" # libnfs is currently provided by meta-kodi PACKAGECONFIG[libnfs] = "--enable-libnfs,--disable-libnfs,libnfs" +PACKAGECONFIG[pmem] = "--enable-libpmem,--disable-libpmem,pmdk" INSANE_SKIP:${PN} = "arch" -- 2.33.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156985): https://lists.openembedded.org/g/openembedded-core/message/156985 Mute This Topic: https://lists.openembedded.org/mt/86332156/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH 1/2] opensbi-payloads.inc: Use strings for fallback
This function is evaluated during parse and some machines maynot use external payload, on such machines this fails to parse Fixes bb.data_smart.ExpansionError: Failure expanding variable do_compile[depends], expression was ${@riscv_get_do_compile_depends(d)} which triggered exception TypeError: argument of type 'NoneType' is not iterab le Signed-off-by: Khem Raj Cc: Alistair Francis --- meta/recipes-bsp/opensbi/opensbi-payloads.inc | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/meta/recipes-bsp/opensbi/opensbi-payloads.inc b/meta/recipes-bsp/opensbi/opensbi-payloads.inc index cc31ab3b1d..ce537c0587 100644 --- a/meta/recipes-bsp/opensbi/opensbi-payloads.inc +++ b/meta/recipes-bsp/opensbi/opensbi-payloads.inc @@ -17,13 +17,13 @@ def riscv_get_extra_oemake_fdt(d): return "FW_FDT_PATH=" + deploy_dir + "/" + sbi_fdt def riscv_get_do_compile_depends(d): -sbi_payload = d.getVar('RISCV_SBI_PAYLOAD') -sbi_fdt = d.getVar('RISCV_SBI_FDT') +sbi_payload = d.getVar('RISCV_SBI_PAYLOAD') or "" +sbi_fdt = d.getVar('RISCV_SBI_FDT') or "" -if sbi_payload is None and sbi_fdt is None: +if sbi_payload == "" and sbi_fdt == "": return "" -if sbi_fdt is not None and 'u-boot.bin' in sbi_payload: +if sbi_fdt != "" and 'u-boot.bin' in sbi_payload: return "virtual/kernel:do_deploy virtual/bootloader:do_deploy" if 'linux' in sbi_payload or 'Image' in sbi_payload: -- 2.33.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156983): https://lists.openembedded.org/g/openembedded-core/message/156983 Mute This Topic: https://lists.openembedded.org/mt/86331834/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH 2/2] mesa: Enable svga for x86 only
Enable svga only on x86/x86_64 since some arches e.g. riscv64 do not support it Signed-off-by: Khem Raj --- meta/recipes-graphics/mesa/mesa.inc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 282671d30f..4e95911165 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -143,7 +143,9 @@ GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'v3d', ',v3d', '', # radeonsi requires LLVM GALLIUMDRIVERS_RADEONSI = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',radeonsi', '', d)}" -GALLIUMDRIVERS_LLVM = "r300,svga,nouveau${GALLIUMDRIVERS_RADEONSI}" +GALLIUMDRIVERS_LLVM = "r300,nouveau${GALLIUMDRIVERS_RADEONSI}" +GALLIUMDRIVERS_LLVM:append:x86:class-target = ",svga" +GALLIUMDRIVERS_LLVM:append:x86-64:class-target = ",svga" PACKAGECONFIG[r600] = "" PACKAGECONFIG[virgl] = "" -- 2.33.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156984): https://lists.openembedded.org/g/openembedded-core/message/156984 Mute This Topic: https://lists.openembedded.org/mt/86331835/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] opensbi-payloads.inc: Use strings for fallback
This function is evaluated during parse and some machines maynot use external payload, on such machines this fails to parse Fixes bb.data_smart.ExpansionError: Failure expanding variable do_compile[depends], expression was ${@riscv_get_do_compile_depends(d)} which triggered exception TypeError: argument of type 'NoneType' is not iterab le Signed-off-by: Khem Raj Cc: Alistair Francis --- meta/recipes-bsp/opensbi/opensbi-payloads.inc | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/meta/recipes-bsp/opensbi/opensbi-payloads.inc b/meta/recipes-bsp/opensbi/opensbi-payloads.inc index cc31ab3b1d..ce537c0587 100644 --- a/meta/recipes-bsp/opensbi/opensbi-payloads.inc +++ b/meta/recipes-bsp/opensbi/opensbi-payloads.inc @@ -17,13 +17,13 @@ def riscv_get_extra_oemake_fdt(d): return "FW_FDT_PATH=" + deploy_dir + "/" + sbi_fdt def riscv_get_do_compile_depends(d): -sbi_payload = d.getVar('RISCV_SBI_PAYLOAD') -sbi_fdt = d.getVar('RISCV_SBI_FDT') +sbi_payload = d.getVar('RISCV_SBI_PAYLOAD') or "" +sbi_fdt = d.getVar('RISCV_SBI_FDT') or "" -if sbi_payload is None and sbi_fdt is None: +if sbi_payload == "" and sbi_fdt == "": return "" -if sbi_fdt is not None and 'u-boot.bin' in sbi_payload: +if sbi_fdt != "" and 'u-boot.bin' in sbi_payload: return "virtual/kernel:do_deploy virtual/bootloader:do_deploy" if 'linux' in sbi_payload or 'Image' in sbi_payload: -- 2.33.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156982): https://lists.openembedded.org/g/openembedded-core/message/156982 Mute This Topic: https://lists.openembedded.org/mt/86331377/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] qemu: Add knob for enabling PMDK pmem support
This ensures that libpmem dependency is added in a consistent manner Signed-off-by: Khem Raj --- meta/recipes-devtools/qemu/qemu.inc | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc index 54ffb85286..6c72409590 100644 --- a/meta/recipes-devtools/qemu/qemu.inc +++ b/meta/recipes-devtools/qemu/qemu.inc @@ -194,6 +194,7 @@ PACKAGECONFIG[pie] = "--enable-pie,--disable-pie,," PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp" # libnfs is currently provided by meta-kodi PACKAGECONFIG[libnfs] = "--enable-libnfs,--disable-libnfs,libnfs" +PACKAGECONFIG[pmem] = "--enable-libpmem,--disable-libpmem,libpmem" INSANE_SKIP:${PN} = "arch" -- 2.33.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156981): https://lists.openembedded.org/g/openembedded-core/message/156981 Mute This Topic: https://lists.openembedded.org/mt/86329821/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH 1/7] reproducible_build: Drop now unneeded compiler warning
On Thu, Oct 14, 2021 at 2:48 PM Richard Purdie wrote: > > On Thu, 2021-10-14 at 09:36 -0700, Khem Raj wrote: > > > > On 10/14/21 5:10 AM, Richard Purdie wrote: > > > We now pass compiler options that mean the compiler will adjust these > > > values to > > > SOURCE_DATE_EPOCH, the compiler warnings are now unneeded. > > > > > > > Is there a chance of it being overwritten by component's build system > > in that case this warning may still be handy > > The warnings are basically lost as noise in the log.do_compile files so I'm > not > sure it buys us anything... >From system build POV perhaps right. This does seem helpful for folks who are developing components using the project and might be transitioning to use reproducible builds. Of course, they can add the option to their project if that is important to them. thirdly SOURCE_DATE_EPOCH is gcc specific and keeping it around helps non-gcc ccmpilers too. But, I guess folks can always customize so its fine if deleting it is solving some other problem. > > Cheers, > > Richard > -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156980): https://lists.openembedded.org/g/openembedded-core/message/156980 Mute This Topic: https://lists.openembedded.org/mt/86310655/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] piglit: upgrade to latest revision
Update piglit to latest git revision and update the branch name, since the original one is no longer updated. Make sure the VK tests are only enabled if VK is also enabled in PACKAGECONFIG, and that this is opt-in, otherwise older systems fail to build. Signed-off-by: Marek Vasut Cc: Anuj Mittal Cc: Richard Purdie --- meta/recipes-graphics/piglit/piglit_git.bb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/meta/recipes-graphics/piglit/piglit_git.bb b/meta/recipes-graphics/piglit/piglit_git.bb index 2e0dfeee42..4b515cc537 100644 --- a/meta/recipes-graphics/piglit/piglit_git.bb +++ b/meta/recipes-graphics/piglit/piglit_git.bb @@ -6,7 +6,7 @@ BUGTRACKER = "https://gitlab.freedesktop.org/mesa/piglit/-/issues"; LICENSE = "MIT & LGPLv2+ & GPLv3 & GPLv2+ & BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=b2beded7103a3d8a442a2a0391d607b0" -SRC_URI = "git://gitlab.freedesktop.org/mesa/piglit.git;protocol=https \ +SRC_URI = "git://gitlab.freedesktop.org/mesa/piglit.git;protocol=https;branch=main \ file://0001-cmake-install-bash-completions-in-the-right-place.patch \ file://0001-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch \ file://0001-Add-a-missing-include-for-htobe32-definition.patch \ @@ -18,7 +18,7 @@ SRC_URI = "git://gitlab.freedesktop.org/mesa/piglit.git;protocol=https \ " UPSTREAM_CHECK_COMMITS = "1" -SRCREV = "6a4be9e9946df310d9402f995f371c7deb8c27ba" +SRCREV = "014c9d09115e15f5a074457a753bf3a43173ef7f" # (when PV goes above 1.0 remove the trailing r) PV = "1.0+gitr${SRCPV}" @@ -43,6 +43,7 @@ do_compile[dirs] =+ "${B}/temp/" PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" PACKAGECONFIG[freeglut] = "-DPIGLIT_USE_GLUT=1,-DPIGLIT_USE_GLUT=0,freeglut," PACKAGECONFIG[x11] = "-DPIGLIT_BUILD_GL_TESTS=ON,-DPIGLIT_BUILD_GL_TESTS=OFF,${X11_DEPS}, ${X11_RDEPS}" +PACKAGECONFIG[vulkan] = "-DPIGLIT_BUILD_VK_TESTS=ON,-DPIGLIT_BUILD_VK_TESTS=OFF,vulkan-loader" export PIGLIT_BUILD_DIR = "../../../../git" -- 2.33.0 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156979): https://lists.openembedded.org/g/openembedded-core/message/156979 Mute This Topic: https://lists.openembedded.org/mt/86326704/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] oeqa: Update cleanup code to wait for hashserv exit
We sometimes see exceptions from code seeing the hashserv DB files being removed at directory cleanup time. Add a check to ensure the hashserv has written the data base journal (and hence likely exited) before cleaning up. This will hopefully avoid errors like: Traceback (most recent call last): File "[...]/meta/lib/oeqa/sdk/buildtools-cases/build.py", line 30, in test_libc delay = delay - 1 File "/usr/lib/python3.6/tempfile.py", line 948, in __exit__ self.cleanup() File "/usr/lib/python3.6/tempfile.py", line 952, in cleanup _rmtree(self.name) File "/usr/lib/python3.6/shutil.py", line 486, in rmtree _rmtree_safe_fd(fd, path, onerror) File "/usr/lib/python3.6/shutil.py", line 424, in _rmtree_safe_fd _rmtree_safe_fd(dirfd, fullname, onerror) File "/usr/lib/python3.6/shutil.py", line 444, in _rmtree_safe_fd onerror(os.unlink, fullname, sys.exc_info()) File "/usr/lib/python3.6/shutil.py", line 442, in _rmtree_safe_fd os.unlink(name, dir_fd=topfd) FileNotFoundError: [Errno 2] No such file or directory: 'hashserv.db-wal' Signed-off-by: Richard Purdie --- meta/lib/oeqa/sdk/buildtools-cases/build.py | 2 +- meta/lib/oeqa/selftest/cases/eSDK.py| 2 +- meta/lib/oeqa/selftest/context.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/meta/lib/oeqa/sdk/buildtools-cases/build.py b/meta/lib/oeqa/sdk/buildtools-cases/build.py index 9c9a84bf8a0..aee2e5a8c06 100644 --- a/meta/lib/oeqa/sdk/buildtools-cases/build.py +++ b/meta/lib/oeqa/sdk/buildtools-cases/build.py @@ -25,6 +25,6 @@ class BuildTests(OESDKTestCase): self._run('. %s/oe-init-build-env %s && bitbake virtual/libc' % (corebase, testdir)) finally: delay = 10 -while delay and os.path.exists(testdir + "/bitbake.lock"): +while delay and (os.path.exists(testdir + "/bitbake.lock") or os.path.exists(testdir + "/cache/hashserv.db-wal")): time.sleep(1) delay = delay - 1 diff --git a/meta/lib/oeqa/selftest/cases/eSDK.py b/meta/lib/oeqa/selftest/cases/eSDK.py index 862849af35c..d0c402ba8a4 100644 --- a/meta/lib/oeqa/selftest/cases/eSDK.py +++ b/meta/lib/oeqa/selftest/cases/eSDK.py @@ -100,7 +100,7 @@ SSTATE_MIRRORS = "file://.* file://%s/PATH" @classmethod def tearDownClass(cls): for i in range(0, 10): -if os.path.exists(os.path.join(cls.tmpdir_eSDKQA, 'bitbake.lock')): +if os.path.exists(os.path.join(cls.tmpdir_eSDKQA, 'bitbake.lock')) or os.path.exists(os.path.join(cls.tmpdir_eSDKQA, 'cache/hashserv.db-wal')): time.sleep(1) else: break diff --git a/meta/lib/oeqa/selftest/context.py b/meta/lib/oeqa/selftest/context.py index 16599269751..78c7a467e2f 100644 --- a/meta/lib/oeqa/selftest/context.py +++ b/meta/lib/oeqa/selftest/context.py @@ -39,7 +39,7 @@ class NonConcurrentTestSuite(unittest.TestSuite): def removebuilddir(d): delay = 5 -while delay and os.path.exists(d + "/bitbake.lock"): +while delay and (os.path.exists(d + "/bitbake.lock") or os.path.exists(d + "/cache/hashserv.db-wal")): time.sleep(1) delay = delay - 1 # Deleting these directories takes a lot of time, use autobuilder -- 2.32.0 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156978): https://lists.openembedded.org/g/openembedded-core/message/156978 Mute This Topic: https://lists.openembedded.org/mt/86326554/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] mirrors.bbclass: remove dead infozip mirrors
Signed-off-by: Oleksandr Kravchuk --- meta/classes/mirrors.bbclass | 1 - 1 file changed, 1 deletion(-) diff --git a/meta/classes/mirrors.bbclass b/meta/classes/mirrors.bbclass index ba325a658b..1afce92147 100644 --- a/meta/classes/mirrors.bbclass +++ b/meta/classes/mirrors.bbclass @@ -29,7 +29,6 @@ ftp://dante.ctan.org/tex-archive ftp://ftp.fu-berlin.de/tex/CTAN \n \ ftp://dante.ctan.org/tex-archive http://sunsite.sut.ac.jp/pub/archives/ctan/ \n \ ftp://dante.ctan.org/tex-archive http://ctan.unsw.edu.au/ \n \ ftp://ftp.gnutls.org/gcrypt/gnutls ${GNUPG_MIRROR}/gnutls \n \ -http://ftp.info-zip.org/pub/infozip/src/ http://mirror.switch.ch/ftp/mirror/infozip/src/ \n \ http://ftp.info-zip.org/pub/infozip/src/ ftp://sunsite.icm.edu.pl/pub/unix/archiving/info-zip/src/ \n \ http://www.mirrorservice.org/sites/lsof.itap.purdue.edu/pub/tools/unix/lsof/ http://www.mirrorservice.org/sites/lsof.itap.purdue.edu/pub/tools/unix/lsof/OLD/ \n \ ${APACHE_MIRROR} http://www.us.apache.org/dist \n \ -- 2.25.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156977): https://lists.openembedded.org/g/openembedded-core/message/156977 Mute This Topic: https://lists.openembedded.org/mt/86325906/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH 1/7] reproducible_build: Drop now unneeded compiler warning
On Thu, 2021-10-14 at 09:36 -0700, Khem Raj wrote: > > On 10/14/21 5:10 AM, Richard Purdie wrote: > > We now pass compiler options that mean the compiler will adjust these > > values to > > SOURCE_DATE_EPOCH, the compiler warnings are now unneeded. > > > > Is there a chance of it being overwritten by component's build system > in that case this warning may still be handy The warnings are basically lost as noise in the log.do_compile files so I'm not sure it buys us anything... Cheers, Richard -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156976): https://lists.openembedded.org/g/openembedded-core/message/156976 Mute This Topic: https://lists.openembedded.org/mt/86310655/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH v3 2/2] license: Allow treating missing license as error
On Thu, 2021-10-14 at 18:09 +0100, Mike Crowe wrote: > On Thursday 14 October 2021 at 17:54:18 +0100, Richard Purdie wrote: > > On Thu, 2021-10-14 at 17:42 +0100, Mike Crowe via lists.openembedded.org > > wrote: > > > On Wednesday 13 October 2021 at 11:48:05 +0100, Mike Crowe wrote: > > > > Use the same WARN_WA and ERROR_QA variables as insane.bbclass to allow > > > > individual recipes, the distro or other configuration to determine > > > > whether a missing licence should be treated as a warning (as it is now) > > > > or as an error. > > > > > > > > oe.qa.handle_error isn't immediately fatal, so track the overall sanity > > > > state and call bb.fatal if required at the end to ensure that the task > > > > really fails. If only bb.error is used then do_populate_lic isn't re-run > > > > on subsequent builds which could lead to the error being missed. > > > > > > > > It seems odd for the license- error classes to be listed in > > > > insane.bbclass but implemented in license.bbclass. All recommendations > > > > for somewhere else to put them gratefully received. > > [snip] > > > > Patch series v4 coming soon. > > > > I did have to rework it a bit as I also ran into a few issues and was just > > trying to get around to writing them up. > > > > I added: > > > > http://git.yoctoproject.org/cgit.cgi/poky/commit/?h=master-next&id=9e980f1a71e8b6af5ff6da9b02fac0f8bfd9d4fb > > > > which means you can drop the imports. > > > > You can use the nonlocal option to help the "sane" problem: > > > > http://git.yoctoproject.org/cgit.cgi/poky/diff/meta/classes/license.bbclass?h=master-next&id=110fa545ac84e560691c7d9e0d1e6e8f70c66980 > > > > The autobuilder also shows issues as some of the functions you moved are > > referenced in other classes. The patch became: > > > > http://git.yoctoproject.org/cgit.cgi/poky/commit/?h=master-next&id=110fa545ac84e560691c7d9e0d1e6e8f70c66980 > > Thanks for doing that. I thought I'd searched for other occurrences, but I > must have not done so properly. :( > > > I was also just thinking we should probably add a new function and add > > calls at > > the end of the tasks like: > > > > oe.qa.exit_if_errors(d) > > > > with a definition similar to: > > > > def exit_if_errors(d): > > qa_sane = d.getVar("QA_SANE") > > if not qa_sane: > > bb.fatal("Fatal QA errors were found.") > > > > and then renaming QA_SANE to something like QA_FATAL_ERRORS and exitting if > > set. > > That sounds like it would neaten things up greatly and avoid the risk of > accidentally failing to make the error fatal. It ought to mean that many of > the sane local > variables can be removed too. > > Would you like me to provide new versions of the existing patches or add > new patches on top of the ones already in master-next? I had half a patch for this last bit so I pushed it into master-next. I also merged by oe.qa import change. I'm happy for you to take over from here and rework the patches into whatever makes the best sense for a series now we know what we're aiming for? I think there is a more cleanup of the "sane" variables that can be done beyond my quick patch. Cheers, Richard -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156975): https://lists.openembedded.org/g/openembedded-core/message/156975 Mute This Topic: https://lists.openembedded.org/mt/86284884/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core][PATCH] scripts/autobuilder-worker-prereq-tests: jinja2 check
On Thu, 2021-10-14 at 10:55 -0700, Michael Halstead wrote: > Ensure the jinja2 module is available during bringup. > > Signed-off-by: Michael Halstead > --- > scripts/autobuilder-worker-prereq-tests | 5 + > 1 file changed, 5 insertions(+) > > diff --git a/scripts/autobuilder-worker-prereq-tests > b/scripts/autobuilder-worker-prereq-tests > index 5d7e6e2601..82e9a77bd5 100755 > --- a/scripts/autobuilder-worker-prereq-tests > +++ b/scripts/autobuilder-worker-prereq-tests > @@ -35,6 +35,11 @@ if [ "$?" != "0" ]; then > echo "Please set git config --global user.email" > exit 1 > fi > +python3 -c "import jinja2" > +if [ "$?" != "0" ]; then > +echo "Please ensure jinja2 is available" > +exit 1 > +fi > bitbake -p > if [ "$?" != "0" ]; then > echo "Bitbake parsing failed" Looks good, thanks, I merged it. Should we cover rsync with a test too? Cheers, Richard -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156974): https://lists.openembedded.org/g/openembedded-core/message/156974 Mute This Topic: https://lists.openembedded.org/mt/86320755/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH 2/2] insane/qa: Improve and cleanup fatal error handling
Move the "exit with a fatal error" code into a common function and also improve the confusing variable to something at least self contained in the same code segment. This will hopefully allow the insane code return value passing to be cleaned up too. Signed-off-by: Richard Purdie --- meta/classes/insane.bbclass | 27 --- meta/classes/package.bbclass | 4 +--- meta/lib/oe/qa.py| 6 +- 3 files changed, 14 insertions(+), 23 deletions(-) diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass index d34ed77faa7..62863e5b0ae 100644 --- a/meta/classes/insane.bbclass +++ b/meta/classes/insane.bbclass @@ -18,8 +18,6 @@ # files under exec_prefix # -Check if the package name is upper case -QA_SANE = "True" - # Elect whether a given type of error is a warning or error, they may # have been set by other files. WARN_QA ?= " libdir xorg-driver-abi \ @@ -492,7 +490,6 @@ python populate_lic_qa_checksum() { """ Check for changes in the license files. """ -sane = True lic_files = d.getVar('LIC_FILES_CHKSUM') or '' lic = d.getVar('LICENSE') @@ -502,7 +499,7 @@ python populate_lic_qa_checksum() { return if not lic_files and d.getVar('SRC_URI'): -sane &= oe.qa.handle_error("license-checksum", pn + ": Recipe file fetches files and does not have license file information (LIC_FILES_CHKSUM)", d) +oe.qa.handle_error("license-checksum", pn + ": Recipe file fetches files and does not have license file information (LIC_FILES_CHKSUM)", d) srcdir = d.getVar('S') corebase_licensefile = d.getVar('COREBASE') + "/LICENSE" @@ -510,11 +507,11 @@ python populate_lic_qa_checksum() { try: (type, host, path, user, pswd, parm) = bb.fetch.decodeurl(url) except bb.fetch.MalformedUrl: -sane &= oe.qa.handle_error("license-checksum", pn + ": LIC_FILES_CHKSUM contains an invalid URL: " + url, d) +oe.qa.handle_error("license-checksum", pn + ": LIC_FILES_CHKSUM contains an invalid URL: " + url, d) continue srclicfile = os.path.join(srcdir, path) if not os.path.isfile(srclicfile): -sane &= oe.qa.handle_error("license-checksum", pn + ": LIC_FILES_CHKSUM points to an invalid file: " + srclicfile, d) +oe.qa.handle_error("license-checksum", pn + ": LIC_FILES_CHKSUM points to an invalid file: " + srclicfile, d) continue if (srclicfile == corebase_licensefile): @@ -582,10 +579,9 @@ python populate_lic_qa_checksum() { else: msg = pn + ": LIC_FILES_CHKSUM is not specified for " + url msg = msg + "\n" + pn + ": The md5 checksum is " + md5chksum -sane &= oe.qa.handle_error("license-checksum", msg, d) +oe.qa.handle_error("license-checksum", msg, d) -if not sane: -bb.fatal("Fatal QA errors found, failing task.") +oe.qa.exit_if_errors(d) } def qa_check_staged(path,d): @@ -1067,9 +1063,7 @@ python do_package_qa () { if 'libdir' in d.getVar("ALL_QA").split(): package_qa_check_libdir(d) -qa_sane = d.getVar("QA_SANE") -if not qa_sane: -bb.fatal("QA run found fatal errors. Please consider fixing them.") +oe.qa.exit_if_errors(d) bb.note("DONE with PACKAGE QA") } @@ -1241,9 +1235,7 @@ Rerun configure task after fixing this.""" error_msg = "%s: invalid PACKAGECONFIG: %s" % (pn, pconfig) oe.qa.handle_error("invalid-packageconfig", error_msg, d) -qa_sane = d.getVar("QA_SANE") -if not qa_sane: -bb.fatal("Fatal QA errors found, failing task.") +oe.qa.exit_if_errors(d) } python do_qa_unpack() { @@ -1352,8 +1344,5 @@ python () { oe.qa.handle_error("native-last", "%s: native/nativesdk class is not inherited last, this can result in unexpected behaviour. " "Classes inherited after native/nativesdk: %s" % (pn, " ".join(broken_order)), d) - -qa_sane = d.getVar("QA_SANE") -if not qa_sane: -bb.fatal("Fatal QA errors found, failing task.") +oe.qa.exit_if_errors(d) } diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 414dcab02de..92eba988929 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -2453,9 +2453,7 @@ python do_package () { for f in (d.getVar('PACKAGEFUNCS') or '').split(): bb.build.exec_func(f, d) -qa_sane = d.getVar("QA_SANE") -if not qa_sane: -bb.fatal("Fatal QA errors found, failing task.") +oe.qa.exit_if_errors(d) } do_package[dirs] = "${SHLIBSWORKDIR} ${PKGDESTWORK} ${D}" diff --git a/meta/lib/oe/qa.py b/meta/lib/oe/qa.py index c198e3597cb..69e5e9c32bf 100644 --- a/meta/lib/oe/qa.py +++ b/meta/lib/oe/qa.py @@ -182,7 +182,7 @@ def handle_error(error_class, error_msg, d): if error_class in (d.getVar("ERROR_QA")
[OE-core] [PATCH 1/2] kernel: Rework kernel make flag to variable mappings
In 2017 we added changes to pass the BUILD_CFLAGS into the kernel via BUILD_CC. This isn't really correct and the upstream kernel now has places to pass build cflags, ldflags and more. Update our kernel make flags to correctly use the kernel's variables. This addresses concerns raised by kernel developers. If this breaks some usecase please report it so we can work out how to fix it properly. Signed-off-by: Richard Purdie --- meta/classes/kernel.bbclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass index 5faa302a165..23eed699b57 100644 --- a/meta/classes/kernel.bbclass +++ b/meta/classes/kernel.bbclass @@ -226,8 +226,8 @@ UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}" # Some Linux kernel configurations need additional parameters on the command line KERNEL_EXTRA_ARGS ?= "" -EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}"" -EXTRA_OEMAKE += " HOSTCXX="${BUILD_CXX} ${BUILD_CXXFLAGS} ${BUILD_LDFLAGS}"" +EXTRA_OEMAKE = " HOSTCC="${BUILD_CC}" HOSTCFLAGS="${BUILD_CFLAGS}" HOST_LDFLAGS="${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}"" +EXTRA_OEMAKE += " HOSTCXX="${BUILD_CXX}" HOSTCXXFLAGS="${BUILD_CXXFLAGS}"" KERNEL_ALT_IMAGETYPE ??= "" -- 2.32.0 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156972): https://lists.openembedded.org/g/openembedded-core/message/156972 Mute This Topic: https://lists.openembedded.org/mt/86324180/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH v3 2/2] license: Allow treating missing license as error
On Thu, 2021-10-14 at 18:09 +0100, Mike Crowe wrote: > On Thursday 14 October 2021 at 17:54:18 +0100, Richard Purdie wrote: > > On Thu, 2021-10-14 at 17:42 +0100, Mike Crowe via lists.openembedded.org > > wrote: > > > On Wednesday 13 October 2021 at 11:48:05 +0100, Mike Crowe wrote: > > > > Use the same WARN_WA and ERROR_QA variables as insane.bbclass to allow > > > > individual recipes, the distro or other configuration to determine > > > > whether a missing licence should be treated as a warning (as it is now) > > > > or as an error. > > > > > > > > oe.qa.handle_error isn't immediately fatal, so track the overall sanity > > > > state and call bb.fatal if required at the end to ensure that the task > > > > really fails. If only bb.error is used then do_populate_lic isn't re-run > > > > on subsequent builds which could lead to the error being missed. > > > > > > > > It seems odd for the license- error classes to be listed in > > > > insane.bbclass but implemented in license.bbclass. All recommendations > > > > for somewhere else to put them gratefully received. > > [snip] > > > > Patch series v4 coming soon. > > > > I did have to rework it a bit as I also ran into a few issues and was just > > trying to get around to writing them up. > > > > I added: > > > > http://git.yoctoproject.org/cgit.cgi/poky/commit/?h=master-next&id=9e980f1a71e8b6af5ff6da9b02fac0f8bfd9d4fb > > > > which means you can drop the imports. > > > > You can use the nonlocal option to help the "sane" problem: > > > > http://git.yoctoproject.org/cgit.cgi/poky/diff/meta/classes/license.bbclass?h=master-next&id=110fa545ac84e560691c7d9e0d1e6e8f70c66980 > > > > The autobuilder also shows issues as some of the functions you moved are > > referenced in other classes. The patch became: > > > > http://git.yoctoproject.org/cgit.cgi/poky/commit/?h=master-next&id=110fa545ac84e560691c7d9e0d1e6e8f70c66980 > > Thanks for doing that. I thought I'd searched for other occurrences, but I > must have not done so properly. :( > > > I was also just thinking we should probably add a new function and add > > calls at > > the end of the tasks like: > > > > oe.qa.exit_if_errors(d) > > > > with a definition similar to: > > > > def exit_if_errors(d): > > qa_sane = d.getVar("QA_SANE") > > if not qa_sane: > > bb.fatal("Fatal QA errors were found.") > > > > and then renaming QA_SANE to something like QA_FATAL_ERRORS and exitting if > > set. > > That sounds like it would neaten things up greatly and avoid the risk of > accidentally failing to make the error fatal. It ought to mean that many of > the sane local > variables can be removed too. > > Would you like me to provide new versions of the existing patches or add > new patches on top of the ones already in master-next? I think a new series I can replace the patches in master-next with would be good please! Cheers, Richard -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156971): https://lists.openembedded.org/g/openembedded-core/message/156971 Mute This Topic: https://lists.openembedded.org/mt/86284884/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core][PATCH] scripts/autobuilder-worker-prereq-tests: jinja2 check
Ensure the jinja2 module is available during bringup. Signed-off-by: Michael Halstead --- scripts/autobuilder-worker-prereq-tests | 5 + 1 file changed, 5 insertions(+) diff --git a/scripts/autobuilder-worker-prereq-tests b/scripts/autobuilder-worker-prereq-tests index 5d7e6e2601..82e9a77bd5 100755 --- a/scripts/autobuilder-worker-prereq-tests +++ b/scripts/autobuilder-worker-prereq-tests @@ -35,6 +35,11 @@ if [ "$?" != "0" ]; then echo "Please set git config --global user.email" exit 1 fi +python3 -c "import jinja2" +if [ "$?" != "0" ]; then +echo "Please ensure jinja2 is available" +exit 1 +fi bitbake -p if [ "$?" != "0" ]; then echo "Bitbake parsing failed" -- 2.31.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156970): https://lists.openembedded.org/g/openembedded-core/message/156970 Mute This Topic: https://lists.openembedded.org/mt/86320755/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] libpsl: Add config knobs for runtime/builtin conversion choices
On Wed, Oct 13, 2021 at 9:14 AM Valek, Andrej wrote: > Would it be possible to include this commit > https://lists.openembedded.org/g/openembedded-core/message/150627 into > dunfell branch? At first glance this seems to change the default behavior. Perhaps a version of the patch that adds the knobs but keeps the same behavior? I may be mistaken since I'm not really familiar with this package, so would love input from those who are! Steve -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156969): https://lists.openembedded.org/g/openembedded-core/message/156969 Mute This Topic: https://lists.openembedded.org/mt/86296104/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH v3 2/2] license: Allow treating missing license as error
On Thursday 14 October 2021 at 17:54:18 +0100, Richard Purdie wrote: > On Thu, 2021-10-14 at 17:42 +0100, Mike Crowe via lists.openembedded.org > wrote: > > On Wednesday 13 October 2021 at 11:48:05 +0100, Mike Crowe wrote: > > > Use the same WARN_WA and ERROR_QA variables as insane.bbclass to allow > > > individual recipes, the distro or other configuration to determine > > > whether a missing licence should be treated as a warning (as it is now) > > > or as an error. > > > > > > oe.qa.handle_error isn't immediately fatal, so track the overall sanity > > > state and call bb.fatal if required at the end to ensure that the task > > > really fails. If only bb.error is used then do_populate_lic isn't re-run > > > on subsequent builds which could lead to the error being missed. > > > > > > It seems odd for the license- error classes to be listed in > > > insane.bbclass but implemented in license.bbclass. All recommendations > > > for somewhere else to put them gratefully received. [snip] > > Patch series v4 coming soon. > > I did have to rework it a bit as I also ran into a few issues and was just > trying to get around to writing them up. > > I added: > > http://git.yoctoproject.org/cgit.cgi/poky/commit/?h=master-next&id=9e980f1a71e8b6af5ff6da9b02fac0f8bfd9d4fb > > which means you can drop the imports. > > You can use the nonlocal option to help the "sane" problem: > > http://git.yoctoproject.org/cgit.cgi/poky/diff/meta/classes/license.bbclass?h=master-next&id=110fa545ac84e560691c7d9e0d1e6e8f70c66980 > > The autobuilder also shows issues as some of the functions you moved are > referenced in other classes. The patch became: > > http://git.yoctoproject.org/cgit.cgi/poky/commit/?h=master-next&id=110fa545ac84e560691c7d9e0d1e6e8f70c66980 Thanks for doing that. I thought I'd searched for other occurrences, but I must have not done so properly. :( > I was also just thinking we should probably add a new function and add calls > at > the end of the tasks like: > > oe.qa.exit_if_errors(d) > > with a definition similar to: > > def exit_if_errors(d): > qa_sane = d.getVar("QA_SANE") > if not qa_sane: > bb.fatal("Fatal QA errors were found.") > > and then renaming QA_SANE to something like QA_FATAL_ERRORS and exitting if > set. That sounds like it would neaten things up greatly and avoid the risk of accidentally failing to make the error fatal. It ought to mean that many of the sane local variables can be removed too. Would you like me to provide new versions of the existing patches or add new patches on top of the ones already in master-next? Thanks. Mike. -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156968): https://lists.openembedded.org/g/openembedded-core/message/156968 Mute This Topic: https://lists.openembedded.org/mt/86284884/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH v3 2/2] license: Allow treating missing license as error
On Thu, 2021-10-14 at 17:42 +0100, Mike Crowe via lists.openembedded.org wrote: > On Wednesday 13 October 2021 at 11:48:05 +0100, Mike Crowe wrote: > > Use the same WARN_WA and ERROR_QA variables as insane.bbclass to allow > > individual recipes, the distro or other configuration to determine > > whether a missing licence should be treated as a warning (as it is now) > > or as an error. > > > > oe.qa.handle_error isn't immediately fatal, so track the overall sanity > > state and call bb.fatal if required at the end to ensure that the task > > really fails. If only bb.error is used then do_populate_lic isn't re-run > > on subsequent builds which could lead to the error being missed. > > > > It seems odd for the license- error classes to be listed in > > insane.bbclass but implemented in license.bbclass. All recommendations > > for somewhere else to put them gratefully received. > > > > Signed-off-by: Mike Crowe > > --- > > meta/classes/insane.bbclass | 1 + > > meta/classes/license.bbclass | 27 --- > > 2 files changed, 21 insertions(+), 7 deletions(-) > > > > diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass > > index 895216d3e8..57456c99ad 100644 > > --- a/meta/classes/insane.bbclass > > +++ b/meta/classes/insane.bbclass > > @@ -28,6 +28,7 @@ WARN_QA ?= " libdir xorg-driver-abi \ > > invalid-packageconfig host-user-contaminated uppercase-pn > > patch-fuzz \ > > mime mime-xdg unlisted-pkg-lics unhandled-features-check \ > > missing-update-alternatives native-last missing-ptest \ > > +license-exists license-no-generic license-syntax > > license-format \ > > " > > ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \ > > perms dep-cmp pkgvarcheck perm-config perm-line perm-link \ > > diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass > > index 45d912741d..6bbb71392e 100644 > > --- a/meta/classes/license.bbclass > > +++ b/meta/classes/license.bbclass > > @@ -112,6 +112,7 @@ def find_license_files(d): > > import oe.license > > from collections import defaultdict, OrderedDict > > > > +sane = True > > # All the license files for the package > > lic_files = d.getVar('LIC_FILES_CHKSUM') or "" > > pn = d.getVar('PN') > > @@ -146,6 +147,7 @@ def find_license_files(d): > > self.generic_visit(node) > > > > def find_license(license_type): > > +import oe.qa > > There's a "sane = True" missing here. > > > try: > > bb.utils.mkdirhier(gen_lic_dest) > > except: > > @@ -178,7 +180,8 @@ def find_license_files(d): > > # The user may attempt to use NO_GENERIC_LICENSE for a generic > > license which doesn't make sense > > # and should not be allowed, warn the user in this case. > > if d.getVarFlag('NO_GENERIC_LICENSE', license_type): > > -bb.warn("%s: %s is a generic license, please don't use > > NO_GENERIC_LICENSE for it." % (pn, license_type)) > > +sane &= oe.qa.handle_error("license-no-generic", > > +"%s: %s is a generic license, please don't use > > NO_GENERIC_LICENSE for it." % (pn, license_type), d) > > > > elif non_generic_lic and non_generic_lic in lic_chksums: > > # if NO_GENERIC_LICENSE is set, we copy the license files from > > the fetched source > > @@ -190,7 +193,8 @@ def find_license_files(d): > > # Add explicity avoid of CLOSED license because this isn't > > generic > > if license_type != 'CLOSED': > > # And here is where we warn people that their licenses are > > lousy > > -bb.warn("%s: No generic license file exists for: %s in any > > provider" % (pn, license_type)) > > +sane &= oe.qa.handle_error("license-exists", > > +"%s: No generic license file exists for: %s in any > > provider" % (pn, license_type), d) > > pass > > and a check for not sane missing here. > > > > > if not generic_directory: > > @@ -215,7 +219,8 @@ def find_license_files(d): > > except oe.license.InvalidLicense as exc: > > bb.fatal('%s: %s' % (d.getVar('PF'), exc)) > > except SyntaxError: > > -bb.warn("%s: Failed to parse it's LICENSE field." % > > (d.getVar('PF'))) > > +sane &= oe.qa.handle_error("license-syntax", > > +"%s: Failed to parse it's LICENSE field." % (d.getVar('PF')), > > d) > > # Add files from LIC_FILES_CHKSUM to list of license files > > lic_chksum_paths = defaultdict(OrderedDict) > > for path, data in sorted(lic_chksums.items()): > > @@ -233,6 +238,8 @@ def find_license_files(d): > > for i, data in enumerate(files.values()): > > lic_files_paths.append(tuple(["%s.%d" % (basename, i)] + > > list(data))) > > > > +if not sane: > > +
Re: [OE-core] Installing licence files for static/header-only libraries into images
On Wednesday 13 October 2021 at 13:32:03 -0700, Khem Raj wrote: > On Wed, Oct 13, 2021 at 7:06 AM Mike Crowe via lists.openembedded.org mcrowe@lists.openembedded.org> wrote: > > > We're using: > > > > EXTRA_IMAGE_FEATURES += "lic-pkgs" > > > > to install the corresponding licence packages for all the packages > > installed in our image. This works very well for binaries and dynamic > > libraries. However, I've recently noticed that it doesn't install licence > > files for any static or header-only libraries used during the build. > > > > The corresponding -lic packages are built for such packages, but nothing > > causes them to be installed since they are not runtime dependencies of > > anything that is installed. > > > > I thought that I could solve this problem by something like: > > > > def lic_deps(d): > > deps = [] > > for f in d.getVar('DEPENDS').split(): > > if not f.endswith("-native") and not f.startswith("virtual/"): > > deps.append(f + "-lic") > > return ' '.join(deps) > > > It will work but in some cases it will be do more than what’s needed > Build time dependencies are not necessarily also runtime dependencies eg it > could be using a tool from that package during build Yes. I was attempting to avoid that to a certain extent by excluding -native packages. > > RDEPENDS_${PN}-lic += "${@lic_deps(d)}" > > > > but this fails for recipes that use PROVIDES or other shenanigans which > > means that just appending -lic to whatever is in DEPENDS is insufficient. > > > > For the time being I can add the required packages by hand, but this is > > brittle in the longer term. > > > > Is there a better way to solve this problem? The deficiencies in this solution made me hope that there was a better one. It doesn't sound like there is. :( Thanks. Mike. -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156966): https://lists.openembedded.org/g/openembedded-core/message/156966 Mute This Topic: https://lists.openembedded.org/mt/86288556/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH v3 2/2] license: Allow treating missing license as error
On Wednesday 13 October 2021 at 11:48:05 +0100, Mike Crowe wrote: > Use the same WARN_WA and ERROR_QA variables as insane.bbclass to allow > individual recipes, the distro or other configuration to determine > whether a missing licence should be treated as a warning (as it is now) > or as an error. > > oe.qa.handle_error isn't immediately fatal, so track the overall sanity > state and call bb.fatal if required at the end to ensure that the task > really fails. If only bb.error is used then do_populate_lic isn't re-run > on subsequent builds which could lead to the error being missed. > > It seems odd for the license- error classes to be listed in > insane.bbclass but implemented in license.bbclass. All recommendations > for somewhere else to put them gratefully received. > > Signed-off-by: Mike Crowe > --- > meta/classes/insane.bbclass | 1 + > meta/classes/license.bbclass | 27 --- > 2 files changed, 21 insertions(+), 7 deletions(-) > > diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass > index 895216d3e8..57456c99ad 100644 > --- a/meta/classes/insane.bbclass > +++ b/meta/classes/insane.bbclass > @@ -28,6 +28,7 @@ WARN_QA ?= " libdir xorg-driver-abi \ > invalid-packageconfig host-user-contaminated uppercase-pn > patch-fuzz \ > mime mime-xdg unlisted-pkg-lics unhandled-features-check \ > missing-update-alternatives native-last missing-ptest \ > +license-exists license-no-generic license-syntax license-format \ > " > ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \ > perms dep-cmp pkgvarcheck perm-config perm-line perm-link \ > diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass > index 45d912741d..6bbb71392e 100644 > --- a/meta/classes/license.bbclass > +++ b/meta/classes/license.bbclass > @@ -112,6 +112,7 @@ def find_license_files(d): > import oe.license > from collections import defaultdict, OrderedDict > > +sane = True > # All the license files for the package > lic_files = d.getVar('LIC_FILES_CHKSUM') or "" > pn = d.getVar('PN') > @@ -146,6 +147,7 @@ def find_license_files(d): > self.generic_visit(node) > > def find_license(license_type): > +import oe.qa There's a "sane = True" missing here. > try: > bb.utils.mkdirhier(gen_lic_dest) > except: > @@ -178,7 +180,8 @@ def find_license_files(d): > # The user may attempt to use NO_GENERIC_LICENSE for a generic > license which doesn't make sense > # and should not be allowed, warn the user in this case. > if d.getVarFlag('NO_GENERIC_LICENSE', license_type): > -bb.warn("%s: %s is a generic license, please don't use > NO_GENERIC_LICENSE for it." % (pn, license_type)) > +sane &= oe.qa.handle_error("license-no-generic", > +"%s: %s is a generic license, please don't use > NO_GENERIC_LICENSE for it." % (pn, license_type), d) > > elif non_generic_lic and non_generic_lic in lic_chksums: > # if NO_GENERIC_LICENSE is set, we copy the license files from > the fetched source > @@ -190,7 +193,8 @@ def find_license_files(d): > # Add explicity avoid of CLOSED license because this isn't > generic > if license_type != 'CLOSED': > # And here is where we warn people that their licenses are > lousy > -bb.warn("%s: No generic license file exists for: %s in any > provider" % (pn, license_type)) > +sane &= oe.qa.handle_error("license-exists", > +"%s: No generic license file exists for: %s in any > provider" % (pn, license_type), d) > pass and a check for not sane missing here. > > if not generic_directory: > @@ -215,7 +219,8 @@ def find_license_files(d): > except oe.license.InvalidLicense as exc: > bb.fatal('%s: %s' % (d.getVar('PF'), exc)) > except SyntaxError: > -bb.warn("%s: Failed to parse it's LICENSE field." % (d.getVar('PF'))) > +sane &= oe.qa.handle_error("license-syntax", > +"%s: Failed to parse it's LICENSE field." % (d.getVar('PF')), d) > # Add files from LIC_FILES_CHKSUM to list of license files > lic_chksum_paths = defaultdict(OrderedDict) > for path, data in sorted(lic_chksums.items()): > @@ -233,6 +238,8 @@ def find_license_files(d): > for i, data in enumerate(files.values()): > lic_files_paths.append(tuple(["%s.%d" % (basename, i)] + > list(data))) > > +if not sane: > +bb.fatal("Fatal QA errors found, failing task.") > return lic_files_paths > > def return_spdx(d, license): > @@ -398,6 +405,8 @@ def check_license_format(d): > Validate operators in LICENSES. > No spaces are allowed between LICENSES. > """ > +import oe.qa > +sa
Re: [OE-core] [PATCH 1/7] reproducible_build: Drop now unneeded compiler warning
On 10/14/21 5:10 AM, Richard Purdie wrote: We now pass compiler options that mean the compiler will adjust these values to SOURCE_DATE_EPOCH, the compiler warnings are now unneeded. Is there a chance of it being overwritten by component's build system in that case this warning may still be handy Signed-off-by: Richard Purdie --- meta/classes/reproducible_build.bbclass | 3 --- 1 file changed, 3 deletions(-) diff --git a/meta/classes/reproducible_build.bbclass b/meta/classes/reproducible_build.bbclass index 7571c116c82..fd90d771d2b 100644 --- a/meta/classes/reproducible_build.bbclass +++ b/meta/classes/reproducible_build.bbclass @@ -58,9 +58,6 @@ SDE_DIR = "${WORKDIR}/source-date-epoch" SDE_FILE = "${SDE_DIR}/__source_date_epoch.txt" SDE_DEPLOYDIR = "${WORKDIR}/deploy-source-date-epoch" -# Enable compiler warning when the __TIME__, __DATE__ and __TIMESTAMP__ macros are used. -TARGET_CC_ARCH:append:class-target = " -Wdate-time" - # A SOURCE_DATE_EPOCH of '0' might be misinterpreted as no SDE export SOURCE_DATE_EPOCH_FALLBACK ??= "1302044400" -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156964): https://lists.openembedded.org/g/openembedded-core/message/156964 Mute This Topic: https://lists.openembedded.org/mt/86310655/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH 1/2] oe/utils: log exceptions in ThreadedWorker functions
If the function a ThreadedWorker is executing raises an exception, don't use print() as that mostly disappears. Instead, output it to the logger. This is done using bb.mainlogger.debug directly instead of bb.debug() as this allows us to pass the exception instance directly, which is then incorporated into the log stream. Signed-off-by: Ross Burton --- meta/lib/oe/utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py index 238af314d1..cf65639647 100644 --- a/meta/lib/oe/utils.py +++ b/meta/lib/oe/utils.py @@ -508,7 +508,8 @@ class ThreadedWorker(Thread): try: func(self, *args, **kargs) except Exception as e: -print(e) +# Eat all exceptions +bb.mainlogger.debug("Worker task raised %s" % e, exc_info=e) finally: self.tasks.task_done() -- 2.25.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156962): https://lists.openembedded.org/g/openembedded-core/message/156962 Mute This Topic: https://lists.openembedded.org/mt/86318529/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH 2/2] sstate: don't silently handle all exceptions in sstate_checkhashes
If checkstatus returns an exception we should silently handle FetchError, as this means the fetch failed for 'normal' reasons such as file not found. However, other exceptions may be raised, and these should be made visible. Signed-off-by: Ross Burton --- meta/classes/sstate.bbclass | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index 701a19bc61..143819b898 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass @@ -983,10 +983,11 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True, foundNet.add(tid) if tid in missed: missed.remove(tid) -except: +except bb.fetch2.FetchError as e: missed.add(tid) -bb.debug(2, "SState: Unsuccessful fetch test for %s" % srcuri) -pass +bb.debug(2, "SState: Unsuccessful fetch test for %s (%s)" % (srcuri, e)) +except Exception as e: +bb.error("SState: cannot test %s: %s" % (srcuri, e)) if len(tasklist) >= min_tasks: bb.event.fire(bb.event.ProcessProgress(msg, len(tasklist) - thread_worker.tasks.qsize()), d) -- 2.25.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156963): https://lists.openembedded.org/g/openembedded-core/message/156963 Mute This Topic: https://lists.openembedded.org/mt/86318531/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH 7/7] reproducible: Drop BUILD_REPRODUCIBLE_BINARIES variable
On Thu, 2021-10-14 at 09:46 -0400, Bruce Ashfield wrote: > On Thu, Oct 14, 2021 at 9:45 AM Alexandre Belloni > wrote: > > > > On 14/10/2021 08:38:46-0400, Bruce Ashfield wrote: > > > On Thu, Oct 14, 2021 at 8:32 AM Richard Purdie > > > wrote: > > > > > > > > On Thu, 2021-10-14 at 08:28 -0400, Bruce Ashfield wrote: > > > > > On Thu, Oct 14, 2021 at 8:10 AM Richard Purdie > > > > > wrote: > > > > > > > > > > > > We want things to be reproduicble and the variable doesn't really > > > > > > change > > > > > > much any more. Drop the remaining uses and make those code paths > > > > > > always > > > > > > active. > > > > > > > > > > It wasn't clear to me from reading the patch. What is the way that > > > > > someone would now get the current timestamp into a kernel build, if > > > > > that's the behaviour that they want ? > > > > > > > > With this change they probably don't get the option. If we want that to > > > > be > > > > configurable, we should probably move the control to a different > > > > variable which > > > > is focused specifically on the kernel. The hardest bit is probably > > > > picking a > > > > name! > > > > > > This is probably the most surprising feature of reproducibility for > > > kernel developers, and a question that I've gotten multiple times > > > ("what happened to my timestamp ?" followed by "how do I turn this > > > off?") > > > > > > Most kernel developers already don't really like the "yocto workflow", > > > and this adds another element in that category. It is common in a > > > debug scenario to check the timestamp of the running kernel to make > > > sure that you've actually booted the one you just built. > > > > > > > But do kernel developers actually do their development using YP? > > I definitively not. I do all my BSP work outside of any build system and > > then I finally integrate everything once this is working/ready. > > Many do, yup! I've sent out a new version of this patch with an additional one which gives people a setting to control the timestamp for the kernel. Cheers, Richard -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156961): https://lists.openembedded.org/g/openembedded-core/message/156961 Mute This Topic: https://lists.openembedded.org/mt/86310659/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH] linux-yocto: add libmpc-native to DEPENDS
On Thu, 14 Oct 2021 at 10:21, Andrey Zhizhikin wrote: > It seems that GCC plugins are somehow disabled in SDK GCC, but Kernel > build system checks them on the host, which does provide them. This > leads to a false identification that plugins are enabled and leads to > further build failures. > > This behavior came with commit 1e860048c53e ("gcc-plugins: simplify > GCC plugin-dev capability test"), where previously build system ran an > internal script to verify if plugins are present by running compile > tests, but after this commit - it checks only if the folder containing > plugins is there. This leads to the issue that when host GCC has the > folder - plugins are enabled, but when later the compile pass is taken > - it fails since the .so is not present in the SDK sysroot. Urgh. Can you provide a minimal reproducer for this? Ross -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156960): https://lists.openembedded.org/g/openembedded-core/message/156960 Mute This Topic: https://lists.openembedded.org/mt/86092630/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH 7/7] reproducible: Drop BUILD_REPRODUCIBLE_BINARIES variable
On Thu, Oct 14, 2021 at 9:45 AM Alexandre Belloni wrote: > > On 14/10/2021 08:38:46-0400, Bruce Ashfield wrote: > > On Thu, Oct 14, 2021 at 8:32 AM Richard Purdie > > wrote: > > > > > > On Thu, 2021-10-14 at 08:28 -0400, Bruce Ashfield wrote: > > > > On Thu, Oct 14, 2021 at 8:10 AM Richard Purdie > > > > wrote: > > > > > > > > > > We want things to be reproduicble and the variable doesn't really > > > > > change > > > > > much any more. Drop the remaining uses and make those code paths > > > > > always > > > > > active. > > > > > > > > It wasn't clear to me from reading the patch. What is the way that > > > > someone would now get the current timestamp into a kernel build, if > > > > that's the behaviour that they want ? > > > > > > With this change they probably don't get the option. If we want that to be > > > configurable, we should probably move the control to a different variable > > > which > > > is focused specifically on the kernel. The hardest bit is probably > > > picking a > > > name! > > > > This is probably the most surprising feature of reproducibility for > > kernel developers, and a question that I've gotten multiple times > > ("what happened to my timestamp ?" followed by "how do I turn this > > off?") > > > > Most kernel developers already don't really like the "yocto workflow", > > and this adds another element in that category. It is common in a > > debug scenario to check the timestamp of the running kernel to make > > sure that you've actually booted the one you just built. > > > > But do kernel developers actually do their development using YP? > I definitively not. I do all my BSP work outside of any build system and > then I finally integrate everything once this is working/ready. Many do, yup! Bruce > > It did indeed surprise me the first time I saw that but this doesn't > have any actual effect on my workflow. Also, the issue was already > existing if what you were trying to build was already in the sstate > cache (e.G from a nightly build), it would contain the time of the > actual build. > > > -- > Alexandre Belloni, co-owner and COO, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com -- - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end - "Use the force Harry" - Gandalf, Star Trek II -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156959): https://lists.openembedded.org/g/openembedded-core/message/156959 Mute This Topic: https://lists.openembedded.org/mt/86310659/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH 1/2 v2] kernel: Add KERNEL_DEBUG_TIMESTAMPS variable
On Thu, Oct 14, 2021 at 9:40 AM Richard Purdie wrote: > > Change the "binary reproducibility" configuration within the kernel to > work off a separate variable, defaulting to reproducible builds. > > This allows kernel developers wanting timestamps in their images to enable > it easily and clearly without changing the rest of the reproduciblity > code which they likely don't need to change anyway. Looks good to me! Thanks for the tweak. Bruce > > Signed-off-by: Richard Purdie > --- > meta/classes/kernel.bbclass | 6 -- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass > index 4acec1877e0..c1cea177b62 100644 > --- a/meta/classes/kernel.bbclass > +++ b/meta/classes/kernel.bbclass > @@ -322,9 +322,11 @@ python do_devshell:prepend () { > > addtask bundle_initramfs after do_install before do_deploy > > +KERNEL_DEBUG_TIMESTAMPS ??= "0" > + > kernel_do_compile() { > unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE > - if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then > + if [ "${KERNEL_DEBUG_TIMESTAMPS}" != "1" ]; then > # kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH > may not > # be set > if [ "${SOURCE_DATE_EPOCH}" = "" -o "${SOURCE_DATE_EPOCH}" = > "0" ]; then > @@ -364,7 +366,7 @@ kernel_do_compile() { > > do_compile_kernelmodules() { > unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE > - if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then > + if [ "${KERNEL_DEBUG_TIMESTAMPS}" != "0" ]; then > # kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH > may not > # be set > if [ "${SOURCE_DATE_EPOCH}" = "" -o "${SOURCE_DATE_EPOCH}" = > "0" ]; then > -- > 2.32.0 > > > > -- - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end - "Use the force Harry" - Gandalf, Star Trek II -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156958): https://lists.openembedded.org/g/openembedded-core/message/156958 Mute This Topic: https://lists.openembedded.org/mt/86312624/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH 7/7] reproducible: Drop BUILD_REPRODUCIBLE_BINARIES variable
On 14/10/2021 08:38:46-0400, Bruce Ashfield wrote: > On Thu, Oct 14, 2021 at 8:32 AM Richard Purdie > wrote: > > > > On Thu, 2021-10-14 at 08:28 -0400, Bruce Ashfield wrote: > > > On Thu, Oct 14, 2021 at 8:10 AM Richard Purdie > > > wrote: > > > > > > > > We want things to be reproduicble and the variable doesn't really change > > > > much any more. Drop the remaining uses and make those code paths always > > > > active. > > > > > > It wasn't clear to me from reading the patch. What is the way that > > > someone would now get the current timestamp into a kernel build, if > > > that's the behaviour that they want ? > > > > With this change they probably don't get the option. If we want that to be > > configurable, we should probably move the control to a different variable > > which > > is focused specifically on the kernel. The hardest bit is probably picking a > > name! > > This is probably the most surprising feature of reproducibility for > kernel developers, and a question that I've gotten multiple times > ("what happened to my timestamp ?" followed by "how do I turn this > off?") > > Most kernel developers already don't really like the "yocto workflow", > and this adds another element in that category. It is common in a > debug scenario to check the timestamp of the running kernel to make > sure that you've actually booted the one you just built. > But do kernel developers actually do their development using YP? I definitively not. I do all my BSP work outside of any build system and then I finally integrate everything once this is working/ready. It did indeed surprise me the first time I saw that but this doesn't have any actual effect on my workflow. Also, the issue was already existing if what you were trying to build was already in the sstate cache (e.G from a nightly build), it would contain the time of the actual build. -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156957): https://lists.openembedded.org/g/openembedded-core/message/156957 Mute This Topic: https://lists.openembedded.org/mt/86310659/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH 2/2 v2] reproducible: Drop BUILD_REPRODUCIBLE_BINARIES variable
We want things to be reproduicble and the variable doesn't really change much any more. Drop the remaining uses and make those code paths always active. Signed-off-by: Richard Purdie --- meta/classes/image-prelink.bbclass| 13 - meta/classes/image.bbclass| 14 ++ meta/conf/bitbake.conf| 1 - meta/lib/oe/sstatesig.py | 2 +- meta/recipes-core/busybox/busybox.inc | 10 -- 5 files changed, 15 insertions(+), 25 deletions(-) diff --git a/meta/classes/image-prelink.bbclass b/meta/classes/image-prelink.bbclass index 0da094a5518..8158eeaf4ca 100644 --- a/meta/classes/image-prelink.bbclass +++ b/meta/classes/image-prelink.bbclass @@ -46,17 +46,12 @@ prelink_image () { dynamic_loader=${@get_linuxloader(d)} # prelink! - if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then - bbnote " prelink: BUILD_REPRODUCIBLE_BINARIES..." - if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then - export PRELINK_TIMESTAMP=`git log -1 --pretty=%ct ` - else - export PRELINK_TIMESTAMP=$REPRODUCIBLE_TIMESTAMP_ROOTFS - fi - ${STAGING_SBINDIR_NATIVE}/prelink --root ${IMAGE_ROOTFS} -am -N -c ${sysconfdir}/prelink.conf --dynamic-linker $dynamic_loader + if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then + export PRELINK_TIMESTAMP=`git log -1 --pretty=%ct ` else - ${STAGING_SBINDIR_NATIVE}/prelink --root ${IMAGE_ROOTFS} -amR -N -c ${sysconfdir}/prelink.conf --dynamic-linker $dynamic_loader + export PRELINK_TIMESTAMP=$REPRODUCIBLE_TIMESTAMP_ROOTFS fi + ${STAGING_SBINDIR_NATIVE}/prelink --root ${IMAGE_ROOTFS} -am -N -c ${sysconfdir}/prelink.conf --dynamic-linker $dynamic_loader # Remove the prelink.conf if we had to add it. if [ "$dummy_prelink_conf" = "true" ]; then diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index c2f32320278..2fa69a40d10 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -651,17 +651,15 @@ ROOTFS_PREPROCESS_COMMAND += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge' POPULATE_SDK_PRE_TARGET_COMMAND += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'create_merged_usr_symlinks_sdk; ', '',d)}" reproducible_final_image_task () { -if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then +if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then +REPRODUCIBLE_TIMESTAMP_ROOTFS=`git -C "${COREBASE}" log -1 --pretty=%ct 2>/dev/null` || true if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then -REPRODUCIBLE_TIMESTAMP_ROOTFS=`git -C "${COREBASE}" log -1 --pretty=%ct 2>/dev/null` || true -if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then -REPRODUCIBLE_TIMESTAMP_ROOTFS=`stat -c%Y ${@bb.utils.which(d.getVar("BBPATH"), "conf/bitbake.conf")}` -fi +REPRODUCIBLE_TIMESTAMP_ROOTFS=`stat -c%Y ${@bb.utils.which(d.getVar("BBPATH"), "conf/bitbake.conf")}` fi -# Set mtime of all files to a reproducible value -bbnote "reproducible_final_image_task: mtime set to $REPRODUCIBLE_TIMESTAMP_ROOTFS" -find ${IMAGE_ROOTFS} -print0 | xargs -0 touch -h --date=@$REPRODUCIBLE_TIMESTAMP_ROOTFS fi +# Set mtime of all files to a reproducible value +bbnote "reproducible_final_image_task: mtime set to $REPRODUCIBLE_TIMESTAMP_ROOTFS" +find ${IMAGE_ROOTFS} -print0 | xargs -0 touch -h --date=@$REPRODUCIBLE_TIMESTAMP_ROOTFS } systemd_preset_all () { diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 1db9b3fc051..790f2f7a8c4 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -636,7 +636,6 @@ SDE_DIR = "${WORKDIR}/source-date-epoch" SDE_FILE = "${SDE_DIR}/__source_date_epoch.txt" SDE_DEPLOYDIR = "${WORKDIR}/deploy-source-date-epoch" -BUILD_REPRODUCIBLE_BINARIES = "1" export PYTHONHASHSEED = "0" export PERL_HASH_SEED = "0" export SOURCE_DATE_EPOCH ?= "${@get_source_date_epoch_value(d)}" diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py index c2e3e2f4f58..038404e377a 100644 --- a/meta/lib/oe/sstatesig.py +++ b/meta/lib/oe/sstatesig.py @@ -489,7 +489,7 @@ def OEOuthashBasic(path, sigfile, task, d): include_timestamps = False include_root = True if task == "package": -include_timestamps = d.getVar('BUILD_REPRODUCIBLE_BINARIES') == '1' +include_timestamps = True include_root = False extra_content = d.getVar('HASHEQUIV_HASH_VERSION') diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc index 808c3dc7009..622325aabb3 100644 --- a/meta/recipes-core/busybox/busybox.inc +++ b/meta/recipes-core/busybox/busybox.inc @@ -110,9 +110,8 @@ python () { } do_prepare_config () { - if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then -
[OE-core] [PATCH 1/2 v2] kernel: Add KERNEL_DEBUG_TIMESTAMPS variable
Change the "binary reproducibility" configuration within the kernel to work off a separate variable, defaulting to reproducible builds. This allows kernel developers wanting timestamps in their images to enable it easily and clearly without changing the rest of the reproduciblity code which they likely don't need to change anyway. Signed-off-by: Richard Purdie --- meta/classes/kernel.bbclass | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass index 4acec1877e0..c1cea177b62 100644 --- a/meta/classes/kernel.bbclass +++ b/meta/classes/kernel.bbclass @@ -322,9 +322,11 @@ python do_devshell:prepend () { addtask bundle_initramfs after do_install before do_deploy +KERNEL_DEBUG_TIMESTAMPS ??= "0" + kernel_do_compile() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE - if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then + if [ "${KERNEL_DEBUG_TIMESTAMPS}" != "1" ]; then # kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH may not # be set if [ "${SOURCE_DATE_EPOCH}" = "" -o "${SOURCE_DATE_EPOCH}" = "0" ]; then @@ -364,7 +366,7 @@ kernel_do_compile() { do_compile_kernelmodules() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE - if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then + if [ "${KERNEL_DEBUG_TIMESTAMPS}" != "0" ]; then # kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH may not # be set if [ "${SOURCE_DATE_EPOCH}" = "" -o "${SOURCE_DATE_EPOCH}" = "0" ]; then -- 2.32.0 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156955): https://lists.openembedded.org/g/openembedded-core/message/156955 Mute This Topic: https://lists.openembedded.org/mt/86312624/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] libxkbcommon: update to 1.3.1
Signed-off-by: Oleksandr Kravchuk --- .../xorg-lib/{libxkbcommon_1.3.0.bb => libxkbcommon_1.3.1.bb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename meta/recipes-graphics/xorg-lib/{libxkbcommon_1.3.0.bb => libxkbcommon_1.3.1.bb} (92%) diff --git a/meta/recipes-graphics/xorg-lib/libxkbcommon_1.3.0.bb b/meta/recipes-graphics/xorg-lib/libxkbcommon_1.3.1.bb similarity index 92% rename from meta/recipes-graphics/xorg-lib/libxkbcommon_1.3.0.bb rename to meta/recipes-graphics/xorg-lib/libxkbcommon_1.3.1.bb index 57c318cf5e..0e75ed03dc 100644 --- a/meta/recipes-graphics/xorg-lib/libxkbcommon_1.3.0.bb +++ b/meta/recipes-graphics/xorg-lib/libxkbcommon_1.3.1.bb @@ -9,7 +9,7 @@ DEPENDS = "util-macros flex-native bison-native" SRC_URI = "http://xkbcommon.org/download/${BPN}-${PV}.tar.xz"; -SRC_URI[sha256sum] = "7b09e098ea69bc3054f0c57a9a25fda571c4df22398811606e32b5fffeb75e7b" +SRC_URI[sha256sum] = "b3c710d27a2630054e1e1399c85b7f330ef03359b460f0c1b3b587fd01fe9234" UPSTREAM_CHECK_URI = "http://xkbcommon.org/"; -- 2.25.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156954): https://lists.openembedded.org/g/openembedded-core/message/156954 Mute This Topic: https://lists.openembedded.org/mt/86312218/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] xkeyboard-config: update to 2.34
Signed-off-by: Oleksandr Kravchuk --- .../{xkeyboard-config_2.33.bb => xkeyboard-config_2.34.bb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename meta/recipes-graphics/xorg-lib/{xkeyboard-config_2.33.bb => xkeyboard-config_2.34.bb} (92%) diff --git a/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.33.bb b/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.34.bb similarity index 92% rename from meta/recipes-graphics/xorg-lib/xkeyboard-config_2.33.bb rename to meta/recipes-graphics/xorg-lib/xkeyboard-config_2.34.bb index 138e451d07..5d431a4172 100644 --- a/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.33.bb +++ b/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.34.bb @@ -13,7 +13,7 @@ LICENSE = "MIT & MIT-style" LIC_FILES_CHKSUM = "file://COPYING;md5=0e7f21ca7db975c63467d2e7624a12f9" SRC_URI = "${XORG_MIRROR}/individual/data/xkeyboard-config/${BPN}-${PV}.tar.bz2" -SRC_URI[sha256sum] = "657fd790d6dcf781cd395de4cf726120a5b0f93ba91dfb2628bcc70ae8b1d3bc" +SRC_URI[sha256sum] = "b321d27686ee7e6610ffe7b56e28d5bbf60625a1f595124cd320c0caa717b8ce" SECTION = "x11/libs" DEPENDS = "util-macros libxslt-native" -- 2.25.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156953): https://lists.openembedded.org/g/openembedded-core/message/156953 Mute This Topic: https://lists.openembedded.org/mt/86312179/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] xorgproto: update to 2021.5
Signed-off-by: Oleksandr Kravchuk --- .../{xorgproto_2021.4.99.2.bb => xorgproto_2021.5.bb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename meta/recipes-graphics/xorg-proto/{xorgproto_2021.4.99.2.bb => xorgproto_2021.5.bb} (90%) diff --git a/meta/recipes-graphics/xorg-proto/xorgproto_2021.4.99.2.bb b/meta/recipes-graphics/xorg-proto/xorgproto_2021.5.bb similarity index 90% rename from meta/recipes-graphics/xorg-proto/xorgproto_2021.4.99.2.bb rename to meta/recipes-graphics/xorg-proto/xorgproto_2021.5.bb index 1780e78c56..8edb4596ad 100644 --- a/meta/recipes-graphics/xorg-proto/xorgproto_2021.4.99.2.bb +++ b/meta/recipes-graphics/xorg-proto/xorgproto_2021.5.bb @@ -9,7 +9,7 @@ LICENSE = "MIT-style" LIC_FILES_CHKSUM = "file://COPYING-x11proto;md5=dfc4bd2b0568b31725b85b0604e69b56" SRC_URI = "${XORG_MIRROR}/individual/proto/${BP}.tar.bz2" -SRC_URI[sha256sum] = "c38878053179c6f8bc2dab4710b5fbf0e46db5b3134aee4a1977ffb06e7a" +SRC_URI[sha256sum] = "aa2f663b8dbd632960b24f7477aa07d901210057f6ab1a1db5158732569ca015" inherit meson -- 2.25.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156952): https://lists.openembedded.org/g/openembedded-core/message/156952 Mute This Topic: https://lists.openembedded.org/mt/86312143/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] libxi: update to 1.8
Signed-off-by: Oleksandr Kravchuk --- .../xorg-lib/{libxi_1.7.99.2.bb => libxi_1.8.bb}| 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename meta/recipes-graphics/xorg-lib/{libxi_1.7.99.2.bb => libxi_1.8.bb} (87%) diff --git a/meta/recipes-graphics/xorg-lib/libxi_1.7.99.2.bb b/meta/recipes-graphics/xorg-lib/libxi_1.8.bb similarity index 87% rename from meta/recipes-graphics/xorg-lib/libxi_1.7.99.2.bb rename to meta/recipes-graphics/xorg-lib/libxi_1.8.bb index 8afa9aa527..83101c5736 100644 --- a/meta/recipes-graphics/xorg-lib/libxi_1.7.99.2.bb +++ b/meta/recipes-graphics/xorg-lib/libxi_1.8.bb @@ -17,6 +17,6 @@ PE = "1" XORG_PN = "libXi" -SRC_URI[sha256sum] = "2ce90ebcb7fa0c3ed671924f1268b8f4c500fff62e1284699fc413e182a7896b" +SRC_URI[sha256sum] = "2ed181446a61c7337576467870bc5336fc9e222a281122d96c4d39a3298bba00" BBCLASSEXTEND = "native nativesdk" -- 2.25.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156951): https://lists.openembedded.org/g/openembedded-core/message/156951 Mute This Topic: https://lists.openembedded.org/mt/86312119/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH 7/7] reproducible: Drop BUILD_REPRODUCIBLE_BINARIES variable
On Thu, Oct 14, 2021 at 8:32 AM Richard Purdie wrote: > > On Thu, 2021-10-14 at 08:28 -0400, Bruce Ashfield wrote: > > On Thu, Oct 14, 2021 at 8:10 AM Richard Purdie > > wrote: > > > > > > We want things to be reproduicble and the variable doesn't really change > > > much any more. Drop the remaining uses and make those code paths always > > > active. > > > > It wasn't clear to me from reading the patch. What is the way that > > someone would now get the current timestamp into a kernel build, if > > that's the behaviour that they want ? > > With this change they probably don't get the option. If we want that to be > configurable, we should probably move the control to a different variable > which > is focused specifically on the kernel. The hardest bit is probably picking a > name! This is probably the most surprising feature of reproducibility for kernel developers, and a question that I've gotten multiple times ("what happened to my timestamp ?" followed by "how do I turn this off?") Most kernel developers already don't really like the "yocto workflow", and this adds another element in that category. It is common in a debug scenario to check the timestamp of the running kernel to make sure that you've actually booted the one you just built. > > You don't really want to turn off all reproducibility everywhere for just the > kernel timestamping change. Agreed. And agreed on picking the name, could it be something around KERNEL_DEBUG ? And we could even put a bbnote (that they won't see, but that's the best I can think of) that indicates that reproducibility is on and the timestamp is set to .. and the opposite when reproducibility is off ? Bruce > > Cheers, > > Richard > -- - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end - "Use the force Harry" - Gandalf, Star Trek II -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156950): https://lists.openembedded.org/g/openembedded-core/message/156950 Mute This Topic: https://lists.openembedded.org/mt/86310659/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH 7/7] reproducible: Drop BUILD_REPRODUCIBLE_BINARIES variable
On Thu, 2021-10-14 at 08:28 -0400, Bruce Ashfield wrote: > On Thu, Oct 14, 2021 at 8:10 AM Richard Purdie > wrote: > > > > We want things to be reproduicble and the variable doesn't really change > > much any more. Drop the remaining uses and make those code paths always > > active. > > It wasn't clear to me from reading the patch. What is the way that > someone would now get the current timestamp into a kernel build, if > that's the behaviour that they want ? With this change they probably don't get the option. If we want that to be configurable, we should probably move the control to a different variable which is focused specifically on the kernel. The hardest bit is probably picking a name! You don't really want to turn off all reproducibility everywhere for just the kernel timestamping change. Cheers, Richard -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156949): https://lists.openembedded.org/g/openembedded-core/message/156949 Mute This Topic: https://lists.openembedded.org/mt/86310659/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH 7/7] reproducible: Drop BUILD_REPRODUCIBLE_BINARIES variable
On Thu, Oct 14, 2021 at 8:10 AM Richard Purdie wrote: > > We want things to be reproduicble and the variable doesn't really change > much any more. Drop the remaining uses and make those code paths always > active. It wasn't clear to me from reading the patch. What is the way that someone would now get the current timestamp into a kernel build, if that's the behaviour that they want ? Bruce > > Signed-off-by: Richard Purdie > --- > meta/classes/image-prelink.bbclass| 13 ++- > meta/classes/image.bbclass| 14 +++ > meta/classes/kernel.bbclass | 54 +-- > meta/conf/bitbake.conf| 1 - > meta/lib/oe/sstatesig.py | 2 +- > meta/recipes-core/busybox/busybox.inc | 10 ++--- > 6 files changed, 41 insertions(+), 53 deletions(-) > > diff --git a/meta/classes/image-prelink.bbclass > b/meta/classes/image-prelink.bbclass > index 0da094a5518..8158eeaf4ca 100644 > --- a/meta/classes/image-prelink.bbclass > +++ b/meta/classes/image-prelink.bbclass > @@ -46,17 +46,12 @@ prelink_image () { > dynamic_loader=${@get_linuxloader(d)} > > # prelink! > - if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then > - bbnote " prelink: BUILD_REPRODUCIBLE_BINARIES..." > - if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then > - export PRELINK_TIMESTAMP=`git log -1 --pretty=%ct ` > - else > - export > PRELINK_TIMESTAMP=$REPRODUCIBLE_TIMESTAMP_ROOTFS > - fi > - ${STAGING_SBINDIR_NATIVE}/prelink --root ${IMAGE_ROOTFS} -am > -N -c ${sysconfdir}/prelink.conf --dynamic-linker $dynamic_loader > + if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then > + export PRELINK_TIMESTAMP=`git log -1 --pretty=%ct ` > else > - ${STAGING_SBINDIR_NATIVE}/prelink --root ${IMAGE_ROOTFS} -amR > -N -c ${sysconfdir}/prelink.conf --dynamic-linker $dynamic_loader > + export PRELINK_TIMESTAMP=$REPRODUCIBLE_TIMESTAMP_ROOTFS > fi > + ${STAGING_SBINDIR_NATIVE}/prelink --root ${IMAGE_ROOTFS} -am -N -c > ${sysconfdir}/prelink.conf --dynamic-linker $dynamic_loader > > # Remove the prelink.conf if we had to add it. > if [ "$dummy_prelink_conf" = "true" ]; then > diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass > index c2f32320278..2fa69a40d10 100644 > --- a/meta/classes/image.bbclass > +++ b/meta/classes/image.bbclass > @@ -651,17 +651,15 @@ ROOTFS_PREPROCESS_COMMAND += > "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge' > POPULATE_SDK_PRE_TARGET_COMMAND += "${@bb.utils.contains('DISTRO_FEATURES', > 'usrmerge', 'create_merged_usr_symlinks_sdk; ', '',d)}" > > reproducible_final_image_task () { > -if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then > +if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then > +REPRODUCIBLE_TIMESTAMP_ROOTFS=`git -C "${COREBASE}" log -1 > --pretty=%ct 2>/dev/null` || true > if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then > -REPRODUCIBLE_TIMESTAMP_ROOTFS=`git -C "${COREBASE}" log -1 > --pretty=%ct 2>/dev/null` || true > -if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then > -REPRODUCIBLE_TIMESTAMP_ROOTFS=`stat -c%Y > ${@bb.utils.which(d.getVar("BBPATH"), "conf/bitbake.conf")}` > -fi > +REPRODUCIBLE_TIMESTAMP_ROOTFS=`stat -c%Y > ${@bb.utils.which(d.getVar("BBPATH"), "conf/bitbake.conf")}` > fi > -# Set mtime of all files to a reproducible value > -bbnote "reproducible_final_image_task: mtime set to > $REPRODUCIBLE_TIMESTAMP_ROOTFS" > -find ${IMAGE_ROOTFS} -print0 | xargs -0 touch -h > --date=@$REPRODUCIBLE_TIMESTAMP_ROOTFS > fi > +# Set mtime of all files to a reproducible value > +bbnote "reproducible_final_image_task: mtime set to > $REPRODUCIBLE_TIMESTAMP_ROOTFS" > +find ${IMAGE_ROOTFS} -print0 | xargs -0 touch -h > --date=@$REPRODUCIBLE_TIMESTAMP_ROOTFS > } > > systemd_preset_all () { > diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass > index 4acec1877e0..3dd9b4446db 100644 > --- a/meta/classes/kernel.bbclass > +++ b/meta/classes/kernel.bbclass > @@ -324,21 +324,20 @@ addtask bundle_initramfs after do_install before > do_deploy > > kernel_do_compile() { > unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE > - if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then > - # kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH > may not > - # be set > - if [ "${SOURCE_DATE_EPOCH}" = "" -o "${SOURCE_DATE_EPOCH}" = > "0" ]; then > - # The source directory is not necessarily a git > repository, so we > - # specify the git-dir to ensure that git does not > query a > - # repository in any parent directory. > -
Re: [OE-core] [PATCH] linux-yocto-dev: Ensure DEPENDS matches recent 5.14 kernel changes
On Thu, Oct 14, 2021 at 8:20 AM Bruce Ashfield wrote: > > I already have this in my queue to send, but I guess this will do :D > I just sent my version, so you can choose. I have a slightly different and extra commentary in mine. Bruce > Bruce > > On Thu, Oct 14, 2021 at 6:22 AM Richard Purdie > wrote: > > > > DEPENDS here should match what 5.14 is using. > > > > Signed-off-by: Richard Purdie > > --- > > meta/recipes-kernel/linux/linux-yocto-dev.bb | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/meta/recipes-kernel/linux/linux-yocto-dev.bb > > b/meta/recipes-kernel/linux/linux-yocto-dev.bb > > index f58b5ab0b86..005b6887789 100644 > > --- a/meta/recipes-kernel/linux/linux-yocto-dev.bb > > +++ b/meta/recipes-kernel/linux/linux-yocto-dev.bb > > @@ -38,6 +38,7 @@ LIC_FILES_CHKSUM = > > "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" > > > > DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" > > DEPENDS += "openssl-native util-linux-native" > > +DEPENDS += "gmp-native libmpc-native" > > > > COMPATIBLE_MACHINE = > > "(qemuarm|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv64)" > > > > -- > > 2.32.0 > > > > > > > > > > > -- > - Thou shalt not follow the NULL pointer, for chaos and madness await > thee at its end > - "Use the force Harry" - Gandalf, Star Trek II -- - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end - "Use the force Harry" - Gandalf, Star Trek II -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156947): https://lists.openembedded.org/g/openembedded-core/message/156947 Mute This Topic: https://lists.openembedded.org/mt/86308914/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] linux-yocto-dev: add 5.10+ native dependencies
From: Bruce Ashfield Some of the kernel depencencies are moving to kernel.bbclass, but that requires version (and architecture) checks and other complexity. So for the time being, we add the dependencies to the recipes that need them. Signed-off-by: Bruce Ashfield --- meta/recipes-kernel/linux/linux-yocto-dev.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/recipes-kernel/linux/linux-yocto-dev.bb b/meta/recipes-kernel/linux/linux-yocto-dev.bb index f58b5ab0b8..005b688778 100644 --- a/meta/recipes-kernel/linux/linux-yocto-dev.bb +++ b/meta/recipes-kernel/linux/linux-yocto-dev.bb @@ -38,6 +38,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" DEPENDS += "openssl-native util-linux-native" +DEPENDS += "gmp-native libmpc-native" COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv64)" -- 2.19.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156946): https://lists.openembedded.org/g/openembedded-core/message/156946 Mute This Topic: https://lists.openembedded.org/mt/86310879/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH] linux-yocto-dev: Ensure DEPENDS matches recent 5.14 kernel changes
I already have this in my queue to send, but I guess this will do :D Bruce On Thu, Oct 14, 2021 at 6:22 AM Richard Purdie wrote: > > DEPENDS here should match what 5.14 is using. > > Signed-off-by: Richard Purdie > --- > meta/recipes-kernel/linux/linux-yocto-dev.bb | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/meta/recipes-kernel/linux/linux-yocto-dev.bb > b/meta/recipes-kernel/linux/linux-yocto-dev.bb > index f58b5ab0b86..005b6887789 100644 > --- a/meta/recipes-kernel/linux/linux-yocto-dev.bb > +++ b/meta/recipes-kernel/linux/linux-yocto-dev.bb > @@ -38,6 +38,7 @@ LIC_FILES_CHKSUM = > "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" > > DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" > DEPENDS += "openssl-native util-linux-native" > +DEPENDS += "gmp-native libmpc-native" > > COMPATIBLE_MACHINE = > "(qemuarm|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv64)" > > -- > 2.32.0 > > > > -- - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end - "Use the force Harry" - Gandalf, Star Trek II -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156945): https://lists.openembedded.org/g/openembedded-core/message/156945 Mute This Topic: https://lists.openembedded.org/mt/86308914/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH 05/26] rpm: update 4.16.1.3 -> 4.17.0
On Wed, Sep 8, 2021 at 8:01 PM Alexander Kanavin wrote: > The flagship features are migration from bdb to sqlite and zstd support, > both are enabled and taken into use. The relationship and upstream > preference > between sqlite and ndb formats isn't quite clear. > FYI: interesting side-effect of bdb removal in https://github.com/rpm-software-management/rpm/commit/4290300e24c5ab17c615b6108f38438e31eeb1d0 was that in some of our builds I've started to see: ERROR: rpm-native-1_4.17.0-r0 do_configure: QA Issue: rpm-native: configure was passed unrecognised options: --without-api-sanity-checker --without-abi-compliance-checker [unknown-configure-option] And the interesting part is that reporting unrecognised options stops working (enable_option_checking=no gets set in generated configure) when there is AC_CONFIG_SUBDIRS in configure.ac (even when not actively being used as in https://github.com/rpm-software-management/rpm/commit/4290300e24c5ab17c615b6108f38438e31eeb1d0#diff-49473dca262eeab3b4a43002adb08b4db31020d190caaad1594b47f1d5daa810L509 when not using internal bdb), see https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/status.m4#n1099 The unrecognized options were used since rpm-5 was removed in 2017 with: https://git.openembedded.org/openembedded-core/commit/?id=d0365f35303db3595688a6e5290677e02a72c54e but they didn't make it to QA issue, because of configure behavior. Regards, -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156944): https://lists.openembedded.org/g/openembedded-core/message/156944 Mute This Topic: https://lists.openembedded.org/mt/85465759/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH 7/7] reproducible: Drop BUILD_REPRODUCIBLE_BINARIES variable
We want things to be reproduicble and the variable doesn't really change much any more. Drop the remaining uses and make those code paths always active. Signed-off-by: Richard Purdie --- meta/classes/image-prelink.bbclass| 13 ++- meta/classes/image.bbclass| 14 +++ meta/classes/kernel.bbclass | 54 +-- meta/conf/bitbake.conf| 1 - meta/lib/oe/sstatesig.py | 2 +- meta/recipes-core/busybox/busybox.inc | 10 ++--- 6 files changed, 41 insertions(+), 53 deletions(-) diff --git a/meta/classes/image-prelink.bbclass b/meta/classes/image-prelink.bbclass index 0da094a5518..8158eeaf4ca 100644 --- a/meta/classes/image-prelink.bbclass +++ b/meta/classes/image-prelink.bbclass @@ -46,17 +46,12 @@ prelink_image () { dynamic_loader=${@get_linuxloader(d)} # prelink! - if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then - bbnote " prelink: BUILD_REPRODUCIBLE_BINARIES..." - if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then - export PRELINK_TIMESTAMP=`git log -1 --pretty=%ct ` - else - export PRELINK_TIMESTAMP=$REPRODUCIBLE_TIMESTAMP_ROOTFS - fi - ${STAGING_SBINDIR_NATIVE}/prelink --root ${IMAGE_ROOTFS} -am -N -c ${sysconfdir}/prelink.conf --dynamic-linker $dynamic_loader + if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then + export PRELINK_TIMESTAMP=`git log -1 --pretty=%ct ` else - ${STAGING_SBINDIR_NATIVE}/prelink --root ${IMAGE_ROOTFS} -amR -N -c ${sysconfdir}/prelink.conf --dynamic-linker $dynamic_loader + export PRELINK_TIMESTAMP=$REPRODUCIBLE_TIMESTAMP_ROOTFS fi + ${STAGING_SBINDIR_NATIVE}/prelink --root ${IMAGE_ROOTFS} -am -N -c ${sysconfdir}/prelink.conf --dynamic-linker $dynamic_loader # Remove the prelink.conf if we had to add it. if [ "$dummy_prelink_conf" = "true" ]; then diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index c2f32320278..2fa69a40d10 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -651,17 +651,15 @@ ROOTFS_PREPROCESS_COMMAND += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge' POPULATE_SDK_PRE_TARGET_COMMAND += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'create_merged_usr_symlinks_sdk; ', '',d)}" reproducible_final_image_task () { -if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then +if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then +REPRODUCIBLE_TIMESTAMP_ROOTFS=`git -C "${COREBASE}" log -1 --pretty=%ct 2>/dev/null` || true if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then -REPRODUCIBLE_TIMESTAMP_ROOTFS=`git -C "${COREBASE}" log -1 --pretty=%ct 2>/dev/null` || true -if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then -REPRODUCIBLE_TIMESTAMP_ROOTFS=`stat -c%Y ${@bb.utils.which(d.getVar("BBPATH"), "conf/bitbake.conf")}` -fi +REPRODUCIBLE_TIMESTAMP_ROOTFS=`stat -c%Y ${@bb.utils.which(d.getVar("BBPATH"), "conf/bitbake.conf")}` fi -# Set mtime of all files to a reproducible value -bbnote "reproducible_final_image_task: mtime set to $REPRODUCIBLE_TIMESTAMP_ROOTFS" -find ${IMAGE_ROOTFS} -print0 | xargs -0 touch -h --date=@$REPRODUCIBLE_TIMESTAMP_ROOTFS fi +# Set mtime of all files to a reproducible value +bbnote "reproducible_final_image_task: mtime set to $REPRODUCIBLE_TIMESTAMP_ROOTFS" +find ${IMAGE_ROOTFS} -print0 | xargs -0 touch -h --date=@$REPRODUCIBLE_TIMESTAMP_ROOTFS } systemd_preset_all () { diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass index 4acec1877e0..3dd9b4446db 100644 --- a/meta/classes/kernel.bbclass +++ b/meta/classes/kernel.bbclass @@ -324,21 +324,20 @@ addtask bundle_initramfs after do_install before do_deploy kernel_do_compile() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE - if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then - # kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH may not - # be set - if [ "${SOURCE_DATE_EPOCH}" = "" -o "${SOURCE_DATE_EPOCH}" = "0" ]; then - # The source directory is not necessarily a git repository, so we - # specify the git-dir to ensure that git does not query a - # repository in any parent directory. - SOURCE_DATE_EPOCH=`git --git-dir="${S}/.git" log -1 --pretty=%ct 2>/dev/null || echo "${REPRODUCIBLE_TIMESTAMP_ROOTFS}"` - fi - - ts=`LC_ALL=C date -d @$SOURCE_DATE_EPOCH` - export KBUILD_BUILD_TIMESTAMP="$ts" - export KCONFIG_NOTIMESTAMP=1 - bbnote "KBUILD_BUILD_TIMESTAMP: $ts" + # kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH may not +
[OE-core] [PATCH 6/7] python: Update now reproducibile builds are the default
Now reproducible builds are the default move the qemu-usermode check to anon python code so that invalid configurations are detected. Signed-off-by: Richard Purdie --- meta/recipes-devtools/python/python3_3.10.0.bb | 14 +- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/meta/recipes-devtools/python/python3_3.10.0.bb b/meta/recipes-devtools/python/python3_3.10.0.bb index 2e850710b68..e3300b6495b 100644 --- a/meta/recipes-devtools/python/python3_3.10.0.bb +++ b/meta/recipes-devtools/python/python3_3.10.0.bb @@ -95,15 +95,8 @@ CACHED_CONFIGUREVARS = " \ ac_cv_working_tzset=yes \ " -def possibly_include_pgo(d): -# PGO currently causes builds to not be reproducible, so disable it for -# now. See YOCTO #13407 -if bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d) and d.getVar('BUILD_REPRODUCIBLE_BINARIES') != '1': -return 'pgo' - -return '' - -PACKAGECONFIG:class-target ??= "readline ${@possibly_include_pgo(d)} gdbm ${@bb.utils.filter('DISTRO_FEATURES', 'lto', d)}" +# PGO currently causes builds to not be reproducible so disable by default, see YOCTO #13407 +PACKAGECONFIG:class-target ??= "readline gdbm ${@bb.utils.filter('DISTRO_FEATURES', 'lto', d)}" PACKAGECONFIG:class-native ??= "readline gdbm" PACKAGECONFIG:class-nativesdk ??= "readline gdbm" PACKAGECONFIG[readline] = ",,readline" @@ -320,6 +313,9 @@ python(){ d.setVar('PACKAGES', ' '.join(packages)) d.setVar('ALLOW_EMPTY:${PN}-modules', '1') d.setVar('ALLOW_EMPTY:${PN}-pkgutil', '1') + +if "pgo" in d.getVar("PACKAGECONFIG").split() and not bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d): +bb.fatal("pgo cannot be enabled as there is no qemu-usermode support for this architecture/machine") } # Files needed to create a new manifest -- 2.32.0 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156941): https://lists.openembedded.org/g/openembedded-core/message/156941 Mute This Topic: https://lists.openembedded.org/mt/86310657/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH 4/7] reproducible: Move variable definitions to bitbake.conf
The reproducibility code was originally developed as separate standalone class but development is no longer experimental and the code is widely tested and used by default for poky. Reproducible builds are the direction we need to take as a project. Transition the core variable definitions to bitbake.conf as part of a move to make these part of the default workflow. This also helps reduce test matrix complexity as there is now one code path. Signed-off-by: Richard Purdie --- meta/classes/reproducible_build.bbclass | 11 --- .../classes/reproducible_build_simple.bbclass | 9 - meta/conf/bitbake.conf| 19 ++- 3 files changed, 18 insertions(+), 21 deletions(-) delete mode 100644 meta/classes/reproducible_build_simple.bbclass diff --git a/meta/classes/reproducible_build.bbclass b/meta/classes/reproducible_build.bbclass index 0f45b782e5d..f38be1a7654 100644 --- a/meta/classes/reproducible_build.bbclass +++ b/meta/classes/reproducible_build.bbclass @@ -51,15 +51,6 @@ # # Once the value is determined, it is stored in the recipe's SDE_FILE. -BUILD_REPRODUCIBLE_BINARIES ??= '1' -inherit reproducible_build_simple - -SDE_DIR = "${WORKDIR}/source-date-epoch" -SDE_FILE = "${SDE_DIR}/__source_date_epoch.txt" -SDE_DEPLOYDIR = "${WORKDIR}/deploy-source-date-epoch" - -# A SOURCE_DATE_EPOCH of '0' might be misinterpreted as no SDE -export SOURCE_DATE_EPOCH_FALLBACK ??= "1302044400" SSTATETASKS += "do_deploy_source_date_epoch" @@ -103,5 +94,3 @@ do_unpack[postfuncs] += "create_source_date_epoch_stamp" def get_source_date_epoch_value(d): return oe.reproducible.epochfile_read(d.getVar('SDE_FILE'), d) -export SOURCE_DATE_EPOCH ?= "${@get_source_date_epoch_value(d)}" -BB_HASHBASE_WHITELIST += "SOURCE_DATE_EPOCH" diff --git a/meta/classes/reproducible_build_simple.bbclass b/meta/classes/reproducible_build_simple.bbclass deleted file mode 100644 index 393372993d0..000 --- a/meta/classes/reproducible_build_simple.bbclass +++ /dev/null @@ -1,9 +0,0 @@ -# Setup default environment for reproducible builds. - -BUILD_REPRODUCIBLE_BINARIES = "1" - -export PYTHONHASHSEED = "0" -export PERL_HASH_SEED = "0" -export SOURCE_DATE_EPOCH ??= "1520598896" - -REPRODUCIBLE_TIMESTAMP_ROOTFS ??= "1520598896" diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index cd828251b9b..1db9b3fc051 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -628,6 +628,22 @@ SELECTED_OPTIMIZATION[vardeps] += "FULL_OPTIMIZATION DEBUG_OPTIMIZATION DEBUG_BU BUILD_OPTIMIZATION = "${@oe.utils.vartrue('DEBUG_BUILD', '-Og -g -feliminate-unused-debug-types', '-O2', d)} -pipe" BUILD_OPTIMIZATION[vardeps] += "DEBUG_BUILD" +## +# Reproducibility +## + +SDE_DIR = "${WORKDIR}/source-date-epoch" +SDE_FILE = "${SDE_DIR}/__source_date_epoch.txt" +SDE_DEPLOYDIR = "${WORKDIR}/deploy-source-date-epoch" + +BUILD_REPRODUCIBLE_BINARIES = "1" +export PYTHONHASHSEED = "0" +export PERL_HASH_SEED = "0" +export SOURCE_DATE_EPOCH ?= "${@get_source_date_epoch_value(d)}" +# A SOURCE_DATE_EPOCH of '0' might be misinterpreted as no SDE +export SOURCE_DATE_EPOCH_FALLBACK ??= "1302044400" +REPRODUCIBLE_TIMESTAMP_ROOTFS ??= "1520598896" + ## # Settings used by bitbake-layers. ## @@ -908,7 +924,8 @@ BB_HASHEXCLUDE_COMMON ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH BBSERVER DL_DI SSTATE_HASHEQUIV_METHOD SSTATE_HASHEQUIV_REPORT_TASKDATA \ SSTATE_HASHEQUIV_OWNER CCACHE_TOP_DIR BB_HASHSERVE GIT_CEILING_DIRECTORIES \ OMP_NUM_THREADS BB_CURRENTTASK" -BB_HASHBASE_WHITELIST ?= "${BB_HASHEXCLUDE_COMMON} PSEUDO_IGNORE_PATHS BUILDHISTORY_DIR SSTATE_DIR " +BB_HASHBASE_WHITELIST ?= "${BB_HASHEXCLUDE_COMMON} PSEUDO_IGNORE_PATHS BUILDHISTORY_DIR \ +SSTATE_DIR SOURCE_DATE_EPOCH" BB_HASHCONFIG_WHITELIST ?= "${BB_HASHEXCLUDE_COMMON} DATE TIME SSH_AGENT_PID \ SSH_AUTH_SOCK PSEUDO_BUILD BB_ENV_EXTRAWHITE DISABLE_SANITY_CHECKS \ PARALLEL_MAKE BB_NUMBER_THREADS BB_ORIGENV BB_INVALIDCONF BBINCLUDED \ -- 2.32.0 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156942): https://lists.openembedded.org/g/openembedded-core/message/156942 Mute This Topic: https://lists.openembedded.org/mt/86310658/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH 5/7] reproducible: Merge code into base.bbclass
Reproducibility is here to stay and needs to be part of our default workflow. Move the remaining code to base.bbclass so it is always a first class citizen and it is clear people need to be mindful of it. Signed-off-by: Richard Purdie --- meta/classes/base.bbclass| 38 meta/classes/externalsrc.bbclass | 4 +- meta/classes/image-artifact-names.bbclass| 2 +- meta/classes/package_deb.bbclass | 3 +- meta/classes/package_ipk.bbclass | 3 +- meta/classes/package_rpm.bbclass | 3 +- meta/classes/reproducible_build.bbclass | 96 meta/lib/oe/reproducible.py | 51 +++ meta/lib/oeqa/selftest/cases/reproducible.py | 1 - 9 files changed, 95 insertions(+), 106 deletions(-) delete mode 100644 meta/classes/reproducible_build.bbclass diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index bca3944ae70..a65fcc6c1db 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -180,6 +180,44 @@ python base_do_unpack() { bb.fatal("Bitbake Fetcher Error: " + repr(e)) } +SSTATETASKS += "do_deploy_source_date_epoch" + +do_deploy_source_date_epoch () { +mkdir -p ${SDE_DEPLOYDIR} +if [ -e ${SDE_FILE} ]; then +echo "Deploying SDE from ${SDE_FILE} -> ${SDE_DEPLOYDIR}." +cp -p ${SDE_FILE} ${SDE_DEPLOYDIR}/__source_date_epoch.txt +else +echo "${SDE_FILE} not found!" +fi +} + +python do_deploy_source_date_epoch_setscene () { +sstate_setscene(d) +bb.utils.mkdirhier(d.getVar('SDE_DIR')) +sde_file = os.path.join(d.getVar('SDE_DEPLOYDIR'), '__source_date_epoch.txt') +if os.path.exists(sde_file): +target = d.getVar('SDE_FILE') +bb.debug(1, "Moving setscene SDE file %s -> %s" % (sde_file, target)) +bb.utils.rename(sde_file, target) +else: +bb.debug(1, "%s not found!" % sde_file) +} + +do_deploy_source_date_epoch[dirs] = "${SDE_DEPLOYDIR}" +do_deploy_source_date_epoch[sstate-plaindirs] = "${SDE_DEPLOYDIR}" +addtask do_deploy_source_date_epoch_setscene +addtask do_deploy_source_date_epoch before do_configure after do_patch + +python create_source_date_epoch_stamp() { +source_date_epoch = oe.reproducible.get_source_date_epoch(d, d.getVar('S')) +oe.reproducible.epochfile_write(source_date_epoch, d.getVar('SDE_FILE'), d) +} +do_unpack[postfuncs] += "create_source_date_epoch_stamp" + +def get_source_date_epoch_value(d): +return oe.reproducible.epochfile_read(d.getVar('SDE_FILE'), d) + def get_layers_branch_rev(d): layers = (d.getVar("BBLAYERS") or "").split() layers_branch_rev = ["%-20s = \"%s:%s\"" % (os.path.basename(i), \ diff --git a/meta/classes/externalsrc.bbclass b/meta/classes/externalsrc.bbclass index ad93b2d2abf..abfe24bacec 100644 --- a/meta/classes/externalsrc.bbclass +++ b/meta/classes/externalsrc.bbclass @@ -109,8 +109,8 @@ python () { if local_srcuri and task in fetch_tasks: continue bb.build.deltask(task, d) -if bb.data.inherits_class('reproducible_build', d) and task == 'do_unpack': -# The reproducible_build's create_source_date_epoch_stamp function must +if task == 'do_unpack': +# The reproducible build create_source_date_epoch_stamp function must # be run after the source is available and before the # do_deploy_source_date_epoch task. In the normal case, it's attached # to do_unpack as a postfuncs, but since we removed do_unpack (above) diff --git a/meta/classes/image-artifact-names.bbclass b/meta/classes/image-artifact-names.bbclass index 67f04e81658..f5769e520f5 100644 --- a/meta/classes/image-artifact-names.bbclass +++ b/meta/classes/image-artifact-names.bbclass @@ -15,7 +15,7 @@ IMAGE_LINK_NAME ?= "${IMAGE_BASENAME}-${MACHINE}" IMAGE_NAME_SUFFIX ??= ".rootfs" python () { -if bb.data.inherits_class('reproducible_build', d) and bb.data.inherits_class('deploy', d) and d.getVar("IMAGE_VERSION_SUFFIX") == "-${DATETIME}": +if bb.data.inherits_class('deploy', d) and d.getVar("IMAGE_VERSION_SUFFIX") == "-${DATETIME}": import datetime d.setVar("IMAGE_VERSION_SUFFIX", "-" + datetime.datetime.fromtimestamp(int(d.getVar("SOURCE_DATE_EPOCH")), datetime.timezone.utc).strftime('%Y%m%d%H%M%S')) d.setVarFlag("IMAGE_VERSION_SUFFIX", "vardepvalue", "") diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass index 65dbe6c3923..1ae6393d37d 100644 --- a/meta/classes/package_deb.bbclass +++ b/meta/classes/package_deb.bbclass @@ -315,8 +315,7 @@ python do_package_write_deb () { do_package_write_deb[dirs] = "${PKGWRITEDIRDEB}" do_package_write_deb[cleandirs] = "${PKGWRITEDIRDEB}" do_package_write_deb[depends] += "${@oe.utils.build_depends_string(d.getVar('PACKAGE_WRITE_DEPS'), 'do_populate_sysroot')}" -EPOCHTASK ??= "" -addtas
[OE-core] [PATCH 1/7] reproducible_build: Drop now unneeded compiler warning
We now pass compiler options that mean the compiler will adjust these values to SOURCE_DATE_EPOCH, the compiler warnings are now unneeded. Signed-off-by: Richard Purdie --- meta/classes/reproducible_build.bbclass | 3 --- 1 file changed, 3 deletions(-) diff --git a/meta/classes/reproducible_build.bbclass b/meta/classes/reproducible_build.bbclass index 7571c116c82..fd90d771d2b 100644 --- a/meta/classes/reproducible_build.bbclass +++ b/meta/classes/reproducible_build.bbclass @@ -58,9 +58,6 @@ SDE_DIR = "${WORKDIR}/source-date-epoch" SDE_FILE = "${SDE_DIR}/__source_date_epoch.txt" SDE_DEPLOYDIR = "${WORKDIR}/deploy-source-date-epoch" -# Enable compiler warning when the __TIME__, __DATE__ and __TIMESTAMP__ macros are used. -TARGET_CC_ARCH:append:class-target = " -Wdate-time" - # A SOURCE_DATE_EPOCH of '0' might be misinterpreted as no SDE export SOURCE_DATE_EPOCH_FALLBACK ??= "1302044400" -- 2.32.0 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156939): https://lists.openembedded.org/g/openembedded-core/message/156939 Mute This Topic: https://lists.openembedded.org/mt/86310655/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH 2/7] reproducible_build: Drop obsolete sstate workaround
sstate has been sufficiently invalidated since this change was made, drop the workaround now. Signed-off-by: Richard Purdie --- meta/classes/reproducible_build.bbclass | 4 1 file changed, 4 deletions(-) diff --git a/meta/classes/reproducible_build.bbclass b/meta/classes/reproducible_build.bbclass index fd90d771d2b..3f661794c61 100644 --- a/meta/classes/reproducible_build.bbclass +++ b/meta/classes/reproducible_build.bbclass @@ -126,10 +126,6 @@ def get_source_date_epoch_value(d): s = f.read() try: source_date_epoch = int(s) -# workaround for old sstate with SDE_FILE content being 0 - use SOURCE_DATE_EPOCH_FALLBACK -if source_date_epoch == 0 : -source_date_epoch = int(d.getVar('SOURCE_DATE_EPOCH_FALLBACK')) -bb.warn("SOURCE_DATE_EPOCH value from sstate '%s' is deprecated/invalid. Reverting to SOURCE_DATE_EPOCH_FALLBACK '%s'" % (s, source_date_epoch)) except ValueError: bb.warn("SOURCE_DATE_EPOCH value '%s' is invalid. Reverting to SOURCE_DATE_EPOCH_FALLBACK" % s) source_date_epoch = int(d.getVar('SOURCE_DATE_EPOCH_FALLBACK')) -- 2.32.0 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156937): https://lists.openembedded.org/g/openembedded-core/message/156937 Mute This Topic: https://lists.openembedded.org/mt/86310652/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH 3/7] reproducible: Move class function code into library
To try and avoid parse/memory overhead of functions within bitbake, move the bulk of the reproducibility functions to the function library. Signed-off-by: Richard Purdie --- meta/classes/base.bbclass | 2 +- meta/classes/reproducible_build.bbclass | 37 ++--- meta/lib/oe/reproducible.py | 33 ++ 3 files changed, 36 insertions(+), 36 deletions(-) diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 59fd46e5d43..bca3944ae70 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -12,7 +12,7 @@ inherit logging OE_EXTRA_IMPORTS ?= "" -OE_IMPORTS += "os sys time oe.path oe.utils oe.types oe.package oe.packagegroup oe.sstatesig oe.lsb oe.cachedpath oe.license oe.qa ${OE_EXTRA_IMPORTS}" +OE_IMPORTS += "os sys time oe.path oe.utils oe.types oe.package oe.packagegroup oe.sstatesig oe.lsb oe.cachedpath oe.license oe.qa oe.reproducible ${OE_EXTRA_IMPORTS}" OE_IMPORTS[type] = "list" PACKAGECONFIG_CONFARGS ??= "" diff --git a/meta/classes/reproducible_build.bbclass b/meta/classes/reproducible_build.bbclass index 3f661794c61..0f45b782e5d 100644 --- a/meta/classes/reproducible_build.bbclass +++ b/meta/classes/reproducible_build.bbclass @@ -91,19 +91,8 @@ addtask do_deploy_source_date_epoch_setscene addtask do_deploy_source_date_epoch before do_configure after do_patch python create_source_date_epoch_stamp() { -import oe.reproducible - -epochfile = d.getVar('SDE_FILE') -tmp_file = "%s.new" % epochfile - source_date_epoch = oe.reproducible.get_source_date_epoch(d, d.getVar('S')) - -bb.debug(1, "SOURCE_DATE_EPOCH: %d" % source_date_epoch) -bb.utils.mkdirhier(d.getVar('SDE_DIR')) -with open(tmp_file, 'w') as f: -f.write(str(source_date_epoch)) - -os.rename(tmp_file, epochfile) +oe.reproducible.epochfile_write(source_date_epoch, d.getVar('SDE_FILE'), d) } EPOCHTASK = "do_deploy_source_date_epoch" @@ -112,29 +101,7 @@ EPOCHTASK = "do_deploy_source_date_epoch" do_unpack[postfuncs] += "create_source_date_epoch_stamp" def get_source_date_epoch_value(d): -epochfile = d.getVar('SDE_FILE') -cached, efile = d.getVar('__CACHED_SOURCE_DATE_EPOCH') or (None, None) -if cached and efile == epochfile: -return cached - -if cached and epochfile != efile: -bb.debug(1, "Epoch file changed from %s to %s" % (efile, epochfile)) - -source_date_epoch = int(d.getVar('SOURCE_DATE_EPOCH_FALLBACK')) -try: -with open(epochfile, 'r') as f: -s = f.read() -try: -source_date_epoch = int(s) -except ValueError: -bb.warn("SOURCE_DATE_EPOCH value '%s' is invalid. Reverting to SOURCE_DATE_EPOCH_FALLBACK" % s) -source_date_epoch = int(d.getVar('SOURCE_DATE_EPOCH_FALLBACK')) -bb.debug(1, "SOURCE_DATE_EPOCH: %d" % source_date_epoch) -except FileNotFoundError: -bb.debug(1, "Cannot find %s. SOURCE_DATE_EPOCH will default to %d" % (epochfile, source_date_epoch)) - -d.setVar('__CACHED_SOURCE_DATE_EPOCH', (str(source_date_epoch), epochfile)) -return str(source_date_epoch) +return oe.reproducible.epochfile_read(d.getVar('SDE_FILE'), d) export SOURCE_DATE_EPOCH ?= "${@get_source_date_epoch_value(d)}" BB_HASHBASE_WHITELIST += "SOURCE_DATE_EPOCH" diff --git a/meta/lib/oe/reproducible.py b/meta/lib/oe/reproducible.py index 204b9bd734a..a5000574cfa 100644 --- a/meta/lib/oe/reproducible.py +++ b/meta/lib/oe/reproducible.py @@ -106,3 +106,36 @@ def get_source_date_epoch(d, sourcedir): fixed_source_date_epoch(d) # Last resort ) +def epochfile_read(epochfile, d): +cached, efile = d.getVar('__CACHED_SOURCE_DATE_EPOCH') or (None, None) +if cached and efile == epochfile: +return cached + +if cached and epochfile != efile: +bb.debug(1, "Epoch file changed from %s to %s" % (efile, epochfile)) + +source_date_epoch = int(d.getVar('SOURCE_DATE_EPOCH_FALLBACK')) +try: +with open(epochfile, 'r') as f: +s = f.read() +try: +source_date_epoch = int(s) +except ValueError: +bb.warn("SOURCE_DATE_EPOCH value '%s' is invalid. Reverting to SOURCE_DATE_EPOCH_FALLBACK" % s) +source_date_epoch = int(d.getVar('SOURCE_DATE_EPOCH_FALLBACK')) +bb.debug(1, "SOURCE_DATE_EPOCH: %d" % source_date_epoch) +except FileNotFoundError: +bb.debug(1, "Cannot find %s. SOURCE_DATE_EPOCH will default to %d" % (epochfile, source_date_epoch)) + +d.setVar('__CACHED_SOURCE_DATE_EPOCH', (str(source_date_epoch), epochfile)) +return str(source_date_epoch) + +def epochfile_write(source_date_epoch, epochfile, d): + +bb.debug(1, "SOURCE_DATE_EPOCH: %d" % source_date_epoch) +bb.utils.mkdirhier(os.path.dirname(epochfile)) + +tmp_file = "%s.new" % epochfile +with open(tmp_file, 'w') as f: +
Re: [OE-core] [PATCH] oeqa/selftest/reproducibile: Include rust packages
Hi Pgowda, On Fri, 2021-10-08 at 13:34 +0100, Richard Purdie wrote: > On Fri, 2021-10-08 at 17:29 +0530, pgowda cve wrote: > > Hi Richard, > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/118/builds/764 > > > > Thanks very much for sharing your inputs and comments on the issue. > > > > I could see some more builds where rust exclusions were unused:- > > Some of the example builds are:- > > https://autobuilder.yoctoproject.org/typhoon/#/builders/118/builds/757 > > https://autobuilder.yoctoproject.org/typhoon/#/builders/118/builds/755 > > https://autobuilder.yoctoproject.org/typhoon/#/builders/118/builds/751 > > > > Can you please let me know about this inconsistent behavior? > > The reproducible test runs on different hosts and has two builds it > compares. > The first build can come from sstate. The second build is built on the > specific > worker the builds runs on. > > We can see from my link above that the build that shows reproducibility > issues > ran on fedora33 so it is probably something specific to that distro. > > The most likely way to reproduce the issue is therefore to build on > something > like an ubuntu system and compare the packages with those built on a > fedora33 > system. > > > I will try to check the issue based on your inputs. > > > > I tried to build the reproducible with and without rust exclusions on > > many poky sources. > > Could not see this error on any sources ranging over the past two > > months. > > More details on the issue are shared at:- > > https://bugzilla.yoctoproject.org/show_bug.cgi?id=14525 > > It sounds like you're only testing on debian whilst the autobuilder has > multiple > different hosts which is the difference. > > Cheers, > > Richard > There is a new occurrence of the reproducibility issue on Fedora 33 : https://autobuilder.yoctoproject.org/typhoon/#/builders/118/builds/782/steps/12/logs/stdio Best regards, Thomas > > > -- Thomas Perrot, Bootlin Embedded Linux and kernel engineering https://bootlin.com signature.asc Description: This is a digitally signed message part -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156936): https://lists.openembedded.org/g/openembedded-core/message/156936 Mute This Topic: https://lists.openembedded.org/mt/86165875/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH] libpam: Fix build with DISTRO_FEATURES usrmerge
On 14/10/2021 08:54:35+0200, Zoltan Boszormenyi via lists.openembedded.org wrote: > On 2021. 10. 13. 21:38, Dan McGregor wrote: > > Thanks for this. I hit it pretty immediately. > > > > On Tue, 12 Oct 2021 at 05:17, Zoltan Boszormenyi via > > lists.openembedded.org wrote: > > > > > > From: Zoltán Böszörményi > > > > > > Signed-off-by: Zoltán Böszörményi > > > --- > > > meta/recipes-extended/pam/libpam_1.5.2.bb | 6 -- > > > 1 file changed, 4 insertions(+), 2 deletions(-) > > > > > > diff --git a/meta/recipes-extended/pam/libpam_1.5.2.bb > > > b/meta/recipes-extended/pam/libpam_1.5.2.bb > > > index a3c4a50cb3..ee3a84a3b6 100644 > > > --- a/meta/recipes-extended/pam/libpam_1.5.2.bb > > > +++ b/meta/recipes-extended/pam/libpam_1.5.2.bb > > > @@ -147,8 +147,10 @@ do_install() { > > > if > > > ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then > > > echo "session optional pam_systemd.so" >> > > > ${D}${sysconfdir}/pam.d/common-session > > > fi > > > -install -d ${D}/${libdir}/ > > > - mv ${D}/${base_libdir}/pkgconfig ${D}/${libdir}/ > > > + if > > > ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','false','true',d)}; then > > > > In the patch I made that I kept local for now my condition was > > > > if [ "${base_libdir}" != "${libdir}" ] > > > > It could be that a user sets libdir and base_libdir to be equal > > without enabling usrmerge, but both checks solve the immediate > > problem. > > Right, this is the correct solution. > The patch was just merged in master so you'd have to rebase on that > > > > > > > + install -d ${D}/${libdir}/ > > > + mv ${D}/${base_libdir}/pkgconfig ${D}/${libdir}/ > > > + fi > > > } > > > > > > do_install_ptest() { > > > -- > > > 2.31.1 > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156935): https://lists.openembedded.org/g/openembedded-core/message/156935 Mute This Topic: https://lists.openembedded.org/mt/86259670/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] patch: Use repr() with exceptions instead of str()
This gives more meaningful errors. Signed-off-by: Richard Purdie --- meta/classes/patch.bbclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/classes/patch.bbclass b/meta/classes/patch.bbclass index 87bcaf91a87..fdf3c633bc8 100644 --- a/meta/classes/patch.bbclass +++ b/meta/classes/patch.bbclass @@ -150,12 +150,12 @@ python patch_do_patch() { patchset.Import({"file":local, "strippath": parm['striplevel']}, True) except Exception as exc: bb.utils.remove(process_tmpdir, True) -bb.fatal("Importing patch '%s' with striplevel '%s'\n%s" % (parm['patchname'], parm['striplevel'], str(exc))) +bb.fatal("Importing patch '%s' with striplevel '%s'\n%s" % (parm['patchname'], parm['striplevel'], repr(exc))) try: resolver.Resolve() except bb.BBHandledException as e: bb.utils.remove(process_tmpdir, True) -bb.fatal("Applying patch '%s' on target directory '%s'\n%s" % (parm['patchname'], patchdir, str(e))) +bb.fatal("Applying patch '%s' on target directory '%s'\n%s" % (parm['patchname'], patchdir, repr(e))) bb.utils.remove(process_tmpdir, True) del os.environ['TMPDIR'] -- 2.32.0 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156934): https://lists.openembedded.org/g/openembedded-core/message/156934 Mute This Topic: https://lists.openembedded.org/mt/86309340/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH v3 1/1] ltp: Update to 20210927
On Sat, 2021-10-02 at 19:25 +0200, Petr Vorel wrote: > New patches to fix functionality: > * 0002-lib-fix-MemAvailable-parsing.patch > * 0003-lapi-rtnetlink.h-Fix-include-guards.patch > * 0004-lapi-Create-if_addr.h-and-reuse-it-in-rtnetlink.h.patch > * 0005-lapi-if_addr.h-Define-IFA_FLAGS.patch > > Removed patch from this release > * 0001-syscalls-ioctl_ns05.c-ioctl_ns06.c-Fix-too-small-buf.patch > > Rebased patch > * 0001-Remove-OOM-tests-from-runtest-mm.patch > > * Updated copying (reduced files in 5eff445d4 ("Reduce LICENCE/COPYING > files")) > > * Updated removed musl incompatible files in > remove_broken_musl_sources() (process.c was removed in 926d3b906 > ("sched: Remove process.c")), also update link to CI file. > > > > diff --git > a/meta/recipes-extended/ltp/ltp/0002-lib-fix-MemAvailable-parsing.patch > b/meta/recipes-extended/ltp/ltp/0002-lib-fix-MemAvailable-parsing.patch > new file mode 100644 > index 00..4a9a5b2363 > --- /dev/null > +++ b/meta/recipes-extended/ltp/ltp/0002-lib-fix-MemAvailable-parsing.patch > @@ -0,0 +1,36 @@ > +From 29a096fe2bd356f419bd8a8404d5b652c996b92f Mon Sep 17 00:00:00 2001 > +From: Ralph Siemsen > +Date: Mon, 27 Sep 2021 22:18:50 -0400 > +Subject: [PATCH] lib: fix MemAvailable parsing > + > +The amount of available memory was not being returned correctly, which > +resulted in tests being executed when they should have been skipped. > + > +Fixes: 8759f4 ("lib: adjust the tmpfs size according to .dev_min_size and > MemAvailable") > +Signed-off-by: Ralph Siemsen > +Signed-off-by: Li Wang > +Signed-off-by: Petr Vorel > +[ upstream status: e42149e28 ("lib: fix MemAvailable parsing") ] That for the upgrade. Just for future reference, the format for these is: Upstream-Status: Backport [XXX] or Upstream-Status: Submitted [XXX] I've tweaked the patches in this case. Cheers, Richard -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156933): https://lists.openembedded.org/g/openembedded-core/message/156933 Mute This Topic: https://lists.openembedded.org/mt/86027429/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] linux-yocto-dev: Ensure DEPENDS matches recent 5.14 kernel changes
DEPENDS here should match what 5.14 is using. Signed-off-by: Richard Purdie --- meta/recipes-kernel/linux/linux-yocto-dev.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/recipes-kernel/linux/linux-yocto-dev.bb b/meta/recipes-kernel/linux/linux-yocto-dev.bb index f58b5ab0b86..005b6887789 100644 --- a/meta/recipes-kernel/linux/linux-yocto-dev.bb +++ b/meta/recipes-kernel/linux/linux-yocto-dev.bb @@ -38,6 +38,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" DEPENDS += "openssl-native util-linux-native" +DEPENDS += "gmp-native libmpc-native" COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv64)" -- 2.32.0 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156932): https://lists.openembedded.org/g/openembedded-core/message/156932 Mute This Topic: https://lists.openembedded.org/mt/86308914/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH] linux-yocto: add libmpc-native to DEPENDS
Hello all, On Wed, Oct 6, 2021 at 1:20 PM Bruce Ashfield wrote: > > On Wed, Oct 6, 2021 at 7:42 AM Ross Burton wrote: > > > > I should have put this in the commit message, but here's the failure > > when using an external toolchain: > > > > 2021-10-05 12:52:14 - INFO - | HOSTCXX > > scripts/gcc-plugins/arm_ssp_per_task_plugin.so > > 2021-10-05 12:52:14 - INFO - | In file included from > > /builds/engineering/yocto/meta-arm/work/build/tmp/work-shared/fvp-base-arm32/kernel-source/scripts/gcc-plugins/gcc-common.h:103, > > 2021-10-05 12:52:14 - INFO - | from > > /builds/engineering/yocto/meta-arm/work/build/tmp/work-shared/fvp-base-arm32/kernel-source/scripts/gcc-plugins/arm_ssp_per_task_plugin.c:3: > > 02021-10-05 12:52:14 - INFO - | > > /builds/persist/toolchains/gcc-arm-10.3-2021.07-aarch64-arm-none-linux-gnueabihf/bin/../lib/gcc/arm-none-linux-gnueabihf/10.3.1/plugin/include/builtins.h:23:10: > > fatal error: mpc.h: No such file or directory > > 2021-10-05 12:52:14 - INFO - | #include > > 2021-10-05 12:52:14 - INFO - | ^~~ > > 2021-10-05 12:52:14 - INFO - | compilation terminated. > > Aha. Yes, that does tell the story. I knew it had to be a compilation > failure, since that is how I picked up the other DEPENDS. Sorry for jumping in here, I guess there is one additional issue that would be unraveled after libmpc will be included. What I saw long time ago (starting from v5.13.y) is that even when both gmp and libmpc are added, following build errors are produced from ARM32 builds when defconfig is used: cc1: error: cannot load plugin ./scripts/gcc-plugins/arm_ssp_per_task_plugin.so: ./scripts/gcc-plugins/arm_ssp_per_task_plugin.so: undefined symbol: _ZN8opt_pass14set_pass_paramEjb cc1: error: cannot load plugin ./scripts/gcc-plugins/arm_ssp_per_task_plugin.so: ./scripts/gcc-plugins/arm_ssp_per_task_plugin.so: undefined symbol: _ZN8opt_pass14set_pass_paramEjb It seems that GCC plugins are somehow disabled in SDK GCC, but Kernel build system checks them on the host, which does provide them. This leads to a false identification that plugins are enabled and leads to further build failures. This behavior came with commit 1e860048c53e ("gcc-plugins: simplify GCC plugin-dev capability test"), where previously build system ran an internal script to verify if plugins are present by running compile tests, but after this commit - it checks only if the folder containing plugins is there. This leads to the issue that when host GCC has the folder - plugins are enabled, but when later the compile pass is taken - it fails since the .so is not present in the SDK sysroot. I'd have to point out that this error only occurs for ARM32 builds, aarch64 builds are not affected. This has also been discussed here on the list, but I can't seem to find a reference to it anymore. > > Did we want to tweak the commit message and add linux-yocto-dev to the > patch ? I can have go at that if you want. > > Bruce > > > > > On Wed, 6 Oct 2021 at 11:12, Ross Burton wrote: > > > > > > On Wed, 6 Oct 2021 at 11:10, Ross Burton wrote: > > > > This depends on CONFIG_GCC_PLUGINS which I don't believe is enabled in > > > > any of the default configurations. meta-arm builds a few kernels with > > > > defconfig, which does. > > > > > > Sorry, brain still not warmed up yet. > > > > > > CONFIG_GCC_PLUGINS needs to be enabled, but the real difference is > > > that using the normal GCC pulls libmpc into the sysroot via implicit > > > dependencies. If you use an external toolchain (like > > > meta-arm-toolchain) this doesn't happen, and the dependency needs to > > > be explicit. > > > > > > Ross > > > > -- > - Thou shalt not follow the NULL pointer, for chaos and madness await > thee at its end > - "Use the force Harry" - Gandalf, Star Trek II > > > -- Regards, Andrey. -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156931): https://lists.openembedded.org/g/openembedded-core/message/156931 Mute This Topic: https://lists.openembedded.org/mt/86092630/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] libcap: fix nativesdk-libcap relocate failure
./lat-sdk-poky-intel-x86-64-1.0.sh -y -d sdk-3 ... Setting it up...ERROR: could not relocate /buildarea/raid5/hjia/community/lat_github_090816/build-3/tmp/deploy/sdk/sdk-3/sysroots/x86_64-pokysdk-linux/usr/lib/libpsx.so.2.54, interp size = 93 and 134 is needed. ... Since upstream libcap applied commit [ee3b25c Support simply executing the built shared libraries.][1], it manually append interp section to shared libraries. Refer the implement of Yocto glibc[2], allocated a 4096 byte .interp section for nativesdk [1] https://git.kernel.org/pub/scm/linux/kernel/git/morgan/libcap.git/commit/?id=ee3b25c0a877fa74d1aec88f325ac45b09963c82 [2] meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch Signed-off-by: Hongxu Jia --- ...-Raise-the-size-of-arrays-containing.patch | 36 +++ meta/recipes-support/libcap/libcap_2.54.bb| 3 ++ 2 files changed, 39 insertions(+) create mode 100644 meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch diff --git a/meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch b/meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch new file mode 100644 index 00..c7bf1a8b8c --- /dev/null +++ b/meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch @@ -0,0 +1,36 @@ +From 794cebc5732908636f22a1d9843fed3ae664899a Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Thu, 14 Oct 2021 15:57:36 +0800 +Subject: [PATCH] nativesdk-libcap: Raise the size of arrays containing dl + paths + +This patch puts the dynamic loader path in the binaries, SYSTEM_DIRS strings +and lengths as well as ld.so.cache path in the dynamic loader to specific +sections in memory. The sections that contain paths have been allocated a 4096 +byte section, which is the maximum path length in linux. This will allow the +relocating script to parse the ELF binary, detect the section and easily replace +the strings in a certain path. + +Upstream-Status: Inappropriate [SDK specific] + +Signed-off-by: Hongxu Jia +--- + libcap/execable.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libcap/execable.h b/libcap/execable.h +index 0bcc5d4..6e2a080 100644 +--- a/libcap/execable.h b/libcap/execable.h +@@ -23,7 +23,7 @@ + #endif + #define __EXECABLE_H + +-const char __execable_dl_loader[] __attribute((section(".interp"))) = ++const char __execable_dl_loader[4096] __attribute((section(".interp"))) = + SHARED_LOADER ; + + static void __execable_parse_args(int *argc_p, char ***argv_p) +-- +2.27.0 + diff --git a/meta/recipes-support/libcap/libcap_2.54.bb b/meta/recipes-support/libcap/libcap_2.54.bb index 04362e7032..fe29f05483 100644 --- a/meta/recipes-support/libcap/libcap_2.54.bb +++ b/meta/recipes-support/libcap/libcap_2.54.bb @@ -13,6 +13,9 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${ file://0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch \ file://0002-tests-do-not-run-target-executables.patch \ " +SRC_URI:append:class-nativesdk = " \ + file://0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch \ + " SRC_URI[sha256sum] = "5091b24247999fd7a5e62bd9ac8bc761cda29f9baa0d1a2ca6a46f13891b4f0f" UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/"; -- 2.27.0 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#156930): https://lists.openembedded.org/g/openembedded-core/message/156930 Mute This Topic: https://lists.openembedded.org/mt/86307864/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-