summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2024-02-25oe-selftest: devtool ide-sdk autotoolsadrianf/devtool-ideAdrian Freihofer
Add test for autotools. Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
2024-02-25devtool: ide-sdk autotools supportAdrian Freihofer
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
2024-02-25devtool: ide-sdk refactor extensionsAdrian Freihofer
The functions are more complicated than helpful. Replace them with simple if clauses.
2024-02-25ccp-examples: support building with autotoolsAdrian Freihofer
Minimal support for autotools. Qemu user is not supported by autotools. Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
2024-02-25devtool: code: Provide a generic C++ configurationEnguerrand de Ribaucourt
By default, the cpptools VSCode extension will use the host's headers and flags for linting. This results in a lot of include errors and misleading definitions. Even though this generic configuration doesn't include all the depenendencies, it is a proper fallback for recipe classes we do not accurately cover, with at least the right sysroot. Additionally, ide-sdk automatically detects and provides a launch.json configuration for autotools recipes so we should recommend the C++ extensions for them. Recipes which use C/C++ without a build system are not covered by this patch. Signed-off-by: Enguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com>
2024-02-25WIP: Revert "devtool: ide-sdk improve implementation"Adrian Freihofer
2024-02-25WIP: devtool: ide-sdk improve implementationAdrian Freihofer
This commit must be replaced with an implementation calling a quick one task only mode of bitbake. Bitbake -b is very quick but ignores bbappends. This is a bug which needs to be fexied. Further an option to call only one task without the dependencies to other tasks is needed. Avoid calling the full featured mode of bitbake from the IDE. When working with the IDE, the IDE should control all the build steps for the recipe which is in the workspace. A cross development workflow usually requires the following steps: - Setup the SDK (bitbake, devtool) - configure (IDE) - compile (IDE) - run unit tests (on the host with Qemu) (IDE) - remote debuggging on the target device which includes (IDE) - do_install (IDE,pseudo) - deploying the artifacts to the target device (IDE,pseudo) - start gdbserver on the target device (IDE) - start GDB on the host device (IDE) - Update the SDK (bitbake, devtool) For the configure, compile and unit test tasks there is already full IDE integration, without any call on bitbake. But for the remote debugging part bitbake gets called which has several disadvantags: - Bitbake runs a work queue for all the tasks of the recipe. There is for example no way to run only the do_install task. Bitbake always tries to find out if a previous task needs to be executed and automatically does so. Since bitbake has no information about which step has already be executed by the IDE there is a great chance that bitbake does much more than necessary. It could also happen, that bitbake ignores chagnes done by the developer in the IDE and overules some manual steps. This can lead to a bad user experience. Therefore it is really important to delegate all the steps for the application development workflow to the IDE and use bitbake only for providing and updating the SDK. An example of this is that bitbake recompiles everything when a file listed in the CONFIGURE_FILES variable is changed. This makes no sense in the IDE context and can be extremely tedious. The complexity of resolving many dependencies is simply not part of an application development workflow. So there is no argument for invoking a powerful but heavy tool. Bitbake adds a lot of complexity that application developers usually don't want to understand or debug. As soon as Bitbake is needed for daily work, most application developers therefore have a kind of defensive attitude towards the overall solution. - Parsing all the recipes, creating tasks queues and running taks which do not have to be executed makes it very slow which is another major disadvantage. Also e.g. calling bitbake in the faster mode with the -b paramter does not help. With -b e.g. bbappends are ignored but bbappends are essential for the SDK workflow. - bitbake -T could avoid re-parsing. But it does not work as expected by an IDE user. If one IDE starts a bitbake server in mem-res mode changes on recipes are ignored by all bitbake instances started in this build folder because all bitbake clients connect to the already running server which does not parse the modified recipes anymore. Therefore a much better user experience can be achieved if all the tasks listed above are calls to a build tool such as cmake or self contained scripts which are under control of the IDE. This commit refactores to code to no longer invoke bitabke. Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
2024-02-25oe-selftest devtool: ide-sdk testsAdrian Freihofer
Improve the GDB related tests. Verify GDB finds the correct source files. Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
2024-02-25devtool: ide-sdk prefer sources from workspaceAdrian Freihofer
Improve the previous commit: - log an error if some assumptions are not true - Use TARGET_DBGSRC_DIR variable - Do the same for ide none Why the additional source mapping is required: For example the cmake-example recipe refers to sources like this: ./recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-readelf \ -wi image/usr/bin/cmake-example | grep -B1 DW_AT_comp_dir ... <560> DW_AT_name : (indirect line string, offset: 0x1da): /usr/src/debug/cmake-example/1.0/oe-local-files/cpp-example.cpp ... Another example is powertop: ./recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-readelf \ -wi image/usr/sbin/powertop | grep -B1 DW_AT_comp_dir ... <561> DW_AT_name : (indirect line string, offset: 0x1da): /usr/src/debug/powertop/2.15/src/devlist.cpp ... For recipes with local files this works. The oe-local-files folder is not available in the rootfs-dbg and therefore the sources are first found in the workspace folder. GDB searches for source files in various places: https://sourceware.org/gdb/current/onlinedocs/gdb.html/Source-Path.html However, for the powertop example the sources opened in the editor are from the rootfs-dbg instead of from the workspace. Bitbake calls the compiler with -fmacro-prefix-map=${S}=${TARGET_DBGSRC_DIR} where TARGET_DBGSRC_DIR defaults to "/usr/src/debug/${PN}/${PV}". A source map which maps the recipe specific path from TARGET_DBGSRC_DIR to the workspace fixes this. The already existing source map for /usr/src/debug applies for all other recipes. It finds the sources (read only) in the rootfs-dbg folder. Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
2024-02-25devtool: ide-sdk source mapping for vscodeEnguerrand de Ribaucourt
When launching the debug configuration, the source files from the debug rootfs were openened in the editor instead of the local workspace files. We add an exception to properly map them to the file being developed and compiled by the IDE integration. This also more closely matches what the user would expect compared to native development. This is also true for the devtool fallback mode. Signed-off-by: Enguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com>
2024-02-25devtool: ide-sdk launch.json per recipe onlyAdrian Freihofer
If multiple recipes are processed at once, the launch.json and the tasks.json of the second recipe contains also the configurations for the binaries of the first recipe. Example: devtool ide-sdk powertop cmake-example oe-selftest-image generated a launch and a tasks configuration for the cmake-example recipe which also offers debugging the powertop binary. Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
2024-02-24dev-manual: packages: need enough free spaceMichael Opdenacker
Enough free storage space is needed to apply package upgrades. (From yocto-docs rev: 6571eb02cbd5c2b96df0f279f25b63255ab7eac4) Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24dev-manual: packages: clarify shared PR service constraintMichael Opdenacker
Explicit the problems previous described as "obvious". (From yocto-docs rev: ca939f9ceebbf9b5e82bb76abf1c4d20f039d68e) Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Suggested-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24sdk-manual: extensible.rst: cover devtool ide-sdkAdrian Freihofer
Cover the new devtool ide plugin in the extensible sdk section. Many thanks to Enguerrand de Ribaucourt for his re-view and contributions. (From yocto-docs rev: d318cc41e0600ca8e18bc6789cac414ae0226a07) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24ref-manual: variables: remove PYTHON_PNKhem Raj
PYTHON_PN is on its way out, therefore it's good to remove it from documentation so its use is not promoted anymore. (From yocto-docs rev: 74180c0f6bcdeadbd6f9a69d26f733c716f420fd) Signed-off-by: Khem Raj <raj.khem@gmail.com> Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24migration-guide: add release notes for 4.3.3Lee Chee Yang
(From yocto-docs rev: 89403af3fa49ecb00dfec04ac9c490b6dc031008) Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24manuals: suppress excess use of "following" wordMichael Opdenacker
To simplify the style, replace "Following is" and "Following are" by "here is" and "here are", sounding more natural. In some cases, also go further by simplifying "Here are/is xxx" by "xxx are/is" when the "are" or "is" are not two far at the end of the sentence. In some cases too, completely remove the sentence, when it's redundant with the preceding title. (From yocto-docs rev: 52ba6bb16c73cbc2c0e77496d5226c49bce786f5) Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> CC: Daniel Ammann <daniel.ammann@bytesatwork.ch> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24ref-manual: release-process: grammar fixMichael Opdenacker
(From yocto-docs rev: e8a59c67a8719096f8b67942cec4f8a0656c410c) Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24ref-manual: system-requirements: update packages to build docsMichael Opdenacker
- "git" is now required to run "set_versions.py" - Fix Ubuntu / Debian packages. The previous instructions didn't run on Debian 12 Tested on Ubuntu 22.04 and Debian 12. Reported on https://lists.yoctoproject.org/g/docs/message/4789 (From yocto-docs rev: cd0525f1a081567d5d8722d368511179655ca541) Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Reported-by: <mhagans@skyviewsat.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24dev-manual: Rephrase spdx creationSimone Weiß
Make the options more clear by providing them in a list instead of plain prosa. Also add a ref for a presentation wrt spdx 3.0 in the Yocto project. Fixes [YOCTO 7476] (From yocto-docs rev: a15e354f98607592a67d2df91dfa2bf0707d8f38) Signed-off-by: Simone Weiß <simone.p.weiss@posteo.com> Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24cve-check: Log if CVE_STATUS set but not reported for componentSimone Weiß
Log if the CVE_STATUS is set for a CVE, but the cve is not reported for a component. This should hopefully help to clean up not needed CVE_STATUS settings. (From OE-Core rev: 013d531a84fa08b6ae8a47bdf3ba1fa8f18ba270) Signed-off-by: Simone Weiß <simone.p.weiss@posteo.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24meta: Update CVE_STATUS for incorrect cpesSimone Weiß
Set CVE_STATUS as none of the issues apply against the versions used in the recipes. (From OE-Core rev: cea8c8bf73e84133f566d1c2ca0637494f2d7afe) Signed-off-by: Simone Weiß <simone.p.weiss@posteo.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24meta: Remove some not needed CVE_STATUSSimone Weiß
CVE_STATUS was set for those components, but meanwhile databases are updated with corrected information, so setting the CVE_STATUS is not needed anymore. (From OE-Core rev: 5ec6057cfa66ceeb33bec013e320f8e3fa7d7ecf) Signed-off-by: Simone Weiß <simone.p.weiss@posteo.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24patchtest: Skip test for CVE_CHECK_IGNORE for older branchesSimone Weiß
Skip the test for checking if CVE_CHECK_IGNORE is not used. It is deprecated now, but was not deprecated for kirkstone and dunfell. Skip it therefore if a patch is intended for those branches. (From OE-Core rev: e9b04664b1b2ba6aa1fa7318e3d4174b9cdb19da) Signed-off-by: Simone Weiß <simone.p.weiss@posteo.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24patchtest: provide further guidance for failed testcasesSimone Weiß
Cross-reference the wiki page on patchtest now that it is updated and contains more information how to address failed testcases. Adding it in patchtest only is enough as patchtest-send-result already points to the wikipage for failures. (From OE-Core rev: 51267f3c5d647fc6483ce6b597ed9e25c14bd425) Signed-off-by: Simone Weiß <simone.p.weiss@posteo.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24kernel.bbclass: Set pkg-config variables for building modulesMunehisa Kamata
The pkg-config workaround has been applied for kernel image building, but not for module building. So pkg-config variables are different between do_compile and do_compile_kernelmodules tasks. It may unnecessary trigger rebuilding of a few host tools at the later task. Especially when CONFIG_DEBUG_INFO_BTF is enabled in the kernel, it may even trigger rebuilding vmlinux at do_compile_kernelmodules due to the rebuilt host tools such as certs/extract-cert or objtool (on x86). This eventually creates an inconsistent set of kernel binaries. Here is the repro steps: - Check out nanbield on x86 - The unexpected rebuild happens on kirkstone or possibly earlier - Ensure that pahole is available (e.g. via meta-oe) - Set KERNEL_DEBUG to "True" to properly set up PAHOLE e.g. $ export KERNEL_DEBUG="True" $ export BB_ENV_PASSTHROUGH_ADDITIONS="${BB_ENV_PASSTHROUGH_ADDITIONS} KERNEL_DEBUG" - Enable CONFIG_DEBUG_INFO_BTF=y e.g. $ bitbake -c menuconfig virtual/kernel -> Kernel hacking -> Compile-time checks and compiler options -> Generate BTF typeinfo - Build the kernel e.g. $ bitbake virtual/kernel The BTF information in the resulting bzImage and kernel modules are inconsistent, because the module's BTF information is generated using the "second" vmlinux that doesn't have the identical BTF to the "first" vmlinux. These modules can't be loaded at runtime due to the BTF mismatch. This also leads to a build-id mismatch between the installed bzImage and vmlinux since the bzImage is created from the first vmlinux, but the installed vmlinux is the second one. $ eu-readelf -n tmp/work/qemux86_64-poky-linux/linux-yocto/6.5.13+git/image/boot/{bzImage*,vmlinux*} | grep "Build ID" Build ID: 4a0d62ee7fef0244950f0f604253729875bea493 Build ID: fb99b3d91399dbe42bf67ddee59e0f5a0c7f74d9 To avoid the unexpected rebuilding that results in such inconsistency, set the same pkg-config variables when building kernel and modules. For kernel 5.19 and above, simply set the HOSTPKG_CONFIG in the make command line. (From OE-Core rev: cd2072e5d953af981339427028e19083257e6a92) Signed-off-by: Munehisa Kamata <kamatam@amazon.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24go: update 1.20.13 -> 1.20.14Jose Quaresma
Upgrade to latest 1.20.x release [1]: $ git log --oneline go1.20.13..go1.20.14 90a870f1dc (tag: go1.20.14, origin/release-branch.go1.20) [release-branch.go1.20] go1.20.14 a2f4a5a6e7 [release-branch.go1.20] Revert "crypto/internal/boring: upgrade module to fips-20220613" +1 746a072791 [release-branch.go1.20] crypto/x509: properly gate test on macos version d7df7f4fa0 [release-branch.go1.20] runtime: properly model rwmutex in lock ranking $ git log --oneline go1.20.13..go1.20.14 [1] https://github.com/golang/go/compare/go1.20.13...go1.20.14 (From OE-Core rev: 44f81b6239f0f08877ccd6507c2a81f3650f193b) Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24devtool: ide-sdk python 3.12 escapingAdrian Freihofer
scripts/lib/devtool/ide_sdk.py:709: SyntaxWarning: invalid escape sequence '\.' re_so = re.compile('.*\.so[.0-9]*$') scripts/lib/devtool/ide_plugins/__init__.py:87: SyntaxWarning: invalid escape sequence '\$' gdbserver_cmd_start += "test -f \$TEMP_DIR/pid && exit 0; " scripts/lib/devtool/ide_plugins/__init__.py:88: SyntaxWarning: invalid escape sequence '\$' gdbserver_cmd_start += "mkdir -p \$TEMP_DIR; " scripts/lib/devtool/ide_plugins/__init__.py:89: SyntaxWarning: invalid escape sequence '\$' gdbserver_cmd_start += "%s --multi :%s > \$TEMP_DIR/log 2>&1 & " % ( scripts/lib/devtool/ide_plugins/__init__.py:91: SyntaxWarning: invalid escape sequence '\$' gdbserver_cmd_start += "echo \$! > \$TEMP_DIR/pid;" scripts/lib/devtool/ide_plugins/__init__.py:94: SyntaxWarning: invalid escape sequence '\$' gdbserver_cmd_stop += "test -f \$TEMP_DIR/pid && kill \$(cat \$TEMP_DIR/pid); " scripts/lib/devtool/ide_plugins/__init__.py:95: SyntaxWarning: invalid escape sequence '\$' gdbserver_cmd_stop += "rm -rf \$TEMP_DIR; " (From OE-Core rev: e8c64921de7206bf617fc42433286867ae3c931d) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24bluez5: remove configuration files from install taskEmil Kronborg
Since be0e796299b0 ("build: ship all config files with --enable-datafiles") in bluez, installing input.conf and network.conf has been redundant, as the bluez5 recipe already includes --enable-datafiles. (From OE-Core rev: 49391fdcf71b32c5fd3c7b134c1d1c45cc1db388) Signed-off-by: Emil Kronborg <emil.kronborg@protonmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24bind: Upgrade 9.18.21 -> 9.18.24Soumya Sambu
Changelog: ========= 9.18.24: - Fix case insensitive setting for isc_ht hashtable. [GL #4568] 9.18.23: - Specific DNS answers could cause a denial-of-service condition due to DNS validation taking a long time. (CVE-2023-50387) [GL #4424] - Change 6315 inadvertently introduced regressions that could cause named to crash. [GL #4234] - Under some circumstances, the DoT code in client mode could process more than one message at a time when that was not expected. That has been fixed. [GL #4487] 9.18.22: - Limit isc_task_send() overhead for RBTDB tree pruning. [GL #4383] - Restore DNS64 state when handling a serve-stale timeout. (CVE-2023-5679) [GL #4334] - Specific queries could trigger an assertion check with nxdomain-redirect enabled. (CVE-2023-5517) [GL #4281] - Speed up parsing of DNS messages with many different names. (CVE-2023-4408) [GL #4234] - Address race conditions in dns_tsigkey_find(). [GL #4182] - Conversion from NSEC3 signed to NSEC signed could temporarily put the zone into a state where it was treated as unsigned until the NSEC chain was built. Additionally conversion from one set of NSEC3 parameters to another could also temporarily put the zone into a state where it was treated as unsigned until the new NSEC3 chain was built. [GL #1794] [GL #4495] - Memory leak in zone.c:sign_zone. When named signed a zone it could leak dst_keys due to a misplaced 'continue'. [GL #4488] - Log more details about the cause of "not exact" errors. [GL #4500] - The wrong time was being used to determine what RRSIGs where to be generated when dnssec-policy was in use. [GL #4494] - The "trust-anchor-telemetry" statement is no longer marked as experimental. This silences a relevant log message that was emitted even when the feature was explicitly disabled. [GL #4497] - Fix statistics export to use full 64 bit signed numbers instead of truncating values to unsigned 32 bits. [GL #4467] - NetBSD has added 'hmac' to libc which collides with our use of 'hmac'. [GL #4478] (From OE-Core rev: d7f31aba343948dbaadafc8c0c66f78e6ffb46e3) Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24wic: allow imager-specific filename extensionsTrevor Woerner
Currently there is only one defined imager as part of oe-core's wic implementation: 'direct'. However, having a highly plugin-based design, wic allows users to define their own imagers (and sources). Therefore don't hard-code the filename extension of the imager output to be 'direct' (i.e. the default imager). Allow the extension to follow the name of the imager being used. A user can specify a custom imager via the WIC_CREATE_EXTRA_ARGS variable. If the user does not specify an imager, then 'direct' is assumed. (From OE-Core rev: dc5a7c76761ed47e0456228956de900d806063bb) Signed-off-by: Trevor Woerner <twoerner@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24glibc-locale: add an explicit dedicated package for locale.alias fileJonathan GUILLOT
Until now, ${datadir}/locale/locale.alias file were automatically added to a weird glibc-locale-locale.alias package by split_locales() during do_package task. Create an explicit package name in recipe for this file. (From OE-Core rev: 405c5b6f04b531c968d0f8348c2dafe363011898) Signed-off-by: Jonathan GUILLOT <jonathan@joggee.fr> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24lib/oe/package: fix LOCALE_PATHS scan to create locale packagesJonathan GUILLOT
split_locales() must only check subdirectories in paths added to LOCALE_PATHS to avoid creating weird packages based on filenames also present in paths. Without such a filter, cups recipe adding ${datadir}/cups/templates to LOCALE_PATHS creates the following incorrect packages: - cups-locale-add-class.tmpl - cups-locale-add-printer.tmpl - cups-locale-admin.tmpl (From OE-Core rev: ba3aee0d516bd066829d6edaa8d7bacdd75dd6ef) Signed-off-by: Jonathan GUILLOT <jonathan@joggee.fr> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24selftest-users: Convoluted selftest for USERADD_DEPENDSEilís 'pidge' Ní Fhlannagáin
This adds a test for 13904's fix by creating a convoluted set of recipes with USERADD_DEPENDS in non-alpha order. (From OE-Core rev: bfff81195cb9ba2493e366022470b2e0051d8071) Signed-off-by: Eilís 'pidge' Ní Fhlannagáin <pidge@baylibre.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-24useradd.bbclass: Fix order of postinst-useradd-*Piotr Łobacz
postinst-useradd-* haven't been running in order of dependency. This patch is reworked from Piotr Łobacz's patch and fixes: https://bugzilla.yoctoproject.org/show_bug.cgi?id=15084 https://bugzilla.yoctoproject.org/show_bug.cgi?id=13904 basepasswd_sysroot_postinst in base-passwd can install postinst-useradd-* scripts with any order. Sometimes this means, for example a useradd postinst will attempt to run without the corresponding group postinst causing errors. This patch ensures that we first run groupadd, then useradd and then group membership. [RP: Tweaked to avoid removing previous fixes and for whitespace/style issues Also ensure the scripts are changed to execute with -e to highlight errors] (From OE-Core rev: 322ef726132a47d977d2c6ee41de5358f1e85994) Signed-off-by: Eilís 'pidge' Ní Fhlannagáin <pidge@baylibre.com> Signed-off-by: Piotr Łobacz <p.lobacz@welotec.com> Signed-off-by: Jan Górski <j.gorski@welotec.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-23bitbake: fetch2: Ensure that git LFS objects are availablePhilip Lorenz
The current implementation only performs a git lfs fetch alongside of a regular git fetch. This causes issues when the downloaded revision is already part of the fetched repository (e.g. because of moving back in history or the updated revision already being part of the repository at the time of the initial clone). Fix this by explicitly checking whether the required LFS objects are available in the downloade directory before confirming that a downloaded repository is up-to-date. This issue previously went unnoticed as git lfs would silently fetch the missing objects during the `unpack` task. With network isolation turned on, this no longer works, and unpacking fails. (Bitbake rev: cfae1556bf671acec119a6c8bbc4b667a856b9ae) Signed-off-by: Philip Lorenz <philip.lorenz@bmw.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-23bitbake: bitbake: progressbar: accept value over initial maxvalEnguerrand de Ribaucourt
There is a very rare case where the maxval is improperly computed initially for cache loading progress, and the value will go over. Explanation from bitbake/lib/bb/cache.py:736 in MulticonfigCache:__init__:progress() # we might have calculated incorrect total size because a file # might've been written out just after we checked its size In that case, progressbar will receive a value over the initial maxval. This results in a ValueError stack trace as well as bitbake returning 1. Traceback (most recent call last): File ".../poky/bitbake/lib/bb/ui/knotty.py", line 736, in main cacheprogress.update(event.current) File ".../poky/bitbake/lib/progressbar/progressbar.py", line 256, in update raise ValueError('Value out of range') ValueError: Value out of range This fix mirrors the behavior of MulticonfigCache and accepts the new value as the new maxval. This is also what the percentage printout is doing in bitbake/lib/progressbar/progressbar.py:191 in ProgressBar:percentage() I encountered this issue randomly while working on a project with VSCode saving files while commands where fired. Note: This file is a fork from python-progressbar. It hasn't been refreshed in 8 years. We did only two commits, 5 years ago with minor modifications. This new change is also not how the upstream project is behaving. (Bitbake rev: 7cea7f7a87da041fc1ad370c5c3d15aabad3a0d4) Signed-off-by: Enguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-23bitbake: runqueue: Add support for BB_LOADFACTOR_MAXRichard Purdie
Some ditros don't enable /proc/pressure and it tends to be those which we see bitbake timeout issues on, seemingly as load gets too high and the bitbake processes don't get scheduled in for minutes at a time. Add support for stopping running extra tasks if the system load average goes above a certain threshold by setting BB_LOADFACTOR_MAX. The value used is scaled by CPU number, so a value of 1 would be when the load average equals the number of cpu cores of the system, under one only starts tasks when the load average is below the number of cores. This means you can centrally set a value such as 1.5 which will then scale correctly to different sized machines with differing numbers of CPUs. The pressure regulation is probably more accurate and responsive, however our graphs do show singificant load spikes on some workers and this patch is aimed at trying to avoid those. Pressure regulation is used where available in preference to this load factor regulation when both are set. (Bitbake rev: 14a27306f6dceb4999c2804ccae5a09cc3d8dd49) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-23bitbake: hashserv: Re-enable connection pooling with psycopg 3 driverTobias Hagelborn
Re-enable connection pooling in case `postgresql+psygopg` driver is used. Async connection pooling is supported in psycopg 3 [psycopg] driver in SQLAlchemy. Allow the connection pool to grow to arbitrary size. (Bitbake rev: 4fe05513b5314c201725e3f8ad54f58d70c56258) Signed-off-by: Tobias Hagelborn <tobiasha@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-23base-files: add usage warning to motdRoss Burton
The Poky distro is explicitly a _reference_ distribution for _testing_ and _development_ purposes. It enables most hardware and software features so that they can be tested, but this also means that from a security point of view the attack surface is very large. We encourage anyone using OpenEmbedded for production use to create their own distribution and not use Poky. To encourage this behaviour further, add a warning to /etc/motd when Poky is used so the developer will see it when they log in. (From meta-yocto rev: 2e0cec1e9d97f78ba015da8812fd1888c47debcb) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-23recipetool: Fix errors with meta-poky bbappendRichard Purdie
When a new base-files bbappend was added to meta-poky, it causes selftest failures. Whilst this isn't ideal, workaround that issue for now since the append is being added for security visibility and changing the tests to support this more generically looks invasive. (From OE-Core rev: 7cf85204f0943bf741ffce5c4105340197c714df) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-23creategroup*: Remove coreutils-native as a DEPENDSEilís 'pidge' Ní Fhlannagáin
There isn't any reason for coreutils-native as a DEPENDS, so remove it to speed up tests. (From OE-Core rev: 1aa91868094e8d4e3991cd3faebc17fdf6931907) Signed-off-by: Eilís 'pidge' Ní Fhlannagáin <pidge@baylibre.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-23Revert "meson: use absolute cross-compiler paths"Enguerrand de Ribaucourt
This reverts commit fc8e5d7c13f62e987b76971116cf290fd01a0c8f. We need to use the absolute path to the compiler so that the VSCode configuration generated by devtool ide-sdk could lint meson projects. A feature was just added to vscode-cpptools to support conveying the compilerPath in addition to the compile_commands.json. The next commits adds the necessary configuration. We can revert this one and keep the meson paths as they were. (From OE-Core rev: 9c2faa835bd7af3e6f6bd7cc08495bd4b3ca9d0b) Signed-off-by: Enguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-23devtool: ide: define compilerPath for meson projectsEnguerrand de Ribaucourt
The compile_commands.json file output by meson uses the compiler as if present in the $PATH. However, when using an IDE, the $PATH used by bitbake is not there. The vscode-cpptools now allows to define the compilerPath in addition to replace the one from compile_commands.json. (From OE-Core rev: d9f5c27c8beee07c7cbbed11f5d45058e7315846) Signed-off-by: Enguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-23linux-yocto: Remove unused patchKhem Raj
This patch remained after bumping from 6.1 to 6.6 (From OE-Core rev: 3083c9cc3c117b6284fee6926da2200cef509e6f) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-23oeqa/selftest/rust: Simplify the rust testsuite output gathering/processingRichard Purdie
The rust testsuite was redirecting command output to a file, which made it hard to debug failure cases since the logs were not available to print to the console. Rework the code so it uses the existing popen logging and hence allows us to improve the error logging situation and make debugging failures easier. (From OE-Core rev: ac82dc43b8151ed34c4ad51e9ab7f4a612990486) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-21systemd-systemctl: fix dead loop when multi services enable each otherXiangyu Chen
libvirt has added a feature that all sockets for a service being enabled when a single one of them is enabled since 9.9.x[1], it likes serviceA enable serviceB, serviceB enable serviceA, that cause our systemctl script trap into a dead loop in postinstall stage, the error message as below: Traceback (most recent call last): File "/usr/lib/python3.8/pathlib.py", line 722, in __str__ return self._str AttributeError: _str During handling of the above exception, another exception occurred: Traceback (most recent call last): File "recipe-sysroot-native/usr/bin/systemctl", line 255, in enable SystemdUnit(self.root, also).enable(unit) File "recipe-sysroot-native/usr/bin/systemctl", line 255, in enable SystemdUnit(self.root, also).enable(unit) File "recipe-sysroot-native/usr/bin/systemctl", line 255, in enable SystemdUnit(self.root, also).enable(unit) [Previous line repeated 988 more times] ...... RecursionError: maximum recursion depth exceeded while calling a Python object Here using an array to record the services which has been enabled to filter the duplicates. Ref: [1] https://github.com/libvirt/libvirt/commit/826931e95a38af8322f8ad069dc89117c6404a00 (From OE-Core rev: 4c45f975310184a773b25b8e7d7ef50fba2f7bd6) Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-21ncurses: Always pass -D_GNU_SOURCEKhem Raj
So far it was assumed that it was detected ok for target recipe but actually it ends up with warnings and build moves on, however with gcc-14 these warnings are treated as errors and we see the problem even with target recipes. (From OE-Core rev: da381fb3d9dcd0e66bc3b48bdfde95cd29f0c654) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-21qemuboot: predictable network interface namesJoe Slater
Allow interface renaming if 'pni-names' is a distro feature. We do not add QB_NO_PNI to QB_CMDLINE_IP_SLIRP because renaming was never suppressed for slirp. (From OE-Core rev: d8d92ad46273a4e305f690f2820a475e4d7f6701) Signed-off-by: Joe Slater <joe.slater@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-21dbus: disable assertions and enable only modular testsAlexander Kanavin
There was a report that enabling assertions and all tests results in notices in log.do_configure: NOTE: building with unit tests increases the size of the installed library and renders it insecure. NOTE: building with assertions increases library size and decreases performance. This was overlooked when dbus and dbus-tests recipes were merged; enabling all tests and assertions still requires a special, separate build of dbus. If those tests are useful this could be revisited. Until then, we should use productions settings for the main recipe. Buildhistory-diff: packages/core2-64-poky-linux/dbus/dbus-dbg: PKGSIZE changed from 9958176 to 8627824 (-13%) packages/core2-64-poky-linux/dbus/dbus-lib: PKGSIZE changed from 544347 to 346339 (-36%) packages/core2-64-poky-linux/dbus/dbus-ptest: PKGSIZE changed from 3524983 to 3116951 (-12%) packages/core2-64-poky-linux/dbus/dbus-ptest: FILELIST: removed "/usr/share/installed-tests/dbus/test-dbus-launch-eval.sh_with_config.test /usr/share/installed-tests/dbus/test-counter_with_config.test /usr/libexec/installed-tests/dbus/test-dbus-launch-eval.sh /usr/libexec/installed-tests/dbus/test-dbus-launch-x11.sh /usr/share/installed-tests/dbus/test-counter.test /usr/libexec/installed-tests/dbus/test-counter /usr/share/installed-tests/dbus/test-dbus-launch-x11.sh.test /usr/share/installed-tests/dbus/test-dbus-launch-x11.sh_with_config.test /usr/share/installed-tests/dbus/test-dbus-launch-eval.sh.test" packages/core2-64-poky-linux/dbus/dbus: PKGSIZE changed from 510939 to 350331 (-31%) (From OE-Core rev: 054ce01ae84eb10e055a41ec8dd85ebce9ea23c8) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>