Commit Graph

80075 Commits

Author SHA1 Message Date
Yash Shinde
bd0535ddf8 cargo-c: fix debug symbols containing TMPDIR references
When building cargo-c with DEBUG mode, QA checks fail due to
absolute paths from the build environment (TMPDIR) being embedded into
the debug symbols/binaries. This causes issues such as:

  ERROR: do_package_qa: File /usr/bin/.debug/cargo-capi contains reference to TMPDIR [buildpaths]
  ERROR: do_package_qa: File /usr/bin/.debug/cargo-cinstall contains reference to TMPDIR [buildpaths]
  ERROR: do_package_qa: File /usr/bin/.debug/cargo-cbuild contains reference to TMPDIR [buildpaths]
  ERROR: do_package_qa: File /usr/bin/.debug/cargo-ctest contains reference to TMPDIR [buildpaths]

To fix this, pass an additional -ffile-prefix-map option to DEBUG_PREFIX_MAP to
ensure that paths under `${CARGO_HOME}` are remapped to `${TARGET_DBGSRC_DIR}`.
This ensures debug info is reproducible and does not leak host-specific paths.

(From OE-Core rev: 3239961e35434592c06ec2cae2885ab464d35744)

Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-13 18:01:03 +01:00
Ryan Eatmon
91f50b7c55 u-boot: Make sure the build dir is unique for each UBOOT_CONFIG
Each UBOOT_CONFIG entry is run in a different directory under ${B} so
that the files can be generated, compiled, and installed differently
from each other.  Currently that unique directory name was just the
defconfig used for each UBOOT_CONFIG.

One potential conflict arises when you want build the same defconfig
twice, but pass in different make options.  Then we get directory
collision.  Simple fix is to include both the defconfig name and the
UBOOT_CONFIG type in the directory name.

This change has the potential to be backwards breaking if a layer is
using the UBOOT_CONFIG flow and overriding/appending any of the do_*
shell functions.  Each of those will either need to change to using:

${B}/${config}  ->  ${B}/${config}-${type}

or for append functions they can use the new variable in the parent
function:

${B}/${config}  ->  ${B}/${builddir}

(From OE-Core rev: 22e96b32b0be02ec0971c9334d4b1df7c9ef8d84)

Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-13 18:01:03 +01:00
Randy MacLeod
4794125221 gawk: disable persistent memory allocator due to licensing
In gawk-5.2, a feature that allows gawk to preserve memory between runs:
   https://www.gnu.org/software/gawk/manual/html_node/Persistent-Memory.html
was added. The files that implement this, support/pma.[ch], are licensed
under the AGPL3 which some entities perfer to avoid. Force people to knowingly
opt into using this feature and license using:
   PACKAGECONFIG:append:pn-gawk = " pma-if-64bit"
where pma is an abbreviation for persistent memory allocator and the
"-if-64bit" suffix is a indicator to users that the feature only works
for 64 bit targets. Also add AGPL to LICENSE and LICENSE:${PN}, when using pma.

Correct the license to be AGPL-3.0-or-later. There hasn't been a change in
the license terms, at least for main.c, haven't changed significantly in
the last 15 years:

License-Update: Reflects conditional AGPL use and more as described above.

Testing requires a non-root account and following the example in the link above:
  $ truncate -s <size> data.pma
  $ chmod 0600 data.pma
  $ GAWK_PERSIST_FILE=data.pma gawk 'BEGIN { print ++i }'
  1
  $ GAWK_PERSIST_FILE=data.pma gawk 'BEGIN { print ++i }'
  2
  $ GAWK_PERSIST_FILE=data.pma gawk 'BEGIN { print ++i }'
  3

This works on qemu[x86-|arm|riscv]64 but not on qemu[arm|x86] where the
--enable-pma is ignored because there is a requirement and build-time test
for 8 byte void pointers in m4/pma.m4:
  if test "$SKIP_PERSIST_MALLOC" = no && test $ac_cv_sizeof_void_p -eq 8

Finally, remove an old comment about GPLv2, GPLv3 versions of gawk
since this is no longer important as the GPLv2 version is not maintained.

(From OE-Core rev: d7b6887dfbe2817ceb03d44a59210f65bbb25390)

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-13 18:01:03 +01:00
Peter Marko
7a43a4a82d go: upgrade 1.25.1 -> 1.25.2
Upgrade to latest 1.25.x release [1]:

$ git --no-pager log --oneline go1.25.1..go1.25.2
bed6c81c2d (tag: go1.25.2) [release-branch.go1.25] go1.25.2
2612dcfd3c [release-branch.go1.25] archive/tar: set a limit on the size of GNU sparse file 1.0 regions
90f72bd500 [release-branch.go1.25] encoding/pem: make Decode complexity linear
e0f655bf3f [release-branch.go1.25] encoding/asn1: prevent memory exhaustion when parsing using internal/saferio
100c5a6680 [release-branch.go1.25] net/http: add httpcookiemaxnum GODEBUG option to limit number of cookies parsed
f0c69db15a [release-branch.go1.25] crypto/x509: improve domain name verification
9fd3ac8a10 [release-branch.go1.25] net/url: enforce stricter parsing of bracketed IPv6 hostnames
5d7a787aa2 [release-branch.go1.25] net/textproto: avoid quadratic complexity in Reader.ReadResponse
930ce220d0 [release-branch.go1.25] crypto/x509: mitigate DoS vector when intermediate certificate contains DSA public key
6a057327cf [release-branch.go1.25] net/mail: avoid quadratic behavior in mail address parsing
66f6feaa53 [release-branch.go1.25] spec: revert "update spec date to match release date"
d6f2741248 [release-branch.go1.25] spec: update spec date to match release date
28ac8d2104 [release-branch.go1.25] net/http: avoid connCount underflow race
06993c7721 [release-branch.go1.25] context: don't return a non-nil from Err before Done is closed
0b53e410f8 [release-branch.go1.25] debug/pe: permit symbols with no name
7735dc90ed [release-branch.go1.25] cmd/compile: don't rely on loop info when there are irreducible loops
205d086595 [release-branch.go1.25] crypto/tls: quote protocols in ALPN error message
16fdaac4b1 [release-branch.go1.25] sync/atomic: correct Uintptr.Or return doc
f3dc4aac0b [release-branch.go1.25] runtime: initialise debug settings much earlier in startup process
79c3081b4b [release-branch.go1.25] internal/poll: don't call Seek for overlapped Windows handles
b816c79658 [release-branch.go1.25] lib/fips140: re-seal v1.0.0
90de3b3399 [release-branch.go1.25] crypto/internal/fips140: remove key import PCTs, make keygen PCTs fatal
bec452a3a2 [release-branch.go1.25] crypto/internal/fips140: update frozen module version to "v1.0.0"
57bd28ab7f [release-branch.go1.25] crypto/internal/fips140/ecdsa: make TestingOnlyNewDRBG generic
f75bcffa4a [release-branch.go1.25] os: set full name for Roots created with Root.OpenRoot
7d570090a9 [release-branch.go1.25] os: fix Root.MkdirAll to handle race of directory creation
be61132165 [release-branch.go1.25] cmd/compile: export to DWARF types only referenced through interfaces
a86792b169 [release-branch.go1.25] net: skip TestIPv4WriteMsgUDPAddrPort on plan9
879e3cb5f7 [release-branch.go1.25] runtime: lock mheap_.speciallock when allocating synctest specials

Fixes CVE-2025-61725, CVE-2025-58187, CVE-2025-58189, CVE-2025-61723,
      CVE-2025-47912, CVE-2025-58185, CVE-2025-58186, CVE-2025-58188,
      CVE-2025-58183 and CVE-2025-61724 [2].

[1] https://github.com/golang/go/compare/go1.25.1...go1.25.2
[2] https://groups.google.com/g/golang-announce/c/4Emdl2iQ_bI

(From OE-Core rev: b46e8fdfc23a575ee8c69c136c7815e366a7e904)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-13 18:01:03 +01:00
Peter Marko
5b2c7b9b9b go: upgrade 1.25.0 -> 1.25.1
Upgrade to latest 1.25.x release [1]:

$ git --no-pager log --oneline go1.25.0..go1.25.1
56ebf80e57 (tag: go1.25.1) [release-branch.go1.25] go1.25.1
b1959cf6f7 [release-branch.go1.25] net/http: require exact match for CrossSiteProtection bypass patterns
cdd8cf4988 [release-branch.go1.25] net: fix WriteMsgUDPAddrPort addr handling on IPv4 sockets
8995e84ac6 [release-branch.go1.25] internal/poll: set the correct file offset in FD.Seek for Windows overlapped handles
749dff880a [release-branch.go1.25] runtime: make all synctest bubble violations fatal panics
21ac81c1e1 [release-branch.go1.25] os/exec: fix incorrect expansion of ".." in LookPath on plan9
c72fcab6d6 [release-branch.go1.25] cmd/go/internal/gover: fix ModIsPrerelease for toolchain versions

Fixes CVE-2025-47910 [2].

[1] https://github.com/golang/go/compare/go1.25.0...go1.25.1
[2] https://groups.google.com/g/golang-announce/c/PtW9VW21NPs

(From OE-Core rev: 34d34fdac49e2a3035e6a1aa3d5e8d1090e91c9f)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-13 18:01:03 +01:00
Richard Purdie
b12f36c46e perf: Improve build race/reproducibulity fixes
The include options shouldn't be needed with the make fix but issues still remained.
Looking at the logs, it looks like these are from other header directories and
we need to run "make install_headers" for all of the sub components before starting
the main build.

Update the workaround to do that for each component with internal header copies.

(From OE-Core rev: 0b5f0a7b1db9f6923c027719181fa60f8fdb73e4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-13 18:01:03 +01:00
Ryan Eatmon
fd601b6168 linux-firmware: Set FILES to ""
Now that all of the current firmware has either been moved into
sub-packages or removed due to licensing the base package is now
empty. Going forward we would like to keep the base package empty
and force the version updates to bin any new firmwares into
sub-packages.

(From OE-Core rev: 9b883aa6f3cf881bfd60442b9ec193ae191b4cbe)

Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-13 18:01:03 +01:00
Ryan Eatmon
366aeb0e9a linux-firmware: Remove unlicensed firmware
Create a new REMOVE_UNLICENSED variable and do_install() logic to
allow for marking certain firmware files as something to remove and not
package up.

This comes from the fact that the WHENCE file has a number of firmware
entries that have no license information or very questionable
declarations as to what the license is for the firmware.

(From OE-Core rev: 406628a31b7d903e6545d8a1b6d0548f0874ed6d)

Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-13 18:01:03 +01:00
Ryan Eatmon
75a8d894be linux-firmware: Move all firmware into sub-packages
A lot of the firmware has already been broken out into sub-packages, but
a good number were still lingering in the base linux-firmware package.

Move all of the remaining firmware into sub-packages based on the
driver name in the WHENCE file or into existing sub-packages where a
file or two were missed.

(From OE-Core rev: c53c6a0a11afb5c6133e1751e0b35e7eb809b60b)

Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-13 18:01:03 +01:00
Peter Kjellerstedt
f55108f74d core-image.bbclass: Document two image features that were missing
This adds documentation of overlayfs-etc and
read-only-rootfs-delayed-postinsts.

(From OE-Core rev: be4882e38e9bc00c1b927982d4ef6a559f5905f7)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-13 18:01:03 +01:00
Peter Kjellerstedt
edc81a05ba core-image.bbclass: Tweak the descriptions of the image features
Some minor grammatical changes, and removal of some duplicate
information. Also note which features were previously part of the
debug-tweaks feature.

(From OE-Core rev: 377e6e7bc4be086c217f92db11f5c6101b52d88c)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-13 18:01:03 +01:00
Peter Kjellerstedt
36840ba8de core-image.bbclass: Improve the documentation of available image features
Group the features based on what they are used for, and also sort the
features within each group.

(From OE-Core rev: b670cb573a0b8015ebff5e78fe2926c843247b9b)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-13 18:01:03 +01:00
Peter Kjellerstedt
8d22ad819f core-image.bbclass: Sort the FEATURE_PACKAGES_*
This is primarily a preparation for the next commit.

(From OE-Core rev: cc70aa42c5548c2759cada8f93ca001b07f25599)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-13 18:01:03 +01:00
Adam Nilsson
a19b02074b core-image, populate_sdk_base: Add zsh-completion-pkgs image feature
Add a zsh-completion-pkgs image feature to install *-zsh-completion
packages into an image. This is similar to the existing
bash-completion-pkgs feature.

Suggested-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
(From OE-Core rev: c2d4228197ed0d0d00bb464237fa151a928eba76)

Signed-off-by: Adam Nilsson <Adam.X.Nilsson@axis.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-13 18:01:03 +01:00
Alexander Kanavin
b000409576 selftest/bblayers: fix up compatibility with integrated poky and separate layer checkouts
Specifically:

- when using integrated poky, autobuilder clones it into 'build', rather than 'poky'

- do not use a catch-all default to tweak the commit id openembedded-core, rather make it specific to that
repository.

(From OE-Core rev: 9a77dea19b0a9b07a21648e6f231d936d7387846)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-13 18:01:03 +01:00
Richard Purdie
a2b8dde6f2 oeqa/selftest/systemd_boot: Fix changing MACHINE during the test
With config fragments, changing MACHINE in the test like this no
longer works. Use the forcevarable override to allow it to work.
This also needs a tweak to bitbake to work correctly, sent
seperately. Whilst ugly, this avoids the need to start changing
config fragments.

(From meta-yocto rev: 3f56d9e3b1b30116d979a98f7cf765c26996016a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-10 10:52:08 +01:00
Richard Purdie
165e592dd2 llvm: Bump versions to resolve hashequiv/reproducibility issues
(From OE-Core rev: 3fc1fa77dae8d138c9a0bf47172d978812b593b3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-10 10:50:18 +01:00
Richard Purdie
8cf9a46970 bitbake: ast: Fix fragment behaviour with overrides
Imagine a machine fragment machine/A and a configuration which sets:

MACHINE = "B"
MACHINE:forcevariable = "C"

As I understand it, the fragment behaviour was intended to replace the
MACHINE = "B", so the override would still be active. The current code
replaces all variable overrides.

parsing=True, switches to the other behaviour, which I believe was the
design intent and the behaviour users would expect.

This is useful to allow test configurations to override a MACHINE setting
without change the fragments which would complicate the test code.

(Bitbake rev: f65bc6aaf4c11bc7e566c895209c093627a3015b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 12:48:47 +01:00
Steve Sakoman
8f3b2a4d46 oeqa/sdk/cases/autotools.py: use gnu mirror instead of main server
ftp.gnu.org is the main server of the GNU project, however download speed
can vary greatly based on one's location.

Using ftpmirror.gnu.org should redirect the request to the closest up-to-date mirror,
which should result sometimes in significantly faster download speed, depending
on one's location. This should also distribute the traffic more across the mirrors.

This information was sourced from https://www.gnu.org/prep/ftp.html

(From OE-Core rev: f3046716c9c565e6f65d5169694cd3da126cfaeb)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Steve Sakoman
b6f442ceb5 oeqa/selftest/cases/meta_ide.py: use gnu mirror instead of main server
ftp.gnu.org is the main server of the GNU project, however download speed
can vary greatly based on one's location.

Using ftpmirror.gnu.org should redirect the request to the closest up-to-date mirror,
which should result sometimes in significantly faster download speed, depending
on one's location. This should also distribute the traffic more across the mirrors.

This information was sourced from https://www.gnu.org/prep/ftp.html

(From OE-Core rev: b8cd34e56819e13fd374210cf67d6952d1f2586d)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Ryan Eatmon
66c528b9c5 u-boot: Add specifying make options as part the config looping
There is a need to generate alternative versions of the uboot files
using the existing config looping system, but we need to add additional
settings to the make call rather simply specifying a different config.
Specifically we have two use cases:

1) We want to sign the same uboot files with two different keys where
   the key will be passed on the make call.
2) We want to include the alternative defconfigs from a different
   repository and need to add the path to this new location on the make
   command line.

This introduces a fourth value for the UBOOT_CONFIG settings:

  config,images,binary,make_opts

The values are placed into a new generated variable
UBOOT_CONFIG_MAKE_OPTS which is a '?' separated list since space can be
present if you need to specify multiple options.  This is handled by
changing IFS in the shell code when looping over the variable.

Additionally, add in a new variable UBOOT_MAKE_OPTS which is added to
the make calls in the various do_compile functions that do the actual
compiling.

(From OE-Core rev: 3338330e0c46b83e33c7e982c012459c89a7ec5c)

Signed-off-by: Ryan Eatmon <reatmon@ti.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Fabio Estevam
83e523af78 u-boot: upgrade 2025.07 -> 2025.10
Upgrade to U-Boot 2025.10.

Drop all the applied patches.

(From OE-Core rev: 237d980c114842f1e5bfa96228429bbf018ea2d6)

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Mathieu Dubois-Briand
966c774603 oeqa: runtime: ssh: Manage any SSH failure locally
This is the SSH test, it makes sense to ignore SSH failures in the SSH
helper and manage them in the test body.

(From OE-Core rev: 2281fd4c10e38a3cad3050b7a21a72cc7b09e718)

Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Mathieu Dubois-Briand
0cbe95e5ae oeqa: postactions: Ignore SSH errors
Postactions are not part of the tests but allow to retrieve useful data
from the target. They try to do this using SSH, but this can fail when
no SSH server is present on the target. Ignore these fails.

(From OE-Core rev: b7b3db490f9cdf99e71f114aec9fc8ad5c1d1d56)

Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Mathieu Dubois-Briand
55f1f00d25 oeqa: runtime: Ignore SSH errors during setup and tear down
Tests using SSH will fail when no SSH server is present on the target.
These tests are disabled in these cases, by being marked with a
dependency on ssh.SSHTest.test_ssh, which in turns has a dependency on
having either dropbear or openssh-sshd in the image.

But setUpClass() and tearDownClass() functions are always executed, even
on tests failing the dependency checks, leading to unexpected failed
tests.

Ignoring SSH errors in setup and tear down allows to avoid these test
errors.

(From OE-Core rev: 5bcc914cf5a193137cddc004f3b38b7b04af9ecb)

Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Mathieu Dubois-Briand
8810c1deb0 oeqa: target: ssh: Fail on SSH error even when errors are ignored
Most tests running SSH commands ask for no error to be raised when the
returned status is not 0. As run() will return this status, they may
later use its value to do a similar check on their own, or completely
ignore it. But most of the tests do not check if the non-zero status is
caused by a fail of the command run on the target or by a fail of SSH
itself.

This can lead to confusion when the error does not come from the command
executed on the target but from SSH itself: test might wrongfully be
marked as PASSED or might fail with incoherent errors.

As SSH errors are always reported with exit code 255, we can easily
filter these.

Modify OESSHTarget.run() behaviour so an AssertionError is raised on SSH
failures, even when ignore_status parameter is True. Still allow to
explicitly ignore this error for the rare cases where this can be
needed.

(From OE-Core rev: afe118d4f2de1f636b3a81dc692da35b35a3f2d7)

Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Yi Zhao
abd46facfa tcl8: upgrade 8.6.16 -> 8.6.17
ChangeLog:
  2024-12-16 (bug) [63449c] [namespace children] doesn't match non-glob
             patterns below the global namespace
  2025-01-06 (bug) [fc3509] Better error-message than "interpreter uses
             an incompatible stubs mechanism"
  2025-01-19 tzdata updated to Olson's tzdata2025a
  2025-01-28 (bug) [4f0b57] Win: [exec] now works on App Execution
             Aliases.
  2025-01-28 (bug) [4e2c8b] Win: [auto_execok] handles larger set of
             shell commands.
  2025-03-06 (bug) [ba68d1] errorline from [interp eval], interp-26.9
  2025-03-23 tzdata updated to Olson's tzdata2025b
  2025-04-11 (bug) [fd8341] Tcl_InitStubs compatibility for 9.1, better
             error-handling
  2025-05-05 (bug) [42d14c] Fix scan with long mantissa. Ex.: scan
             "1.[string repeat 1 191]e-321" %g
  2025-06-18 (bug) [4f338b] add missing Tcl_CloseEx docs
  2025-06-24 (bug) [ecf35c] Correct nested handling of return option
             -options
  2025-06-25 (bug) [ecafd8] Euro/Tail-sign missing from cp864 encoding
  2025-07-03 (bug) [6b0f77] gcc 14 breaks configure test for bigendian
             leading to broken floating point
  2025-07-16 (bug) [c9f052] prevent overflow crash in Tcl_SplitList().
  2025-07-21 (bug) [61c01e] Flawed ref counts in filesystem
             implementation for Windows led to use-after-free
  2025-08-12 (new) dde => 1.4.5
  2025-08-12 (bug) [992f94] avoid misaligned pointers in macOS file
             attribute functions

Set LC_ALL and LANG to en_US.UTF-8 when running ptest since the test
cases now include more encodings than just ASCII[1].
Also, add rdepends on locale-base-en-us and tzdata for ptest package,
as they are required for running ptest.

[1] aca3422d8b

(From OE-Core rev: 77cfa81c065cbdd31db1245379d7b9ec1dc224ae)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Khem Raj
64b4bd2a73 ghostscript: Do not treat declaration-after-statement warning as error
This option is added by ghostscript and is passed down to its modules
e.g. brotli, brotli does expect c99 or newer standard and hence uses
declarations after statement. This option causes compiler e.g. clang
to find this warning and treat it as error on 32bit builds

./brotli/c/dec/decode.c:440:12: error: mixing declarations and code is incompatible with standards before C99 [-Werror,-Wdeclaration-after-statement]
  440 |   uint32_t __fastload_table = (*table);
      |            ^
1 error generated.

(From OE-Core rev: 9b8e0b9a30f1de8bd1816f2528bc696f769dd8dc)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Uwe Kleine-König
3ad9548775 recipeutils/get_recipe_upstream_version: pass ud.name instead of 'default'
While all but the osc fetcher ignore the third parameter of their
latest_revision implementation, 'default' isn't a valid name in general.

Since commit 2515fbd10824 ("fetch: Drop multiple branch/revision support
for single git urls") in bitbake a fetcher only handles a single
branch/revision and the only sensible thing to pass is `ud.name`.

(From OE-Core rev: cb36e8a62d7d31b75b3ddc6b84c1bdee09ebbc60)

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Dmitry Baryshkov
df6bba8ab6 piglit: enable OpenCL support if distro has enabled it
Enable 'opencl' PACKAGECONFIG if it is also set in DISTRO_FEATURES.

Cc: Ryan Eatmon <reatmon@ti.com>
(From OE-Core rev: 2f2ca84a738f7e40ef139e57a2a03450640153dd)

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Peter Marko
365e8a69d7 openssl: upgrade 3.5.2 -> 3.5.4
Release information:
https://github.com/openssl/openssl/blob/openssl-3.5/NEWS.md#major-changes-between-openssl-353-and-openssl-354-30-sep-2025

OpenSSL 3.5.4 is a security patch release. The most severe CVE fixed in this release is Moderate.
This release incorporates the following bug fixes and mitigations:
* Fix Out-of-bounds read & write in RFC 3211 KEK Unwrap. (CVE-2025-9230)
* Fix Timing side-channel in SM2 algorithm on 64 bit ARM. (CVE-2025-9231)
* Fix Out-of-bounds read in HTTP client no_proxy handling. (CVE-2025-9232)
* Reverted the synthesised OPENSSL_VERSION_NUMBER change for the release builds, as it broke some exiting applications that relied on the previous 3.x semantics, as documented in OpenSSL_version(3).

Release information:
https://github.com/openssl/openssl/blob/openssl-3.5/NEWS.md#major-changes-between-openssl-352-and-openssl-353-16-sep-2025

OpenSSL 3.5.3 is a bug fix release.
This release incorporates the following bug fixes and mitigations:
* Added FIPS 140-3 PCT on DH key generation.
* Fixed the synthesised OPENSSL_VERSION_NUMBER.
* Removed PCT on key import in the FIPS provider as it is not required by the standard.

(From OE-Core rev: 0e2b3c46fdf2e2b3854fa73bda434fdd41da0a3c)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Aleksandar Nikolic
adfee36276 scripts/install-buildtools: Update to 5.2.3
Update to the 5.2.3 release of the 5.2 series for buildtools

(From OE-Core rev: 4352f866b1a85107bba42a1557cbdc78bac34dba)

Signed-off-by: Aleksandar Nikolic <aleksandar.nikolic@zeiss.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Alexander Kanavin
c040dccaf1 selftest/meta_ide: source the environment first, then change to the sources directory
This too used to work by coincidence: sourcing the environment
quietly failed without changing to the build directory, but
now that it works properly, things should be done in correct order.

(From OE-Core rev: ed98173057fa128ff565e1e1078b150ca14a85e0)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Alexander Kanavin
9225dc234d meta/classes-recipe/toolchain-scripts.bbclass: eliminate bash-ism
Sourcing a script with arguments is a non-standard bash extension
and doesn't work with other shells (e.g. dash, which is used on
Debian and derivatives). This used to work by coincidence when
running against integrated poky repo without having to separately
specify where bitbake is, but no longer does.

Using set is a POSIX standard.

(From OE-Core rev: 933686b7c6307778d171967c49b3a7b6645c31c0)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Adrian Freihofer
ff0911b191 toolchain-scripts.bbclass: fix bitbake-setup compatibility
Pass the BITBAKEDIR parameter to oe-init-build-env when called from the
environment-setup script. This fixes compatibility with bitbake-setup,
which places bitbake in a different directory structure than the
standard poky repository layout where bitbake is located alongside
oe-init-build-env.

The issue was discovered when running the oe-selftest test
DevtoolIdeSdkTests.test_devtool_ide_sdk_shared_sysroots, which failed
because the environment-setup script was not able to find bitbake.

File ".../openembedded-core/meta/lib/oeqa/selftest/cases/devtool.py",
  line 2955, in test_devtool_ide_sdk_shared_sysroots
  self.assertExists(cmake_native)
  ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File ".../openembedded-core/meta/lib/oeqa/selftest/case.py", line 251,
  in assertExists
  raise self.failureException(msg)
AssertionError: 'Error: The bitbake directory (/tmp/devtoolqah9ndff2x/bitbake)
  does not exist!  Please ensure a copy of bitbake exists at this location or
  specify an alternative path on the command line\n
  .../build-st/tmp/sysroots/x86_64/usr/bin/cmake' does not exist

(From OE-Core rev: f31903ca484bad68708ec510e25ea33234f5c0ce)

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Richard Grünert
57d97d5970 scripts/runqemu: raise an error when bitbake was not found
Running 'scrupts/runqemu' without bitbake in PATH causes the
following error:

```
Traceback (most recent call last):
  File "/home/rg/temp_stuff/oe_2/./scripts/runqemu", line 1807, in main
    config.check_args()
    ~~~~~~~~~~~~~~~~~^^
  File "/home/rg/temp_stuff/oe_2/./scripts/runqemu", line 624, in check_args
    s = re.search('^DEPLOY_DIR_IMAGE="(.*)"', self.bitbake_e, re.M)
  File "/usr/lib/python3.13/re/__init__.py", line 177, in search
    return _compile(pattern, flags).search(string)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
TypeError: expected string or bytes-like object, got 'NoneType'
```

This patch adds a more helpful error message to inform the user that
bitbake was not found, e.g. because oe-init-build-env was not sourced.

This is an example of the new error message after the patch:

```
runqemu - ERROR - In order for this script to dynamically infer paths
 kernels or filesystem images, you either need bitbake in your PATH
 or to source oe-init-build-env before running this script.

 Dynamic path inference can be avoided by passing a *.qemuboot.conf to
 runqemu, i.e. `runqemu /path/to/my-image-name.qemuboot.conf`

 Bitbake is needed to run 'bitbake -e', but it is not found in PATH. Please source the bitbake build environment.
```

CC: Richard Purdie <richard.purdie@linuxfoundation.org>
CC: Alexander Kanavin <alex.kanavin@gmail.com>

(From OE-Core rev: 0c10a78796fbdfaa5be4a824c0c9f5cb97c88046)

Signed-off-by: Richard Grünert <r.gruenert@pironex.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Alexander Kanavin
21466040c3 scripts/runqemu: remove the code block that works around the missing bitbake environment
As confirmed by the previous patch this code path is never taken
and can be removed.

(From OE-Core rev: b931f74442e9f2fba95600ba056a5bd898c23b5a)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Alexander Kanavin
cb2567ad96 runqemu: ensure that bitbake environment is either returned, or an exception is raised
This eliminates the other remaining code path where environment getter
returns 'nothing'. This and the previous patch were tested in a-full,
and no errors occurred [1], which means the code paths that make
use of the function returning nothing are never actually executed
and can be cleaned up (in the following patch).

The rationale is that if environment getter cannot obtain the environment,
it should report that and not sweep the issue under the carpet;
it's up to the caller to handle that situation, or make pre-emptive
checks that avoid calling the environment getter when it is bound to fail.

[1] https://lists.openembedded.org/g/openembedded-core/message/223651

(From OE-Core rev: 8197be4dd336be2f8a646916223922da61c5b9b1)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Ross Burton
8bd63e170c clang: consolidate LLVM_APPEND_VC_REV=OFF
Whilst the change to add TMPDIR to GIT_CEILING_DIRECTORIES should stop
LLVM from embedding git information into the recipes, also disable this
behaviour explicitly.

We do this because it's not just the sha of the source tree but also
the full URL of the repository, which would be an information leak if
an internal git mirror was being used.

(From OE-Core rev: 9247e242bf0e2384142427b67e5f1f7b4018c45d)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Ross Burton
905b746bdd classes/toolchain/clang: depend on llvm-native for tools, not clang
The relevant tools (objdump, strip, etc) are part of llvm-native now,
so trim dependencies and depend on that directly instead of clang-cross.

(From OE-Core rev: 732fb127b59b2d8fd23c2716355ba44f3f5a6a9d)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Ross Burton
b1f036069e clang: use llvm recipe
Change this recipe to build just clang and clang-tools-extra, using the
LLVM provided by the llvm recipe.

This adds an 'extra-tools' PACKAGECONFIG (enabled by default) that
controls whether to build the clang-tools-extra project. This includes
clang-tidy and clangd, but the compile time and size for these
components is not insignificant.

Add a patch from upstream to support using native prebuilt tools (such
as clang-tblgen) when building standalone.

Add a patch that is being worked on with upstream to not rebuild clang-
tblgen if it has already been provided. This saves a little build time,
but more importantly for us resolves a static linking/uninative problem.

Remove the dependency on clang-cross in non-native builds by just
depending on llvm-native and using the un-prefixed tools directly.

(From OE-Core rev: d76dc362c8e18779cc4ddc6a778fb423c0e66a65)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Ross Burton
1ad97d9786 llvm: add recipe for just the LLVM libraries
Whilst it's convenient to build all of the LLVM project in one big
recipe, that's not ideal when we may just need LLVM on target and not
the rest.

Bring back a LLVM recipe that can be used by both clang (shortly) and
Rust (in the future)

Set the build type to MinSizeRel and DEBUG_LEVELFLAG to -g1 (instead of
the default, -g): the LLVM debug symbols are very large (several
gigabytes) and this reduces them to hundreds of megabytes.

(From OE-Core rev: 448f4a84cb22c380d97e069d0b98ddbe1cb8de18)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Ross Burton
ff83c5de2e clang: globally disable build-time RPATHs for reproducibility
Various bits of the LLVM project set the build RPATH in a way that means
we have non-deterministic binaries even though we should always be using
relative paths.

This clearly is not working as some of the binaries get rewritten on
install and have large string paddings that correlate with erased build
paths.

So that we don't have to disable RPATHs in every recipe, just do it once
in the common include file and remove the existing recipe-specific
assignments that are now not needed.

(From OE-Core rev: acc8c5c89c0f1bff3413d2301a65afd89bd0d9ff)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Ross Burton
840d4fc3c5 bitbake.conf: add TMPDIR to GIT_CEILING_DIRECTORIES
We export GIT_CEILING_DIRECTORIES=WORKDIR to ensure that git calls
inside the builds don't find oe-core when they're meant to be looking
for the git repository of the source code.

However, this breaks for recipes that use work-shared (such as llvm), as
their working directory is outside of WORKDIR.

Solve this by adding TMPDIR to the list as a final catch, but keeping
WORKDIR first so that git will stop sooner in the general case.

This solves reproduciblity problems in LLVM, where for example lld's
version string would contain the URL and commit hash of the poky repo
being built.

(From OE-Core rev: f42f0185bd00e68ecc86a930487f21fc86214cfa)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Richard Purdie
9832099afc populate_sdk_ext: Update to toolcfg.conf
Add handling for toolcfg to the eSDK generation. Take the opporunity to clean
up the code duplication too.

(From OE-Core rev: ba8a64935f43bfda92a11758b13590bbb3632ff2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Richard Purdie
31625f36de bitbake.conf,lib/configfragments: Use a new dedicated toolcfg.conf file
Rather than using auto.conf which already has established use in CI, or
local.conf which users expect to own/control, start writing "tooling"
controlled settings to a toolcfg.conf.

This frees CI to handle auto.conf as it wants, but avoids the tooling
breaking users local.conf files.

(From OE-Core rev: 3f8616e56b604d7b77a12334a6ce76d265de7323)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Richard Purdie
f4dc3460a1 oeqa/selftest/buildhistory: Fix test if USER_CLASSES is unset
If USER_CLASSES is unset, the test was failing. Fix that.

(From OE-Core rev: 7be456e675a17344aedaa65a10ecaa015bf3803a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 09:26:35 +01:00
Richard Purdie
9ffc6db805 oeqa/selftest/oescripts: Ensure buildstats is present
These tests need buildstats to be configured. Add that piece of
config in case it isn't by default.

(From OE-Core rev: d1962257783ed9348be9fdd2db20b7d2b7c37ce1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 09:26:35 +01:00
Richard Purdie
cdd655426c oeqa/selftest/bblock/fitimage/sstatetests: Fix changing MACHINE during the test
With config fragments, changing MACHINE in the test like this no
longer works. Use the forcevarable override to allow it to work.
This also needs a tweak to bitbake to work correctly, sent
seperately. Whilst ugly, this avoids the need to start changing
config fragments within oeqa right now.

(From OE-Core rev: 2323fe87eefc8017ac93ed98b1bea24996f2276b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 09:26:35 +01:00
Richard Purdie
4ede48f660 oeqa/selftest: Fix single threaded race issue
oe-selftest sets up separate build directories to run the tests in.
To to this, environment paths pointing at the previous build directory
are updated. In the multi-threaded case this is fine as the thread is
destroyed and the parent remains unchanged but in the single threaded
case, the environment is broken afterwards. This can mean we try and access
a directory which is in the process of being deleted (e.g. by clobberdir).

Restore the environment afterwards regardless to ensure the single threaded
case doesn't try and access the build directory which is now being deleted.

(From OE-Core rev: a165bec28ffc75fd44b1fdb02a0d3a80c5a4769b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 09:26:35 +01:00