summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2024-07-12u-boot.inc: don't replace the binary with symlinkjansa/artifactsMartin Jansa
* when UBOOT_ARTIFACT_NAME and UBOOT_ARTIFACT_LINK_NAME are empty the UBOOT_BINARYNAME and UBOOT_IMAGE might be indentical and the binary gets overwritten by the symlink to itself (similarly for SPL_*) $ ls -lah /OE/build/poky/build/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2023.10/package/boot total 8.0K drwxr-xr-x 2 martin martin 4.0K Nov 21 21:23 . drwxr-xr-x 4 martin martin 4.0K Nov 21 21:23 .. lrwxrwxrwx 1 martin martin 3 Nov 21 21:23 MLO -> MLO lrwxrwxrwx 1 martin martin 10 Nov 21 21:23 u-boot.bin -> u-boot.bin * which causes: ERROR: u-boot-1_2023.10-r0 do_package: Error executing a python function in exec_func_python() autogenerated: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_func_python() autogenerated', lineno: 2, function: <module> 0001: *** 0002:do_package(d) 0003: File: '/OE/build/poky/meta/classes-global/package.bbclass', lineno: 536, function: do_package 0532: bb.build.exec_func("package_prepare_pkgdata", d) 0533: bb.build.exec_func("perform_packagecopy", d) 0534: for f in (d.getVar('PACKAGE_PREPROCESS_FUNCS') or '').split(): 0535: bb.build.exec_func(f, d) *** 0536: oe.package.process_split_and_strip_files(d) 0537: oe.package.fixup_perms(d) 0538: 0539: ########################################################################### 0540: # Split up PKGD into PKGDEST File: '/OE/build/poky/meta/lib/oe/package.py', lineno: 1073, function: process_split_and_strip_files 1069: staticlibs.append(file) 1070: continue 1071: 1072: try: *** 1073: ltarget = cpath.realpath(file, dvar, False) 1074: s = cpath.lstat(ltarget) 1075: except OSError as e: 1076: (err, strerror) = e.args 1077: if err != errno.ENOENT: File: '/OE/build/poky/meta/lib/oe/cachedpath.py', lineno: 231, function: realpath 0227: if e.errno == errno.ELOOP: 0228: # make ELOOP more readable; without catching it, there will 0229: # be printed a backtrace with 100s of OSError exceptions 0230: # else *** 0231: raise OSError(errno.ELOOP, 0232: "too much recursions while resolving '%s'; loop in '%s'" % 0233: (file, e.strerror)) 0234: 0235: raise Exception: OSError: [Errno 40] too much recursions while resolving '/OE/build/poky/build/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2023.10/package/boot/MLO'; loop in '/OE/build/poky/build/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2023.10/package/boot/MLO' ERROR: Logfile of failure stored in: /OE/build/poky/build/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2023.10/temp/log.do_package.3990391 [YOCTO #12937] Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-07-12populate_sdk_ext.bbclass: add *:do_shared_workdir to ↵Martin Jansa
BB_SETSCENE_ENFORCE_IGNORE_TASKS * otherwise populate_sdk_ext task will fail as shown e.g. with: bitbake core-image-minimal -c populate_sdk_ext esdk.oeSDKExtSelfTest.test_image_generation_binary_feeds esdk.oeSDKExtSelfTest.test_install_libraries_headers: ERROR: Task linux-yocto.do_deploy_links attempted to execute unexpectedly Task tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/sdk-ext/image/tmp-renamed-sdk/layers/poky/meta/recipes-core/images/core-image-minimal.bb:do_image_qa, unihash 9d177d4c6ca34e68e19b1bc23deec58c3eabe5f9d5808f90402161163a73f22f, taskhash 9d177d4c6ca34e68e19b1bc23deec58c3eabe5f9d5808f90402161163a73f22f Task tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/sdk-ext/image/tmp-renamed-sdk/layers/poky/meta/recipes-core/images/core-image-minimal.bb:do_image_complete, unihash 0aff4dcbdb3c5ca68e0ebb39457fbe86beb3482986ddfe0b0b6fc0386807edbf, taskhash 0aff4dcbdb3c5ca68e0ebb39457fbe86beb3482986ddfe0b0b6fc0386807edbf This is usually due to missing setscene tasks. Those missing in this build were: {'tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/sdk-ext/image/tmp-renamed-sdk/layers/poky/meta/recipes-core/images/core-image-minimal.bb:do_image_complete', 'tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/sdk-ext/image/tmp-renamed-sdk/layers/poky/meta/recipes-core/images/core-image-minimal.bb:do_image_qa'} ERROR: Task (tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/sdk-ext/image/tmp-renamed-sdk/layers/poky/meta/recipes-kernel/linux/linux-yocto_6.5.bb:do_deploy_links) failed with exit code 'setscene ignore_tasks' NOTE: Tasks Summary: Attempted 4975 tasks of which 4971 didn't need to be rerun and 1 failed. Summary: 1 task failed: tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/sdk-ext/image/tmp-renamed-sdk/layers/poky/meta/recipes-kernel/linux/linux-yocto_6.5.bb:do_deploy_links Summary: There was 1 WARNING message. Summary: There was 1 ERROR message, returning a non-zero exit code. ERROR: Logfile of failure stored in: tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/temp/log.do_populate_sdk_ext.2280835 NOTE: recipe core-image-minimal-1.0-r0: task do_populate_sdk_ext: Failed ERROR: Task (/OE/build/poky/meta/recipes-core/images/core-image-minimal.bb:do_populate_sdk_ext) failed with exit code '1' NOTE: Tasks Summary: Attempted 6211 tasks of which 6147 didn't need to be rerun and 1 failed. Summary: 1 task failed: /OE/build/poky/meta/recipes-core/images/core-image-minimal.bb:do_populate_sdk_ext Summary: There was 1 ERROR message, returning a non-zero exit code. [YOCTO #12937] Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-07-12image.bbclass: remove hardlinks as wellMartin Jansa
* it was removing only destination symlinks, but sometimes hardlink might be regenerated as well, e.g. in oeqa test wic.Wic.test_permissions which was failing with: NOTE: recipe core-image-minimal-1.0-r0: task do_image_wic: Started ERROR: core-image-minimal-1.0-r0 do_image_wic: Error executing a python function in exec_func_python() autogenerated: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_func_python() autogenerated', lineno: 2, function: <module> 0001: *** 0002:create_hardlinks(d) 0003: File: '/OE/build/poky/meta/classes-recipe/image.bbclass', lineno: 606, function: create_hardlinks 0602: if os.path.exists(src): 0603: bb.note("Creating hardlink: %s -> %s" % (dst, src)) 0604: if os.path.islink(dst): 0605: os.remove(dst) *** 0606: os.link(src, dst) 0607: else: 0608: bb.note("Skipping hardlink, source does not exist: %s -> %s" % (dst, src)) 0609:} 0610: Exception: FileExistsError: [Errno 17] File exists: 'tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/deploy-core-image-minimal-image-complete/core-image-minimal-qemux86-64.rootfs.wic' -> 'tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0/deploy-core-image-minimal-image-complete/core-image-minimal-qemux86-64.rootfs--1.0-r0-20110405230000.wic' [YOCTO #12937] Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-07-12selftest: multiconfig-image-packager: use IMAGE_NAME instead of IMAGE_LINK_NAMEMartin Jansa
* the IMAGE_LINK_NAME now contains PKGV, PKGR in the filename, but the multiconfig-image-packager and MC_DEPLOY_IMAGE_BASENAME (e.g. core-image-minimal) has different PKGV value causing: | DEBUG: Executing shell function do_install | install: cannot stat 'tmp-mc-musl/deploy/images/qemux86-64/core-image-minimal-qemux86-64.rootfs--0.1-r0-20110405230000.ext4': No such file or directory ... | install: cannot stat 'tmp-mc-tiny/deploy/images/qemux86/core-image-minimal-qemux86.rootfs--0.1-r0-20110405230000.cpio.gz': No such file or directory because the actual filenames are: tmp-mc-musl/deploy/images/qemux86-64/core-image-minimal-qemux86-64.rootfs--1.0-r0-20110405230000.ext4 tmp-mc-tiny/deploy/images/qemux86/core-image-minimal-qemux86.rootfs--1.0-r0-20110405230000.ext4 [YOCTO #12937] Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-07-12oeqa: fitimage: respect KERNEL_FIT_NAMEMartin Jansa
* avoid couple of get_bb_var calls and use get_bb_vars instead * use KERNEL_FIT_LINK_NAME instead of assuming it's MACHINE as e.g.: machine = get_bb_var('MACHINE') fitimage_its_path = os.path.join(deploy_dir_image, "fitImage-its-%s-%s-%s" % (image_type, machine, machine)) * be aware that KERNEL_FIT_LINK_NAME can still be set to empty and then this oeqa check would fail again, because this hardlink: ln -vf $deployDir/fitImage-its-${INITRAMFS_IMAGE_NAME}${KERNEL_FIT_NAME}.its "$deployDir/fitImage-its-${INITRAMFS_IMAGE_NAME}${KERNEL_FIT_LINK_NAME}" wouldn't be created and also with KERNEL_FIT_LINK_NAME the PKGV in kernel recipe looks differently in the final kernel artifact and KERNEL_FIT_LINK_NAME e.g.: AssertionError: False is not true: tmp/deploy/images/beaglebone-yocto/fitImage-its-core-image-minimal-initramfs-beaglebone-yocto-beaglebone-yocto--6.1.20+git-r0-20230318024804 image tree source doesn't exist because it's actually named with SRCPV expanded: tmp/deploy/images/beaglebone-yocto/fitImage-its-core-image-minimal-initramfs-beaglebone-yocto-beaglebone-yocto--6.1.20+git0+29ec3dc6f4_423e199669-r0-20230318024804 Use KERNEL_FIT_NAME instead of KERNEL_FIT_LINK_NAME but then we would need to add .its extension to expected filenames as well, but in previous commit I've added KERNEL_FIT_ITS_EXT variable and used it for links as well. But this doesn't apply for u-boot-its* files which don't use any extension. [YOCTO #12937] Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-07-12oeqa: gdbserver: append -dbg suffix at the end of IMAGE_NAME not IMAGE_LINK_NAMEMartin Jansa
* the filename is constructed as: meta/classes-recipe/image.bbclass: d.appendVar('IMAGE_NAME','-dbg') and IMAGE_LINK_NAME adds ${IMAGE_VERSION_SUFFIX} _after_ this [YOCTO #12937] Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-07-12oeqa: imagefeatures: append -dbg suffix at the end of IMAGE_NAME not ↵Martin Jansa
IMAGE_LINK_NAME * the filename is constructed as: meta/classes-recipe/image.bbclass: d.appendVar('IMAGE_NAME','-dbg') and IMAGE_LINK_NAME adds ${IMAGE_VERSION_SUFFIX} _after_ this [YOCTO #12937] Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-07-12image.bbclass: don't append -dbg suffix twiceMartin Jansa
* now with IMAGE_LINK_NAME defined based on IMAGE_NAME we don't want to append -dbg to IMAGE_NAME and then again to IMAGE_LINK_NAME * this resulted in filename like: core-image-minimal-qemux86-64.rootfs-dbg--1.0-r0-20110405230000-dbg.tar.bz2 [YOCTO #12937] Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-07-12linux-dummy: add do_deploy_links taskMartin Jansa
* fixes containerimage.ContainerImageTests.test_expected_files oeqa test failing with: Initialising tasks...ERROR: Task do_build in /OE/build/poky/build-st/meta-selftest/recipes-test/container-image/container-test-image.bb depends upon non-existent task do_deploy_links in /OE/build/poky/meta/recipes-kernel/linux/linux-dummy.bb [YOCTO #12937] Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-07-12oeqa: wic: use just isfile() instead of islink()Martin Jansa
* with [YOCTO #12937] changes the manifest is hardlink not symlink * fixes: 2023-11-18 23:48:55,695 - oe-selftest - INFO - ... FAIL 2023-11-18 23:48:55,696 - oe-selftest - INFO - Traceback (most recent call last): File "/OE/build/poky/meta/lib/oeqa/core/decorator/__init__.py", line 35, in wrapped_f return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/OE/build/poky/meta/lib/oeqa/selftest/cases/wic.py", line 836, in test_wic_image_type self.assertTrue(os.path.islink(path), msg="Link %s wasn't generated as expected" % path) AssertionError: False is not true : Link tmp/deploy/images/qemux86-64/wic-image-minimal-qemux86-64.rootfs--1.0-r0-20110405230000.wic wasn't generated as expected
2024-07-12oeqa: bbtests.BitbakeTests.test_image_manifest: use just isfile() instead of ↵Martin Jansa
islink() * with [YOCTO #12937] changes the manifest is hardlink not symlink * fixes: 2023-11-16 00:16:33,967 - oe-selftest - INFO - test_image_manifest (bbtests.BitbakeTests.test_image_manifest) 2023-11-16 00:19:05,060 - oe-selftest - INFO - ... FAIL 2023-11-16 00:19:05,060 - oe-selftest - INFO - Traceback (most recent call last): File "/OE/build/poky/meta/lib/oeqa/selftest/cases/bbtests.py", line 139, in test_image_manifest self.assertTrue(os.path.islink(manifest), msg="No manifest file created for image. It should have been created in %s" % manifest) AssertionError: False is not true : No manifest file created for image. It should have been created in /OE/build/poky/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.rootfs--1.0-r0-20110405230000.manifest [YOCTO #12937] Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-07-12image-artifact-names.bbclass: add IMAGE_VERSION_SUFFIX_DATETIME which uses ↵Martin Jansa
SOURCE_DATE_EPOCH * since https://git.openembedded.org/openembedded-core/diff/meta/classes/image-artifact-names.bbclass?id=abb0671d2cebfd7e8df94796404bbe9c7f961058 which removed the bb.data.inherits_class('reproducible_build', d) condition this was already applied in all the builds which used DATETIME, so we can move it to the default value directly and DISTRO configs than can choose to use IMAGE_VERSION_SUFFIX_DATETIME as they want [YOCTO #12937] Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-07-12image.bbclass: rename create_symlinks to create_hardlinksMartin Jansa
* to make it more clear what this postfunc does now [YOCTO #12937] Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-07-12uboot: use ${IMAGE_MACHINE_SUFFIX} instead of -${MACHINE} and use hardlinksMartin Jansa
* rename variables to match the conventions used in kernel and image recipes * use versioned hardlinks as kernel and image recipes, but don't split the do_deploy_links task (can be split later). [YOCTO #12937] Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-07-12kernel-fitimage.bbclass: add .its extension also to linksMartin Jansa
* for consistency with the names [YOCTO #12937]
2024-07-12kernel-fitimage.bbclass: avoid duplicate .bin extensionMartin Jansa
* the linux.bin was deployed as: fitImage-linux.bin${KERNEL_FIT_NAME}${KERNEL_FIT_BIN_EXT} where KERNEL_FIT_BIN_EXT is the 2nd ".bin" * add the${KERNEL_FIT_BIN_EXT} also to corresponding links: fitImage-linux${KERNEL_FIT_LINK_NAME}${KERNEL_FIT_BIN_EXT} [YOCTO #12937] Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-07-12kernel: move the leading dash into KERNEL_ARTIFACT_NAMEMartin Jansa
* this matches how IMAGE_MACHINE_SUFFIX works and we can use that for the default value * allows to set IMAGE_MACHINE_SUFFIX to empty for people who prefer to keep MACHINE name only in the directory name otherwise there would be a stray dash in: lrwxrwxrwx 2 martin martin 12 Nov 18 13:25 bzImage -> bzImage-.bin -rw-r--r-- 2 martin martin 12M Nov 18 13:25 bzImage-.bin -rw-r--r-- 2 martin martin 182M Nov 18 13:25 modules-.tgz if you set KERNEL_ARTIFACT_NAME = "" [YOCTO #12937] Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-07-12image, kernel: allow to disable creating the hardlinks by setting *LINK_NAME ↵Martin Jansa
variables to empty * they can be disabled individually by setting *_LINK_NAME to empty or disable them all by setting IMAGE_VERSION_SUFFIX to empty (making them equal to *_NAME variables) There are couple *_LINK_NAME variables: IMAGE_LINK_NAME = "" KERNEL_IMAGE_LINK_NAME = "" KERNEL_DTB_LINK_NAME = "" KERNEL_FIT_LINK_NAME = "" MODULE_TARBALL_LINK_NAME = "" INITRAMFS_LINK_NAME = "" or IMAGE_MACHINE_SUFFIX = "" IMAGE_NAME_SUFFIX = "" IMAGE_VERSION_SUFFIX = "" to have really the minimal filenames: $ ls tmp/deploy/images/qemux86-64/ bzImage core-image-minimal.manifest core-image-minimal.tar.bz2 bzImage-qemux86-64.bin core-image-minimal.qemuboot.conf core-image-minimal.testdata.json core-image-minimal.ext4 core-image-minimal.spdx.tar.zst modules-qemux86-64.tgz and to remove MACHINE name from kernel artifacts as well (if you prefer the MACHINE name in directory only), you can set: KERNEL_ARTIFACT_NAME = "" [YOCTO #12937] Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-07-12create-spdx-2.2.bbclass: use hardlink as wellMartin Jansa
[YOCTO #12937] Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-07-12image*.bbclass, kernel*.bbclass: create version-less artifacts and versioned ↵Martin Jansa
hard links * instead of versioned artifacts and version-less symlinks * We used to create the actual artifact files with some version in the filename and then created symlink without any version which was updated to point to the latest one created. In some scenarios it's useful to create all artifacts - typically rootfs and kernel images with the same version - like release build even when the kernel itself wasn't modified since the previous release. If we include the release version in the regular _NAME variables then we'll need to re-run do_deploy and do_image which will cause kernel to be rebuilt and image to be re-created even when the only change since last build was the version number. With this change we can re-use kernel and image from sstate when nothing was changed and run only very fast do_deploy_links task which just adds another hard link to existing artifact from sstate. * This is already used by various LGE builds as do_webos_deploy_fixup() https://github.com/webosose/meta-webosose/blob/master/meta-webos/classes/webos_deploy.bbclass but injecting this task in all the right places is difficult and sometimes requires whole bbclass to be duplicated. Having simpler way of versioning artifacts directly in oe-core might be useful for others. * move IMAGE_VERSION_SUFFIX from _NAME variables to _LINK_NAME that way e.g. kernel.do_deploy can be reused from sstate to provide "version-less" artifacts and then very fast do_deploy_links task just adds links with consistent suffixes (by default the version from the recipe but could be easily set to e.g. some release name when building some products). * create hard links instead of symlinks, so that whatever version the filename says is really there * some IMAGE_FSTYPES might need the "version-less" IMAGE_NAME file to be removed first or they might either append or update the content of the image instead of creating new image file from scratch - I have seen this only with one proprietary format we generate with our own tool, so hopefully this isn't very common * this is basically the mechanism are using in webOS with WEBOS_IMAGE_NAME_SUFFIX which is for official builds set from jenkins job and then all artifacts (images as well as corresponding kernel files) have the same version string) * without this, you can still easily set the variables to contain the version from jenkins job (excluded from sstate signature like DATETIME currently is to prevent rebuilding it everytime even when the content didn't change) but then when kernel is reused from sstate you can have version 1.0 used on kernel artifacts and 2.0 on image artifacts. * if you don't exclude the version string with vardepsexclude, then you get the right version in the filenames but for cost of re-executing do_deploy every single time, which with rm_work will cause all kernel tasks to be re-executed (together with everything which depends on it like external modules etc). * the implementation "from outside" is a bit tricky as shown in webOS OSE, because first you need to reverse the meaning of IMAGE_NAME and IMAGE_LINK_NAME like here, but also replace all symlinks with hardlinks and then adjust all recipes/bbclasses to depend on our do_deploy_fixup task instead of the original do_deploy see the variable modifications: https://github.com/webosose/meta-webosose/blob/a35e81622aae1066591e44a132d01297ff478248/meta-webos/conf/distro/include/webos.inc#L65 and then various bbclasses to hook do_webos_deploy_fixup task creating the hardlinks for possible artifacts: https://github.com/webosose/meta-webosose/blob/a35e81622aae1066591e44a132d01297ff478248/meta-webos/classes/webos_deploy.bbclass https://github.com/webosose/meta-webosose/blob/a35e81622aae1066591e44a132d01297ff478248/meta-webos/classes/kernel.bbclass https://github.com/webosose/meta-webosose/blob/a35e81622aae1066591e44a132d01297ff478248/meta-webos/classes/image.bbclass so hopefully with all these changes in oe-core other project can achieve the same just by setting one variable IMAGE_VERSION_SUFFIX * drop ${PKGE}-${PKGV}-${PR} from kernel artifacts names (this is the latest build) and add it only in hardlinks created in do_deploy_links so that we can use PKGR there again (because these links are generally used only by human operators and they don't have their own TASKHASH or the IMAGE_VERSION_SUFFIX might be set to some release name which they do understand * this allows to drop package_get_auto_pr from kernel do_deploy as well, leaving only 2 EXTENDPRAUTO bumps for each kernel build (do_package and do_deploy_links, unfortunatelly these will still have different value, so if you're looking for the exact kernel image in deploy directory based on kernel image package version seen on the device the EXTENDPRAUTO part of PR will be different). [YOCTO #12937] Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2024-07-10vulkan-samples: fix do_compile error when -Og enabledChangqing Li
When debug build is enabled(-Og is used), vulkan-samples do_compile failed with error: In function 'ZSTD_compressBlock_lazy_generic', inlined from 'ZSTD_compressBlock_greedy' at TOPDIR/tmp-glibc/work/core2-32-wrs-linux/vulkan-samples/git/git/third_party/ktx/lib/basisu/zstd/zstd.c:21914:12: TOPDIR/tmp-glibc/work/core2-32-wrs-linux/vulkan-samples/git/git/third_party/ktx/lib/basisu/zstd/zstd.c:21551:30: error: inlining failed in call to 'always_inline' 'ZSTD_HcFindBestMatch_selectMLS': function not considered for inlining | FORCE_INLINE_TEMPLATE size_t ZSTD_HcFindBestMatch_selectMLS ( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TOPDIR/tmp-glibc/work/core2-32-wrs-linux/vulkan-samples/git/git/third_party/ktx/lib/basisu/zstd/zstd.c:21736:32: note: called from here | size_t const ml2 = searchMax(ms, ip, iend, &offsetFound); Refer [1], always_inline is not suggested to use with indirect function call, replace always_inline with inline to fix the issue [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107931 Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-10icu: fix make-icudata package configStefan Mueller-Klieser
The location of files changed during unpackdir transition. Adapt dirs to fix custom icu data generation. Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-10pciutils: remove textrel INSANE_SKIPChen Qi
The current pciutils does not have this textrel problem any more. Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-10testimage/postactions: Allow artifact collection to be skippedRichard Purdie
It does not always make sense to collect artifacts and data from the target on failure, e.g. if testing firmware or if the target is not running an SSH server. Allow this by setting TESTIMAGE_FAILED_QA_ARTIFACTS to an empty value. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-10hdparm: drop NO_GENERIC_LICENSE[hdparm]Martin Jansa
* the hdparm license text was added in: https://git.openembedded.org/openembedded-core/commit/?id=e9c1f48af10ccb58251ecc7e041babb99b94d6df and now the NO_GENERIC_LICENSE was causing: ERROR: hdparm-9.65-r0 do_populate_lic: QA Issue: hdparm: hdparm is a generic license, please don't use NO_GENERIC_LICENSE for it. [license-no-generic] Signed-off-by: Martin Jansa <martin.jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-10mc: fix source URLBenjamin Szőke
new URL for sources: http://ftp.midnight-commander.org/ Signed-off-by: Benjamin Szőke <egyszeregy@freemail.hu> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-09dnf/mesa: Fix missing leading whitespace with ':append'Niko Mauno
Mitigate occurrences where ':append' operator is used and leading whitespace character is obviously missing, risking inadvertent string concatenation. Signed-off-by: Niko Mauno <niko.mauno@vaisala.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-08oeqa/utils/postactions: transfer whole archive over ssh instead of doing ↵Alexis Lothoré
individual copies Fixes [YOCTO 15536] The postactions retrieval actions currently rely on scp executed individually on any file or directory expanded from TESTIMAGE_FAILED_QA_ARTIFACTS. Unfortunately, symlinks are not preserved with this mechanism, which lead to big storage space consumption. Things may go even worse if those symlinks create some circular chains. This mechanism then needs to be updated to preserve symlinks instead of following them during copy. There are multiple ways to do it: - create a local archive on the target and execute scp on this file - use rsync instead of scp for all files - create an archive and pipe it to ssh instead of storing it onto the target The first solution may create pressure on targets storage space, while the second assumes that rsync is installed on the target, which may not be true. So the third one is a compromise: tar is very likely present, at least through busybox, and no disk space is used on the target. Replace the current per-file scp call by a single call to tar run on the target. Retrieve the generated compressed archive directly from SSH output, and feed it to another tar process but on host, to uncompress and extract it at the same place as before. Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-08oeqa/ssh: allow to retrieve raw, unformatted ouputAlexis Lothoré
The ssh target is currently well tailored to easily retrieve textual output from a command run on a remote target. It could also be used to retrieve raw data from a command run onto a remote target (for example, to feed this data directly to another program), but it currently suffers two minor issues preventing such use case: - stderr is piped to stdout, so any error log will be mixed in the program output - the final output is decoded as utf-8 and stripped Allow to return the raw, unmodified output by adding an optional "raw" parameter. Keep it to False by default to preserve the current behavior. When enabled, do not return a string but the raw output as bytes. Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-08pixman: fix do_compile errorChangqing Li
When debug build is enabled(-Og is used), pixman-native do_compile failed with error: In function ‘combine_inner’, inlined from ‘combine_soft_light_ca_float’ at ../pixman-0.42.2/pixman/pixman-combine-float.c:655:1: ../pixman-0.42.2/pixman/pixman-combine-float.c:370:5: error: inlining failed in call to ‘always_inline’ ‘combine_soft_light_c’: function not considered for inlining 370 | combine_ ## name ## _c (float sa, float s, float da, float d) Refer [1], always_inline is not suggested to use with indirect function call, replace always_inline with __inline__ to fix the issue [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107931 Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-08testexport: fallback for empty IMAGE_LINK_NAMEKonrad Weihmann
if IMAGE_LINK_NAME is set empty to disable the symlinking for image artifacts in deploy, testexport fails, as the path assembly is incorrect. In that case fallback to IMAGE_NAME Signed-off-by: Konrad Weihmann <kweihmann@outlook.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-08go: upgrade 1.22.4 -> 1.22.5Jose Quaresma
- refresh patches with devtool Upgrade to latest 1.22.x release [1]: $ git --no-pager log --oneline go1.22.4..go1.22.5 8e1fdea831 (tag: go1.22.5, origin/release-branch.go1.22) [release-branch.go1.22] go1.22.5 c2d4f852ce [release-branch.go1.22] cmd/link: handle dynamic import variables on Darwin in plugin mode 3222951439 [release-branch.go1.22] net/http: send body or close connection on expect-100-continue requests ceaf26ecce [release-branch.go1.22] cmd/compile: mark pointer to noalg type as noalg dfe4dbf8c0 [release-branch.go1.22] os/exec: on Windows look for extensions in Run if not already done 3560cf0afb [release-branch.go1.22] runtime: always update stack bounds on cgocallback 5159a7193a [release-branch.go1.22] cmd/compile: put constants before variables in initialization order 11b861e459 [release-branch.go1.22] go/types, types2: report error for floating-point iteration variable 81fc616267 [release-branch.go1.22] crypto/tls: don't call tlsrsakex.IncNonDefault with FIPS 14f0251867 [release-branch.go1.22] cmd/cgo/internal/swig: force use of lld for LTO tests on the builders ab60a7bc18 [release-branch.go1.22] cmd/cgo/internal/testsanitizers: make the libfuzzer tests all short 4c97e883b5 [release-branch.go1.22] cmd/link: put runtime.end in the last section of data segment 179ccb7042 [release-branch.go1.22] cmd/go: fix go list -u -m all with too new retractions dependency fe9b3c3399 [release-branch.go1.22] net: add GODEBUG=netedns0=0 to disable sending EDNS0 header b515c5208b [release-branch.go1.22] go/internal/gccgoimporter: recognize "any" as a builtin type [1] https://github.com/golang/go/compare/go1.22.4...go1.22.5 Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-08oeqa/runtime/ssh: check for all errors at the endJon Mason
With the retry for the -SIGTERM, it is possible to still see that error after the 5th attempt and mark the run a success. Check for any non-zero status in the final check and error out to close the gap. While there, make the error print match the one above and be a little more verbose. Also, I'm seeing it take roughly 6 attempts on my local (very slow) system to pass. So, increasing the number of attempts to 10. Signed-off-by: Jon Mason <jdmason@kudzu.us> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-05abi_version/package: Bump hashequiv version and package class versionRichard Purdie
The recent pkgconfig change and subsqeuent fixes have left the hash equivalence server in a corrupted state with hashes linking the changes beofore and after the pkgconfig change, breaking reproducibile builds. Bump the appropriate version numbers to allow us to move on and avoid build failures and corrupt equivalence data now the underlying issue was fixed. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-04libinput: update 1.25.0 -> 1.26.1Markus Volk
Release notes libinput 1.26.1 is now available. A few semi-exciting things, the rest the usual bugfixes you'd expect for a point release. Touchpads now special-case Shift for disable-while-typing, so typing keys with shift down will trigger DWT. Tablets can now be calibrated if libwacom says the tablet is a display tablet. The hid-uclogic kernel driver doesn't set INPUT_PROP_DIRECT so any device handled by that driver didn't have calibration available. Fixed now, provided your tablet is recognised by libwacom. The direction of the first tablet pad relative dial was fixed, it was upside-down. Our debugging tools now support --set-pressure-range for the new tablet tool pressure range configuration added in 1.26 and --set-calibration for the calibration matrix that's been around for a while. The libinput debug-tablet tool now also supports all commandline options that debug-events and debug-gui support. And of course a varied assortment of device specific quirks and fixes. Release notes libinput 1.26.0 is now available. It's been a while since the last release but we have a few notable changes in here: Touchpads can now configure a clickfinger button map, so you can change whether two- or three-finger click means a right or middle click. See libinput_device_config_click_set_clickfinger_button_map Tablet pads now have an API for relative dials. These are typically wheel-like (e.g. Huion Inspiroy 2) or ring-like (e.g. Huion Inspiroy Dial 2) physical devices that send REL_WHEEL and REL_HWHEEL. libinput now provides these via libinput_event_tablet_pad_get_dial_delta_v120() in much the same manner as the v120-based scroll wheel API. A new configuration option for tablet tools allow reducing the available logical range. This is useful for users that want the tool to register only when some physical pressure value is reached, or to reduce the maximum amount of pressure needed to reach the logical maximum pressure. See libinput_tablet_tool_config_pressure_range_set() and friends. Tablet tools can now use BTN_STYLUS3 too and tablet pad strip support should now work for non-Wacom devices, where the kernel driver implements it. Huion tablets (well, and all vendors that use the 256C vendor id) now have a fallback resolution set. This is going to be wrong on most devices but at least it will make those tablets work out of the box, instead of failing with the "missing tablet capabilities: resolution" log message. And of course a varied assortment of device specific quirks and fixes. Signed-off-by: Markus Volk <f_l_k@t-online.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-04oeqa/selftest/reproducibile: Explicitly list virtual targetsRichard Purdie
We're seeing reproducibility failures where some packages don't appear in the "from sstate" builds. The common factor is these are all recipes with PROVIDES = "virtual/XXX". In a full build from scratch, these are build but in a build from sstate, there are situations where they aren't. For now, to try and keep builds working, work around the problem until we can better look into the problem. It is likely recent taskhash imrovements have caused this to occur more regularly. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-04openssh: fix CVE-2024-6387Jose Quaresma
sshd(8) in Portable OpenSSH versions 8.5p1 to 9.7p1 (inclusive). Race condition resulting in potential remote code execution. A race condition in sshd(8) could allow remote code execution as root on non-OpenBSD systems. This attack could be prevented by disabling the login grace timeout (LoginGraceTime=0 in sshd_config) though this makes denial-of service against sshd(8) considerably easier. For more information, please refer to the release notes [1] and the report from the Qualys Security Advisory Team [2] who discovered the bug. [1] https://www.openssh.com/txt/release-9.8 [2] https://www.qualys.com/2024/07/01/cve-2024-6387/regresshion.txt References: https://www.openssh.com/security.html Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-04oeqa/runtime/ssh: In case of failure, show exit code and handle -15 (SIGTERM)Richard Purdie
Ensure we show the failing exit code in case of failures. We're seeing autobuilder failures with -15 (SIGTERM) which is probably from slow boot/init. Retry in these cases for now. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-04qemuboot: Trigger write_qemuboot_conf task on changes of kernel image realpathWeisser, Pascal.ext
The qemuboot.conf file contains the realpath of the kernel image referenced by QB_DEFAULT_KERNEL. So, it must be recreated in case the realpath of the referenced kernel image changes. The variables KERNEL_IMAGE_NAME and KERNEL_IMAGE_BIN_EXT determine the realpath of the kernel image relative to DEPLOY_DIR_IMAGE. Adding both of them to the vardeps of the write_qemuboot_conf task triggers the write_qemuboot_conf task in case the realpath of the kernel image referenced by QB_DEFAULT_KERNEL changes. Fixes: [YOCTO 15525] Signed-off-by: "Weisser, Pascal" <pascal.weisser.ext@karlstorz.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-04less: upgrade 643 -> 661Yi Zhao
ChangeLog: https://www.greenwoodsoftware.com/less/news.661.html License-Update: Update copyright year to 2024 Add perl-module-file-basename to ptest runtime dependency. Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-04buildhistory: fix typosUlrich Ölmann
Fix some simple typos found while looking through the code. Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-04linux-libc-headers: remove redundant install_headers patchRoss Burton
This was added in the upgrade to 4.19[1] which included three patches that were taken from the series at [2]. What merged was the second iteration of this series[3] which dropped the install_headers patch, so we can drop this obsolete patch. [1] oe-core 11f02b7c6f9854eecd3a49ea47833c8cbffb1581 [2] https://lore.kernel.org/linux-arm-kernel/1544556407-19897-1-git-send-email-Dave.Martin@arm.com/ [3] https://lore.kernel.org/linux-arm-kernel/1546607391-3850-1-git-send-email-Dave.Martin@arm.com/ Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-04libsdl2: upgrade 2.30.3 -> 2.30.4Yi Zhao
ChangeLog: https://github.com/libsdl-org/SDL/releases/tag/release-2.30.4 This is a stable bugfix release, with the following changes: * Android rotation will respect user rotation lock preferences * Fixed spurious Left-Ctrl key input when the Right Alt key (AltGr) is pressed on Windows * Added support for the Saitek Cyborg V.3 Rumble Pad in PS3 mode * Added support for the Razer Kitsune in PS5 mode * Added Linux bindings for the Qanba Drone 2 Arcade Joystick * Leave Nintendo Online controllers in simple report mode so they work with DirectInput games * Enable using libusb for GameCube controllers when available Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-04qemu: Upgrade 9.0.0 -> 9.0.1Richard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-03blktrace: ask for python3 specificallySakib Sajal
python2 has been deprecated, use python3 instead. Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com> Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-03python3-docutils: fix interpreter linesKonrad Weihmann
when compiling a non native variant, latest update introduced package-qa errors like ERROR: QA Issue: .../docutils/utils/smartquotes.py contained in package nativesdk-python3-docutils requires /usr/bin/python3, but no providers found in RDEPENDS:nativesdk-python3-docutils? [file-rdeps] Fix that by patching the interpreter lines after install Signed-off-by: Konrad Weihmann <kweihmann@outlook.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-02populate_sdk_ext.bclass: make sure OECORE_NATIVE_SYSROOT is exported.Gauthier HADERER
Fixes bug 15464. OECORE_NATIVE_SYSROOT is correctly set up and exported in the SDK's environment file. But it's then unset in buildtools/environment-setup-*. The value is restored in the SDK's environment file but is not exported again. Signed-off-by: Gauthier HADERER <ghaderer@wyplay.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-02flac: fix buildpaths warningsPeter Marko
Generated documentation (html) contain absolute paths cources using buildpaths warnings. Replace them with relative links. The file with root path to sources is in my build /usr/share/doc/flac/api/dir_c122f5d6544f32779f55e8358fb78605.html which does not looks as stable name, so replace it in all files. Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-02openssh: allow configuration of hostkey typeMatthew Bullock
Allow selection of host key types used by openssh via PACKAGECONFIG. Any combination of hostkey-rsa, hostkey-ecdsa and hostkey-ed25519 can be specified. Default to just generating ecdsa keys. The current default generates all three keys. This can take a significant amount of time on first boot. Having all three keys does not significantly increase compatability. Also RSA keys are being deprecated as they are no longer considered secure. Using just an ecdsa key reduces key generation time by roughly 75%. Signed-off-by: Matthew Bullock <mbullock@thegoodpenguin.co.uk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-02oeqa/runtime/ssh: add retry logic and sleeps to allow for slower systemsJon Mason
On exceptionally slow systems, the ssh test can intermittently fail due to a race between when ping works and the networking applications being brought up. To work around this issue, add some retry logic when ssh fails to connect. According to the man page of ssh, "ssh exits with the exit status of the remote command or with 255 if an error occurred." So, only retry if the return code is 255, and limit the number of retries to prevent it looping forever. Signed-off-by: Jon Mason <jdmason@kudzu.us> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>