Commit Graph

3946 Commits

Author SHA1 Message Date
Trevor Woerner
fd740c664a patchtest.README: update selftest section
Update the "Running Patchtest Selftest to include a cmdline example of
runing the selftest.

(From OE-Core rev: 5b2153c8467657ffe490c6b10a260b63d93f3296)

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-09-22 22:09:48 +01:00
Trevor Woerner
141a6f905d patchtest.README: update host mode section
Update the "Host Mode" section to provide more detail and exact steps
assuming the user is using a previously- or just-installed patchtest
following the steps outlined in the "Installation" section above in the
same document.

(From OE-Core rev: 29402e3fdf161b348ba6c01d3994bdf96a9e3d95)

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-09-22 22:09:48 +01:00
Trevor Woerner
9cfbed3d27 patchtest.README: expand obtaining patches
Expand the section on how to obtain patches with more methods, expanded
explanations, and detailed steps. The suggested set of methods include:
b4, git-pw, "git format-patch", and MUA programs.

(From OE-Core rev: 9779bbfc047f62adedbdb5592389668220f7080e)

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-09-22 22:09:48 +01:00
Trevor Woerner
ed8544941b patchtest.README: update installation instructions
Update the installation instructions to demonstrate using a Python
virtual environment to install the patchtest module dependencies. Also
provide example #exactsteps. Using a virtual environment is considered a
best practice for Python programs, but also makes the git-pw tool
available in the user's PATH automatically.

(From OE-Core rev: 82d5797c2bc40f0465e57dbc745f3ccccfed1067)

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-09-22 22:09:48 +01:00
Trevor Woerner
cd493181d7 patchtest.README: update name and location or patchtest layer
The patchtest layer's name and location have changed from:
  patchtest
  https://git.yoctoproject.org/patchtest
to:
  meta-patchtest
  https://git.yoctoproject.org/meta-patchtest

Update any references of the old name and repository to the new ones.

(From OE-Core rev: 166e52103d17c9eeec3666967c2580008f992481)

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-09-22 22:09:48 +01:00
Trevor Woerner
45c7810b4f patchtest.README: trivial fixes
Fix two small, trivial issues in the README.

(From OE-Core rev: 645d8a927b679a33d6a81aca2ae0ce1be84ad65d)

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-09-22 22:09:48 +01:00
Chris Laplante
5c4a0dbcac devtool: __init__: simplify replace_from_file
Mostly just remove some useless helper functions

(From OE-Core rev: b27b1083f59cf0a268e9b141568119f257002d13)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-09-18 11:16:42 +01:00
Chris Laplante
bde1f02b3f devtool: __init__: small cleanups
+ Remove unused exec_fakeroot method, which wouldn't
  work anyway since it doesn't pass kwargs correctly.

+ Fix a None comparison

(From OE-Core rev: bff3a3d9f8fa695fa05d91419d995de4c8009d9b)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-09-18 11:16:42 +01:00
Chris Laplante
e96eb61680 devtool: __init__: cleanup imports, including a missing 'import errno'
(From OE-Core rev: 9be824a14ea61ea97d717d25058231f9f09f07a0)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-09-18 11:16:42 +01:00
Ross Burton
a32f0fc0b7 wic: add --extra-space back for compatibility
The --extra-space argument was renamed to --extra-filesystem-space to
be clear what space is being added to, but this breaks existing wic
files.

Add back --extra-space as an alias for --extra-file-system-space so that
existing wks files don't fail.

[1] oe-core 39d10137b86 ("wic: rename wks flag --extra-space to --extra-filesystem-space")

(From OE-Core rev: 1d2a714fbe96fa3115fafb1d4d29667b6ae4a881)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-09-15 17:57:23 +01:00
Jose Quaresma
7882955c3b yocto-check-layer: show the distro used
It is good to know which distribution is being used, because it is not the same
whether we are using the poky or openembedded-core+bitbake repository.

The default distribution of bitbake is the nodistro while the other is poky.
The nodistro and poky produce different results when used to check the compatibility
of a layer so it is important to inform about the distro in use.

(From OE-Core rev: bcc74229e6d5a716a9f65546665a42478295dece)

Signed-off-by: Jose Quaresma <jose.quaresma@oss.qualcomm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-09-11 11:31:57 +01:00
Trevor Woerner
3e07b2e323 wic: partition.py: fix help string
The help suggests invoking 'wic help source-plugins' for information on how to
add a new plugin, this results in:

	usage: wic help [-h] {plugins,overview,kickstart,create,ls,cp,rm,write,list} ...
	wic help: error: argument help_topic: invalid choice: 'source-plugins' (choose from 'plugins', 'overview', 'kickstart', 'create', 'ls', 'cp', 'rm', 'write', 'list')

The proper command is 'wic help plugins'.

(From OE-Core rev: 7e5c7633a3cb7f1718f40ba63ecc30bb8ea07928)

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-09-11 11:31:55 +01:00
Pierre-Loup GOSSE
468bcd1950 wic: rename wks flag --extra-space to --extra-filesystem-space
Makes a clear distinction with --extra-partition-space flag.

(From OE-Core rev: 39d10137b86ebb6d1f20c36ae50a7771e6c76251)

Signed-off-by: Pierre-Loup GOSSE <pierre-loup.gosse@smile.fr>

CC: Alexander Kanavin <alex.kanavin@gmail.com>
CC: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-09-08 18:02:39 +01:00
Pierre-Loup GOSSE
21d98bd960 wic: add --extra-partition-space option to set unused space
By default, the content of the partition is filled by the filesystem
without leaving any unused free space. The --extra-space flag adds
extra space to the filesystem size, not to the partition.

Unused free space after the filesystem can be useful for some cases,
such as encrypting a partition at runtime.
With --extra-partition-space 32M, we ensure that the last 32M of the
partition is unused: this space does not contain filesystem data and
can store the LUKS2 header.

The implementation sets a difference between the partition and
filesystem size:
  - With --fixed-size, the extra part space is removed from the
    filesystem size.
  - Otherwise (with or without --size flag), the extra part space is
    added to the partition size.

(From OE-Core rev: 22fd1702aedf40257aa53963b62b5ef1bbd2818a)

Signed-off-by: Pierre-Loup GOSSE <pierre-loup.gosse@smile.fr>

CC: Alexander Kanavin <alex.kanavin@gmail.com>
CC: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-09-08 18:02:39 +01:00
Christian Lindeberg
a25eb24eed recipetool/create_go: Tidy up a bit
There is no need for a temporary Go module cache after moving generation
of module dependency include files to go-mod-update-modules.bbclass.

(From OE-Core rev: 376ce22b3ba5286eda54d9f9bb1c4cd7f54ff9e7)

Signed-off-by: Christian Lindeberg <christian.lindeberg@axis.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-09-08 18:02:39 +01:00
Diego Sueiro
fb4ebd6053 wic: Fix --overhead-factor and --extra-space checks
If --overhead-factor and --extra-space are passed with =FOO the
check fails. Fix this by checking parsed.overhead_factor and
parsed.extra_space instead.

(From OE-Core rev: 46c24b67d4e9d28e7216a7394090d807cf879fa7)

Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-25 17:47:21 +01:00
Vincent Davis Jr
c74dfd8f81 bootimg_pcbios: add help and usage comments
Adds comments underneath class declaration
defining plugin usage and potential
optional variables to set.

(From OE-Core rev: 6a8c350f595255b6febfdbc5af668286ccb973df)

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-14 10:31:11 +01:00
Vincent Davis Jr
a495fec1bf bootimg_pcbios: include grub as an optional bootloader
Commit adds in support for installation of both
grub and syslinux using newly added grub functions.

Due to the bootimg_biosplusefi source_params['loader']
had to be named source_params['loader-bios'] so not
to create conflict in the wics plugin.

Commits also adds ability to set and or not set
source_params. If source_params set check
for both
	* syslinux
	* grub

if not set default to using syslinux as bootloader.

(From OE-Core rev: 5caf6fe32aa4655f46fb7b490a22778c59b2efc0)

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-14 10:31:11 +01:00
Vincent Davis Jr
7f522461d2 bootimg_pcbios: add funcs to configure booting with grub
Functions added, but not executed during
wic image creation include:

_get_staging_libdir
	* Finds target lib directory if for some
	  reason STAGING_LIBDIR isn't set.

_do_configure_grub
	* Will search for a grub configuration passed via
	  bootloader --configfile. If not found build a
	  default one which searches for partition that
	  contains the given the kernel name via grub
	  search module.

_do_prepare_grub
	1. Sets default values for GRUB_MKIMAGE_FORMAT_PC
	   and GRUB_PREFIX_PATH if none specified. Both
	   variables are required by grub-mkimage.
	   * GRUB_MKIMAGE_FORMAT_PC is used to define
	     target platform.
	   * GRUB_PREFIX_PATH is used to define which
	     directory grub config and modules are going
	     to reside in.
	2. Generates grub config to embed into core.img.
	   This config is used to search for partition
	   containing grub config.
	3. Creates a custom core.img or grub stage 1.5
	   with an embedded grub config.
	4. Copies all the target built grub modules into
	   GRUB_PREFIX_PATH directory.
	5. Creates boot partition

_do_install_grub
	1. dd target platform specific boot.img to the first
	   0-440 bytes of the resulting wic image. dd grub
	   stage 1 to wic image. If this wics plugin is used
	   with GPT as partition table format and grub selected
	   as bootloader it's more than likely for grub hybrid
	   booting because bootimg_efi plugin should and more
	   than likely will be used in that case. So, boot.img
	   may be dd regardless if partition table format is
	   GPT or MBR.
	2. dd custom core.img (grub stage 1.5) with embedded
	   configuration to the resulting wic image starting
	   at byte 512 up to sizeof(core.img).
	3. Both boot.img and core.img are required for legacy
	   bios boot. See grub Wiki for more details on
	   boot.img and core.img.

	   https://en.wikipedia.org/wiki/GNU_GRUB

Commit also imports python modules required by the
above implemented functions.

(From OE-Core rev: 27c56962f47303cf49a4cf641e85239e4d7779b5)

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-14 10:31:11 +01:00
Vincent Davis Jr
8b64e77f00 bootimg_pcbios: cleanup prepare and install syslinux funcs
This commit:

1. Removes unrequired function params from
   	* _do_prepare_syslinux
   	* _do_install_syslinux
   Reason is that they aren't required by
   the function.
2. Moves finding of resulting wic image
   back into do_install_disk task. As
   the same code may be leverage to install
   other bootloaders to the resulting disk.

(From OE-Core rev: 27e3fc1ef5304278254d2288ffc99e1757dd4053)

Signed-off-by: Vincent Davis Jr. <vince@underview.tech>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-14 10:31:11 +01:00
Vincent Davis Jr
a51e188be3 bootimg_pcbios: cleanup _do_configure_syslinux function
This commit:

1. Removes all unrequired function parameters.
   The part parameter was kept due to it's potential
   future usage in _do_configure_syslinux function.
   part.fstype specifically may be used with the
   rootfstype kernel paramater.

2. Sets a default timeout to 500 if bootloader --timeout
   not specified. To avoid 'None' being placed
   as the value in resulting configuartion file.
3. Sets a default kernel parameter string if
   bootloader --append not specified. This also
   helps avoid 'None' being places as the value
   in resulting configuration file.
4. Replace all instances of

   cr_workdir, "/hdd/boot"

   with variable

   hdddir

   as it's set at the top of the function. No,
   need to re-implement what the variable is
   already defined to store.

(From OE-Core rev: 5e17a1cf73d0542e0c7ec9333aaf20bbc45df8de)

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-14 10:31:11 +01:00
Vincent Davis Jr
2bcf99792b bootimg_pcbios: seperate bootloader config creation
Most bootloaders that will be included in this
wics plugin will require a configuration file
to define kernel params, execute custom
modules, or enable the ability to select
one of multiple boot entries.

Create a seperate generic function to facilitate
finding if a bootloader config file passed through
bootloader --configfile flag. So, that other functions
that are used to create/install a bootloader boot
configuration file can leverage the function.

(From OE-Core rev: 7944e29eb6ab7b80ad3847686dd780100623b196)

Signed-off-by: Vincent Davis Jr. <vince@underview.tech>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-14 10:31:11 +01:00
Vincent Davis Jr
eb3df0324a bootimg_pcbios: move syslinux funcs to end of file
This commit moves the seperated syslinux creation
functions from their current position to end of
file in the order

	1. _do_configure_syslinux
	2. _do_prepare_syslinux
	3. _do_install_syslinux

This is to prepare for inclusion of other
bootloaders. It also makes reading
through the wics plugin much easier if
you group bootloader specific partition
creation functions together and place them
at the bottom of the file versus leaving
them in their current position.

(From OE-Core rev: 9034dd23e4240536a37a2290f2f2dd48d9bddd29)

Signed-off-by: Vincent Davis Jr. <vince@underview.tech>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-14 10:31:11 +01:00
Vincent Davis Jr
336a252dbb bootimg_pcbios: move syslinux install into seperate functions
Current oe-core bootimg_pcbios wics plugin
only supports installing syslinux directly
into the resulting wic image.

This commit seperates syslinux installation from
class BootimgPcbiosPlugin(SourcePlugin) override
functions in preparation of supporting the installation
of other bootloaders to the resulting wics plugin
such as:
	* grub
	* extlinux

Being moved now to make it easier to include
future bootloaders.

(From OE-Core rev: 78addc3a7c2f036e8932305368acd6090937b62d)

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-14 10:31:11 +01:00
Tobias Pistora
4c7b000732 devtool: fix upgrade for recipes with git submodules
Fixes [YOCTO #15943]

Fixes invalid path argument while calling "git rev-list" from submodule folders.
Replaced the local __run() wrapper function with _run() at "git rev-list" command calls.

(From OE-Core rev: c1839a24f08a87984d475d23f37a7c923d424267)

Signed-off-by: Tobias Pistora <pistora.tobias@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-14 10:31:10 +01:00
Libo Chen
b36799ea7d runqemu: fix special characters bug
Fix the bug in runqemu that happens when the file path contains
the specific words such as 'vmlinux', e.g. /home/frank/vmlinux.

runqemu - ERROR - wic doesn't need kernel

(From OE-Core rev: 3c186fe7741adecb0887e36c8a9164a58fc16437)

Signed-off-by: Libo Chen <libo.chen.cn@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-07 12:11:16 +01:00
Yoann Congal
938abd7c30 runqemu: refactor a duplicated cleanup statement
Refactor using a "finally:" instead of a duplicated statement inside and
outside of the try/except block.

(From OE-Core rev: c92399c355d1333eff37ea799832a8890acd0d74)

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-07 12:11:16 +01:00
Yoann Congal
b4eacbf7c1 runqemu: use "zstd -o" to preserve sparse images
wic images can be sparse. Using "zstd -o" preserves the sparse state of
the image and should decrease decompression time.

Suggested-by: Adrian Freihofer <adrian.freihofer@gmail.com>
(From OE-Core rev: 27d156d85f13131ea4c5d766ddaa2d18b88d7577)

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-07 12:11:16 +01:00
Richard Purdie
23174f6494 scripts/runqemu: Update the fstypes list with newly supported compressed images types
Update the interal list of types within runqemu with the newly added
compression formats it supports.

This fixes autodetection of qemuboot file locations.

(From OE-Core rev: 46b9a1c74df00f76f7c19b5ed27e6a569aaabb5e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-06 22:32:41 +01:00
Yoann Congal
b034dcc314 runqemu: print snapshot mode state in console
With snapshot enabled, no change on rootfs will be saved after qemu
shutdown. Since this is not what a user might expect, print the snapshot
mode state and its consequence in console at runqemu start.

(From OE-Core rev: 57fe8538a87ff1f69f274d9692f038caed6cb5cd)

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-06 22:32:41 +01:00
Yoann Congal
60676f12f2 runqemu: accept vmtypes and wictypes for rootfs paths extensions
When using a .wic.zst image, its fstype is detected by default as
".zst" which prevent booting correctly.

Fix this by adding wictypes (and vmtypes while at it) to the list of
known fstypes. After this fix, the initial fstype is correctly ".wic.zst".

(From OE-Core rev: 26b0922977d1bfcf47bbccf624be86e9e2b8815a)

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-06 22:32:41 +01:00
Lamine REHAHLIA
820a6edcec runqemu: Add support for running compressed .zst rootfs images
Enhance runqemu to detect and decompress .zst-compressed rootfs images
(e.g. ext4.zst, wic.zst) automatically. If a decompressed image already
exists in the original directory, it will be reused to avoid overwriting
build artifacts. Otherwise, the image is decompressed and removed after
the QEMU session ends.

This allows runqemu to be used seamlessly with compressed image formats
generated by the build system or during releases.

Note: support for .zst images is only available when snapshot mode is
enabled

IMPORTANT:
This patch assumes that the original directory of the .zst-compressed
image is writable. If, for some reason, the path passed from CI or
another system to the script is read-only, the decompression step will
fail when trying to write the uncompressed image to the same directory.

(From OE-Core rev: e069fe2480c871c649b83f6278564a553cc3dd58)

Signed-off-by: Lamine REHAHLIA <lamine.rehahlia@smile.fr>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-08-06 22:32:41 +01:00
Aleksandar Nikolic
4070d8ec2a scripts/install-buildtools: Update to 5.2.2
Update to the 5.2.2 release of the 5.2 series for buildtools

(From OE-Core rev: 9a79f2b1b81a27e740d7e5e59d07a38da12faf7d)

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-07-28 17:37:02 +01:00
Ross Burton
9eb9f13198 pybootchartgui: account for network stats when calculating extents
We could take into account the network device statistics when calculating
the size of the image, otherwise charts will be truncated.

(From OE-Core rev: 52806c2555d02d4a12e7419520a2aba05f7aaa06)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-28 14:51:50 +01:00
Ross Burton
ac05e72f87 pybootchartgui: mark a regex as a raw string
Otherwise Python tries to unescape the \s and warns that it can't.

(From OE-Core rev: 45435a18f6ce665eba5b2e708a72a4f596deb017)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-28 14:51:50 +01:00
Daniel Turull
348ef80f27 improve_kernel_cve_report: do not use custom version
When using the version specified in cve-summary.json, we need to
remove the suffix containing the custom version to match the
versions from the CVEs.

This patch truncates the version from cve-summary.json to use only
the base version of the kernel.

This is only applicable for kernels where the user has added their
own version.

(From OE-Core rev: 3942d40e96989268e8d1030f9d8c3859044d9635)

Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-10 10:47:31 +01:00
Daniel Turull
dac57535d9 improve_kernel_cve_report: do not override backported-patch
If the user has a CVE_STATUS for their own backported patch,
the backport takes priority over upstream vulnerable versions.

(From OE-Core rev: 0beef05be119ea465ba06553a42edea03dfc9fd3)

Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-10 10:47:30 +01:00
Mikko Rapeli
e5e8f2aa0a testexport.bbclass oe-test: capture all tests and data from all layers
testexport.bbclass only copied files from core layer to
the testexport.tar.gz to run tests. Then it filtered
out tests and files which were not specified in
TEST_SUITES variable.

Remove filtering of files to include parselogs.py
test data files which are machine and/or layer specific.
TEST_SUITES variable is now read from build time exported
data store when running tests so there is no need to remove
files from exported tests in testexport.bbclass.

Adapt oe-test script to find "lib" directories from
the new structure with layer specific paths which are
used to find tests and test data files.

(From OE-Core rev: 5c39fedee1dd0e101e2611b71a895c0251ba968d)

Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-10 10:47:30 +01:00
Joshua Watt
f5bc5c3443 devtool: Handle workspaces for multiconfig
If a multiconfig recipe is passed to devtool, find the correct workspace
name by removing the multiconfig prefix

(From OE-Core rev: 42c0c25428be329101a920d31c5fa8cf1e04ee38)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-07 22:12:50 +01:00
Ross Burton
43434a79c0 recipetool/create_go: proxy module fetching to go-mod-update-modules
Now that the go-mod-update-modules class exists, this Go handler can
create a stub recipe and then proxy the module handling to the class.

(From OE-Core rev: 0aa406d0582d32399c48dfa78f24adc75696112c)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-01 08:49:37 +01:00
Ross Burton
72486700fb oe/licenses: move tidy_licenses from recipetool
This function, to tidy a license string, is useful outside of recipetool
so move it to oe.license.

(From OE-Core rev: 9d57b53169bc60b281510c49e54123941a17a8f5)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-01 08:49:37 +01:00
Christian Lindeberg
90cc27f8ce recipetool: create_go: Use gomod fetcher instead of go mod vendor
Use the go-mod bbclass together with the gomod fetcher instead of the
go-vendor bbclass.

(From OE-Core rev: 42b46ab3b92a4f011592e8efcedead075731b8bd)

Signed-off-by: Christian Lindeberg <christian.lindeberg@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-01 08:49:37 +01:00
Ross Burton
45eb6f8188 recipetool: allow recipe create handlers to specify bitbake tasks to run
When creating a recipe there can be cases where there is a class that
does some of the recipe creation (such as cargo-update-recipe-crates).

To avoid duplication of code, look for run_task assignments in the
extravalues dictionary returned by the handler, and if it is set then
call that task after writing the recipe.

(From OE-Core rev: 629184de671cf7b86fe95fcce788dffcc3a4da8a)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-01 08:49:37 +01:00
Peter Kjellerstedt
1e3a4a08a2 recipetool: create: Support creating extra files named after the recipe
(From OE-Core rev: ea26eb8e4a00a63700a95c2c848272b170154294)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-01 08:49:37 +01:00
Hongxu Jia
e2e709d85e scripts/wic: fix calling wic ls|cp|rm|write hung in bitbake task
While calling wic ls/cp/rm/write in bitbake task along with do_image_wic,
it hung without return.

Due to commit [2255f28b57 wic: add WIC_SECTOR_SIZE variable][1] applied,
It calls get_bitbake_var in `wic ls|cp|rm|write' to define sector size.
By default, get_bitbake_var starts a `bitbake -e' to get variables which
triggers nested bitbake in this situation

Refer `wic create', adds option --vars and --image-name to support to
read bitbake variables from <image>.env files

NOTE: This commit does not add -e for `wic write' to avoid confliction
with existed option -e/--expand

[1] 2255f28b57

(From OE-Core rev: 793732a6ac2b3788d6c6635e5a496b117bd60584)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-26 11:02:34 +01:00
Alexander Kanavin
4547232c71 recipetool/devtool: calculate source paths relative to UNPACKDIR
Now that recipes default to S in UNPACKDIR, recipetool and devtool should
do the same.

There was some discussion about changing devtool to simply setting
UNPACKDIR via bbappend to a workspace and running unpack task directly;
currently it has a bunch of convoluted path calculations, substitutions,
moving source trees around and and special casing (devtool-source.bbclass
in particular is an unpleasant hack).

This should definitely be done; but right now we can simply tweak existing
code which at least doesn't make it worse.

(From OE-Core rev: c326ca8aeb2bf0f7719e43921d10efd5dedc7b2a)

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-06-20 12:07:26 +01:00
Alexander Kanavin
f59a7df3fe meta: remove S in recipes that fetch from git via setting BB_GIT_DEFAULT_DESTSUFFIX
Removing all the S = ${WORKDIR}/git assignments works because BB_GIT_DEFAULT_DESTSUFFIX
is set to match S from bitbake.conf (which itself is set to match typical tarball
releases).

A few recipes are setting S to a sub-directory of the git tree and need
to be adjusted accordingly.

bzip2 recipe is fetching a tarball and separately cloning tests;
adjust the recipe to put the latter into 'bzip2-tests', instead of 'git'.

devupstream.bbclass no longer needs to rewrite S, and is adjusted accordingly.

Adjust scripts/lib/recipetool/append.py to not hardcode 'git' as unpack
destination.

Adjust kernel-yocto.bbclass to use the git unpack variable instead
of hardcoding 'git' (there's also removal of repetition of
string constants and a correction of workdir/unpackdir mismatch in
one of the if-else branches).

Ensure build-appliance-image recipe does not use 'git' as checkout directory for
poky repo, but rather explicitly name it 'poky'.

Ensure reproducible.py code that looks for git repositories does not
hardcode 'git' but uses the destination set by BB_GIT_DEFAULT_DESTSUFFIX.

Ensure recipetool does not write out unneeded S settings into newly
created recipes that fetch from git.

Adjust selftest to not hardcode 'git' as unpack directory.

(From OE-Core rev: f80c07019ddadaf9c5fb890faabfda7920ecd15e)

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-06-20 12:07:26 +01:00
Ross Burton
5097aaeafa scripts/test-remote-image: remove useless postconfig arguments
I can't see a reason for this script to need to use postconfig files
to bounce a variable assignment through another, so remove them.

(From OE-Core rev: 4a919459feb90ab8a8b9d10381486b77ad5aec52)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-19 21:54:44 +01:00
Daniel Turull
5dff1c40db improve_kernel_cve_report: add script for postprocesing of kernel CVE data
Adding postprocessing script to process data from linux CNA that includes more accurate metadata and it is updated directly by the source.

Example of enhanced CVE from a report from cve-check:

{
  "id": "CVE-2024-26710",
  "status": "Ignored",
  "link": "https://nvd.nist.gov/vuln/detail/CVE-2024-26710",
  "summary": "In the Linux kernel, the following vulnerability [...]",
  "scorev2": "0.0",
  "scorev3": "5.5",
  "scorev4": "0.0",
  "modified": "2025-03-17T15:36:11.620",
  "vector": "LOCAL",
  "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
  "detail": "not-applicable-config",
  "description": "Source code not compiled by config. ['arch/powerpc/include/asm/thread_info.h']"
},

And same from a report generated with vex:
{
  "id": "CVE-2024-26710",
  "status": "Ignored",
  "link": "https://nvd.nist.gov/vuln/detail/CVE-2024-26710",
  "detail": "not-applicable-config",
  "description": "Source code not compiled by config. ['arch/powerpc/include/asm/thread_info.h']"
},

For unpatched CVEs, provide more context in the description:
Tested with 6.12.22 kernel
{
  "id": "CVE-2025-39728",
  "status": "Unpatched",
  "link": "https://nvd.nist.gov/vuln/detail/CVE-2025-39728",
  "summary": "In the Linux kernel, the following vulnerability has been [...],
  "scorev2": "0.0",
  "scorev3": "0.0",
  "scorev4": "0.0",
  "modified": "2025-04-21T14:23:45.950",
  "vector": "UNKNOWN",
  "vectorString": "UNKNOWN",
  "detail": "version-in-range",
  "description": "Needs backporting (fixed from 6.12.23)"
},

CC: Peter Marko <peter.marko@siemens.com>
CC: Marta Rybczynska <rybczynska@gmail.com>
(From OE-Core rev: e60b1759c1aea5b8f5317e46608f0a3e782ecf57)

Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-19 21:54:43 +01:00
Richard Purdie
d672a6c43f wic: Avoid problems with "-" characters in plugin names
Remap "-" characters in plugin names to "_" so wic plugins
can be extended using standard python class inheritance.

This change means wic files can be incrementally updated over time
to the correct name rather than breaking everything. Actual plugin
module files will need to be renamed as done in previous patches.

Also remove a double call to get_plugins() which isn't needed.

(From OE-Core rev: 6d9c76196ffad39e628aff76d53d6ecbb517cfa1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-16 17:57:30 +01:00