Commit Graph

75916 Commits

Author SHA1 Message Date
Changhyeok Bae
eae1eb000c repo: upgrade 2.47 -> 2.48
Changelog:
- sync: Always use WORKER_BATCH_SIZE
- project: Handle git sso auth failures as repo exit
- superproject: Remove notice about beta
- project: run fetch --refetch on unable to not parse commit
- Disable git terminal prompt during fetch/clone
- init: add --manifest-upstream-branch
- man: regenerate man pages

(From OE-Core rev: 65d086efd11c72797750b4ad47f16a5276d06ee0)

Signed-off-by: Changhyeok Bae <changhyeok.bae@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-15 11:47:24 +01:00
Khem Raj
8644929ce0 ffmpeg: Disable asm optimizations on x86
disable asm code if PIC is required, as the provided asm
decidedly is not PIC for x86.

(From OE-Core rev: 941fc40ca971f87e61c19e5a0703caa304ec7547)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-15 11:47:24 +01:00
Hongxu Jia
68d165b873 gcc-source: Fix racing on building gcc-source-14.2.0 and lib32-gcc-source-14.2.0
While enabling multilib, build gcc-source-14.2.0 and lib32-gcc-source-14.2.0
at the same time:

    $ MACHINE = "qemux86-64"
    $ require conf/multilib.conf
    $ MULTILIBS = "multilib:lib32"
    $ DEFAULTTUNE:virtclass-multilib-lib32 = "x86"
    $ bitbake gcc-source-14.2.0 lib32-gcc-source-14.2.0
    ...
    $ cat tmp-glibc/work-shared/gcc-14.2.0-r0.vr2401/temp/log.task_order
    20241012-064533.415426 do_recipe_qa (2688052): log.do_recipe_qa.2688052
    20241012-064533.463783 do_recipe_qa (2688051): log.do_recipe_qa.2688051
    20241012-064533.805164 do_fetch (2688257): log.do_fetch.2688257
    20241012-064533.852955 do_fetch (2688256): log.do_fetch.2688256
    20241012-064617.823714 do_unpack (2698542): log.do_unpack.2698542
    20241012-064617.871730 do_unpack (2698541): log.do_unpack.2698541
    ...

There are two tasks for do_fetch, do_unpack and others, so there are race issues.

Both of them have the same hardcode 'gcc' prefix in ${WORKDIR} and
${S}, explicitly disable lib32-gcc-source-14.2.0 for multilib

Set gcc-source as BPN of gcc-source-14.2.0

(From OE-Core rev: 901c47877e0710af50639f688e0bfdb851b762b5)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-15 11:47:24 +01:00
Khem Raj
df3b98c4b7 qemu: Do not define sched_attr with glibc >= 2.41
(From OE-Core rev: e8c2bf4cc1ee2bb219c9504a5800bb4b912c1b48)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-15 11:47:24 +01:00
Khem Raj
cf4b9cfd42 openssh: Be more restrictive on private key file permissions
Sometimes default permissions on filesystems can be more permissive
e.g. 0644, this can make the private key file created here to inherit
those permissions and these permissions can then cause ssh server to
not allow ssh connections due to non-secure permissions on file.

Reported-by: Jean-Michel Papy <jean-michel.papy@exail.com>
(From OE-Core rev: 5c9f456cc39ca25123249ecb32b311736bd4e1f8)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Jörg Sommer <joerg.sommer@navimatix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-15 11:47:24 +01:00
Bartosz Golaszewski
87134b630f python3-pip: add missing RDEPENDS
pip3 package is missing the runtime dependency on tomllib. Add
python3-tomllib to the recipe's RDEPENDS. While at it: order the
dependencies alphabetically.

(From OE-Core rev: f0a932dfae5439d7cee2999455edaeb1b263befc)

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-15 11:47:24 +01:00
Richard Purdie
70672522bb bitbake: toaster/tests: Replace assertTrue for more specific asserts
assetTrue is a poor choice for "x in y" since assertIn gives much more
useful output upon failure.

Change such inserts to assertIn or assertEqual to make errors easier
to debug.

(Bitbake rev: dde78e0ff8af872fdc5cdf5354174fc713141102)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-14 21:44:38 +01:00
Oliver Kästner
aa546ea0c3 bitbake: fetch2: add GitHub Codespaces support
GitHub Codespaces allow users to use GitHub-hosted pre-configured Docker
containers to work on GitHub repositories in VS Code within the browser
or using a locally running instance of VS Code [1].

Users can define access permissions for Codespaces containers, allowing
them to clone or work with other private repositories [2].
To do this, a git credential helper is injected into the container at
/.codespaces/bin/gitcredential_github.sh, which contains the following
lines:

    #!/bin/sh
    echo protocol=https
    echo host=github.com
    echo path=
    echo username=PersonalAccessToken
    echo password=$GITHUB_TOKEN

The `GITHUB_TOKEN` environment variable is automatically set when the
Codespaces container is created. If authorized by the user, it has the
specified permissions. It is thus required to be able to fetch private
git repos from a Codespace container, so add it to `FETCH_EXPORT_VARS`
to make it available for invocations of git.

[1] https://docs.github.com/en/codespaces/overview
[2] https://docs.github.com/en/codespaces/managing-your-codespaces/managing-repository-access-for-your-codespaces

(Bitbake rev: 71ca83bdd541f70737a3a85f05e40c222611af2f)

Signed-off-by: Oliver Kästner <git@oliver-kaestner.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-14 21:44:38 +01:00
Richard Purdie
7637bd0b9c bitbake: tests/browser: Avoid python 3.9 syntax
Python 3.9 isn't our minimum version yet, avoid using removeprefix.

(Bitbake rev: 8cb9eb6a4f1be4620fcde347faa5c1fb6d77bf70)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-14 21:44:38 +01:00
Richard Purdie
e04cd8349e bitbake: toaster/tests/brwoser: Add wait for element calls
On faster machines these tests are failing as the tests are running
before the page has rendered. Add appripriate wait calls.

(Bitbake rev: c3a425ac3ccafa7b06b319c6a525773d04a2ddac)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-14 21:44:38 +01:00
Richard Purdie
b974b3dfc1 bitbake: toaster/tests/selenium_helper_base: Handle WebDriverException
The WebDriverException can occur if elements are not present in the DOM
yet. Catch and handle this. It is our most frequently occuring failure
in automated testing now.

(Bitbake rev: 006173cbd32116ff1cea59b2c99eead807be39bb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-14 21:44:38 +01:00
Richard Purdie
5b7f1f29b5 cve-check-update-nvd2-native: Incremement DL_DIR database location
We're seeing a lot of sqlite database corruption issues in our automated
testing. It is unclear why this is happening. There were process
imrpovements implemented in master and it is unclear if older releases
are somehow making those changes ineffective or if the problem is
elsewhere.

By changing the location in DL_DIR, we split the two sets of accesses
to be separate and can isolate whether the master changes really did
improve things or not. If successful, we may consider backporting those
changes to the stable releases.

(From OE-Core rev: bcc624012d676192a722a7694614f3c49c6bc4d2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-14 21:42:17 +01:00
Mikko Rapeli
a375e2d35d ovmf-native: remove .pyc files from install
They break builds which share sstate files on different
machines and paths:

ERROR: ovmf-edk2-stable202408-r0 do_prepare_recipe_sysroot: Error executing a python function in exec_func_python() autogenerated:

The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_func_python() autogenerated', lineno: 2, function: <module>
     0001:
 *** 0002:extend_recipe_sysroot(d)
     0003:
File: '/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/meta/classes-global/staging.bbclass', lineno: 624, function: extend_recipe_sysroot
     0620:
     0621:    # Handle deferred binfiles
     0622:    for l in binfiles:
     0623:        (targetdir, dest) = binfiles[l]
 *** 0624:        staging_copyfile(l, targetdir, dest, postinsts, seendirs)
     0625:
     0626:    bb.note("Installed into sysroot: %s" % str(msg_adding))
     0627:    bb.note("Skipping as already exists in sysroot: %s" % str(msg_exists))
     0628:
File: '/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/meta/classes-global/staging.bbclass', lineno: 165, function: staging_copyfile
     0161:        os.symlink(linkto, dest)
     0162:        #bb.warn(c)
     0163:    else:
     0164:        try:
 *** 0165:            os.link(c, dest)
     0166:        except OSError as err:
     0167:            if err.errno == errno.EXDEV:
     0168:                bb.utils.copyfile(c, dest)
     0169:            else:
Exception: FileExistsError: [Errno 17] File exists: '/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-667282/tmp/sysroots-components/x86_64/ovmf-native/usr/bin/edk2_basetools/BaseTools/Source/Python/AutoGen/__pycache__/WorkspaceAutoGen.cpython-312.pyc' -> '/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-667282/tmp/work/core2-64-poky-linux/ovmf/edk2-stable202408/recipe-sysroot-native/usr/bin/edk2_basetools/BaseTools/Source/Python/AutoGen/__pycache__/WorkspaceAutoGen.cpython-312.pyc'

(From OE-Core rev: facd9e17fa53e2fb3a828b3f179cfb659be75d37)

Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-14 21:42:17 +01:00
Richard Purdie
6dfe291284 insane: Don't used cachedpath for os.lstat()
The functions behave slightly differently to the functions they're
caching and the use in insane.bbclass isn't compatible. For now, to
avoid build failures, switch back to the stat calls. We may be able
to improve cachedpath or change the call sites.

(From OE-Core rev: fa771ae887ab5152f043748cf3419735831bcf7b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-14 21:42:17 +01:00
Richard Purdie
d2b2675cc4 oeqa/runtime/ssh: Fix incorrect timeout fix
I'd meant to change the command timeout in the previous change, fix
the correct one.

(From OE-Core rev: bb991988cb23be2c8947171726ada321f27e6eed)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-14 21:42:17 +01:00
Richard Purdie
d29f43bd0b qemurunner: Clean up serial_lock handling
Avoid "RuntimeError: release unlocked lock" since the lock shouldn't
be locked even in the error path. Add a try/finally path to ensure
this.

(From OE-Core rev: b0732ee009ca47580d1d2ad75334f4aa50e6efd5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-14 21:42:17 +01:00
Antonin Godard
494983bc92 release-notes-5.1: update release note for styhead
Finalize the release note for the 5.1 release (styhead).

Add enhancements, changes, removals, license changes, and migration
notes for this release by going over the git commit log of
openembedded-core, bitbake and meta-yocto.

(From yocto-docs rev: 65618b0588053d2c4325d995482957b660f5e104)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 17:05:04 +01:00
Lee Chee Yang
49d98fab62 release-notes-5.1: update for several section
update for these changes:
 - license
 - recipe enable for ptests
 - new class, recipe and variable.
 - PACKAGECONFIG
 - some utility script, class and include file.
 - bitbake.
 - qemu/runqemu.
 - Contributors.

removed wic as no significant change or improvement.

Antonin Godard: amend and fix some typos.

(From yocto-docs rev: afbcc16cd5244d8bb6bb79796aa064156f99e3d3)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 17:05:04 +01:00
Antonin Godard
c772c2b278 ref-manual: add mission pep517-backend sanity check
New sanity check to check for PEP517-backend compliance.

(From yocto-docs rev: 24e5bbeefe989e22ecdf5e86f48432e437330cc2)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 17:05:04 +01:00
Antonin Godard
118fce004d ref-manual: merge patch-status-* to patch-status
These are not distinct anymore and check for any patches in any layer.

(From yocto-docs rev: 300c585909743754e0e6662d48d43834c031b835)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 17:05:04 +01:00
Antonin Godard
ab2dd7c28c ref-manual: add missing variable PRSERV_UPSTREAM
(From yocto-docs rev: 94a590aad8d503c5d5528bff4d8ec07746ca9805)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 17:05:04 +01:00
Antonin Godard
5f807a4b80 ref-manual: add missing OPKGBUILDCMD variable
(From yocto-docs rev: a6a2c8e48995200c9c3be7096f34d912427de145)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 17:05:04 +01:00
Antonin Godard
1e54a97da5 ref-manual: drop TCLIBCAPPEND variable
No longer required as TMPDIR can be shared for multiple lib providers
nowadays.

(From yocto-docs rev: 6690c0aee9e7f0dcc63ccbe19657b78963240610)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 17:05:04 +01:00
Antonin Godard
1d8284da56 ref-manual: add missing EXTERNAL_KERNEL_DEVICETREE variable
This variable can be used to specify one or more compiled device tree or
device tree overlays to use in addition to the one compiled by the
kernel.

(From yocto-docs rev: 6566ffceab3780dc5ecbfe26f786ebe6ff17e693)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 17:05:04 +01:00
Antonin Godard
d3a55ef7f3 ref-manual: add missing image manifest variables
New variables that control the output of the image task manifests.

(From yocto-docs rev: e46af38733ae581c4aa180efc226d8a34ea4e590)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 17:05:04 +01:00
Antonin Godard
9ad863b8a2 ref-manual: add missing TESTIMAGE_FAILED_QA_ARTIFACTS
This variable lists space-separated paths on the target to retrieve onto
the host, when inheriting testimage.

(From yocto-docs rev: 2537642d2cdf844dc5f6027fb3097aac52162c1f)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 17:05:04 +01:00
Antonin Godard
f1104a323d ref-manual: drop siteconfig class
Removed as it was only used by ncurses and zlib and adding minimal
added-value for a considerable amount of added runtime.

(From yocto-docs rev: c35688a0f4cb115c63387cc15fd15ec57cb386fb)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 17:05:04 +01:00
Antonin Godard
a4f4d35cb5 ref-manual: add new RECIPE_UPGRADE_EXTRA_TASKS variable
(From yocto-docs rev: c80bc42afa40fd9eb5acaba24da3ad3b5915a254)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 17:05:04 +01:00
Antonin Godard
ec61c09e0c ref-manual: add missing nospdx class
(From yocto-docs rev: ec41a5bf1a49e5d83bb93a3438ba1cd01f613088)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 17:05:04 +01:00
Antonin Godard
37ebf54d1c ref-manual: add new retain class and variables
Document the new `retain` class with its configuration variables in the
variable index.

(From yocto-docs rev: b62f1be5dada0fb760ff7e0806b16225f7261560)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 17:05:04 +01:00
Antonin Godard
7b717c7e2a ref-manual: add new vex class
Add a brief description on the new vex.bbclass that is used to generate
metadata needed by external tools to check for vulnerabilities.

(From yocto-docs rev: 32cf3414f5ed127f59119e38639bc8dbd57b7891)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 17:05:04 +01:00
Antonin Godard
0116a35c40 ref-manual: add missing CVE_CHECK manifest variables
Variables that can be used for toggling creation of manifest and
specifying the path to the output in the deploy directory.

(From yocto-docs rev: 14131a42a7ea8bbae2165c1b8dbcabd5f28b2b22)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 17:05:04 +01:00
Changqing Li
a8f7f1b87e resulttool/regression.py: skip checking status for ptestresult.rawlogs/ptestresult.sections
ptestresult.rawlogs/ptestresult.sections don't have status is expected,
so skip them to avoid following error when running "resulttool regression
base target":

ERROR: Failed to retrieved base test case status: ptestresult.rawlogs
ERROR: Failed to retrieved base test case status: ptestresult.sections

(From OE-Core rev: c83a535d1b32f7fd292cd9caea1ec962bc3c735b)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 15:57:45 +01:00
Changqing Li
3315ffac47 resulttool/regression.py: fix AttributeError
Fix following AttributeError when running "resulttool regression base target":
  File "/yocto/poky/scripts/lib/resulttool/regression.py", line 322, in regression_common
    res, resstr = compare_result(logger, c, b, base_results[a][c], target_results[a][b], args.limit)
AttributeError: 'Namespace' object has no attribute 'limit'

(From OE-Core rev: d773edde8db2019550916d2552171c45fe31ac2a)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 15:57:45 +01:00
Yi Zhao
8028c989cc wic/rootfs.py: allow --exclude-path option to exclude symlinks
Currently, if we specify a symbolic link in --exclude-path option,
we will get the following error in do_image_wic:

ERROR: --exclude-path: Must point inside the rootfs: usr/bin/hello.link

This is because it uses os.path.realpath to eliminate symbolic links. To
exclude symbolic links, use os.path.abspath instead of os.path.realpath.

(From OE-Core rev: 42e829ac1e9d74646b6dfb327b18b15f6b0df60b)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 15:57:45 +01:00
Enrico Jorns
f8d8f08f50 oeqa/selftest/cases: add basic barebox tests
This adds basic tests for qemuarm and qemuarm64.

So far, barebox fails to run properly under KVM for the same reasons
u-boot fails to run.

A patch series to address the problem was submitted by Ahmad Fatoum
after debugging the oe-selftest failures for this series:

https://lore.kernel.org/barebox/20241009060511.4121157-1-a.fatoum@pengutronix.de/

For now, simply disable KVM for these tests.

(From OE-Core rev: 9284ceb4d32a51c77792d9009bba400d0b17d731)

Signed-off-by: Enrico Jorns <ejo@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 15:57:45 +01:00
Enrico Jorns
52684215ae oeqa/selftest/cases: add basic u-boot test
This adds basic tests for qemuarm and qemuarm64.

So far, U-Boot fails to run properly under KVM since this requires some
special care with instructions used for MMIO accesses.

Reported upstream by Ahmad Fatoum after debugging the oe-selftest
failures for this series:
https://lore.kernel.org/u-boot/2211f9f0-cd7d-4b55-860d-a34c04877e7b@pengutronix.de/

For now, simply disable KVM for these tests.

(From OE-Core rev: cadbd937e6358f9811f3ba7cf20cc50f8edcd844)

Signed-off-by: Enrico Jorns <ejo@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 15:57:44 +01:00
Enrico Jorns
b5c11f2f04 oeqa: support passing custom boot patterns to runqemu
This allows defining non-standard patterns from QEMU tests just as they
are already supported by the testimage.bbclass.

Will allow testing non-Linux shells in QEMU, too (e.g. a U-Boot shell or
another bootloader shell).

(From OE-Core rev: f9e6c3deee5a4159a09396b625a7327f6c204df5)

Signed-off-by: Enrico Jorns <ejo@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 15:57:44 +01:00
Enrico Jorns
6b90b53c7a oeqa/utils/qemurunner: support ignoring vt100 escape sequences
If we talk to terminals that like colors, we need to ignore the vt100
escape sequences when matching strings.

An unprocessed barebox console prompt would e.g. look like:

  ESC[1;32mbarebox@ESC[1;36mARM QEMU virt64:/ESC[0m

where we cannot match for something like "barebox@ARM QEMU virt64:/".
The same applies to colored Linux terminal output of course.

The "\x1b\[" from the regex catches the standard start of ANSI escape
sequence while the rest catches the actual command code executed.

(From OE-Core rev: 33bbe4cb040f890121681865fbcf28bc8213a170)

Signed-off-by: Enrico Jorns <ejo@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 15:57:44 +01:00
Enrico Jorns
776c12c5c8 barebox: set default BAREBOX_CONFIG for qemu machines
These are set in the barebox class rather in the corresponding machines
(where they would belong otherwise) to keep the impact of barebox to
oe-core minimal for now.

"multi_v7_defconfig" is used for qemuarm since this is the default
barebox armv7 config that just enables all supported platforms.

"multi_v8_defconfig" is used for qemuarm64 sine this is the default
barebox armv8 config that just enables all supported platforms.

"efi_defconfig" is used for qemux86-64 which is the primary platform
where barebox will not be the first stage bootloader but an EFI payload.

Since these changes make barebox a provider for virtual/bootloader,
explicitly default to u-boot in the corresponding MACHINE configs to not
unnecessarily surprise users.

(From OE-Core rev: 93da14f8f85202bad3dec9d979d01f4e8f9708d6)

Signed-off-by: Enrico Jorns <ejo@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 15:57:44 +01:00
Marco Felsch
a9531159c5 barebox-tools: add initial barebox tools support
Add initial support to build the barebox tools for the host and the
target.

Some of the tools are generic barebox utilities (like 'bareboximd' for
image meta data inspection or 'bareboxenv' for accessing the barebox
environment) some are SoC family-specific specific utilities (like
'imx-usb-loader' or 'omap3-usb-loader').

(From OE-Core rev: cb3de34a28cde3f9ebd52ba842da9f91c6f0fa66)

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Signed-off-by: Enrico Jorns <ejo@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 15:57:44 +01:00
Marco Felsch
8ca1fd0b72 barebox: add initial support
This adds the support for the barebox bootloader to oe-core. The recipe
is inspired by meta-ptx [1] but is a major rework of the one found there.

Barebox comes with a wide range of supported architectures and follows
the concepts of Linux in various aspects like the driver model, the
shell, or the virtual file system.
This not only eases porting Linux drivers but also makes barebox a
developer-friendly and feature-rich bootloader alternative [2].

For barebox (like for the kernel or other bootloaders) it is quite
likely that people will not just build the original recipe but need to
adapt it, point to custom repositories, apply patch stacks,
COMPATIBLE_MACHINE etc. They may also choose to have different recipe
names for different variants.
Having only a single .bb file and requiring to copy or .bbappend it is
inconvenient and results in unnecessary code duplication. Therefore, the
base support for building barebox is encapsulated in barebox.bbclass
(like kernel.bbclass for the kernel).

Adds barebox to maintainers.inc but excludes it from the maintainers
check since with the current check mechanism barebox would be skipped
(and making the check fail) due to not being the PREFERRED_PROVIDER for
virtual/bootloader.

[1] https://github.com/pengutronix/meta-ptx/tree/master/recipes-bsp/barebox
[2] https://www.barebox.org/demo/?graphic=0

(From OE-Core rev: 5c69f5626278a6e9756188a5771b18075380f52d)

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Signed-off-by: Enrico Jorns <ejo@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 15:57:44 +01:00
Richard Purdie
ba2fcb968e bitbake: utils: Improve multiple lock handling
We should release locks in the opposite order to the order we locked
them in to avoid potentially problematic behaviour. This hasn't been
observed with our current usage and is just a preventative improvement.

(Bitbake rev: 4fbef87adaca2df8c1e877aec5588c2e5466f252)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 12:17:36 +01:00
Michael Opdenacker
39400c4a2b bitbake: bitbake-prserver: use PRSERV_UPSTREAM as default setting
Instead of PRSERVER_UPSTREAM.
The intended variable name is PRSERV_UPSTREAM, as
already used in lib/prserv/serv.py, an consistently
with the PRSERV_HOST variable name.

(Bitbake rev: b0c277f16f9fae51914024c1daecd5d3e4fac5c2)

Signed-off-by: Michael Opdenacker <michael.opdenacker@rootcommit.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 12:17:36 +01:00
Chris Laplante
0f83df527d bitbake: bitbake-server: use with to avoid ResourceWarning
Prevents the following warning in bitbake-cookerdaemon.log:

2386729 10:54:16.195427 Exiting (socket: True)
2386729 10:54:16.201065 Exiting as we could obtain the lock
sys:1: ResourceWarning: unclosed file <_io.TextIOWrapper name='/home/laplante/main_yocto/build/bitbake-cookerdaemon.log' mode='a+' encoding='UTF-8'>

(Bitbake rev: 8dbf1ec8139d9dd7f52c1773cccbe7696b3ec1b4)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 12:17:36 +01:00
Claus Stovgaard
331270628c lib/oe/package-manager: skip processing installed-pkgs with empty globs
We can skip processing the installed-pkgs file if globs is empty.
This is the case if self.d.getVar for IMAGE_INSTALL_COMPLEMENTARY
returns an empty string. If globs is an empty string the result from
processing with empty glob in oe-pkgdata-util will always be 0 packages
to install.

Instead of return early on this we just skip and still generate the
locale archive if needed.

(From OE-Core rev: 160c45c83d5addf01e4834cf896af871bd6fca7f)

Signed-off-by: Claus Stovgaard <claus.stovgaard@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 12:17:03 +01:00
Jermain Horsman
98cd985ecb libarchive: Update SRC_URI to use https
(From OE-Core rev: 1311e94e3983bc1d5ad0d08a6f30081a2c3bef63)

Signed-off-by: Jermain Horsman <jermain.horsman@nedap.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 12:17:03 +01:00
Pavel Zhukov
0d564b3ad1 package_rpm: Check if file exists before open()
Exception handler tries to read() /etc/passwd file in sysroot
and if file doesn't exist for any reason then it raises FileNotFoundError
exception which mask the original source of the problem and makes
debugging of the issue more difficult.

Fixes:
Exception: FileNotFoundError: [Errno 2] No such file or directory:
'/codebuild/output/src1899304708/src/build/tmp-container/work/core2-64-oe-linux/emqx-bin/4.3.12/recipe-sysroot/etc/passwd'

(From OE-Core rev: 4ad9a0e0b11eb7bc5a3dd45fc8945e094ea949e9)

Signed-off-by: Pavel Zhukov <pavel@zhukoff.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 12:17:03 +01:00
Ross Burton
a475c8ab38 insane: rewrite package_qa_check_arch
Reorder and comment the architecture checks to make it clearer what they
are actually checking.

(From OE-Core rev: 78db9e79e1a307ffb8436e26656bfb98efb513bc)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 12:17:03 +01:00
Ross Burton
fe5cf7dc81 insane: use oe.cachedpath.CachedPath instead of os.path
The insane QAPATHTESTs make many os.stat() calls, the majority of which
are redundant with caching as the initial sweep does a stat() on every
entry to determine if it is a file or a directory, and from then on each
test that does further stat()s is redundant as the tree doesn't change.

Switch os.stat() and friends (os.path.isfile(), etc) to use a common
oe.cachedpath.CachedPath() instance that is shared between all of the
functions, meaning only one stat is done.

In my test case of ltp:do_package_qa, this reduces the time taken from
44s to 37s.

(From OE-Core rev: cad3c889439fd6a007debd6f2f6578f4a1e16c9c)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-11 12:17:03 +01:00