Compare commits

..

275 Commits

Author SHA1 Message Date
Steve Sakoman
e51bf557f5 build-appliance-image: Update to kirkstone head revision
(From OE-Core rev: d90e4d5e3cca9cffe8f60841afc63667a9ac39fa)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-24 10:54:48 -10:00
Steve Sakoman
989cd671cb Revert "oeqa/utils/gitarchive: fix tag computation when creating archive"
This reverts commit d0f8d5915a9ad3340a553b4a22f91074d7e679c9.

This is causing errors with buildperf on the autobuilder.

(From OE-Core rev: 87eee047cf77bc3fc2c7d6b2a4f35d2642919111)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-24 10:53:11 -10:00
Steve Sakoman
64242e2844 build-appliance-image: Update to kirkstone head revision
(From OE-Core rev: 6c7fef37d4286f6bfc7b1dcb2d1e543a110a7f6f)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:32:58 -10:00
Steve Sakoman
e6076b6269 poky.conf: bump version for 4.0.13
(From meta-yocto rev: 8b50fe692a24a80b5c3cd1f816bcdd3e0b00418a)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Michael Opdenacker
dfa76689b8 dev-manual: licenses: update license manifest location
- Fix broken markup (wasn't displaying properly)
- Update the path to the directory containing license information
  (this change applies to the kirkstone branch)
- Fix typo later in the document

(From yocto-docs rev: 8f02741de867125f11a37822b2d206be180d4ee3)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Michael Opdenacker
3fde5d606b manuals: document "mime-xdg" class and MIME_XDG_PACKAGES
(From yocto-docs rev: 4415d95358497b23f0a7b10f9ee31203ccc01eff)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Michael Opdenacker
870c6a73a7 ref-manual: qa-checks: align with master
(From yocto-docs rev: 56bbfab163a6b42aaa32d9350f30b2414a60fc75)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Roland Hieber
131beeedb6 template: fix typo in section header
(From yocto-docs rev: 325c1cbdf157ae9e4f7fecc330e60056ff056d91)

Signed-off-by: Roland Hieber <rhi@pengutronix.de>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Michael Opdenacker
fde8ab5b90 dev-manual: licenses: mention SPDX for license compliance
(From yocto-docs rev: cdd98a93f36694404393279d29743d97edd9be22)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
CC: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Michael Opdenacker
593618f139 contributor-guide: recipe-style-guide: add Upstream-Status
(From yocto-docs rev: 0618611fa049db2b9717cbe609c583a5bb16954e)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Michael Opdenacker
b17bb4e9c0 dev-manual: new-recipe.rst fix inconsistency with contributor guide
This document was suggesting a way to version pre-releases
which doesn't match the latest recommendations from the
contributor guide.

(From yocto-docs rev: f37c9e7d44a2f7aefc3b505ae4461e6f1a8b0bb2)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Michael Opdenacker
31af34e1af documentation/README: align with master
(From yocto-docs rev: 8638eadda09e932534eb6bb345b4d0299974b219)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Michael Opdenacker
a2de040a44 dev-manual: disk-space: improve wording for obsolete sstate cache files
Replace "duplicate" by "obsolete", more appropriate.
"duplicate" probably comes from the "--remove-duplicated"
option of the sstate-cache-management.sh script.

Improve other sentences too.

(From yocto-docs rev: 20206debecac0848dc18765846b990ac994209ec)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Reported-by: Richard Purdie <richard.purdie@linuxfoundation.org>
CC: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Michael Opdenacker
bdf0b48912 sdk-manual: extensible.rst: align with master branch
In particular, this addresses multiple formatting issues.
Aligning with the master branch as all updates apply to
kirkstone too.

(From yocto-docs rev: 5e2ec35e3d63f9c73726122fe2b3dd6d6f85a77e)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Michael Opdenacker
b099a1c252 manuals: update former references to dev-manual/common-tasks
(From yocto-docs rev: f8bb4c392912f15bb78f6f25910f85897abb4e3d)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Michael Opdenacker
337a21080b dev-manual: split common-tasks.rst
Reusing content from the master branch which underwent
this change earlier.

This change makes it much easier to backport manual
updates to the kirkstone LTS branch.

To make the change and future updates simpler, reused file contents
from master, only excluding changes which don't apply to kirkstone.

(From yocto-docs rev: 95171233f0e96c00d55ed40cf713c62e6df57b8d)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Michael Opdenacker
90e943b8d1 ref-manual: add new variables
Backported from "master" and used in dev-manual
documents to be synchronized with master.

(From yocto-docs rev: 1938d6017a1c9acc2c5f57c4cc6a87b918609381)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Michael Opdenacker
2be874d5b4 ref-manual: add Initramfs term
Backported from the master branch

(From yocto-docs rev: f5ecf1f407585617d258b6afc706d43fdbb33547)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Michael Opdenacker
5ea10fc05b ref-manual: add meson class and variables
Backported from the master branch

(From yocto-docs rev: 266540ffdf84df14ebde374927e6e8ddd8ee688e)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Alexander Kanavin
598c3d25c6 cargo.bbclass: set up cargo environment in common do_compile
cargo_do_compile runs only if the recipe is built using cargo
as the top level tool. Some recipes hide usage of cargo inside setuptools
(or autoconf) and use do_compile definitions specific to those,
and so the environment isn't properly set up.

This was exposed by latest versions of python3-cryptography.

(From OE-Core rev: a3f566fcbfc02e0a3b3f6a676d6dde88a5b50506)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9f4ff643a028d7f5670d80861f2ce19ca2d90faa)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Pavel Zhukov
1cdf86a68f dbus: Specify runstatedir configure option
Without specifing runstatedir tmpfiles.d is configured to use /var/run
for dbus and this causes deprecation warnings in system logs.

(From OE-Core rev: 55529a5cb481b64ab4390728e01650bc585be602)

Signed-off-by: Pavel Zhukov <pavel.zhukov@huawei.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4df1a16e5c38d0fb724f63d37cc032aa37fa122f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Martin Jansa
989673a26f tcl: prevent installing another copy of tzdata
It checks build host filesystem and if it doesn't find UTC or GMT
files it installs another copy of tzdata files in:
/usr/lib/tcl8.6/tzdata

Buildhistory shows the difference:
-PKGSIZE = 2227075
+PKGSIZE = 3433088

See the autodetection in configure.in:
  #------------------------------------------------------------------------
  #       Check whether the timezone data is supplied by the OS or has
  #       to be installed by Tcl. The default is autodetection, but can
  #       be overridden on the configure command line either way.
  #------------------------------------------------------------------------

  AC_MSG_CHECKING([for timezone data])
  AC_ARG_WITH(tzdata,
      AC_HELP_STRING([--with-tzdata],
          [install timezone data (default: autodetect)]),
      [tcl_ok=$withval], [tcl_ok=auto])

  #
  # Any directories that get added here must also be added to the
  # search path in ::tcl::clock::Initialize (library/clock.tcl).
  #
  case $tcl_ok in
      no)
          AC_MSG_RESULT([supplied by OS vendor])
      ;;
      yes)
          # nothing to do here
      ;;
      auto*)
          AC_CACHE_VAL([tcl_cv_dir_zoneinfo], [
          for dir in /usr/share/zoneinfo \
                  /usr/share/lib/zoneinfo \
                  /usr/lib/zoneinfo
          do
                  if test -f $dir/UTC -o -f $dir/GMT
                  then
                          tcl_cv_dir_zoneinfo="$dir"
                          break
                  fi
          done])
          if test -n "$tcl_cv_dir_zoneinfo"; then
              tcl_ok=no
              AC_MSG_RESULT([$dir])
          else
              tcl_ok=yes
          fi
      ;;
      *)
          AC_MSG_ERROR([invalid argument: $tcl_ok])
      ;;
  esac
  if test $tcl_ok = yes
  then
      AC_MSG_RESULT([supplied by Tcl])
      INSTALL_TZDATA=install-tzdata
  fi

(From OE-Core rev: 79498ea0e9eb88ad0175f7376c57efb46217a4a4)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3ace9fbfeb42ebf920812e3dd6d665b8b20a1ca0)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Markus Niebel
d95804e584 wic: fix wrong attempt to create file system in upartitioned regions
The kickstart parser defaults fstype to "vfat". This leads to an attempt
to create an empty file system even for regions configured with "--no-table"
if used without fstype when no --sourceparams given.

The fix tests for fstype "none" or no_table in Partition prepare method.
This will omit the file system creation an the potential error for small
region with --no-table option.

(From OE-Core rev: af9f392a5e259b681077f25fa263965714a73a05)

Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit db771a4cd36bf291a8b68edfd905e03243f2c8b3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Khem Raj
d749d2f33e build-sysroots: Add SUMMARY field
Fixes build QA warning about [missing-metadata]

(From OE-Core rev: 29fe45fe8857f72705183a87b4e85a3723900a78)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4f4c7130f11c069ab18c374dcbfb1276ef37be60)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Richard Purdie
8df5830dda resulttool/report: Avoid divide by zero
Avoid a divide by zero traceback if unfortunate test counts are encountered.

(From OE-Core rev: b95c6a5278d44fddfbaea45cc78324f1e099187c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c5aeea53dfacb53dedb8445cb3523dc3a8cb6dca)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Alexis Lothoré
f449d0a84c oeqa/utils/gitarchive: fix tag computation when creating archive
Sporadic errors have been observed in autobuilder when trying to store new
tests results:

error: failed to push some refs to 'push.yoctoproject.org:yocto-testresults'
hint: Updates were rejected because the tag already exists in the remote.

The new tag name is generated by gitarchive based on known tags from the
repository (learnt with git tag). In autobuilder case, this repository is a
shallow clone, so git tag only returns most recent tags, which mean we
could miss some older tags which exist in remote but not locally. In this
case, gitarchive will likely create a tag which already exists in remote,
and so will fail to push

Fix this tag duplication by using git ls-remote to learn about existing
tags instead of git tag. Two places which wrongly read only local tags has
been identified in gitarchive:  expand_tag_strings and get_test_runs

Fixes [YOCTO #15140]

(From OE-Core rev: d0f8d5915a9ad3340a553b4a22f91074d7e679c9)

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5a0a7da85a3acfd4a20a07478eabefdab60f313a)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:16 -10:00
Michael Opdenacker
61960b99d2 scripts/create-pull-request: update URLs to git repositories
Also remove the git.pokylinux.org URL, no longer used.

(From OE-Core rev: c88343380bd6a66f6e18637170c53b003594af7a)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 47b88d143c2fc61ce0e03b7eb3a9dbcffadbf5b1)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:15 -10:00
Peter Suti
2b7735291d externalsrc: fix dependency chain issues
Instead of deleting setscene tasks, now SSTATE_SKIP_CREATION is set instead.

This seems to fix the compile issues where the populate_sysroot task was
not run when an externalsrc recipe was built as a dependency.

[YOCTO #15164]

[RP addition: The deltask was added by me in 2012 when the class was created.
The trouble is bitbake assumes 'sstate' tasks have a setscene task and by deleting
the setscene task, bitbake stops thinking the task can be accelerated. There is other
code in the sysroot code which assumes some tasks are always sstate tasks.

We cannot delete the task without changes to the way bitbake learns about 'setscene'
tasks so the patch is correct, avoiding creating files is the better approach given
the way the world works now.

There would be concerns about exisitng sstate reuse however this shouldn't occur
since SRC_URI changes and that will change the underlying hashes. Hash equivalency
could potentially cause issues by joining hashes together again however if the output
matches, that shouldn't in theory cause any issue.]

(From OE-Core rev: f6bb8438a18dfa2a520ad6fa65662d908f4ef0ed)

Signed-off-by: Peter Suti <peter.suti@streamunlimited.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ee4667a24ccdd8c9d547e73aecf661e6a1283890)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:15 -10:00
Richard Purdie
4682ae38f2 pseudo: Fix to work with glibc 2.38
This adds a horrible hack to get pseudo working with glibc 2.38. We can't
drop _GNU_SOURCE to something like _DEFAULT_SOURCE since we need the defines
the gnu options bring in. That leaves using internal glibc defines to disable
the c23 versions of strtol/fscanf and friends. Which would break pseudo
build with 2.38 from running on hosts with older glibc.

We'll probably need to come up with something better but this gets glibc 2.38
and working and avoids autobuilder failures.

(From OE-Core rev: 909fd25c2ebd25f5d3bc560e26f9df6862e033d0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 596fb699d470d7779bfa694e04908929ffeabcf7)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:15 -10:00
Richard Purdie
cb2e2c6d2a vim: Upgrade 9.0.1664 -> 9.0.1894
This includes multiple CVE fixes.

The license change is due to changes in maintainership, the license
itself is unchanged.

(From OE-Core rev: 5f78a010a4ff53f4a216ec2ebe9b7a44c5c88790)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 91e66b93a0c0928f0c2cfe78e22898a6c9800f34)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:15 -10:00
Archana Polampalli
98393b32a9 vim: upgrade 9.0.1592 -> 9.0.1664
Fixes:
https://nvd.nist.gov/vuln/detail/CVE-2023-3896
8154e642a (tag: v9.0.1664) patch 9.0.1664: divide by zero when scrolling with 'smoothscroll' set

(From OE-Core rev: d5ba3546053cff49ee1ea66a97fe4b4a0aa76308)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4a1ab744142c9229f03a359b45e5e89a1fbae0d3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:15 -10:00
Etienne Cordonnier
aaa6a4947d vim: update obsolete comment
vim 8.3 has been out for a long time, so this comment is obsolete.
However we still need UPSTREAM_VERSION_UNKNOWN, since we ignore
the last digit of the upstream version number.

Test result:
$ devtool check-upgrade-status vim
  ...
  INFO: vim                       9.0.1592        UNKNOWN         Tom Rini <trini@konsulko.com> c0370529c027abc5b1698d53fcfb8c02a0c515da

(From OE-Core rev: 65f5de85c3f488136d1ec2b1f7fe8d8426d6c5b3)

(From OE-Core rev: 72af322b6b8afd64a59b30a4f0fc3f8c6dfaa06a)

Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 868a19357841470eb55fb7f1c4ab1af09dea99ed)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:15 -10:00
Wang Mingyu
c84d629b17 tar: upgrade 1.34 -> 1.35
CVE-2022-48303.patch
removed since it's included in 1.35

License-Update: http changed to https

Changelog:
===========
* Fail when building GNU tar, if the platform supports 64-bit time_t
  but the build uses only 32-bit time_t.
* Leave the devmajor and devminor fields empty (rather than zero) for
  non-special files, as this is more compatible with traditional tar.
* Bug fixes
** Fix interaction of --update with --wildcards.
** When extracting archives into an empty directory, do not create
   hard links to files outside that directory.
** Handle partial reads from regular files.
** Warn "file changed as we read it" less often.
** Fix --ignore-failed-read to ignore file-changed read errors
** Fix --remove-files to not remove a file that changed while we read it.
** Fix --atime-preserve=replace to not fail if there was no need to replace,
   either because we did not read the file, or the atime did not change.
** Fix race when creating a parent directory while another process is
   also doing so.
** Fix handling of prefix keywords not followed by "." in pax headers.
** Fix handling of out-of-range sparse entries in pax headers.
** Fix handling of --transform='s/s/@/2'.
** Fix treatment of options ending in / in files-from list.
** Fix crash on 'tar --checkpoint-action exec=\"'.
** Fix low-memory crash when reading incremental dumps.
** Fix --exclude-vcs-ignores memory allocation misuse.

(From OE-Core rev: 4910b1e46a67dcdc3f7ebbab648a2b365c1910da)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c63769de05ce08c0627d302d14316ced31816b4d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:15 -10:00
Sanjana
07593122c9 binutils: stable 2.38 branch updates
Below commits on binutils-2.38 stable branch are updated.

ea5fe5d01e5 PR30697, ppc32 mix of local-dynamic and global-dynamic TLS

(From OE-Core rev: e8becc003d6926cc347ec42c0f13dcd5d9042b4d)

Signed-off-by: Sanjana <sanjanasanju1608@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:15 -10:00
Sanjana
ce24d58dda glibc: stable 2.35 branch updates
Below commits on glibc-2.35 stable branch are updated.

561e9dadc0 x86: Fix incorrect scope of setting `shared_per_thread`
1c3ecf5858 x86: Use `3/4*sizeof(per-thread-L3)` as low bound for NT threshold.
47c7d2eb03 x86: Fix slight bug in `shared_per_thread` cache size calculation.
d1b1da26ea x86: Increase `non_temporal_threshold` to roughly `sizeof_L3 / 4`
e19af583b4 elf: _dl_find_object may return 1 during early startup.

(From OE-Core rev: b834674ada7329ab60130ebe7350dff592060ecf)

Signed-off-by: Sanjana <sanjanasanju1608@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:15 -10:00
Ross Burton
f15ebb2af3 gcc: Fix -fstack-protector issue on aarch64
This series of patches fixes deficiencies in GCC's -fstack-protector
implementation for AArch64 when using dynamically allocated stack space.
This is CVE-2023-4039.  See:

https://developer.arm.com/Arm%20Security%20Center/GCC%20Stack%20Protector%20Vulnerability%20AArch64
https://github.com/metaredteam/external-disclosures/security/advisories/GHSA-x7ch-h5rf-w2mf

for more details.

(From OE-Core rev: e6592fc8308240872300a6295162e14d54c5a905)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:15 -10:00
Sanjana
2a7595f1c1 binutils: Fix CVE-2022-48065
(From OE-Core rev: 860ecdbbf5cfd8737c914522af16dbc8bee0f72f)

Signed-off-by: Sanjana <sanjanasanju1608@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:15 -10:00
Yogita Urade
cfc7247089 cups: fix CVE-2023-32360
An authentication issue was addressed with improved state management.
This issue is fixed in macOS Big Sur 11.7.7, macOS Monterey 12.6.6,
macOS Ventura 13.4. An unauthenticated user may be able to access
recently printed documents.

References:
https://ubuntu.com/security/CVE-2023-32360
https://security-tracker.debian.org/tracker/CVE-2023-32360

(From OE-Core rev: b04f40d7afba07ff602bffffc9a517ccfdd44850)

Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:15 -10:00
Soumya Sambu
de7443a25d go: Fix CVE-2023-39319
The html/template package does not apply the proper rules for handling
occurrences of "<script", "<!--", and "</script" within JS literals in
<script> contexts. This may cause the template parser to improperly
consider script contexts to be terminated early, causing actions to be
improperly escaped. This could be leveraged to perform an XSS attack.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-39319

(From OE-Core rev: afdc322ecff4cfd8478c89a03f7fce748a132b48)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-23 05:26:15 -10:00
Michael Opdenacker
5c556073ac dev-manual: common-tasks: mention faster "find" command to trim sstate cache
[YOCTO #15182]

(From yocto-docs rev: dd778676c946faa8702e8fcc9126ad9537e7a21e)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Reported-by: Yoann CONGAL <yoann.congal@smile.fr>
Reported-by: Randy MacLeod <randy.macleod@windriver.com>
Reported-by: Josef Holzmayr <jester@theyoctojester.info>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-18 04:28:04 -10:00
Michael Halstead
ad9420b072 yocto-uninative: Update to 4.3
Add in stable updates to glibc 2.38 to fix malloc bugs

(From OE-Core rev: 26309ba6ef5b776d6bc45b984261b91e6c8c5a94)

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 39f987fcb20ad7c0e45425b9f508d463c50ce0c1)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-18 04:28:04 -10:00
Siddharth Doshi
a77949631a gdb: Fix CVE-2023-39128
Note: The Fix needs to be pushed in gdb rather than bintuils-gdb as we are
disabling gdb in binutils configure.

Upstream-Status: Backport from [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=033bc52bb6190393c8eed80925fa78cc35b40c6d]
CVE: CVE-2023-39128
(From OE-Core rev: 1a19a101cecc578aac84e365a361b76f129fe655)

Signed-off-by: Siddharth Doshi <sdoshi@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-18 04:28:04 -10:00
Yogita Urade
e60ba6d4fe webkitgtk: fix CVE-2022-48503
The issue was addressed with improved bounds checks. This issue
is fixed in tvOS 15.6, watchOS 8.7, iOS 15.6 and iPadOS 15.6,
macOS Monterey 12.5, Safari 15.6. Processing web content may
lead to arbitrary code execution.

References:
https://nvd.nist.gov/vuln/detail/CVE-2022-48503
https://support.apple.com/en-us/HT213340
https://bugs.webkit.org/show_bug.cgi?id=241931

(From OE-Core rev: 8f956bc19963a02ee7b908bb49301a2ea5052066)

Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-18 04:28:04 -10:00
Meenali Gupta
084b7e5f9c flac: fix CVE-2020-22219
Buffer Overflow vulnerability in function bitwriter_grow_ in flac before
1.4.0 allows remote attackers to run arbitrary code via crafted input to
the encoder.

(From OE-Core rev: 29c6287287c9f26c1d6f9fddf8d2852409bbbbec)

Signed-off-by: Meenali Gupta <meenali.gupta@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-18 04:28:03 -10:00
Soumya Sambu
670a3345f5 libxml2: Fix CVE-2023-39615
Xmlsoft Libxml2 v2.11.0 was discovered to contain a global buffer overflow via
the xmlSAX2StartElement() function at /libxml2/SAX2.c. This vulnerability
allows attackers to cause a Denial of Service (DoS) via supplying a crafted XML
file.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-39615

(From OE-Core rev: 9a2ad95caffae37014fa27d9b20d45f9779d0fbf)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-18 04:28:03 -10:00
Yogita Urade
062cbf2be7 qemu: fix CVE-2021-3638
QEMU: ati-vga: inconsistent check in ati_2d_blt() may lead to
out-of-bounds write.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2021-3638
https://lists.nongnu.org/archive/html/qemu-devel/2021-09/msg01682.html

(From OE-Core rev: ebbdbb68a7804accd5430dd05f7899599ddbacd8)

Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-18 04:28:03 -10:00
Yogita Urade
fb8ca2cbec dropbear: fix CVE-2023-36328
Integer Overflow vulnerability in mp_grow in libtom libtommath before
commit beba892bc0d4e4ded4d667ab1d2a94f4d75109a9, allows attackers to
execute arbitrary code and cause a denial of service (DoS).

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-36328
https://github.com/libtom/libtommath/pull/546

(From OE-Core rev: 38709b0d35e7bd6760285bfa926dc85985c5cdcd)

Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-18 04:28:03 -10:00
Narpat Mali
b402c3ac78 python3-pygments: Fix CVE-2022-40896
CVE-2022-40896:
A ReDoS issue was discovered in pygments/lexers/smithy.py in pygments
through 2.15.0 via SmithyLexer.

The CVE issue is fixed by 3 different commits between the releases 2.14.0
(for Smithy lexer), 2.15.0 (for SQL+Jinja lexers) and 2.15.1 (for Java
properties) as per: https://pyup.io/posts/pyup-discovers-redos-vulnerabilities-in-top-python-packages-part-2/

1. Smithy lexer commit from 2.14.0 release applies successfully on 2.11.2 version.
Commit: dd52102c38
Hence, backported the patch as CVE-2022-40896.patch.

2. SQL+Jinja lexers commit from 2.15.0 release doesn't apply on 2.11.2 version.
Commit: 97eb3d5ec7
Actually, this code doesn't exist in 2.11.2 version and it has been introduce by
python3-pygments 2.13.0 version. Hence, this is not vulnerable for 2.11.2 version.
SQL+Jinja lexers is introduced by: 0bdbd5992b

3. Java properties commit from 2.15.1 release also doesn't apply on 2.11.2 version.
Commit: fdf182a7af
Actually, this code also doesn't exist in 2.11.2 version as the code has been modified
in python3-pygments 2.14.0 by: a38cb38e93
Hence, this is also not vulnerable for 2.11.2 version.

(From OE-Core rev: ebb224e65a7e1402ccf0d9517bd72748c18e012e)

Signed-off-by: Narpat Mali <narpat.mali@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-18 04:28:03 -10:00
Michael Opdenacker
5d822b3131 manuals: add new contributor guide
(From yocto-docs rev: 028a1b89fbb6ee7f02a7ca8cd481931e096d764b)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-08 16:09:42 -10:00
Michael Opdenacker
be72b71280 ref-manual: system-requirements: update supported distros
- Update according to changes in SANITY_TESTED_DISTROS
  (meta-poky/conf/distro/poky.conf)

- No longer declare as "Supported" the distributions versions
  which are End of Life for their vendors, as some of them
  (Ubuntu for example) ship updates to subscribers only,
  which the Yocto Project has no access to.

- List distribution versions which were previously tested
  for the branch of the Yocto Project being considered.

(From yocto-docs rev: 84d7f2e2a218502b4af4fc2e7de1761e489f86f4)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-08 16:09:42 -10:00
Lee Chee Yang
cd8e085ad3 migration-guides: add release notes for 4.0.12
(From yocto-docs rev: d43d4314df65b7e7c6d6b79c777d11c5a7135c43)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-08 16:09:42 -10:00
Changqing Li
963908553b sysklogd: fix integration with systemd-journald
Fix an issue with early log messages being lost when running in systemd.

(From OE-Core rev: 47a1dd7f389e3cf4ac2dc5fc21dccc870aafab4a)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-08 16:09:42 -10:00
Abe Kohandel
4bf9d11c4b libdnf: resolve cstdint inclusion for newer gcc versions
Depending on the host gcc version, libdnf fails to compile due to
missing cstdint inclusions. These issue have already been addressed
upstream, add the patches to resolve this for older versions of the
library.

These commits are taken directly from the libdnf project at
https://github.com/rpm-software-management/libdnf

(From OE-Core rev: e1d9bc1f88bd989bafc20063938d7a70e1da104f)

Signed-off-by: Abe Kohandel <abe.kohandel@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-08 16:09:42 -10:00
Martin Jansa
b714a94ea7 efivar: backport 5 patches to fix build with gold
* LDFLAGS += "-fuse-ld=bfd" in the recipe doesn't work and
  it still fails to build with ld-is-gold in DISTRO_FEATURES

  removal of this line sent to master in:
  https://lists.openembedded.org/g/openembedded-core/message/185167

* the most important ones are the 1st which removes --add-needed
  and the last which removes src/include/workarounds.mk completely
  while 2-4 patches just update src/include/workarounds.mk for the
  last one to apply cleanly

* alternatively we can bump SRCREV to latest 38 as master did in:
  https://git.openembedded.org/openembedded-core/commit/?id=4df808c616f847d90203582fd950a49bb8360dd0
  which brings 23 commits, but instead of adding 5 more patches
  allows to remove 5

(From OE-Core rev: d5c7ec0be32aa75fa7973840adf5251d22018766)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-08 16:09:41 -10:00
Chee Yang Lee
0fb3fd0a0d python3: upgrade to 3.10.13
Release date: 2023-08-24

Security
gh-108310: Fixed an issue where instances of ssl.SSLSocket were
vulnerable to a bypass of the TLS handshake and included protections
(like certificate verification) and treating sent unencrypted data as if
it were post-handshake TLS encrypted data. Security issue reported as
CVE-2023-40217 by Aapo Oksman. Patch by Gregory P. Smith.

Library
gh-107845: tarfile.data_filter() now takes the location of symlinks into
account when determining their target, so it will no longer reject some
valid tarballs with LinkOutsideDestinationError.

Tools/Demos
gh-107565: Update multissltests and GitHub CI workflows to use OpenSSL
1.1.1v, 3.0.10, and 3.1.2.

C API
gh-99612: Fix PyUnicode_DecodeUTF8Stateful() for ASCII-only data:
*consumed was not set.

(From OE-Core rev: a30e51b8d13912f0d68bfffcd2d8ae6431d2b863)

Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-08 16:09:41 -10:00
Archana Polampalli
f1de33df8b nasm: fix CVE-2020-21528
A Segmentation Fault issue discovered in in ieee_segment function in outieee.c
in nasm 2.14.03 and 2.15 allows remote attackers to cause a denial of service
via crafted assembly file.

References:
https://nvd.nist.gov/vuln/detail/CVE-2020-21528

Upstream patches:
93c774d482

(From OE-Core rev: 87c4ec2d73ac2e52005e16e38a9a12affb8d51bd)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-08 16:09:41 -10:00
Chee Yang Lee
4eb5af2d8a file: fix CVE-2022-48554
ignore changes to FILE_RCSID part.

(From OE-Core rev: 20b5ead99d4904e70ea22f573bfefec8c6e862a2)

Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-08 16:09:41 -10:00
Chee Yang Lee
91ea1ab7c6 libssh2: fix CVE-2020-22218
(From OE-Core rev: a0b41511766130883e93b5b8a07801a836beeb67)

Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-08 16:09:41 -10:00
Kai Kang
4c27009f16 webkitgtk: fix CVE-2023-23529
Backport and rebase patch to fix CVE-2023-23529.

CVE: CVE-2023-23529

(From OE-Core rev: f8bce477ad88da70c3a4196912ba72049b2aa765)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-08 16:09:41 -10:00
Meenali Gupta
908738d644 busybox: fix CVE-2022-48174
There is a stack overflow vulnerability in ash.c:6030 in busybox
vbefore 1.35. In the environment of Internet of Vehicles, this
vulnerability can be executed from command to arbitrary code execution.

(From OE-Core rev: 56b90b5f2da661bfac3f2d751fc09e918429ec87)

Signed-off-by: Meenali Gupta <meenali.gupta@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-08 16:09:41 -10:00
Soumya Sambu
5bdd860ee5 ncurses: fix CVE-2023-29491
Backport patch to fix CVE-2023-29491.

(From OE-Core rev: 4d79b1cc4178ba88830bab59a45163bbddf586ce)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-08 16:09:41 -10:00
Adrian Freihofer
d01be5cf84 json-c: fix CVE-2021-32292
This is a read past end of buffer issue in the json_parse test app,
which can happened with malformed json data. It's not an issue with the
library itself. For what ever reason this CVE has a base score of 9.8.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2021-32292

Upstream issue:
https://github.com/json-c/json-c/issues/654

The CVE is fixed with version 0.16 (which is already in all active
branches of poky).

(From OE-Core rev: a7b93651028b55d71b8db53ea831eee7fd539f33)

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-08 16:09:41 -10:00
Hitendra Prajapati
be24e22651 libtiff: fix CVE-2023-26966 Buffer Overflow
Upstream-Status: Backport from b0e1c25dd1

(From OE-Core rev: 0619953c9d87ec2dd670dc50f15170e5c42f95c7)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-08 16:09:41 -10:00
Vijay Anusuri
a56109b944 inetutils: Backport fix for CVE-2023-40303
Upstream-commit: https://git.savannah.gnu.org/cgit/inetutils.git/commit/?id=e4e65c03f4c11292a3e40ef72ca3f194c8bffdd6
& https://git.savannah.gnu.org/cgit/inetutils.git/commit/?id=9122999252c7e21eb7774de11d539748e7bdf46d

(From OE-Core rev: 2d2fc8e2b0eaa20f6bf8cfc0d1acd908f3dac2ec)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-08 16:09:41 -10:00
Hitendra Prajapati
b19575391d tiff: fix CVE-2023-2908,CVE-2023-3316,CVE-2023-3618
Backport fixes for:
* CVE-2023-2908 - Upstream-Status: Backport from 9bd48f0dbd
* CVE-2023-3316 - Upstream-Status: Backport from d63de61b1e
* CVE-2023-3618 - Upstream-Status: Backport from 881a070194 && b5c7d4c4e0

(From OE-Core rev: d37cf315135c6778774a1bee458e61480f808aa5)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-09-08 16:09:41 -10:00
Narpat Mali
e42cc7d900 python3-git: upgrade 3.1.27 -> 3.1.32
The delta between 3.1.27 & 3.1.32 contains the CVE-2022-24439 &
CVE-2023-40267 fixes and other bugfixes.

Changelog:
https://github.com/gitpython-developers/GitPython/releases/tag/3.1.32
https://gitpython.readthedocs.io/en/stable/changes.html#id5

- Bump cygwin/cygwin-install-action from 3 to 4 by @dependabot in #1572
- Fix up the commit trailers functionality by @itsluketwist in #1576
- Name top-level exceptions as private variables by @Hawk777 in #1590
- fix pypi long description by @eUgEntOptIc44 in #1603
- Don't rely on del by @r-darwish in #1606
- Block insecure non-multi options in clone/clone_from by @Beuc in #1609
- Fix Sphinx rendering errors by @stephan-cr in #1524
- tests: Use command -v instead of third-party which program by @mgorny in #1525
- fix/add allow_unsafe_* params in docstrings + fix typo by @obfusk in #1530
- use tempfile.TemporaryDirectory & fix clone_from_unsafe_protocol tests by @obfusk in #1531
- Fix some resource leaks by open file handles by @marlamb in #1532
- fix files list on file rename by @teknoraver in #1537
- Declare support for Python 3.11 by @hugovk in #1541
- Fix ignored by @Lightborne in #1545
- Fix timezone parsing functions for non-hour timezones by @jcowgill in #1547
- Enable user to override default diff -M arg by @mellowed100 in #1551
- Remove optional from two member variables by @Sineaggi in #1550
- Fix RecursionError when iterating streams by @eric-wieser in #1554
- Fix get_values() so it correctly loads section names by @Codym48 in #1555
- Add datetime.datetime type to commit_date and author_date by @SergeantMenacingGarlic in #1501
- Bump cygwin/cygwin-install-action from 2 to 3 by @dependabot in #1514
- Fix command injection by @stsewd in #1518
- Document PushInfoList by @skinitimski in #1522
- Fix type hint on create_tag by @drewcassidy in #1523
- Block insecure options and protocols by default by @stsewd in #1521
- Make the git.__version__ re-appear.

(From OE-Core rev: 8ceaeff90023e51c7e874464f026b30d24035bda)

Signed-off-by: Narpat Mali <narpat.mali@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-30 04:46:36 -10:00
Ross Burton
1ba2a99f23 linux/cve-exclusion: remove obsolete manual entries
The generated file covers all but one of these CVEs (which will be fixed
when [1] is resolved) so remove the redundant entries.

[1] https://github.com/nluedtke/linux_kernel_cves/issues/344

(From OE-Core rev: ca17167612c73104eb4c9a5297f53643b71ef861)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-30 04:46:36 -10:00
Ross Burton
7db9fd091c linux/cve-exclusion: add generated CVE_CHECK_IGNORES.
Run generate-cve-exclusions.py to generate the ignore lists.  This file
is maintained separately from the existing manual ignore entries.

(From OE-Core rev: fc506efa5c84b45b063678098131031f52bb3c16)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-30 04:46:36 -10:00
Ross Burton
f17c07ff4b linux-yocto: add script to generate kernel CVE_CHECK_IGNORE entries
Instead of manually looking up new CVEs and determining what point
releases the fixes are incorporated into, add a script to generate the
CVE_CHECK_IGNORE data automatically.

First, note that this is very much an interim solution until the
cve-check class fetches data from www.linuxkernelcves.com directly.

The script should be passed the path to a local clone of the
linuxkernelcves repository[1] and the kernel version number. It will
then write to standard output the CVE_STATUS entries for every known
kernel CVE.

The script should be periodically reran as CVEs are backported and
kernels upgraded frequently.

[1] https://github.com/nluedtke/linux_kernel_cves

Note: for the backport this is not a cherry-pick of the commit in master
as the variable names are different. This incorporates the following
commits:

linux/generate-cve-exclusions: add version check warning
linux/generate-cve-exclusions.py: fix comparison
linux-yocto: add script to generate kernel CVE_STATUS entries

(From OE-Core rev: c7a71692b7ed4cc2187f4c82bf11e32e0ce32cb6)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-30 04:46:36 -10:00
Yogita Urade
1cae56f216 nghttp2: fix CVE-2023-35945
Envoy is a cloud-native high-performance edge/middle/service
proxy. Envoy’s HTTP/2 codec may leak a header map and
bookkeeping structures upon receiving `RST_STREAM` immediately
followed by the `GOAWAY` frames from an upstream server. In
nghttp2, cleanup of pending requests due to receipt of the
`GOAWAY` frame skips de-allocation of the bookkeeping structure
and pending compressed header. The error return [code path] is
taken if connection is already marked for not sending more
requests due to `GOAWAY` frame. The clean-up code is right after
the return statement, causing memory leak. Denial of service
through memory exhaustion. This vulnerability was patched in
versions(s) 1.26.3, 1.25.8, 1.24.9, 1.23.11.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-35945
https://github.com/envoyproxy/envoy/security/advisories/GHSA-jfxv-29pc-x22r

(From OE-Core rev: 0e6eb0f417079eaf76b003973c9d93338e6363b5)

Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-30 04:46:36 -10:00
Siddharth
074ad15e1e Qemu: Resolve undefined reference issue in CVE-2023-2861
The commit [9bd4ddeb4b] backports fix for CVE-2023-2861 for version 6.2.0.
The 'qemu_fstat' in `do_create_others' is not defined which leads to the undefined symbol error on certain architectures.

Also, the commit message says "(Mjt: drop adding qemu_fstat wrapper for 7.2 where wrappers aren't used)". So either the wrapper has to be dropped or it has to be defined.

Hence, backported the main patch rather than the cherry picked one.

(From OE-Core rev: 983d19dfdad361f8b3275b404f1ac0b9befc9f6c)

Signed-off-by: Siddharth Doshi <sdoshi@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-30 04:46:35 -10:00
Soumya Sambu
f81d353d5b go: Fix CVE-2023-29409
Extremely large RSA keys in certificate chains can cause a
client/server to expend significant CPU time verifying
signatures. With fix, the size of RSA keys transmitted
during handshakes is restricted to <= 8192 bits. Based on
a survey of publicly trusted RSA keys, there are currently
only three certificates in circulation with keys larger than
this, and all three appear to be test certificates that are
not actively deployed. It is possible there are larger keys
in use in private PKIs, but we target the web PKI, so causing
breakage here in the interests of increasing the default
safety of users of crypto/tls seems reasonable.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-29409

(From OE-Core rev: 51c2fee0e4bb4b3131c61d91510394cd4b4f9eb9)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-30 04:46:35 -10:00
Narpat Mali
e5f546b58b ffmpeg: add CVE_CHECK_IGNORE for CVE-2023-39018
CVE-2023-39018 belongs to ffmpeg-cli-wrapper (Java wrapper around the FFmpeg CLI)
and not ffmpeg itself. As per CVE description, it is mentioned as FFmpeg 0.7.0 which
is the version for ffmpeg-cli-wrapper and ffmpeg don't have 0.7.0 version at all.

Debian & Bugzilla trackers have already marked as NOT-FOR-US/RESOLVED-INVALID.
As it won't be affecting the ffmpeg package so, we can ignore the CVE-2023-39018
in ffmpeg recipe.

References:
https://github.com/bramp/ffmpeg-cli-wrapper
https://github.com/FFmpeg/FFmpeg
https://security-tracker.debian.org/tracker/CVE-2023-39018
https://bugzilla.suse.com/show_bug.cgi?id=CVE-2023-39018

Upstream master patch:
https://git.openembedded.org/openembedded-core/commit/?id=c21ed498b423c13463a4ae0bb475883cc7901847

(From OE-Core rev: e787e364efbba372675081aadd802b43274097f0)

Signed-off-by: Narpat Mali <narpat.mali@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-30 04:46:35 -10:00
Alexander Kanavin
e19a76951b glibc-locale: use stricter matching for metapackages' runtime dependencies
This resolves two issues:

1. metapackages were depending on themselves (except -binaries which wouldn't match against 'glibc-binary').

2. for the nativesdk variant, due to a non-empty dependency list at parsing time caused by
issue 1, map_depends_variable() from meta/lib/oe/classextend.py was forcibly setting PACKAGES
to the initial parse-time value (e.g. missing the dynamically created packages). This meant that
three out of four nativesdk- metapackages were entireyly missing the dependencies on the
respective dynamic package sets.

(From OE-Core rev: ea920e3c8075f3a1b79039341f8c889f6197a07f)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a90fd3afe9184aa1870b34a826e3ba0563477d4b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Richard Purdie
464b034745 oeqa/ssh: Further improve process exit handling
It looks like there were further cases where orphaned processes may be left
behind since the .kill() calls may be unsuccessful if the process terminated
due to the terminate or through normal exit. In that situation .wait()
wouldn't have been called.

Further tweak the exit code paths to ensure .wait() is called to update the
returncode value before returning in all cases.

(From OE-Core rev: e1e038ab01a599fcdd4aa6211b6d15cd01a5e2e3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0a0a1731e38edfa72a141e8fd8f2de52be562e94)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Richard Purdie
1efc676afc target/ssh: Ensure exit code set for commands
As spotted by Joshua Watt, the returncode isn't set until .poll() or .wait()
is called so we need to call this after the .kill() call.

This fixes return code reporting so that timeouts for example now return an
exit code when they didn't before.

(From OE-Core rev: c70b05ea667e7bd280470b0b6ca10efb0f648e0f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3924e94214b5135369be2551d54fb92097d35e95)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Richard Purdie
442b9fd244 oeqa/runtime/ltp: Increase ltp test output timeout
On our slower arm server, the tests currently timeout leading to inconsistent test
results. Increase the timeout to avoid this and aim to make the test results
consistent.

(From OE-Core rev: b161af52b9454e07435dc9737b0a2522295f3e4d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9a8b49208f3c99e184eab426360b137bc773aa31)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Richard Purdie
0418f9112c oeqa/target/ssh: Ensure EAGAIN doesn't truncate output
We have a suspicion that the read() call may return EAGAIN on the non-blocking
fd and this may truncate test output leading to some of our intermittent failures.
Tweak the code to avoid this potential issue.

(From OE-Core rev: 4c02f7407d7afaefe1bc72aea25087b3f2271ac2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a8920c105725431e989cceb616bd04eaa52127ec)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Anuj Mittal
70b3a20817 selftest/cases/glibc.py: switch to using NFS over TCP
This provides a more reliable test execution when running tests that
write a large buffer/file and significantly reduces the localedata test
failures.

(From OE-Core rev: 8d0c669d3d04cf5bc645978afb22ba6c3f3d53e6)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 97a7612e3959bc9c75116a4e696f47cc31aea75d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Anuj Mittal
438d728f3b oeqa/utils/nfs: allow requesting non-udp ports
Allows setting up NFS over TCP as well.

(From OE-Core rev: 2727a0cb8d026e0c47aedd91f7c02e24b056f37b)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e1ff9b9a3b7f7924aea67d2024581bea2e916036)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Anuj Mittal
ca0b276bfc selftest/cases/glibc.py: increase the memory for testing
Some of the tests trigger OOM and fail. Increase the amount of memory
available so we dont run into these issues.

(From OE-Core rev: 060030ac9d00bf22ae3a2695d7ea060f0f69dfa8)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4d22dba482cb19ffcff5abee73f24526ea9d1c2a)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Anuj Mittal
f88bc5a1e8 glibc/check-test-wrapper: don't emit warnings from ssh
Dont fill up the test log with ssh warning about having added the host
to list of known hosts.

Also helps fix a test case failure where stderr log was being compared
to a known value.

(From OE-Core rev: 265ba5138bb5859b9f5915f99a818a45df88a279)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 63b31ff7e54a171c4c02fca2e6b07aec64a410af)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Ovidiu Panait
eeca0078af mdadm: add util-linux-blockdev ptest dependency
07revert-inplace test logs contain the following:
func.sh: line 335: /sbin/blockdev: No such file or directory

Add the missing util-linux-blockdev dependency.

(From OE-Core rev: 7190ea3b70a9b36ecf48f948e792ac2ce6eca1e3)

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit a15cd04f528d137d428a572f15d1ec5ebbbd81f0)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Staffan Rydén
3b8d0acca3 kernel: Fix path comparison in kernel staging dir symlinking
Due to an oversight in the do_symlink_kernsrc function, the path
comparison between "S" and "STAGING_KERNEL_DIR" is broken. The code
obtains both variables, but modifies the local copy of "S" before
comparing them, causing the comparison to always return false.

This can cause the build to fail when the EXTERNALSRC flag is enabled,
since the code will try to create a symlink even if one already exists.

This patch resolves the issue by comparing the variables before they are
modified.

(From OE-Core rev: cf2267f80ec44b24c627347df7efbd492a07dcfa)

Signed-off-by: Staffan Rydén <staffan.ryden@axis.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit afd2038ef8a66a5e6433be31a14e1eb0d9f9a1d3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Alex Kiernan
1955a65b98 rpm: Pick debugfs package db files/dirs explicitly
Rather than copying the entire /etc hierarchy, specify the pieces we
actually need.

(From OE-Core rev: 007a57ce36a06f9a78675563020f24e1afa3caa1)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit f0fea55ab02b013484282177a636795a254e7986)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Alex Kiernan
6f3c2ff35a rootfs: Add debugfs package db file copy and cleanup
When copying the package database files for the debugfs, add individual
file copy as well as tree copying. After the debug rootfs has been
created, cleanup the package files.

This then allows us to avoid a problem where (for rpm at least)
extraneous files in the debug rootfs would cause failures during
oe-selftest because some files existed in both regular and debugfs
images.

(From OE-Core rev: 96c79c54f282497eb1521b1d5da648ae83fcfe8b)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit ce49ea435ce55eb5b6da442c12e03a806534c38d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Anuj Mittal
777a9ac262 selftest/cases/glibc.py: fix the override syntax
Fix the override so we actually pass the correct value to glibc.

(From OE-Core rev: 60ca407ce3113d8b507aaa0876b28902aab7ed5b)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 38fd2120f0f48512091ddad6205ce19839eaf589)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Julien Stephan
a543532a76 automake: fix buildtest patch
Add check_PROGRAMS as a dependency of buildtest-TESTS target.
This is required because according to the official automake
documentation [1]:
* TESTS: contains all the tests files
* check_PROGRAMS: contains the programs used by the tests
* check_PROGRAMS is not automatically added to TESTS

So, by using only TESTS as a dependency for buildtest-TESTS we may end
up having runtime errors because of missing program required by the
tests.

[1]: https://www.gnu.org/software/automake/manual/html_node/Scripts_002dbased-Testsuites.html

(From OE-Core rev: 5859a4143a1495198af323cedf06248c9b363060)

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ee3e2af4f8ed95b4fd0f7cec52ae4e169401b719)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Michael Halstead
37ab9a97fc resulttool/resultutils: allow index generation despite corrupt json
non-release indexes will continue to generate when test output is
corrupted.

(From OE-Core rev: 9467528e89d44a016a4c1e509a3a7da56ea20f74)

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1a9157684a6bff8406c9bb470cb2e16ee006bbe9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Enrico Scholz
de828a1d9d shadow-sysroot: add license information
Recipe references 'login.defs' in LIC_FILES_CHKSUM.  This causes some
problems:

- file does not contain a single word which is related with its license

- changing this file (here: increasing SYS_UID_MIN) invalidates
  LIC_FILES_CHKSUM

Add 'SPDX-License-Identifier' to the file and limit the checksum to
this part.

(From OE-Core rev: c9ab17b51834bff96657712a6741eb3e3647b063)

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8c6f2e3feeb26abefb4136c56db6f3c0349acefb)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Richard Purdie
8f53c7b151 acl/attr: ptest fixes and improvements
Add a missing perl module dependency for the ptest packages and also
improve the run-ptest script so that the error log is saved allowing
easier debugging if this fails in future.

(From OE-Core rev: fbb9c596b8e6a8a1260dd7aefddf138d20bf64df)

(From OE-Core rev: 5908ccf65b5ca4a0473a57774f06515d6bc9f56c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2c948fa025)
Signed-off-by: Bhabu Bindu <bhabu.bindu@kpit.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Richard Purdie
5c42f2433c lib/package_manager: Improve repo artefact filtering
If you run an arm build followed by an x86 one and then ask for a
full repo to be created, it will include all of the arm and x86 packages.
testexport will then find the arm socat package rather than the x86 one
and try and run arm binaries within an x86 qemu image with no success.

The reproducer for this was:

oe-selftest -r fitimage.FitImageTests.test_initramfs_bundle runtime_test.TestImage.test_testimage_install

This patch only symlinks in the compatible package archictures rather
than all of them which fixes the failure and the resulting autobuilder
intermittent failure too.

[YOCTO #15190]

(From OE-Core rev: b811ce9e1c94532d49db54d4c3458cd804d96adb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 30b45bcf49bf8207fd96bb45a55d7708661f3359)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Poonam Jadhav
6826d0ba08 pixman: Remove duplication of license MIT
Remove duplication of license MIT from pixman bbfile.

(From OE-Core rev: 76f928359f76d449de0d884c591a5d9fdba9d19c)

Signed-off-by: Poonam Jadhav <poonam.jadhav@kpit.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Michael Halstead
b4b545cd9d yocto-uninative: Update to 4.2 for glibc 2.38
Uninative 4.2 adds glibc 2.38.

(From OE-Core rev: 135624fd57c3c9ba3786c5c10cd1f6c37ce82dad)

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c6654fab00a1b4e4bb05eec8b77c8c60e1f8a709)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Michael Halstead
b8fded3df3 yocto-uninative: Update hashes for uninative 4.1
This version includes fixes to patchelf.

(From OE-Core rev: 410c2be543d031dc54a37439c8069807c395fc36)

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1c5c8ff97ba0a7f9adc592d702b865b3d166a24b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Bruce Ashfield
6fbc34db05 linux-yocto/5.15: update to v5.15.124
Updating  to the latest korg -stable release that comprises
the following commits:

    38d4ca22a528 Linux 5.15.124
    78001ffa9bc4 selftests: mptcp: join: only check for ip6tables if needed
    66cf5f394abe ASoC: cs42l51: fix driver to properly autoload with automatic module loading
    3359fdf49de4 io_uring: treat -EAGAIN for REQ_F_NOWAIT as final for io-wq
    374edda0db70 selftests: mptcp: sockopt: use 'iptables-legacy' if available
    43bbe1a091e0 cpufreq: intel_pstate: Drop ACPI _PSS states table patching
    73b4cbed9176 ACPI: processor: perflib: Avoid updating frequency QoS unnecessarily
    cd031669682e ACPI: processor: perflib: Use the "no limit" frequency QoS
    e8e93e2f017e tracing: Fix trace_event_raw_event_synth() if else statement
    f3b6e63004f6 rbd: retrieve and check lock owner twice before blocklisting
    bb25c5c0e4ae rbd: harden get_lock_owner_info() a bit
    b223e9ffb64d rbd: make get_lock_owner_info() return a single locker or NULL
    098d0b9ba03c dm cache policy smq: ensure IO doesn't prevent cleaner policy progress
    7c9b8cca4917 ceph: never send metrics if disable_send_metrics is set
    e443b3a508b0 ASoC: wm8904: Fill the cache for WM8904_ADC_TEST_0 register
    585355a76e05 s390/dasd: fix hanging device after quiesce/resume
    0061453d6ea1 virtio-net: fix race between set queues and probe
    427d42838c16 KVM: x86: Disallow KVM_SET_SREGS{2} if incoming CR0 is invalid
    4ed1549129f9 locking/rtmutex: Fix task->pi_waiters integrity
    c579caef7c46 irqchip/gic-v4.1: Properly lock VPEs when doing a directLPI invalidation
    6cb3c511afcb irq-bcm6345-l1: Do not assume a fixed block to cpu mapping
    354e8bd5f532 tpm_tis: Explicitly check for error code
    8130c32b4ac1 nfsd: Remove incorrect check in nfsd4_validate_stateid
    9b8a31a23152 file: always lock position for FMODE_ATOMIC_POS
    1f5ea62a0f42 btrfs: check for commit error at btrfs_attach_transaction_barrier()
    883c3ed9a16a btrfs: check if the transaction was aborted at btrfs_wait_for_commit()
    a7abb1690fe1 hwmon: (nct7802) Fix for temp6 (PECI1) processed even if PECI1 disabled
    3f3cdca84432 hwmon: (k10temp) Enable AMD3255 Proc to show negative temperature
    a676ddc4ca96 ALSA: hda/relatek: Enable Mute LED on HP 250 G8
    dd125fcd580a Revert "xhci: add quirk for host controllers that don't update endpoint DCS"
    5138c228311a tty: n_gsm: fix UAF in gsm_cleanup_mux
    baf420e30364 staging: ks7010: potential buffer overflow in ks_wlan_set_encode_ext()
    acacdbe0f740 staging: r8712: Fix memory leak in _r8712_init_xmit_priv()
    ba2975efe979 Documentation: security-bugs.rst: clarify CVE handling
    28ae486f8e36 Documentation: security-bugs.rst: update preferences when dealing with the linux-distros group
    98a118840b71 Revert "usb: xhci: tegra: Fix error check"
    2eaa43508a0e usb: xhci-mtk: set the dma max_seg_size
    cd2d96c4bc6f usb: cdns3: fix incorrect calculation of ep_buf_size when more than one config
    3af06a8502ee USB: quirks: add quirk for Focusrite Scarlett
    8fb5a01196df usb: ohci-at91: Fix the unhandle interrupt when resume
    6366b1178545 usb: dwc3: don't reset device side if dwc3 was configured as host-only
    6f126e026307 usb: dwc3: pci: skip BYT GPIO lookup table for hardwired phy
    a2d2fa661293 Revert "usb: dwc3: core: Enable AutoRetry feature in the controller"
    97620ed1bcab can: gs_usb: gs_can_close(): add missing set of CAN state to CAN_STATE_STOPPED
    0ac13ef00209 USB: serial: simple: sort driver entries
    378e03623741 USB: serial: simple: add Kaufmann RKS+CAN VCP
    5b9a5cf1bf4a USB: serial: option: add Quectel EC200A module support
    399091399777 USB: serial: option: support Quectel EM060K_128
    b800c0d5576e serial: sifive: Fix sifive_serial_console_setup() section
    8fa462ad0f9b serial: 8250_dw: Preserve original value of DLF register
    dc4f6c537f37 serial: qcom-geni: drop bogus runtime pm state update
    41c487de4cf5 KVM: VMX: Don't fudge CR0 and CR4 for restricted L2 guest
    5883a4e8478d KVM: Grab a reference to KVM for VM and vCPU stats file descriptors
    0f7a2b567197 USB: gadget: Fix the memory leak in raw_gadget driver
    2f9bfccced04 usb: gadget: call usb_gadget_check_config() to verify UDC capability
    a49884561a8c Revert "usb: gadget: tegra-xudc: Fix error check in tegra_xudc_powerdomain_init()"
    813cede7b2f5 tracing: Fix warning in trace_buffered_event_disable()
    23e8a65f9a93 ring-buffer: Fix wrong stat of cpu_buffer->read
    ae5b8b1c2eac ata: pata_ns87415: mark ns87560_tf_read static
    6bbbe1b2161e RDMA/irdma: Report correct WC error
    bd79de8bd371 drm/amd: Fix an error handling mistake in psp_sw_init()
    4e1c1d742970 dm raid: protect md_stop() with 'reconfig_mutex'
    0c4db5a04d4f dm raid: clean up four equivalent goto tags in raid_ctr()
    2e321ee96f88 dm raid: fix missing reconfig_mutex unlock in raid_ctr() error paths
    4b9f3ef1f3eb block: Fix a source code comment in include/uapi/linux/blkzoned.h
    2861b33820f9 ASoC: fsl_spdif: Silence output on stop
    5ec0e4deee5b drm/msm: Fix IS_ERR_OR_NULL() vs NULL check in a5xx_submit_in_rb()
    b79a0e71d6e8 RDMA/bnxt_re: Prevent handling any completions after qp destroy
    3ad5f655eb8a RDMA/mthca: Fix crash when polling CQ for shared QPs
    c5b5dbcbf91f RDMA/irdma: Fix data race on CQP request done
    bf0f9f65b7fe RDMA/irdma: Fix data race on CQP completion stats
    fd6e50ec2c38 RDMA/irdma: Add missing read barriers
    5fbb5068d2bd drm/msm/adreno: Fix snapshot BINDLESS_DATA size
    4e9d4a21616b drm/msm/dpu: drop enum dpu_core_perf_data_bus_id
    6ab756a55e46 RDMA/mlx4: Make check for invalid flags stricter
    9dde876a4dc8 tipc: stop tipc crypto on failure in tipc_node_create
    df019bc1241e tipc: check return value of pskb_trim()
    42afa7ef6629 benet: fix return value check in be_lancer_xmit_workarounds()
    95cf4fa31b0c net/sched: mqprio: Add length check for TCA_MQPRIO_{MAX/MIN}_RATE64
    98f6bbdfc0ce net/sched: mqprio: add extack to mqprio_parse_nlattr()
    b1e85c9d28dd net/sched: mqprio: refactor nlattr parsing to a separate function
    5bee91121cce netfilter: nf_tables: disallow rule addition to bound chain via NFTA_RULE_CHAIN_ID
    98bcfcaecc76 netfilter: nf_tables: skip immediate deactivate in _PREPARE_ERROR
    50cbb9d195c1 netfilter: nft_set_rbtree: fix overlap expiration walk
    feba294c454a igc: Fix Kernel Panic during ndo_tx_timeout callback
    8412fe36863b platform/x86: msi-laptop: Fix rfkill out-of-sync on MSI Wind U100
    238420a24d6b net: stmmac: Apply redundant write work around on 4.xx too
    9be8ec5a0cfe team: reset team's flags when down link is P2P device
    bf2d7b63e2b5 bonding: reset bond's flags when down link is P2P device
    c28b39387634 ice: Fix memory management in ice_ethtool_fdir.c
    ecb741a17cb2 tcp: Reduce chance of collisions in inet6_hashfn().
    dd48780a7bbb ipv6 addrconf: fix bug where deleting a mngtmpaddr can create a new temporary address
    46e40297355e ethernet: atheros: fix return value check in atl1e_tso_csum()
    6d8a71e4c3a2 phy: hisilicon: Fix an out of bounds check in hisi_inno_phy_probe()
    49f5b3c9499b vxlan: calculate correct header length for GPE
    77396fa9096a vxlan: move to its own directory
    96dbc68b7f86 net: hns3: fix wrong bw weight of disabled tc issue
    9755714d238c net: hns3: fix wrong tc bandwidth weight data issue
    01460ac6ff95 net: phy: marvell10g: fix 88x3310 power up
    57743a86cce1 iavf: check for removal state before IAVF_FLAG_PF_COMMS_FAILED
    1542e399a12a iavf: fix potential deadlock on allocation failure
    5a4048355725 i40e: Fix an NULL vs IS_ERR() bug for debugfs_create_dir()
    c9b936984d89 media: staging: atomisp: select V4L2_FWNODE
    6aa7cb3bb5c9 soundwire: qcom: update status correctly with mask
    3f28ec4a4002 phy: qcom-snps-femto-v2: properly enable ref clock
    ac3fe4c2a708 phy: qcom-snps-femto-v2: keep cfg_ahb_clk enabled during runtime suspend
    e7c0c5af517f phy: qcom-snps: correct struct qcom_snps_hsphy kerneldoc
    450ef59bef9a phy: qcom-snps: Use dev_err_probe() to simplify code
    d6f92582816c drm/amdgpu/vkms: relax timer deactivation by hrtimer_try_to_cancel
    fc399b0fdf2d drm/amdgpu: fix vkms crtc settings
    aa56bcff46a1 scsi: qla2xxx: Fix hang in task management
    58daf4e8709d scsi: qla2xxx: Add debug prints in the device remove path
    f90d44e5bbbe scsi: qla2xxx: Fix task management cmd fail due to unavailable resource
    01366f0b656a scsi: qla2xxx: Fix task management cmd failure
    25cea82ea25d scsi: qla2xxx: Multi-que support for TMF
    2e18fd3f61be scsi: qla2xxx: Remove unused declarations for qla2xxx
    ace6bed42464 tracing/probes: Fix to record 0-length data_loc in fetch_store_string*() if fails
    30c8ba1da373 Revert "tracing: Add "(fault)" name injection to kernel probes"
    5f52389bdd9e tracing: Allow synthetic events to pass around stacktraces
    e7b4d24fa090 tracing/probes: Fix to avoid double count of the string length on the array
    3a1a229712ef tracing/probes: Add symstr type for dynamic events
    7ac170d93bec pwm: meson: fix handling of period/duty if greater than UINT_MAX
    bae3c43a9d25 pwm: meson: Simplify duplicated per-channel tracking
    5cb0349cfcde cifs: if deferred close is disabled then close files immediately
    c600e23fbc40 ksmbd: remove internal.h include
    c8117ac42303 cifs: use fs_context for automounts
    5076cc8bc162 cifs: missing directory in MAINTAINERS file
    da60170558b9 drm/ttm: never consider pinned BOs for eviction&swap
    c556573e4bb1 tty: fix hang on tty device with no_room set
    d262770b95c7 n_tty: Rename tail to old_tail in n_tty_read()
    7738335d73d0 drm/ttm: Don't leak a resource on eviction error
    4400b96587fd drm/ttm: Don't print error message if eviction was interrupted
    354cdda79a77 fs: dlm: interrupt posix locks only when process is killed
    97e7a0f8dea2 dlm: rearrange async condition return
    75ce95abc65b dlm: cleanup plock_op vs plock_xop
    b409d8df9bea PCI: rockchip: Don't advertise MSI-X in PCIe capabilities
    cbd1494e51fd PCI: rockchip: Fix window mapping and address translation for endpoint
    eb39c4c051dc PCI: rockchip: Remove writes to unused registers
    05f13e85fbdd PCI/ASPM: Avoid link retraining race
    52d274956a8f PCI/ASPM: Factor out pcie_wait_for_retrain()
    cf8c18150030 PCI/ASPM: Return 0 or -ETIMEDOUT from pcie_retrain_link()
    8b9249d74ca5 i2c: nomadik: Remove a useless call in the remove function
    f07d8d345bd2 i2c: nomadik: Use devm_clk_get_enabled()
    4954c8705339 i2c: nomadik: Remove unnecessary goto label
    24562f0a46ad i2c: Improve size determinations
    9845744e57fe i2c: Delete error messages for failed memory allocations
    89eae1f0aaeb btrfs: fix race between quota disable and relocation
    b19e90521286 gpio: mvebu: fix irq domain leak
    a999660042af gpio: mvebu: Make use of devm_pwmchip_add
    34fe5fbc208f pwm: Add a stub for devm_pwmchip_add()
    f3d2344811fd gpio: tps68470: Make tps68470_gpio_output() always set the initial value
    21d063d27bf3 io_uring: don't audit the capability check in io_uring_create()
    49a2686addde KVM: s390: pv: fix index value of replaced ASCE
    fee1e6a73557 jbd2: Fix wrongly judgement for buffer head removing while doing checkpoint

(From OE-Core rev: 94bad591285091c3f348410df7bf58366c267775)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit f7ffd2eba4d5c731b7841690e24ca4c5752dfce8)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Bruce Ashfield
c9dd718d39 linux-yocto/5.15: update to v5.15.123
Updating  to the latest korg -stable release that comprises
the following commits:

    09996673e313 Linux 5.15.123
    e6c2f1ce413c Revert "drm/amd/display: edp do not add non-edid timings"
    68eafe294786 nixge: fix mac address error handling again
    22f4093a4213 tracing/histograms: Return an error if we fail to add histogram to hist_vars list
    78471c3ad36f jbd2: recheck chechpointing non-dirty buffer
    0ae6b6d21701 net: phy: prevent stale pointer dereference in phy_init()
    b7168d2906fd tcp: annotate data-races around fastopenq.max_qlen
    accb138c10ff tcp: annotate data-races around icsk->icsk_user_timeout
    6b88371f000f tcp: annotate data-races around tp->notsent_lowat
    4f0a31f73258 tcp: annotate data-races around rskq_defer_accept
    ff0fedfc7540 tcp: annotate data-races around tp->linger2
    e187d88f3ba3 tcp: annotate data-races around icsk->icsk_syn_retries
    d5617eeb546e tcp: annotate data-races around tp->keepalive_probes
    9b2296a2ad23 tcp: annotate data-races around tp->keepalive_intvl
    f70ebecdf3c2 tcp: annotate data-races around tp->keepalive_time
    0bcee9325268 tcp: annotate data-races around tp->tcp_tx_delay
    10013f764ad2 netfilter: nf_tables: skip bound chain on rule flush
    dbe1a82d46ed netfilter: nf_tables: skip bound chain in netns release path
    706ce3c81b5c netfilter: nft_set_pipapo: fix improper element removal
    62615b895ab4 netfilter: nf_tables: fix spurious set element insertion failure
    c17b4ec9cc38 llc: Don't drop packet from non-root netns.
    2400ae8fd86d fbdev: au1200fb: Fix missing IRQ check in au1200fb_drv_probe
    40276640bed8 Revert "tcp: avoid the lookup process failing to get sk in ehash table"
    b04ab5243e84 net:ipv6: check return value of pskb_trim()
    b87a7e3a330c net: ipv4: Use kfree_sensitive instead of kfree
    5dd4d1ff8ba1 tcp: annotate data-races around tcp_rsk(req)->ts_recent
    fa941f53a2c2 igc: Prevent garbled TX queue with XDP ZEROCOPY
    e35dc107a172 bpf: Fix subprog idx logic in check_max_stack_depth
    4e87eb224896 octeontx2-pf: Dont allocate BPIDs for LBK interfaces
    87fc9616d606 security: keys: Modify mismatched function name
    0fb37ce6c01e iavf: Fix out-of-bounds when setting channels on remove
    345c44e18cc1 iavf: Fix use-after-free in free_netdev
    52ed16146349 net: sched: cls_bpf: Undo tcf_bind_filter in case of an error
    5ed16ecae5bf net: ethernet: mtk_eth_soc: handle probe deferral
    39479093a472 ethernet: use of_get_ethdev_address()
    cb1e666ec077 of: net: add a helper for loading netdev->dev_addr
    43da399e509e ethernet: use eth_hw_addr_set() instead of ether_addr_copy()
    3fb402bd20e2 bridge: Add extack warning when enabling STP in netns.
    ec4ac15eced0 net: ethernet: ti: cpsw_ale: Fix cpsw_ale_get_field()/cpsw_ale_set_field()
    6a5d6096ae5c pinctrl: amd: Use amd_pinconf_set() for all config options
    4727cece2994 perf build: Fix library not found error when using CSLIBS
    29fb046ec031 fbdev: imxfb: warn about invalid left/right margin
    5d191467534b spi: bcm63xx: fix max prepend length
    2febd5f81e4b FS: JFS: Check for read-only mounted filesystem in txBegin
    3e94d0d378d2 FS: JFS: Fix null-ptr-deref Read in txBegin
    13ae3f2fd2be MIPS: dec: prom: Address -Warray-bounds warning
    39f6292d7595 fs: jfs: Fix UBSAN: array-index-out-of-bounds in dbAllocDmapLev
    985f96666989 udf: Fix uninitialized array access for some pathnames
    579d814de87c quota: fix warning in dqgrab()
    32c2f51fffec quota: Properly disable quotas when add_dquot_ref() fails
    d363075066cc ALSA: emu10k1: roll up loops in DSP setup code for Audigy
    c0d7dbc6b7a6 drm/radeon: Fix integer overflow in radeon_cs_parser_init
    bca9fb7a5a86 ext4: correct inline offset when handling xattrs in inode body
    87336783d054 ASoC: codecs: wcd938x: fix soundwire initialisation race
    a14527c394d0 ASoC: codecs: wcd938x: fix codec initialisation race
    4ca000456ea6 ASoC: codecs: wcd934x: fix resource leaks on component remove
    5a34d252052b ASoC: codecs: wcd938x: fix missing mbhc init error handling
    aa44782a0293 ASoC: codecs: wcd938x: fix resource leaks on component remove
    90ab6446eb52 ASoC: codecs: wcd-mbhc-v2: fix resource leaks on component remove
    a05a277a8d23 ASoC: codecs: wcd938x: fix missing clsh ctrl error handling
    574ffa6fdf30 ASoC: fsl_sai: Disable bit clock with transmitter
    925bbcdbc4d0 drm/amd/display: Keep PHY active for DP displays on DCN31
    742340371b01 drm/amd/display: Disable MPC split by default on special asic
    1369d0c586ad drm/client: Fix memory leak in drm_client_modeset_probe
    a85e23a1ef63 drm/client: Fix memory leak in drm_client_target_cloned
    82690148ff19 selftests: tc: add ConnTrack procfs kconfig
    3c3941bb1eb5 can: bcm: Fix UAF in bcm_proc_show()
    148453787636 regmap: Account for register length in SMBus I/O limits
    6ce258d0c622 regmap: Drop initial version of maximum transfer length fixes
    d3ee089a16a3 selftests: tc: add 'ct' action kconfig dep
    4a888b22cc07 selftests: tc: set timeout to 15 minutes
    62ee5840326b fuse: ioctl: translate ENOSYS in outarg
    ab80a901f8da btrfs: zoned: fix memory leak after finding block group with super blocks
    6ba7ac692a25 fuse: revalidate: don't invalidate if interrupted
    c9060caab413 btrfs: fix warning when putting transaction with qgroups enabled after abort
    232a104e38fe perf probe: Add test for regression introduced by switch to die_get_decl_file()
    9aecfebea24f keys: Fix linking a duplicate key to a keyring's assoc_array
    0b24b5e187bd ALSA: hda/realtek: Enable Mute LED on HP Laptop 15s-eq2xxx
    2d04042a9fce ALSA: hda/realtek: Add quirk for Clevo NS70AU
    a5de09b7f9fe ALSA: hda/realtek - remove 3k pull low procedure

(From OE-Core rev: 873c6253c029ceb303a849ced14bf5125856b368)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit df81fdbc619c5a3a76ad3bdea2bf7d761e612656)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Bruce Ashfield
d518066318 linux-yocto/5.15: update to v5.15.122
Updating  to the latest korg -stable release that comprises
the following commits:

    5c6a716301d9 Linux 5.15.122
    be824fdb827d x86/cpu/amd: Add a Zenbleed fix
    5398be2c48aa x86/cpu/amd: Move the errata checking functionality up
    cdd3cdb682f4 Linux 5.15.121
    30580f3a3301 drm/atomic: Fix potential use-after-free in nonblocking commits
    ab2fa2fafb21 net/sched: sch_qfq: reintroduce lmax bound check for MTU
    204d7c36e8e7 MIPS: kvm: Fix build error with KVM_MIPS_DEBUG_COP0_COUNTERS enabled
    522ee1b3030f scsi: qla2xxx: Remove unused nvme_ls_waitq wait queue
    0715da51391d scsi: qla2xxx: Pointer may be dereferenced
    541af83572c9 scsi: qla2xxx: Correct the index of array
    1ccd52b790a6 scsi: qla2xxx: Check valid rport returned by fc_bsg_to_rport()
    5a52a2e14fe8 scsi: qla2xxx: Fix potential NULL pointer dereference
    89250e775dcc scsi: qla2xxx: Fix buffer overrun
    4406fe8a96a9 scsi: qla2xxx: Avoid fcport pointer dereference
    748d8f8698a2 scsi: qla2xxx: Array index may go out of bound
    079c8264ed9f scsi: qla2xxx: Wait for io return on terminate rport
    25d63eb730b8 tracing/probes: Fix to update dynamic data counter if fetcharg uses it
    8277bcacf165 tracing/probes: Fix not to count error code to total length
    610193a23fd5 selftests: mptcp: depend on SYN_COOKIES
    c8b375871eb8 selftests: mptcp: sockopt: return error if wrong mark
    3b5d9b7b8759 tracing: Fix null pointer dereference in tracing_err_log_open()
    391da52c8777 xtensa: ISS: fix call to split_if_spec
    179feeeef62f ftrace: Fix possible warning on checking all pages used in ftrace_process_locs()
    bb14a93bccc9 ring-buffer: Fix deadloop issue on reading trace_pipe
    3e36cc94d6e6 net: ena: fix shift-out-of-bounds in exponential backoff
    b763e6342429 samples: ftrace: Save required argument registers in sample trampolines
    954792db9f61 tracing: Fix memory leak of iter->temp when reading trace_pipe
    97f54b330c79 tracing/histograms: Add histograms to hist_vars if they have referenced variables
    b45a33897f54 s390/decompressor: fix misaligned symbol build error
    1856cf9132f6 bus: ixp4xx: fix IXP4XX_EXP_T1_MASK
    7269c250dd9d Revert "8250: add support for ASIX devices with a FIFO bug"
    20f7c4d51c94 soundwire: qcom: fix storing port config out-of-bounds
    39a0e723d350 opp: Fix use-after-free in lazy_opp_tables after probe deferral
    0ff4a97ac20f meson saradc: fix clock divider mask length
    e5fdd73c883b xhci: Show ZHAOXIN xHCI root hub speed correctly
    6eaedbffec55 xhci: Fix TRB prefetch issue of ZHAOXIN hosts
    328b18a42a57 xhci: Fix resume issue of some ZHAOXIN hosts
    d9c91ef5d8da ceph: don't let check_caps skip sending responses for revoke msgs
    db8ca8d9b4df libceph: harden msgr2.1 frame segment length checks
    974ac045a05a firmware: stratix10-svc: Fix a potential resource leak in svc_create_memory_pool()
    becf8c69b7e7 tty: serial: imx: fix rs485 rx after tx
    9dd8091959bc tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() when iterating clk
    073dbbe57437 tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() in case of error
    21e2fe510aee serial: atmel: don't enable IRQs prematurely
    af4e0ce2af8a drm/ttm: Don't leak a resource on swapout move error
    22c16c896cbf drm/amdgpu: avoid restore process run into dead loop.
    85b9335d8e0b drm/amd/display: Correct `DMUB_FW_VERSION` macro
    9ced7e65c3c4 drm/amdgpu: fix clearing mappings for BOs that are always valid in VM
    0121d83ddfc8 drm/rockchip: vop: Leave vblank enabled in self-refresh
    941a395e969b drm/atomic: Allow vblank-enabled + self-refresh "disable"
    54163ad21e17 fs: dlm: return positive pid value for F_GETLK
    866bf37b7c10 dm init: add dm-mod.waitfor to wait for asynchronously probed block devices
    4f61488541bb md/raid0: add discard support for the 'original' layout
    3435c5674e67 mfd: pm8008: Fix module autoloading
    560c458340a9 misc: pci_endpoint_test: Re-init completion for every test
    14bdee38e96c misc: pci_endpoint_test: Free IRQs before removing the device
    eec34da87bc6 PCI: rockchip: Set address alignment for endpoint mode
    750fd00a0a37 PCI: rockchip: Use u32 variable to access 32-bit registers
    875d7a7f851a PCI: rockchip: Fix legacy IRQ generation for RK3399 PCIe endpoint core
    7b0026977a51 PCI: rockchip: Add poll and timeout to wait for PHY PLLs to be locked
    049d774b8b9b PCI: rockchip: Write PCI Device ID to correct register
    20c62b3c1e4d PCI: rockchip: Assert PCI Configuration Enable bit after probe
    e8cc74b6b446 PCI: qcom: Disable write access to read only registers for IP v2.3.3
    7b2f1ddc943a PCI: Add function 1 DMA alias quirk for Marvell 88SE9235
    1d24c5b10dbb PCI/PM: Avoid putting EloPOS E2/S2/H2 PCIe Ports in D3cold
    f930cf3f21fd dm integrity: reduce vmalloc space footprint on 32-bit architectures
    70564215ad92 hwrng: imx-rngc - fix the timeout for init and self check
    de984faecddb jfs: jfs_dmap: Validate db_l2nbperpage while mounting
    d04a3ff04c93 ext4: only update i_reserved_data_blocks on successful block allocation
    c327b83c59ee ext4: turn quotas off if mount failed after enabling quotas
    8830523440a6 ext4: fix to check return value of freeze_bdev() in ext4_shutdown()
    c7514dceb7b9 ext4: fix wrong unit use in ext4_mb_new_blocks
    5523851fad60 ext4: get block from bh in ext4_free_blocks for fast commit replay
    ba92af119b31 ext4: fix wrong unit use in ext4_mb_clear_bb
    951ee9c9bb05 ext4: Fix reusing stale buffer heads from last failed mounting
    cd517f9a9d07 MIPS: KVM: Fix NULL pointer dereference
    fd89522a6198 MIPS: Loongson: Fix cpu_probe_loongson() again
    0e1854f87be8 erofs: fix compact 4B support for 16k block size
    e4e7f67cc14e arm64: errata: Add detection for TRBE overwrite in FILL mode
    affdbc8fbc7a powerpc/security: Fix Speculation_Store_Bypass reporting on Power10
    9f1627d8b0a4 misc: fastrpc: Create fastrpc scalar with correct buffer count
    faea67e6a508 powerpc: Fail build if using recordmcount with binutils v2.37
    7eeed3ed1a6c mm/damon/ops-common: atomically test and clear young on ptes and pmds
    7efc5bee2473 net: bcmgenet: Ensure MDIO unregistration has clocks enabled
    626c1c291302 mtd: rawnand: meson: fix unaligned DMA buffers handling
    e08295290c53 tpm: tpm_vtpm_proxy: fix a race condition in /dev/vtpmx creation
    936adde9c338 pinctrl: amd: Only use special debounce behavior for GPIO 0
    0bcf6b12e699 pinctrl: amd: Detect and mask spurious interrupts
    dff67c64f67b pinctrl: amd: Detect internal GPIO0 debounce handling
    cc5050add034 pinctrl: amd: Fix mistake in handling clearing pins at startup
    982c29e0d27a f2fs: fix to avoid NULL pointer dereference f2fs_write_end_io()
    333feb7ba84f fs/ntfs3: Check fields while reading
    04d2c9a6cb5c nvme-pci: fix DMA direction of unmapping integrity data
    c58e45fbeaa8 nvme-pci: remove nvme_queue from nvme_iod
    91d3554ab1fc net/sched: sch_qfq: account for stab overhead in qfq_enqueue
    8e0326cbc4d5 net/sched: sch_qfq: refactor parsing of netlink parameters
    78a0900e8dbc net/sched: make psched_mtu() RTNL-less safe
    31976c68be26 netdevsim: fix uninitialized data in nsim_dev_trap_fa_cookie_write()
    8a128e601f36 riscv: mm: fix truncation warning on RV32
    3bd945532d0d net/sched: flower: Ensure both minimum and maximum ports are specified
    d26299f50f5e bpf: cpumap: Fix memory leak in cpu_map_update_elem
    099abb1cd229 wifi: airo: avoid uninitialized warning in airo_get_rate()
    0e9ebc17457a erofs: fix fsdax unavailability for chunk-based regular files
    41ccbc2ecb63 erofs: decouple basic mount options from fs_context
    ed84618f8da2 erofs: avoid infinite loop in z_erofs_do_read_page() when reading beyond EOF
    e649333bcfe1 octeontx2-pf: Add additional check for MCAM rules
    c62da24de388 drm/i915: Fix one wrong caching mode enum usage
    567397dd8e7b riscv, bpf: Fix inconsistent JIT image generation
    4e4e1f99bb47 bpf, riscv: Support riscv jit to provide bpf_line_info
    420d30d36725 igc: Fix inserting of empty frame for launchtime
    efc7f2593724 igc: Fix launchtime before start of cycle
    d29387922b85 kernel/trace: Fix cleanup logic of enable_trace_eprobe
    7aefc43277e5 platform/x86: wmi: Break possible infinite loop when parsing GUID
    02081e57188b platform/x86: wmi: move variables
    f3583db8980a platform/x86: wmi: use guid_t and guid_equal()
    3b6fef411030 platform/x86: wmi: remove unnecessary argument
    82abd1c37d3b ipv6/addrconf: fix a potential refcount underflow for idev
    1d63fdf6d3ed NTB: ntb_tool: Add check for devm_kcalloc
    0aa187a99935 NTB: ntb_transport: fix possible memory leak while device_register() fails
    7e475cf97c47 ntb: intel: Fix error handling in intel_ntb_pci_driver_init()
    3326ecef63ca NTB: amd: Fix error handling in amd_ntb_pci_driver_init()
    fe1a2ed41162 ntb: idt: Fix error handling in idt_pci_driver_init()
    7f2153c1ae89 udp6: fix udp6_ehashfn() typo
    3fabca5d9cae icmp6: Fix null-ptr-deref of ip6_null_entry->rt6i_idev in icmp6_dev().
    ea438eed94ac net: prevent skb corruption on frag list segmentation
    02474292a442 net: bgmac: postpone turning IRQs off to avoid SoC hangs
    1417dd787a5e ionic: remove WARN_ON to prevent panic_on_warn
    aa915d12c1cc gve: Set default duplex configuration to full
    5b55f2d6ef40 net/sched: cls_fw: Fix improper refcount update leads to use-after-free
    1d263bbdc5c6 net: mvneta: fix txq_map in case of txq_number==1
    4a4804e6ae84 bpf: Fix max stack depth check for async callbacks
    1b555dff835c scsi: qla2xxx: Fix error code in qla2x00_start_sp()
    6e8af127ddbd igc: Handle PPS start time programming for past time values
    809ea3a3eb3e igc: set TP bit in 'supported' and 'advertising' fields of ethtool_link_ksettings
    82ac62d76a00 net/mlx5e: Check for NOT_READY flag state after locking
    4892e1e548b5 net/mlx5e: fix memory leak in mlx5e_ptp_open
    c61303ae2ce0 net/mlx5e: fix double free in mlx5e_destroy_flow_table
    f4b1f2625186 igc: Remove delay during TX ring configuration
    b3540c0de848 drm/panel: simple: Add Powertip PH800480T013 drm_display_mode flags
    9dbc0fa2e85a drm/bridge: ti-sn65dsi86: Fix auxiliary bus lifetime
    486b2551b068 drm/panel: simple: Add connector_type for innolux_at043tn24
    eb947403518e ksmbd: validate session id and tree id in the compound request
    3813eee5154d ksmbd: fix out-of-bound read in smb2_write
    35f450f54dca ksmbd: validate command payload size
    08871ede8318 ksmbd: use ksmbd_req_buf_next() in ksmbd_smb2_check_message()
    d528faa9e828 workqueue: clean up WORK_* constant types, clarify masking
    aed37b12a253 net: lan743x: Don't sleep in atomic context
    d9e1cfae8d8e io_uring: add reschedule point to handle_tw_list()
    f8307d862ca4 io_uring: Use io_schedule* in cqring wait
    ecb9443b203f block/partition: fix signedness issue for Amiga partitions
    478a7a30c33c tty: serial: fsl_lpuart: add earlycon for imx8ulp platform
    75308d64c050 wireguard: netlink: send staged packets when setting initial private key
    8c660cfd7230 wireguard: queueing: use saner cpu selection wrapping
    870dcc31c0cf netfilter: nf_tables: prevent OOB access in nft_byteorder_eval
    041e2ac88cae netfilter: nf_tables: do not ignore genmask when looking up chain by id
    6f03ce2f1abc netfilter: conntrack: Avoid nf_ct_helper_hash uses after free
    2bd6f13734ce netfilter: nf_tables: unbind non-anonymous set if rule construction fails
    30235c245700 fanotify: disallow mount/sb marks on kernel internal pseudo fs
    d97481c7b273 ovl: fix null pointer dereference in ovl_get_acl_rcu()
    db42d2bf4f21 fs: no need to check source
    86b93cbfe104 leds: trigger: netdev: Recheck NETDEV_LED_MODE_LINKUP on dev rename
    ecc8d95067e4 ARM: orion5x: fix d2net gpio initialization
    1c401bb99394 ARM: dts: qcom: ipq4019: fix broken NAND controller properties override
    02b5d96f7dd0 ASoC: mediatek: mt8173: Fix snd_soc_component_initialize error path
    5f35f98e5609 ASoC: mediatek: mt8173: Fix irq error path
    6e7f6b4b5ca0 btrfs: do not BUG_ON() on tree mod log failure at __btrfs_cow_block()
    bdc8a582e1a4 btrfs: fix extent buffer leak after tree mod log failure at split_node()
    7ba0da31dd4a btrfs: fix race when deleting quota root from the dirty cow roots list
    bacd1c80e3b6 btrfs: reinsert BGs failed to reclaim
    d1ca553f9431 btrfs: bail out reclaim process if filesystem is read-only
    d8e172616fb7 btrfs: delete unused BGs while reclaiming BGs
    12b6d6849898 btrfs: add handling for RAID1C23/DUP to btrfs_reduce_alloc_profile
    dd15d1c5c22d fs: avoid empty option when generating legacy mount string
    79b9ab357b6f jffs2: reduce stack usage in jffs2_build_xattr_subsystem()
    5ca021be5211 ipvs: increase ip_vs_conn_tab_bits range for 64BIT
    6db001a7ed75 fs: Lock moved directories
    40f99ad8e2c2 fs: Establish locking order for unrelated directories
    8fdae421c26f Revert "f2fs: fix potential corruption when moving a directory"
    eca9c3d86dd0 ext4: Remove ext4 locking of moved directory
    487f229efea8 shmem: use ramfs_kill_sb() for kill_sb method of ramfs-based tmpfs
    17bdba70a802 autofs: use flexible array in ioctl structure
    e7acd18e5ec3 integrity: Fix possible multiple allocation in integrity_inode_get()
    f4e0809d3adc um: Use HOST_DIR for mrproper
    f67b0e3081f2 bcache: Fix __bch_btree_node_alloc to make the failure behavior consistent
    991e9c186a8a bcache: Remove unnecessary NULL point check in node allocations
    cbdd5b3322f7 bcache: fixup btree_cache_wait list damage
    99d0599742be mmc: sdhci: fix DMA configure compatibility issue when 64bit DMA mode is used.
    c893918bf4d8 mmc: mmci: Set PROBE_PREFER_ASYNCHRONOUS
    4a489c8e9cc8 mmc: core: disable TRIM on Micron MTFC4GACAJCN-1M
    5b555f250069 mmc: core: disable TRIM on Kingston EMMC04G-M627
    8e2983536613 io_uring: wait interruptibly for request completions on exit
    e5da56c682f1 NFSD: add encoding of op_recall flag for write delegation
    8a77b1d4663f i2c: qup: Add missing unwind goto in qup_i2c_probe()
    5bf90e5e793a btrfs: do not BUG_ON() on tree mod log failure at balance_level()
    e15eb4ec862c extcon: usbc-tusb320: Convert to i2c's .probe_new()
    112c15d0974f i2c: xiic: Don't try to handle more interrupt events after error
    9eaef43fef90 i2c: xiic: Defer xiic_wakeup() and __xiic_start_xfer() in xiic_process()
    0fa0cd1f98c1 apparmor: fix missing error check for rhashtable_insert_fast
    196f6c71905a sh: dma: Fix DMA channel offset calculation
    6342e46566f6 s390/qeth: Fix vipa deletion
    307623bae629 octeontx-af: fix hardware timestamp configuration
    deee40944a75 net: dsa: tag_sja1105: fix MAC DA patching from meta frames
    e4db7f4369eb pptp: Fix fib lookup calls.
    a4284246fca2 riscv: move memblock_allow_resize() after linear mapping is ready
    ae682149bc00 net/sched: act_pedit: Add size check for TCA_PEDIT_PARMS_EX
    edd944b70ad2 xsk: Honor SO_BINDTODEVICE on bind
    428ccde9242a tcp: annotate data races in __tcp_oow_rate_limited()
    0dad52a840d6 net: bridge: keep ports without IFF_UNICAST_FLT in BR_PROMISC mode
    ada440952d5e powerpc: allow PPC_EARLY_DEBUG_CPM only when SERIAL_CPM=y
    f3380d895e28 ntfs: Fix panic about slab-out-of-bounds caused by ntfs_listxattr()
    e425e2ba9336 octeontx2-af: Add validation before accessing cgx and lmac
    eeaf264cd43f octeontx2-af: Fix mapping for NIX block from CGX connection
    d58d718136f8 f2fs: fix error path handling in truncate_dnode()
    c0dd447558c6 mailbox: ti-msgmgr: Fill non-message tx data fields with 0x0
    217b6ea8cf7b spi: bcm-qspi: return error if neither hif_mspi nor mspi is available
    2e2e5f9300a1 net: dsa: vsc73xx: fix MTU configuration
    b8aedf29db12 ibmvnic: Do not reset dql stats on NON_FATAL err
    6a5a705fa8ad Add MODULE_FIRMWARE() for FIRMWARE_TG357766.
    a6527128feeb net/sched: act_ipt: add sanity checks on table name and hook locations
    1fba2510b52f sctp: fix potential deadlock on &net->sctp.addr_wq_lock
    baa76d9b6163 media: cec: i2c: ch7322: also select REGMAP
    677c5707ec38 drm/i915/psr: Use hw.adjusted mode when calculating io/fast wake times
    2a0acbc6b7cd rtc: st-lpc: Release some resources in st_rtc_probe() in case of error
    7834580ca104 md/raid10: fix the condition to call bio_end_io_acct()
    d623fd42a019 pwm: mtk_disp: Fix the disable flow of disp_pwm
    db3c7f3eb85f pwm: ab8500: Fix error code in probe()
    05b35ea06d26 pwm: sysfs: Do not apply state to already disabled PWMs
    aa12faec2314 pwm: imx-tpm: force 'real_period' to be zero in suspend
    07e229f06eba phy: tegra: xusb: check return value of devm_kzalloc()
    f7454b8fd21f mfd: stmpe: Only disable the regulators if they are enabled
    a9ccf140a2a0 KVM: s390/diag: fix racy access of physical cpu number in diag 9c handler
    2070f3e0bc76 KVM: s390: vsie: fix the length of APCB bitmap
    52f371952a71 mfd: stmfx: Nullify stmfx->vdd in case of error
    b1dbc919c166 mfd: stmfx: Fix error path in stmfx_chip_init
    9783c2ec8d04 nvmem: rmem: Use NVMEM_DEVID_AUTO
    e6bd54f4977b test_firmware: return ENOMEM instead of ENOSPC on failed memory allocation
    22c7e378b06b serial: 8250_omap: Use force_suspend and resume for system suspend
    10f6656c9575 Revert "usb: common: usb-conn-gpio: Set last role to unknown before initial detection"
    76ac2acb7554 mfd: intel-lpss: Add missing check for platform_get_resource
    0e8b1a28351b usb: dwc3-meson-g12a: Fix an error handling path in dwc3_meson_g12a_probe()
    f232c1caac3c usb: common: usb-conn-gpio: Set last role to unknown before initial detection
    dfda400a4d04 usb: dwc3: qcom: Fix an error handling path in dwc3_qcom_probe()
    81ecef54d8c6 usb: dwc3: qcom: Release the correct resources in dwc3_qcom_remove()
    f219ea71ee0f KVM: s390: fix KVM_S390_GET_CMMA_BITS for GFNs in memslot holes
    de846dec7aee media: atomisp: gmin_platform: fix out_len in gmin_get_config_dsm_var()
    7ad558baf6d0 media: venus: helpers: Fix ALIGN() of non power of two
    3bedb7a27353 mfd: rt5033: Drop rt5033-battery sub-device
    a77616f5a3c3 coresight: Fix loss of connection info when a module is unloaded
    ca9e766c8a49 kernfs: fix missing kernfs_idr_lock to remove an ID from the IDR
    e7ecade51b48 serial: 8250: lock port for UART_IER access in omap8250_irq()
    c1a4ad35c566 serial: 8250: lock port for stop_rx() in omap8250_irq()
    c2194a361087 usb: hide unused usbfs_notify_suspend/resume functions
    ecf26d6e1b54 usb: phy: phy-tahvo: fix memory leak in tahvo_usb_probe()
    b10200650e1e extcon: Fix kernel doc of property capability fields to avoid warnings
    44e383e22af0 extcon: Fix kernel doc of property fields to avoid warnings
    a8ea7ed644cb usb: gadget: u_serial: Add null pointer check in gserial_suspend
    b626cd5e4a87 usb: dwc3: qcom: Fix potential memory leak
    1cee6f04105f clk: qcom: ipq6018: fix networking resets
    6ad5ded420f5 clk: qcom: reset: support resetting multiple bits
    40844343a885 clk: qcom: reset: Allow specifying custom reset delay
    cab904bf50c4 media: i2c: Correct format propagation for st-mipid02
    784a8027b8ac media: usb: siano: Fix warning due to null work_func_t function pointer
    1e1af31c4c5d media: videodev2.h: Fix struct v4l2_input tuner index comment
    a3727915b350 media: usb: Check az6007_read() return value
    2a50c146cb3b clk: qcom: gcc-ipq6018: Use floor ops for sdcc clocks
    8d762ad8006e clk: qcom: camcc-sc7180: Add parent dependency to all camera GDSCs
    10e2b1c5d819 serial: 8250: omap: Fix freeing of resources on failed register
    a1a5c5606048 usb: dwc2: Fix some error handling paths
    fa1547b47195 usb: dwc2: platform: Improve error reporting for problems during .remove()
    0a9c0fa3e91a sh: j2: Use ioremap() to translate device tree address into kernel memory
    629e97f0c862 w1: fix loop in w1_fini()
    cb263e9b6d76 w1: w1_therm: fix locking behavior in convert_t
    fbf4ace39b2e SUNRPC: Fix UAF in svc_tcp_listen_data_ready()
    92905470a125 block: increment diskseq on all media change events
    8744a9eda7c1 block: change all __u32 annotations to __be32 in affs_hardblocks.h
    de4d538380f6 block: add overflow checks for Amiga partition support
    bc0129a644f0 block: fix signed int overflow in Amiga partition support
    92a37fc52272 ALSA: jack: Fix mutex call in snd_jack_report()
    2f533bcb0717 ALSA: hda/realtek: Add quirk for Clevo NPx0SNx
    5bcdfe1544f2 iio: accel: fxls8962af: fixup buffer scan element type
    8cc75ce657a4 iio: accel: fxls8962af: errata bug only applicable for FXLS8962AF
    92cee2da5b45 iio: adc: ad7192: Fix internal/external clock selection
    f88a05ef447f iio: adc: ad7192: Fix null ad7192_state pointer access
    b84998a407a8 phy: tegra: xusb: Clear the driver reference in usb-phy dev
    8585c6cb0381 usb: dwc3: gadget: Propagate core init errors to UDC during pullup
    9cd1627ff0f1 USB: serial: option: add LARA-R6 01B PIDs
    fb348857e7b6 io_uring: ensure IOPOLL locks around deferred work
    4909d0ad1728 bootmem: remove the vmemmap pages from kmemleak in free_bootmem_page
    902256de2b95 ACPI: utils: Fix acpi_evaluate_dsm_typed() redefinition error
    b3889a5990b5 ksmbd: avoid field overflow warning
    ef26b05023e7 efi/libstub: Disable PCI DMA before grabbing the EFI memory map
    5c883c42bd78 kbuild: Disable GCOV for *.mod.o
    3d9f6fc71de5 hwrng: st - keep clock enabled while hwrng is registered
    cd5bd4b7130c dax/kmem: Pass valid argument to memory_group_register_static
    2a327c8c315a dax: Introduce alloc_dev_dax_id()
    9c2f993b6ca9 dax: Fix dax_mapping_release() use after free
    63fb45ddc491 SMB3: Do not send lease break acknowledgment if all file handles have been closed
    7f6023610b4e NFSv4.1: freeze the session table upon receiving NFS4ERR_BADSESSION
    6d9f814b265c crypto: qat - unmap buffers before free for RSA
    718f30e30b3e crypto: qat - unmap buffer before free for DH
    3894f5880f96 crypto: qat - Use helper to set reqsize
    30682e121475 crypto: kpp - Add helper to set reqsize
    41bd35a16196 crypto: qat - use reference to structure in dma_map_single()
    a3fcd2d23df9 crypto: qat - replace get_current_node() with numa_node_id()
    9560559cba40 crypto: qat - honor CRYPTO_TFM_REQ_MAY_SLEEP flag
    f6ee18555b40 ARC: define ASM_NL and __ALIGN(_STR) outside #ifdef __ASSEMBLY__ guard
    5e0424cd8a44 modpost: fix off by one in is_executable_section()
    7c0c62e5574f crypto: marvell/cesa - Fix type mismatch warning
    6bfdced5b6be modpost: fix section mismatch message for R_ARM_{PC24,CALL,JUMP24}
    cd7806eec34f modpost: fix section mismatch message for R_ARM_ABS32
    7543ffe03af6 crypto: nx - fix build warnings when DEBUG_FS is not enabled
    b030d239256c modpost: remove broken calculation of exception_table_entry size
    c76d991b6f01 hwrng: virtio - Fix race on data_avail and actual data
    64410e7b0306 hwrng: virtio - always add a pending request
    9a9ef9652941 hwrng: virtio - don't waste entropy
    f5634d21541e hwrng: virtio - don't wait on cleanup
    91806246e4e9 hwrng: virtio - add an internal buffer
    36874844f7b5 powerpc/mm/dax: Fix the condition when checking if altmap vmemap can cross-boundary
    271c25008a08 powerpc/book3s64/mm: Fix DirectMap stats in /proc/meminfo
    fafeeb398df1 riscv: uprobes: Restore thread.bad_cause
    3786416e1fa2 powerpc: update ppc_save_regs to save current r1 in pt_regs
    b08d9a11df37 powerpc: simplify ppc_save_regs
    d3a0d96c16e5 powerpc/powernv/sriov: perform null check on iov before dereferencing iov
    0a95dd17a73b pinctrl: at91-pio4: check return value of devm_kasprintf()
    50aa3e6abbb2 pinctrl: microchip-sgpio: check return value of devm_kasprintf()
    f7d92313002b powerpc/64s: Fix VAS mm use after free
    5e79521da11f perf dwarf-aux: Fix off-by-one in die_get_varname()
    ac6c849428fb perf script: Fix allocation of evsel->priv related to per-event dump files
    939bf462a125 powerpc/signal32: Force inlining of __unsafe_save_user_regs() and save_tm_user_regs_unsafe()
    7d25fc45c42c powerpc/interrupt: Don't read MSR from interrupt_exit_kernel_prepare()
    d4f3531cd2c3 kcsan: Don't expect 64 bits atomic builtins from 32 bits architectures
    196f18dd7f0e pinctrl: cherryview: Return correct value if pin in push-pull mode
    c92365c3f390 perf bench: Add missing setlocale() call to allow usage of %'d style formatting
    e456d9b2dd23 perf bench: Use unbuffered output when pipe/tee'ing to a file
    c02b496d9294 PCI: Add pci_clear_master() stub for non-CONFIG_PCI
    d1bfe6ca7328 PCI: ftpci100: Release the clock resources
    7fe2876aac63 PCI: pciehp: Cancel bringup sequence if card is not present
    dfbf41e4fc16 scsi: 3w-xxxx: Add error handling for initialization failure in tw_probe()
    9856c0de4905 PCI/ASPM: Disable ASPM on MFD function removal to avoid use-after-free
    6053df4da4fc pinctrl: bcm2835: Handle gpiochip_add_pin_range() errors
    b1de5105d29b scsi: qedf: Fix NULL dereference in error handling
    48e6b7602e9b PCI: vmd: Reset VMD config register between soft reboots
    34c701b52d04 PCI: cadence: Fix Gen2 Link Retraining process
    a326cf0107b1 clk: Fix memory leak in devm_clk_notifier_register()
    a0e7e33b8c2d ASoC: imx-audmix: check return value of devm_kasprintf()
    62f29ca45f83 ovl: update of dentry revalidate flags after copy up
    a089ec635ae9 drivers: meson: secure-pwrc: always enable DMA domain
    8ca6b2add2c0 clk: ti: clkctrl: check return value of kasprintf()
    b700e5d4feb0 clk: keystone: sci-clk: check return value of kasprintf()
    06759faca0ef clk: si5341: free unused memory on probe failure
    34b11a9a7d39 clk: si5341: check return value of {devm_}kasprintf()
    4ade98acef5a clk: si5341: return error if one synth clock registration fails
    9875046f147a clk: cdce925: check return value of kasprintf()
    d8832e85a1ae clk: vc5: check memory returned by kasprintf()
    f180408f164c drm/msm/dpu: correct MERGE_3D length
    e45377cfe1db arm64: dts: mediatek: mt8192: Fix CPUs capacity-dmips-mhz
    30111c478b97 arm64: dts: mediatek: Add cpufreq nodes for MT8192
    3c3f3d35f5e0 drm/msm/dp: Free resources after unregistering them
    ec3b55b2c91d drm/msm/dpu: do not enable color-management if DSPPs are not available
    300e26e3e648 ALSA: ac97: Fix possible NULL dereference in snd_ac97_mixer
    fd1c117bb5d7 clk: tegra: tegra124-emc: Fix potential memory leak
    2f276dd9c0f8 clk: clocking-wizard: Fix Oops in clk_wzrd_register_divider()
    141d87977b81 arm64: dts: qcom: sm8250-edo: Panel framebuffer is 2.5k instead of 4k
    bcea444ab4c0 clk: imx: clk-imx8mp: improve error handling in imx8mp_clocks_probe()
    50b5ddde8fad clk: imx: clk-imx8mn: fix memory leak in imx8mn_clocks_probe
    1fb12e7716e7 RDMA/bnxt_re: Avoid calling wake_up threads from spin_lock context
    79226176cdd1 RDMA/bnxt_re: wraparound mbox producer index
    bf35c202a3f0 drm/msm/a5xx: really check for A510 in a5xx_gpu_init
    4300a47e4017 amdgpu: validate offset_in_bo of drm_amdgpu_gem_va
    9b8087950b4c drm/radeon: fix possible division-by-zero errors
    b979dc54b6c7 drm/amd/display: Fix artifacting on eDP panels when engaging freesync video mode
    52c2b295e377 drm/amdkfd: Fix potential deallocation of previously deallocated memory.
    95afd2c7c7d2 ARM: dts: BCM5301X: fix duplex-full => full-duplex
    838534e86cbc hwmon: (pmbus/adm1275) Fix problems with temperature monitoring on ADM1272
    31c90fa8416f hwmon: (adm1275) Allow setting sample averaging
    3ff1062bd09b hwmon: (gsc-hwmon) fix fan pwm temperature scaling
    535eafe7158b ARM: dts: stm32: fix i2s endpoint format property for stm32mp15xx-dkx
    8909898d0b6c ARM: dts: stm32: Fix audio routing on STM32MP15xx DHCOM PDK2
    555ddd671cf3 arm64: dts: ti: k3-j7200: Fix physical address of pin
    716efd08985e fbdev: omapfb: lcd_mipid: Fix an error handling path in mipid_spi_probe()
    95cb88a85361 arm64: dts: renesas: ulcb-kf: Remove flow control for SCIF1
    06c6fdaa111a ARM: dts: iwg20d-q7-common: Fix backlight pwm specifier
    8ac3083a26d3 RDMA/hns: Fix hns_roce_table_get return value
    8d158b32cba6 IB/hfi1: Fix wrong mmu_node used for user SDMA packet after invalidate
    b2ffd8212ef4 IB/hfi1: Use bitmap_zalloc() when applicable
    192ab380657e RDMA/irdma: avoid fortify-string warning in irdma_clr_wqes
    f5ca4d358b9a soc/fsl/qe: fix usb.c build errors
    9dcc95e3fc51 ARM: dts: meson8: correct uart_B and uart_C clock references
    1b4d08bdc055 ASoC: es8316: Do not set rate constraints for unsupported MCLKs
    b324de100d3c ASoC: es8316: Increment max value for ALC Capture Target Volume control
    38d04765ad93 memory: brcmstb_dpfe: fix testing array offset after use
    17b723acee4e ARM: dts: stm32: Shorten the AV96 HDMI sound card name
    9c14802f14db arm64: dts: mediatek: mt8183: Add mediatek,broken-save-restore-fw to kukui
    8f08ff836c28 arm64: dts: qcom: apq8096: fix fixed regulator name property
    2e8c8fd792a0 ARM: omap2: fix missing tick_broadcast() prototype
    016aeb9a7604 ARM: ep93xx: fix missing-prototype warnings
    314850a4d0c6 drm/panel: simple: fix active size for Ampire AM-480272H3TMQW-T01H
    04f16697d351 arm64: dts: qcom: apq8016-sbc: Fix 1.8V power rail on LS expansion
    7ce11e909828 arm64: dts: qcom: apq8016-sbc: Fix regulator constraints
    8d139a395dbe arm64: dts: qcom: Drop unneeded extra device-specific includes
    078578f608ba arm64: dts: qcom: apq8016-sbc: fix mpps state names
    25d624af5a86 arm64: dts: qcom: apq8016-sbc: Clarify firmware-names
    d7d784424aa0 arm64: dts: qcom: apq8016-sbc: Update modem and WiFi firmware path
    6a843066e0ec arm64: dts: qcom: db820c: Move blsp1_uart2 pin states to msm8996.dtsi
    23f7e4bf8905 arm64: dts: qcom: sdm845: correct camss unit address
    dea5289b05f2 arm64: dts: qcom: sdm630: correct camss unit address
    b12e9fb2819a arm64: dts: qcom: msm8996: correct camss unit address
    5a8bbab2b14b arm64: dts: qcom: msm8994: correct SPMI unit address
    46474b10dcd7 arm64: dts: qcom: msm8916: correct camss unit address
    b4ed5be2ea31 ARM: dts: gta04: Move model property out of pinctrl node
    70b8eeb7c67e drm/msm/dpu: Set DPU_DATA_HCTL_EN for in INTF_SC7180_MASK
    2422edc2256c drm/msm/disp/dpu: get timing engine status from intf status register
    adac5cf6092e drm/msm/dsi: don't allow enabling 14nm VCO with unprogrammed rate
    6882389691e1 RDMA/bnxt_re: Fix to remove an unnecessary log
    b41dd1d896d1 RDMA/bnxt_re: Remove a redundant check inside bnxt_re_update_gid
    9ccca79eb353 RDMA/bnxt_re: Use unique names while registering interrupts
    ced019c1f9ea RDMA/bnxt_re: Fix to remove unnecessary return labels
    adc129e89497 RDMA/bnxt_re: Disable/kill tasklet only if it is enabled
    f95ff838ac39 clk: imx: scu: use _safe list iterator to avoid a use after free
    f564dd710971 arm64: dts: microchip: sparx5: do not use PSCI on reference boards
    3752e6a98e10 bus: ti-sysc: Fix dispc quirk masking bool variables
    6d07673027f4 ARM: dts: stm32: Move ethernet MAC EEPROM from SoM to carrier boards
    a14e6f9392dc drm/panel: sharp-ls043t1le01: adjust mode settings
    6b5a02a57265 drm: sun4i_tcon: use devm_clk_get_enabled in `sun4i_tcon_init_clocks`
    ec43cfdcbd36 Input: adxl34x - do not hardcode interrupt trigger type
    fd6cdc56ee28 ARM: dts: meson8b: correct uart_B and uart_C clock references
    5899bc4058e8 ARM: dts: BCM5301X: Drop "clock-names" from the SPI node
    ba51c4072f9a drm/vram-helper: fix function names in vram helper doc
    019f013e8b92 drm/bridge: tc358768: fix THS_TRAILCNT computation
    ed8bfa046153 drm/bridge: tc358768: fix TXTAGOCNT computation
    cec2271095d2 drm/bridge: tc358768: fix THS_ZEROCNT computation
    47b8546301a9 drm/bridge: tc358768: fix TCLK_TRAILCNT computation
    a07e6484f915 drm/bridge: tc358768: Add atomic_get_input_bus_fmts() implementation
    34b805ab386c drm/bridge: tc358768: fix TCLK_ZEROCNT computation
    9e0668ecef6e drm/bridge: tc358768: fix PLL target frequency
    81bb5e859f2e drm/bridge: tc358768: fix PLL parameters computation
    6451b3274fb3 drm/bridge: tc358768: always enable HS video mode
    26a0ba5d1654 Input: drv260x - sleep between polling GO bit
    efb61a718540 drm/amd/display: Explicitly specify update type per plane info change
    53e0a5ba9deb radeon: avoid double free in ci_dpm_init()
    6173df9026d0 drm/amd/display: Add logging for display MALL refresh setting
    a4b0164fc18b netlink: Add __sock_i_ino() for __netlink_diag_dump().
    04daf3f67497 ipvlan: Fix return value of ipvlan_queue_xmit()
    eb720f669b6d netfilter: nf_conntrack_sip: fix the ct_sip_parse_numerical_param() return value.
    c052797ac368 netfilter: conntrack: dccp: copy entire header to stack buffer, not just basic one
    5848ad42507d lib/ts_bm: reset initial match offset for every block of text
    fc8429f8d868 net: nfc: Fix use-after-free caused by nfc_llcp_find_local
    60ec0058c72f nfc: llcp: simplify llcp_sock_connect() error paths
    91f4ef204e73 sfc: fix crash when reading stats while NIC is resetting
    9ced40bf849e net: axienet: Move reset before 64-bit DMA detection
    ebd6d2077a08 gtp: Fix use-after-free in __gtp_encap_destroy().
    4f22f55dc80d selftests: rtnetlink: remove netdevsim device after ipsec offload test
    029d892b05fc bonding: do not assume skb mac_header is set
    619384319b13 netlink: do not hard code device address lenth in fdb dumps
    a641240b7e07 netlink: fix potential deadlock in netlink_set_err()
    d4aee9512ae0 net: stmmac: fix double serdes powerdown
    cfe147bdd094 igc: Fix race condition in PTP tx code
    c729f590fe41 can: length: fix bitstuffing count
    4bc47970179a bpf: Fix bpf socket lookup from tc/xdp to respect socket VRF bindings
    a254e029b742 bpf: Call __bpf_sk_lookup()/__bpf_skc_lookup() directly via TC hookpoint
    9eb2651c67b5 bpf: Factor out socket lookup functions for the TC hookpoint.
    a66cce0339a6 bpf: Omit superfluous address family check in __bpf_skc_lookup
    7e3d771f85c3 wifi: ath9k: convert msecs to jiffies where needed
    248fc11128f9 wifi: iwlwifi: mvm: indicate HW decrypt for beacon protection
    365cd15e8fcb wifi: cfg80211: rewrite merging of inherited elements
    3b9de981fe7f wifi: iwlwifi: pcie: fix NULL pointer dereference in iwl_pcie_irq_rx_msix_handler()
    d0f665eee9c3 iwlwifi: don't dump_stack() when we get an unexpected interrupt
    a6db476ff38c wifi: iwlwifi: pull from TXQs with softirqs disabled
    a572c6852b51 rtnetlink: extend RTEXT_FILTER_SKIP_STATS to IFLA_VF_INFO
    48c2d1455a6a wifi: ath9k: Fix possible stall on ath9k_txq_list_has_key()
    8c561a59c6cd memstick r592: make memstick_debug_get_tpc_name() static
    79c0fbf8f359 kexec: fix a memory leak in crash_shrink_memory()
    ed8d827f4313 watchdog/perf: more properly prevent false positives with turbo modes
    c29d8d1f56c3 watchdog/perf: define dummy watchdog_update_hrtimer_threshold() on correct config
    15b37d2b4a02 wifi: rsi: Do not set MMC_PM_KEEP_POWER in shutdown
    4391fa180856 wifi: rsi: Do not configure WoWlan in shutdown hook if not enabled
    ac4bf9426af9 selftests/bpf: Fix check_mtu using wrong variable type
    95b4b940f0fb wifi: ath9k: don't allow to overwrite ENDPOINT0 attributes
    ef24fe436bab wifi: ray_cs: Fix an error handling path in ray_probe()
    0700d878b0d2 wifi: ray_cs: Drop useless status variable in parse_addr()
    d696cbbe43db wifi: ray_cs: Utilize strnlen() in parse_addr()
    93890d057317 wifi: wl3501_cs: Fix an error handling path in wl3501_probe()
    eaffd568a248 wl3501_cs: use eth_hw_addr_set()
    c6143548e634 wifi: atmel: Fix an error handling path in atmel_probe()
    5a0a312d3490 wifi: orinoco: Fix an error handling path in orinoco_cs_probe()
    f5bb5474f40d wifi: orinoco: Fix an error handling path in spectrum_cs_probe()
    ec856ca3b0ac regulator: core: Streamline debugfs operations
    fc2f8b9054eb regulator: core: Fix more error checking for debugfs_create_dir()
    534508689e89 bpftool: JIT limited misreported as negative value on aarch64
    e7e0b6e066f0 nfc: llcp: fix possible use of uninitialized variable in nfc_llcp_send_connect()
    edeb029dd9ad spi: dw: Round of n_bytes to power of 2
    ac6158b5c4db bpf: Don't EFAULT for {g,s}setsockopt with wrong optlen
    71754ee427d7 libbpf: fix offsetof() and container_of() to work with CO-RE
    3e7ee33b95e0 sctp: add bpf_bypass_getsockopt proto callback
    a32a89bb0459 wifi: mwifiex: Fix the size of a memory allocation in mwifiex_ret_802_11_scan()
    a55f88dd156f wifi: wilc1000: fix for absent RSN capabilities WFA testcase
    e215a8a4283a spi: spi-geni-qcom: Correct CS_TOGGLE bit in SPI_TRANS_CFG
    e92f61e0701e samples/bpf: Fix buffer overflow in tcp_basertt
    c77eb01a6e41 libbpf: btf_dump_type_data_check_overflow needs to consider BTF_MEMBER_BITFIELD_SIZE
    ad5425e70789 wifi: ath9k: avoid referencing uninit memory in ath9k_wmi_ctrl_rx
    06da826e3b7d wifi: ath9k: fix AR9003 mac hardware hang check register offset calculation
    79305655961d igc: Enable and fix RX hash usage by netstack
    38a9d7dac3ad pstore/ram: Add check for kstrdup
    745cec2bd3b3 ima: Fix build warnings
    41da2c318cf1 evm: Fix build warnings
    757b06fb026c evm: Complete description of evm_inode_setattr()
    85872ffac4d8 locking/atomic: arm: fix sync ops
    cf78062aa988 x86/mm: Fix __swp_entry_to_pte() for Xen PV guests
    bd4c759d31ca perf/ibs: Fix interface via core pmu events
    87666a7d3e40 kselftest: vDSO: Fix accumulation of uninitialized ret when CLOCK_REALTIME is undefined
    f766d45ab294 rcu/rcuscale: Stop kfree_scale_thread thread(s) after unloading rcuscale
    bfe210f62518 rcu/rcuscale: Move rcu_scale_*() after kfree_scale_cleanup()
    751cb9511764 rcuscale: Move shutdown from wait_event() to wait_event_idle()
    a6d33ea30575 rcuscale: Always log error message
    e610497ba1ce rcutorture: Correct name of use_softirq module parameter
    c756e8a227c4 thermal/drivers/sun8i: Fix some error handling paths in sun8i_ths_probe()
    e2b32b0c5f0a cpufreq: intel_pstate: Fix energy_performance_preference for passive
    b51194170f9a ARM: 9303/1: kprobes: avoid missing-declaration warnings
    4864c82cb8b5 powercap: RAPL: Fix CONFIG_IOSF_MBI dependency
    2c06e0e0102f perf/arm-cmn: Fix DTC reset
    3c4f5aee3795 PM: domains: fix integer overflow issues in genpd_parse_state()
    289e2054eeb6 clocksource/drivers/cadence-ttc: Fix memory leak in ttc_timer_probe
    5017132f2f92 tracing/timer: Add missing hrtimer modes to decode_hrtimer_mode().
    0670c4c567b2 posix-timers: Prevent RT livelock in itimer_delete()
    f222873711a5 svcrdma: Prevent page release when nothing was received
    6689782746a3 irqchip/jcore-aic: Fix missing allocation of IRQ descriptors
    e6b7362290ba md/raid10: fix io loss while replacement replace rdev
    f4368a462b1f md/raid10: fix null-ptr-deref of mreplace in raid10_sync_request
    3c76920e547d md/raid10: fix wrong setting of max_corr_read_errors
    d3bf54a69bce md/raid10: fix overflow of md/safe_mode_delay
    a134dd582c0d md/raid10: check slab-out-of-bounds in md_bitmap_get_counter
    eb120c0aff5c blk-iocost: use spin_lock_irqsave in adjust_inuse_and_calc_cost
    1bc29ba9598c x86/resctrl: Only show tasks' pid in current pid namespace
    d9c194281bc8 fs: pipe: reveal missing function protoypes
    25aa2ad37c21 netfilter: nf_tables: drop map element references from preparation phase

(From OE-Core rev: b135d73eccf54fc6afa07c2d8f4ba25c234469e2)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 25bd49d03af0e20808c26744e35fe7f416981017)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Dmitry Baryshkov
b13372cec5 linux-firmware: split platform-specific Adreno shaders to separate packages
For newest Qualcomm platforms the firmware for the Adreno GPU consists
of two parts: platform-independent SQE/GMU/GPMU/PFP/PM4 and
platform-specific ZAP shader, which is used during the boot process. As
the platform-independent parts can be shared between different
platforms, split the platform-specific part to the separate package.

(From OE-Core rev: e21f3d57736993c5c4bda67428afca7503a3dece)

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bf00a042d2fa2eb4b20d8c5982926758821bf990)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
BELOUARGA Mohamed
918b403c9d linux-firmware : Add firmware of RTL8822 serie
RTL8822 is a serie of wireless modules that need firmwares to function correctly.
The linux firmware recipe does not have a package of these firmwares, and this commit add them.

(From OE-Core rev: 38b468be11bfb15cca68694ed35dc9b2874da11f)

Signed-off-by: BELOUARGA Mohamed <m.belouarga@technologyandstrategy.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6459959beeb91c0b694f5f17b6587a12c6dcb087)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Dmitry Baryshkov
a7be22db10 linux-firmware: package firmare for Dragonboard 410c
Latest linux-firmware archive inclues firmware for the Dragonboard 410c
device (Qualcomm apq8016 SBC). Follow the rest of linux-firmware-qcom-*
packages as a template and create packages for the new firmware files.

(From OE-Core rev: fb66b90c7ea5f315b75624d95d4d5a01ffe09a30)

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 380216e8d3b63d563ebfb10445fc6eb5e77eb9f2)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit ffd5eeb866254a958846c7099d1d46e553beed56)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Trevor Gamblin
3113128bb5 linux-firmware: upgrade 20230515 -> 20230625
WHENCE checksum changed because of updated version lists and removal of
information for the RTL8188EU driver.

(From OE-Core rev: dee368268941015384f206656e180de4791a4f10)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 986f8ca9d4c2c22d368f69e65b2ab76d661edca0)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Wang Mingyu
2cdcb92701 libnss-nis: upgrade 3.1 -> 3.2
Changelog:
* Do not call malloc_usable_size

(From OE-Core rev: 641cef34fa4f626b6250f5495392c68a29b46dc9)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5cd967503c0574f45b814572da9503182556b431)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Chee Yang Lee
a26e9c042a bind: 9.18.11 -> 9.18.17
upgrade also include fix for CVE-2023-2829.

License-Update: removed trailing whitespace from COPYRIGHT

also remove obsolete configuration option epoll and devpoll:
6b6076c882

(From OE-Core rev: f240a373266bd778f380a0611ccf0183d24f76b6)

Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Archana Polampalli
d61ed22d6f gstreamer1.0: upgrade 1.20.6 -> 1.20.7
This release only contains bugfixes.

Highlighted bugfixes in 1.20.7:

Security fixes for flacparse, dvdspu, and subparse, and the RealMedia demuxer
h265parse: Fix framerate handling
filesink: Fix buffered mode writing of buffer lists and buffers with multiple memories
asfmux, rtpbin_buffer_list test: fix possible unaligned write/read on 32-bit ARM
ptp clock: Work around bug in ptpd in default configuration
qtdemux: fix reverse playback regression with edit lists
rtspsrc: various control path handling server compatibility improvements
avviddec: fix potential deadlock on seeking with FFmpeg 6.x
cerbero: Fix pango crash on 32bit Windows; move libass into non-GPL codecs
Miscellaneous bug fixes, memory leak fixes, and other stability and reliability improvements

https://nvd.nist.gov/vuln/detail/CVE-2023-37327
https://nvd.nist.gov/vuln/detail/CVE-2023-37328
https://nvd.nist.gov/vuln/detail/CVE-2023-37329

https://gstreamer.freedesktop.org/releases/1.20/#1.20.7

(From OE-Core rev: c6b7492406540aca60dfd8c9913c7ac14fcc750f)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Chee Yang Lee
9a4f730528 librsvg: 2.52.7 -> 2.52.10
upgrade include fix for CVE-2023-38633

(From OE-Core rev: 2ac80e25d85a4dba62813e28525a00f13922fd4b)

Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Soumya Sambu
a45c130dee glib-2.0: Fix CVE-2023-32643 and CVE-2023-32636
fuzz_variant_binary_byteswap: Heap-buffer-overflow in g_variant_serialised_get_child

fuzz_variant_text: Timeout in fuzz_variant_text

(From OE-Core rev: f6b85f043f826862c6221bd0875b04aef7ab35ba)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Soumya Sambu
aae7997aea glib-2.0: Fix CVE-2023-29499 and CVE-2023-32611
GVariant offset table entry size is not checked in is_normal()

g_variant_byteswap() can take a long time with some non-normal inputs

(From OE-Core rev: 5ed552ce97e22b449c1036f6c58944ab26db2f0d)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Soumya Sambu
f51146f6ee glib-2.0: Fix CVE-2023-32665
GVariant deserialisation does not match spec for non-normal data

(From OE-Core rev: 2c1476bed55dc16a84b0fe163a4abb13e3ac5734)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-26 04:24:02 -10:00
Michael Opdenacker
3272e64a73 poky.conf: update SANITY_TESTED_DISTROS to match autobuilder
From the intersection of the list of allowed workers
on https://git.yoctoproject.org/yocto-autobuilder2/tree/config.py
and the active workers on
https://autobuilder.yoctoproject.org/typhoon/#/workers

(From meta-yocto rev: d45be9886a9680b88ecf2f1b9717492a0df9158e)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-21 09:45:15 -10:00
Michael Opdenacker
de29a6932e dev-manual: wic.rst: Update native tools build command
Requirements list seems to be outdated. It is not possible to follow
instructions for Raw Mode as not all of the native tools are available.
All wic dependencies are gathered under wic-tools package. Some commands
in the instruction already use wic-tools native sysroot, but this
dependency is not specified in the requirements.
Update the command for building native tools to use wic-tools instead
of the seperate packages.

(From yocto-docs rev: 7c03bcb3031c89b5183e5b4f3f0703bc91a014e2)

Signed-off-by: Daniel Semkowicz <dse@thaumatec.com>
Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-19 05:56:59 -10:00
Alexander Kanavin
54e3374480 libxcrypt: update PV to match SRCREV
When SRCREV was updated, only libxcrypt-compat was renamed to match,
but not libxcrypt proper.

(From OE-Core rev: f20a06149cb61264662d1eaf6ea02aefabc0a18b)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 98c89359532778a894f50ddea1cc6ab922d6e562)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-19 05:56:59 -10:00
Alberto Planas
bbd85cd9f4 rpm2cpio.sh: update to the last 4.x version
openSUSE RPMs are compressing the RPM payload using zstd, that
correspond to the magic ID 0x28, 0xb5, 0x2f.

This patch update the script to the last version from the rpm project,
and add support to this compression format, and extract the cpio payload
using the "unzstd" binary.

(From OE-Core rev: 9c0d66e693aa7ab8b3f2a3c68764e4ab6159c085)

Signed-off-by: Alberto Planas <aplanas@suse.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3aba44a75dd565b192f7328f2a0150a313de3cc1)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-19 05:56:59 -10:00
Pavel Zhukov
28fa51bcf0 scripts/rpm2cpio.sh: Use bzip2 instead of bunzip2
bzip2 is in HOSTTOOLS already and used in few other places already.
This fixes bin_package class for RPM packages without adding bunzip2 to
HOSTTOOLS.

(From OE-Core rev: ed4e4290a73b3fa0df9530a511f992e236e8ae9f)

Signed-off-by: Pavel Zhukov <pavel@zhukoff.net>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
(cherry picked from commit eb3ec7469fff857c819332371ad1d586f43c79c3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-19 05:56:59 -10:00
Martin Jansa
d21b4675d6 npm.bbclass: avoid DeprecationWarning with new python
meta/classes-recipe/npm.bbclass:85: DeprecationWarning: invalid escape sequence '\.'
  '--transform', 's,^\./,package/,',

(From OE-Core rev: a7078ff976ba720f25e94ddeddd3f82900b483be)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-19 05:56:59 -10:00
Marek Vasut
4dbd4e990e linux-firmware: Fix mediatek mt7601u firmware path
The following linux-firmware commit moved the mt7601u firmware blob
into a mediatek/ subdirectory, update the path accordingly.
8451c2b1 ("mt76xx: Move the old Mediatek WiFi firmware to mediatek")

(From OE-Core rev: 6fa5c4967a7e70192e9233c92534f27ec3e394c8)

Fixes: 64603f602d ("linux-firmware: upgrade 20230404 -> 20230515")
(From OE-Core rev: 8f041ef841e03996768fb7e0a96a4a4d066eb796)

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-19 05:56:59 -10:00
Bruce Ashfield
76ad0319b0 linux-yocto/5.10: update to v5.10.188
Updating  to the latest korg -stable release that comprises
the following commits:

    3602dbc57b55 Linux 5.10.188
    edce5fba78cc ftrace: Fix possible warning on checking all pages used in ftrace_process_locs()
    115b19f89353 ftrace: Store the order of pages allocated in ftrace_page
    1a1e793e021d tracing: Fix memory leak of iter->temp when reading trace_pipe
    43e786aa51b8 tracing/histograms: Return an error if we fail to add histogram to hist_vars list
    e3da59f42820 net: phy: prevent stale pointer dereference in phy_init()
    e0ac63e194f4 tcp: annotate data-races around fastopenq.max_qlen
    d01afbfc2f7d tcp: annotate data-races around icsk->icsk_user_timeout
    3cf0a0f11d39 tcp: annotate data-races around tp->notsent_lowat
    9c786d5faf3a tcp: annotate data-races around rskq_defer_accept
    f891375eba6e tcp: annotate data-races around tp->linger2
    9168bd8f54c5 tcp: annotate data-races around icsk->icsk_syn_retries
    7b0084918c5f tcp: Fix data-races around sysctl_tcp_syn(ack)?_retries.
    cf6c06ac7487 net: Introduce net.ipv4.tcp_migrate_req.
    a5c30a518764 tcp: annotate data-races around tp->keepalive_probes
    93715448f116 tcp: annotate data-races around tp->keepalive_intvl
    7b52a78a91fd tcp: annotate data-races around tp->keepalive_time
    1d4f2c4be136 tcp: annotate data-races around tp->tcp_tx_delay
    30e5460d69e6 netfilter: nf_tables: skip bound chain on rule flush
    94c10c0fa51b netfilter: nf_tables: skip bound chain in netns release path
    3a91099ecd59 netfilter: nft_set_pipapo: fix improper element removal
    9c2df17e3cfc netfilter: nf_tables: can't schedule in nft_chain_validate
    533193a23914 netfilter: nf_tables: fix spurious set element insertion failure
    a6f1988780a7 llc: Don't drop packet from non-root netns.
    49e435ca02c7 fbdev: au1200fb: Fix missing IRQ check in au1200fb_drv_probe
    bc9d4d432f78 Revert "tcp: avoid the lookup process failing to get sk in ehash table"
    d06fc7b39199 net:ipv6: check return value of pskb_trim()
    1a478ad1297a net: ipv4: Use kfree_sensitive instead of kfree
    937105d2b0bf tcp: annotate data-races around tcp_rsk(req)->ts_recent
    41b00238699a octeontx2-pf: Dont allocate BPIDs for LBK interfaces
    5bc78ba88905 security: keys: Modify mismatched function name
    b92defe4e8ee iavf: Fix out-of-bounds when setting channels on remove
    a4635f190f33 iavf: Fix use-after-free in free_netdev
    b37bc3b07eab bridge: Add extack warning when enabling STP in netns.
    f6d311b95394 net: ethernet: ti: cpsw_ale: Fix cpsw_ale_get_field()/cpsw_ale_set_field()
    54aa4c03861e pinctrl: amd: Use amd_pinconf_set() for all config options
    7041605e8594 fbdev: imxfb: warn about invalid left/right margin
    6e88cc510f27 spi: bcm63xx: fix max prepend length
    994c2ceb70ea igb: Fix igb_down hung on surprise removal
    a956c3af70fa wifi: iwlwifi: mvm: avoid baid size integer overflow
    85cf0d5f45cb wifi: wext-core: Fix -Wstringop-overflow warning in ioctl_standard_iw_point()
    2864cc9a1fd1 devlink: report devlink_port_type_warn source device
    b6d9a4062c94 bpf: Address KCSAN report on bpf_lru_list
    532f8bac6041 wifi: ath11k: fix registration of 6Ghz-only phy without the full channel range
    6b0c79aa3307 sched/fair: Don't balance task to its current running CPU
    32020fc2a837 arm64: mm: fix VA-range sanity check
    c71d6934c6ac arm64: set __exception_irq_entry with __irq_entry as a default
    71e3f2354072 ACPI: video: Add backlight=native DMI quirk for Lenovo ThinkPad X131e (3371 AMD version)
    776a72f612a8 ACPI: video: Add backlight=native DMI quirk for Apple iMac11,3
    e090f70ae4cc ACPI: button: Add lid disable DMI quirk for Nextbook Ares 8A
    ae51eb90bcca btrfs: add xxhash to fast checksum implementations
    322377cc909d posix-timers: Ensure timer ID search-loop limit is valid
    634daf6b2c81 md/raid10: prevent soft lockup while flush writes
    b02939413e5c md: fix data corruption for raid456 when reshape restart while grow up
    4a2c62c8d67c nbd: Add the maximum limit of allocated index in nbd_dev_add
    5f84a34b646f debugobjects: Recheck debug_objects_enabled before reporting
    5d5aa5b64887 ext4: correct inline offset when handling xattrs in inode body
    48aa53937584 ASoC: fsl_sai: Disable bit clock with transmitter
    5f2a12f64347 drm/client: Fix memory leak in drm_client_modeset_probe
    105275879a80 drm/client: Fix memory leak in drm_client_target_cloned
    cf254b4f68e4 can: bcm: Fix UAF in bcm_proc_show()
    3e412b6e2b57 regmap: Account for register length in SMBus I/O limits
    8b3dd8d23fa0 regmap: Drop initial version of maximum transfer length fixes
    4935761daa33 selftests: tc: add 'ct' action kconfig dep
    1ab5aa1846a5 selftests: tc: set timeout to 15 minutes
    dad97c205af2 fuse: revalidate: don't invalidate if interrupted
    d2c667cc1831 btrfs: fix warning when putting transaction with qgroups enabled after abort
    4410f4a938ae perf probe: Add test for regression introduced by switch to die_get_decl_file()
    0a6b0ca58685 keys: Fix linking a duplicate key to a keyring's assoc_array
    a26208e184ae ALSA: hda/realtek: Enable Mute LED on HP Laptop 15s-eq2xxx
    ce2a7e7b504c ALSA: hda/realtek - remove 3k pull low procedure
    f09c0ac142c5 drm/atomic: Fix potential use-after-free in nonblocking commits
    9a085fa9b7d6 RDMA/cma: Ensure rdma_addr_cancel() happens before issuing more requests
    73e72a5380a2 net/sched: sch_qfq: reintroduce lmax bound check for MTU
    0b1ce92fabdb scsi: qla2xxx: Remove unused nvme_ls_waitq wait queue
    5addd62586a9 scsi: qla2xxx: Pointer may be dereferenced
    e8de73238d5d scsi: qla2xxx: Correct the index of array
    921d68446255 scsi: qla2xxx: Check valid rport returned by fc_bsg_to_rport()
    2bea9c1c9831 scsi: qla2xxx: Fix potential NULL pointer dereference
    eecb8a491c82 scsi: qla2xxx: Fix buffer overrun
    bcd773969a87 scsi: qla2xxx: Array index may go out of bound
    a9fe97fb7b4e scsi: qla2xxx: Wait for io return on terminate rport
    6ea2a408d3e3 tracing/probes: Fix not to count error code to total length
    7060e5aac6dc tracing: Fix null pointer dereference in tracing_err_log_open()
    81fb8a58d4ec xtensa: ISS: fix call to split_if_spec
    5e68f1f3a20f ring-buffer: Fix deadloop issue on reading trace_pipe
    1e760b2d18bf net: ena: fix shift-out-of-bounds in exponential backoff
    1f2a8f083575 samples: ftrace: Save required argument registers in sample trampolines
    1576f0df7b4d tracing/histograms: Add histograms to hist_vars if they have referenced variables
    07edd294b16a s390/decompressor: fix misaligned symbol build error
    5f4a1111ad04 Revert "8250: add support for ASIX devices with a FIFO bug"
    7f2f0e6ec561 meson saradc: fix clock divider mask length
    790e4e82c57d xhci: Show ZHAOXIN xHCI root hub speed correctly
    c52e04c58ded xhci: Fix TRB prefetch issue of ZHAOXIN hosts
    b56a07c2a550 xhci: Fix resume issue of some ZHAOXIN hosts
    8e807eadf0b9 ceph: don't let check_caps skip sending responses for revoke msgs
    c04ed61ebf01 firmware: stratix10-svc: Fix a potential resource leak in svc_create_memory_pool()
    1962717c4649 tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() when iterating clk
    a49e5a05121c tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() in case of error
    08673739ed85 serial: atmel: don't enable IRQs prematurely
    4016d36fec63 drm/amd/display: Correct `DMUB_FW_VERSION` macro
    d89bd2ecd39b drm/rockchip: vop: Leave vblank enabled in self-refresh
    b9ec9372a47a drm/atomic: Allow vblank-enabled + self-refresh "disable"
    23d5004ee7aa fs: dlm: return positive pid value for F_GETLK
    5e9aff5b10c2 md/raid0: add discard support for the 'original' layout
    8e3c7776405a misc: pci_endpoint_test: Re-init completion for every test
    cdf9a7e2cdc7 misc: pci_endpoint_test: Free IRQs before removing the device
    8c90c466e38e PCI: rockchip: Set address alignment for endpoint mode
    f1986416cfb4 PCI: rockchip: Use u32 variable to access 32-bit registers
    36eb13031227 PCI: rockchip: Fix legacy IRQ generation for RK3399 PCIe endpoint core
    c417a4c7de1d PCI: rockchip: Add poll and timeout to wait for PHY PLLs to be locked
    ddda61419af3 PCI: rockchip: Write PCI Device ID to correct register
    bec3e0f7f272 PCI: rockchip: Assert PCI Configuration Enable bit after probe
    48e11e7c81b9 PCI: qcom: Disable write access to read only registers for IP v2.3.3
    aca71b004a66 PCI: Add function 1 DMA alias quirk for Marvell 88SE9235
    d3bab5de91c6 PCI/PM: Avoid putting EloPOS E2/S2/H2 PCIe Ports in D3cold
    5a89a5cc817e hwrng: imx-rngc - fix the timeout for init and self check
    47b7eaae08e8 jfs: jfs_dmap: Validate db_l2nbperpage while mounting
    84293af5455b ext4: only update i_reserved_data_blocks on successful block allocation
    0a5d12e7107e ext4: fix wrong unit use in ext4_mb_new_blocks
    514220246aa8 ext4: get block from bh in ext4_free_blocks for fast commit replay
    d054422eb609 ext4: fix wrong unit use in ext4_mb_clear_bb
    be99faf0c4db ext4: Fix reusing stale buffer heads from last failed mounting
    8fbe951d6546 MIPS: Loongson: Fix cpu_probe_loongson() again
    8c723eef989b erofs: fix compact 4B support for 16k block size
    3bd4d316b1a8 misc: fastrpc: Create fastrpc scalar with correct buffer count
    3d1d037f2749 powerpc: Fail build if using recordmcount with binutils v2.37
    fe1ae1fb507a net: bcmgenet: Ensure MDIO unregistration has clocks enabled
    21d5d3eb36bf mtd: rawnand: meson: fix unaligned DMA buffers handling
    9ff7fcb3a2ed tpm: tpm_vtpm_proxy: fix a race condition in /dev/vtpmx creation
    59490249c2c0 pinctrl: amd: Only use special debounce behavior for GPIO 0
    4f77a87ce919 pinctrl: amd: Detect internal GPIO0 debounce handling
    3674b9c056ad pinctrl: amd: Fix mistake in handling clearing pins at startup
    b39ef5b52f10 f2fs: fix to avoid NULL pointer dereference f2fs_write_end_io()
    f4ff37981235 nvme-pci: fix DMA direction of unmapping integrity data
    8359ee85fd6d net/sched: sch_qfq: account for stab overhead in qfq_enqueue
    5bef780e06d2 net/sched: sch_qfq: refactor parsing of netlink parameters
    1d7ae38daac7 net/sched: make psched_mtu() RTNL-less safe
    d5ca61b7642b netdevsim: fix uninitialized data in nsim_dev_trap_fa_cookie_write()
    9b69cdb6e534 net/sched: flower: Ensure both minimum and maximum ports are specified
    934c85b8ecd1 wifi: airo: avoid uninitialized warning in airo_get_rate()
    4511499138ae erofs: avoid infinite loop in z_erofs_do_read_page() when reading beyond EOF
    bbc500ff3f2c riscv, bpf: Fix inconsistent JIT image generation
    a976adc3bca4 bpf, riscv: Support riscv jit to provide bpf_line_info
    eb3d1d84f3d6 riscv: bpf: Avoid breaking W^X
    7c616437981f riscv: bpf: Move bpf_jit_alloc_exec() and bpf_jit_free_exec() to core
    83579a626169 igc: Fix inserting of empty frame for launchtime
    c48e8ee81ad3 igc: Fix launchtime before start of cycle
    cdf5b9af92da platform/x86: wmi: Break possible infinite loop when parsing GUID
    7157ee0de522 platform/x86: wmi: move variables
    4bb2bb69bd9a platform/x86: wmi: use guid_t and guid_equal()
    88dfb592d2c1 platform/x86: wmi: remove unnecessary argument
    2ad31ce40e81 ipv6/addrconf: fix a potential refcount underflow for idev
    8271145523a5 NTB: ntb_tool: Add check for devm_kcalloc
    41c6d8ff71cd NTB: ntb_transport: fix possible memory leak while device_register() fails
    03cfa0653406 ntb: intel: Fix error handling in intel_ntb_pci_driver_init()
    23e09f0a868f NTB: amd: Fix error handling in amd_ntb_pci_driver_init()
    0bb2683b0cde ntb: idt: Fix error handling in idt_pci_driver_init()
    3e8fed805cf3 udp6: fix udp6_ehashfn() typo
    d30ddd7ff15d icmp6: Fix null-ptr-deref of ip6_null_entry->rt6i_idev in icmp6_dev().
    bc3ab5d2ab69 net: prevent skb corruption on frag list segmentation
    cddd04f34124 net: bgmac: postpone turning IRQs off to avoid SoC hangs
    f8cc4fd99a32 ionic: remove WARN_ON to prevent panic_on_warn
    9085429821b4 gve: Set default duplex configuration to full
    80e0e8d5f543 net/sched: cls_fw: Fix improper refcount update leads to use-after-free
    d341f246123e net: mvneta: fix txq_map in case of txq_number==1
    c175603d84d3 scsi: qla2xxx: Fix error code in qla2x00_start_sp()
    b687b7836157 igc: set TP bit in 'supported' and 'advertising' fields of ethtool_link_ksettings
    30c281a77fb1 net/mlx5e: Check for NOT_READY flag state after locking
    de6e6b07974c net/mlx5e: fix double free in mlx5e_destroy_flow_table
    3d4bba694aed igc: Remove delay during TX ring configuration
    2a587b71c532 drm/panel: simple: Add Powertip PH800480T013 drm_display_mode flags
    547ab8ea86c1 drm/panel: simple: Add connector_type for innolux_at043tn24
    13c353dc5c2e workqueue: clean up WORK_* constant types, clarify masking
    fc359e5b45da net: lan743x: Don't sleep in atomic context
    dc4a25fa7565 io_uring: add reschedule point to handle_tw_list()
    297883bbcab1 io_uring: Use io_schedule* in cqring wait
    bb2f7e4bfe81 block/partition: fix signedness issue for Amiga partitions
    4f91de9a81bd rcu-tasks: Simplify trc_read_check_handler() atomic operations
    3a64cd01cdd6 rcu-tasks: Mark ->trc_reader_special.b.need_qs data races
    058f077d09ba rcu-tasks: Mark ->trc_reader_nesting data races
    83be9fd7843c tty: serial: fsl_lpuart: add earlycon for imx8ulp platform
    999f3b6104ed wireguard: netlink: send staged packets when setting initial private key
    1b7107040596 wireguard: queueing: use saner cpu selection wrapping
    ea213922249c netfilter: nf_tables: prevent OOB access in nft_byteorder_eval
    4ae2e501331a netfilter: nf_tables: do not ignore genmask when looking up chain by id
    8289d422f5e4 netfilter: conntrack: Avoid nf_ct_helper_hash uses after free
    be6478f5cce6 netfilter: nf_tables: fix scheduling-while-atomic splat
    a07e415be383 netfilter: nf_tables: unbind non-anonymous set if rule construction fails
    a136b7942ad2 netfilter: nf_tables: drop map element references from preparation phase
    21cf0d66ef88 netfilter: nftables: rename set element data activation/deactivation functions
    237f37f7b9f0 netfilter: nf_tables: reject unbound chain set before commit phase
    0205dd16edeb netfilter: nf_tables: reject unbound anonymous set before commit phase
    34d09fe49f59 netfilter: nf_tables: add NFT_TRANS_PREPARE_ERROR to deal with bound set/chain
    d53c295c1f43 netfilter: nf_tables: fix chain binding transaction logic
    8180fc2fadd4 netfilter: nf_tables: incorrect error path handling with NFT_MSG_NEWRULE
    e546e6ebb19d netfilter: nf_tables: add rescheduling points during loop detection walks
    3f51f1157f67 netfilter: nf_tables: use net_generic infra for transaction data
    01248dd65155 sh: pgtable-3level: Fix cast to pointer from integer of different size
    87410743b548 block: add overflow checks for Amiga partition support
    f0aec6c403a0 selftests/bpf: Add verifier test for PTR_TO_MEM spill
    88bffb61bc03 tpm, tpm_tis: Claim locality in interrupt handler
    5bf73af8b382 fanotify: disallow mount/sb marks on kernel internal pseudo fs
    5cb46b80ecda fs: no need to check source
    66a0647cdc56 leds: trigger: netdev: Recheck NETDEV_LED_MODE_LINKUP on dev rename
    5d6fbb624576 ARM: orion5x: fix d2net gpio initialization
    9b0f7940e212 ASoC: mediatek: mt8173: Fix snd_soc_component_initialize error path
    1dac8584be0c ASoC: mediatek: mt8173: Fix irq error path
    6819bb0b8552 btrfs: fix race when deleting quota root from the dirty cow roots list
    a3fbd156bd2c btrfs: add handling for RAID1C23/DUP to btrfs_reduce_alloc_profile
    59efb8671105 fs: Lock moved directories
    c5b5e72df13d fs: Establish locking order for unrelated directories
    4b03f503b730 Revert "f2fs: fix potential corruption when moving a directory"
    2b563acd2dfa ext4: Remove ext4 locking of moved directory
    5e7d18a52c88 fs: avoid empty option when generating legacy mount string
    988a5d791156 jffs2: reduce stack usage in jffs2_build_xattr_subsystem()
    5fada3751137 shmem: use ramfs_kill_sb() for kill_sb method of ramfs-based tmpfs
    79bef379d55a autofs: use flexible array in ioctl structure
    8bf91a8d4871 integrity: Fix possible multiple allocation in integrity_inode_get()
    9658a03f80b2 um: Use HOST_DIR for mrproper
    a4405f6ee033 bcache: Fix __bch_btree_node_alloc to make the failure behavior consistent
    db9439cef0b5 bcache: Remove unnecessary NULL point check in node allocations
    bcb295778afd bcache: fixup btree_cache_wait list damage
    dc3287206a32 mmc: sdhci: fix DMA configure compatibility issue when 64bit DMA mode is used.
    191628e2d96a mmc: mmci: Set PROBE_PREFER_ASYNCHRONOUS
    02c8c2b5f680 mmc: core: disable TRIM on Micron MTFC4GACAJCN-1M
    6f9708e5c110 mmc: core: disable TRIM on Kingston EMMC04G-M627
    28e649dc9947 io_uring: wait interruptibly for request completions on exit
    8482ac2e5a26 NFSD: add encoding of op_recall flag for write delegation
    8d36cb6d1aed i2c: qup: Add missing unwind goto in qup_i2c_probe()
    e41a8e461561 ALSA: jack: Fix mutex call in snd_jack_report()
    e71714ad24d8 i2c: xiic: Don't try to handle more interrupt events after error
    b6eefa7a27a6 i2c: xiic: Defer xiic_wakeup() and __xiic_start_xfer() in xiic_process()
    023bd9dc410c apparmor: fix missing error check for rhashtable_insert_fast
    d1c946552af2 sh: dma: Fix DMA channel offset calculation
    37750131d2a5 s390/qeth: Fix vipa deletion
    9f5548e4214d net: dsa: tag_sja1105: fix MAC DA patching from meta frames
    2758fb81bbc9 pptp: Fix fib lookup calls.
    0b08ff091f31 net/sched: act_pedit: Add size check for TCA_PEDIT_PARMS_EX
    2434a6715f59 xsk: Honor SO_BINDTODEVICE on bind
    b785ba0acc82 tcp: annotate data races in __tcp_oow_rate_limited()
    73f512bedfd4 net: bridge: keep ports without IFF_UNICAST_FLT in BR_PROMISC mode
    9a9d468fdcca powerpc: allow PPC_EARLY_DEBUG_CPM only when SERIAL_CPM=y
    f970b05c9b76 octeontx2-af: Fix mapping for NIX block from CGX connection
    5ded9e8aa53e f2fs: fix error path handling in truncate_dnode()
    358145cc3797 mailbox: ti-msgmgr: Fill non-message tx data fields with 0x0
    32b9c8f7892c spi: bcm-qspi: return error if neither hif_mspi nor mspi is available
    1f3643f9cfca net: dsa: vsc73xx: fix MTU configuration
    c377451012ce Add MODULE_FIRMWARE() for FIRMWARE_TG357766.
    6d2243ab783b sctp: fix potential deadlock on &net->sctp.addr_wq_lock
    620993d5ee5b media: cec: i2c: ch7322: also select REGMAP
    f733a7bfe8f8 rtc: st-lpc: Release some resources in st_rtc_probe() in case of error
    aa70e5dd7268 pwm: sysfs: Do not apply state to already disabled PWMs
    8a0413be8a1e pwm: imx-tpm: force 'real_period' to be zero in suspend
    e4845cdea71e phy: tegra: xusb: check return value of devm_kzalloc()
    442e1a98bd02 mfd: stmpe: Only disable the regulators if they are enabled
    724448d6021d KVM: s390: vsie: fix the length of APCB bitmap
    c5e2f6f2bb66 mfd: stmfx: Nullify stmfx->vdd in case of error
    30ead8b9bf0d mfd: stmfx: Fix error path in stmfx_chip_init
    4d2405147385 test_firmware: return ENOMEM instead of ENOSPC on failed memory allocation
    5b31ac1d6d88 serial: 8250_omap: Use force_suspend and resume for system suspend
    8e00ae25a371 Revert "usb: common: usb-conn-gpio: Set last role to unknown before initial detection"
    a81e1f22e17f mfd: intel-lpss: Add missing check for platform_get_resource
    1dc07edc01d2 usb: dwc3-meson-g12a: Fix an error handling path in dwc3_meson_g12a_probe()
    7ade555ac58d usb: common: usb-conn-gpio: Set last role to unknown before initial detection
    0e9e127835c8 usb: dwc3: qcom: Fix an error handling path in dwc3_qcom_probe()
    a6171452085b usb: dwc3: qcom: Release the correct resources in dwc3_qcom_remove()
    96898fb476d1 KVM: s390: fix KVM_S390_GET_CMMA_BITS for GFNs in memslot holes
    4e8e838fce5e media: atomisp: gmin_platform: fix out_len in gmin_get_config_dsm_var()
    b754ea60e690 media: venus: helpers: Fix ALIGN() of non power of two
    02b22660231d mfd: rt5033: Drop rt5033-battery sub-device
    e52019c09535 coresight: Fix loss of connection info when a module is unloaded
    018eddcb6bef kernfs: fix missing kernfs_idr_lock to remove an ID from the IDR
    a59f64a83516 serial: 8250: lock port for UART_IER access in omap8250_irq()
    8d65d0a2bfd5 serial: 8250: lock port for stop_rx() in omap8250_irq()
    d66ddb61fa23 usb: hide unused usbfs_notify_suspend/resume functions
    56901de56335 usb: phy: phy-tahvo: fix memory leak in tahvo_usb_probe()
    6538e5d9f7eb extcon: Fix kernel doc of property capability fields to avoid warnings
    dac7d7efcb54 extcon: Fix kernel doc of property fields to avoid warnings
    2788a3553f74 usb: gadget: u_serial: Add null pointer check in gserial_suspend
    74f8606ddfa4 usb: dwc3: qcom: Fix potential memory leak
    bdce16c1e650 clk: qcom: ipq6018: fix networking resets
    ee3f494cfc3e clk: qcom: reset: support resetting multiple bits
    35fd1a213fa4 clk: qcom: reset: Allow specifying custom reset delay
    d87ef4e857b7 media: usb: siano: Fix warning due to null work_func_t function pointer
    300388887cbb media: videodev2.h: Fix struct v4l2_input tuner index comment
    5f3f4aa673a0 media: usb: Check az6007_read() return value
    32809afb6063 clk: qcom: gcc-ipq6018: Use floor ops for sdcc clocks
    bb81ca33ace3 serial: 8250: omap: Fix freeing of resources on failed register
    ed68e8e22ee1 sh: j2: Use ioremap() to translate device tree address into kernel memory
    a7890637b3b9 w1: fix loop in w1_fini()
    a27aeae714cd w1: w1_therm: fix locking behavior in convert_t
    cd5ec3ee52ce SUNRPC: Fix UAF in svc_tcp_listen_data_ready()
    e4a9b3333e67 block: change all __u32 annotations to __be32 in affs_hardblocks.h
    54da6c4c143f block: fix signed int overflow in Amiga partition support
    b6a107c52073 phy: tegra: xusb: Clear the driver reference in usb-phy dev
    fac7be49f1e6 usb: dwc3: gadget: Propagate core init errors to UDC during pullup
    8b0a55b59244 USB: serial: option: add LARA-R6 01B PIDs
    810e401b34c4 io_uring: ensure IOPOLL locks around deferred work
    cd5837564ff5 hwrng: st - keep clock enabled while hwrng is registered
    557e528255d5 dax: Introduce alloc_dev_dax_id()
    94a85474f5e3 dax: Fix dax_mapping_release() use after free
    7c9f5a14d93b NFSv4.1: freeze the session table upon receiving NFS4ERR_BADSESSION
    bab0bf567797 ARC: define ASM_NL and __ALIGN(_STR) outside #ifdef __ASSEMBLY__ guard
    cb0cdca5c979 modpost: fix off by one in is_executable_section()
    f0350516b9d2 crypto: marvell/cesa - Fix type mismatch warning
    b54069445591 modpost: fix section mismatch message for R_ARM_{PC24,CALL,JUMP24}
    88978ef7fdef modpost: fix section mismatch message for R_ARM_ABS32
    31195ee328e9 crypto: nx - fix build warnings when DEBUG_FS is not enabled
    77471e4912d3 hwrng: virtio - Fix race on data_avail and actual data
    e8f51401d642 hwrng: virtio - always add a pending request
    ffc5ce9c272f hwrng: virtio - don't waste entropy
    d13ea82bfe15 hwrng: virtio - don't wait on cleanup
    5f23dae018c6 hwrng: virtio - add an internal buffer
    aba192bb31df powerpc/mm/dax: Fix the condition when checking if altmap vmemap can cross-boundary
    7afd0de0cc14 powerpc/book3s64/mm: Fix DirectMap stats in /proc/meminfo
    7289ca7a5170 mm: rename p4d_page_vaddr to p4d_pgtable and make it return pud_t *
    bfad11018806 mm: rename pud_page_vaddr to pud_pgtable and make it return pmd_t *
    07c19c0ad4b0 powerpc/powernv/sriov: perform null check on iov before dereferencing iov
    f3c7b95c9991 pinctrl: at91-pio4: check return value of devm_kasprintf()
    b7a38fc3f384 perf dwarf-aux: Fix off-by-one in die_get_varname()
    75a3cb1e2317 perf script: Fix allocation of evsel->priv related to per-event dump files
    647c6d35ccfe perf script: Fixup 'struct evsel_script' method prefix
    958acb479ef2 kcsan: Don't expect 64 bits atomic builtins from 32 bits architectures
    5533f0eb0a29 pinctrl: cherryview: Return correct value if pin in push-pull mode
    4b63caf86eda perf bench: Add missing setlocale() call to allow usage of %'d style formatting
    345ee8521655 perf bench: Use unbuffered output when pipe/tee'ing to a file
    f0d2310f6b46 PCI: Add pci_clear_master() stub for non-CONFIG_PCI
    b65fe59b2d62 PCI: ftpci100: Release the clock resources
    cb389e8edf64 PCI: pciehp: Cancel bringup sequence if card is not present
    b9895a4c95f3 scsi: 3w-xxxx: Add error handling for initialization failure in tw_probe()
    7badf4d6f49a PCI/ASPM: Disable ASPM on MFD function removal to avoid use-after-free
    d27238fc83b9 pinctrl: bcm2835: Handle gpiochip_add_pin_range() errors
    ac64019e4d4b scsi: qedf: Fix NULL dereference in error handling
    8e9907e9219f PCI: cadence: Fix Gen2 Link Retraining process
    07be8e60f27f ASoC: imx-audmix: check return value of devm_kasprintf()
    714ba10a6dd1 ovl: update of dentry revalidate flags after copy up
    47f4d875aa54 drivers: meson: secure-pwrc: always enable DMA domain
    5f149d053898 clk: ti: clkctrl: check return value of kasprintf()
    fd9324fa4d81 clk: keystone: sci-clk: check return value of kasprintf()
    0b754f9cfd66 clk: si5341: free unused memory on probe failure
    dc8d0178d506 clk: si5341: check return value of {devm_}kasprintf()
    dc3eef648055 clk: si5341: return error if one synth clock registration fails
    040113980081 clk: si5341: Add sysfs properties to allow checking/resetting device faults
    fc813d05739e clk: si5341: Allow different output VDD_SEL values
    f64fcd3acf1f clk: cdce925: check return value of kasprintf()
    866d4340c6c9 clk: vc5: check memory returned by kasprintf()
    c67a55f7cc8d drm/msm/dp: Free resources after unregistering them
    c3b63584d8c2 drm/msm/dpu: do not enable color-management if DSPPs are not available
    f923a582217b ALSA: ac97: Fix possible NULL dereference in snd_ac97_mixer
    404e9f741acf clk: tegra: tegra124-emc: Fix potential memory leak
    cb047c13bbf9 clk: imx: clk-imx8mp: improve error handling in imx8mp_clocks_probe()
    294321349bd3 clk: imx: clk-imx8mn: fix memory leak in imx8mn_clocks_probe
    e749bc5a9054 RDMA/bnxt_re: Avoid calling wake_up threads from spin_lock context
    9341501e2f7a RDMA/bnxt_re: wraparound mbox producer index
    968e27fd037e amdgpu: validate offset_in_bo of drm_amdgpu_gem_va
    e070120e6d68 drm/radeon: fix possible division-by-zero errors
    a77b80825bf1 drm/amdkfd: Fix potential deallocation of previously deallocated memory.
    245aa7c0233e ARM: dts: BCM5301X: fix duplex-full => full-duplex
    7e2edb84fe7c hwmon: (pmbus/adm1275) Fix problems with temperature monitoring on ADM1272
    580e9b987b89 hwmon: (adm1275) Allow setting sample averaging
    a3c5d148b78b hwmon: (adm1275) enable adm1272 temperature reporting
    4610efa404be hwmon: (gsc-hwmon) fix fan pwm temperature scaling
    6e12311dcedd ARM: dts: stm32: fix i2s endpoint format property for stm32mp15xx-dkx
    badeb7fe2450 ARM: dts: stm32: Fix audio routing on STM32MP15xx DHCOM PDK2
    17cd31487dc3 arm64: dts: ti: k3-j7200: Fix physical address of pin
    ce6e0434e502 fbdev: omapfb: lcd_mipid: Fix an error handling path in mipid_spi_probe()
    34e1e2f3cf5a arm64: dts: renesas: ulcb-kf: Remove flow control for SCIF1
    6817914c67b7 ARM: dts: iwg20d-q7-common: Fix backlight pwm specifier
    220f86cc19dc RDMA/hns: Fix hns_roce_table_get return value
    9196f44239cf RDMA/hns: Clean the hardware related code for HEM
    aa495b927f9c RDMA/hns: Use refcount_t APIs for HEM
    de1049dd18bd RDMA/hns: Fix coding style issues
    cc1b04b699e6 RDMA: Remove uverbs_ex_cmd_mask values that are linked to functions
    7dcb9ea3ee4b IB/hfi1: Fix wrong mmu_node used for user SDMA packet after invalidate
    6cf8f3d690bb IB/hfi1: Fix sdma.h tx->num_descs off-by-one errors
    2d38866a99ba IB/hfi1: Use bitmap_zalloc() when applicable
    42b6865bf58c soc/fsl/qe: fix usb.c build errors
    9c14d1406662 ARM: dts: meson8: correct uart_B and uart_C clock references
    684a2f180e46 ASoC: es8316: Do not set rate constraints for unsupported MCLKs
    d883e16c7f35 ASoC: es8316: Increment max value for ALC Capture Target Volume control
    105af71974ea memory: brcmstb_dpfe: fix testing array offset after use
    ddc74d6ea3dc ARM: dts: stm32: Shorten the AV96 HDMI sound card name
    392ee3cc995d arm64: dts: qcom: apq8096: fix fixed regulator name property
    c85a076215a9 ARM: omap2: fix missing tick_broadcast() prototype
    aec18da74194 ARM: ep93xx: fix missing-prototype warnings
    b574cd7e4dfc drm/panel: simple: fix active size for Ampire AM-480272H3TMQW-T01H
    02d8b008ffee arm64: dts: qcom: msm8996: correct camss unit address
    6d103b1cc133 arm64: dts: qcom: msm8994: correct SPMI unit address
    160ac75a5a82 arm64: dts: qcom: msm8916: correct camss unit address
    e8b131d21638 ARM: dts: gta04: Move model property out of pinctrl node
    b0b180a712ee RDMA/bnxt_re: Fix to remove an unnecessary log
    446092f136d3 RDMA/bnxt_re: Remove a redundant check inside bnxt_re_update_gid
    b54b26ac50a2 RDMA/bnxt_re: Use unique names while registering interrupts
    11bd3882c3a6 RDMA/bnxt_re: Fix to remove unnecessary return labels
    7080ef46ad3d RDMA/bnxt_re: Disable/kill tasklet only if it is enabled
    2a9895df8088 arm64: dts: microchip: sparx5: do not use PSCI on reference boards
    726fdf47c148 bus: ti-sysc: Fix dispc quirk masking bool variables
    8ee24ddf45f0 ARM: dts: stm32: Move ethernet MAC EEPROM from SoM to carrier boards
    617a4da09d77 drm/panel: sharp-ls043t1le01: adjust mode settings
    3c87c98225be drm: sun4i_tcon: use devm_clk_get_enabled in `sun4i_tcon_init_clocks`
    39305592dc97 Input: adxl34x - do not hardcode interrupt trigger type
    e629efc6d602 ARM: dts: meson8b: correct uart_B and uart_C clock references
    bd46ade71497 ARM: dts: BCM5301X: Drop "clock-names" from the SPI node
    20ecae1af578 drm/vram-helper: fix function names in vram helper doc
    46a34e145955 drm/bridge: tc358768: fix THS_TRAILCNT computation
    f2f7d0a4a22a drm/bridge: tc358768: fix TXTAGOCNT computation
    8e47328fe089 drm/bridge: tc358768: fix THS_ZEROCNT computation
    6b9450723bab drm/bridge: tc358768: fix TCLK_TRAILCNT computation
    33abcfbb17b0 drm/bridge: tc358768: Add atomic_get_input_bus_fmts() implementation
    43b2d11ccffb drm/bridge: tc358768: fix TCLK_ZEROCNT computation
    46b741718989 drm/bridge: tc358768: fix PLL target frequency
    825b00c68589 drm/bridge: tc358768: fix PLL parameters computation
    1b4f23fdf27f drm/bridge: tc358768: always enable HS video mode
    4e0fd4f54bea Input: drv260x - sleep between polling GO bit
    2780d5844855 drm/amd/display: Explicitly specify update type per plane info change
    b2213fc60b83 radeon: avoid double free in ci_dpm_init()
    472a615e66b9 netlink: Add __sock_i_ino() for __netlink_diag_dump().
    d10b38036977 ipvlan: Fix return value of ipvlan_queue_xmit()
    5215c0096839 netfilter: nf_conntrack_sip: fix the ct_sip_parse_numerical_param() return value.
    9bdcda7abaf2 netfilter: conntrack: dccp: copy entire header to stack buffer, not just basic one
    36e07e8acfb9 lib/ts_bm: reset initial match offset for every block of text
    96f2c6f272ec net: nfc: Fix use-after-free caused by nfc_llcp_find_local
    a3a1550c4d2e nfc: llcp: simplify llcp_sock_connect() error paths
    cb1aa7cc562c sfc: fix crash when reading stats while NIC is resetting
    6ccfec84f025 net: axienet: Move reset before 64-bit DMA detection
    bccc7ace12e6 gtp: Fix use-after-free in __gtp_encap_destroy().
    4d9cd4b330d8 selftests: rtnetlink: remove netdevsim device after ipsec offload test
    44db85c6e1a1 netlink: do not hard code device address lenth in fdb dumps
    cde7b90e0539 netlink: fix potential deadlock in netlink_set_err()
    0c9e48428f6b net: stmmac: fix double serdes powerdown
    1ba91ffa1a0e igc: Fix race condition in PTP tx code
    660d4e73efb0 wifi: ath9k: convert msecs to jiffies where needed
    150ca0768b50 wifi: cfg80211: rewrite merging of inherited elements
    4e321c18ef92 wifi: iwlwifi: pull from TXQs with softirqs disabled
    2715617c2aad rtnetlink: extend RTEXT_FILTER_SKIP_STATS to IFLA_VF_INFO
    581401cd3cf9 wifi: ath9k: Fix possible stall on ath9k_txq_list_has_key()
    6b22c2c649a1 memstick r592: make memstick_debug_get_tpc_name() static
    6cb477e7226b kexec: fix a memory leak in crash_shrink_memory()
    fdb07728d8ff watchdog/perf: more properly prevent false positives with turbo modes
    ac23d7f41426 watchdog/perf: define dummy watchdog_update_hrtimer_threshold() on correct config
    22da8363e35f wifi: rsi: Do not set MMC_PM_KEEP_POWER in shutdown
    b2aeb97fd470 wifi: rsi: Do not configure WoWlan in shutdown hook if not enabled
    1044187e7249 wifi: ath9k: don't allow to overwrite ENDPOINT0 attributes
    c10c6ea9b3a2 wifi: ray_cs: Fix an error handling path in ray_probe()
    8825991838fc wifi: ray_cs: Drop useless status variable in parse_addr()
    a66e3fd3801a wifi: ray_cs: Utilize strnlen() in parse_addr()
    18d71562f70d wifi: wl3501_cs: Fix an error handling path in wl3501_probe()
    b6f793de619b wl3501_cs: use eth_hw_addr_set()
    cbd44a9e1cf1 net: create netdev->dev_addr assignment helpers
    13cf0e3894d1 wl3501_cs: Fix misspelling and provide missing documentation
    5512db9bd404 wifi: atmel: Fix an error handling path in atmel_probe()
    86ebbcbdc7b1 wifi: orinoco: Fix an error handling path in orinoco_cs_probe()
    fb7d78feb55a wifi: orinoco: Fix an error handling path in spectrum_cs_probe()
    8782dc2504da regulator: core: Streamline debugfs operations
    92bcd8494126 regulator: core: Fix more error checking for debugfs_create_dir()
    78f390aa0eb5 bpftool: JIT limited misreported as negative value on aarch64
    107e849f3c6a nfc: llcp: fix possible use of uninitialized variable in nfc_llcp_send_connect()
    0be9de2ea01e nfc: constify several pointers to u8, char and sk_buff
    ef7fe1b5c4fb libbpf: fix offsetof() and container_of() to work with CO-RE
    b190ced50a5e sctp: add bpf_bypass_getsockopt proto callback
    08f61a349135 bpf: Remove extra lock_sock for TCP_ZEROCOPY_RECEIVE
    c62e2ac02e28 wifi: mwifiex: Fix the size of a memory allocation in mwifiex_ret_802_11_scan()
    3ae910a375b6 wifi: wilc1000: fix for absent RSN capabilities WFA testcase
    795ef550307c spi: spi-geni-qcom: Correct CS_TOGGLE bit in SPI_TRANS_CFG
    bd3e880dce27 samples/bpf: Fix buffer overflow in tcp_basertt
    250efb4d3f5b wifi: ath9k: avoid referencing uninit memory in ath9k_wmi_ctrl_rx
    0f3f41b47533 wifi: ath9k: fix AR9003 mac hardware hang check register offset calculation
    cbd0f41a5362 igc: Enable and fix RX hash usage by netstack
    a14cb307267b pstore/ram: Add check for kstrdup
    628709a05708 ima: Fix build warnings
    16ec59c03ad2 evm: Complete description of evm_inode_setattr()
    cba85e1cb79f x86/mm: Fix __swp_entry_to_pte() for Xen PV guests
    365f546de584 perf/ibs: Fix interface via core pmu events
    604d6a5ff718 rcu/rcuscale: Stop kfree_scale_thread thread(s) after unloading rcuscale
    d414e24d1509 rcu/rcuscale: Move rcu_scale_*() after kfree_scale_cleanup()
    ecc5e6dbc269 rcuscale: Move shutdown from wait_event() to wait_event_idle()
    b62c816bdb5e rcuscale: Always log error message
    8cd9917c13a7 rcuscale: Console output claims too few grace periods
    456f783b83f8 thermal/drivers/sun8i: Fix some error handling paths in sun8i_ths_probe()
    bacc49b2d561 cpufreq: intel_pstate: Fix energy_performance_preference for passive
    a8bfe527556b ARM: 9303/1: kprobes: avoid missing-declaration warnings
    a50b75c13d37 powercap: RAPL: Fix CONFIG_IOSF_MBI dependency
    23f6efd22644 perf/arm-cmn: Fix DTC reset
    b69868d50df4 PM: domains: fix integer overflow issues in genpd_parse_state()
    ebdff0986513 clocksource/drivers/cadence-ttc: Fix memory leak in ttc_timer_probe
    a2f83a4c7cb5 tracing/timer: Add missing hrtimer modes to decode_hrtimer_mode().
    f1be1ed32daa posix-timers: Prevent RT livelock in itimer_delete()
    b315d57da456 irqchip/jcore-aic: Fix missing allocation of IRQ descriptors
    495cee0e1417 irqchip/jcore-aic: Kill use of irq_create_strict_mappings()
    9d1cccdad080 md/raid10: fix io loss while replacement replace rdev
    2990e2ece18d md/raid10: fix null-ptr-deref of mreplace in raid10_sync_request
    b1d8f38310bc md/raid10: fix wrong setting of max_corr_read_errors
    b3a0bc4a01fa md/raid10: fix overflow of md/safe_mode_delay
    39fa14e824ac md/raid10: check slab-out-of-bounds in md_bitmap_get_counter
    8563b58a4360 blk-iocost: use spin_lock_irqsave in adjust_inuse_and_calc_cost
    3db97cc79b82 x86/resctrl: Only show tasks' pid in current pid namespace
    1a82005f3f63 fs: pipe: reveal missing function protoypes
    f70407e8e027 nubus: Partially revert proc_create_single_data() conversion
    0336c8f07223 drm/amdgpu: Validate VM ioctl flags.
    c484b65f93e0 scripts/tags.sh: Resolve gtags empty index generation
    649104c834ba Revert "thermal/drivers/mediatek: Use devm_of_iomap to avoid resource leak in mtk_thermal_probe"
    02a4c4e225f4 HID: logitech-hidpp: add HIDPP_QUIRK_DELAYED_INIT for the T651.
    9598a647ecc8 HID: wacom: Use ktime_t rather than int when dealing with timestamps
    2bf70b88cc35 fbdev: imsttfb: Fix use after free bug in imsttfb_probe
    5b813734a0d2 video: imsttfb: check for ioremap() failures
    02fbf62df99f can: isotp: isotp_sendmsg(): fix return error fix on TX path
    8667f7113107 x86/smp: Use dedicated cache-line for mwait_play_dead()
    1d0fe3fb5d4b media: atomisp: fix "variable dereferenced before check 'asd'"

(From OE-Core rev: a0694f3cb9dffff43c00929b4acef877797573ff)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-19 05:56:58 -10:00
Bruce Ashfield
05f211d9e5 linux-yocto/5.10: update to v5.10.187
Updating  to the latest korg -stable release that comprises
the following commits:

    140d69b4e41d Linux 5.10.187
    93df00f9d48d x86/cpu/amd: Add a Zenbleed fix
    191b8f9b0e37 x86/cpu/amd: Move the errata checking functionality up
    113ce5ed59fc x86/microcode/AMD: Load late on both threads too

(From OE-Core rev: 50f8192a95315db169beb38d36d5d0a974f3ac4d)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-19 05:56:58 -10:00
Bruce Ashfield
e0d3928962 linux-yocto/5.10: update to v5.10.186
Updating  to the latest korg -stable release that comprises
the following commits:

    381518b4a916 Linux 5.10.186
    29917a20be43 bpf/btf: Accept function names that contain dots
    8b7454dd984a netfilter: nf_tables: hold mutex on netns pre_exit path
    9e8d927cfa56 netfilter: nf_tables: validate registers coming from userspace.
    f19a4818a92a netfilter: nftables: statify nft_parse_register()
    42997367cb67 i2c: imx-lpi2c: fix type char overflow issue when calculating the clock cycle
    5a257f355366 x86/apic: Fix kernel panic when booting with intremap=off and x2apic_phys
    d8efc77f23c8 drm/radeon: fix race condition UAF in radeon_gem_set_domain_ioctl
    485fe165084b drm/exynos: fix race condition UAF in exynos_g2d_exec_ioctl
    0b0fdc43b2ab drm/exynos: vidi: fix a wrong error return
    32134e7a0f21 ARM: dts: Fix erroneous ADS touchscreen polarities
    79cf5657be38 s390/purgatory: disable branch profiling
    a819de62ec2b ASoC: nau8824: Add quirk to active-high jack-detect
    fa08753c2d04 ASoC: simple-card: Add missing of_node_put() in case of error
    9138ed7e2b43 spi: lpspi: disable lpspi module irq in DMA mode
    97b6c4c1d1a8 s390/cio: unregister device when the only path is gone
    fe949c1662c9 Input: soc_button_array - add invalid acpi_index DMI quirk handling
    eaf1fa945206 usb: gadget: udc: fix NULL dereference in remove()
    7d1a0733a55e nfcsim.c: Fix error checking for debugfs_create_dir
    dc357c0787e8 media: cec: core: don't set last_initiator if tx in progress
    c13573032b7b arm64: Add missing Set/Way CMO encodings
    49a2b18f4972 HID: wacom: Add error check to wacom_parse_and_register()
    2b43198de03f scsi: target: iscsi: Prevent login threads from racing between each other
    75aa3f255c88 gpiolib: Fix GPIO chip IRQ initialization restriction
    304802e5b038 gpio: Allow per-parent interrupt data
    bc75968b494a sch_netem: acquire qdisc lock in netem_change()
    caddeadd0d03 Revert "net: phy: dp83867: perform soft reset and retain established link"
    5702afa2c331 netfilter: nfnetlink_osf: fix module autoload
    3d5c09c782a3 netfilter: nf_tables: disallow element updates of bound anonymous sets
    2a90da8e0dd5 netfilter: nft_set_pipapo: .walk does not deal with generations
    792bfe26a655 be2net: Extend xmit workaround to BE3 chip
    cebb5cee0984 net: dsa: mt7530: fix trapping frames on non-MT7621 SoC MT7530 switch
    7a1ae0000509 ipvs: align inner_mac_header for encapsulation
    f2547bc71663 mmc: usdhi60rol0: fix deferred probing
    4a99e35c5a62 mmc: sh_mmcif: fix deferred probing
    c2278de1382b mmc: sdhci-acpi: fix deferred probing
    f6e176ef894a mmc: owl: fix deferred probing
    f29d0ab0e6bd mmc: omap_hsmmc: fix deferred probing
    65d9318e3d56 mmc: omap: fix deferred probing
    9ad3c21fb66d mmc: mvsdio: fix deferred probing
    9b0417fd402f mmc: mtk-sd: fix deferred probing
    ced13bc50ef0 net: qca_spi: Avoid high load if QCA7000 is not available
    b1b9c81e29d2 xfrm: Linearize the skb after offloading if needed.
    31cd0d4a4470 selftests: net: fcnal-test: check if FIPS mode is enabled
    2af75a36af8d selftests: net: vrf-xfrm-tests: change authentication and encryption algos
    07fbbddae5af xfrm: fix inbound ipv4/udp/esp packets to UDPv6 dualstack sockets
    562800447f8b bpf: Fix verifier id tracking of scalars on spill
    3b0a96db670b bpf: track immediate values written to stack by BPF_ST instruction
    bff7824db681 xfrm: Ensure policies always checked on XFRM-I input path
    01af67ed83d0 xfrm: interface: rename xfrm_interface.c to xfrm_interface_core.c
    cdaa6e1105c0 xfrm: Treat already-verified secpath entries as optional
    47be2931c4e5 ieee802154: hwsim: Fix possible memory leaks
    051d6421337b memfd: check for non-NULL file_seals in memfd_create() syscall
    1ac6e9ee8428 sysctl: move some boundary constants from sysctl.c to sysctl_vals
    e1aa3fe3e282 mm/pagealloc: sysctl: change watermark_scale_factor max limit to 30%
    ad10dd211370 x86/mm: Avoid using set_pgd() outside of real PGD pages
    4de2093674f2 nilfs2: prevent general protection fault in nilfs_clear_dirty_page()
    3845c38417bd io_uring/net: disable partial retries for recvmsg with cmsg
    826ee9fa3647 io_uring/net: clear msg_controllen on partial sendmsg retry
    5fdea4468f57 io_uring/net: save msghdr->msg_control for retries
    5a7101d8faab writeback: fix dereferencing NULL mapping->host on writeback_page_template
    f00cd687c2cd regmap: spi-avmm: Fix regmap_bus max_raw_write
    bc35f93e4bd7 regulator: pca9450: Fix LDO3OUT and LDO4OUT MASK
    5938470f9c80 ip_tunnels: allow VXLAN/GENEVE to inherit TOS/TTL from VLAN
    2e454015ca27 mmc: mmci: stm32: fix max busy timeout calculation
    1be288fd3b0d mmc: meson-gx: remove redundant mmc_request_done() call from irq context
    1b97630cd9a9 mmc: sdhci-msm: Disable broken 64-bit DMA on MSM8916
    63608437a83d cgroup: Do not corrupt task iteration when rebinding subsystem
    988d06f5eb32 PCI: hv: Fix a race condition in hv_irq_unmask() that can cause panic
    8f2d5ebdfef7 PCI: hv: Remove the useless hv_pcichild_state from struct hv_pci_dev
    8b7484676994 Revert "PCI: hv: Fix a timing issue which causes kdump to fail occasionally"
    79ceb758e3db PCI: hv: Fix a race condition bug in hv_pci_query_relations()
    8b8c9812c048 Drivers: hv: vmbus: Fix vmbus_wait_for_unload() to scan present CPUs
    b435298349ab nilfs2: fix buffer corruption due to concurrent device reads
    524a2c0bcf99 selftests: mptcp: join: skip check if MIB counter not supported
    e508d9cef887 selftests: mptcp: pm nl: remove hardcoded default limits
    4c4ca42418a5 selftests: mptcp: lib: skip if not below kernel version
    6d20cfbc578d selftests: mptcp: lib: skip if missing symbol
    3cc7935d3221 tick/common: Align tick period during sched_timer setup
    db4ab0c97a4d tracing: Add tracing_reset_all_online_cpus_unlocked() function
    9ced73049016 net/sched: Refactor qdisc_graft() for ingress and clsact Qdiscs
    b1b42fff8ae1 drm/amd/display: fix the system hang while disable PSR

(From OE-Core rev: 591afa6b33a409df5fcd92d66069f39495bc526f)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-19 05:56:58 -10:00
Adrian Freihofer
3d4850b3ea dmidecode: fixup for CVE-2023-30630
The previous CVE-2023-30630_1.patch picked only the patch
"dmidecode: Write the whole dump file at once" d8cfbc808f.
But there was a refactoring which does not allow to cherry-pick it fast
forward. Resolving this conflict was not correctly done. The patch was:

+    u32 len;
+    u8 *table;
...
-    if (!(opt.flags & FLAG_QUIET))
-        pr_comment("Writing %d bytes to %s.", crafted[0x05],
-                   opt.dumpfile);
-    write_dump(0, crafted[0x05], crafted, opt.dumpfile, 1);
+    dmi_table_dump(crafted, crafted[0x05], table, len);

It looks like the variables len and table have been added without
initialization.
Now this problem is solved by applying the previous refactoring as
well. Patch 1 gets replaced by Patch 1a and Patch 1b. Patch 2..4 are
rebased without changes.

(From OE-Core rev: ea069a94a213cc153528aebfc387f30215566cc7)

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-19 05:56:58 -10:00
Ashish Sharma
5eab65275d curl: Backport fix CVE-2023-32001
(From OE-Core rev: 10df7553d1107438408f680ac28a2daf87d4163e)

Signed-off-by: Ashish Sharma <asharma@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-19 05:56:58 -10:00
Archana Polampalli
0ffefc4b62 qemu: fix CVE-2023-3180
A flaw was found in the QEMU virtual crypto device while handling data
encryption/decryption requests in virtio_crypto_handle_sym_req.
There is no check for the value of `src_len` and `dst_len` in
virtio_crypto_sym_op_helper, potentially leading to a heap buffer
overflow when the two values differ.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-3180

Upstream patches:
49f1e02bac

(From OE-Core rev: de421cab92c49ba0f068eae9d6b458a0368fcd03)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-19 05:56:58 -10:00
Peter Marko
ef8a18fd3b procps: patch CVE-2023-4016
Backport patch from upstream master.

There were three changes needed to apply the patch:
* move NEWS change to start of the file
* change file location from src/ps/ to ps/
* change xmalloc/xcmalloc to malloc/cmalloc

The x*malloc functions were introduced in commit in future version.
584028dbe5
They call the original function plus additionally throw error when out of memory.
https://gitlab.com/procps-ng/procps/-/blob/v4.0.3/local/xalloc.h?ref_type=tags
So this replacement is correct in context of our version.

(From OE-Core rev: 71d0683d625c09d4db5e0473a0b15a266aa787f4)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-19 05:56:58 -10:00
Archana Polampalli
8e90df16f5 ghostscript: fix CVE-2023-38559
A buffer overflow flaw was found in base/gdevdevn.c:1973 in devn_pcx_write_rle()
in ghostscript. This issue may allow a local attacker to cause a denial of service
via outputting a crafted PDF file for a DEVN device with gs.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2023-38559

Upstream patch:
https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d81b82c70bc1fb9991bb95f1201abb5dea55f57f

(From OE-Core rev: e77c0b35969ae690b390ffae682fd6552ff8aff8)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-19 05:56:58 -10:00
Vivek Kumbhar
ab548842ef qemu: fix CVE-2023-3354 VNC: improper I/O watch removal in TLS handshake can lead to remote unauthenticated denial of service
(From OE-Core rev: 42859fe600e5dddba3c51fa8d1e680721b73e5dc)

Signed-off-by: Vivek Kumbhar <vkumbhar@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-19 05:56:58 -10:00
Yogita Urade
4869a1f60e qemu: fix CVE-2020-14394
QEMU: infinite loop in xhci_ring_chain_length() in hw/usb/hcd-xhci.c

Reference:
https://gitlab.com/qemu-project/qemu/-/issues/646

(From OE-Core rev: 057f4f77ac2e83f99c916dceb4cbbcc8de448ad4)

Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-19 05:56:58 -10:00
Narpat Mali
fbe56e677b python3-certifi: fix CVE-2023-37920
Certifi is a curated collection of Root Certificates for validating
the trustworthiness of SSL certificates while verifying the identity
of TLS hosts. Certifi prior to version 2023.07.22 recognizes "e-Tugra"
root certificates. e-Tugra's root certificates were subject to an
investigation prompted by reporting of security issues in their systems.
Certifi 2023.07.22 removes root certificates from "e-Tugra" from the
root store.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-37920
https://github.com/certifi/python-certifi/security/advisories/GHSA-xqr8-7jwr-rhp7

(From OE-Core rev: 98abbe3394638c6ce795b34247a9e49120e4ffba)

Signed-off-by: Narpat Mali <narpat.mali@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-19 05:56:58 -10:00
Steve Sakoman
d6b8790370 build-appliance-image: Update to kirkstone head revision
(From OE-Core rev: e1a604db8d2cf8782038b4016cc2e2052467333b)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-07 04:44:16 -10:00
Steve Sakoman
326921a89e poky.conf: bump version for 4.0.12
(From meta-yocto rev: 464204a5e52a3f3ae5d7ec9e36c143ca06fed3eb)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-07 04:40:44 -10:00
Steve Sakoman
ab9b43f60b gcc: fix runpath errors in cc1 binary
The runpath in the cc1 binary is:

Library runpath: [$ORIGIN/../../../recipe-sysroot-native/usr/lib:$ORIGIN/../../../recipe-sysroot-native/lib]

This does not match the actual location of the libraries, which would require:

Library runpath: [$ORIGIN/../../recipe-sysroot-native/usr/lib:$ORIGIN/../../recipe-sysroot-native/lib]

Prior to gcc 9.1 the recipe set B explicity with:

B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}"

and this build directory structure matches the runpath in cc1, so there is no issue.

This line was commented out in versions 9.1 through 11.3.  The upgrade to 12.1 once
again uncommented this line.

As a result the runpath is incorrect in version 9.1 through 11.3 and cc1 defaults
to using host libraries.

This patch restores setting B as done in master and versions prior to 9.1

(From OE-Core rev: b6f4b3d43a399c2b446754de56ebea35657e13de)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-07 04:40:44 -10:00
Peter Marko
7e2d3b8346 openssl: Upgrade 3.0.9 -> 3.0.10
https://github.com/openssl/openssl/blob/openssl-3.0/NEWS.md#major-changes-between-openssl-309-and-openssl-3010-1-aug-2023
Major changes between OpenSSL 3.0.9 and OpenSSL 3.0.10 [1 Aug 2023]
* Fix excessive time spent checking DH q parameter value (CVE-2023-3817)
* Fix DH_check() excessive time with over sized modulus (CVE-2023-3446)
* Do not ignore empty associated data entries with AES-SIV (CVE-2023-2975)

(From OE-Core rev: 94ce10791ce10aa30d3a3bdef53f9b2f3c1b331a)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-07 04:40:44 -10:00
Sundeep KOKKONDA
e8c1d3e07e gcc : upgrade to v11.4
gcc stable version upgraded from v11.3 to v11.4

For changes in v11.4 see - https://gcc.gnu.org/gcc-11/changes.html

Below is the bug fix list for v11.4
https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&order=short_desc%2Cbug_status%2Cpriority%2Cassigned_to%2Cbug_id&query_format=advanced&resolution=FIXED&target_milestone=11.4

There are a total 115 bugs are fixed in this release, below is the list of bugs fixed excluding the regression fixes.

ID	Product	Comp	    Resolution	Summary▲
108199	gcc	tree-opt	FIXE	Bitfields, unions and SRA and storage_order_attribute
107801	gcc	libstdc+	FIXE	Building cross compiler for H8 family fails in libstdc++ (c++17/memory_resource.cc)
108265	gcc	libstdc+	FIXE	chrono::hh_mm_ss can't be constructed from unsigned durations
104443	gcc	libstdc+	FIXE	common_iterator<I, S>::operator-> is not correctly implemented
98056	gcc	c++		FIXE	coroutines: ICE tree check: expected record_type or union_type or qual_union_type, have array_type since r11-2183-g0f66b8486cea8668
107061	gcc	target		FIXE	ENCODEKEY128 clobbers xmm4-xmm6
105433	gcc	testsuit	FIXE	FAIL: gcc.target/i386/iamcu/test_3_element_struct_and_unions.c
105095	gcc	testsuit	FIXE	gcc.dg/vect/complex/fast-math-complex-* tests are not executed
100474	gcc	c++		FIXE	ICE: in diagnose_trait_expr, at cp/constraint.cc:3706
105854	gcc	target		FIXE	ICE: in extract_constrain_insn, at recog.cc:2692 (insn does not satisfy its constraints: sse2_lshrv1ti3)
104462	gcc	target		FIXE	ICE: in extract_constrain_insn_cached, at recog.cc:2682 with -mavx512fp16 -mno-xsave
106045	gcc	libgomp		FIXE	Incorrect testcase in libgomp.c/target-31.c at -O0
56189	gcc	c++		FIXE	Infinite recursion with noexcept when instantiating function template
100295	gcc	c++		FIXE	Internal compiler error from generic lambda capturing parameter pack and expanding it in if constexpr
100613	gcc	jit		FIXE	libgccjit should produce dylib on macOS
104875	gcc	libstdc+	FIXE	libstdc++-v3/src/c++11/codecvt.cc:312:24: warning: left shift count >= width of type
107471	gcc	libstdc+	FIXE	mismatching constraints in common_iterator
105284	gcc	libstdc+	FIXE	missing syncstream and spanstream forward decl. in <iosfwd>
98821	gcc	c++		FIXE	modules : c++tools configures with CC but code fragments assume CXX.
109846	gcc	fortran		FIXE	Pointer-valued function reference rejected as actual argument
101324	gcc	target		FIXE	powerpc64le: hashst appears before mflr at -O1 or higher
102479	gcc	c++		FIXE	segfault when deducing class template arguments for tuple with libc++-14
105128	gcc	libstdc+	FIXE	source_location compile error for latest clang 15
106183	gcc	libstdc+	FIXE	std::atomic::wait might fail to be unblocked by notify_one/all on platforms without platform_wait()
102994	gcc	libstdc+	FIXE	std::atomic<ptr>::wait is not marked const
105324	gcc	libstdc+	FIXE	std::from_chars() assertion at floating_from_chars.cc:78 when parsing 1.11111111....
105375	gcc	libstdc+	FIXE	std::packaged_task has no deduction guide.
104602	gcc	libstdc+	FIXE	std::source_location::current uses cast from void*
106808	gcc	libstdc+	FIXE	std::string_view range concept requirement causes compile error with Boost.Filesystem
105725	gcc	c++		FIXE	[ICE] segfault with `-Wmismatched-tags`
105920	gcc	target		FIXE	__builtin_cpu_supports ("f16c") should check AVX

(From OE-Core rev: 4fd7e5951c42336729f12cde71450ec298f2078b)

Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-07 04:40:44 -10:00
Yuta Hayama
cd1d34d510 cve-update-nvd2-native: always pass str for json.loads()
Currently json.loads() accepts one of the types str, bytes, or bytearray
as an argument, but bytes and bytearrays have only been allowed since
python 3.6. The version of Python3 provided by default on Ubuntu 16.04
and Debian 9.x is 3.5, so make raw_data type str to work correctly on
these build hosts.

(From OE-Core rev: e67d659847afe648de1b1eca2d19c4f6375dd12c)

Signed-off-by: Yuta Hayama <hayama@lineo.co.jp>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-07 04:40:44 -10:00
Sakib Sajal
1aae734721 go: fix CVE-2023-24531
Backport required patches from go1.21 to fix CVE-2023-24531.

(From OE-Core rev: 6d892c52bd5806507a05e8b6f749c54bbd9e9da6)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-07 04:40:44 -10:00
Sakib Sajal
1ba43f2c88 go: fix CVE-2023-24536
Backport required patches to fix CVE-2023-24536.

(From OE-Core rev: a774c895f4a425979cef8e05e8dd17c2dcb67654)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-07 04:40:44 -10:00
Archana Polampalli
ae7992e3b7 qemu: fix CVE-2023-2861
9pfs: prevent opening special files

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-2861

Upstream patches:
10fad73a2b

(From OE-Core rev: 9bd4ddeb4b5efc65b0514d50d6991211271924c1)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-07 04:40:43 -10:00
Archana Polampalli
76f6267368 qemu: fix CVE-2023-3255
VNC: infinite loop in inflate_buffer() leads to denial of service

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-3255

Upstream patches:
d921fea338

(From OE-Core rev: 52711b1392ed0c5cbe4ddf70a94b21be2f4e6e58)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-07 04:40:43 -10:00
Archana Polampalli
2587c36e87 qemu: fix CVE-2023-3301
qemu: hotplug/hotunplug mlx vdpa device to the occupied addr port,
then qemu core dump occurs after shutdown guest

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-3301

Upstream patches:
a0d7215e33

(From OE-Core rev: f549ff6db018f66a80fc65987675e8bb6afcd002)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-07 04:40:43 -10:00
Peter Marko
cd329fc984 libarchive: ignore CVE-2023-30571
This issue was reported and discusses under [1] which is linked in NVD CVE report.
It was already documented that some parts or libarchive are thread safe and some not.
[2] was now merged to document that also reported function is not thread safe.
So this CVE *now* reports thread race condition for non-thread-safe function.
And as such the CVE report is now invalid.

The issue is still not closed for 2 reasons:
* better document what is and what is not thread safe
* request to public if someone could make these functions thread safe
This should however not invalidate above statment about ignoring this CVE.

[1] https://github.com/libarchive/libarchive/issues/1876
[2] https://github.com/libarchive/libarchive/pull/1875

(From OE-Core rev: d5e7971e12cdc8748be91b4e6408b42fa86b2f15)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-07 04:40:43 -10:00
Peter Marko
9ceede321a libpcre2: patch CVE-2022-41409
Backport commit mentioned in NVD DB links.
94e1c00176

(From OE-Core rev: 410cdbc70cfba709ec5bef508e772f52514ba28a)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-07 04:40:43 -10:00
Alexander Kanavin
7fdfb828fd bitbake: bitbake-layers: initialize tinfoil before registering command line arguments
Plugins may want to use it (e.g. the layers-setup plugin that would
want to discover writer sub-plugins with it), and so it makes sense
to make tinfoil available a bit eariler.

(Bitbake rev: 41b6684489d0261753344956042be2cc4adb0159)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2f6c7523a622f59ddf84a1a196927492bc5fa7a2)
Signed-off-by: Jermain Horsman <jermain.horsman@nedap.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-04 04:43:41 -10:00
Michael Opdenacker
fa7dd8ac75 ref-manual: document image-specific variant of INCOMPATIBLE_LICENSE
This has been around without being properly documented since 2019 (!!!),
and is nowadays the preferred method for enforcing license restrictions,
especially since meta-gplv2 is officially obsolete.

(From yocto-docs rev: 4dfef81ac6164764c6541e39a9fef81d49227096)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Benjamin Bouvier
96404a7c4c util-linux: add alternative links for ipcs,ipcrm
When enabling ipcs and ipcrm configuration into busybox, both tools are
built and then deployed during do_rootfs. These operation lead to below
issue (similar behavior happens for ipcs):

do_rootfs: Postinstall scriptlets of ['busybox'] have failed. If the intention is to defer them to first boot,
then please place them into pkg_postinst_ontarget:${PN} ().

update-alternatives: Error: not linking .../build/tmp/work/board-poky-linux/board-image/1.0-r0/rootfs/usr/bin/ipcrm
to /bin/busybox since .../build/tmp/work/board-poky-linux/board-image/1.0-r0/rootfs/usr/bin/ipcrm exists and is not a link

Binaries enter in conflict with same named util-linux utilities during
do_rootfs step.
Adding ALTERNATIVE_LINK_NAME for both tools fix the issue.

(From OE-Core rev: dc2e760591c5ed3c999222f235484829426c71a7)

Signed-off-by: Benjamin Bouvier <benjamin.bouvier@ekinops.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e4d60408b869c9cc2ccff794d4e271d993ec8a97)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Jose Quaresma
f285505e20 openssl: use a glob on the PERLEXTERNAL to track updates on the path
The Text-Template was updated from 1.46 to 1.56

| ERROR: openssl-native-3.1.1-r0 do_configure: PERLEXTERNAL '/build/tmp/work/x86_64-linux/openssl-native/3.1.1-r0/openssl-3.1.1/external/perl/Text-Template-1.46/lib' not found!

(From OE-Core rev: b39e394771e4fa4c9250e11fafe5ef2157089422)

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b9a7739b01e31d0cc8358d99255e3e1b02a0a1a8)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Jose Quaresma
03ae07181a openssl: add PERLEXTERNAL path to test its existence
When upstream change is better to fail or removing the PERL5LIB
if they are not need anymore.

(From OE-Core rev: 14905c6bfdaba3e2e31eaee6c02e20bf7b6669a7)

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 337ac1159644678508990927923ef8af30f34cd7)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Yoann Congal
d97c5782be oeqa/selftest/devtool: add unit test for "devtool add -b"
Fix [Yocto #15085]

Co-authored-by: Fawzi KHABER <fawzi.khaber@smile.fr>
(From OE-Core rev: ea1592b49c6b45495fe9243339fc4dc9cea9ef12)

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d5eedf8ca689ccb433c2f5d0b324378f966dd627)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Ross Burton
a22efd0373 oeqa/runtime/cases/rpm: fix wait_for_no_process_for_user failure case
str.format() doesn't use % notation, update the formatting to work.

assertTrue() is a member of self not a global, and assertTrue(True) will
always pass. Change this to just self.fail() as this is the failure case.

(From OE-Core rev: 05c8af81438d43fd83495cb165c75f43778fea41)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 017f3a0b1265c1a3b69c20bdb56bbf446111977e)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Khem Raj
56f316630a meson.bbclass: Point to llvm-config from native sysroot
Default search in meson would grok /usr/bin for llvm-config and if found
will use it, which might add wrong paths into cflags/ldflags, since we
depend on llvm-native when building gallium support ( thats when
llvm-config is effective), its better to point llvm-config into native
sysroot so it can add correct paths into compiler/linker cmdline

(From OE-Core rev: 8e6b616066ba0f7f452f929dc7c412e620da9101)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cc73360b9728812ed6123e30559b77d8e89cc21c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Ross Burton
4b5f2ecf67 python3: fix missing comma in get_module_deps3.py
Wes Tarro <wes.tarro@azuresummit.com> noticed a missing comma in a
preplace() call, add it.

That said, calling replace() with one argument results in a TypeError,
so this is obviously dead code.

(From OE-Core rev: 3a79a210665efae1af6d68e9e923a739c82d800e)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9b2e2c8d809e7ca34451ec9702b029a00dfb410b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Ovidiu Panait
c094bb4a46 mdadm: skip running known broken ptests
Upstream marked some testcases as "KNOWN BROKEN" and introduced the
"--skip-broken" flag to ignore them when running the testsuite (commits [1]
and [2]). Backport these two commits to get rid of the last remaining ptest
failures.

Also, add the "--skip-broken" option to the run-ptest script.

[1] https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=28520bf114b3
[2] https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=daa86d663476

(From OE-Core rev: 62daa4ca064da1c014b9c21798bc55ff3e7656e6)

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 62148b978b26b5fcd1a2fa3a0ff82ef814f4e7ec)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Ovidiu Panait
e715193ee6 mdadm: fix segfaults when running ptests
Currently, some segfaults are reported when running ptest:
mdadm[12333]: segfault at 0 ip 00007fe855924060 sp 00007ffc4d6caf88 error 4 in libc.so.6[7f)
Code: d2 0f 84 b7 0f 00 00 48 83 fa 01 0f 84 b9 0f 00 00 49 89 d3 89 f1 89 f8 48 83 e1 3f 4f

Backport the following upstream commits to fix them:
679bd9508a30 ("DDF: Cleanup validate_geometry_ddf_container()")
2b93288a5650 ("DDF: Fix NULL pointer dereference in validate_geometry_ddf()")
548e9b916f86 ("mdadm/Grow: Fix use after close bug by closing after fork")
9ae62977b51d ("monitor: Avoid segfault when calling NULL get_bad_blocks")

The fixes are part of the "Bug fixes and testing improvments" patchset [1].

[1] https://www.spinics.net/lists/raid/msg70621.html

(From OE-Core rev: 4ea6acbf25ad1b3e910f01d136b53c6353daf0c5)

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9585009e3e505b361cd32b14e0e85e77e7822878)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Ovidiu Panait
1d0454b413 mdadm: fix 07revert-inplace ptest
Testcase 07revert-inplace fails if strace is not installed:
...
strace -o /tmp/str ./mdadm -A /dev/md0 --update=revert-reshape /dev/<...>
tests/07revert-inplace: line 40: strace: command not found

Add strace to mdadm-ptest RDEPENDS to make sure the testcase passes even with
a core-image-minimal build.

(From OE-Core rev: 1df8d9d45bb4ff01e30d9ec9ffd0fb822d5f91e9)

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7d9386663ac52ab69812867a0823c6055aedbc18)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Ovidiu Panait
06416b34a0 mdadm: fix util-linux ptest dependency
Trying to run mdadm-ptest in a core-image-minimal build will result in:
root@qemux86-64:~# ptest-runner mdadm
START: ptest-runner
BEGIN: /usr/lib/mdadm/ptest
which: no lsblk in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin)
lsblk command not found!
DURATION: 0
END: /usr/lib/mdadm/ptest
2023-06-28T10:14
STOP: ptest-runner
TOTAL: 1 FAIL: 0

Remove util-linux from RRECOMMENDS and only add util-linux-lsblk and
util-linux-losetup to RDEPENDS.

(From OE-Core rev: 898b9add68d9c30c7c90285e659b128289313668)

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3004f7589974c135cc82630d980ea281b97ecd83)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Quentin Schulz
b1e2d14d88 uboot-extlinux-config.bbclass: fix old override syntax in comment
The comment specifies how to use the variables but uses the older and
now unsupported override syntax. Let's update to match the newer syntax.

Cc: Quentin Schulz <foss+yocto@0leil.net>
(From OE-Core rev: 0a381eea4d50ff1c6e7c7d0d4df62eb581454b48)

(From OE-Core rev: 0e9a70ee3c8f78db746d3cb627c6b212e1b4e4e4)

Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bb64f3fed29b9532e6ddc9a2ba0283d373622d87)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Yuta Hayama
162ca7a55c systemd-systemctl: fix errors in instance name expansion
If the instance name indicated by %i begins with a number, the meaning of the
replacement string "\\1{}".format(instance) is ambiguous.

To indicate group number 1 regardless of the instance name, use "\g<1>".

(From OE-Core rev: 392f60b0aa775ce95c3494ae87551e7954c9925b)

Signed-off-by: Yuta Hayama <hayama@lineo.co.jp>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d18b939fb08b37380ce95934da38e6522392621c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Yoann Congal
23af44f254 recipetool: Fix inherit in created -native* recipes
native and nativesdk classes are special and must be inherited last :
put them at the end of the gathered classes to inherit.

(From OE-Core rev: 2c92780236b25205af0dcf75de2d2ede14132152)

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a6614fd800cbe791264aeb102d379ba79bd145c2)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Andrej Valek
0391bb6f9e kernel: add missing path to search for debug files
Since explicit debug package creation via ${KERNEL_PACKAGE_NAME}-dbg has
been added to kernel, it has to cover all PACKAGE_DEBUG_SPLIT_STYLE
options. For ex. when the variable "debug-file-directory" package search
path has to be set explicitly, otherwise it will not find any files.

(From OE-Core rev: 9adbda8450c57f49edf85e3b3433304e8ac8267e)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9c39da147683dcaaa244b3ddc4531c4408ad5c9e)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Martin Jansa
2e4bdbc5c4 libxcrypt: fix build with perl-5.38 and use master branch
* fixes do_configure failure:
  checking whether all ucontext.h functions are available... yes
  when is deprecated at libxcrypt/4.4.30-r0/git/build-aux/scripts/BuildCommon.pm line 522.
  Compilation failed in require at ../git/build-aux/scripts/expand-selected-hashes line 28.
  BEGIN failed--compilation aborted at ../git/build-aux/scripts/expand-selected-hashes line 28.
  configure: error: bad value 'all' for --enable-hashes
  NOTE: The following config.log files may provide further information.

* with this patch backported it works OK:
  libxcrypt/4.4.30-r0/git $ perl build-aux/scripts/expand-selected-hashes
  usage: expand-selected-hashes hashes.conf names,of,selected,hashes

* similarly do_compile failure:
  ../git/build-aux/scripts/move-if-change crypt-hashes.h.T crypt-hashes.h
  ../git/build-aux/scripts/move-if-change crypt-symbol-vers.h.T crypt-symbol-vers.h
  given is deprecated at ../git/build-aux/scripts/gen-crypt-h line 41.
  Makefile:3818: Makefile.deps: No such file or directory
  make: *** [Makefile:3715: crypt.h.stamp] Error 255

* also use master branch instead of develop, the SRCREV exists in both
  but stable metadata branches should track stable component branches

  libxcrypt/4.4.30-r0/git $ git branch -a --contains d7fe1ac04c326dba7e0440868889d1dccb41a175 | tee
  * develop
    remotes/origin/HEAD -> origin/develop
    remotes/origin/develop
    remotes/origin/master

  and oe-core master also uses master SRCBRANCH since:
  https://git.openembedded.org/openembedded-core/commit/?id=d18e89bd2b46c6e266cc39dbe9fdb6c032f5f1fe

(From OE-Core rev: 54996f24243a10252d3aa70effc9c13db1d507f8)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Wang Mingyu
f2394b13c1 lttng-ust: upgrade 2.13.5 -> 2.13.6
Changelog:
===========
* Fix: segmentation fault on filter interpretation in "switch" mode
* Fix: `ip` context is expressed as a base-10 field
* Fix: c99: use __asm__ __volatile__
* Fix: c99: static assert: clang build fails due to multiple typedef
* Fix: Reevaluate LTTNG_UST_TRACEPOINT_DEFINE each time tracepoint.h is included
* Fix: trace events in C++ constructors/destructors
* Fix: trace events in C constructors/destructors
* Fix: use unaligned pointer accesses for lttng_inline_memcpy

(From OE-Core rev: 1361c8f4be21e41db74623dcacc92d8f02e6a2ee)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 656470b4b0db579308d218d1ece77bdacd168d14)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Wang Mingyu
f51ce76cd8 libksba: upgrade 1.6.3 -> 1.6.4
Changelog:
Correctly detect CMS write errors.

(From OE-Core rev: 4bc2f5c3a46b76d152fda326f7c8227fe938b97e)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0296cf63007542c1cb209a4288be1c82aa2ba843)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Wang Mingyu
f01294ea24 libassuan: upgrade 2.5.5 -> 2.5.6
Changelog:
===========
 * Fix logging of confidential data.  [rA0fc31770fa]
 * Fix memory wiping.  [T5977]
 * Fix macOS build problem.  [T5440,T5610]
 * Upgrade autoconf stuff.

(From OE-Core rev: a905094c4e7ff3475de657adcf7a0afcc132191a)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 90126be6dc32170c08eb90223b6a6cc06c2133ce)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Alexander Kanavin
9cc2735749 diffutils: update 3.9 -> 3.10
* Noteworthy changes in release 3.10 (2023-05-21) [stable]

** Bug fixes

  cmp/diff can again work with file dates past Y2K38
  [bug introduced in 3.9]

  diff -D no longer fails to output #ifndef lines.
  [bug#61193 introduced in 3.9]

Remove the comment addition from the patch body, as it
increases likelyhood of rebase conflicts, and repeats what
the commit says.

(From OE-Core rev: ab9ae300ce3895cdf64d207b5dc281b65c984211)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 925155acc6922f7e9df2afa45e79ad1b2c57ba24)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 21e40166870fadee986fb36be80019d3bcdb69e5)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Tim Orling
7658d8f2c9 python3: upgrade 3.10.9 -> 3.10.12
Security and bugfix updates.

* Drop cve-2023-24329.patch as it is merged in 3.10.12

CVE: CVE-2023-24329

Includes openssl 1.1.1u which addresses:
CVE: CVE-2023-0286
CVE: CVE-2022-4304
CVE: CVE-2022-4203

https://docs.python.org/release/3.10.12/whatsnew/changelog.html#python-3-10-12-final
https://docs.python.org/release/3.10.12/whatsnew/changelog.html#python-3-10-11-final
https://docs.python.org/release/3.10.12/whatsnew/changelog.html#python-3-10-10-final

License-Update: Update Copyright years to include 2023

(From OE-Core rev: 4df594dbc1b391afbe703f663fb2d5c9e9d35078)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Yogita Urade
f4c5d9a3a6 dmidecode: fix CVE-2023-30630
Dmidecode before 3.5 allows -dump-bin to overwrite a local file.
This has security relevance because, for example, execution of
Dmidecode via Sudo is plausible.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-30630
https://lists.nongnu.org/archive/html/dmidecode-devel/2023-04/msg00016.html
https://lists.nongnu.org/archive/html/dmidecode-devel/2023-04/msg00017.html

Backport: fixes fuzz in the CVE-2023-30630_2.patch in kirkstone

(From OE-Core rev: 4f83427a0a01e8285c9eb42d2a635d1ff7b23779)

Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit f92e59a0894145a828dc9ac74bf8c7a9355e0587)
Signed-off-by: Dhairya Nagodra <dnagodra@cisco.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Archana Polampalli
e01d123ba1 openssh: fix CVE-2023-38408
The PKCS#11 feature in ssh-agent in OpenSSH before 9.3p2 has an
insufficiently trustworthy search path, leading to remote code
execution if an agent is forwarded to an attacker-controlled system.
(Code in /usr/lib is not necessarily safe for loading into ssh-agent.)
NOTE: this issue exists because of an incomplete fix for CVE-2016-10009.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-38408

Upstream patches:
892506b136
1f2731f5d7
29ef8a0486
099cdf59ce

(From OE-Core rev: 3c01159ab6a843fc922cf779b022c965d4ecd453)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Hitendra Prajapati
d198c0d738 libtiff: fix CVE-2023-26965 heap-based use after free
Upstream-Status: Backport from ec8ef90c1f

(From OE-Core rev: 9b9f88d8828ee822635ed645cc192829fecec39e)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Hitendra Prajapati
3c2e546a1a tiff: fix multiple CVEs
Backport fixes for:
* CVE-2023-25433 - Upstream-Status: Backport from 9c22495e5e && 688012dca2
* CVE-2023-25434 & CVE-2023-25435 - Upstream-Status: Backport from 69818e2f2d

(From OE-Core rev: 01b9f7f7bb3eaecd6aa757fa090fcc4424788ce1)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:13 -10:00
Vivek Kumbhar
4596433a54 go: fix CVE-2023-29406 net/http insufficient sanitization of Host header
(From OE-Core rev: 5dc74138649ab7a2c0158a43225dc7a8fd732355)

Signed-off-by: Vivek Kumbhar <vkumbhar@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:12 -10:00
Hitendra Prajapati
51f8011956 tiff: fix multiple CVEs
Bug-Debian: https://bugs.debian.org/1031632
Origin: afaabc3e50

import from debian http://security.debian.org/debian-security/pool/updates/main/t/tiff/tiff_4.1.0+git191117-2~deb10u7.debian.tar.xz

fix multiple CVEs:

CVE-2023-0795
CVE-2023-0796
CVE-2023-0797
CVE-2023-0798
CVE-2023-0799

(From OE-Core rev: 1a4e54d5b7b4d26b9fcdc2be1b115600ca71c9ea)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:12 -10:00
Peter Marko
ffce38bad0 python3: ignore CVE-2023-36632
This CVE shouldn't have been filed as the "exploit" is described in the
documentation as how the library behaves.

(From OE-Core rev: 9665121fd9daf1174ec4045071b900de9195b11e)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c652f094d86c4efb7ff99accba63b8169493ab18)
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:12 -10:00
Peter Marko
f24230b04b libjpeg-turbo: patch CVE-2023-2804
Relevant links:
* linked fronm NVD:
  * https://github.com/libjpeg-turbo/libjpeg-turbo/issues/668#issuecomment-1492586118
* follow-up analysis:
  * https://github.com/libjpeg-turbo/libjpeg-turbo/issues/668#issuecomment-1496473989
  * picked commits fix all issues mentioned in this analysis

(From OE-Core rev: ca8ede6d29c04159e85c2bdd2b635c58ec6a1484)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-08-02 04:47:12 -10:00
Xiangyu Chen
6539812e23 package.bbclass: moving field data process before variable process in process_pkgconfig
Currently, the latest version abseil-cpp contains a new library named "absl_log_internal_format", it's
basic package config(.pc file) as below:

prefix=/usr
exec_prefix=${prefix}

......

Requires: absl_config = 20230125, absl_core_headers = 20230125, absl_log_internal_append_truncated = 20230125,
absl_log_internal_config = 20230125, absl_log_internal_globals = 20230125, absl_log_severity = 20230125,
absl_strings = 20230125, absl_str_format = 20230125, absl_time = 20230125, absl_span = 20230125
......

Normally, the process_pkgconfig() would process variable data before field data in a .pc file, but in the
absl_log_internal_format, the field data in "Requires" section contains "xxxx = xxxx" format, the
process_pkgconfig() treats them as normal variable and using the setVar() in bitbake's data_smart.py
try to process. The absl_log_internal_format field data contains "_append_", this hit the setVar() checking
and finally bitbake stop building and reporting an error as below:

"Variable xxx contains an operation using the old override syntax. Please convert this layer/metadata before attempting to use with a newer bitbake."

This patch move the field data process before variable process to avoid the process_pkgconfig() treat the field
data as variable.

(From OE-Core rev: e7d3e02a624f7ce23d012bb11ad1df2049066b37)

Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
(cherry picked from commit a73e269d3e591a10bb397b94b82e3fb960112d33)
Signed-off-by: Clément Péron <peron.clem@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-26 05:20:36 -10:00
Richard Purdie
55e4c90abf gcc-testsuite: Fix ppc cpu specification
After this change in qemu:

c7e89de132

there is no 'max' cpu model on ppc. Drop it to clean up ppc gcc testsuite failures.

In order for this to work we do need to pull in the alternative cpu option from
QEMU_EXTRAOPTIONS on powerpc.

(From OE-Core rev: 3a1b9f300a796e1216d0094043dba7b0f39ec869)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c447f2b21b20fb2b1829d540af2cc0bf8242700c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-26 05:20:36 -10:00
Ross Burton
a2bf83842a machine/arch-arm64: add -mbranch-protection=standard
Enable branch protection (PAC/BTI) for all aarch64 builds.  This was
previously enabled at a global level in the GCC build, but that breaks
the gcc test suite.

(From OE-Core rev: a1119750e9b3b9fae4fa9698d2ea3710a5a73768)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8905639d1cdc5ce809cc5ecd9672f5e86bf8a579)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-26 05:20:36 -10:00
Ross Burton
8585e78965 gcc: don't pass --enable-standard-branch-protection
By changing the default code generation of GCC we're inadvertently
breaking the GCC test suite, which has ~120K+ more failures when run for
aarch64 compared to x86-64.

This was because the generated code fragments included the BTI
instructions, which the test case wasn't expecting.  We can't tell the
tests globally to run without branch protection, as that will break the
tests which also turn it on.

Remove the enabling of branch protection by standard in GCC, we'll
enable it in the tune files instead.

(From OE-Core rev: 759327cf6bd79118bae0c68e63742ae4721471d8)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bb4b9017db6a893ed054a2d2ad4cc671dec09c42)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-26 05:20:36 -10:00
Bruce Ashfield
b2e3fcb94d linux-yocto/5.15: update to v5.15.120
Updating  to the latest korg -stable release that comprises
the following commits:

    d54cfc420586 Linux 5.15.120
    c06edf13f4cf nubus: Partially revert proc_create_single_data() conversion
    6e65fa33edf5 parisc: Delete redundant register definitions in <asm/assembly.h>
    b4d8f8900021 drm/amdgpu: Validate VM ioctl flags.
    26eb191bf5a0 scripts/tags.sh: Resolve gtags empty index generation
    989b4a753c7e perf symbols: Symbol lookup with kcore can fail if multiple segments match stext
    87f51cf60e3e Revert "thermal/drivers/mediatek: Use devm_of_iomap to avoid resource leak in mtk_thermal_probe"
    6a28f3490d3d HID: logitech-hidpp: add HIDPP_QUIRK_DELAYED_INIT for the T651.
    67ce7724637c HID: wacom: Use ktime_t rather than int when dealing with timestamps
    347732317749 bpf: ensure main program has an extable
    d874cf9799a9 can: isotp: isotp_sendmsg(): fix return error fix on TX path
    27d03d15bb8b x86/smp: Use dedicated cache-line for mwait_play_dead()
    d6c745ca4fc5 x86/microcode/AMD: Load late on both threads too
    9052349685e9 drm/amdgpu: Set vmbo destroy after pt bo is created
    796481bedc3e mm, hwpoison: when copy-on-write hits poison, take page offline
    6713b8f11aa0 mm, hwpoison: try to recover from copy-on write faults
    b46021ab8304 mptcp: consolidate fallback and non fallback state machine
    42ff95b4bd11 mptcp: fix possible divide by zero in recvmsg()

(From OE-Core rev: ab60a67c3effda6364fadcf78edf7792c75bff19)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 51c474534c27ac0739a6373595a49ebbc52c3715)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-26 05:20:36 -10:00
Bruce Ashfield
13149ac30f linux-yocto/5.15: update to v5.15.119
Updating  to the latest korg -stable release that comprises
the following commits:

    4af60700a60c Linux 5.15.119
    10fbd2e04e40 act_mirred: remove unneded merge conflict markers
    2230b3f874d9 i2c: imx-lpi2c: fix type char overflow issue when calculating the clock cycle
    907a069ec38f x86/apic: Fix kernel panic when booting with intremap=off and x2apic_phys
    7949f83f7ecc vhost_net: revert upend_idx only on retriable error
    fdac0aa4a175 drm/radeon: fix race condition UAF in radeon_gem_set_domain_ioctl
    f012d3037c15 drm/exynos: fix race condition UAF in exynos_g2d_exec_ioctl
    a44b4230d2ba drm/exynos: vidi: fix a wrong error return
    79b4125bce96 ARM: dts: Fix erroneous ADS touchscreen polarities
    9684c4fdeeca s390/purgatory: disable branch profiling
    3c4d87e9fa8a ASoC: nau8824: Add quirk to active-high jack-detect
    d77eac1b14e0 soundwire: dmi-quirks: add new mapping for HP Spectre x360
    53ad4af4ec90 ASoC: simple-card: Add missing of_node_put() in case of error
    bb45dc7b67c5 spi: lpspi: disable lpspi module irq in DMA mode
    f8d9d8f1727d s390/cio: unregister device when the only path is gone
    e10d15fdfced Input: soc_button_array - add invalid acpi_index DMI quirk handling
    26bde09a1512 nvme: double KA polling frequency to avoid KATO with TBKAS on
    e3bbc148377d usb: gadget: udc: fix NULL dereference in remove()
    cce681383d34 nfcsim.c: Fix error checking for debugfs_create_dir
    8a5ddd1430d4 media: cec: core: don't set last_initiator if tx in progress
    01cf989090da arm64: Add missing Set/Way CMO encodings
    f97b16c0a538 HID: wacom: Add error check to wacom_parse_and_register()
    e8bdb1f88699 scsi: target: iscsi: Prevent login threads from racing between each other
    1cc379d53b66 gpio: sifive: add missing check for platform_get_irq
    497d40140865 gpiolib: Fix GPIO chip IRQ initialization restriction
    7973c4b3b97d gpio: Allow per-parent interrupt data
    c1a2b52d999e sch_netem: acquire qdisc lock in netem_change()
    3138c85031e8 selftests: forwarding: Fix race condition in mirror installation
    b7db41a86541 bpf/btf: Accept function names that contain dots
    0f8d81254fd6 Revert "net: phy: dp83867: perform soft reset and retain established link"
    57130334da4e netfilter: nfnetlink_osf: fix module autoload
    53defc6ecff4 netfilter: nf_tables: disallow updates of anonymous sets
    2f2f9eaa6da1 netfilter: nf_tables: reject unbound chain set before commit phase
    2938e7d582d7 netfilter: nf_tables: reject unbound anonymous set before commit phase
    baa3ec1b31f5 netfilter: nf_tables: disallow element updates of bound anonymous sets
    45eb6944d0f5 netfilter: nft_set_pipapo: .walk does not deal with generations
    4004f12aaca8 netfilter: nf_tables: add NFT_TRANS_PREPARE_ERROR to deal with bound set/chain
    314a8697d080 netfilter: nf_tables: fix chain binding transaction logic
    1328e8d4c3ee be2net: Extend xmit workaround to BE3 chip
    768f94c5f639 net: dsa: mt7530: fix handling of BPDUs on MT7530 switch
    aa528e7d379f net: dsa: mt7530: fix trapping frames on non-MT7621 SoC MT7530 switch
    efea112a87b6 ipvs: align inner_mac_header for encapsulation
    24d7d9aee03d mmc: usdhi60rol0: fix deferred probing
    d1e08bed0307 mmc: sh_mmcif: fix deferred probing
    34c4906b9a06 mmc: sdhci-acpi: fix deferred probing
    41f1e8dab08d mmc: owl: fix deferred probing
    b86ca9e08ca9 mmc: omap_hsmmc: fix deferred probing
    445a9568dec1 mmc: omap: fix deferred probing
    840deb8d1418 mmc: mvsdio: fix deferred probing
    92f73c4f927c mmc: mtk-sd: fix deferred probing
    aedecd013d2c net: qca_spi: Avoid high load if QCA7000 is not available
    156dd06fb337 xfrm: Linearize the skb after offloading if needed.
    d967bd7ea6cc selftests: net: fcnal-test: check if FIPS mode is enabled
    964cfdfd4b4f xfrm: fix inbound ipv4/udp/esp packets to UDPv6 dualstack sockets
    25e89fa7b5a8 bpf: Fix verifier id tracking of scalars on spill
    0b180495f6b0 bpf: track immediate values written to stack by BPF_ST instruction
    3229a29e95f5 xfrm: Ensure policies always checked on XFRM-I input path
    d055ee18cab8 xfrm: interface: rename xfrm_interface.c to xfrm_interface_core.c
    491ce3c1d98a xfrm: Treat already-verified secpath entries as optional
    0ce3d0c068d9 ieee802154: hwsim: Fix possible memory leaks
    29672dc47d99 mmc: meson-gx: fix deferred probing
    9bac4a2b7326 memfd: check for non-NULL file_seals in memfd_create() syscall
    103734b429b9 x86/mm: Avoid using set_pgd() outside of real PGD pages
    793d0224bb60 nilfs2: prevent general protection fault in nilfs_clear_dirty_page()
    96987c383c2b io_uring/net: disable partial retries for recvmsg with cmsg
    25a543ca3005 io_uring/net: clear msg_controllen on partial sendmsg retry
    34a7e5021a43 io_uring/net: save msghdr->msg_control for retries
    b07bb2914ada writeback: fix dereferencing NULL mapping->host on writeback_page_template
    3c46a240ddba regmap: spi-avmm: Fix regmap_bus max_raw_write
    4796d9b06917 regulator: pca9450: Fix LDO3OUT and LDO4OUT MASK
    ba9952e2f50b ip_tunnels: allow VXLAN/GENEVE to inherit TOS/TTL from VLAN
    acee272283f4 mmc: mmci: stm32: fix max busy timeout calculation
    999173f295cc mmc: meson-gx: remove redundant mmc_request_done() call from irq context
    00010b52c705 mmc: sdhci-msm: Disable broken 64-bit DMA on MSM8916
    4a557910bbed cgroup: Do not corrupt task iteration when rebinding subsystem
    815b24401165 PCI: hv: Add a per-bus mutex state_lock
    34e21b8ff3e6 PCI: hv: Fix a race condition in hv_irq_unmask() that can cause panic
    7d852ca7af37 PCI: hv: Remove the useless hv_pcichild_state from struct hv_pci_dev
    5e0d33cc7813 Revert "PCI: hv: Fix a timing issue which causes kdump to fail occasionally"
    ac0df91c7d98 PCI: hv: Fix a race condition bug in hv_pci_query_relations()
    80c5d97b4aa1 Drivers: hv: vmbus: Fix vmbus_wait_for_unload() to scan present CPUs
    4d31eb2e266c Drivers: hv: vmbus: Call hv_synic_free() if hv_synic_alloc() fails
    953dd7e2df81 KVM: Avoid illegal stage2 mapping on invalid memory slot
    1d6c93206839 ACPI: sleep: Avoid breaking S3 wakeup due to might_sleep()
    b12011cea56b nilfs2: fix buffer corruption due to concurrent device reads
    485f6be2549c selftests: mptcp: join: skip check if MIB counter not supported
    64cb73ea77ab selftests: mptcp: join: use 'iptables-legacy' if available
    979a941d7ed3 selftests: mptcp: pm nl: remove hardcoded default limits
    ac65930751c4 selftests/mount_setattr: fix redefine struct mount_attr build error
    726d033133e7 selftests: mptcp: lib: skip if not below kernel version
    b28fc26683b4 selftests: mptcp: lib: skip if missing symbol
    024a24e5d4dd tick/common: Align tick period during sched_timer setup
    3c1aa91b37f9 drm/amd/display: Add wrapper to call planes and stream update
    eea850c025b5 drm/amd/display: Use dc_update_planes_and_stream
    fb7c68bbccad drm/amd/display: Add minimal pipe split transition state
    b5f0e898f674 tpm, tpm_tis: Claim locality in interrupt handler
    39e787253720 tracing: Add tracing_reset_all_online_cpus_unlocked() function
    5a24be76af79 drm/amd/display: fix the system hang while disable PSR

(From OE-Core rev: c76f1027756cc83d81b43522a1601b5fda972f86)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 8ecf81b1960ab1001efe41cb3d132accf985e3dc)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-26 05:20:36 -10:00
Archana Polampalli
ba1a77347c ghostscript: fix CVE-2023-36664
Artifex Ghostscript through 10.01.2 mishandles permission validation for
pipe devices (with the %pipe% prefix or the | pipe character prefix).

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2023-36664

Upstream patches:
https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5e65eeae225c7d02d447de5abaf4a8e6d234fcea
https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fb342fdb60391073a69147cb71af1ac416a81099

(From OE-Core rev: cd3921215cb782ecc9aeda5bb3b76863911bcb61)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-26 05:20:36 -10:00
Vijay Anusuri
81874924a7 qemu: backport Debian patch to fix CVE-2023-0330
import patch from ubuntu to fix
 CVE-2023-0330

Upstream-Status: Backport [import from ubuntu https://git.launchpad.net/ubuntu/+source/qemu/tree/debian/patches?h=ubuntu/jammy-security
Upstream commit b987718bbb]

(From OE-Core rev: aae5bf06ad3c67386544f9da55aa21fbf32c3418)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-26 05:20:36 -10:00
Michael Opdenacker
cc3287637c ref-manual: release-process: update for LTS releases
(From yocto-docs rev: 145488ac9ee4ad5efb0966f07ff5e7ff804f6562)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Michael Opdenacker
23ca3ba890 ref-manual: add LTS and Mixin terms
(From yocto-docs rev: f9ce60e2a035f3921901d2c6633df6e302cad1c7)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Lee Chee Yang
b54543f7e8 migration-guides: add release notes for 4.0.11
(From yocto-docs rev: 96575a0c06d206400a5efde2ec2ddcda54a43105)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Quentin Schulz
6c185e7ae0 docs: ref-manual: terms: fix typos in SPDX term
Fixes: 2c53ac40e99a ("ref-manual: terms.rst: add SBOM and SPDX terms")
Cc: Quentin Schulz <foss+yocto@0leil.net>
(From yocto-docs rev: aaa554381a46c66d7708967c65893992760aa5fe)

Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Tom Hochstein
10f1543541 cmake: Fix CMAKE_SYSTEM_PROCESSOR setting for SDK
When building using an SDK, cmake complains that the target
architecture 'cortexa53-crypto' is unknown. The same build in bitbake
uses the target architecture 'aarch64'.

Set CMAKE_SYSTEM_PROCESSOR the same as for bitbake.

(From OE-Core rev: d877d5f07772ec4a05332068ddc03cf387313036)

Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d32a6225eefce2073a1cd401034b5b4c68351bfe)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Heiko Thole
0d0acb2e4c wic: Add dependencies for erofs-utils
In order to build erofs filesystems, wic must have the erofs-utils package installed into its sysroot.

(From OE-Core rev: c349c7fcb299b123824da9a13ee58222a6cbf9ec)

Signed-off-by: Heiko Thole <heiko.thole@entwicklung.eq-3.de>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Alexander Kanavin
7fa5220b3b sysfsutils: fetch a supported fork from github
Debian does the same:
https://packages.debian.org/source/sid/sysfsutils

(From OE-Core rev: 9f35ca9d9ed4be4d27318230f4ae42c4885d1f0c)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 504b2f590cb94b217c5f48090cfb71a749bd5ac8)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Chen Qi
18b69cb60d unzip: fix configure check for cross compilation
The original configure runs a generated binary to determine
features. This is not correct for cross compilation. So change
the runtime tests into compile-time tests to fix the issue.

(From OE-Core rev: 7d99f3a9a2a74fe2e8753b00553f07f305d14c87)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b9aca339b59238988c48b90ea5019bfc939ba4b3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Chen Qi
4b4b09c2be zip: fix configure check by using _Static_assert
It's incorrect to run a cross-compiled program on build machine
to check if some feature is available or not. As these two checks
in zip are basically just checking the size, we can use _Static_assert
and sizeof to do such check at compile time.

(From OE-Core rev: 6f5986fb520ab89b0950d3e0fa8492de4de7798f)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit dda778d855b1838ae3004a9af310724b913490b4)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Chen Qi
43ce6be661 sdk.py: fix moving dnf contents
The dnf contents should be moved to <host_sysroot>/etc/dnf/xxx
instead of just <host_sysroot>/etc.

(From OE-Core rev: 006ff31ddad4c53c63adf1dacecbf2783404a546)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 74b78d160a985e98f869c777847ab798e419dd2d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Chen Qi
2902244070 sdk.py: error out when moving file fails
Instead of printing an error message and continuing, we should just
error out when moving file fails.

(From OE-Core rev: 4ed94fef70df05c874cf0c68dcc95c5636687825)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 12aecd9da94b5f27041982c661e8bab316d365d4)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Alberto Planas
be36dfcfc6 bitbake.conf: add unzstd in HOSTTOOLS
rpm2cpio.sh can make calls to unzstd to uncompress the RPM payload that
conform the cpio file.

zstd is already part of HOSTTOOLS, as a link to the system installed
zstd.

This patch add unzstd in HOSTOOLS list as a non-optional binary, so is
available to rpm2cpio.sh when it is required.

(From OE-Core rev: 5cee002e34d16e9d82045d3e8e3931ba046403d2)

Signed-off-by: Alberto Planas <aplanas@suse.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bff58d337890e804d33d7decbaa46065a4d3bba4)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Alexander Sverdlin
335eb3a93e rust-llvm: backport a fix for build with gcc-13
* needed for rust-llvm-native on hosts with gcc-13

Based on commit 3382759cb6c5 ("llvm: backport a fix for build with gcc-13")

(From OE-Core rev: d6684a9c9f713ad30442a2a036ff86b534585400)

Signed-off-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Marek Vasut
683b79aa58 systemd: Backport nspawn: make sure host root can write to the uidmapped mounts we prepare for the container payload
Backport fix for systemd nspawn uidmap handling from systemd v253 .
Without this, attempt to start mkosi generated debian stable 12
container would ultimately fail (per "$ strace -ff") with:
"
symlinkat("usr/lib/aarch64-linux-gnu", 8, "lib64") = -1 EOVERFLOW (Value too large for defined data type)
"

Command to generate test container:
"
mkosi --distribution debian --release stable --architecture arm64 \
      --cache-dir /home/oe/cache/ --format tar --compress-output xz \
      --output-dir /home/oe/output/ --checksum 1 --root-password root \
      --package systemd --package udev --package dbus
"

Command to import test container and start it, which triggers the failure:
"
$ machinectl pull-tar http://192.168.1.300/image.tar.xz default
$ machinectl read-only default false
$ rm -f /var/lib/machines/default/etc/machine-id
$ dbus-uuidgen --ensure=/var/lib/machines/default/etc/machine-id
$ machinectl start default
"

Minimal command to trigger the failure once container is imported:
"
$ strace -ff systemd-nspawn --keep-unit --boot --link-journal=try-guest --network-veth -U --settings=override --machine=default
"

Extracted from systemd MR:
https://github.com/systemd/systemd/pull/22774

Further explanation by Christian Brauner at second half of:
https://github.com/systemd/systemd/issues/20989

(From OE-Core rev: 6d190eb0caadcb95c5325ede32164a645abb61f3)

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Mauro Queiros
71cb6bd31c pybootchartgui: show elapsed time for each task
Currently, finding the elapsed time of each task in buildtimes.svg
is a manual effort of checking the top axis and finding and subtracting
the end and start time of the task.

This change adds the elapsed time for each task, so that
manual effort of comparing start/end time is avoided.

(From OE-Core rev: b2678422b411ccbd19a7b198c872b92077567391)

Signed-off-by: Mauro Queiros <Mauro.Queiros@criticaltechworks.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3efebd3404de548f0757863da237f2d18ce60013)
Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Jermain Horsman
3bf387217f logrotate: Do not create logrotate.status file
The first time logrotate runs it reports an error:

  error: state file /var/lib/logrotate.status is
  world-readable and thus can be locked from other
  unprivileged users. Skipping lock acquisition...

This check was added with
1f76a381e2

This error is only reported once as logrotate removes
the world-readable permissions if this happens.
Since logrotate creates this file if it does not exist,
there should be no need to install it in the first place.

(From OE-Core rev: fbfd62ac655cf00b8f7c8fc832ce7434ad4966a3)

Signed-off-by: Jermain Horsman <jermain.horsman@nedap.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8169cd2d18f1569e4357f082adbef492710e8c36)
Signed-off-by: Jermain Horsman <jermain.horsman@nedap.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Nikhil R
67c4196ac1 libpng: Add ptest for libpng
libpng is a platform-independent library which
supports all PNG features.
This ptest executes the below binaries, parses
the png image and prints the image features.

1. pngfix - provides information about PNG image
copyrights details.

2. pngtest - tests, optimizes and optionally fixes
the zlib header in PNG files.

3. pngstest - verifies the integrity of PNG image by
dumping chunk level information.

4. timepng - provides details about PNG image chunks.

(From OE-Core rev: 2d58b38185ca7eed5d885b8d00ca549b57138554)

Signed-off-by: Nikhil R <nikhil.r@kpit.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Jose Quaresma
934cbbc48e selftest/reproducible: Allow chose the package manager
This is a follow-up of 76e5fcb2 that also allow users to chose
the package manager using OEQA_REPRODUCIBLE_TEST_PACKAGE

(From OE-Core rev: 4402b746f49611abe71719dd1d174de79bb030bb)

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3d414d85b44077bac57aba36707b0fc699a73e97)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Mikko Rapeli
17110ad8f5 selftest reproducible.py: support different build targets
Allow users to set different build reproducibility targets than
the defaults using OEQA_REPRODUCIBLE_TEST_TARGET and
OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS variables in local.conf.

Fixing all issues from "world" builds is not possible in some
complex build environments with lots of layers. Limiting the focus to
a smaller subset allows using this test to detect and fix build
reproduction issues incrementally.

(From OE-Core rev: 3b82a7d74995c0670a6914c58b3d7c42327b8ee9)

Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit c66bebbce5995e386a1a4d055a914a39b6ee518d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Trevor Gamblin
4a93bab7a4 vim: upgrade 9.0.1527 -> 9.0.1592
Fixes:

https://nvd.nist.gov/vuln/detail/CVE-2023-2609
d1ae836 patch 9.0.1531: crash when register contents ends up being invalid
https://nvd.nist.gov/vuln/detail/CVE-2023-2610
ab9a2d8 patch 9.0.1532: crash when expanding "~" in substitute causes very long text

(From OE-Core rev: a71153cb0a509456dd36466ac15a603f953eb6b8)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1e4b4dfb4145bc00eb6937b5f54a41170e9a5b4c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Alexander Kanavin
f111db3f71 wireless-regdb: upgrade 2023.02.13 -> 2023.05.03
(From OE-Core rev: 1eebdfba70ceaa8d73ab46c3131d022e53245eaa)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 47438402fa430499864a4b1f1a13eaac66aa21c0)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Alexander Kanavin
1752b29e7c linux-firmware: upgrade 20230404 -> 20230515
License-Update: additional firmwares

(From OE-Core rev: 8ac5ebfa83c3e1f5effca5154b771b2f2bed607d)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 64603f602d00999220fe5bafeed996ddcb56d36b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Alexander Kanavin
a6a43a90fa wget: upgrade 1.21.3 -> 1.21.4
Stable version release

Noteworthy changes in release 1.21.4 (2023-05-11)

** Document --retry-on-host-error in help text

** Increase read buffer size to 64k. This should speed up downloads on gigabit
and faster connections

** Update deprecated option '--html-extension' to '--adjust-extension' in
documentation

** Update gnulib compatibility layer.
   Fixes HSTS test failures on i686. (Thanks to Andreas Enge for ponting it out)

License-Update: copyright years

(From OE-Core rev: 024feac4827dc847ba83a64de82cef524156a9ea)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 67ec2d5bab891cb92af9ca32304a4927daf51ed0)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 4e7ec4bef86c79b4221a800ace700c58ce033de1)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Alexander Kanavin
c20aabad9c serf: upgrade 1.3.9 -> 1.3.10
Apache Serf 1.3.10 [2023-05-31, from tags/1.3.10, r1910048]
  Support for OpenSSL 3 (r1901937, ...)
  Fix issue #171: Win32: Running tests fails with "no OPENSSL_Applink" error
  Fix issue #194: Win32: Linking error when building against OpenSSL 1.1+
  Fix issue #198: OpenSSL BIO control method incorrectly handles unknown requests
  Fix issue #202: SSL tests are not passing with OpenSSL 3
  Fix error handling when reading the outgoing request body (r1804534, ...)
  Fix handling of invalid chunk lengths in the dechunk bucket (r1804005, ...)
  Fix an endless loop in the deflate bucket with truncated input (r1805301)
  Fix BIO control handlers to support BIO_CTRL_EOF (r1902208)
  Fix a CRT mismatch issue caused by using certain OpenSSL functions (r1909252)
  Build changes to support VS2017, VS2019 and VS2022 (r1712131, ...)
  Build changes to support Python 3 (r1875933)

As serf is undead, we need to reassess all the remaining patches.

(From OE-Core rev: 275c6b7ac72330e14ba55907e8494314b63a9adf)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 775cbcc876edcb6c339f342a3253f5afcf6ef163)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 17a46eee905f0ecfdbebb014533848dc7e906ec7)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Ross Burton
9113d5b4d7 tzdata: upgrade to 2023c
Drop a backport patch as it is now integrated.

(From OE-Core rev: 134bac52904722cd63fde07f5784c0cca3fbcb05)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 80d26d1da47dcd9213a7083d9493a7bce0897a57)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Soumya
df5e8bcceb libwebp: Fix CVE-2023-1999
There exists a use after free/double free in libwebp. An attacker can
use the ApplyFiltersAndEncode() function and loop through to free
best.bw and assign best = trial pointer. The second loop will then
return 0 because of an Out of memory error in VP8 encoder, the pointer
is still assigned to trial and the AddressSanitizer will attempt a double free.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2023-1999

Upstream patch:
a486d800b6

(From OE-Core rev: a5d0f8734ca643c25f0952387b38edf8ffd70525)

Signed-off-by: Soumya <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Vivek Kumbhar
aeb3b3fa07 curl: Added CVE-2023-28320 Follow-up patch
Introduced by: 3c49b405de (curl-7_9_8)
Fixed by: 13718030ad (curl-8_1_0)
Follow-up: f446258f02 (curl-8_1_0)

(From OE-Core rev: f19c20c429395c1b4c62a6e0388ef51b830871c5)

Signed-off-by: Vivek Kumbhar <vkumbhar@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Poonam Jadhav
881247de60 libx11: Fix CVE-2023-3138 for kirkstone branch
Add patch to fix CVE-2023-3138 for kirkstone branch

Link: 304a654a0d.patch

(From OE-Core rev: 5491531d4681d3df5a34ebc180e29a8bf4e09e67)

Signed-off-by: Poonam Jadhav <poonam.jadhav@kpit.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Hitendra Prajapati
56c1ffb1d3 bind : fix CVE-2023-2828 & CVE-2023-2911
Backport fixes for:
* CVE-2023-2828 - Upstream-Status: Backport from e9d5219fca
* CVE-2023-2911 - Upstream-Status: Backport from 240caa32b9 && ff5bacf17c

(From OE-Core rev: 08810d3fe6988ea821805eca16105b4632335654)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Vijay Anusuri
4f488ca49e sqlite3: CVE-2023-36191 CLI fault on missing -nonce
Upstream-Status: Backport [https://sqlite.org/src/info/cd24178bbaad4a1d]

(From OE-Core rev: 663713b2f95dee1e70f8921ece23b21d84d93805)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Soumya
80ecd63cc8 perl: Fix CVE-2023-31486
HTTP::Tiny before 0.083, a Perl core module since 5.13.9 and available
standalone on CPAN, has an insecure default TLS configuration where
users must opt in to verify certificates.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-31486

Upstream patches:
77f557ef84
a22785783b

(From OE-Core rev: 5819c839e1de92ab7669a0d4997886d0306c4cc1)

Signed-off-by: Soumya <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-21 06:27:34 -10:00
Ross Burton
471318ae2f cve-update-nvd2-native: actually use API keys
There were vestigal remains of API key support which could be removed,
but as using an API key - in theory - gives the user larger rate limits
it's probably wise to expose it.

If the user has an API key, then set NVDCVE_API_KEY.

(From OE-Core rev: 200c2783b3f8546f561382fff6bd5268680d403a)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a542de684282bfec79f24ae2f1a2027ffde319d8)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-13 06:42:46 -10:00
Ross Burton
8a14072295 cve-update-nvd2-native: log a little more
Add a note of what range we're fetching, and use bb.note() instead of
debug() as messages about retrying shouldn't really be considered debug
logging.

(From OE-Core rev: be409f17e64dac2c6fa2cafba73c2084c68c59bf)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b64a869b9c5e1d504f1011da16b5c5ff721afbf0)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-13 06:42:46 -10:00
Peter Marko
c5558d6e86 cve-update-nvd2-native: increase retry count
Current 503 errors seem to last several seconds.
In most cases there are two errors and third request succeeds.
However sometimes the outage takes more than time needed
for two retries and third one also fails.

Extend retry count from 3 to 5 to improve the probablity
that the fetcher succeeds.

(From OE-Core rev: eceeba61b5da6d81f0677365f956464f1e5f1d84)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f4d118af2360cff7f234102fd5e4b65a6f4146a6)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-13 06:42:46 -10:00
Peter Marko
d6bf614ab4 cve-update-nvd2-native: retry all errors and sleep between retries
Last couple days it is not possible to update NVD DB as servers
are returning lot of errors.
Mostly "HTTP Error 503: Service Unavailable" is observed but
sporadially also some others.

Retrying helps in most cases, so extend retries to all errors.

Additionally add sleep which is recommended by NVD between requests.
These retries are already implemented between successful requests,
but giving servers time between failed ones is important, too.

(From OE-Core rev: c061bcd54fc8b62ea9a005f422a17ca46eac68c2)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 88dad8f198baa80af5ab576498f4df6ed639d551)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-13 06:42:46 -10:00
Peter Marko
bd4b28bb37 cve-update-nvd2-native: fix cvssV3 metrics
After upgrade to soon-to-be-released kirkstone 4.0.11 CVE annotations got broken.
Anything which has only cvssV3 does not resolve properly.
Fix the API fields used to extract it.

i0.0 score is now at level of NVD DB 1.1.
All CVEs with UNKNOWN vector are not present in NVD DB 1.1.

NVD API 1.1:
sqlite> select vector, count(vector) from nvd group by vector;
ADJACENT_NETWORK|4776
LOCAL|32146
NETWORK|167746
PHYSICAL|185
sqlite> select scorev3, count(scorev3) from nvd group by scorev3;
0.0|73331
1.8|7
1.9|3
...

NVD API 2.0 (broken):
sqlite> select vector, count(vector) from nvd group by vector;
ADJACENT_NETWORK|4587
LOCAL|26273
NETWORK|150421
UNKNOWN|24644
sqlite> select scorev3, count(scorev3) from nvd group by scorev3;
0.0|205925

NVD API 2.0 (fixed):
sqlite> select vector, count(vector) from nvd group by vector;
ADJACENT_NETWORK|5090
LOCAL|32322
NETWORK|168004
PHYSICAL|213
UNKNOWN|511
sqlite> select scorev3, count(scorev3) from nvd group by scorev3;
0.0|73841
1.8|7
1.9|3
...

(From OE-Core rev: c00b89c2a5de8ce59b759ed8bf482942458421ff)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 61a5857efdcc0f49c69c0deb24fce99007aeef19)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-13 06:42:46 -10:00
Ross Burton
00e0d5e515 cve-update-nvd2-native: use exact times, don't truncate
When requesting updates in a specific range, use the actual current time
and database mtime instead of truncating to midnight, and explicitly set
the timezone to UTC so that NIST don't treat the timestamps as _their_ local
time when they're _our_ local time.

(From OE-Core rev: 91243ad474be00e55aa99355edef44f2fe2311f1)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9aa0ec37f5f74252588d2494a71c71a7d8e68df9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-13 06:42:46 -10:00
Ross Burton
62727653aa cve-update-nvd2-native: handle all configuration nodes, not just first
Some CVEs, such as CVE-2013-6629, list multiple configurations which are
vulnerable. The current JSON parser only considers the first
configuration.

Instead, consider every configuration. We don't yet handle the AND/OR
logical operators, but this is a step in the right direction.

(From OE-Core rev: 7614e00b9491e5d4d6df5492f72613a56ab390d7)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e1bf4f6dd686055fe9a8bdcc3f739eac2807bae0)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-13 06:42:46 -10:00
Richard Purdie
fdd6898464 strace: Update patches/tests with upstream fixes
Replace the sockopt disable patch with a fix from upstream

(From OE-Core rev: cef730284b8616ba07c1b062c992c36af730580e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ac921989991c319ecad01bec37c4ccaa15a7b58f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit c1beb73526e3ade75bd6dae5f9310107c50f1226)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Richard Purdie
97654445c6 strace: Merge two similar patches
Both patches change the same paths to gawk, merge them together
as we only need one patch for this.

(From OE-Core rev: 81af8c6fdc6f0b6617b7258c9b3e2e26a76db5c8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 79c0b18e29cad337640860f57683f0a170f6daab)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 6080138fd0c27db7029b5a76e69b8dc241ad8dc3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Richard Purdie
48373d750c strace: Disable failing test
This test is failing for uncertain reasons. We have reported upstream, disable
it until we can work out why this happened. The point it started failing is
unclear due to other test framework issues.

(From OE-Core rev: fc32e725a0c73772a2ad4e31e1aa1d61f72f9da1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2e9165a854c7b83f163479e9dbd3cb183a9d71f5)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Alexander Kanavin
484171e42c grub: submit determinism.patch upstream
(From OE-Core rev: 846d8097fed9498fab7120ed61a962ff2c15746a)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 61947762e410c685f667e0af6440fb8a33cd6777)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Charlie Wu
defeae880f devtool: Fix the wrong variable in srcuri_entry
devtool crashes when running "update-recipe" and append changes on the recipe.
"$ devtool update-recipe -a <layer> <recipe>"
Traceback (most recent call last):
...
File "/ovss/ovss_quanta/poky/scripts/lib/devtool/standard.py", line 1636, in srcuri_entry
    return 'file://%s%s' % (basepath, paramstr)
                            ^^^^^^^^
NameError: cannot access free variable 'basepath' where it is not associated with a value in enclosing scope

The input variable 'fname' should have the same meaning as the variable 'basepath'.
Modify the 'fname' to 'basepath' and solve the issue.

(From OE-Core rev: 1487bdda6b443480e9ce45d8b8527ad61c2a50a4)

Signed-off-by: Charlie Wu <chiachiwu@google.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit c3231756bbc2cb5641204414ad3670d7f8607ed3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Mikko Rapeli
c7bc5446a6 useradd-staticids.bbclass: improve error message
Current error message is difficult to read:

ERROR: Nothing PROVIDES 'image'
trs-image was skipped: image - image: normal username test does not have a static ID defined. Add test to one of these files

It's not clear that first "image" is recipe name, second "image" is
binary package name and that "test" is the user account which does not
have a static ID defined. Improve the error message so that these are
more explicit. Now the error message looks like:

image was skipped: Recipe image, package image: normal username "test" does not have a static ID defined.

(From OE-Core rev: 572c507736b2fcc31f7f13cb3da0d5be361838f5)

Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 07898218f3908a83e07178b6530dfa48d55d4ec2)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Khem Raj
d2a1c3e5d7 babeltrace2: Always use BFD linker when building tests with ld-is-lld distro feature
lld results in textrels in some .so used in tests, fixes

babeltrace2-ptest: ELF binary /usr/lib/babeltrace2/ptest/tests/lib/test-plugin-plugins/plugin-minimal.so has relocations in .text
babeltrace2-ptest: ELF binary /usr/lib/babeltrace2/ptest/tests/lib/test-plugin-plugins/plugin-sfs.so has relocations in .text [textrel]
ERROR: babeltrace2-2.0.5-r0 do_package_qa: QA Issue: babeltrace2: ELF binary /usr/lib/babeltrace2/plugins/babeltrace-plugin-ctf.so has relocations in .text
babeltrace2: ELF binary /usr/lib/babeltrace2/plugins/babeltrace-plugin-utils.so has relocations in .text
babeltrace2: ELF binary /usr/lib/babeltrace2/plugins/babeltrace-plugin-text.so has relocations in .text [textrel]

(From OE-Core rev: 1c02416041498c649c517a9933ab736fca2ceae8)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 18d443b53a0d76102fbbc1088fbcb3f8087a2b1b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Alexander Kanavin
3986d5c2e1 maintainers.inc: unassign Ricardo Neri from ovmf
We were not able to get a response about availability over email, and so the recipe
has to be unassigned.

(From OE-Core rev: 8d2e96c3a611aba63aa9a51f6b350ea8c9654e06)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 56f1af6d5b3019dccbc27bb0a9692a5f1a32f87b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Alexander Kanavin
c64dc188e8 maintainers.inc: unassign Alistair Francis from opensbi
We were not able to get a response about availability over email, and so the recipe
has to be unassigned.

(From OE-Core rev: 61e64e7af709dd03dd4018c69a752f2eadc5372e)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 60eda3dcbf96b5982a0e282fd0c3c13b0b4d7787)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Alexander Kanavin
0dce15ad65 maintainers.inc: unassign Adrian Bunk from wireless-regdb
We were not able to get a response about availability over email, and so the recipe
has to be unassigned.

(From OE-Core rev: 191ab08c035f1811af932775a767b5e83a95e35b)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3beb88060be9484cfe75dfa60f041b0b32214978)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Fabien Mahot
00fabc3939 oeqa/selftest/bbtests: add non-existent prefile/postfile tests
Fixes [YOCTO #10725]

(From OE-Core rev: ef732d6dd735ad06c229eb4e2a4aca295490ec53)

Signed-off-by: Fabien Mahot <fabien.mahot@smile.fr>
Reviewed-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b0c33655fad5b2e7d96a45b6210527dfb766797b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Alexander Kanavin
bb2ce4dcf6 scripts/runqemu: allocate unfsd ports in a way that doesn't race or clash with unrelated processes
There is already a neat check_free_port() function for finding an available port
atomically, so use that and make two additional tweaks:

- no need to allocate two separate ports; per unfsd documentation they can be the same

- move lockfile release until after unfsd has been shut down and the port(s) used has been freed

[YOCTO #15077]

(From OE-Core rev: 343510b33650c88367f95e8d8322fae92ae901ca)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit dee96e82fb04ea99ecd6c25513c7bd368df3bd37)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Alexander Kanavin
e69c311ed6 scripts/runqemu: split lock dir creation into a reusable function
(From OE-Core rev: 2ada5f426e71e3873ba8c47dd925d8cfc103524b)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 004d6bcb067ecf1d796801fa43a98820c4efd3c7)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
BELOUARGA Mohamed
983548705a meta: lib: oe: npm_registry: Add more safe caracters
NPM registry cache should support caracaters like '(' and ')'
Explanation: NPM packages can contains these caracters like : @(._.)/execute

(From OE-Core rev: d3c1638077d4acbd61e7770c8e1d299ea33df638)

Signed-off-by: BELOUARGA Mohamed <m.belouarga@technologyandstrategy.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 6110d9e24e43e286781afd1b3634a4ad1a2050d0)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Frieder Paape
b954f15d66 image_types: Fix reproducible builds for initramfs and UKI img
I've encountered issues reproducing initramfs and UKI image builds,
which will be fixed with this patch.

1. initramfs
There's a symbolic link to /sbin/init, which is appended to the cpio archive after creation.
The links timestamp needs to be static and the cpio append command needs the '--reproducible' flag to produce deterministic outcomes.

2. Unified Kernel Image
'--preserve-dates' is required for a static 'Time/Date' entry.
I've added '--enable-deterministic-archives' although in my case this
didn't change anything.

(From OE-Core rev: 0d8890f7c1fbea5036acefa3031dcd442b316725)

Signed-off-by: Frieder Paape <frieder@konvera.io>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fd027729bafb4e085ba0949e38e724f3a8cad102)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Richard Purdie
6646aadd71 v86d: Improve kernel dependency
Working with enabling SPDX, an issue was observerd where v86d wasn't rebuilding
when the kernel was changed from linux-yocto to linux-yocto-rt.

This is due to the code in sstatesig.py which was seeing the RRECOMMENDS on a
kernel module and ignoring the DEPENDS. The v86d is technically a kernel module
since it uses kernel header files.

There are two ways to address this, we could inherit the module-base class and
the dependency code does the correct thing. It appears the code doesn't look into
STAGING_KERNEL_DIR though and doesn't use the kernel sources. We can therefore drop
the DEPENDS and the code will the do the correct thing.

(From OE-Core rev: b842b8b51e0819eebf1fb3a2359b8c06863e553a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 37ccd11cb0b89416b8e23160445186269b6c0c8a)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Bruce Ashfield
6f363c80ae linux-yocto/5.15: cfg: fix DECNET configuration warning
-stable merged the DECNET removal to 5.15, so we integrate
the following kernel-cache commit to fix the kernel configuration
audit warning:

    b647d9611cb base: drop CONFIG_DECNET

(From OE-Core rev: 4c063286ab115abf3d15e4713ea9bcd4f5fb1ab2)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 06ef70ac1fa8201c5b46050e098ebea3b1423f9f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Bruce Ashfield
d95abdb246 linux-yocto/5.15: update to v5.15.118
Updating  to the latest korg -stable release that comprises
the following commits:

    f67653019430 Linux 5.15.118
    e5bf1f7d1fc8 nilfs2: reject devices with insufficient block count
    2bc9231afc64 mmc: block: ensure error propagation for non-blk
    4b7b50d4eb1a of: overlay: add entry to of_overlay_action_name[]
    84770cc54eff neighbour: delete neigh_lookup_nodev as not used
    41806518254c net: Remove DECnet leftovers from flow.h.
    4c39a2414a23 net: Remove unused inline function dst_hold_and_use()
    bb76281b6e61 neighbour: Remove unused inline function neigh_key_eq16()
    67866cad7624 rcu/kvfree: Avoid freeing new kfree_rcu() memory after old grace period
    c91ed3a5c2ab cgroup: always put cset in cgroup_css_set_put_fork
    33b801be2de1 afs: Fix vlserver probe RTT handling
    f824bcc3e14b selftests/ptp: Fix timestamp printf format for PTP_SYS_OFFSET
    2077c7dbfe29 net: tipc: resize nlattr array to correct size
    f734e16ee17f dm: don't lock fs when the map is NULL during suspend or resume
    8a8179f6a345 net: lapbether: only support ethernet devices
    052417e8b3ac net/sched: cls_api: Fix lockup on flushing explicitly created chain
    c0cb9d453fd1 ext4: drop the call to ext4_error() from ext4_get_group_info()
    eb4ccc102d5f cifs: fix lease break oops in xfstest generic/098
    1cb181271eab drm/nouveau: add nv_encoder pointer check for NULL
    c79dccc263db drm/nouveau/dp: check for NULL nv_connector->native_mode
    909b7f7497cc drm/nouveau: don't detect DSM for non-NVIDIA device
    10e1e07bdea4 igb: fix nvm.ops.read() error handling
    fe03fd373ca6 igc: Clean the TX buffer and TX descriptor ring
    032b8cbeb19c sctp: fix an error code in sctp_sf_eat_auth()
    981e78781a96 ipvlan: fix bound dev checking for IPv6 l3s mode
    3e76522d1a6d net: ethtool: correct MAX attribute value for stats
    18512de74454 IB/isert: Fix incorrect release of isert connection
    63e9e7198374 IB/isert: Fix possible list corruption in CMA handler
    29ff057c0a50 IB/isert: Fix dead lock in ib_isert
    fced7aaaa38f IB/uverbs: Fix to consider event queue closing also upon non-blocking mode
    cd44977ecc94 RDMA/cma: Always set static rate to 0 for RoCE
    5a9dee176b4b RDMA/mlx5: Initiate dropless RQ for RAW Ethernet functions
    35828874aa9f octeontx2-af: fix lbk link credits on cn10k
    7506e77357da octeontx2-af: fixed resource availability check
    4dd914b9e2f9 iavf: remove mask from iavf_irq_enable_queues()
    e6342cd13d39 RDMA/rxe: Fix the use-before-initialization error of resp_pkts
    466f25fd2d9b RDMA/rxe: Removed unused name from rxe_task struct
    13d087b3587b RDMA/rxe: Remove the unused variable obj
    0e1098d72fa4 net/sched: cls_u32: Fix reference counter leak leading to overflow
    d56661cd8d55 net/sched: act_pedit: Parse L3 Header for L4 offset
    17b330b78244 net/sched: act_pedit: remove extra check for key type
    219b8e98387f net/sched: simplify tcf_pedit_act
    688e6db59661 ping6: Fix send to link-local addresses with VRF.
    471a4c08e30e net: enetc: correct the indexes of highest and 2nd highest TCs
    44ebe988cb38 netfilter: nf_tables: incorrect error path handling with NFT_MSG_NEWRULE
    133b73d85343 netfilter: nfnetlink: skip error delivery on batch in case of ENOMEM
    e4188f8b8134 netfilter: nf_tables: integrate pipapo into commit protocol
    4da9d4e74033 spi: fsl-dspi: avoid SCK glitches with continuous transfers
    08acd41bb15a RDMA/rxe: Fix packet length checks
    01f6f867adc7 RDMA/rtrs: Fix rxe_dealloc_pd warning
    01bbead3098b RDMA/rtrs: Fix the last iu->buf leak in err path
    1938f080a183 usb: dwc3: gadget: Reset num TRBs before giving back the request
    ed0295504905 serial: lantiq: add missing interrupt ack
    235845b576c5 USB: serial: option: add Quectel EM061KGL series
    e05e9cca7797 thunderbolt: Mask ring interrupt on Intel hardware as well
    0bd227610c83 thunderbolt: dma_test: Use correct value for absent rings when creating paths
    2a974abc0976 Remove DECnet support from kernel
    28010d3a9a22 ALSA: hda/realtek: Add a quirk for Compaq N14JP6
    203a01ae5732 drm/amdgpu: add missing radeon secondary PCI ID
    b1b64a76b775 drm/amd/display: edp do not add non-edid timings
    98c8c0f2b3a5 net: usb: qmi_wwan: add support for Compal RXM-G1
    fd81222d1a69 RDMA/uverbs: Restrict usage of privileged QKEYs
    14c30c2439dc nouveau: fix client work fence deletion race
    f4c5eebb37a2 dm thin metadata: check fail_io before using data_sm
    ee09c0b1b0f4 ALSA: usb-audio: Add quirk flag for HEM devices to enable native DSD playback
    953cc0bf2d5b powerpc/purgatory: remove PGO flags
    faf45f2c5e62 x86/purgatory: remove PGO flags
    d38e051ec6fd kexec: support purgatories with .text.hot sections
    4357336192ed nilfs2: fix possible out-of-bounds segment allocation in resize ioctl
    74ea184af91a nilfs2: fix incomplete buffer cleanup in nilfs_btnode_abort_change_key()
    941e7452dfc8 nios2: dts: Fix tse_mac "max-frame-size" property
    8a8efde4a735 ocfs2: check new file size on fallocate call
    559b7a0d9f0d ocfs2: fix use-after-free when unmounting read-only filesystem
    8262a9f3b801 epoll: ep_autoremove_wake_function should use list_del_init_careful
    c0a242295569 wifi: cfg80211: fix double lock bug in reg_wdev_chan_valid()
    1a65bac4edf9 wifi: cfg80211: fix locking in regulatory disconnect
    0e388fce7aec io_uring: hold uring mutex around poll removal
    27825a6da78b irqchip/gic: Correctly validate OF quirk descriptors
    f50018e2dd87 NVMe: Add MAXIO 1602 to bogus nid list.
    4204b539ca73 drm:amd:amdgpu: Fix missing buffer object unlock in failure path
    7cb02d5dc2e2 xen/blkfront: Only check REQ_FUA for writes
    a75928bb929a ASoC: dwc: move DMA init to snd_soc_dai_driver probe()
    37f7864c1791 mips: Move initrd_start check after initrd address sanitisation.
    0d6e6542946d MIPS: Alchemy: fix dbdma2
    1907b6148f86 MIPS: unhide PATA_PLATFORM
    8f50d247b5dc parisc: Flush gatt writes and adjust gatt mask in parisc_agp_mask_memory()
    717368977b8e parisc: Improve cache flushing for PCXL in arch_sync_dma_for_cpu()
    7e85809d2782 ASoC: soc-pcm: test if a BE can be prepared
    68086376a1d2 btrfs: handle memory allocation failure in btrfs_csum_one_bio
    39ea94952625 btrfs: scrub: try harder to mark RAID56 block groups read-only
    9df872ec4a22 power: supply: Fix logic checking if system is running from battery
    42e6a4a1e085 irqchip/gic-v3: Disable pseudo NMIs on Mediatek devices w/ firmware issues
    2105f2fa5791 regulator: Fix error checking for debugfs_create_dir
    91b3d6aa0722 platform/x86: asus-wmi: Ignore WMI events with codes 0x7B, 0xC0
    c845ec79c3cf power: supply: Ratelimit no data debug output
    19d09d31dae5 tools: gpio: fix debounce_period_us output of lsgpio
    c11bb961ca4d ARM: dts: vexpress: add missing cache properties
    36fdd1d5b40e power: supply: bq27xxx: Use mod_delayed_work() instead of cancel() + schedule()
    3b86c54e6ebe power: supply: sc27xx: Fix external_power_changed race
    200d8ad44e04 power: supply: ab8500: Fix external_power_changed race
    48992b928785 of: overlay: Fix missing of_node_put() in error case of init_overlay_changeset()
    282f0c63cf53 of: overlay: rework overlay apply and remove kfree()s
    5f306cbfa52b of: overlay: rename variables to be consistent
    1cc40dccad76 drm/amdgpu: fix Null pointer dereference error in amdgpu_device_recover_vram
    7cf3bf3cc033 ksmbd: fix slab-out-of-bounds read in smb2_handle_negotiate
    de091a6e1ff0 test_firmware: fix a memory leak with reqs buffer
    bfb0b366e8ec test_firmware: prevent race conditions by a correct implementation of locking
    4b5511aa0a5e test_firmware: Use kstrtobool() instead of strtobool()

(From OE-Core rev: e58bcc7938c16317d6d3754874c76f29c4f90515)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit ec3fd718ecc881ee3410a0b6434922993368ee6d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Bruce Ashfield
b747eff6a6 linux-yocto/5.15: update to v5.15.117
Updating  to the latest korg -stable release that comprises
the following commits:

    471e639e59d1 Linux 5.15.117
    ef876dd25830 Revert "staging: rtl8192e: Replace macro RTL_PCI_DEVICE with PCI_DEVICE"
    6cfe9ddb6aa6 xfs: verify buffer contents when we skip log replay
    b5a52009d90e Revert "debugobject: Ensure pool refill (again)"
    3cc6805547d5 ext4: only check dquot_initialize_needed() when debugging
    86ebb5b5344d Revert "ext4: don't clear SB_RDONLY when remounting r/w until quota is re-enabled"
    9945284195a9 vhost_vdpa: support PACKED when setting-getting vring_base
    17882a3556ce vhost: support PACKED when setting-getting vring_base
    d18688ff423a vduse: avoid empty string for dev name
    952d1e4cbc26 riscv: fix kprobe __user string arg print fault issue
    62958e78b757 eeprom: at24: also select REGMAP
    66b99b3bd7b1 i2c: sprd: Delete i2c adapter in .remove's error path
    58648a533a89 firmware: arm_ffa: Set handle field to zero in memory descriptor
    e1ab7ed7925d i2c: mv64xxx: Fix reading invalid status value in atomic mode
    003421fc430c arm64: dts: imx8mn-beacon: Fix SPI CS pinmux
    2a4f0ad59d3d ASoC: mediatek: mt8195: fix use-after-free in driver remove path
    cc4a2c0b1efa ASoC: mediatek: mt8195-afe-pcm: Convert to platform remove callback returning void
    036bba96bf5e arm64: dts: imx8-ss-dma: assign default clock rate for lpuarts
    d97c8306a9af arm64: dts: imx8qm-mek: correct GPIOs for USDHC2 CD and WP signals
    2212344664fb arm64: dts: qcom: sc7180-lite: Fix SDRAM freq for misidentified sc7180-lite boards
    c589ba11da5a ASoC: codecs: wsa881x: do not set can_multi_write flag
    980011869a2a ARM: dts: at91: sama7g5ek: fix debounce delay property for shdwc
    ac817e26f9df usb: usbfs: Use consistent mmap functions
    35d9f521bcc8 usb: usbfs: Enforce page requirements for mmap
    64e4a3b25338 pinctrl: meson-axg: add missing GPIOA_18 gpio group
    4124536ad924 rbd: get snapshot context after exclusive lock is ensured to be held
    1af3b16b6240 rbd: move RBD_OBJ_FLAG_COPYUP_ENABLED flag setting
    2326488a9648 tee: amdtee: Add return_origin to 'struct tee_cmd_load_ta'
    0a8e5a6166dc Bluetooth: hci_qca: fix debugfs registration
    2a7e918e2280 Bluetooth: Fix use-after-free in hci_remove_ltk/hci_remove_irk
    36482bf16fde s390/dasd: Use correct lock while counting channel queue length
    fd03b5575c8a ceph: fix use-after-free bug for inodes when flushing capsnaps
    e022640b1fee can: j1939: avoid possible use-after-free when j1939_can_rx_register fails
    67eb5a5153ab can: j1939: change j1939_netdev_lock type to mutex
    e2a6db7cab74 can: j1939: j1939_sk_send_loop_abort(): improved error queue handling in J1939 Socket
    4ce28f3ab368 drm/amd/pm: Fix power context allocation in SMU13
    2984dbacf68e drm/amdgpu: fix xclk freq on CHIP_STONEY
    77558dd16502 drm/amd/pm: conditionally disable pcie lane switching for some sienna_cichlid SKUs
    4b1bf594604c drm/i915/gt: Use the correct error value when kernel_context() fails
    17c01feed6ba ALSA: hda/realtek: Add Lenovo P3 Tower platform
    800e4c5b36bb ALSA: hda/realtek: Add a quirk for HP Slim Desktop S01
    9dab648ccd01 ALSA: hda/realtek: Add quirk for Clevo NS50AU
    cd67fdd3cc1b Input: fix open count when closing inhibited device
    2545d1b4d14f Input: psmouse - fix OOB access in Elantech protocol
    ed263c550fbd Input: xpad - delete a Razer DeathAdder mouse VID/PID entry
    5db4229b1427 batman-adv: Broken sync while rescheduling delayed work
    aedad6c7fbaf bnxt_en: Implement .set_port / .unset_port UDP tunnel callbacks
    a94401de2bc2 bnxt_en: Query default VLAN before VNIC setup on a VF
    cf0a3e94674d bnxt_en: Don't issue AP reset during ethtool's reset operation
    40d074f7e490 lib: cpu_rmap: Fix potential use-after-free in irq_cpu_rmap_release()
    b6b1799c37c3 bpf: Add extra path pointer check to d_path helper
    a242c6a92ce6 net: sched: fix possible refcount leak in tc_chain_tmplt_add()
    d7c69f7b8383 net: sched: act_police: fix sparse errors in tcf_police_dump()
    e7e0f9497421 net: sched: move rtm_tca_policy declaration to include file
    c5e0a2f49c5a drm/i915/selftests: Add some missing error propagation
    234f0337b439 drm/i915/selftests: Stop using kthread_stop()
    1f942073e164 drm/i915/selftests: Increase timeout for live_parallel_switch
    3604ab1519ef rfs: annotate lockless accesses to RFS sock flow table
    2501f5a95511 rfs: annotate lockless accesses to sk->sk_rxhash
    dd5296e3b21b ipv6: rpl: Fix Route of Death.
    eab6cda0bfd7 netfilter: ipset: Add schedule point in call_ad().
    7b053b2e8c96 netfilter: conntrack: fix NULL pointer dereference in nf_confirm_cthelper
    34d67ecf3dcc selftests/bpf: Fix sockopt_sk selftest
    01363bf8efe5 selftests/bpf: Verify optval=NULL case
    7e74801e1bfb wifi: cfg80211: fix locking in sched scan stop work
    6c25c96a4634 qed/qede: Fix scheduling while atomic
    668c3f9514f0 Bluetooth: L2CAP: Add missing checks for invalid DCID
    53c056ccda02 Bluetooth: Fix l2cap_disconnect_req deadlock
    c16e79e27e90 drm/i915: Use 18 fast wake AUX sync len
    567873901a92 drm/i915: Explain the magic numbers for AUX SYNC/precharge length
    dd40bcc357fe net/sched: fq_pie: ensure reasonable TCA_FQ_PIE_QUANTUM values
    9d66ffd8ac9e net: enetc: correct the statistics of rx bytes
    8db1acf2b131 net/smc: Avoid to access invalid RMBs' MRs in SMCRv1 ADD LINK CONT
    9b001a7d1e1a net/ipv6: fix bool/int mismatch for skip_notify_on_dev_down
    c85bee3a4ae1 bpf: Fix UAF in task local storage
    54c8aea7e888 net: dsa: lan9303: allow vid != 0 in port_fdb_{add|del} methods
    ab0eca3f5455 neighbour: fix unaligned access to pneigh_entry
    bdcc42186dd9 wifi: mt76: mt7615: fix possible race in mt7615_mac_sta_poll
    7b0c76354a6a afs: Fix setting of mtime when creating a file/dir/symlink
    8ef72e783065 spi: qup: Request DMA before enabling clocks
    f0e84db82ed3 platform/surface: aggregator: Allow completion work-items to be executed in parallel
    547da248321a blk-iocost: avoid 64-bit division in ioc_timer_fn
    3b07425c3dea f2fs: fix iostat lock protection
    b85fb01a761a bonding (gcc13): synchronize bond_{a,t}lb_xmit() types
    0dfc81a283d4 i40e: fix build warning in ice_fltr_add_mac_to_list()
    2e12542c19c2 i40e: use int for i40e_status
    81f552df075f i40e: Remove string printing for i40e_status
    d13f56d4b265 sfc (gcc13): synchronize ef100_enqueue_skb()'s return type
    a9ad05e35412 remove the sx8 block driver
    c7cf7760b9b5 gcc-plugins: Reorganize gimple includes for GCC 13
    8d00b4e329b7 ata: ahci: fix enum constants for gcc-13

(From OE-Core rev: 79a6eb479bee6caabf22e3ed9e8b2793bdde836c)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit e2c1d5814c659ffea6d1c1c658890a7a6fdb779a)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Bruce Ashfield
ff42eb0012 linux-yocto/5.15: update to v5.15.116
Updating  to the latest korg -stable release that comprises
the following commits:

    7349e40704a0 Linux 5.15.116
    62886f17d3e6 RDMA/irdma: Do not generate SW completions for NOPs
    14d148401c52 RDMA/irdma: Fix drain SQ hang with no completion
    e88b19b252db ARM: defconfig: drop CONFIG_DRM_RCAR_LVDS
    a1c76e2907c1 ext4: enable the lazy init thread when remounting read/write
    76a7dfc9cc02 selftests: mptcp: join: skip if MPTCP is not supported
    807114223d3e selftests: mptcp: simult flows: skip if MPTCP is not supported
    9319c8b75ee6 selftests: mptcp: diag: skip if MPTCP is not supported
    c971ca2b9d8d drm/amdgpu/gfx10: Disable gfxoff before disabling powergating.
    7a20262fa9ee scsi: dpt_i2o: Do not process completions with invalid addresses
    daeab37ddb6f scsi: dpt_i2o: Remove broken pass-through ioctl (I2OUSERCMD)
    78a79c625265 drm/rcar: stop using 'imply' for dependencies
    4c3dda6b7cfd tpm, tpm_tis: Request threaded interrupt handler
    19750d7b575a regmap: Account for register length when chunking
    6cb7e7579a3d KEYS: asymmetric: Copy sig and digest in public_key_verify_signature()
    d56c2ab32594 ksmbd: fix incorrect AllocationSize set in smb2_get_info
    380b47932e76 ksmbd: fix credit count leakage
    8a870c07a1df KVM: x86: Account fastpath-only VM-Exits in vCPU stats
    808ed7d86ed9 test_firmware: fix the memory leak of the allocated firmware buffer
    4b7a35eb8a18 serial: 8250_tegra: Fix an error handling path in tegra_uart_probe()
    fc8ef0714161 fbcon: Fix null-ptr-deref in soft_cursor
    a0790a7739a2 ext4: add lockdep annotations for i_data_sem for ea_inode's
    a8c3024c3e46 ext4: disallow ea_inodes with extended attributes
    39a66e7a2987 ext4: set lockdep subclass for the ea_inode in ext4_xattr_inode_cache_find()
    bdbfbb7d5057 ext4: add EA_INODE checking to ext4_iget()
    efa3fe247d6b selftests: mptcp: sockopt: skip if MPTCP is not supported
    95ad73b62765 selftests: mptcp: pm nl: skip if MPTCP is not supported
    30bacfd8caf6 selftests: mptcp: connect: skip if MPTCP is not supported
    2712a1ba0597 tracing/probe: trace_probe_primary_from_call(): checked list_first_entry
    8a716b28b933 selinux: don't use make's grouped targets feature yet
    11a8e7fd7231 block: fix revalidate performance regression
    538d8504859f usb: cdns3: fix NCM gadget RX speed 20x slow than expection at iMX8QM
    57a2fd7b2c75 usb: cdns3: allocate TX FIFO size according to composite EP number
    d42d869b2cf4 iommu/amd: Fix domain flush size when syncing iotlb
    cb21384372d1 powerpc/iommu: Limit number of TCEs to 512 for H_STUFF_TCE hcall
    f257c1a6cc86 btrfs: fix csum_tree_block page iteration to avoid tripping on -Werror=array-bounds
    292806cfe43d tty: serial: fsl_lpuart: use UARTCTRL_TXINV to send break instead of UARTCTRL_SBK
    3fda903511f3 mmc: pwrseq: sd8787: Fix WILC CHIP_EN and RESETN toggling order
    dade1f4a379d mmc: vub300: fix invalid response handling
    3eb4590bc37c block/blk-iocost (gcc13): keep large values in a new enum
    43124187fe3a ath6kl: Use struct_group() to avoid size-mismatched casting
    43f4aca98bf2 x86/boot: Wrap literal addresses in absolute_pointer()
    3cfd7f042e67 drm/amd/pm: reverse mclk and fclk clocks levels for renoir
    7e0c25b39065 drm/amd/pm: reverse mclk and fclk clocks levels for yellow carp
    fce05ec3deb5 drm/amd/pm: reverse mclk and fclk clocks levels for vangogh
    b0dda610b42c ata: libata-scsi: Use correct device no in ata_find_dev()
    57f4555bdfa5 scsi: stex: Fix gcc 13 warnings
    6f675380db4f misc: fastrpc: reject new invocations during device removal
    cebe84b9c02e misc: fastrpc: return -EPIPE to invocations on device removal
    d3103fc0d191 md/raid5: fix miscalculation of 'end_sector' in raid5_read_one_chunk()
    599e19202be2 usb: gadget: f_fs: Add unbind event before functionfs_unbind
    c762eafe7949 dt-bindings: usb: snps,dwc3: Fix "snps,hsphy_interface" type
    7099a87cf5ee net: usb: qmi_wwan: Set DTR quirk for BroadMobi BM818
    16bd13e701c0 iio: dac: build ad5758 driver when AD5758 is selected
    b6622c1fd233 iio: adc: ad7192: Change "shorted" channels to differential
    aeec28d83865 iio: dac: mcp4725: Fix i2c_master_send() return value handling
    23c6a184c2b8 iio: adc: ad_sigma_delta: Fix IRQ issue by setting IRQ_DISABLE_UNLAZY flag
    4349ee3deef9 iio: light: vcnl4035: fixed chip ID check
    db633585e93b dt-bindings: iio: adc: renesas,rcar-gyroadc: Fix adi,ad7476 compatible value
    6bd3d6305b6a iio: imu: inv_icm42600: fix timestamp reset
    536b4ffa93fa HID: wacom: avoid integer overflow in wacom_intuos_inout()
    cfa747cc65ca HID: google: add jewel USB id
    11bc983e4393 iio: adc: mxs-lradc: fix the order of two cleanup operations
    a5461c3134ce iio: accel: st_accel: Fix invalid mount_matrix on devices without ACPI _ONT method
    6a7d946733ea media: uvcvideo: Don't expose unsupported formats to userspace
    6dd02a7bff9d mailbox: mailbox-test: fix a locking issue in mbox_test_message_write()
    0f3c55c7d62c nvme-pci: Add quirk for Teamgroup MP33 SSD
    c9079eb6f1cf drm/amdgpu: skip disabling fence driver src_irqs when device is unplugged
    4238ea044eb2 atm: hide unused procfs functions
    5d4c31d93973 drm/msm: Be more shouty if per-process pgtables aren't working
    825cc70fbf2f ALSA: oss: avoid missing-prototype warnings
    a79da1659cdc nvme-multipath: don't call blk_mark_disk_dead in nvme_mpath_remove_disk
    9a195b991709 netfilter: conntrack: define variables exp_nat_nla_policy and any_addr with CONFIG_NF_NAT
    82f505878f0a wifi: b43: fix incorrect __packed annotation
    ab62fc176eac scsi: core: Decrease scsi_device's iorequest_cnt if dispatch failed
    e04de12881ca wifi: mac80211: simplify chanctx allocation
    24dc97e135e8 arm64: vdso: Pass (void *) to virt_to_page()
    2944b9f0fdcf arm64/mm: mark private VM_FAULT_X defines as vm_fault_t
    39d84ddd9ebc ARM: dts: stm32: add pin map for CAN controller on stm32f7
    b2f00acd5369 wifi: rtl8xxxu: fix authentication timeout due to incorrect RCR value
    ce135055be33 ACPI: resource: Add IRQ override quirk for LG UltraPC 17U70P
    66f05cf2b2fd s390/topology: honour nr_cpu_ids when adding CPUs
    79803685425c s390/pkey: zeroize key blobs
    42624bc8c30c media: dvb-core: Fix use-after-free due to race condition at dvb_ca_en50221
    22fc36d59eab media: dvb-core: Fix kernel WARNING for blocking operation in wait_event*()
    a47a3f7a9bf6 media: dvb-core: Fix use-after-free due to race at dvb_register_device()
    50831747cb3a media: dvb-core: Fix use-after-free due on race condition at dvb_net
    9f74fec18f4c media: mn88443x: fix !CONFIG_OF error by drop of_match_ptr from ID table
    d6c47b235992 media: ttusb-dec: fix memory leak in ttusb_dec_exit_dvb()
    747a121914e3 media: dvb_ca_en50221: fix a size write bug
    34562df4082b media: netup_unidvb: fix irq init by register it at the end of probe
    5e56e3d5ebeb media: dvb-usb: dw2102: fix uninit-value in su3000_read_mac_address
    5240bc8c0c9a media: dvb-usb: digitv: fix null-ptr-deref in digitv_i2c_xfer()
    cd6764cf45ab media: dvb-usb-v2: rtl28xxu: fix null-ptr-deref in rtl28xxu_i2c_xfer
    ef0d867e295d media: dvb-usb-v2: ce6230: fix null-ptr-deref in ce6230_i2c_master_xfer()
    abaf49c5a95d media: dvb-usb-v2: ec168: fix null-ptr-deref in ec168_i2c_xfer()
    4b61ee116a3c media: dvb-usb: az6027: fix three null-ptr-deref in az6027_i2c_xfer()
    5e9ad9962f2a media: dvb_demux: fix a bug for the continuity counter
    ae3e3ac8b294 ASoC: ssm2602: Add workaround for playback distortions
    6cf7f03d2d34 ASoC: dt-bindings: Adjust #sound-dai-cells on TI's single-DAI codecs
    133c78bc6769 xfrm: Check if_id in inbound policy/secpath match
    f1a6d366cdb1 um: harddog: fix modular build
    e9d167ca4810 ASoC: dwc: limit the number of overrun messages
    84dfd8bee506 nvme-pci: add quirk for missing secondary temperature thresholds
    b32eeafd4eb9 nvme-pci: add NVME_QUIRK_BOGUS_NID for HS-SSD-FUTURE 2048G
    f7af470fad9c block/rnbd: replace REQ_OP_FLUSH with REQ_OP_WRITE
    8ba70707c3fe nbd: Fix debugfs_create_dir error checking
    156f5237e9c3 fbdev: stifb: Fix info entry in sti_struct on error path
    b3c785428797 fbdev: modedb: Add 1920x1080 at 60 Hz video mode
    ad3de274e065 fbdev: imsttfb: Fix use after free bug in imsttfb_probe
    fd8b4e28f400 gfs2: Don't deref jdesc in evict
    a00cc8562835 platform/x86: intel_scu_pcidrv: Add back PCI ID for Medfield
    736626df53e9 media: rcar-vin: Select correct interrupt mode for V4L2_FIELD_ALTERNATE
    1eae6e919639 ARM: 9295/1: unwind:fix unwind abort for uleb128 case
    af739a701517 btrfs: abort transaction when sibling keys check fails for leaves
    872a038dd4c9 drm/ast: Fix ARM compatibility
    3291f4a1073a mailbox: mailbox-test: Fix potential double-free in mbox_test_message_write()
    fe6f6f470612 drm/amdgpu: Use the default reset when loading or reloading the driver
    2226d9ef63d5 ALSA: hda: Glenfly: add HD Audio PCI IDs and HDMI Codec Vendor IDs.
    65221bdde702 watchdog: menz069_wdt: fix watchdog initialisation
    6a7bf0038973 drm/amdgpu: release gpu full access after "amdgpu_device_ip_late_init"
    8ac106aade8f rtnetlink: call validate_linkmsg in rtnl_create_link
    beeffe764e07 mtd: rawnand: marvell: don't set the NAND frequency select
    6494318f11f3 mtd: rawnand: marvell: ensure timing values are written
    0fad29dabce1 net: dsa: mv88e6xxx: Increase wait after reset deactivation
    45f47d2cf114 net/sched: flower: fix possible OOB write in fl_set_geneve_opt()
    b15adce7d326 net/mlx5: Read embedded cpu after init bit cleared
    c3caee8fe178 net/mlx5e: Fix error handling in mlx5e_refresh_tirs
    1abb7b04ec37 udp6: Fix race condition in udp6_sendmsg & connect
    7dc379f8856b net/netlink: fix NETLINK_LIST_MEMBERSHIPS length report
    91b07931c14d net: sched: fix NULL pointer dereference in mq_attach
    b1cb1ba1fbfa net/sched: Prohibit regrafting ingress or clsact Qdiscs
    cde00dcdf0ce net/sched: Reserve TC_H_INGRESS (TC_H_CLSACT) for ingress (clsact) Qdiscs
    2e859de5aeb0 net/sched: sch_clsact: Only create under TC_H_CLSACT
    cff0af3d1364 net/sched: sch_ingress: Only create under TC_H_INGRESS
    a907a389c71c tcp: Return user_mss for TCP_MAXSEG in CLOSE/LISTEN state if user_mss set
    fade445f3921 tcp: deny tcp_disconnect() when threads are waiting
    5434c8128777 af_packet: do not use READ_ONCE() in packet_bind()
    60bd1403bab7 RDMA/irdma: Fix Local Invalidate fencing
    0b3c392b82cd RDMA/irdma: Prevent QP use after free
    bd2af69575f5 RDMA/irdma: Add SW mechanism to generate completions on error
    2d04dde4ded7 mtd: rawnand: ingenic: fix empty stub helper definitions
    8f61d394b0c2 amd-xgbe: fix the false linkup in xgbe_phy_status
    aefcb6ea1d44 af_packet: Fix data-races of pkt_sk(sk)->num.
    c8775b97bf96 netrom: fix info-leak in nr_write_internal()
    8045788adda6 net: mellanox: mlxbf_gige: Fix skb_panic splat under memory pressure
    8d9d0bfd4c22 net/mlx5e: Don't attach netdev profile while handling internal error
    d002e0287d78 net/mlx5: fw_tracer, Fix event handling
    3a7793ae6911 riscv: Fix unused variable warning when BUILTIN_DTB is set
    3f1191bc5b6a dmaengine: pl330: rename _start to prevent build error
    c4be5d71d7a4 iommu/amd: Don't block updates to GATag if guest mode is on
    b4fd38c0c7b8 iommu/rockchip: Fix unwind goto issue
    190ea1c39104 RDMA/bnxt_re: Fix return value of bnxt_re_process_raw_qp_pkt_rx
    2fa9ee0fd65d RDMA/bnxt_re: Fix a possible memory leak
    fdc977f2e785 dmaengine: at_xdmac: fix potential Oops in at_xdmac_prep_interleaved()
    f68eff0faf67 dmaengine: at_xdmac: Move the free desc to the tail of the desc list
    ba0e7ca84a93 RDMA/hns: Modify the value of long message loopback slice
    15aeb44199e6 RDMA/hns: Fix base address table allocation
    b0f40ecc46d9 RDMA/efa: Fix unsupported page sizes in device
    f370588ec389 RDMA/bnxt_re: Fix the page_size used during the MR creation

(From OE-Core rev: 5bcbae7273fcb619be39d388a7b593799b46dab5)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 20388189ab6d03ae3c6e4fdd0135af4f88e15198)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Bruce Ashfield
c7c869a242 linux-yocto/5.15: update to v5.15.115
Updating  to the latest korg -stable release that comprises
the following commits:

    d7af3e5ba454 Linux 5.15.115
    e226893c935f netfilter: ctnetlink: Support offloaded conntrack entry deletion
    395d846c61c5 ipv{4,6}/raw: fix output xfrm lookup wrt protocol
    1bb8a65190d4 binder: fix UAF of alloc->vma in race with munmap()
    1cae0d51368e binder: add lockless binder_alloc_(set|get)_vma()
    dd7aff43d005 Revert "android: binder: stop saving a pointer to the VMA"
    6802c700902c Revert "binder_alloc: add missing mmap_lock calls when using the VMA"
    09411f1b8672 bluetooth: Add cmd validity checks at the start of hci_sock_ioctl()
    0f21b8621756 xdp: xdp_mem_allocator can be NULL in trace_mem_connect().
    b6c4afcbd625 irqchip/mips-gic: Don't touch vl_map if a local interrupt is not routable
    13b290f02094 page_pool: fix inconsistency for page_pool_ring_[un]lock()
    3af319d51474 net: page_pool: use in_softirq() instead
    1c097b9db173 xdp: Allow registering memory model without rxq reference
    623d965c2dee net/mlx5e: Fix SQ wake logic in ptp napi_poll context
    9085886c04d9 irqchip/mips-gic: Use raw spinlock for gic_lock
    4517730b4c1e irqchip/mips-gic: Get rid of the reliance on irq_cpu_online()
    5fd7c1e36b0a binder: fix UAF caused by faulty buffer cleanup
    c88d21c0ae32 bonding: fix send_peer_notif overflow
    7ee611fc85ad Bonding: add arp_missed_max option
    5b925b48bebc net: dsa: mt7530: fix network connectivity with multiple CPU ports
    5a7266feaa6d net: dsa: mt7530: split-off common parts from mt7531_setup
    0753c1ef2419 net: dsa: mt7530: rework mt753[01]_setup
    9902f91cf666 net: dsa: introduce helpers for iterating through ports using dp
    d84b42b72526 net: phy: mscc: enable VSC8501/2 RGMII RX clock
    3dce2f3d8359 platform/x86: ISST: Remove 8 socket limit
    017a634f9f38 platform/x86: ISST: PUNIT device mapping with Sub-NUMA clustering
    ff455f7fbce7 net/mlx5: Devcom, serialize devcom registration
    69966bce28da net/mlx5e: Fix deadlock in tc route query code
    1c4e3cf8944f net/mlx5: devcom only supports 2 ports
    79ea1a12fb9a bpf: fix a memory leak in the LRU and LRU_PERCPU hash maps
    1f06b2a60445 power: supply: bq24190: Call power_supply_changed() after updating input current
    8c6f881dc13b power: supply: core: Refactor power_supply_set_input_current_limit_from_supplier()
    1f9367a890ac power: supply: bq27xxx: After charger plug in/out wait 0.5s for things to stabilize
    75a7e9de60a2 power: supply: bq27xxx: Ensure power_supply_changed() is called on current sign changes
    e4c708a9bbde power: supply: bq27xxx: Move bq27xxx_battery_update() down
    2288fa1ae9b1 power: supply: bq27xxx: expose battery data when CI=1

(From OE-Core rev: 44262f31928a20a25b4c4a54c3b76a788cc20216)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit acb7f13dd673b15706f56a6b12ab4637a54e89f8)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Bruce Ashfield
ae71d122b9 linux-yocto/5.15: update to v5.15.114
Updating  to the latest korg -stable release that comprises
the following commits:

    0ab06468cbd1 Linux 5.15.114
    193c59ba7299 net: phy: mscc: add VSC8502 to MODULE_DEVICE_TABLE
    350b95e86ca9 3c589_cs: Fix an error handling path in tc589_probe()
    7c2fa3e56d95 regulator: mt6359: add read check for PMIC MT6359
    28ebfb74fbf5 firmware: arm_ffa: Set reserved/MBZ fields to zero in the memory descriptors
    34b0985ebdfc arm64: dts: imx8mn-var-som: fix PHY detection bug by adding deassert delay
    1e7550653680 net/mlx5: Devcom, fix error flow in mlx5_devcom_register_device
    a89a69cea44c net/mlx5: Fix error message when failing to allocate device memory
    e8a974bbf4a5 net/mlx5: DR, Check force-loopback RC QP capability independently from RoCE
    5e0cc0d502d4 net/mlx5: DR, Fix crc32 calculation to work on big-endian (BE) CPUs
    792a8233fc01 net/mlx5e: do as little as possible in napi poll when budget is 0
    fdf8f33e7d03 platform/mellanox: mlxbf-pmc: fix sscanf() error checking
    d5ab5447d910 forcedeth: Fix an error handling path in nv_probe()
    ae7c4ec42655 sctp: fix an issue that plpmtu can never go to complete state
    ee553694be42 ASoC: Intel: Skylake: Fix declaration of enum skl_ch_cfg
    aafa5019e2a3 x86/show_trace_log_lvl: Ensure stack pointer is aligned, again
    90314394a16d xen/pvcalls-back: fix double frees with pvcalls_new_active_socket()
    ff151810fb95 coresight: Fix signedness bug in tmc_etr_buf_insert_barrier_packet()
    24cf11474376 regulator: pca9450: Fix BUCK2 enable_mask
    cd41ec23503f fs: fix undefined behavior in bit shift for SB_NOUSER
    c2f65991097a firmware: arm_ffa: Fix FFA device names for logical partitions
    6a26c62625c5 firmware: arm_ffa: Check if ffa_driver remove is present before executing
    f64567bd9566 power: supply: sbs-charger: Fix INHIBITED bit for Status reg
    71a9f146b3dc power: supply: bq27xxx: Add cache parameter to bq27xxx_battery_current_and_status()
    e98e5bebfcaf power: supply: bq27xxx: Fix poll_interval handling and races on remove
    e01820a94aea power: supply: bq27xxx: Fix I2C IRQ race on remove
    d21b3448577f power: supply: bq27xxx: Fix bq27xxx_battery_update() race condition
    c530f60e5a2e power: supply: mt6360: add a check of devm_work_autocancel in mt6360_charger_probe
    0dd4881238bc power: supply: leds: Fix blink to LED on transition
    5e4bb063dcaf cifs: mapchars mount option ignored
    9b92e2d0eb69 ipv6: Fix out-of-bounds access in ipv6_find_tlv()
    bf478c2643ba bpf: Fix mask generation for 32-bit narrow loads of 64-bit fields
    79081b3f489a octeontx2-pf: Fix TSOv6 offload
    114657365c88 selftests: fib_tests: mute cleanup error message
    e06841a2abf9 net: fix skb leak in __skb_tstamp_tx()
    8f1512d78b5d ASoC: lpass: Fix for KASAN use_after_free out of bounds
    b1bde4b4360c media: radio-shark: Add endpoint checks
    43f569fd0699 USB: sisusbvga: Add endpoint checks
    da0f4b557682 USB: core: Add routines for endpoint checks in old drivers
    387bd0a3af3b udplite: Fix NULL pointer dereference in __sk_mem_raise_allocated().
    cf3b5cd7127c net: fix stack overflow when LRO is disabled for virtual interfaces
    9e12c58a5ece fbdev: udlfb: Fix endpoint check
    aee97eec7702 debugobjects: Don't wake up kswapd from fill_pool()
    c09a7b6190f5 x86/topology: Fix erroneous smp_num_siblings on Intel Hybrid platforms
    a9ffd42eb9ab perf/x86/uncore: Correct the number of CHAs on SPR
    277f206bb874 parisc: Fix flush_dcache_page() for usage from irq context
    eff115ca949a selftests/memfd: Fix unknown type name build failure
    1a98b6e028ee x86/mm: Avoid incomplete Global INVLPG flushes
    683bb30c6947 dt-binding: cdns,usb3: Fix cdns,on-chip-buff-size type
    647af8a998c2 btrfs: use nofs when cleaning up aborted transactions
    7e93fe1d1733 gpio: mockup: Fix mode of debugfs files
    3a2d238c5a3a parisc: Allow to reboot machine after system halt
    96f8dd0483c8 parisc: Handle kgdb breakpoints only in kernel context
    16deb7413ace m68k: Move signal frame following exception on 68020/030
    9be921854e98 net: cdc_ncm: Deal with too low values of dwNtbOutMaxSize
    1f6ae24e3d5a ASoC: rt5682: Disable jack detection interrupt during suspend
    693acaa739dc mmc: sdhci-esdhc-imx: make "no-mmc-hs400" works
    7177586e06ff ALSA: hda/realtek: Enable headset onLenovo M70/M90
    e6a624451afb ALSA: hda: Fix unhandled register update during auto-suspend period
    7716da3fa10b ALSA: hda/ca0132: add quirk for EVGA X299 DARK
    c37eb46c613a arm64: Also reset KASAN tag if page is not PG_mte_tagged
    291fe3d6f5db ocfs2: Switch to security_inode_init_security()
    4badd33929c0 spi: fsl-cpm: Use 16 bit mode for large transfers with even size
    28ffe8c84603 spi: fsl-spi: Re-organise transfer bits_per_word adaptation
    381e55bffe15 ARM: dts: stm32: fix AV96 board SAI2 pin muxing on stm32mp15
    ca338fa8032a watchdog: sp5100_tco: Immediately trigger upon starting.
    6312c7cc07f3 dt-bindings: ata: ahci-ceva: Cover all 4 iommus entries
    7ef9045fe758 dt-bindings: ata: ahci-ceva: convert to yaml
    f19171155305 usb: dwc3: fix gadget mode suspend interrupt handler issue
    7919af1dcb8e usb: gadget: Properly configure the device for remote wakeup

(From OE-Core rev: 1c8415175dc89a58e8af604163904cbfbe787edc)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit b83b248e5042dd1e9fdbc4c48be1af188fece1df)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Vivek Kumbhar
acca9233b2 cups: fix CVE-2023-34241 use-after-free in cupsdAcceptClient() in scheduler/client.c
(From OE-Core rev: 9a6c7442ac2fc2ce668d0c931696d39288ee3d4a)

Signed-off-by: Vivek Kumbhar <vkumbhar@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:38 -10:00
Rusty Howell
c4d91873af oe-depends-dot: Handle new format for task-depends.dot
The .dot file created by `bitbake -g` changed formats a while ago, which
broke oe-depends-dot.

Also add some useful examples to the --help output.

(From OE-Core rev: e53842ea6c14ed8e97252626e3ae0d3cf4580fbc)

Signed-off-by: Rusty Howell <rustyhowell@gmail.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:37 -10:00
Etienne Cordonnier
a834d9001b libxcrypt: fix hard-coded ".so" extension
2 issues:
- the .so extension is hard-coded, and therefore the libxcryt package compiled with
  meta-darwin is empty, because the dylib files are not contained in FILES_${PN}
- nothing actually produces a file libcrypt-*.so (the symlink file is libcrypt.so, without dash), thus
  defining FILES:${PN} manually to contain libcrypt-*.so has no effect.

(From OE-Core rev: 87d3ad23643abff47ac35ca14f8b4b4bb9ee80da)

Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7ed6bfa2428b4f1ba7f09d6e9e67c462ff355153)
Signed-off-by: Sanjay Chitroda <schitrod@cisco.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:37 -10:00
Marek Vasut
2a8a7c9e0d cpio: Replace fix wrong CRC with ASCII CRC for large files with upstream backport
Replace the original "Wrong CRC with ASCII CRC for large files"
patch with upstream backport, and add additional fix on top of
the same problem which upstream detected and fixed.

(From OE-Core rev: 727f301e4888c8f59cfc2d8768d02bb52ce23784)

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:37 -10:00
Vivek Kumbhar
257c1fdc11 libcap: fix CVE-2023-2603 Integer Overflow in _libcap_strdup()
(From OE-Core rev: 92340bc3161259c962b5ed5f9d9055f5bd36a3ce)

Signed-off-by: Vivek Kumbhar <vkumbhar@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:37 -10:00
Vivek Kumbhar
efa581c3ab go: fix CVE-2023-29400 html/template improper handling of empty HTML attributes
(From OE-Core rev: 3224084a1ca301ff4fb4735ccc80d24aaec13257)

Signed-off-by: Vivek Kumbhar <vkumbhar@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:37 -10:00
Richard Purdie
201362ccb6 bitbake: runqueue: Fix deferred task/multiconfig race issue
If there are several multiconfigs in play for example a non-multiconfig with
a task with one hash and then three multiconfigs for the same task, different
architectures but the same hash (different to the non-mc), the three mcs
will be deferred until after the non-mc task but then will all run together
and race against each other.

Change the code to re-enable deferred tasks one at a time. This way, if they do
race, they won't run in parallel against each other.

(Bitbake rev: 907416ee1062f87f5844ab0638b54616abfc1a22)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9523e28658ad7fb446645b590608dfac2812afd3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-12 05:11:37 -10:00
Sakib Sajal
84dd3d0e6c blktrace: ask for python3 specifically
python2 has been deprecated, use python3 instead

(From OE-Core rev: f20a12ead2d5890e88e7f4ce149a777de47edc48)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:25 -10:00
Richard Purdie
b8580d79d1 layer.conf: Add missing dependency exclusion
Add a dependency which should have been in this list but wasn't, found
when debugging create-spdx hash issues.

(From OE-Core rev: 97c84ca1e138fe95ebd67f1fe42be19ab2aeca89)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1075b9fc5d562dada45b3187cb737511ff8c7376)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:25 -10:00
Alexander Kanavin
dbd90d690e maintainers.inc: correct Carlos Rafael Giani's email address
As confirmed via private email.

(From OE-Core rev: 1f664daa33b5fae83990b9b5d5490a896a307b68)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit c7f934368d3fb3e9cf268f8237eae80b1c1665a5)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:25 -10:00
Richard Purdie
73c8c22708 selftest/license: Exclude from world
These test recipes shouldn't be built as part of world builds. Some recent
changes are exposing issues from this so exclude them.

(From OE-Core rev: 82ac6a3f22c3aec03d3ba162c67754bbf28fd0ba)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 80d3f5586cd060ae69fbc6dec2e8978d87da10ba)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:25 -10:00
Marc Ferland
6b072b62e9 connman: fix warning by specifying runstatedir at configure time
Without this patch, systemd complains on startup with messages similar
to:

systemd-tmpfiles[128]: /etc/tmpfiles.d/connman_resolvconf.conf:1: Line references path below legacy directory /var/run/, updating /var/run/connman → /run/connman; please update the tmpfiles.d/ drop-in file accordingly.
systemd-tmpfiles[172]: /etc/tmpfiles.d/connman_resolvconf.conf:1: Line references path below legacy directory /var/run/, updating /var/run/connman → /run/connman; please update the tmpfiles.d/ drop-in file accordingly.

By default, connman will use "/var/run/connman" for runstatedir
instead of the now recommended "/run/connman".

(From OE-Core rev: 52268f077af4fd21ac93623017160cb474bbef00)

Signed-off-by: Marc Ferland <ferlandm@amotus.ca>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8d17776765a99a4ae327797206ef2a8a735ce87b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:25 -10:00
Alexander Kanavin
29e3110204 maintainers.inc: correct unassigned entries
Modify packages to unassigned where appropriate

(From OE-Core rev: 36b862f23afe3ed81006c203e875f900249fd040)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ab37ddf53607111bf5c49c4f2388224999c4a5a9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 27f15bc3166fda5acd07e9e1c34842a641d24e37)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:25 -10:00
Alexander Kanavin
dc61844c11 maintainers.inc: unassign Pascal Bach from cmake entry
This was confirmed via private email.

(From OE-Core rev: 826fb858ebf1f8e9e2741b9046fd5c04638ff056)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c30e9f1972a3e1d4099f39fd6d0dfb37acb73ce1)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:25 -10:00
Alexander Kanavin
e1908ce910 maintainers.inc: unassign Andreas Müller from itstool entry
This was confirmed via private email.

(From OE-Core rev: 0823449cb03876ad88643df6c41c9450625d435d)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cc8bb0da24419424989548ced27b2e76030340d9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Alexander Kanavin
c1134732ad maintaines.inc: unassign Richard Weinberger from erofs-utils entry
This was confirmed via private email.

(From OE-Core rev: d66095fa0c2ddf11a790d4d2f94ce6c2b80c0143)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 834519933fcd6e4ff54f24d0cf671ea9ce24398a)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Kai Kang
cb8879e666 pm-utils: fix multilib conflictions
It fails to instal pm-utils and lib32-pm-utils at same time:

Error: Transaction test error:
  file /usr/bin/pm-is-supported conflicts between attempted installs of lib32-pm-utils-1.4.1-r1.corei7_32 and pm-utils-1.4.1-r1.corei7_64
  file /usr/sbin/pm-hibernate conflicts between attempted installs of lib32-pm-utils-1.4.1-r1.corei7_32 and pm-utils-1.4.1-r1.corei7_64
  file /usr/sbin/pm-powersave conflicts between attempted installs of lib32-pm-utils-1.4.1-r1.corei7_32 and pm-utils-1.4.1-r1.corei7_64
  file /usr/sbin/pm-suspend conflicts between attempted installs of lib32-pm-utils-1.4.1-r1.corei7_32 and pm-utils-1.4.1-r1.corei7_64
  file /usr/sbin/pm-suspend-hybrid conflicts between attempted installs of lib32-pm-utils-1.4.1-r1.corei7_32 and pm-utils-1.4.1-r1.corei7_64

All of the conflicted files either is script which source a file in
${libdir}, or a link file to some file in ${libdir}. Compare the content
of installed files in ${libdir} exclude binaries, only the paths of
${libdir} diff. So re-define libdir with ${nonarch_libdir} to fix the
conflicts.

(From OE-Core rev: 7d99987f76c58ec1f9ee5efffee0705b2c542ad7)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f836541bcfdbf033a37537530b4e3b87b0a7f003)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Martin Jansa
ae2c9cbce3 kmod: remove unused ptest.patch
* it was removed from SRC_URI in 2015:
  https://git.openembedded.org/openembedded-core/commit/?id=f80d136bdd578468035a88125fa1b84973fd912b

(From OE-Core rev: 960b61a53b6a670b4b3a23faff85850a3485f00e)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cfc4586b4bf080a3a4aa419dffc76c5da2a95b74)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Martin Jansa
fb2151dbb7 minicom: remove unused patch files
* they were removed from SRC_URI in:
  https://git.openembedded.org/openembedded-core/commit/?id=41f8760dd8a8ac388389bc17dbc5e0ae0f64bf57

(From OE-Core rev: 094d2341240fc09a91fea7bea1b3c51a08ad9817)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a0f28cd8d01f4faeedc1089e5d1e2dacc5b046f9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 4395c783e544de30f650459677055737148ea261)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Frieder Schrempf
3aaf57f1ce psmisc: Set ALTERNATIVE for pstree to resolve conflict with busybox
If pstree in busybox is enabled there is a conflict with pstree from
psmisc resulting in:

  do_rootfs: Postinstall scriptlets of ['busybox'] have failed. If
  the intention is to defer them to first boot, then please place
  them into pkg_postinst_ontarget:${PN} ().
  Deferring to first boot via 'exit 1' is no longer supported.

And more detailed in do_rootfs.log:

  update-alternatives: Error: not linking [...]/rootfs/usr/bin/pstree to /bin/busybox.nosuid since [...]/rootfs/usr/bin/pstree exists and is not a link

On order to fix this set ALTERNATIVE:pstree accordingly.

(From OE-Core rev: b40a33f0665c7086e806da4f670a3eb25351216c)

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit deb2176df76dcb16c0d90072ad63d308a0ab1158)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Bruce Ashfield
e35effd45f linux-yocto/5.10: cfg: fix DECNET configuration warning
Dropping CONFIG_DECNET as it has been removed from -stable
and we now get a configuration warning.

(From OE-Core rev: 60eb677142dfd0264a99f626b5b9ede1a6d706e1)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Bruce Ashfield
9d1288c709 linux-yocto/5.10: update to v5.10.185
Updating  to the latest korg -stable release that comprises
the following commits:

    ef0d5feb32ab Linux 5.10.185
    ed2bf5cee6c6 um: Fix build w/o CONFIG_PM_SLEEP
    f73ec12dc718 drm/i915/gen11+: Only load DRAM information from pcode
    27458487c8f4 drm/i915/dg1: Wait for pcode/uncore handshake at startup
    2d1c19597d1e media: dvb-core: Fix use-after-free due to race at dvb_register_device()
    5c61c3945adf media: dvbdev: fix error logic at dvb_register_device()
    a1b26dac8bc6 media: dvbdev: Fix memleak in dvb_register_device
    a13dee47fa2a nilfs2: reject devices with insufficient block count
    c374552b54d6 mm/memory_hotplug: extend offline_and_remove_memory() to handle more than one memory block
    e6dc6a9d0a76 mmc: block: ensure error propagation for non-blk
    7ce0e8b28720 batman-adv: Switch to kstrtox.h for kstrtou64
    e6104284c42f neighbour: delete neigh_lookup_nodev as not used
    bf82668eb950 net: Remove DECnet leftovers from flow.h.
    7d07fd03f50c net: Remove unused inline function dst_hold_and_use()
    53076071fb92 neighbour: Remove unused inline function neigh_key_eq16()
    7230a9e599d3 rcu/kvfree: Avoid freeing new kfree_rcu() memory after old grace period
    a26158962176 cgroup: always put cset in cgroup_css_set_put_fork
    4c1084386332 afs: Fix vlserver probe RTT handling
    49b6607dedc2 selftests/ptp: Fix timestamp printf format for PTP_SYS_OFFSET
    08899e8d5a99 net: tipc: resize nlattr array to correct size
    5fd696b404fb net: lapbether: only support ethernet devices
    6ee3728ae87e net/sched: cls_api: Fix lockup on flushing explicitly created chain
    efed5b50f3b8 ext4: drop the call to ext4_error() from ext4_get_group_info()
    6ab91d1adb5a drm/nouveau: add nv_encoder pointer check for NULL
    5d43bb9b3e0c drm/nouveau/dp: check for NULL nv_connector->native_mode
    edb970e03d65 drm/nouveau: don't detect DSM for non-NVIDIA device
    8c3446ab5902 igb: fix nvm.ops.read() error handling
    221281d60c46 sctp: fix an error code in sctp_sf_eat_auth()
    5c47ed7f25d6 ipvlan: fix bound dev checking for IPv6 l3s mode
    3c97f2c9ec29 IB/isert: Fix incorrect release of isert connection
    da6ae4aab5a6 IB/isert: Fix possible list corruption in CMA handler
    2b6f8817ca66 IB/isert: Fix dead lock in ib_isert
    2f9d26345c6e IB/uverbs: Fix to consider event queue closing also upon non-blocking mode
    6cccdbc9f09c RDMA/cma: Always set static rate to 0 for RoCE
    f49abbb27416 RDMA/mlx5: Initiate dropless RQ for RAW Ethernet functions
    aa277d5cd4b2 octeontx2-af: fixed resource availability check
    0fb48a2a6ad4 iavf: remove mask from iavf_irq_enable_queues()
    079a9591ee18 RDMA/rxe: Fix the use-before-initialization error of resp_pkts
    089a0e831f68 RDMA/rxe: Removed unused name from rxe_task struct
    6205c0d9ff8b RDMA/rxe: Remove the unused variable obj
    af6eaa57986e net/sched: cls_u32: Fix reference counter leak leading to overflow
    5852d17aaa8b ping6: Fix send to link-local addresses with VRF.
    9e666a77f008 net: enetc: correct the indexes of highest and 2nd highest TCs
    1200af82cf0b netfilter: nfnetlink: skip error delivery on batch in case of ENOMEM
    af42c4fd827c spi: fsl-dspi: avoid SCK glitches with continuous transfers
    cb6ec51ddd00 RDMA/rtrs: Fix the last iu->buf leak in err path
    26293251ab64 usb: dwc3: gadget: Reset num TRBs before giving back the request
    f4bc41694289 serial: lantiq: add missing interrupt ack
    0b6e65016c3c USB: serial: option: add Quectel EM061KGL series
    1c004b379b03 Remove DECnet support from kernel
    e9d384983fa9 ALSA: hda/realtek: Add a quirk for Compaq N14JP6
    1148d4ca3029 net: usb: qmi_wwan: add support for Compal RXM-G1
    d7acfd522560 RDMA/uverbs: Restrict usage of privileged QKEYs
    96e14c91c530 nouveau: fix client work fence deletion race
    f1f7117b2236 powerpc/purgatory: remove PGO flags
    26c80741ceb6 x86/purgatory: remove PGO flags
    f368aed4827b kexec: support purgatories with .text.hot sections
    7e78b9142fdf nilfs2: fix possible out-of-bounds segment allocation in resize ioctl
    902fcec05295 nilfs2: fix incomplete buffer cleanup in nilfs_btnode_abort_change_key()
    d59293f082dc nios2: dts: Fix tse_mac "max-frame-size" property
    2847d9eed48b ocfs2: check new file size on fallocate call
    e73b135f540c ocfs2: fix use-after-free when unmounting read-only filesystem
    370f5d98ffe5 epoll: ep_autoremove_wake_function should use list_del_init_careful
    4716c73b1885 io_uring: hold uring mutex around poll removal
    93a68acc497b irqchip/gic: Correctly validate OF quirk descriptors
    2a2641a842ea drm:amd:amdgpu: Fix missing buffer object unlock in failure path
    7c0b17679b43 xen/blkfront: Only check REQ_FUA for writes
    8e45fb70f4b5 ASoC: dwc: move DMA init to snd_soc_dai_driver probe()
    d47b5a6d2331 mips: Move initrd_start check after initrd address sanitisation.
    619672bf2d04 MIPS: Alchemy: fix dbdma2
    0ca73b45b767 parisc: Flush gatt writes and adjust gatt mask in parisc_agp_mask_memory()
    3f7625e08620 parisc: Improve cache flushing for PCXL in arch_sync_dma_for_cpu()
    73102fdb5bf3 ASoC: soc-pcm: test if a BE can be prepared
    3bc883132d03 btrfs: handle memory allocation failure in btrfs_csum_one_bio
    142fbad31405 btrfs: scrub: try harder to mark RAID56 block groups read-only
    35d32d841592 power: supply: Fix logic checking if system is running from battery
    8b7a2207ee40 irqchip/gic-v3: Disable pseudo NMIs on Mediatek devices w/ firmware issues
    dbf610997242 regulator: Fix error checking for debugfs_create_dir
    37bcc48e7dd1 platform/x86: asus-wmi: Ignore WMI events with codes 0x7B, 0xC0
    88d1c1365ff6 power: supply: Ratelimit no data debug output
    6be7a4bef9dc tools: gpio: fix debounce_period_us output of lsgpio
    39eb9eb9ea43 ARM: dts: vexpress: add missing cache properties
    b2856c3cd3b2 power: supply: bq27xxx: Use mod_delayed_work() instead of cancel() + schedule()
    ce2b5f24caad power: supply: sc27xx: Fix external_power_changed race
    9e9e150fa8a6 power: supply: ab8500: Fix external_power_changed race
    539c387f0bb9 test_firmware: fix a memory leak with reqs buffer
    af36f35074b1 test_firmware: prevent race conditions by a correct implementation of locking
    682ca602515d test_firmware: Use kstrtobool() instead of strtobool()
    6e2e551e39fd kernel.h: split out kstrtox() and simple_strtox() to a separate header
    c2def5578b44 lib: cleanup kstrto*() usage

(From OE-Core rev: 0cacc63b11f85a37e3a91b1097ca516647facb8f)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Bruce Ashfield
ba277d1a5f linux-yocto/5.10: update to v5.10.184
Updating  to the latest korg -stable release that comprises
the following commits:

    a1f0beb13d9b Linux 5.10.184
    7f896130eff7 Revert "staging: rtl8192e: Replace macro RTL_PCI_DEVICE with PCI_DEVICE"
    b60e862e133f btrfs: unset reloc control if transaction commit fails in prepare_to_relocate()
    6f371623f315 btrfs: check return value of btrfs_commit_transaction in relocation
    ea0d413094e0 drm/atomic: Don't pollute crtc_state->mode_blob with error pointers
    1659268d1ab4 MIPS: locking/atomic: Fix atomic{_64,}_sub_if_positive
    0e98a97f772f xfs: verify buffer contents when we skip log replay
    58e8cf94de12 tcp: fix tcp_min_tso_segs sysctl
    1b4b3350969e ext4: only check dquot_initialize_needed() when debugging
    fd6cb5171903 Revert "ext4: don't clear SB_RDONLY when remounting r/w until quota is re-enabled"
    cfa91c0573a5 vhost: support PACKED when setting-getting vring_base
    461c88caa889 riscv: fix kprobe __user string arg print fault issue
    c6b905087428 eeprom: at24: also select REGMAP
    10e376a7c387 i2c: sprd: Delete i2c adapter in .remove's error path
    c4aeef56022e ASoC: codecs: wsa881x: do not set can_multi_write flag
    b6f309e9d24e staging: vc04_services: fix gcc-13 build warning
    0d3c75a69344 usb: usbfs: Use consistent mmap functions
    143f40572174 usb: usbfs: Enforce page requirements for mmap
    bcd474d1838e pinctrl: meson-axg: add missing GPIOA_18 gpio group
    1981d37b1d76 rbd: get snapshot context after exclusive lock is ensured to be held
    76ae4a7bc999 rbd: move RBD_OBJ_FLAG_COPYUP_ENABLED flag setting
    841d3b5a8446 tee: amdtee: Add return_origin to 'struct tee_cmd_load_ta'
    a94024991d82 Bluetooth: hci_qca: fix debugfs registration
    2270e32bd199 Bluetooth: Fix use-after-free in hci_remove_ltk/hci_remove_irk
    76b40319a1ea s390/dasd: Use correct lock while counting channel queue length
    e715c86e92fd ceph: fix use-after-free bug for inodes when flushing capsnaps
    67148731582d can: j1939: avoid possible use-after-free when j1939_can_rx_register fails
    cc834f4d9762 can: j1939: change j1939_netdev_lock type to mutex
    026800507640 can: j1939: j1939_sk_send_loop_abort(): improved error queue handling in J1939 Socket
    00380551353b drm/amdgpu: fix xclk freq on CHIP_STONEY
    ef95f987bea8 ALSA: hda/realtek: Add Lenovo P3 Tower platform
    95520b3fba92 ALSA: hda/realtek: Add a quirk for HP Slim Desktop S01
    ca26d00828d3 Input: psmouse - fix OOB access in Elantech protocol
    86efc409f29d Input: xpad - delete a Razer DeathAdder mouse VID/PID entry
    9ece26ff0815 batman-adv: Broken sync while rescheduling delayed work
    3f6dfff5fe41 bnxt_en: Implement .set_port / .unset_port UDP tunnel callbacks
    deead0d8729f bnxt_en: Query default VLAN before VNIC setup on a VF
    84dbd27ad5da bnxt_en: Don't issue AP reset during ethtool's reset operation
    dedd47977ae5 lib: cpu_rmap: Fix potential use-after-free in irq_cpu_rmap_release()
    27b8d6931f3f bpf: Add extra path pointer check to d_path helper
    36d07046c2d9 net: sched: fix possible refcount leak in tc_chain_tmplt_add()
    54acac57fe39 net: sched: move rtm_tca_policy declaration to include file
    dad7417db765 rfs: annotate lockless accesses to RFS sock flow table
    c62ca9d03777 rfs: annotate lockless accesses to sk->sk_rxhash
    86e3981ff1bc ipv6: rpl: Fix Route of Death.
    b4be099c5fb5 netfilter: ipset: Add schedule point in call_ad().
    35c89cfcac05 netfilter: conntrack: fix NULL pointer dereference in nf_confirm_cthelper
    c4ba90ae3578 qed/qede: Fix scheduling while atomic
    0fee54fa330b Bluetooth: L2CAP: Add missing checks for invalid DCID
    00665980128c Bluetooth: Fix l2cap_disconnect_req deadlock
    83cfac5851c2 net/sched: fq_pie: ensure reasonable TCA_FQ_PIE_QUANTUM values
    8ab2bec9e165 net/smc: Avoid to access invalid RMBs' MRs in SMCRv1 ADD LINK CONT
    47ef881f1cbe net: dsa: lan9303: allow vid != 0 in port_fdb_{add|del} methods
    9fcc3c3d26a0 neighbour: fix unaligned access to pneigh_entry
    99883d4a0be2 wifi: mt76: mt7615: fix possible race in mt7615_mac_sta_poll
    2d3e4c5b3e05 afs: Fix setting of mtime when creating a file/dir/symlink
    1ed651e234fd spi: qup: Request DMA before enabling clocks
    e7c61c39d6d1 staging: vchiq_core: drop vchiq_status from vchiq_initialise
    fa303270602d i40e: fix build warning in ice_fltr_add_mac_to_list()
    15ca8d584c1a i40e: fix build warnings in i40e_alloc.h
    f7e208d1c549 i40iw: fix build warning in i40iw_manage_apbvt()
    318e2c18da7c block/blk-iocost (gcc13): keep large values in a new enum
    b6d652f7fbdc blk-iocost: avoid 64-bit division in ioc_timer_fn
    9214a5484e33 f2fs: fix iostat lock protection
    d3b74c288d84 bonding (gcc13): synchronize bond_{a,t}lb_xmit() types
    f122e5517401 remove the sx8 block driver
    9236470a1dd4 sfc (gcc13): synchronize ef100_enqueue_skb()'s return type
    02ce3cf22291 gcc-plugins: Reorganize gimple includes for GCC 13
    4c3ddc06cedb ata: ahci: fix enum constants for gcc-13

(From OE-Core rev: 1588c4ebc21543a6a0a0d254339505f2c4ceb8c1)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Bruce Ashfield
8b0ae951cf linux-yocto/5.10: update to v5.10.183
Updating  to the latest korg -stable release that comprises
the following commits:

    7356714b95aa Linux 5.10.183
    842156dc0aad ARM: defconfig: drop CONFIG_DRM_RCAR_LVDS
    2c0ea7a06db5 ext4: enable the lazy init thread when remounting read/write
    92450a1eaa9e selftests: mptcp: join: skip if MPTCP is not supported
    1a6db1f92724 selftests: mptcp: simult flows: skip if MPTCP is not supported
    4f8356ab74dd selftests: mptcp: diag: skip if MPTCP is not supported
    81df7153f011 crypto: ccp: Play nice with vmalloc'd memory for SEV command structs
    1f988ce6e44f crypto: ccp: Reject SEV commands with mismatching command buffer
    d21a20f4421d scsi: dpt_i2o: Do not process completions with invalid addresses
    a2cd7599b558 scsi: dpt_i2o: Remove broken pass-through ioctl (I2OUSERCMD)
    6d6612f7f976 drm/rcar: stop using 'imply' for dependencies
    c759c9e4bf38 media: ti-vpe: cal: avoid FIELD_GET assertion
    d21e955de918 tpm, tpm_tis: Request threaded interrupt handler
    608c1f20830c regmap: Account for register length when chunking
    cb1cbe430e67 KEYS: asymmetric: Copy sig and digest in public_key_verify_signature()
    3295dc04af33 KVM: x86: Account fastpath-only VM-Exits in vCPU stats
    21bb3cd2e1bc test_firmware: fix the memory leak of the allocated firmware buffer
    510e015b9058 serial: 8250_tegra: Fix an error handling path in tegra_uart_probe()
    b02ae50c7fd8 fbcon: Fix null-ptr-deref in soft_cursor
    c94228a5aea4 ext4: add lockdep annotations for i_data_sem for ea_inode's
    ef70012ab51c ext4: disallow ea_inodes with extended attributes
    6f4fa43757bb ext4: set lockdep subclass for the ea_inode in ext4_xattr_inode_cache_find()
    6d67d4966c1e ext4: add EA_INODE checking to ext4_iget()
    6d0adaa90dbe selftests: mptcp: pm nl: skip if MPTCP is not supported
    54dea0aa6bef selftests: mptcp: connect: skip if MPTCP is not supported
    57eb824b8cbb tracing/probe: trace_probe_primary_from_call(): checked list_first_entry
    122ba1d40bea selinux: don't use make's grouped targets feature yet
    e0b8664c2fec btrfs: fix csum_tree_block page iteration to avoid tripping on -Werror=array-bounds
    6c859764f44d tty: serial: fsl_lpuart: use UARTCTRL_TXINV to send break instead of UARTCTRL_SBK
    6127e956c3a7 mmc: vub300: fix invalid response handling
    99cb5ed15d3e eth: sun: cassini: remove dead code
    1d8693376aaa gcc-12: disable '-Wdangling-pointer' warning for now
    7c602f540bfd ath6kl: Use struct_group() to avoid size-mismatched casting
    c92ea38a779f ACPI: thermal: drop an always true check
    93e28b66c104 x86/boot: Wrap literal addresses in absolute_pointer()
    3442be8f3095 ata: libata-scsi: Use correct device no in ata_find_dev()
    ae0d7613e0e3 scsi: stex: Fix gcc 13 warnings
    86b2d292c260 misc: fastrpc: reject new invocations during device removal
    dacb7c103c2f misc: fastrpc: return -EPIPE to invocations on device removal
    a4f88cb043c5 usb: gadget: f_fs: Add unbind event before functionfs_unbind
    90f581eb745c net: usb: qmi_wwan: Set DTR quirk for BroadMobi BM818
    e18b0009ddfb iio: dac: build ad5758 driver when AD5758 is selected
    a869ab6987f4 iio: adc: ad7192: Change "shorted" channels to differential
    143dbb313aea iio: dac: mcp4725: Fix i2c_master_send() return value handling
    81c70f4beaad iio: light: vcnl4035: fixed chip ID check
    ff864a92d903 iio: imu: inv_icm42600: fix timestamp reset
    954bd5a44b09 HID: wacom: avoid integer overflow in wacom_intuos_inout()
    adac1c22f54b HID: google: add jewel USB id
    55c507a34e7e iio: adc: mxs-lradc: fix the order of two cleanup operations
    5a445c2bf651 mailbox: mailbox-test: fix a locking issue in mbox_test_message_write()
    c05ac53bb0df atm: hide unused procfs functions
    ab332304583d drm/msm: Be more shouty if per-process pgtables aren't working
    93a61212db4b ALSA: oss: avoid missing-prototype warnings
    4987bf04465e netfilter: conntrack: define variables exp_nat_nla_policy and any_addr with CONFIG_NF_NAT
    1c2537291e9c wifi: b43: fix incorrect __packed annotation
    ea478186ea29 scsi: core: Decrease scsi_device's iorequest_cnt if dispatch failed
    05226a8f2288 arm64/mm: mark private VM_FAULT_X defines as vm_fault_t
    32f86763c2a2 ARM: dts: stm32: add pin map for CAN controller on stm32f7
    01c76cb5e512 wifi: rtl8xxxu: fix authentication timeout due to incorrect RCR value
    046721280664 s390/pkey: zeroize key blobs
    76169f749089 media: dvb-core: Fix use-after-free due to race condition at dvb_ca_en50221
    ca2d171fd1f3 media: dvb-core: Fix kernel WARNING for blocking operation in wait_event*()
    2ea7d26ed851 media: dvb-core: Fix use-after-free due on race condition at dvb_net
    415651c8f468 media: mn88443x: fix !CONFIG_OF error by drop of_match_ptr from ID table
    eb37fef417a2 media: ttusb-dec: fix memory leak in ttusb_dec_exit_dvb()
    1995e714725f media: dvb_ca_en50221: fix a size write bug
    b85233ab5335 media: netup_unidvb: fix irq init by register it at the end of probe
    74c80d2024d9 media: dvb-usb: dw2102: fix uninit-value in su3000_read_mac_address
    fcbb72b041d9 media: dvb-usb: digitv: fix null-ptr-deref in digitv_i2c_xfer()
    7945c13c9b7f media: dvb-usb-v2: rtl28xxu: fix null-ptr-deref in rtl28xxu_i2c_xfer
    2d47867a6b3c media: dvb-usb-v2: ce6230: fix null-ptr-deref in ce6230_i2c_master_xfer()
    647da51e4da7 media: dvb-usb-v2: ec168: fix null-ptr-deref in ec168_i2c_xfer()
    084e43d9a4c1 media: dvb-usb: az6027: fix three null-ptr-deref in az6027_i2c_xfer()
    a81280cf3343 media: dvb_demux: fix a bug for the continuity counter
    204e9082f6af ASoC: ssm2602: Add workaround for playback distortions
    beee708ccccc ASoC: dt-bindings: Adjust #sound-dai-cells on TI's single-DAI codecs
    bd99da647262 xfrm: Check if_id in inbound policy/secpath match
    5ee83fef0c24 ASoC: dwc: limit the number of overrun messages
    32f6f1bf1bef block/rnbd: replace REQ_OP_FLUSH with REQ_OP_WRITE
    01c3d3064975 nbd: Fix debugfs_create_dir error checking
    29f6b42a73b3 fbdev: stifb: Fix info entry in sti_struct on error path
    742dab42d70e fbdev: modedb: Add 1920x1080 at 60 Hz video mode
    d03d31d3a206 gfs2: Don't deref jdesc in evict
    fe4f6e159b9a media: rcar-vin: Select correct interrupt mode for V4L2_FIELD_ALTERNATE
    16ee4562c7bb ARM: 9295/1: unwind:fix unwind abort for uleb128 case
    a3393eb6fb41 btrfs: abort transaction when sibling keys check fails for leaves
    c12c288f1e67 mailbox: mailbox-test: Fix potential double-free in mbox_test_message_write()
    0dcf021af4cb ALSA: hda: Glenfly: add HD Audio PCI IDs and HDMI Codec Vendor IDs.
    d5fcccfc5010 watchdog: menz069_wdt: fix watchdog initialisation
    9823ac6e7ae1 mtd: rawnand: marvell: don't set the NAND frequency select
    e4666d793a22 mtd: rawnand: marvell: ensure timing values are written
    a437d3d25a27 net: dsa: mv88e6xxx: Increase wait after reset deactivation
    7c5c67aa2944 net/sched: flower: fix possible OOB write in fl_set_geneve_opt()
    f5c29a9e9146 net/mlx5: Read embedded cpu after init bit cleared
    f03bc013604c udp6: Fix race condition in udp6_sendmsg & connect
    57e6c5403427 net/netlink: fix NETLINK_LIST_MEMBERSHIPS length report
    ae7e941f4dc3 net: sched: fix NULL pointer dereference in mq_attach
    a8ad1303b9de net/sched: Prohibit regrafting ingress or clsact Qdiscs
    676f203803f9 net/sched: Reserve TC_H_INGRESS (TC_H_CLSACT) for ingress (clsact) Qdiscs
    18c76349afda net/sched: sch_clsact: Only create under TC_H_CLSACT
    1b0163b2dc3b net/sched: sch_ingress: Only create under TC_H_INGRESS
    dfb80ebc3bb4 tcp: Return user_mss for TCP_MAXSEG in CLOSE/LISTEN state if user_mss set
    cccc6209708f tcp: deny tcp_disconnect() when threads are waiting
    8f0365a3e286 af_packet: do not use READ_ONCE() in packet_bind()
    4de3c2c43c6f mtd: rawnand: ingenic: fix empty stub helper definitions
    11a1f2561b53 amd-xgbe: fix the false linkup in xgbe_phy_status
    fa909b138480 af_packet: Fix data-races of pkt_sk(sk)->num.
    616da05ff8a9 netrom: fix info-leak in nr_write_internal()
    d1b224cb7856 net/mlx5: fw_tracer, Fix event handling
    a864a8543cd5 dmaengine: pl330: rename _start to prevent build error
    33d7035dc224 iommu/amd: Don't block updates to GATag if guest mode is on
    bd9e61ee3e9d iommu/rockchip: Fix unwind goto issue
    75c60dacf0b4 RDMA/bnxt_re: Fix return value of bnxt_re_process_raw_qp_pkt_rx
    861868b06304 RDMA/bnxt_re: Fix a possible memory leak
    ff296fccebcb dmaengine: at_xdmac: fix potential Oops in at_xdmac_prep_interleaved()
    6b32ed353f44 dmaengine: at_xdmac: Move the free desc to the tail of the desc list
    3041b768cc0f dmaengine: at_xdmac: Fix race for the tx desc callback
    127afc87bb02 dmaengine: at_xdmac: Fix concurrency over chan's completed_cookie
    958226b3a663 RDMA/efa: Fix unsupported page sizes in device
    7d6662e4a4b6 RDMA/bnxt_re: Fix the page_size used during the MR creation
    b51c8962853e RDMA/bnxt_re: Code refactor while populating user MRs

(From OE-Core rev: 3a6f5720936c106e35be41b4b3e14e818baec739)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Bruce Ashfield
402de28911 linux-yocto/5.10: update to v5.10.182
Updating  to the latest korg -stable release that comprises
the following commits:

    c7992b6c7f0e Linux 5.10.182
    468bebc426ba netfilter: ctnetlink: Support offloaded conntrack entry deletion
    18c14d3028c0 ipv{4,6}/raw: fix output xfrm lookup wrt protocol
    2218752325a9 binder: fix UAF caused by faulty buffer cleanup
    e4d2e6c3054b bluetooth: Add cmd validity checks at the start of hci_sock_ioctl()
    6a0712d9fe46 net: phy: mscc: enable VSC8501/2 RGMII RX clock
    b556990235c3 net/mlx5: Devcom, serialize devcom registration
    57dc3c124e7b net/mlx5: devcom only supports 2 ports
    860ad704e450 regulator: pca9450: Fix BUCK2 enable_mask
    b3a9c4081db9 regulator: pca9450: Convert to use regulator_set_ramp_delay_regmap
    12cb97ed85fb regulator: Add regmap helper for ramp-delay setting
    b557220d3140 power: supply: bq24190: Call power_supply_changed() after updating input current
    224f7bbf577b power: supply: core: Refactor power_supply_set_input_current_limit_from_supplier()
    277b489ad0b7 power: supply: bq27xxx: After charger plug in/out wait 0.5s for things to stabilize
    0949c572d42d power: supply: bq27xxx: Ensure power_supply_changed() is called on current sign changes
    6ed541254f4b power: supply: bq27xxx: Move bq27xxx_battery_update() down
    ed78797a264c power: supply: bq27xxx: expose battery data when CI=1
    7ff807d68b5d power: supply: bq27xxx: Add cache parameter to bq27xxx_battery_current_and_status()
    432f98c559f2 power: supply: bq27xxx: make status more robust
    659094e4057a power: supply: bq27xxx: fix sign of current_now for newer ICs
    14e1a958d988 power: supply: bq27xxx: fix polarity of current_now
    18c9cf463337 x86/cpu: Drop spurious underscore from RAPTOR_LAKE #define
    4a8980cb2a7c x86/cpu: Add Raptor Lake to Intel family
    272d4b8a5b96 Linux 5.10.181
    cf7ee4b15838 net: phy: mscc: add VSC8502 to MODULE_DEVICE_TABLE
    98cedb991094 3c589_cs: Fix an error handling path in tc589_probe()
    6f449e409b75 arm64: dts: imx8mn-var-som: fix PHY detection bug by adding deassert delay
    d4d10a6df152 net/mlx5: Devcom, fix error flow in mlx5_devcom_register_device
    8b9c561b9fc1 net/mlx5: Fix error message when failing to allocate device memory
    c21862232f6c net/mlx5: DR, Fix crc32 calculation to work on big-endian (BE) CPUs
    058fd18e7477 net/mlx5e: do as little as possible in napi poll when budget is 0
    5afd5fb8a9a7 forcedeth: Fix an error handling path in nv_probe()
    80a4b9ad4288 ASoC: Intel: Skylake: Fix declaration of enum skl_ch_cfg
    c966b58c8515 x86/show_trace_log_lvl: Ensure stack pointer is aligned, again
    0de80163dea6 xen/pvcalls-back: fix double frees with pvcalls_new_active_socket()
    b663696c0652 coresight: Fix signedness bug in tmc_etr_buf_insert_barrier_packet()
    a52d2019ec7c fs: fix undefined behavior in bit shift for SB_NOUSER
    52967bbb93eb power: supply: sbs-charger: Fix INHIBITED bit for Status reg
    e85757da9091 power: supply: bq27xxx: Fix poll_interval handling and races on remove
    1da9a4b55a66 power: supply: bq27xxx: Fix I2C IRQ race on remove
    ac1ab213946d power: supply: bq27xxx: Fix bq27xxx_battery_update() race condition
    2de6eb7c40f9 power: supply: leds: Fix blink to LED on transition
    e5f82688ae10 ipv6: Fix out-of-bounds access in ipv6_find_tlv()
    a61d5c13c7d1 bpf: Fix mask generation for 32-bit narrow loads of 64-bit fields
    72971f4071b4 octeontx2-pf: Fix TSOv6 offload
    1c8a016822bb selftests: fib_tests: mute cleanup error message
    a594382ec6d0 net: fix skb leak in __skb_tstamp_tx()
    8a30dce9d7f7 media: radio-shark: Add endpoint checks
    ccef03c51135 USB: sisusbvga: Add endpoint checks
    4c260bbf356a USB: core: Add routines for endpoint checks in old drivers
    5014b64e369b udplite: Fix NULL pointer dereference in __sk_mem_raise_allocated().
    4bb955c4d283 net: fix stack overflow when LRO is disabled for virtual interfaces
    58ecc165abda fbdev: udlfb: Fix endpoint check
    fd673079749b debugobjects: Don't wake up kswapd from fill_pool()
    a12ce786bef6 x86/topology: Fix erroneous smp_num_siblings on Intel Hybrid platforms
    518c39fc1ed6 parisc: Fix flush_dcache_page() for usage from irq context
    2d78438c3183 selftests/memfd: Fix unknown type name build failure
    d4a5e6ae9967 x86/mm: Avoid incomplete Global INVLPG flushes
    628d7e494134 dt-binding: cdns,usb3: Fix cdns,on-chip-buff-size type
    139f84c80d9f btrfs: use nofs when cleaning up aborted transactions
    ea50ee0ef904 gpio: mockup: Fix mode of debugfs files
    c570dbf279a8 parisc: Allow to reboot machine after system halt
    de0d7dd5efd4 parisc: Handle kgdb breakpoints only in kernel context
    89eba5586aa4 m68k: Move signal frame following exception on 68020/030
    42b78c8cc774 net: cdc_ncm: Deal with too low values of dwNtbOutMaxSize
    798c1c62cfa5 ALSA: hda/realtek: Enable headset onLenovo M70/M90
    1f57a1b97949 ALSA: hda: Fix unhandled register update during auto-suspend period
    b0d7e62fd15e ALSA: hda/ca0132: add quirk for EVGA X299 DARK
    c41324385aa7 ocfs2: Switch to security_inode_init_security()
    60afe299bb54 spi: fsl-cpm: Use 16 bit mode for large transfers with even size
    e3674788a865 spi: fsl-spi: Re-organise transfer bits_per_word adaptation
    532451037863 act_mirred: use the backlog for nested calls to mirred ingress
    f5bf8e3ca13e net/sched: act_mirred: better wording on protection against excessive stack growth
    bba7ebe10baf net/sched: act_mirred: refactor the handle of xmit
    047f618d198e writeback, cgroup: remove extra percpu_ref_exit()
    84fbe6ad0fa3 ARM: dts: stm32: fix AV96 board SAI2 pin muxing on stm32mp15
    dbcc95bb510e watchdog: sp5100_tco: Immediately trigger upon starting.
    75258f083868 s390/qdio: fix do_sqbs() inline assembly constraint
    3681a0287a73 s390/qdio: get rid of register asm
    9c9f253fc60b serial: 8250_exar: Add support for USR298x PCI Modems
    1ffa0b8ba928 serial: exar: Add support for Sealevel 7xxxC serial cards
    fb3c5714f5ce serial: 8250_exar: derive nr_ports from PCI ID for Acces I/O cards
    18fbf8cfbb9d KVM: arm64: Link position-independent string routines into .hyp.text
    e266da1656d6 HID: wacom: add three styli to wacom_intuos_get_tool_type
    dfd419db0391 HID: wacom: Add new Intuos Pro Small (PTH-460) device IDs
    05b170379744 HID: wacom: Force pen out of prox if no events have been received in a while
    6b4205ea9790 nilfs2: fix use-after-free bug of nilfs_root in nilfs_evict_inode()
    710dee57012e powerpc/64s/radix: Fix soft dirty tracking
    ae149cdaef4e tpm/tpm_tis: Disable interrupts for more Lenovo devices
    8c0109d76235 ceph: force updating the msg pointer in non-split case
    11dddfbb7a4e vc_screen: reload load of struct vc_data pointer in vcs_write() to avoid UAF
    ea3d5de90bc0 serial: Add support for Advantech PCI-1611U card
    ba061afa060e statfs: enforce statfs[64] structure initialization
    845f98af6ae8 can: kvaser_pciefd: Disable interrupts in probe error path
    7a7ec807fe54 can: kvaser_pciefd: Do not send EFLUSH command on TFD interrupt
    65e85232ffa6 can: kvaser_pciefd: Clear listen-only bit if not explicitly requested
    0babb3fabf55 can: kvaser_pciefd: Empty SRB buffer in probe
    03714e9c04ec can: kvaser_pciefd: Call request_irq() before enabling interrupts
    3bbeba3ce14d can: kvaser_pciefd: Set CAN_STATE_STOPPED in kvaser_pciefd_stop()
    073a4d750cec can: isotp: recvmsg(): allow MSG_CMSG_COMPAT flag
    b4b8294a41ca can: j1939: recvmsg(): allow MSG_CMSG_COMPAT flag
    f7f799a6fe38 ALSA: hda/realtek: Add quirk for 2nd ASUS GU603
    b4f770e61230 ALSA: hda/realtek: Add a quirk for HP EliteDesk 805
    6cebdffba628 ALSA: hda/realtek: Add quirk for Clevo L140AU
    3add6b2a4a69 ALSA: hda: Add NVIDIA codec IDs a3 through a7 to patch table
    546b1f5f45a3 ALSA: hda: Fix Oops by 9.1 surround channel names
    ff466f77d0a5 usb: typec: altmodes/displayport: fix pin_assignment_show
    35e31e1e921c usb: gadget: u_ether: Fix host MAC address case
    e35adb75fda5 usb: dwc3: debugfs: Resume dwc3 before accessing registers
    66070f5b9995 USB: UHCI: adjust zhaoxin UHCI controllers OverCurrent bit value
    0caed1faf5f6 usb-storage: fix deadlock when a scsi command timeouts more than once
    6340e432cf70 USB: usbtmc: Fix direction for 0-length ioctl control messages
    3b3c6f2d2f1f ALSA: usb-audio: Add a sample rate workaround for Line6 Pod Go
    3bd6d11e7e63 bridge: always declare tunnel functions
    3fa13203b6d9 netfilter: nft_set_rbtree: fix null deref on element insertion
    6cfe6f51856b vlan: fix a potential uninit-value in vlan_dev_hard_start_xmit()
    562ec162b04a igb: fix bit_shift to be in [1..8] range
    dc61f7582cc9 cassini: Fix a memory leak in the error handling path of cas_init_one()
    81139679f4d2 scsi: storvsc: Don't pass unused PFNs to Hyper-V host
    d0d39bed9e95 wifi: iwlwifi: mvm: don't trust firmware n_channels
    f9337a41772d wifi: mac80211: fix min center freq offset tracing
    43f6575004e0 net: bcmgenet: Restore phy_stop() depending upon suspend/close
    e92727ed9e8b net: bcmgenet: Remove phy_stop() from bcmgenet_netif_stop()
    2937127d24cc tipc: check the bearer min mtu properly when setting it by netlink
    2bd4ff4ffb92 tipc: do not update mtu if msg_max is too small in mtu negotiation
    097ea78d8cca tipc: add tipc_bearer_min_mtu to calculate min mtu
    76ea144a35ba net/tipc: fix tipc header files for kernel-doc
    02b20e0bc0c2 net: nsh: Use correct mac_offset to unwind gso skb in nsh_gso_segment()
    01cdda0d27d7 drm/exynos: fix g2d_open/close helper function definitions
    ce97bb60a6e4 SUNRPC: Fix trace_svc_register() call site
    f9982db735a8 media: netup_unidvb: fix use-after-free at del_timer()
    0cefa4215243 net: hns3: fix reset delay time to avoid configuration timeout
    aba74ad99870 net: hns3: fix sending pfc frames after reset issue
    e1f800be74c1 erspan: get the proto with the md version for collect_md
    153017561d28 serial: arc_uart: fix of_iomap leak in `arc_serial_probe`
    e7fd68abbba3 tcp: fix possible sk_priority leak in tcp_v4_send_reset()
    788791990d74 net: Find dst with sk's xfrm policy not ctl_sk
    a9ef8b258988 ipv4/tcp: do not use per netns ctl sockets
    171669917762 vsock: avoid to close connected socket after the timeout
    b1cf6bd8833b ALSA: hda/realtek: Apply HP B&O top speaker profile to Pavilion 15
    13c5fa1248bf ALSA: firewire-digi00x: prevent potential use after free
    6fb537895d29 net: phy: dp83867: add w/a for packet errors seen with short cables
    83996d317b1d net: fec: Better handle pm_runtime_get() failing in .remove()
    8f57715f8ef6 af_key: Reject optional tunnel/BEET mode templates in outbound policies
    f5cb28a90c8c cpupower: Make TSC read per CPU for Mperf monitor
    dc30fed07ddf drm/msm/dpu: Remove duplicate register defines from INTF
    eaf9394ed79c drm/msm/dp: unregister audio driver during unbind
    c5449195f86e Revert "Fix XFRM-I support for nested ESP tunnels"
    295e07a76bf3 xfrm: don't check the default policy if the policy allows the packet
    84fdaaf0d76e btrfs: fix space cache inconsistency after error loading it from disk
    a842fb6038e5 btrfs: replace calls to btrfs_find_free_ino with btrfs_find_free_objectid
    9c69a9d05824 btrfs: move btrfs_find_highest_objectid/btrfs_find_free_objectid to disk-io.c
    6a1a72a8cfda mfd: dln2: Fix memory leak in dln2_probe()
    7d939e367b64 phy: st: miphy28lp: use _poll_timeout functions for waits
    3b37bb0d9290 Input: xpad - add constants for GIP interface numbers
    94ec1a44e843 iommu/arm-smmu-v3: Acknowledge pri/event queue overflow if any
    cae5f8f4f7a8 clk: tegra20: fix gcc-7 constant overflow warning
    8c472e68bea0 iommu/arm-smmu-qcom: Limit the SMR groups to 128
    214ae2c1a9ce RDMA/core: Fix multiple -Warray-bounds warnings
    2d9ca5f62f2b recordmcount: Fix memory leaks in the uwrite function
    cf3e2916017d sched: Fix KCSAN noinstr violation
    158502f79076 mcb-pci: Reallocate memory region to avoid memory overlapping
    2c86a1305c14 serial: 8250: Reinit port->pm on port specific driver unbind
    7ed30db87994 usb: typec: tcpm: fix multiple times discover svids error
    60fabcba7543 HID: wacom: generic: Set battery quirk only when we see battery data
    d234de1a924e spi: spi-imx: fix MX51_ECSPI_* macros when cs > 3
    0898a1df72ac HID: logitech-hidpp: Reconcile USB and Unifying serials
    958534d4368b HID: logitech-hidpp: Don't use the USB serial for USB devices
    bb1313f37e7b staging: rtl8192e: Replace macro RTL_PCI_DEVICE with PCI_DEVICE
    55410a9144c7 Bluetooth: L2CAP: fix "bad unlock balance" in l2cap_disconnect_rsp
    a2d816f55da1 Bluetooth: hci_bcm: Fall back to getting bdaddr from EFI if not set
    ba66851aba80 ipvs: Update width of source for ip_vs_sync_conn_options
    866921dc06b9 wifi: ath11k: Fix SKB corruption in REO destination ring
    91ad1ab3cc7e wifi: iwlwifi: dvm: Fix memcpy: detected field-spanning write backtrace
    e732a266b973 null_blk: Always check queue mode setting from configfs
    059e426d666a wifi: iwlwifi: pcie: Fix integer overflow in iwl_write_to_user_buf
    0fc0d287c1e7 wifi: iwlwifi: pcie: fix possible NULL pointer dereference
    7560ed6592ff samples/bpf: Fix fout leak in hbm's run_bpf_prog
    ad87bd313f70 f2fs: fix to drop all dirty pages during umount() if cp_error is set
    fc7237e191b9 ext4: Fix best extent lstart adjustment logic in ext4_mb_new_inode_pa()
    3ca3005b502c ext4: set goal start correctly in ext4_mb_normalize_request
    4c2c8f959984 gfs2: Fix inode height consistency check
    697f92f8317e scsi: message: mptlan: Fix use after free bug in mptlan_remove() due to race condition
    f748e1525383 lib: cpu_rmap: Avoid use after free on rmap->obj array entries
    4621e24c9257 scsi: target: iscsit: Free cmds before session free
    2ea171230a39 net: Catch invalid index in XPS mapping
    8b61e7ad13f2 net: pasemi: Fix return type of pasemi_mac_start_tx()
    e0e7faee3a7d scsi: lpfc: Prevent lpfc_debugfs_lockstat_write() buffer overflow
    22ab5fed07ad ext2: Check block size validity during mount
    4e8dc0e5c763 wifi: brcmfmac: cfg80211: Pass the PMK in binary instead of hex
    e8d49d1c5968 bpf: Annotate data races in bpf_local_storage
    30d041c18dfb wifi: ath: Silence memcpy run-time false positive warning
    b8e7589f50b7 drm/amd: Fix an out of bounds error in BIOS parser
    978e0d05547a ACPICA: ACPICA: check null return of ACPI_ALLOCATE_ZEROED in acpi_db_display_objects
    16359bc02c09 ACPICA: Avoid undefined behavior: applying zero offset to null pointer
    3f64a0e66469 drm/tegra: Avoid potential 32-bit integer overflow
    f718f1fd3e4c remoteproc: stm32_rproc: Add mutex protection for workqueue
    066b90bca755 ACPI: EC: Fix oops when removing custom query handlers
    7d8f5ccc826b firmware: arm_sdei: Fix sleep from invalid context BUG
    5c23f6da62f7 memstick: r592: Fix UAF bug in r592_remove due to race condition
    ae6769fb939c arm64: dts: qcom: msm8996: Add missing DWC3 quirks
    bb1616e1057d regmap: cache: Return error in cache sync operations for REGCACHE_NONE
    d5138ad7ca1d drm/amd/display: Use DC_LOG_DC in the trasform pixel function
    c8daee665858 fs: hfsplus: remove WARN_ON() from hfsplus_cat_{read,write}_inode()
    a7d21b858589 rcu: Protect rcu_print_task_exp_stall() ->exp_tasks access
    e4842de4ec13 refscale: Move shutdown from wait_event() to wait_event_idle()
    100c0ad6c045 ext4: allow ext4_get_group_info() to fail
    371d8b8ea0cb ext4: allow to find by goal if EXT4_MB_HINT_GOAL_ONLY is set
    8669fff0d0cd ext4: add mballoc stats proc file
    9b6a0c140e27 ext4: drop s_mb_bal_lock and convert protected fields to atomic
    0983142c5f17 ext4: remove redundant mb_regenerate_buddy()
    d48b7eea9469 ext4: fix lockdep warning when enabling MMP
    5c87115520d2 ext4: don't clear SB_RDONLY when remounting r/w until quota is re-enabled
    8284c7592d90 ext4: reflect error codes from ext4_multi_mount_protect() to its callers
    efd18a91c9c2 ext4: remove an unused variable warning with CONFIG_QUOTA=n
    df1be652a45f fbdev: arcfb: Fix error handling in arcfb_probe()
    bd6b353671fc drm/i915/dp: prevent potential div-by-zero
    8307e372e744 af_unix: Fix data races around sk->sk_shutdown.
    9b977b0cbb6d af_unix: Fix a data race of sk->sk_receive_queue->qlen.
    fb6ac4b5bdfe net: datagram: fix data-races in datagram_poll()
    f4a371d3f5a7 ipvlan:Fix out-of-bounds caused by unclear skb->cb
    963fe9ed8626 tcp: add annotations around sk->sk_shutdown accesses
    f86568eca4c9 tcp: factor out __tcp_close() helper
    34a5ee69ec62 net: add vlan_get_protocol_and_depth() helper
    9ccf3edbafba net: tap: check vlan with eth_type_vlan() method
    449391400960 net: deal with most data-races in sk_wait_event()
    1b33bdd76635 net: annotate sk->sk_err write from do_recvmmsg()
    f92557f79a60 netlink: annotate accesses to nlk->cb_running
    26001e75dc5c netfilter: conntrack: fix possible bug_on with enable_hooks=1
    d06f67b2b8dc net: Fix load-tearing on sk->sk_stamp in sock_recv_cmsgs().
    8eb35b1aca84 linux/dim: Do nothing if no time delta between samples
    4d3ae448e850 net: mdio: mvusb: Fix an error handling path in mvusb_mdio_probe()
    b882224d7367 ARM: 9296/1: HP Jornada 7XX: fix kernel-doc warnings
    139c27648f8d drm/mipi-dsi: Set the fwnode for mipi_dsi_device
    423908e89d7d driver core: add a helper to setup both the of_node and fwnode of a device

(From OE-Core rev: 2829482f2924082ad01f356ea281ed308e35d44f)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Xiangyu Chen
ed9558afb4 dbus: upgrade 1.14.6 -> 1.14.8
Update dbus to 1.14.8 to fix CVE-2023-34969 and serveral bugs

changes:
f90d4f1693/NEWS

commits:
55d11f57 doc/dbus-api-design: fix wrong closing tag
a96f417f CI: Run a detached pipeline for merge requests
9e0477fc CI: Only run for pushes to dbus
077f7e43 CI: Remove an obsolete workaround
07fe44f4 CI: Update Windows runners
ec708d55 CI: Avoid using a no-op download location that gives a 403 error
45e6e93e dbus_message_iter_get_signature: Fix two memory leaks on OOM
0bb1942e dbus-internals: use `_DBUS_FUNCTION_NAME` in `_dbus_verbose()`
8df1b8be dbus-sysdeps-win: do not log function name twice
5c3a4e81 dbus-spawn-win: use `_DBUS_FUNCTION_NAME` instead of `__FUNCTION__`
8e457296 Update NEWS
e1ffce17 Revert "CI: Remove an obsolete workaround"
40c0802f monitor test: Log the messages that we monitored
a70c8f2f bus: Assign a serial number for messages from the driver
39b5c617 monitor test: Reproduce #457
f99e5de1 Update NEWS
21414587 AUTHORS: Update
f90d4f16 Release v1.14.8

(From OE-Core rev: fc3067f163c21434d3f79d03b26b21165be6927a)

Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Wang Mingyu
5da269ca4a mobile-broadband-provider-info: upgrade 20221107 -> 20230416
(From OE-Core rev: 82cffbc90caeff76a8ebb7ff1527b69e21b8a967)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 125f72393c9b6fea02757cdc3a22696945e0f490)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Wang Mingyu
0ca44d55ad xdpyinfo: upgrade 1.3.3 -> 1.3.4
Changelog:
=========
configure: Make xf86misc support disabled by default
Variable scope reduction
Remove unnecessary downcast of double to float
Call memset() instead of hand-coding our own equivalent

(From OE-Core rev: 74fef3bca108017f8a1ce0e451b4b2172ae28fcf)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit d87785189336a69ae998f75394ceaebf63decb16)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Wang Mingyu
4d9ea41502 libxpm: upgrade 3.5.15 -> 3.5.16
Changelog:
===========
test: skip compressed file tests when --disable-open-zfile is used
itlab CI: build with each of --enable-open-zfile & --disable-open-zfile
configure: correct error message to suggest --disable-open-zfile
Fix a memleak in ParsePixels error code path
Fix CVE-2022-44617: Runaway loop with width of 0 and enormous height
open-zfile: Make compress & uncompress commands optional
Require LT_INIT from libtool 2 instead of deprecated AC_PROG_LIBTOOL
test: Use PACKAGE_BUGREPORT instead of hard-coded URL's
test: Add simple test cases for functions in src/rgb.c
xpmReadRgbNames: constify filename argument
XpmCreateDataFromXpmImage: Fix misleading indentation
parse.c: Wrap FREE_CIDX definition in do { ... } while(0)
parse.c: remove unused function xstrlcpy()

(From OE-Core rev: 22d9e097538f84a12dd262c1ae936fb8107c2768)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 4d9f0958eecdf683434d77a4f65611803cffd247)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Wang Mingyu
77847ecd60 fribidi: upgrade 1.0.12 -> 1.0.13
Changelog:
* Adding missing man pages to the tar release file.

(From OE-Core rev: 7e4915c4be7dca35a63a912a55bcfa525a532e22)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 0f6da8601fd4d992550e8afe7b09ba7c491250fd)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Wang Mingyu
ea017688a9 babeltrace2: upgrade 2.0.4 -> 2.0.5
Changelog:
==========
 * bt2: honor build system compiler/linker preferences
 * Fix: clear_string_field(): set first character to 0
 * Fix: src.ctf.fs: Not resolving event common ctx
 * debug-info: fix -Wenum-int-mismatch problem in copy_field_class_content_internal
 * fix: pass exec-prefix to python bindings install
 * fix: document proper Bison version requirement
 * cli: use return value of g_string_free
 * babeltrace2-query(1): erroneous parameter used in example
 * Fix: tests: print real values in a fixed format
 * Fix: bt2: autodisc: remove thread error while inserting status in map
 * tests: src.ctf.fs: add test for metadata with invalid syntax
 * tests: shorten names of session-rotation trace
 * bt2: ignore -Wredundant-decls warning
 * ctf: fix -Wformat-overflow error in ctf-meta-resolve.cpp
 * ctf-writer: fix -Wformat-overflow errors in resolve.c
 * Fix: src.text.details: use write_uint_prop_value to handle unsigned values in write_int_range
 * Add `dev-requirements.txt` for pip
 * Fix: src.ctf.lttng-live: consider empty metadata packet as retry
 * Fix: ctf: wrongfully requiring CTF metadata signature for every section
 * Fix: src.ctf.lttng-live: session closed before any metadata is received
 * fix: obsolete warnings with autoconf >= 2.71
 * fix: explicitly disable '-Wsuggest-attribute=format'
 * fix: set stable branch in gitreview config
 * Fix: ctf-writer: list of reserved keywords
 * compiler warning cleanup: is_signed_type: compare -1 to 1
 * Update working version to Babeltrace 2.0.5

(From OE-Core rev: 56121b2378899b928bec3a4eb8abe487789aff17)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit ae47b6c2a4bdee031d42687582049c15614faa6d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Archana Polampalli
8b56df5241 go: fix CVE-2023-29402
The go command may generate unexpected code at build time when using cgo.
This may result in unexpected behavior when running a go program which uses cgo.
This may occur when running an untrusted module which contains directories
with newline characters in their names. Modules which are retrieved using the go
command, i.e. via "go get", are not affected (modules retrieved using GOPATH-mode,
i.e. GO111MODULE=off, may be affected).

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-29402

Upstream patches:
4dae3bbe0e

(From OE-Core rev: aeb0829e52c60a77a2135af8332435b6e2db5b3d)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Ross Burton
e1f4f895ce ninja: ignore CVE-2021-4336, wrong ninja
(From OE-Core rev: c2dd2c13ff26c3f046e35a2f6b8afeb099ef422a)

(From OE-Core rev: 804067b760591d33cd49f8c31fa68a92fcbf5445)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9a106486ad)
Signed-off-by: virendra thakur <virendrak@kpit.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Hitendra Prajapati
214b973fbd libcap: CVE-2023-2602 Memory Leak on pthread_create() Error
Upstream-Status: Backport from https://git.kernel.org/pub/scm/libs/libcap/libcap.git/patch/?id=bc6b36682f188020ee4770fae1d41bde5b2c97bb

(From OE-Core rev: 7e4f3c51c0bac772bf56f69a3c065b2b2d095335)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Archana Polampalli
92a46e5fff go: fix CVE-2023-29405
The go command may execute arbitrary code at build time when using cgo.
This may occur when running "go get" on a malicious module, or when running
any other command which builds untrusted code. This is can by triggered by
linker flags, specified via a "#cgo LDFLAGS" directive. Flags containing
embedded spaces are mishandled, allowing disallowed flags to be smuggled
through the LDFLAGS sanitization by including them in the argument of
another flag. This only affects usage of the gccgo compiler.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-29405

Upstream patches:
6d8af00a63

(From OE-Core rev: 7ce6d0029effc06cff500271a124150f1a7db7b3)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
Archana Polampalli
19cce6f246 go: fix CVE-2023-29404
The go command may execute arbitrary code at build time when using cgo.
This may occur when running "go get" on a malicious module, or when running
any other command which builds untrusted code. This is can by triggered by
linker flags, specified via a "#cgo LDFLAGS" directive. The arguments for a
number of flags which are non-optional are incorrectly considered optional,
allowing disallowed flags to be smuggled through the LDFLAGS sanitization.
This affects usage of both the gc and gccgo compilers.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-29404

Upstream patches:
bbeb55f5fa

(From OE-Core rev: 3e51122f8e2b4a7cd2a1c711175e6daf59b8368b)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-07-01 08:37:24 -10:00
426 changed files with 41656 additions and 14992 deletions

View File

@@ -68,11 +68,11 @@ def main():
registered = False
for plugin in plugins:
if hasattr(plugin, 'tinfoil_init'):
plugin.tinfoil_init(tinfoil)
if hasattr(plugin, 'register_commands'):
registered = True
plugin.register_commands(subparsers)
if hasattr(plugin, 'tinfoil_init'):
plugin.tinfoil_init(tinfoil)
if not registered:
logger.error("No commands registered - missing plugins?")

View File

@@ -1974,11 +1974,19 @@ class RunQueueExecute:
self.setbuildable(revdep)
logger.debug("Marking task %s as buildable", revdep)
for t in self.sq_deferred.copy():
found = None
for t in sorted(self.sq_deferred.copy()):
if self.sq_deferred[t] == task:
logger.debug2("Deferred task %s now buildable" % t)
del self.sq_deferred[t]
update_scenequeue_data([t], self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self, summary=False)
# Allow the next deferred task to run. Any other deferred tasks should be deferred after that task.
# We shouldn't allow all to run at once as it is prone to races.
if not found:
bb.note("Deferred task %s now buildable" % t)
del self.sq_deferred[t]
update_scenequeue_data([t], self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self, summary=False)
found = t
else:
bb.note("Deferring %s after %s" % (t, found))
self.sq_deferred[t] = found
def task_complete(self, task):
self.stats.taskCompleted()

View File

@@ -34,16 +34,18 @@ Manual Organization
Here the folders corresponding to individual manuals:
* brief-yoctoprojectqs - Yocto Project Quick Start
* overview-manual - Yocto Project Overview and Concepts Manual
* sdk-manual - Yocto Project Software Development Kit (SDK) Developer's Guide.
* contributor-guide - Yocto Project and OpenEmbedded Contributor Guide
* ref-manual - Yocto Project Reference Manual
* bsp-guide - Yocto Project Board Support Package (BSP) Developer's Guide
* dev-manual - Yocto Project Development Tasks Manual
* kernel-dev - Yocto Project Linux Kernel Development Manual
* ref-manual - Yocto Project Reference Manual
* brief-yoctoprojectqs - Yocto Project Quick Start
* profile-manual - Yocto Project Profiling and Tracing Manual
* sdk-manual - Yocto Project Software Development Kit (SDK) Developer's Guide.
* toaster-manual - Toaster User Manual
* test-manual - Yocto Project Test Environment Manual
* migration-guides - Yocto Project Release and Migration Notes
Each folder is self-contained regarding content and figures.
@@ -129,6 +131,10 @@ Also install the "inkscape" package from your distribution.
Inkscape is need to convert SVG graphics to PNG (for EPUB
export) and to PDF (for PDF export).
Additionally install "fncychap.sty" TeX font if you want to build PDFs. Debian
and Ubuntu have it in "texlive-latex-extra" package while RedHat distributions
and OpenSUSE have it in "texlive-fncychap" package for example.
To build the documentation locally, run:
$ cd documentation
@@ -271,6 +277,19 @@ websites.
More information can be found here:
https://sublime-and-sphinx-guide.readthedocs.io/en/latest/references.html.
For external links, we use this syntax:
`link text <link URL>`__
instead of:
`link text <link URL>`_
Both syntaxes work, but the latter also creates a "link text" reference
target which could conflict with other references with the same name.
So, only use this variant when you wish to make multiple references
to this link, reusing only the target name.
See https://stackoverflow.com/questions/27420317/restructured-text-rst-http-links-underscore-vs-use
Anchor (<#link>) links are forbidden as they are not checked by Sphinx during
the build and may be broken without knowing about it.
@@ -340,13 +359,16 @@ The sphinx.ext.intersphinx extension is enabled by default
so that we can cross reference content from other Sphinx based
documentation projects, such as the BitBake manual.
References to the BitBake manual can be done:
References to the BitBake manual can directly be done:
- With a specific description instead of the section name:
:ref:`Azure Storage fetcher (az://) <bitbake:bitbake-user-manual/bitbake-user-manual-fetching:fetchers>`
:ref:`Azure Storage fetcher (az://) <bitbake-user-manual/bitbake-user-manual-fetching:fetchers>`
- With the section name:
:ref:`bitbake:bitbake-user-manual/bitbake-user-manual-intro:usage and syntax` option
- Linking to the entire BitBake manual:
:doc:`BitBake User Manual <bitbake:index>`
:ref:`bitbake-user-manual/bitbake-user-manual-intro:usage and syntax` option
If you want to refer to an entire document (or chapter) in the BitBake manual,
you have to use the ":doc:" macro with the "bitbake:" prefix:
- :doc:`BitBake User Manual <bitbake:index>`
- :doc:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata`" chapter
Note that a reference to a variable (:term:`VARIABLE`) automatically points to
the BitBake manual if the variable is not described in the Reference Manual's Variable Glossary.
@@ -355,6 +377,11 @@ BitBake manual as follows:
:term:`bitbake:BB_NUMBER_PARSE_THREADS`
This would be the same if we had identical document filenames in
both the Yocto Project and BitBake manuals:
:ref:`bitbake:directory/file:section title`
Submitting documentation changes
================================

View File

@@ -370,7 +370,7 @@ Follow these steps to add a hardware layer:
You can find
more information on adding layers in the
:ref:`dev-manual/common-tasks:adding a layer using the \`\`bitbake-layers\`\` script`
:ref:`dev-manual/layers:adding a layer using the \`\`bitbake-layers\`\` script`
section.
Completing these steps has added the ``meta-altera`` layer to your Yocto
@@ -405,7 +405,7 @@ The following commands run the tool to create a layer named
For more information
on layers and how to create them, see the
:ref:`dev-manual/common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`
:ref:`dev-manual/layers:creating a general layer using the \`\`bitbake-layers\`\` script`
section in the Yocto Project Development Tasks Manual.
Where To Go Next

View File

@@ -128,7 +128,7 @@ you want to work with, such as::
and so on.
For more information on layers, see the
":ref:`dev-manual/common-tasks:understanding and creating layers`"
":ref:`dev-manual/layers:understanding and creating layers`"
section of the Yocto Project Development Tasks Manual.
Preparing Your Build Host to Work With BSP Layers
@@ -464,7 +464,7 @@ requirements are handled with the ``COPYING.MIT`` file.
Licensing files can be MIT, BSD, GPLv*, and so forth. These files are
recommended for the BSP but are optional and totally up to the BSP
developer. For information on how to maintain license compliance, see
the ":ref:`dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle`"
the ":ref:`dev-manual/licenses:maintaining open source license compliance during your product's lifecycle`"
section in the Yocto Project Development Tasks Manual.
README File
@@ -590,7 +590,7 @@ filenames correspond to the values to which users have set the
These files define things such as the kernel package to use
(:term:`PREFERRED_PROVIDER` of
:ref:`virtual/kernel <dev-manual/common-tasks:using virtual providers>`),
:ref:`virtual/kernel <dev-manual/new-recipe:using virtual providers>`),
the hardware drivers to include in different types of images, any
special software components that are needed, any bootloader information,
and also any special image format requirements.
@@ -757,7 +757,7 @@ workflow.
OpenEmbedded build system knows about. For more information on
layers, see the ":ref:`overview-manual/yp-intro:the yocto project layer model`"
section in the Yocto Project Overview and Concepts Manual. You can also
reference the ":ref:`dev-manual/common-tasks:understanding and creating layers`"
reference the ":ref:`dev-manual/layers:understanding and creating layers`"
section in the Yocto Project Development Tasks Manual. For more
information on BSP layers, see the ":ref:`bsp-guide/bsp:bsp layers`"
section.
@@ -816,7 +816,7 @@ workflow.
key configuration files are configured appropriately: the
``conf/local.conf`` and the ``conf/bblayers.conf`` file. You must
make the OpenEmbedded build system aware of your new layer. See the
":ref:`dev-manual/common-tasks:enabling your layer`"
":ref:`dev-manual/layers:enabling your layer`"
section in the Yocto Project Development Tasks Manual for information
on how to let the build system know about your new layer.
@@ -845,7 +845,7 @@ Before looking at BSP requirements, you should consider the following:
layer that can be added to the Yocto Project. For guidelines on
creating a layer that meets these base requirements, see the
":ref:`bsp-guide/bsp:bsp layers`" section in this manual and the
":ref:`dev-manual/common-tasks:understanding and creating layers`"
":ref:`dev-manual/layers:understanding and creating layers`"
section in the Yocto Project Development Tasks Manual.
- The requirements in this section apply regardless of how you package
@@ -927,8 +927,8 @@ Yocto Project:
- The name and contact information for the BSP layer maintainer.
This is the person to whom patches and questions should be sent.
For information on how to find the right person, see the
":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
section in the Yocto Project Development Tasks Manual.
:doc:`../contributor-guide/submit-changes` section in the Yocto Project and
OpenEmbedded Contributor Guide.
- Instructions on how to build the BSP using the BSP layer.
@@ -1013,7 +1013,7 @@ the following:
- Create a ``*.bbappend`` file for the modified recipe. For information on using
append files, see the
":ref:`dev-manual/common-tasks:appending other layers metadata with your layer`"
":ref:`dev-manual/layers:appending other layers metadata with your layer`"
section in the Yocto Project Development Tasks Manual.
- Ensure your directory structure in the BSP layer that supports your
@@ -1117,7 +1117,7 @@ list describes them in order of preference:
Specifying the matching license string signifies that you agree to
the license. Thus, the build system can build the corresponding
recipe and include the component in the image. See the
":ref:`dev-manual/common-tasks:enabling commercially licensed recipes`"
":ref:`dev-manual/licenses:enabling commercially licensed recipes`"
section in the Yocto Project Development Tasks Manual for details on
how to use these variables.
@@ -1169,7 +1169,7 @@ Use these steps to create a BSP layer:
``create-layer`` subcommand to create a new general layer. For
instructions on how to create a general layer using the
``bitbake-layers`` script, see the
":ref:`dev-manual/common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`"
":ref:`dev-manual/layers:creating a general layer using the \`\`bitbake-layers\`\` script`"
section in the Yocto Project Development Tasks Manual.
- *Create a Layer Configuration File:* Every layer needs a layer
@@ -1229,7 +1229,7 @@ configuration files is to examine various files for BSP from the
:yocto_git:`Source Repositories <>`.
For a detailed description of this particular layer configuration file,
see ":ref:`step 3 <dev-manual/common-tasks:creating your own layer>`"
see ":ref:`step 3 <dev-manual/layers:creating your own layer>`"
in the discussion that describes how to create layers in the Yocto
Project Development Tasks Manual.

View File

@@ -0,0 +1,31 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Identify the component
**********************
The Yocto Project and OpenEmbedded ecosystem is built of :term:`layers <Layer>`
so the first step is to identify the component where the issue likely lies.
For example, if you have a hardware issue, it is likely related to the BSP
you are using and the best place to seek advice would be from the BSP provider
or :term:`layer`. If the issue is a build/configuration one and a distro is in
use, they would likely be the first place to ask questions. If the issue is a
generic one and/or in the core classes or metadata, the core layer or BitBake
might be the appropriate component.
Each metadata layer being used should contain a ``README`` file and that should
explain where to report issues, where to send changes and how to contact the
maintainers.
If the issue is in the core metadata layer (OpenEmbedded-Core) or in BitBake,
issues can be reported in the :yocto_bugs:`Yocto Project Bugzilla <>`. The
:yocto_lists:`yocto </g/yocto>` mailing list is a general “catch-all” location
where questions can be sent if you cant work out where something should go.
:term:`Poky` is a commonly used “combination” repository where multiple
components have been combined (:oe_git:`bitbake </bitbake>`,
:oe_git:`openembedded-core </openembedded-core>`,
:yocto_git:`meta-yocto </meta-yocto>` and
:yocto_git:`yocto-docs </yocto-docs>`). Patches should be submitted against the
appropriate individual component rather than :term:`Poky` itself as detailed in
the appropriate ``README`` file.

View File

@@ -0,0 +1,26 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
================================================
Yocto Project and OpenEmbedded Contributor Guide
================================================
The Yocto Project and OpenEmbedded are open-source, community-based projects so
contributions are very welcome, it is how the code evolves and everyone can
effect change. Contributions take different forms, if you have a fix for an
issue youve run into, a patch is the most appropriate way to contribute it.
If you run into an issue but dont have a solution, opening a defect in
:yocto_bugs:`Bugzilla <>` or asking questions on the mailing lists might be
more appropriate. This guide intends to point you in the right direction to
this.
.. toctree::
:caption: Table of Contents
:numbered:
identify-component
report-defect
recipe-style-guide
submit-changes
.. include:: /boilerplate.rst

View File

@@ -0,0 +1,338 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Recipe Style Guide
******************
Recipe Naming Conventions
=========================
In general, most recipes should follow the naming convention
``recipes-category/package/packagename_version.bb``. Recipes for related
projects may share the same package directory. ``packagename``, ``category``,
and ``package`` may contain hyphens, but hyphens are not allowed in ``version``.
If the recipe is tracking a Git revision that does not correspond to a released
version of the software, ``version`` may be ``git`` (e.g. ``packagename_git.bb``)
Version Policy
==============
Our versions follow the form ``<package epoch>:<package version>-<package revision>``
or in BitBake variable terms ${:term:`PE`}:${:term:`PV`}-${:term:`PR`}. We
generally follow the `Debian <https://www.debian.org/doc/debian-policy/ch-controlfields.html#version>`__
version policy which defines these terms.
In most cases the version :term:`PV` will be set automatically from the recipe
file name. It is recommended to use released versions of software as these are
revisions that upstream are expecting people to use.
Package versions should always compare and sort correctly so that upgrades work
as expected. With conventional versions such as ``1.4`` upgrading ``to 1.5``
this happens naturally, but some versions don't sort. For example,
``1.5 Release Candidate 2`` could be written as ``1.5rc2`` but this sorts after
``1.5``, so upgrades from feeds won't happen correctly.
Instead the tilde (``~``) operator can be used, which sorts before the empty
string so ``1.5~rc2`` comes before ``1.5``. There is a historical syntax which
may be found where :term:`PV` is set as a combination of the prior version
``+`` the pre-release version, for example ``PV=1.4+1.5rc2``. This is a valid
syntax but the tilde form is preferred.
For version comparisons, the ``opkg-compare-versions`` program from
``opkg-utils`` can be useful when attempting to determine how two version
numbers compare to each other. Our definitive version comparison algorithm is
the one within bitbake which aims to match those of the package managers and
Debian policy closely.
When a recipe references a git revision that does not correspond to a released
version of software (e.g. is not a tagged version), the :term:`PV` variable
should include the Git revision using the following to make the
version clear::
PV = "<version>+git${SRCPV}"
In this case, ``<version>`` should be the most recently released version of the
software from the current source revision (``git describe`` can be useful for
determining this). Whilst not recommended for published layers, this format is
also useful when using :term:`AUTOREV` to set the recipe to increment source
control revisions automatically, which can be useful during local development.
Version Number Changes
======================
The :term:`PR` variable is used to indicate different revisions of a recipe
that reference the same upstream source version. It can be used to force a
new version of a package to be installed onto a device from a package feed.
These once had to be set manually but in most cases these can now be set and
incremented automatically by a PR Server connected with a package feed.
When :term:`PV` increases, any existing :term:`PR` value can and should be
removed.
If :term:`PV` changes in such a way that it does not increase with respect to
the previous value, you need to increase :term:`PE` to ensure package managers
will upgrade it correctly. If unset you should set :term:`PE` to "1" since
the default of empty is easily confused with "0" depending on the package
manager. :term:`PE` can only have an integer value.
Recipe formatting
=================
Variable Formatting
-------------------
- Variable assignment should a space around each side of the operator, e.g.
``FOO = "bar"``, not ``FOO="bar"``.
- Double quotes should be used on the right-hand side of the assignment,
e.g. ``FOO = "bar"`` not ``FOO = 'bar'``
- Spaces should be used for indenting variables, with 4 spaces per tab
- Long variables should be split over multiple lines when possible by using
the continuation character (``\``)
- When splitting a long variable over multiple lines, all continuation lines
should be indented (with spaces) to align with the start of the quote on the
first line::
FOO = "this line is \
long \
"
Instead of::
FOO = "this line is \
long \
"
Python Function formatting
--------------------------
- Spaces must be used for indenting Python code, with 4 spaces per tab
Shell Function formatting
-------------------------
- The formatting of shell functions should be consistent within layers.
Some use tabs, some use spaces.
Recipe metadata
===============
Required Variables
------------------
The following variables should be included in all recipes:
- :term:`SUMMARY`: a one line description of the upstream project
- :term:`DESCRIPTION`: an extended description of the upstream project,
possibly with multiple lines. If no reasonable description can be written,
this may be omitted as it defaults to :term:`SUMMARY`.
- :term:`HOMEPAGE`: the URL to the upstream projects homepage.
- :term:`BUGTRACKER`: the URL upstream projects bug tracking website,
if applicable.
Recipe Ordering
---------------
When a variable is defined in recipes and classes, variables should follow the
general order when possible:
- :term:`SUMMARY`
- :term:`DESCRIPTION`
- :term:`HOMEPAGE`
- :term:`BUGTRACKER`
- :term:`SECTION`
- :term:`LICENSE`
- :term:`LIC_FILES_CHKSUM`
- :term:`DEPENDS`
- :term:`PROVIDES`
- :term:`PV`
- :term:`SRC_URI`
- :term:`SRCREV`
- :term:`S`
- ``inherit ...``
- :term:`PACKAGECONFIG`
- Build class specific variables such as ``EXTRA_QMAKEVARS_POST`` and :term:`EXTRA_OECONF`
- Tasks such as :ref:`ref-tasks-configure`
- :term:`PACKAGE_ARCH`
- :term:`PACKAGES`
- :term:`FILES`
- :term:`RDEPENDS`
- :term:`RRECOMMENDS`
- :term:`RSUGGESTS`
- :term:`RPROVIDES`
- :term:`RCONFLICTS`
- :term:`BBCLASSEXTEND`
There are some cases where ordering is important and these cases would override
this default order. Examples include:
- :term:`PACKAGE_ARCH` needing to be set before ``inherit packagegroup``
Tasks should be ordered based on the order they generally execute. For commonly
used tasks this would be:
- :ref:`ref-tasks-fetch`
- :ref:`ref-tasks-unpack`
- :ref:`ref-tasks-patch`
- :ref:`ref-tasks-prepare_recipe_sysroot`
- :ref:`ref-tasks-configure`
- :ref:`ref-tasks-compile`
- :ref:`ref-tasks-install`
- :ref:`ref-tasks-populate_sysroot`
- :ref:`ref-tasks-package`
Custom tasks should be sorted similarly.
Package specific variables are typically grouped together, e.g.::
RDEPENDS:${PN} = “foo”
RDEPENDS:${PN}-libs = “bar”
RRECOMMENDS:${PN} = “one”
RRECOMMENDS:${PN}-libs = “two”
Recipe License Fields
---------------------
Recipes need to define both the :term:`LICENSE` and
:term:`LIC_FILES_CHKSUM` variables:
- :term:`LICENSE`: This variable specifies the license for the software.
If you do not know the license under which the software you are
building is distributed, you should go to the source code and look
for that information. Typical files containing this information
include ``COPYING``, :term:`LICENSE`, and ``README`` files. You could
also find the information near the top of a source file. For example,
given a piece of software licensed under the GNU General Public
License version 2, you would set :term:`LICENSE` as follows::
LICENSE = "GPL-2.0-only"
The licenses you specify within :term:`LICENSE` can have any name as long
as you do not use spaces, since spaces are used as separators between
license names. For standard licenses, use the names of the files in
``meta/files/common-licenses/`` or the :term:`SPDXLICENSEMAP` flag names
defined in ``meta/conf/licenses.conf``.
- :term:`LIC_FILES_CHKSUM`: The OpenEmbedded build system uses this
variable to make sure the license text has not changed. If it has,
the build produces an error and it affords you the chance to figure
it out and correct the problem.
You need to specify all applicable licensing files for the software.
At the end of the configuration step, the build process will compare
the checksums of the files to be sure the text has not changed. Any
differences result in an error with the message containing the
current checksum. For more explanation and examples of how to set the
:term:`LIC_FILES_CHKSUM` variable, see the
":ref:`dev-manual/licenses:tracking license changes`" section.
To determine the correct checksum string, you can list the
appropriate files in the :term:`LIC_FILES_CHKSUM` variable with incorrect
md5 strings, attempt to build the software, and then note the
resulting error messages that will report the correct md5 strings.
See the ":ref:`dev-manual/new-recipe:fetching code`" section for
additional information.
Here is an example that assumes the software has a ``COPYING`` file::
LIC_FILES_CHKSUM = "file://COPYING;md5=xxx"
When you try to build the
software, the build system will produce an error and give you the
correct string that you can substitute into the recipe file for a
subsequent build.
Tips and Guidelines for Writing Recipes
---------------------------------------
- Use :term:`BBCLASSEXTEND` instead of creating separate recipes such as ``-native``
and ``-nativesdk`` ones, whenever possible. This avoids having to maintain multiple
recipe files at the same time.
Patch Upstream Status
=====================
In order to keep track of patches applied by recipes and ultimately reduce the
number of patches that need maintaining, the OpenEmbedded build system
requires information about the upstream status of each patch.
In its description, each patch should provide detailed information about the
bug that it addresses, such as the URL in a bug tracking system and links
to relevant mailing list archives.
Then, you should also add an ``Upstream-Status:`` tag containing one of the
following status strings:
``Pending``
No determination has been made yet or not yet submitted to upstream.
``Submitted [where]``
Submitted to upstream, waiting for approval. Optionally include where
it was submitted, such as the author, mailing list, etc.
``Accepted``
Accepted in upstream, expect it to be removed at next update, include
expected version info.
``Backport``
Backported from new upstream version, because we are at a fixed version,
include upstream version info.
``Denied``
Not accepted by upstream, include reason in patch.
``Inactive-Upstream [lastcommit: when (and/or) lastrelease: when]``
The upstream is no longer available. This typically means a defunct project
where no activity has happened for a long time --- measured in years. To make
that judgement, it is recommended to look at not only when the last release
happened, but also when the last commit happened, and whether newly made bug
reports and merge requests since that time receive no reaction. It is also
recommended to add to the patch description any relevant links where the
inactivity can be clearly seen.
``Inappropriate [reason]``
The patch is not appropriate for upstream, include a brief reason on the
same line enclosed with ``[]``. The reason can be:
- ``not author`` (you are not the author and do not intend to upstream this,
the source must be listed in the comments)
- ``native``
- ``licensing``
- ``configuration``
- ``enable feature``
- ``disable feature``
- ``bugfix`` (add bug URL here)
- ``embedded specific``
- ``other`` (give details in comments)
The various ``Inappropriate [reason]`` status items are meant to indicate that
the person responsible for adding this patch to the system does not intend to
upstream the patch for a specific reason.
Of course, if another person later takes care of submitting this patch upstream,
the status should be changed to ``Submitted [where]``, and an additional
``Signed-off-by:`` line should be added to the patch by the person claiming
responsibility for upstreaming.
For example, if the patch has been submitted upstream::
rpm: Adjusted the foo setting in bar
[RPM Ticket #65] -- http://rpm5.org/cvs/tktview?tn=65,5
The foo setting in bar was decreased from X to X-50% in order to
ensure we don't exhaust all system memory with foobar threads.
Upstream-Status: Submitted [rpm5-devel@rpm5.org]
Signed-off-by: Joe Developer <joe.developer@example.com>
A future update can change the value to ``Accepted`` or ``Denied`` as
appropriate.

View File

@@ -0,0 +1,67 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Reporting a Defect Against the Yocto Project and OpenEmbedded
**************************************************************
You can use the Yocto Project instance of
`Bugzilla <https://www.bugzilla.org/about/>`__ to submit a defect (bug)
against BitBake, OpenEmbedded-Core, against any other Yocto Project component
or for tool issues. For additional information on this implementation of
Bugzilla see the ":ref:`Yocto Project Bugzilla <resources-bugtracker>`" section
in the Yocto Project Reference Manual. For more detail on any of the following
steps, see the Yocto Project
:yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>`.
Use the following general steps to submit a bug:
#. Open the Yocto Project implementation of :yocto_bugs:`Bugzilla <>`.
#. Click "File a Bug" to enter a new bug.
#. Choose the appropriate "Classification", "Product", and "Component"
for which the bug was found. Bugs for the Yocto Project fall into
one of several classifications, which in turn break down into
several products and components. For example, for a bug against the
``meta-intel`` layer, you would choose "Build System, Metadata &
Runtime", "BSPs", and "bsps-meta-intel", respectively.
#. Choose the "Version" of the Yocto Project for which you found the
bug (e.g. &DISTRO;).
#. Determine and select the "Severity" of the bug. The severity
indicates how the bug impacted your work.
#. Choose the "Hardware" that the bug impacts.
#. Choose the "Architecture" that the bug impacts.
#. Choose a "Documentation change" item for the bug. Fixing a bug might
or might not affect the Yocto Project documentation. If you are
unsure of the impact to the documentation, select "Don't Know".
#. Provide a brief "Summary" of the bug. Try to limit your summary to
just a line or two and be sure to capture the essence of the bug.
#. Provide a detailed "Description" of the bug. You should provide as
much detail as you can about the context, behavior, output, and so
forth that surrounds the bug. You can even attach supporting files
for output from logs by using the "Add an attachment" button.
#. Click the "Submit Bug" button submit the bug. A new Bugzilla number
is assigned to the bug and the defect is logged in the bug tracking
system.
Once you file a bug, the bug is processed by the Yocto Project Bug
Triage Team and further details concerning the bug are assigned (e.g.
priority and owner). You are the "Submitter" of the bug and any further
categorization, progress, or comments on the bug result in Bugzilla
sending you an automated email concerning the particular change or
progress to the bug.
There are no guarantees about if or when a bug might be worked on since an
open-source project has no dedicated engineering resources. However, the
project does have a good track record of resolving common issues over the
medium and long term. We do encourage people to file bugs so issues are
at least known about. It helps other users when they find somebody having
the same issue as they do, and an issue that is unknown is much less likely
to ever be fixed!

View File

@@ -0,0 +1,754 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Contributing Changes to a Component
************************************
Contributions to the Yocto Project and OpenEmbedded are very welcome.
Because the system is extremely configurable and flexible, we recognize
that developers will want to extend, configure or optimize it for their
specific uses.
.. _ref-why-mailing-lists:
Contributing through mailing lists --- Why not using web-based workflows?
=========================================================================
Both Yocto Project and OpenEmbedded have many key components that are
maintained by patches being submitted on mailing lists. We appreciate this
approach does look a little old fashioned when other workflows are available
through web technology such as GitHub, GitLab and others. Since we are often
asked this question, weve decided to document the reasons for using mailing
lists.
One significant factor is that we value peer review. When a change is proposed
to many of the core pieces of the project, it helps to have many eyes of review
go over them. Whilst there is ultimately one maintainer who needs to make the
final call on accepting or rejecting a patch, the review is made by many eyes
and the exact people reviewing it are likely unknown to the maintainer. It is
often the surprise reviewer that catches the most interesting issues!
This is in contrast to the "GitHub" style workflow where either just a
maintainer makes that review, or review is specifically requested from
nominated people. We believe there is significant value added to the codebase
by this peer review and that moving away from mailing lists would be to the
detriment of our code.
We also need to acknowledge that many of our developers are used to this
mailing list workflow and have worked with it for years, with tools and
processes built around it. Changing away from this would result in a loss
of key people from the project, which would again be to its detriment.
The projects are acutely aware that potential new contributors find the
mailing list approach off-putting and would prefer a web-based GUI.
Since we dont believe that can work for us, the project is aiming to ensure
`patchwork <https://patchwork.yoctoproject.org/>`__ is available to help track
patch status and also looking at how tooling can provide more feedback to users
about patch status. We are looking at improving tools such as ``patchtest`` to
test user contributions before they hit the mailing lists and also at better
documenting how to use such workflows since we recognise that whilst this was
common knowledge a decade ago, it might not be as familiar now.
Preparing Changes for Submission
================================
Set up Git
----------
The first thing to do is to install Git packages. Here is an example
on Debian and Ubuntu::
sudo aptitude install git-core git-email
Then, you need to set a name and e-mail address that Git will
use to identify your commits::
git config --global user.name "Ada Lovelace"
git config --global user.email "ada.lovelace@gmail.com"
Clone the Git repository for the component to modify
----------------------------------------------------
After identifying the component to modify as described in the
":doc:`../contributor-guide/identify-component`" section, clone the
corresponding Git repository. Here is an example for OpenEmbedded-Core::
git clone https://git.openembedded.org/openembedded-core
cd openembedded-core
Create a new branch
-------------------
Then, create a new branch in your local Git repository
for your changes, starting from the reference branch in the upstream
repository (often called ``master``)::
$ git checkout <ref-branch>
$ git checkout -b my-changes
If you have completely unrelated sets of changes to submit, you should even
create one branch for each set.
Implement and commit changes
----------------------------
In each branch, you should group your changes into small, controlled and
isolated ones. Keeping changes small and isolated aids review, makes
merging/rebasing easier and keeps the change history clean should anyone need
to refer to it in future.
To this purpose, you should create *one Git commit per change*,
corresponding to each of the patches you will eventually submit.
See `further guidance <https://www.kernel.org/doc/html/latest/process/submitting-patches.html#separate-your-changes>`__
in the Linux kernel documentation if needed.
For example, when you intend to add multiple new recipes, each recipe
should be added in a separate commit. For upgrades to existing recipes,
the previous version should usually be deleted as part of the same commit
to add the upgraded version.
#. *Stage Your Changes:* Stage your changes by using the ``git add``
command on each file you modified. If you want to stage all the
files you modified, you can even use the ``git add -A`` command.
#. *Commit Your Changes:* This is when you can create separate commits. For
each commit to create, use the ``git commit -s`` command with the files
or directories you want to include in the commit::
$ git commit -s file1 file2 dir1 dir2 ...
To include **a**\ ll staged files::
$ git commit -sa
- The ``-s`` option of ``git commit`` adds a "Signed-off-by:" line
to your commit message. There is the same requirement for contributing
to the Linux kernel. Adding such a line signifies that you, the
submitter, have agreed to the `Developer's Certificate of Origin 1.1
<https://www.kernel.org/doc/html/latest/process/submitting-patches.html#sign-your-work-the-developer-s-certificate-of-origin>`__
as follows:
.. code-block:: none
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
- Provide a single-line summary of the change and, if more
explanation is needed, provide more detail in the body of the
commit. This summary is typically viewable in the "shortlist" of
changes. Thus, providing something short and descriptive that
gives the reader a summary of the change is useful when viewing a
list of many commits. You should prefix this short description
with the recipe name (if changing a recipe), or else with the
short form path to the file being changed.
.. note::
To find a suitable prefix for the commit summary, a good idea
is to look for prefixes used in previous commits touching the
same files or directories::
git log --oneline <paths>
- For the body of the commit message, provide detailed information
that describes what you changed, why you made the change, and the
approach you used. It might also be helpful if you mention how you
tested the change. Provide as much detail as you can in the body
of the commit message.
.. note::
If the single line summary is enough to describe a simple
change, the body of the commit message can be left empty.
- If the change addresses a specific bug or issue that is associated
with a bug-tracking ID, include a reference to that ID in your
detailed description. For example, the Yocto Project uses a
specific convention for bug references --- any commit that addresses
a specific bug should use the following form for the detailed
description. Be sure to use the actual bug-tracking ID from
Bugzilla for bug-id::
Fixes [YOCTO #bug-id]
detailed description of change
#. *Crediting contributors:* By using the ``git commit --amend`` command,
you can add some tags to the commit description to credit other contributors
to the change:
- ``Reported-by``: name and email of a person reporting a bug
that your commit is trying to fix. This is a good practice
to encourage people to go on reporting bugs and let them
know that their reports are taken into account.
- ``Suggested-by``: name and email of a person to credit for the
idea of making the change.
- ``Tested-by``, ``Reviewed-by``: name and email for people having
tested your changes or reviewed their code. These fields are
usually added by the maintainer accepting a patch, or by
yourself if you submitted your patches to early reviewers,
or are submitting an unmodified patch again as part of a
new iteration of your patch series.
- ``CC:`` Name and email of people you want to send a copy
of your changes to. This field will be used by ``git send-email``.
See `more guidance about using such tags
<https://www.kernel.org/doc/html/latest/process/submitting-patches.html#using-reported-by-tested-by-reviewed-by-suggested-by-and-fixes>`__
in the Linux kernel documentation.
Creating Patches
================
Here is the general procedure on how to create patches to be sent through email:
#. *Describe the Changes in your Branch:* If you have more than one commit
in your branch, it's recommended to provide a cover letter describing
the series of patches you are about to send.
For this purpose, a good solution is to store the cover letter contents
in the branch itself::
git branch --edit-description
This will open a text editor to fill in the description for your
changes. This description can be updated when necessary and will
be used by Git to create the cover letter together with the patches.
It is recommended to start this description with a title line which
will serve a the subject line for the cover letter.
#. *Generate Patches for your Branch:* The ``git format-patch`` command will
generate patch files for each of the commits in your branch. You need
to pass the reference branch your branch starts from.
If you branch didn't need a description in the previous step::
$ git format-patch <ref-branch>
If you filled a description for your branch, you will want to generate
a cover letter too::
$ git format-patch --cover-letter --cover-from-description=auto <ref-branch>
After the command is run, the current directory contains numbered
``.patch`` files for the commits in your branch. If you have a cover
letter, it will be in the ``0000-cover-letter.patch``.
.. note::
The ``--cover-from-description=auto`` option makes ``git format-patch``
use the first paragraph of the branch description as the cover
letter title. Another possibility, which is easier to remember, is to pass
only the ``--cover-letter`` option, but you will have to edit the
subject line manually every time you generate the patches.
See the `git format-patch manual page <https://git-scm.com/docs/git-format-patch>`__
for details.
#. *Review each of the Patch Files:* This final review of the patches
before sending them often allows to view your changes from a different
perspective and discover defects such as typos, spacing issues or lines
or even files that you didn't intend to modify. This review should
include the cover letter patch too.
If necessary, rework your commits as described in
":ref:`contributor-guide/submit-changes:taking patch review into account`".
Sending the Patches via Email
=============================
Using Git to Send Patches
-------------------------
To submit patches through email, it is very important that you send them
without any whitespace or HTML formatting that either you or your mailer
introduces. The maintainer that receives your patches needs to be able
to save and apply them directly from your emails, using the ``git am``
command.
Using the ``git send-email`` command is the only error-proof way of sending
your patches using email since there is no risk of compromising whitespace
in the body of the message, which can occur when you use your own mail
client. It will also properly include your patches as *inline attachments*,
which is not easy to do with standard e-mail clients without breaking lines.
If you used your regular e-mail client and shared your patches as regular
attachments, reviewers wouldn't be able to quote specific sections of your
changes and make comments about them.
Setting up Git to Send Email
----------------------------
The ``git send-email`` command can send email by using a local or remote
Mail Transport Agent (MTA) such as ``msmtp``, ``sendmail``, or
through a direct SMTP configuration in your Git ``~/.gitconfig`` file.
Here are the settings for letting ``git send-email`` send e-mail through your
regular STMP server, using a Google Mail account as an example::
git config --global sendemail.smtpserver smtp.gmail.com
git config --global sendemail.smtpserverport 587
git config --global sendemail.smtpencryption tls
git config --global sendemail.smtpuser ada.lovelace@gmail.com
git config --global sendemail.smtppass = XXXXXXXX
These settings will appear in the ``.gitconfig`` file in your home directory.
If you neither can use a local MTA nor SMTP, make sure you use an email client
that does not touch the message (turning spaces in tabs, wrapping lines, etc.).
A good mail client to do so is Pine (or Alpine) or Mutt. For more
information about suitable clients, see `Email clients info for Linux
<https://www.kernel.org/doc/html/latest/process/email-clients.html>`__
in the Linux kernel sources.
If you use such clients, just include the patch in the body of your email.
Finding a Suitable Mailing List
-------------------------------
You should send patches to the appropriate mailing list so that they can be
reviewed by the right contributors and merged by the appropriate maintainer.
The specific mailing list you need to use depends on the location of the code
you are changing.
If people have concerns with any of the patches, they will usually voice
their concern over the mailing list. If patches do not receive any negative
reviews, the maintainer of the affected layer typically takes them, tests them,
and then based on successful testing, merges them.
In general, each component (e.g. layer) should have a ``README`` file
that indicates where to send the changes and which process to follow.
The "poky" repository, which is the Yocto Project's reference build
environment, is a hybrid repository that contains several individual
pieces (e.g. BitBake, Metadata, documentation, and so forth) built using
the combo-layer tool. The upstream location used for submitting changes
varies by component:
- *Core Metadata:* Send your patches to the
:oe_lists:`openembedded-core </g/openembedded-core>`
mailing list. For example, a change to anything under the ``meta`` or
``scripts`` directories should be sent to this mailing list.
- *BitBake:* For changes to BitBake (i.e. anything under the
``bitbake`` directory), send your patches to the
:oe_lists:`bitbake-devel </g/bitbake-devel>`
mailing list.
- *"meta-\*" trees:* These trees contain Metadata. Use the
:yocto_lists:`poky </g/poky>` mailing list.
- *Documentation*: For changes to the Yocto Project documentation, use the
:yocto_lists:`docs </g/docs>` mailing list.
For changes to other layers and tools hosted in the Yocto Project source
repositories (i.e. :yocto_git:`git.yoctoproject.org <>`), use the
:yocto_lists:`yocto </g/yocto/>` general mailing list.
For changes to other layers hosted in the OpenEmbedded source
repositories (i.e. :oe_git:`git.openembedded.org <>`), use
the :oe_lists:`openembedded-devel </g/openembedded-devel>`
mailing list, unless specified otherwise in the layer's ``README`` file.
If you intend to submit a new recipe that neither fits into the core Metadata,
nor into :oe_git:`meta-openembedded </meta-openembedded/>`, you should
look for a suitable layer in https://layers.openembedded.org. If similar
recipes can be expected, you may consider :ref:`dev-manual/layers:creating your own layer`.
If in doubt, please ask on the :yocto_lists:`yocto </g/yocto/>` general mailing list
or on the :oe_lists:`openembedded-devel </g/openembedded-devel>` mailing list.
Subscribing to the Mailing List
-------------------------------
After identifying the right mailing list to use, you will have to subscribe to
it if you haven't done it yet.
If you attempt to send patches to a list you haven't subscribed to, your email
will be returned as undelivered.
However, if you don't want to be receive all the messages sent to a mailing list,
you can set your subscription to "no email". You will still be a subscriber able
to send messages, but you won't receive any e-mail. If people reply to your message,
their e-mail clients will default to including your email address in the
conversation anyway.
Anyway, you'll also be able to access the new messages on mailing list archives,
either through a web browser, or for the lists archived on https://lore.kernelorg,
through an individual newsgroup feed or a git repository.
Sending Patches via Email
-------------------------
At this stage, you are ready to send your patches via email. Here's the
typical usage of ``git send-email``::
git send-email --to <mailing-list-address> *.patch
Then, review each subject line and list of recipients carefully, and then
and then allow the command to send each message.
You will see that ``git send-email`` will automatically copy the people listed
in any commit tags such as ``Signed-off-by`` or ``Reported-by``.
In case you are sending patches for :oe_git:`meta-openembedded </meta-openembedded/>`
or any layer other than :oe_git:`openembedded-core </openembedded-core/>`,
please add the appropriate prefix so that it is clear which layer the patch is intended
to be applied to::
git send-email --subject-prefix="meta-oe][PATCH" ...
.. note::
It is actually possible to send patches without generating them
first. However, make sure you have reviewed your changes carefully
because ``git send-email`` will just show you the title lines of
each patch.
Here's a command you can use if you just have one patch in your
branch::
git send-email --to <mailing-list-address> -1
If you have multiple patches and a cover letter, you can send
patches for all the commits between the reference branch
and the tip of your branch::
git send-email --cover-letter --cover-from-description=auto --to <mailing-list-address> -M <ref-branch>
See the `git send-email manual page <https://git-scm.com/docs/git-send-email>`__
for details.
Troubleshooting Email Issues
----------------------------
Fixing your From identity
~~~~~~~~~~~~~~~~~~~~~~~~~
We have a frequent issue with contributors whose patches are received through
a ``From`` field which doesn't match the ``Signed-off-by`` information. Here is
a typical example for people sending from a domain name with :wikipedia:`DMARC`::
From: "Linus Torvalds via lists.openembedded.org <linus.torvalds=kernel.org@lists.openembedded.org>"
This ``From`` field is used by ``git am`` to recreate commits with the right
author name. The following will ensure that your e-mails have an additional
``From`` field at the beginning of the Email body, and therefore that
maintainers accepting your patches don't have to fix commit author information
manually::
git config --global sendemail.from "linus.torvalds@kernel.org"
The ``sendemail.from`` should match your ``user.email`` setting,
which appears in the ``Signed-off-by`` line of your commits.
Streamlining git send-email usage
---------------------------------
If you want to save time and not be forced to remember the right options to use
with ``git send-email``, you can use Git configuration settings.
- To set the right mailing list address for a given repository::
git config --local sendemail.to openembedded-devel@lists.openembedded.org
- If the mailing list requires a subject prefix for the layer
(this only works when the repository only contains one layer)::
git config --local format.subjectprefix "meta-something][PATCH"
Using Scripts to Push a Change Upstream and Request a Pull
==========================================================
For larger patch series it is preferable to send a pull request which not
only includes the patch but also a pointer to a branch that can be pulled
from. This involves making a local branch for your changes, pushing this
branch to an accessible repository and then using the ``create-pull-request``
and ``send-pull-request`` scripts from openembedded-core to create and send a
patch series with a link to the branch for review.
Follow this procedure to push a change to an upstream "contrib" Git
repository once the steps in
":ref:`contributor-guide/submit-changes:preparing changes for submission`"
have been followed:
.. note::
You can find general Git information on how to push a change upstream
in the
`Git Community Book <https://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows>`__.
#. *Request Push Access to an "Upstream" Contrib Repository:* Send an email to
``helpdesk@yoctoproject.org``:
- Attach your SSH public key which usually named ``id_rsa.pub.``.
If you don't have one generate it by running ``ssh-keygen -t rsa -b 4096 -C "your_email@example.com"``.
- List the repositories you're planning to contribute to.
- Include your preferred branch prefix for ``-contrib`` repositories.
#. *Push Your Commits to the "Contrib" Upstream:* Push your
changes to that repository::
$ git push upstream_remote_repo local_branch_name
For example, suppose you have permissions to push
into the upstream ``meta-intel-contrib`` repository and you are
working in a local branch named `your_name`\ ``/README``. The following
command pushes your local commits to the ``meta-intel-contrib``
upstream repository and puts the commit in a branch named
`your_name`\ ``/README``::
$ git push meta-intel-contrib your_name/README
#. *Determine Who to Notify:* Determine the maintainer or the mailing
list that you need to notify for the change.
Before submitting any change, you need to be sure who the maintainer
is or what mailing list that you need to notify. Use either these
methods to find out:
- *Maintenance File:* Examine the ``maintainers.inc`` file, which is
located in the :term:`Source Directory` at
``meta/conf/distro/include``, to see who is responsible for code.
- *Search by File:* Using :ref:`overview-manual/development-environment:git`, you can
enter the following command to bring up a short list of all
commits against a specific file::
git shortlog -- filename
Just provide the name of the file for which you are interested. The
information returned is not ordered by history but does include a
list of everyone who has committed grouped by name. From the list,
you can see who is responsible for the bulk of the changes against
the file.
- *Find the Mailing List to Use:* See the
":ref:`contributor-guide/submit-changes:finding a suitable mailing list`"
section above.
#. *Make a Pull Request:* Notify the maintainer or the mailing list that
you have pushed a change by making a pull request.
The Yocto Project provides two scripts that conveniently let you
generate and send pull requests to the Yocto Project. These scripts
are ``create-pull-request`` and ``send-pull-request``. You can find
these scripts in the ``scripts`` directory within the
:term:`Source Directory` (e.g.
``poky/scripts``).
Using these scripts correctly formats the requests without
introducing any whitespace or HTML formatting. The maintainer that
receives your patches either directly or through the mailing list
needs to be able to save and apply them directly from your emails.
Using these scripts is the preferred method for sending patches.
First, create the pull request. For example, the following command
runs the script, specifies the upstream repository in the contrib
directory into which you pushed the change, and provides a subject
line in the created patch files::
$ poky/scripts/create-pull-request -u meta-intel-contrib -s "Updated Manual Section Reference in README"
Running this script forms ``*.patch`` files in a folder named
``pull-``\ `PID` in the current directory. One of the patch files is a
cover letter.
Before running the ``send-pull-request`` script, you must edit the
cover letter patch to insert information about your change. After
editing the cover letter, send the pull request. For example, the
following command runs the script and specifies the patch directory
and email address. In this example, the email address is a mailing
list::
$ poky/scripts/send-pull-request -p ~/meta-intel/pull-10565 -t meta-intel@lists.yoctoproject.org
You need to follow the prompts as the script is interactive.
.. note::
For help on using these scripts, simply provide the ``-h``
argument as follows::
$ poky/scripts/create-pull-request -h
$ poky/scripts/send-pull-request -h
Submitting Changes to Stable Release Branches
=============================================
The process for proposing changes to a Yocto Project stable branch differs
from the steps described above. Changes to a stable branch must address
identified bugs or CVEs and should be made carefully in order to avoid the
risk of introducing new bugs or breaking backwards compatibility. Typically
bug fixes must already be accepted into the master branch before they can be
backported to a stable branch unless the bug in question does not affect the
master branch or the fix on the master branch is unsuitable for backporting.
The list of stable branches along with the status and maintainer for each
branch can be obtained from the
:yocto_wiki:`Releases wiki page </Releases>`.
.. note::
Changes will not typically be accepted for branches which are marked as
End-Of-Life (EOL).
With this in mind, the steps to submit a change for a stable branch are as
follows:
#. *Identify the bug or CVE to be fixed:* This information should be
collected so that it can be included in your submission.
See :ref:`dev-manual/vulnerabilities:checking for vulnerabilities`
for details about CVE tracking.
#. *Check if the fix is already present in the master branch:* This will
result in the most straightforward path into the stable branch for the
fix.
#. *If the fix is present in the master branch --- submit a backport request
by email:* You should send an email to the relevant stable branch
maintainer and the mailing list with details of the bug or CVE to be
fixed, the commit hash on the master branch that fixes the issue and
the stable branches which you would like this fix to be backported to.
#. *If the fix is not present in the master branch --- submit the fix to the
master branch first:* This will ensure that the fix passes through the
project's usual patch review and test processes before being accepted.
It will also ensure that bugs are not left unresolved in the master
branch itself. Once the fix is accepted in the master branch a backport
request can be submitted as above.
#. *If the fix is unsuitable for the master branch --- submit a patch
directly for the stable branch:* This method should be considered as a
last resort. It is typically necessary when the master branch is using
a newer version of the software which includes an upstream fix for the
issue or when the issue has been fixed on the master branch in a way
that introduces backwards incompatible changes. In this case follow the
steps in ":ref:`contributor-guide/submit-changes:preparing changes for submission`"
and in the following sections but modify the subject header of your patch
email to include the name of the stable branch which you are
targetting. This can be done using the ``--subject-prefix`` argument to
``git format-patch``, for example to submit a patch to the
"&DISTRO_NAME_NO_CAP_MINUS_ONE;" branch use::
git format-patch --subject-prefix='&DISTRO_NAME_NO_CAP_MINUS_ONE;][PATCH' ...
Taking Patch Review into Account
================================
You may get feedback on your submitted patches from other community members
or from the automated patchtest service. If issues are identified in your
patches then it is usually necessary to address these before the patches are
accepted into the project. In this case you should your commits according
to the feedback and submit an updated version to the relevant mailing list.
In any case, never fix reported issues by fixing them in new commits
on the tip of your branch. Always come up with a new series of commits
without the reported issues.
.. note::
It is a good idea to send a copy to the reviewers who provided feedback
to the previous version of the patch. You can make sure this happens
by adding a ``CC`` tag to the commit description::
CC: William Shakespeare <bill@yoctoproject.org>
A single patch can be amended using ``git commit --amend``, and multiple
patches can be easily reworked and reordered through an interactive Git rebase::
git rebase -i <ref-branch>
See `this tutorial <https://hackernoon.com/beginners-guide-to-interactive-rebasing-346a3f9c3a6d>`__
for practical guidance about using Git interactive rebasing.
You should also modify the ``[PATCH]`` tag in the email subject line when
sending the revised patch to mark the new iteration as ``[PATCH v2]``,
``[PATCH v3]``, etc as appropriate. This can be done by passing the ``-v``
argument to ``git format-patch`` with a version number::
git format-patch -v2 <ref-branch>
Lastly please ensure that you also test your revised changes. In particular
please don't just edit the patch file written out by ``git format-patch`` and
resend it.
Tracking the Status of Patches
==============================
The Yocto Project uses a `Patchwork instance <https://patchwork.yoctoproject.org/>`__
to track the status of patches submitted to the various mailing lists and to
support automated patch testing. Each submitted patch is checked for common
mistakes and deviations from the expected patch format and submitters are
notified by ``patchtest`` if such mistakes are found. This process helps to
reduce the burden of patch review on maintainers.
.. note::
This system is imperfect and changes can sometimes get lost in the flow.
Asking about the status of a patch or change is reasonable if the change
has been idle for a while with no feedback.
If your patches have not had any feedback in a few days, they may have already
been merged. You can run ``git pull`` branch to check this. Note that many if
not most layer maintainers do not send out acknowledgement emails when they
accept patches. Alternatively, if there is no response or merge after a few days
the patch may have been missed or the appropriate reviewers may not currently be
around. It is then perfectly fine to reply to it yourself with a reminder asking
for feedback.
.. note::
Patch reviews for feature and recipe upgrade patches are likely be delayed
during a feature freeze because these types of patches aren't merged during
at that time --- you may have to wait until after the freeze is lifted.
Maintainers also commonly use ``-next`` branches to test submissions prior to
merging patches. Thus, you can get an idea of the status of a patch based on
whether the patch has been merged into one of these branches. The commonly
used testing branches for OpenEmbedded-Core are as follows:
- *openembedded-core "master-next" branch:* This branch is part of the
:oe_git:`openembedded-core </openembedded-core/>` repository and contains
proposed changes to the core metadata.
- *poky "master-next" branch:* This branch is part of the
:yocto_git:`poky </poky/>` repository and combines proposed
changes to BitBake, the core metadata and the poky distro.
Similarly, stable branches maintained by the project may have corresponding
``-next`` branches which collect proposed changes. For example,
``&DISTRO_NAME_NO_CAP;-next`` and ``&DISTRO_NAME_NO_CAP_MINUS_ONE;-next``
branches in both the "openembdedded-core" and "poky" repositories.
Other layers may have similar testing branches but there is no formal
requirement or standard for these so please check the documentation for the
layers you are contributing to.

View File

@@ -0,0 +1,59 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Flashing Images Using ``bmaptool``
**********************************
A fast and easy way to flash an image to a bootable device is to use
Bmaptool, which is integrated into the OpenEmbedded build system.
Bmaptool is a generic tool that creates a file's block map (bmap) and
then uses that map to copy the file. As compared to traditional tools
such as dd or cp, Bmaptool can copy (or flash) large files like raw
system image files much faster.
.. note::
- If you are using Ubuntu or Debian distributions, you can install
the ``bmap-tools`` package using the following command and then
use the tool without specifying ``PATH`` even from the root
account::
$ sudo apt install bmap-tools
- If you are unable to install the ``bmap-tools`` package, you will
need to build Bmaptool before using it. Use the following command::
$ bitbake bmap-tools-native
Following, is an example that shows how to flash a Wic image. Realize
that while this example uses a Wic image, you can use Bmaptool to flash
any type of image. Use these steps to flash an image using Bmaptool:
#. *Update your local.conf File:* You need to have the following set
in your ``local.conf`` file before building your image::
IMAGE_FSTYPES += "wic wic.bmap"
#. *Get Your Image:* Either have your image ready (pre-built with the
:term:`IMAGE_FSTYPES`
setting previously mentioned) or take the step to build the image::
$ bitbake image
#. *Flash the Device:* Flash the device with the image by using Bmaptool
depending on your particular setup. The following commands assume the
image resides in the :term:`Build Directory`'s ``deploy/images/`` area:
- If you have write access to the media, use this command form::
$ oe-run-native bmap-tools-native bmaptool copy build-directory/tmp/deploy/images/machine/image.wic /dev/sdX
- If you do not have write access to the media, set your permissions
first and then use the same command form::
$ sudo chmod 666 /dev/sdX
$ oe-run-native bmap-tools-native bmaptool copy build-directory/tmp/deploy/images/machine/image.wic /dev/sdX
For help on the ``bmaptool`` command, use the following command::
$ bmaptool --help

View File

@@ -0,0 +1,409 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Maintaining Build Output Quality
********************************
Many factors can influence the quality of a build. For example, if you
upgrade a recipe to use a new version of an upstream software package or
you experiment with some new configuration options, subtle changes can
occur that you might not detect until later. Consider the case where
your recipe is using a newer version of an upstream package. In this
case, a new version of a piece of software might introduce an optional
dependency on another library, which is auto-detected. If that library
has already been built when the software is building, the software will
link to the built library and that library will be pulled into your
image along with the new software even if you did not want the library.
The :ref:`ref-classes-buildhistory` class helps you maintain the quality of
your build output. You can use the class to highlight unexpected and possibly
unwanted changes in the build output. When you enable build history, it records
information about the contents of each package and image and then commits that
information to a local Git repository where you can examine the information.
The remainder of this section describes the following:
- :ref:`How you can enable and disable build history <dev-manual/build-quality:enabling and disabling build history>`
- :ref:`How to understand what the build history contains <dev-manual/build-quality:understanding what the build history contains>`
- :ref:`How to limit the information used for build history <dev-manual/build-quality:using build history to gather image information only>`
- :ref:`How to examine the build history from both a command-line and web interface <dev-manual/build-quality:examining build history information>`
Enabling and Disabling Build History
====================================
Build history is disabled by default. To enable it, add the following
:term:`INHERIT` statement and set the :term:`BUILDHISTORY_COMMIT` variable to
"1" at the end of your ``conf/local.conf`` file found in the
:term:`Build Directory`::
INHERIT += "buildhistory"
BUILDHISTORY_COMMIT = "1"
Enabling build history as
previously described causes the OpenEmbedded build system to collect
build output information and commit it as a single commit to a local
:ref:`overview-manual/development-environment:git` repository.
.. note::
Enabling build history increases your build times slightly,
particularly for images, and increases the amount of disk space used
during the build.
You can disable build history by removing the previous statements from
your ``conf/local.conf`` file.
Understanding What the Build History Contains
=============================================
Build history information is kept in ``${``\ :term:`TOPDIR`\ ``}/buildhistory``
in the :term:`Build Directory` as defined by the :term:`BUILDHISTORY_DIR`
variable. Here is an example abbreviated listing:
.. image:: figures/buildhistory.png
:align: center
:width: 50%
At the top level, there is a ``metadata-revs`` file that lists the
revisions of the repositories for the enabled layers when the build was
produced. The rest of the data splits into separate ``packages``,
``images`` and ``sdk`` directories, the contents of which are described
as follows.
Build History Package Information
---------------------------------
The history for each package contains a text file that has name-value
pairs with information about the package. For example,
``buildhistory/packages/i586-poky-linux/busybox/busybox/latest``
contains the following:
.. code-block:: none
PV = 1.22.1
PR = r32
RPROVIDES =
RDEPENDS = glibc (>= 2.20) update-alternatives-opkg
RRECOMMENDS = busybox-syslog busybox-udhcpc update-rc.d
PKGSIZE = 540168
FILES = /usr/bin/* /usr/sbin/* /usr/lib/busybox/* /usr/lib/lib*.so.* \
/etc /com /var /bin/* /sbin/* /lib/*.so.* /lib/udev/rules.d \
/usr/lib/udev/rules.d /usr/share/busybox /usr/lib/busybox/* \
/usr/share/pixmaps /usr/share/applications /usr/share/idl \
/usr/share/omf /usr/share/sounds /usr/lib/bonobo/servers
FILELIST = /bin/busybox /bin/busybox.nosuid /bin/busybox.suid /bin/sh \
/etc/busybox.links.nosuid /etc/busybox.links.suid
Most of these
name-value pairs correspond to variables used to produce the package.
The exceptions are ``FILELIST``, which is the actual list of files in
the package, and ``PKGSIZE``, which is the total size of files in the
package in bytes.
There is also a file that corresponds to the recipe from which the package
came (e.g. ``buildhistory/packages/i586-poky-linux/busybox/latest``):
.. code-block:: none
PV = 1.22.1
PR = r32
DEPENDS = initscripts kern-tools-native update-rc.d-native \
virtual/i586-poky-linux-compilerlibs virtual/i586-poky-linux-gcc \
virtual/libc virtual/update-alternatives
PACKAGES = busybox-ptest busybox-httpd busybox-udhcpd busybox-udhcpc \
busybox-syslog busybox-mdev busybox-hwclock busybox-dbg \
busybox-staticdev busybox-dev busybox-doc busybox-locale busybox
Finally, for those recipes fetched from a version control system (e.g.,
Git), there is a file that lists source revisions that are specified in
the recipe and the actual revisions used during the build. Listed
and actual revisions might differ when
:term:`SRCREV` is set to
${:term:`AUTOREV`}. Here is an
example assuming
``buildhistory/packages/qemux86-poky-linux/linux-yocto/latest_srcrev``)::
# SRCREV_machine = "38cd560d5022ed2dbd1ab0dca9642e47c98a0aa1"
SRCREV_machine = "38cd560d5022ed2dbd1ab0dca9642e47c98a0aa1"
# SRCREV_meta = "a227f20eff056e511d504b2e490f3774ab260d6f"
SRCREV_meta ="a227f20eff056e511d504b2e490f3774ab260d6f"
You can use the
``buildhistory-collect-srcrevs`` command with the ``-a`` option to
collect the stored :term:`SRCREV` values from build history and report them
in a format suitable for use in global configuration (e.g.,
``local.conf`` or a distro include file) to override floating
:term:`AUTOREV` values to a fixed set of revisions. Here is some example
output from this command::
$ buildhistory-collect-srcrevs -a
# all-poky-linux
SRCREV:pn-ca-certificates = "07de54fdcc5806bde549e1edf60738c6bccf50e8"
SRCREV:pn-update-rc.d = "8636cf478d426b568c1be11dbd9346f67e03adac"
# core2-64-poky-linux
SRCREV:pn-binutils = "87d4632d36323091e731eb07b8aa65f90293da66"
SRCREV:pn-btrfs-tools = "8ad326b2f28c044cb6ed9016d7c3285e23b673c8"
SRCREV_bzip2-tests:pn-bzip2 = "f9061c030a25de5b6829e1abf373057309c734c0"
SRCREV:pn-e2fsprogs = "02540dedd3ddc52c6ae8aaa8a95ce75c3f8be1c0"
SRCREV:pn-file = "504206e53a89fd6eed71aeaf878aa3512418eab1"
SRCREV_glibc:pn-glibc = "24962427071fa532c3c48c918e9d64d719cc8a6c"
SRCREV:pn-gnome-desktop-testing = "e346cd4ed2e2102c9b195b614f3c642d23f5f6e7"
SRCREV:pn-init-system-helpers = "dbd9197569c0935029acd5c9b02b84c68fd937ee"
SRCREV:pn-kmod = "b6ecfc916a17eab8f93be5b09f4e4f845aabd3d1"
SRCREV:pn-libnsl2 = "82245c0c58add79a8e34ab0917358217a70e5100"
SRCREV:pn-libseccomp = "57357d2741a3b3d3e8425889a6b79a130e0fa2f3"
SRCREV:pn-libxcrypt = "50cf2b6dd4fdf04309445f2eec8de7051d953abf"
SRCREV:pn-ncurses = "51d0fd9cc3edb975f04224f29f777f8f448e8ced"
SRCREV:pn-procps = "19a508ea121c0c4ac6d0224575a036de745eaaf8"
SRCREV:pn-psmisc = "5fab6b7ab385080f1db725d6803136ec1841a15f"
SRCREV:pn-ptest-runner = "bcb82804daa8f725b6add259dcef2067e61a75aa"
SRCREV:pn-shared-mime-info = "18e558fa1c8b90b86757ade09a4ba4d6a6cf8f70"
SRCREV:pn-zstd = "e47e674cd09583ff0503f0f6defd6d23d8b718d3"
# qemux86_64-poky-linux
SRCREV_machine:pn-linux-yocto = "20301aeb1a64164b72bc72af58802b315e025c9c"
SRCREV_meta:pn-linux-yocto = "2d38a472b21ae343707c8bd64ac68a9eaca066a0"
# x86_64-linux
SRCREV:pn-binutils-cross-x86_64 = "87d4632d36323091e731eb07b8aa65f90293da66"
SRCREV_glibc:pn-cross-localedef-native = "24962427071fa532c3c48c918e9d64d719cc8a6c"
SRCREV_localedef:pn-cross-localedef-native = "794da69788cbf9bf57b59a852f9f11307663fa87"
SRCREV:pn-debianutils-native = "de14223e5bffe15e374a441302c528ffc1cbed57"
SRCREV:pn-libmodulemd-native = "ee80309bc766d781a144e6879419b29f444d94eb"
SRCREV:pn-virglrenderer-native = "363915595e05fb252e70d6514be2f0c0b5ca312b"
SRCREV:pn-zstd-native = "e47e674cd09583ff0503f0f6defd6d23d8b718d3"
.. note::
Here are some notes on using the ``buildhistory-collect-srcrevs`` command:
- By default, only values where the :term:`SRCREV` was not hardcoded
(usually when :term:`AUTOREV` is used) are reported. Use the ``-a``
option to see all :term:`SRCREV` values.
- The output statements might not have any effect if overrides are
applied elsewhere in the build system configuration. Use the
``-f`` option to add the ``forcevariable`` override to each output
line if you need to work around this restriction.
- The script does apply special handling when building for multiple
machines. However, the script does place a comment before each set
of values that specifies which triplet to which they belong as
previously shown (e.g., ``i586-poky-linux``).
Build History Image Information
-------------------------------
The files produced for each image are as follows:
- ``image-files:`` A directory containing selected files from the root
filesystem. The files are defined by
:term:`BUILDHISTORY_IMAGE_FILES`.
- ``build-id.txt:`` Human-readable information about the build
configuration and metadata source revisions. This file contains the
full build header as printed by BitBake.
- ``*.dot:`` Dependency graphs for the image that are compatible with
``graphviz``.
- ``files-in-image.txt:`` A list of files in the image with
permissions, owner, group, size, and symlink information.
- ``image-info.txt:`` A text file containing name-value pairs with
information about the image. See the following listing example for
more information.
- ``installed-package-names.txt:`` A list of installed packages by name
only.
- ``installed-package-sizes.txt:`` A list of installed packages ordered
by size.
- ``installed-packages.txt:`` A list of installed packages with full
package filenames.
.. note::
Installed package information is able to be gathered and produced
even if package management is disabled for the final image.
Here is an example of ``image-info.txt``:
.. code-block:: none
DISTRO = poky
DISTRO_VERSION = 3.4+snapshot-a0245d7be08f3d24ea1875e9f8872aa6bbff93be
USER_CLASSES = buildstats
IMAGE_CLASSES = qemuboot qemuboot license_image
IMAGE_FEATURES = debug-tweaks
IMAGE_LINGUAS =
IMAGE_INSTALL = packagegroup-core-boot speex speexdsp
BAD_RECOMMENDATIONS =
NO_RECOMMENDATIONS =
PACKAGE_EXCLUDE =
ROOTFS_POSTPROCESS_COMMAND = write_package_manifest; license_create_manifest; cve_check_write_rootfs_manifest; ssh_allow_empty_password; ssh_allow_root_login; postinst_enable_logging; rootfs_update_timestamp; write_image_test_data; empty_var_volatile; sort_passwd; rootfs_reproducible;
IMAGE_POSTPROCESS_COMMAND = buildhistory_get_imageinfo ;
IMAGESIZE = 9265
Other than ``IMAGESIZE``,
which is the total size of the files in the image in Kbytes, the
name-value pairs are variables that may have influenced the content of
the image. This information is often useful when you are trying to
determine why a change in the package or file listings has occurred.
Using Build History to Gather Image Information Only
----------------------------------------------------
As you can see, build history produces image information, including
dependency graphs, so you can see why something was pulled into the
image. If you are just interested in this information and not interested
in collecting specific package or SDK information, you can enable
writing only image information without any history by adding the
following to your ``conf/local.conf`` file found in the
:term:`Build Directory`::
INHERIT += "buildhistory"
BUILDHISTORY_COMMIT = "0"
BUILDHISTORY_FEATURES = "image"
Here, you set the
:term:`BUILDHISTORY_FEATURES`
variable to use the image feature only.
Build History SDK Information
-----------------------------
Build history collects similar information on the contents of SDKs (e.g.
``bitbake -c populate_sdk imagename``) as compared to information it
collects for images. Furthermore, this information differs depending on
whether an extensible or standard SDK is being produced.
The following list shows the files produced for SDKs:
- ``files-in-sdk.txt:`` A list of files in the SDK with permissions,
owner, group, size, and symlink information. This list includes both
the host and target parts of the SDK.
- ``sdk-info.txt:`` A text file containing name-value pairs with
information about the SDK. See the following listing example for more
information.
- ``sstate-task-sizes.txt:`` A text file containing name-value pairs
with information about task group sizes (e.g. :ref:`ref-tasks-populate_sysroot`
tasks have a total size). The ``sstate-task-sizes.txt`` file exists
only when an extensible SDK is created.
- ``sstate-package-sizes.txt:`` A text file containing name-value pairs
with information for the shared-state packages and sizes in the SDK.
The ``sstate-package-sizes.txt`` file exists only when an extensible
SDK is created.
- ``sdk-files:`` A folder that contains copies of the files mentioned
in ``BUILDHISTORY_SDK_FILES`` if the files are present in the output.
Additionally, the default value of ``BUILDHISTORY_SDK_FILES`` is
specific to the extensible SDK although you can set it differently if
you would like to pull in specific files from the standard SDK.
The default files are ``conf/local.conf``, ``conf/bblayers.conf``,
``conf/auto.conf``, ``conf/locked-sigs.inc``, and
``conf/devtool.conf``. Thus, for an extensible SDK, these files get
copied into the ``sdk-files`` directory.
- The following information appears under each of the ``host`` and
``target`` directories for the portions of the SDK that run on the
host and on the target, respectively:
.. note::
The following files for the most part are empty when producing an
extensible SDK because this type of SDK is not constructed from
packages as is the standard SDK.
- ``depends.dot:`` Dependency graph for the SDK that is compatible
with ``graphviz``.
- ``installed-package-names.txt:`` A list of installed packages by
name only.
- ``installed-package-sizes.txt:`` A list of installed packages
ordered by size.
- ``installed-packages.txt:`` A list of installed packages with full
package filenames.
Here is an example of ``sdk-info.txt``:
.. code-block:: none
DISTRO = poky
DISTRO_VERSION = 1.3+snapshot-20130327
SDK_NAME = poky-glibc-i686-arm
SDK_VERSION = 1.3+snapshot
SDKMACHINE =
SDKIMAGE_FEATURES = dev-pkgs dbg-pkgs
BAD_RECOMMENDATIONS =
SDKSIZE = 352712
Other than ``SDKSIZE``, which is
the total size of the files in the SDK in Kbytes, the name-value pairs
are variables that might have influenced the content of the SDK. This
information is often useful when you are trying to determine why a
change in the package or file listings has occurred.
Examining Build History Information
-----------------------------------
You can examine build history output from the command line or from a web
interface.
To see any changes that have occurred (assuming you have
:term:`BUILDHISTORY_COMMIT` = "1"),
you can simply use any Git command that allows you to view the history
of a repository. Here is one method::
$ git log -p
You need to realize,
however, that this method does show changes that are not significant
(e.g. a package's size changing by a few bytes).
There is a command-line tool called ``buildhistory-diff``, though,
that queries the Git repository and prints just the differences that
might be significant in human-readable form. Here is an example::
$ poky/poky/scripts/buildhistory-diff . HEAD^
Changes to images/qemux86_64/glibc/core-image-minimal (files-in-image.txt):
/etc/anotherpkg.conf was added
/sbin/anotherpkg was added
* (installed-package-names.txt):
* anotherpkg was added
Changes to images/qemux86_64/glibc/core-image-minimal (installed-package-names.txt):
anotherpkg was added
packages/qemux86_64-poky-linux/v86d: PACKAGES: added "v86d-extras"
* PR changed from "r0" to "r1"
* PV changed from "0.1.10" to "0.1.12"
packages/qemux86_64-poky-linux/v86d/v86d: PKGSIZE changed from 110579 to 144381 (+30%)
* PR changed from "r0" to "r1"
* PV changed from "0.1.10" to "0.1.12"
.. note::
The ``buildhistory-diff`` tool requires the ``GitPython``
package. Be sure to install it using Pip3 as follows::
$ pip3 install GitPython --user
Alternatively, you can install ``python3-git`` using the appropriate
distribution package manager (e.g. ``apt``, ``dnf``, or ``zipper``).
To see changes to the build history using a web interface, follow the
instruction in the ``README`` file
:yocto_git:`here </buildhistory-web/>`.
Here is a sample screenshot of the interface:
.. image:: figures/buildhistory-web.png
:width: 100%

View File

@@ -0,0 +1,939 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Building
********
This section describes various build procedures, such as the steps
needed for a simple build, building a target for multiple configurations,
generating an image for more than one machine, and so forth.
Building a Simple Image
=======================
In the development environment, you need to build an image whenever you
change hardware support, add or change system libraries, or add or
change services that have dependencies. There are several methods that allow
you to build an image within the Yocto Project. This section presents
the basic steps you need to build a simple image using BitBake from a
build host running Linux.
.. note::
- For information on how to build an image using
:term:`Toaster`, see the
:doc:`/toaster-manual/index`.
- For information on how to use ``devtool`` to build images, see the
":ref:`sdk-manual/extensible:using \`\`devtool\`\` in your sdk workflow`"
section in the Yocto Project Application Development and the
Extensible Software Development Kit (eSDK) manual.
- For a quick example on how to build an image using the
OpenEmbedded build system, see the
:doc:`/brief-yoctoprojectqs/index` document.
The build process creates an entire Linux distribution from source and
places it in your :term:`Build Directory` under ``tmp/deploy/images``. For
detailed information on the build process using BitBake, see the
":ref:`overview-manual/concepts:images`" section in the Yocto Project Overview
and Concepts Manual.
The following figure and list overviews the build process:
.. image:: figures/bitbake-build-flow.png
:width: 100%
#. *Set up Your Host Development System to Support Development Using the
Yocto Project*: See the ":doc:`start`" section for options on how to get a
build host ready to use the Yocto Project.
#. *Initialize the Build Environment:* Initialize the build environment
by sourcing the build environment script (i.e.
:ref:`structure-core-script`)::
$ source oe-init-build-env [build_dir]
When you use the initialization script, the OpenEmbedded build system
uses ``build`` as the default :term:`Build Directory` in your current work
directory. You can use a `build_dir` argument with the script to
specify a different :term:`Build Directory`.
.. note::
A common practice is to use a different :term:`Build Directory` for
different targets; for example, ``~/build/x86`` for a ``qemux86``
target, and ``~/build/arm`` for a ``qemuarm`` target. In any
event, it's typically cleaner to locate the :term:`Build Directory`
somewhere outside of your source directory.
#. *Make Sure Your* ``local.conf`` *File is Correct*: Ensure the
``conf/local.conf`` configuration file, which is found in the
:term:`Build Directory`, is set up how you want it. This file defines many
aspects of the build environment including the target machine architecture
through the :term:`MACHINE` variable, the packaging format used during
the build (:term:`PACKAGE_CLASSES`), and a centralized tarball download
directory through the :term:`DL_DIR` variable.
#. *Build the Image:* Build the image using the ``bitbake`` command::
$ bitbake target
.. note::
For information on BitBake, see the :doc:`bitbake:index`.
The target is the name of the recipe you want to build. Common
targets are the images in ``meta/recipes-core/images``,
``meta/recipes-sato/images``, and so forth all found in the
:term:`Source Directory`. Alternatively, the target
can be the name of a recipe for a specific piece of software such as
BusyBox. For more details about the images the OpenEmbedded build
system supports, see the
":ref:`ref-manual/images:Images`" chapter in the Yocto
Project Reference Manual.
As an example, the following command builds the
``core-image-minimal`` image::
$ bitbake core-image-minimal
Once an
image has been built, it often needs to be installed. The images and
kernels built by the OpenEmbedded build system are placed in the
:term:`Build Directory` in ``tmp/deploy/images``. For information on how to
run pre-built images such as ``qemux86`` and ``qemuarm``, see the
:doc:`/sdk-manual/index` manual. For
information about how to install these images, see the documentation
for your particular board or machine.
Building Images for Multiple Targets Using Multiple Configurations
==================================================================
You can use a single ``bitbake`` command to build multiple images or
packages for different targets where each image or package requires a
different configuration (multiple configuration builds). The builds, in
this scenario, are sometimes referred to as "multiconfigs", and this
section uses that term throughout.
This section describes how to set up for multiple configuration builds
and how to account for cross-build dependencies between the
multiconfigs.
Setting Up and Running a Multiple Configuration Build
-----------------------------------------------------
To accomplish a multiple configuration build, you must define each
target's configuration separately using a parallel configuration file in
the :term:`Build Directory` or configuration directory within a layer, and you
must follow a required file hierarchy. Additionally, you must enable the
multiple configuration builds in your ``local.conf`` file.
Follow these steps to set up and execute multiple configuration builds:
- *Create Separate Configuration Files*: You need to create a single
configuration file for each build target (each multiconfig).
The configuration definitions are implementation dependent but often
each configuration file will define the machine and the
temporary directory BitBake uses for the build. Whether the same
temporary directory (:term:`TMPDIR`) can be shared will depend on what is
similar and what is different between the configurations. Multiple MACHINE
targets can share the same (:term:`TMPDIR`) as long as the rest of the
configuration is the same, multiple :term:`DISTRO` settings would need separate
(:term:`TMPDIR`) directories.
For example, consider a scenario with two different multiconfigs for the same
:term:`MACHINE`: "qemux86" built
for two distributions such as "poky" and "poky-lsb". In this case,
you would need to use the different :term:`TMPDIR`.
Here is an example showing the minimal statements needed in a
configuration file for a "qemux86" target whose temporary build
directory is ``tmpmultix86``::
MACHINE = "qemux86"
TMPDIR = "${TOPDIR}/tmpmultix86"
The location for these multiconfig configuration files is specific.
They must reside in the current :term:`Build Directory` in a sub-directory of
``conf`` named ``multiconfig`` or within a layer's ``conf`` directory
under a directory named ``multiconfig``. Following is an example that defines
two configuration files for the "x86" and "arm" multiconfigs:
.. image:: figures/multiconfig_files.png
:align: center
:width: 50%
The usual :term:`BBPATH` search path is used to locate multiconfig files in
a similar way to other conf files.
- *Add the BitBake Multi-configuration Variable to the Local
Configuration File*: Use the
:term:`BBMULTICONFIG`
variable in your ``conf/local.conf`` configuration file to specify
each multiconfig. Continuing with the example from the previous
figure, the :term:`BBMULTICONFIG` variable needs to enable two
multiconfigs: "x86" and "arm" by specifying each configuration file::
BBMULTICONFIG = "x86 arm"
.. note::
A "default" configuration already exists by definition. This
configuration is named: "" (i.e. empty string) and is defined by
the variables coming from your ``local.conf``
file. Consequently, the previous example actually adds two
additional configurations to your build: "arm" and "x86" along
with "".
- *Launch BitBake*: Use the following BitBake command form to launch
the multiple configuration build::
$ bitbake [mc:multiconfigname:]target [[[mc:multiconfigname:]target] ... ]
For the example in this section, the following command applies::
$ bitbake mc:x86:core-image-minimal mc:arm:core-image-sato mc::core-image-base
The previous BitBake command builds a ``core-image-minimal`` image
that is configured through the ``x86.conf`` configuration file, a
``core-image-sato`` image that is configured through the ``arm.conf``
configuration file and a ``core-image-base`` that is configured
through your ``local.conf`` configuration file.
.. note::
Support for multiple configuration builds in the Yocto Project &DISTRO;
(&DISTRO_NAME;) Release does not include Shared State (sstate)
optimizations. Consequently, if a build uses the same object twice
in, for example, two different :term:`TMPDIR`
directories, the build either loads from an existing sstate cache for
that build at the start or builds the object fresh.
Enabling Multiple Configuration Build Dependencies
--------------------------------------------------
Sometimes dependencies can exist between targets (multiconfigs) in a
multiple configuration build. For example, suppose that in order to
build a ``core-image-sato`` image for an "x86" multiconfig, the root
filesystem of an "arm" multiconfig must exist. This dependency is
essentially that the
:ref:`ref-tasks-image` task in the
``core-image-sato`` recipe depends on the completion of the
:ref:`ref-tasks-rootfs` task of the
``core-image-minimal`` recipe.
To enable dependencies in a multiple configuration build, you must
declare the dependencies in the recipe using the following statement
form::
task_or_package[mcdepends] = "mc:from_multiconfig:to_multiconfig:recipe_name:task_on_which_to_depend"
To better show how to use this statement, consider the example scenario
from the first paragraph of this section. The following statement needs
to be added to the recipe that builds the ``core-image-sato`` image::
do_image[mcdepends] = "mc:x86:arm:core-image-minimal:do_rootfs"
In this example, the `from_multiconfig` is "x86". The `to_multiconfig` is "arm". The
task on which the :ref:`ref-tasks-image` task in the recipe depends is the
:ref:`ref-tasks-rootfs` task from the ``core-image-minimal`` recipe associated
with the "arm" multiconfig.
Once you set up this dependency, you can build the "x86" multiconfig
using a BitBake command as follows::
$ bitbake mc:x86:core-image-sato
This command executes all the tasks needed to create the
``core-image-sato`` image for the "x86" multiconfig. Because of the
dependency, BitBake also executes through the :ref:`ref-tasks-rootfs` task for the
"arm" multiconfig build.
Having a recipe depend on the root filesystem of another build might not
seem that useful. Consider this change to the statement in the
``core-image-sato`` recipe::
do_image[mcdepends] = "mc:x86:arm:core-image-minimal:do_image"
In this case, BitBake must
create the ``core-image-minimal`` image for the "arm" build since the
"x86" build depends on it.
Because "x86" and "arm" are enabled for multiple configuration builds
and have separate configuration files, BitBake places the artifacts for
each build in the respective temporary build directories (i.e.
:term:`TMPDIR`).
Building an Initial RAM Filesystem (Initramfs) Image
====================================================
An initial RAM filesystem (:term:`Initramfs`) image provides a temporary root
filesystem used for early system initialization, typically providing tools and
loading modules needed to locate and mount the final root filesystem.
Follow these steps to create an :term:`Initramfs` image:
#. *Create the Initramfs Image Recipe:* You can reference the
``core-image-minimal-initramfs.bb`` recipe found in the
``meta/recipes-core`` directory of the :term:`Source Directory`
as an example from which to work.
#. *Decide if You Need to Bundle the Initramfs Image Into the Kernel
Image:* If you want the :term:`Initramfs` image that is built to be bundled
in with the kernel image, set the :term:`INITRAMFS_IMAGE_BUNDLE`
variable to ``"1"`` in your ``local.conf`` configuration file and set the
:term:`INITRAMFS_IMAGE` variable in the recipe that builds the kernel image.
Setting the :term:`INITRAMFS_IMAGE_BUNDLE` flag causes the :term:`Initramfs`
image to be unpacked into the ``${B}/usr/`` directory. The unpacked
:term:`Initramfs` image is then passed to the kernel's ``Makefile`` using the
:term:`CONFIG_INITRAMFS_SOURCE` variable, allowing the :term:`Initramfs`
image to be built into the kernel normally.
#. *Optionally Add Items to the Initramfs Image Through the Initramfs
Image Recipe:* If you add items to the :term:`Initramfs` image by way of its
recipe, you should use :term:`PACKAGE_INSTALL` rather than
:term:`IMAGE_INSTALL`. :term:`PACKAGE_INSTALL` gives more direct control of
what is added to the image as compared to the defaults you might not
necessarily want that are set by the :ref:`ref-classes-image`
or :ref:`ref-classes-core-image` classes.
#. *Build the Kernel Image and the Initramfs Image:* Build your kernel
image using BitBake. Because the :term:`Initramfs` image recipe is a
dependency of the kernel image, the :term:`Initramfs` image is built as well
and bundled with the kernel image if you used the
:term:`INITRAMFS_IMAGE_BUNDLE` variable described earlier.
Bundling an Initramfs Image From a Separate Multiconfig
-------------------------------------------------------
There may be a case where we want to build an :term:`Initramfs` image which does not
inherit the same distro policy as our main image, for example, we may want
our main image to use ``TCLIBC="glibc"``, but to use ``TCLIBC="musl"`` in our :term:`Initramfs`
image to keep a smaller footprint. However, by performing the steps mentioned
above the :term:`Initramfs` image will inherit ``TCLIBC="glibc"`` without allowing us
to override it.
To achieve this, you need to perform some additional steps:
#. *Create a multiconfig for your Initramfs image:* You can perform the steps
on ":ref:`dev-manual/building:building images for multiple targets using multiple configurations`" to create a separate multiconfig.
For the sake of simplicity let's assume such multiconfig is called: ``initramfscfg.conf`` and
contains the variables::
TMPDIR="${TOPDIR}/tmp-initramfscfg"
TCLIBC="musl"
#. *Set additional Initramfs variables on your main configuration:*
Additionally, on your main configuration (``local.conf``) you need to set the
variables::
INITRAMFS_MULTICONFIG = "initramfscfg"
INITRAMFS_DEPLOY_DIR_IMAGE = "${TOPDIR}/tmp-initramfscfg/deploy/images/${MACHINE}"
The variables :term:`INITRAMFS_MULTICONFIG` and :term:`INITRAMFS_DEPLOY_DIR_IMAGE`
are used to create a multiconfig dependency from the kernel to the :term:`INITRAMFS_IMAGE`
to be built coming from the ``initramfscfg`` multiconfig, and to let the
buildsystem know where the :term:`INITRAMFS_IMAGE` will be located.
Building a system with such configuration will build the kernel using the
main configuration but the :ref:`ref-tasks-bundle_initramfs` task will grab the
selected :term:`INITRAMFS_IMAGE` from :term:`INITRAMFS_DEPLOY_DIR_IMAGE`
instead, resulting in a musl based :term:`Initramfs` image bundled in the kernel
but a glibc based main image.
The same is applicable to avoid inheriting :term:`DISTRO_FEATURES` on :term:`INITRAMFS_IMAGE`
or to build a different :term:`DISTRO` for it such as ``poky-tiny``.
Building a Tiny System
======================
Very small distributions have some significant advantages such as
requiring less on-die or in-package memory (cheaper), better performance
through efficient cache usage, lower power requirements due to less
memory, faster boot times, and reduced development overhead. Some
real-world examples where a very small distribution gives you distinct
advantages are digital cameras, medical devices, and small headless
systems.
This section presents information that shows you how you can trim your
distribution to even smaller sizes than the ``poky-tiny`` distribution,
which is around 5 Mbytes, that can be built out-of-the-box using the
Yocto Project.
Tiny System Overview
--------------------
The following list presents the overall steps you need to consider and
perform to create distributions with smaller root filesystems, achieve
faster boot times, maintain your critical functionality, and avoid
initial RAM disks:
- :ref:`Determine your goals and guiding principles
<dev-manual/building:goals and guiding principles>`
- :ref:`dev-manual/building:understand what contributes to your image size`
- :ref:`Reduce the size of the root filesystem
<dev-manual/building:trim the root filesystem>`
- :ref:`Reduce the size of the kernel <dev-manual/building:trim the kernel>`
- :ref:`dev-manual/building:remove package management requirements`
- :ref:`dev-manual/building:look for other ways to minimize size`
- :ref:`dev-manual/building:iterate on the process`
Goals and Guiding Principles
----------------------------
Before you can reach your destination, you need to know where you are
going. Here is an example list that you can use as a guide when creating
very small distributions:
- Determine how much space you need (e.g. a kernel that is 1 Mbyte or
less and a root filesystem that is 3 Mbytes or less).
- Find the areas that are currently taking 90% of the space and
concentrate on reducing those areas.
- Do not create any difficult "hacks" to achieve your goals.
- Leverage the device-specific options.
- Work in a separate layer so that you keep changes isolated. For
information on how to create layers, see the
":ref:`dev-manual/layers:understanding and creating layers`" section.
Understand What Contributes to Your Image Size
----------------------------------------------
It is easiest to have something to start with when creating your own
distribution. You can use the Yocto Project out-of-the-box to create the
``poky-tiny`` distribution. Ultimately, you will want to make changes in
your own distribution that are likely modeled after ``poky-tiny``.
.. note::
To use ``poky-tiny`` in your build, set the :term:`DISTRO` variable in your
``local.conf`` file to "poky-tiny" as described in the
":ref:`dev-manual/custom-distribution:creating your own distribution`"
section.
Understanding some memory concepts will help you reduce the system size.
Memory consists of static, dynamic, and temporary memory. Static memory
is the TEXT (code), DATA (initialized data in the code), and BSS
(uninitialized data) sections. Dynamic memory represents memory that is
allocated at runtime: stacks, hash tables, and so forth. Temporary
memory is recovered after the boot process. This memory consists of
memory used for decompressing the kernel and for the ``__init__``
functions.
To help you see where you currently are with kernel and root filesystem
sizes, you can use two tools found in the :term:`Source Directory`
in the
``scripts/tiny/`` directory:
- ``ksize.py``: Reports component sizes for the kernel build objects.
- ``dirsize.py``: Reports component sizes for the root filesystem.
This next tool and command help you organize configuration fragments and
view file dependencies in a human-readable form:
- ``merge_config.sh``: Helps you manage configuration files and
fragments within the kernel. With this tool, you can merge individual
configuration fragments together. The tool allows you to make
overrides and warns you of any missing configuration options. The
tool is ideal for allowing you to iterate on configurations, create
minimal configurations, and create configuration files for different
machines without having to duplicate your process.
The ``merge_config.sh`` script is part of the Linux Yocto kernel Git
repositories (i.e. ``linux-yocto-3.14``, ``linux-yocto-3.10``,
``linux-yocto-3.8``, and so forth) in the ``scripts/kconfig``
directory.
For more information on configuration fragments, see the
":ref:`kernel-dev/common:creating configuration fragments`"
section in the Yocto Project Linux Kernel Development Manual.
- ``bitbake -u taskexp -g bitbake_target``: Using the BitBake command
with these options brings up a Dependency Explorer from which you can
view file dependencies. Understanding these dependencies allows you
to make informed decisions when cutting out various pieces of the
kernel and root filesystem.
Trim the Root Filesystem
------------------------
The root filesystem is made up of packages for booting, libraries, and
applications. To change things, you can configure how the packaging
happens, which changes the way you build them. You can also modify the
filesystem itself or select a different filesystem.
First, find out what is hogging your root filesystem by running the
``dirsize.py`` script from your root directory::
$ cd root-directory-of-image
$ dirsize.py 100000 > dirsize-100k.log
$ cat dirsize-100k.log
You can apply a filter to the script to ignore files
under a certain size. The previous example filters out any files below
100 Kbytes. The sizes reported by the tool are uncompressed, and thus
will be smaller by a relatively constant factor in a compressed root
filesystem. When you examine your log file, you can focus on areas of
the root filesystem that take up large amounts of memory.
You need to be sure that what you eliminate does not cripple the
functionality you need. One way to see how packages relate to each other
is by using the Dependency Explorer UI with the BitBake command::
$ cd image-directory
$ bitbake -u taskexp -g image
Use the interface to
select potential packages you wish to eliminate and see their dependency
relationships.
When deciding how to reduce the size, get rid of packages that result in
minimal impact on the feature set. For example, you might not need a VGA
display. Or, you might be able to get by with ``devtmpfs`` and ``mdev``
instead of ``udev``.
Use your ``local.conf`` file to make changes. For example, to eliminate
``udev`` and ``glib``, set the following in the local configuration
file::
VIRTUAL-RUNTIME_dev_manager = ""
Finally, you should consider exactly the type of root filesystem you
need to meet your needs while also reducing its size. For example,
consider ``cramfs``, ``squashfs``, ``ubifs``, ``ext2``, or an
:term:`Initramfs` using ``initramfs``. Be aware that ``ext3`` requires a 1
Mbyte journal. If you are okay with running read-only, you do not need
this journal.
.. note::
After each round of elimination, you need to rebuild your system and
then use the tools to see the effects of your reductions.
Trim the Kernel
---------------
The kernel is built by including policies for hardware-independent
aspects. What subsystems do you enable? For what architecture are you
building? Which drivers do you build by default?
.. note::
You can modify the kernel source if you want to help with boot time.
Run the ``ksize.py`` script from the top-level Linux build directory to
get an idea of what is making up the kernel::
$ cd top-level-linux-build-directory
$ ksize.py > ksize.log
$ cat ksize.log
When you examine the log, you will see how much space is taken up with
the built-in ``.o`` files for drivers, networking, core kernel files,
filesystem, sound, and so forth. The sizes reported by the tool are
uncompressed, and thus will be smaller by a relatively constant factor
in a compressed kernel image. Look to reduce the areas that are large
and taking up around the "90% rule."
To examine, or drill down, into any particular area, use the ``-d``
option with the script::
$ ksize.py -d > ksize.log
Using this option
breaks out the individual file information for each area of the kernel
(e.g. drivers, networking, and so forth).
Use your log file to see what you can eliminate from the kernel based on
features you can let go. For example, if you are not going to need
sound, you do not need any drivers that support sound.
After figuring out what to eliminate, you need to reconfigure the kernel
to reflect those changes during the next build. You could run
``menuconfig`` and make all your changes at once. However, that makes it
difficult to see the effects of your individual eliminations and also
makes it difficult to replicate the changes for perhaps another target
device. A better method is to start with no configurations using
``allnoconfig``, create configuration fragments for individual changes,
and then manage the fragments into a single configuration file using
``merge_config.sh``. The tool makes it easy for you to iterate using the
configuration change and build cycle.
Each time you make configuration changes, you need to rebuild the kernel
and check to see what impact your changes had on the overall size.
Remove Package Management Requirements
--------------------------------------
Packaging requirements add size to the image. One way to reduce the size
of the image is to remove all the packaging requirements from the image.
This reduction includes both removing the package manager and its unique
dependencies as well as removing the package management data itself.
To eliminate all the packaging requirements for an image, be sure that
"package-management" is not part of your
:term:`IMAGE_FEATURES`
statement for the image. When you remove this feature, you are removing
the package manager as well as its dependencies from the root
filesystem.
Look for Other Ways to Minimize Size
------------------------------------
Depending on your particular circumstances, other areas that you can
trim likely exist. The key to finding these areas is through tools and
methods described here combined with experimentation and iteration. Here
are a couple of areas to experiment with:
- ``glibc``: In general, follow this process:
#. Remove ``glibc`` features from
:term:`DISTRO_FEATURES`
that you think you do not need.
#. Build your distribution.
#. If the build fails due to missing symbols in a package, determine
if you can reconfigure the package to not need those features. For
example, change the configuration to not support wide character
support as is done for ``ncurses``. Or, if support for those
characters is needed, determine what ``glibc`` features provide
the support and restore the configuration.
4. Rebuild and repeat the process.
- ``busybox``: For BusyBox, use a process similar as described for
``glibc``. A difference is you will need to boot the resulting system
to see if you are able to do everything you expect from the running
system. You need to be sure to integrate configuration fragments into
Busybox because BusyBox handles its own core features and then allows
you to add configuration fragments on top.
Iterate on the Process
----------------------
If you have not reached your goals on system size, you need to iterate
on the process. The process is the same. Use the tools and see just what
is taking up 90% of the root filesystem and the kernel. Decide what you
can eliminate without limiting your device beyond what you need.
Depending on your system, a good place to look might be Busybox, which
provides a stripped down version of Unix tools in a single, executable
file. You might be able to drop virtual terminal services or perhaps
ipv6.
Building Images for More than One Machine
=========================================
A common scenario developers face is creating images for several
different machines that use the same software environment. In this
situation, it is tempting to set the tunings and optimization flags for
each build specifically for the targeted hardware (i.e. "maxing out" the
tunings). Doing so can considerably add to build times and package feed
maintenance collectively for the machines. For example, selecting tunes
that are extremely specific to a CPU core used in a system might enable
some micro optimizations in GCC for that particular system but would
otherwise not gain you much of a performance difference across the other
systems as compared to using a more general tuning across all the builds
(e.g. setting :term:`DEFAULTTUNE`
specifically for each machine's build). Rather than "max out" each
build's tunings, you can take steps that cause the OpenEmbedded build
system to reuse software across the various machines where it makes
sense.
If build speed and package feed maintenance are considerations, you
should consider the points in this section that can help you optimize
your tunings to best consider build times and package feed maintenance.
- *Share the :term:`Build Directory`:* If at all possible, share the
:term:`TMPDIR` across builds. The Yocto Project supports switching between
different :term:`MACHINE` values in the same :term:`TMPDIR`. This practice
is well supported and regularly used by developers when building for
multiple machines. When you use the same :term:`TMPDIR` for multiple
machine builds, the OpenEmbedded build system can reuse the existing native
and often cross-recipes for multiple machines. Thus, build time decreases.
.. note::
If :term:`DISTRO` settings change or fundamental configuration settings
such as the filesystem layout, you need to work with a clean :term:`TMPDIR`.
Sharing :term:`TMPDIR` under these circumstances might work but since it is
not guaranteed, you should use a clean :term:`TMPDIR`.
- *Enable the Appropriate Package Architecture:* By default, the
OpenEmbedded build system enables three levels of package
architectures: "all", "tune" or "package", and "machine". Any given
recipe usually selects one of these package architectures (types) for
its output. Depending for what a given recipe creates packages,
making sure you enable the appropriate package architecture can
directly impact the build time.
A recipe that just generates scripts can enable "all" architecture
because there are no binaries to build. To specifically enable "all"
architecture, be sure your recipe inherits the
:ref:`ref-classes-allarch` class.
This class is useful for "all" architectures because it configures
many variables so packages can be used across multiple architectures.
If your recipe needs to generate packages that are machine-specific
or when one of the build or runtime dependencies is already
machine-architecture dependent, which makes your recipe also
machine-architecture dependent, make sure your recipe enables the
"machine" package architecture through the
:term:`MACHINE_ARCH`
variable::
PACKAGE_ARCH = "${MACHINE_ARCH}"
When you do not
specifically enable a package architecture through the
:term:`PACKAGE_ARCH`, The
OpenEmbedded build system defaults to the
:term:`TUNE_PKGARCH` setting::
PACKAGE_ARCH = "${TUNE_PKGARCH}"
- *Choose a Generic Tuning File if Possible:* Some tunes are more
generic and can run on multiple targets (e.g. an ``armv5`` set of
packages could run on ``armv6`` and ``armv7`` processors in most
cases). Similarly, ``i486`` binaries could work on ``i586`` and
higher processors. You should realize, however, that advances on
newer processor versions would not be used.
If you select the same tune for several different machines, the
OpenEmbedded build system reuses software previously built, thus
speeding up the overall build time. Realize that even though a new
sysroot for each machine is generated, the software is not recompiled
and only one package feed exists.
- *Manage Granular Level Packaging:* Sometimes there are cases where
injecting another level of package architecture beyond the three
higher levels noted earlier can be useful. For example, consider how
NXP (formerly Freescale) allows for the easy reuse of binary packages
in their layer
:yocto_git:`meta-freescale </meta-freescale/>`.
In this example, the
:yocto_git:`fsl-dynamic-packagearch </meta-freescale/tree/classes/fsl-dynamic-packagearch.bbclass>`
class shares GPU packages for i.MX53 boards because all boards share
the AMD GPU. The i.MX6-based boards can do the same because all
boards share the Vivante GPU. This class inspects the BitBake
datastore to identify if the package provides or depends on one of
the sub-architecture values. If so, the class sets the
:term:`PACKAGE_ARCH` value
based on the ``MACHINE_SUBARCH`` value. If the package does not
provide or depend on one of the sub-architecture values but it
matches a value in the machine-specific filter, it sets
:term:`MACHINE_ARCH`. This
behavior reduces the number of packages built and saves build time by
reusing binaries.
- *Use Tools to Debug Issues:* Sometimes you can run into situations
where software is being rebuilt when you think it should not be. For
example, the OpenEmbedded build system might not be using shared
state between machines when you think it should be. These types of
situations are usually due to references to machine-specific
variables such as :term:`MACHINE`,
:term:`SERIAL_CONSOLES`,
:term:`XSERVER`,
:term:`MACHINE_FEATURES`,
and so forth in code that is supposed to only be tune-specific or
when the recipe depends
(:term:`DEPENDS`,
:term:`RDEPENDS`,
:term:`RRECOMMENDS`,
:term:`RSUGGESTS`, and so forth)
on some other recipe that already has
:term:`PACKAGE_ARCH` defined
as "${MACHINE_ARCH}".
.. note::
Patches to fix any issues identified are most welcome as these
issues occasionally do occur.
For such cases, you can use some tools to help you sort out the
situation:
- ``state-diff-machines.sh``*:* You can find this tool in the
``scripts`` directory of the Source Repositories. See the comments
in the script for information on how to use the tool.
- *BitBake's "-S printdiff" Option:* Using this option causes
BitBake to try to establish the closest signature match it can
(e.g. in the shared state cache) and then run ``bitbake-diffsigs``
over the matches to determine the stamps and delta where these two
stamp trees diverge.
Building Software from an External Source
=========================================
By default, the OpenEmbedded build system uses the :term:`Build Directory`
when building source code. The build process involves fetching the source
files, unpacking them, and then patching them if necessary before the build
takes place.
There are situations where you might want to build software from source
files that are external to and thus outside of the OpenEmbedded build
system. For example, suppose you have a project that includes a new BSP
with a heavily customized kernel. And, you want to minimize exposing the
build system to the development team so that they can focus on their
project and maintain everyone's workflow as much as possible. In this
case, you want a kernel source directory on the development machine
where the development occurs. You want the recipe's
:term:`SRC_URI` variable to point to
the external directory and use it as is, not copy it.
To build from software that comes from an external source, all you need to do
is inherit the :ref:`ref-classes-externalsrc` class and then set
the :term:`EXTERNALSRC` variable to point to your external source code. Here
are the statements to put in your ``local.conf`` file::
INHERIT += "externalsrc"
EXTERNALSRC:pn-myrecipe = "path-to-your-source-tree"
This next example shows how to accomplish the same thing by setting
:term:`EXTERNALSRC` in the recipe itself or in the recipe's append file::
EXTERNALSRC = "path"
EXTERNALSRC_BUILD = "path"
.. note::
In order for these settings to take effect, you must globally or
locally inherit the :ref:`ref-classes-externalsrc` class.
By default, :ref:`ref-classes-externalsrc` builds the source code in a
directory separate from the external source directory as specified by
:term:`EXTERNALSRC`. If you need
to have the source built in the same directory in which it resides, or
some other nominated directory, you can set
:term:`EXTERNALSRC_BUILD`
to point to that directory::
EXTERNALSRC_BUILD:pn-myrecipe = "path-to-your-source-tree"
Replicating a Build Offline
===========================
It can be useful to take a "snapshot" of upstream sources used in a
build and then use that "snapshot" later to replicate the build offline.
To do so, you need to first prepare and populate your downloads
directory your "snapshot" of files. Once your downloads directory is
ready, you can use it at any time and from any machine to replicate your
build.
Follow these steps to populate your Downloads directory:
#. *Create a Clean Downloads Directory:* Start with an empty downloads
directory (:term:`DL_DIR`). You
start with an empty downloads directory by either removing the files
in the existing directory or by setting :term:`DL_DIR` to point to either
an empty location or one that does not yet exist.
#. *Generate Tarballs of the Source Git Repositories:* Edit your
``local.conf`` configuration file as follows::
DL_DIR = "/home/your-download-dir/"
BB_GENERATE_MIRROR_TARBALLS = "1"
During
the fetch process in the next step, BitBake gathers the source files
and creates tarballs in the directory pointed to by :term:`DL_DIR`. See
the
:term:`BB_GENERATE_MIRROR_TARBALLS`
variable for more information.
#. *Populate Your Downloads Directory Without Building:* Use BitBake to
fetch your sources but inhibit the build::
$ bitbake target --runonly=fetch
The downloads directory (i.e. ``${DL_DIR}``) now has
a "snapshot" of the source files in the form of tarballs, which can
be used for the build.
#. *Optionally Remove Any Git or other SCM Subdirectories From the
Downloads Directory:* If you want, you can clean up your downloads
directory by removing any Git or other Source Control Management
(SCM) subdirectories such as ``${DL_DIR}/git2/*``. The tarballs
already contain these subdirectories.
Once your downloads directory has everything it needs regarding source
files, you can create your "own-mirror" and build your target.
Understand that you can use the files to build the target offline from
any machine and at any time.
Follow these steps to build your target using the files in the downloads
directory:
#. *Using Local Files Only:* Inside your ``local.conf`` file, add the
:term:`SOURCE_MIRROR_URL` variable, inherit the
:ref:`ref-classes-own-mirrors` class, and use the
:term:`BB_NO_NETWORK` variable to your ``local.conf``::
SOURCE_MIRROR_URL ?= "file:///home/your-download-dir/"
INHERIT += "own-mirrors"
BB_NO_NETWORK = "1"
The :term:`SOURCE_MIRROR_URL` and :ref:`ref-classes-own-mirrors`
class set up the system to use the downloads directory as your "own
mirror". Using the :term:`BB_NO_NETWORK` variable makes sure that
BitBake's fetching process in step 3 stays local, which means files
from your "own-mirror" are used.
#. *Start With a Clean Build:* You can start with a clean build by
removing the ``${``\ :term:`TMPDIR`\ ``}`` directory or using a new
:term:`Build Directory`.
#. *Build Your Target:* Use BitBake to build your target::
$ bitbake target
The build completes using the known local "snapshot" of source
files from your mirror. The resulting tarballs for your "snapshot" of
source files are in the downloads directory.
.. note::
The offline build does not work if recipes attempt to find the
latest version of software by setting
:term:`SRCREV` to
``${``\ :term:`AUTOREV`\ ``}``::
SRCREV = "${AUTOREV}"
When a recipe sets :term:`SRCREV` to
``${``\ :term:`AUTOREV`\ ``}``, the build system accesses the network in an
attempt to determine the latest version of software from the SCM.
Typically, recipes that use :term:`AUTOREV` are custom or modified
recipes. Recipes that reside in public repositories usually do not
use :term:`AUTOREV`.
If you do have recipes that use :term:`AUTOREV`, you can take steps to
still use the recipes in an offline build. Do the following:
#. Use a configuration generated by enabling :ref:`build
history <dev-manual/build-quality:maintaining build output quality>`.
#. Use the ``buildhistory-collect-srcrevs`` command to collect the
stored :term:`SRCREV` values from the build's history. For more
information on collecting these values, see the
":ref:`dev-manual/build-quality:build history package information`"
section.
#. Once you have the correct source revisions, you can modify
those recipes to set :term:`SRCREV` to specific versions of the
software.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,109 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Creating Your Own Distribution
******************************
When you build an image using the Yocto Project and do not alter any
distribution :term:`Metadata`, you are
creating a Poky distribution. If you wish to gain more control over
package alternative selections, compile-time options, and other
low-level configurations, you can create your own distribution.
To create your own distribution, the basic steps consist of creating
your own distribution layer, creating your own distribution
configuration file, and then adding any needed code and Metadata to the
layer. The following steps provide some more detail:
- *Create a layer for your new distro:* Create your distribution layer
so that you can keep your Metadata and code for the distribution
separate. It is strongly recommended that you create and use your own
layer for configuration and code. Using your own layer as compared to
just placing configurations in a ``local.conf`` configuration file
makes it easier to reproduce the same build configuration when using
multiple build machines. See the
":ref:`dev-manual/layers:creating a general layer using the \`\`bitbake-layers\`\` script`"
section for information on how to quickly set up a layer.
- *Create the distribution configuration file:* The distribution
configuration file needs to be created in the ``conf/distro``
directory of your layer. You need to name it using your distribution
name (e.g. ``mydistro.conf``).
.. note::
The :term:`DISTRO` variable in your ``local.conf`` file determines the
name of your distribution.
You can split out parts of your configuration file into include files
and then "require" them from within your distribution configuration
file. Be sure to place the include files in the
``conf/distro/include`` directory of your layer. A common example
usage of include files would be to separate out the selection of
desired version and revisions for individual recipes.
Your configuration file needs to set the following required
variables:
- :term:`DISTRO_NAME`
- :term:`DISTRO_VERSION`
These following variables are optional and you typically set them
from the distribution configuration file:
- :term:`DISTRO_FEATURES`
- :term:`DISTRO_EXTRA_RDEPENDS`
- :term:`DISTRO_EXTRA_RRECOMMENDS`
- :term:`TCLIBC`
.. tip::
If you want to base your distribution configuration file on the
very basic configuration from OE-Core, you can use
``conf/distro/defaultsetup.conf`` as a reference and just include
variables that differ as compared to ``defaultsetup.conf``.
Alternatively, you can create a distribution configuration file
from scratch using the ``defaultsetup.conf`` file or configuration files
from another distribution such as Poky as a reference.
- *Provide miscellaneous variables:* Be sure to define any other
variables for which you want to create a default or enforce as part
of the distribution configuration. You can include nearly any
variable from the ``local.conf`` file. The variables you use are not
limited to the list in the previous bulleted item.
- *Point to Your distribution configuration file:* In your ``local.conf``
file in the :term:`Build Directory`, set your :term:`DISTRO` variable to
point to your distribution's configuration file. For example, if your
distribution's configuration file is named ``mydistro.conf``, then
you point to it as follows::
DISTRO = "mydistro"
- *Add more to the layer if necessary:* Use your layer to hold other
information needed for the distribution:
- Add recipes for installing distro-specific configuration files
that are not already installed by another recipe. If you have
distro-specific configuration files that are included by an
existing recipe, you should add an append file (``.bbappend``) for
those. For general information and recommendations on how to add
recipes to your layer, see the
":ref:`dev-manual/layers:creating your own layer`" and
":ref:`dev-manual/layers:following best practices when creating layers`"
sections.
- Add any image recipes that are specific to your distribution.
- Add a ``psplash`` append file for a branded splash screen, using
the :term:`SPLASH_IMAGES` variable.
- Add any other append files to make custom changes that are
specific to individual recipes.
For information on append files, see the
":ref:`dev-manual/layers:appending other layers metadata with your layer`"
section.

View File

@@ -0,0 +1,72 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Creating a Custom Template Configuration Directory
**************************************************
If you are producing your own customized version of the build system for
use by other users, you might want to customize the message shown by the
setup script or you might want to change the template configuration
files (i.e. ``local.conf`` and ``bblayers.conf``) that are created in a
new build directory.
The OpenEmbedded build system uses the environment variable
``TEMPLATECONF`` to locate the directory from which it gathers
configuration information that ultimately ends up in the
:term:`Build Directory` ``conf`` directory.
By default, ``TEMPLATECONF`` is set as follows in the ``poky``
repository::
TEMPLATECONF=${TEMPLATECONF:-meta-poky/conf}
This is the
directory used by the build system to find templates from which to build
some key configuration files. If you look at this directory, you will
see the ``bblayers.conf.sample``, ``local.conf.sample``, and
``conf-notes.txt`` files. The build system uses these files to form the
respective ``bblayers.conf`` file, ``local.conf`` file, and display the
list of BitBake targets when running the setup script.
To override these default configuration files with configurations you
want used within every new Build Directory, simply set the
``TEMPLATECONF`` variable to your directory. The ``TEMPLATECONF``
variable is set in the ``.templateconf`` file, which is in the top-level
:term:`Source Directory` folder
(e.g. ``poky``). Edit the ``.templateconf`` so that it can locate your
directory.
Best practices dictate that you should keep your template configuration
directory in your custom distribution layer. For example, suppose you
have a layer named ``meta-mylayer`` located in your home directory and
you want your template configuration directory named ``myconf``.
Changing the ``.templateconf`` as follows causes the OpenEmbedded build
system to look in your directory and base its configuration files on the
``*.sample`` configuration files it finds. The final configuration files
(i.e. ``local.conf`` and ``bblayers.conf`` ultimately still end up in
your Build Directory, but they are based on your ``*.sample`` files.
::
TEMPLATECONF=${TEMPLATECONF:-meta-mylayer/myconf}
Aside from the ``*.sample`` configuration files, the ``conf-notes.txt``
also resides in the default ``meta-poky/conf`` directory. The script
that sets up the build environment (i.e.
:ref:`structure-core-script`) uses this file to
display BitBake targets as part of the script output. Customizing this
``conf-notes.txt`` file is a good way to make sure your list of custom
targets appears as part of the script's output.
Here is the default list of targets displayed as a result of running
either of the setup scripts::
You can now run 'bitbake <target>'
Common targets are:
core-image-minimal
core-image-sato
meta-toolchain
meta-ide-support
Changing the listed common targets is as easy as editing your version of
``conf-notes.txt`` in your custom template configuration directory and
making sure you have ``TEMPLATECONF`` set to your directory.

View File

@@ -0,0 +1,223 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Customizing Images
******************
You can customize images to satisfy particular requirements. This
section describes several methods and provides guidelines for each.
Customizing Images Using ``local.conf``
=======================================
Probably the easiest way to customize an image is to add a package by
way of the ``local.conf`` configuration file. Because it is limited to
local use, this method generally only allows you to add packages and is
not as flexible as creating your own customized image. When you add
packages using local variables this way, you need to realize that these
variable changes are in effect for every build and consequently affect
all images, which might not be what you require.
To add a package to your image using the local configuration file, use
the :term:`IMAGE_INSTALL` variable with the ``:append`` operator::
IMAGE_INSTALL:append = " strace"
Use of the syntax is important; specifically, the leading space
after the opening quote and before the package name, which is
``strace`` in this example. This space is required since the ``:append``
operator does not add the space.
Furthermore, you must use ``:append`` instead of the ``+=`` operator if
you want to avoid ordering issues. The reason for this is because doing
so unconditionally appends to the variable and avoids ordering problems
due to the variable being set in image recipes and ``.bbclass`` files
with operators like ``?=``. Using ``:append`` ensures the operation
takes effect.
As shown in its simplest use, ``IMAGE_INSTALL:append`` affects all
images. It is possible to extend the syntax so that the variable applies
to a specific image only. Here is an example::
IMAGE_INSTALL:append:pn-core-image-minimal = " strace"
This example adds ``strace`` to the ``core-image-minimal`` image only.
You can add packages using a similar approach through the
:term:`CORE_IMAGE_EXTRA_INSTALL` variable. If you use this variable, only
``core-image-*`` images are affected.
Customizing Images Using Custom ``IMAGE_FEATURES`` and ``EXTRA_IMAGE_FEATURES``
===============================================================================
Another method for customizing your image is to enable or disable
high-level image features by using the
:term:`IMAGE_FEATURES` and
:term:`EXTRA_IMAGE_FEATURES`
variables. Although the functions for both variables are nearly
equivalent, best practices dictate using :term:`IMAGE_FEATURES` from within
a recipe and using :term:`EXTRA_IMAGE_FEATURES` from within your
``local.conf`` file, which is found in the :term:`Build Directory`.
To understand how these features work, the best reference is
:ref:`meta/classes/image.bbclass <ref-classes-image>`.
This class lists out the available
:term:`IMAGE_FEATURES` of which most map to package groups while some, such
as ``debug-tweaks`` and ``read-only-rootfs``, resolve as general
configuration settings.
In summary, the file looks at the contents of the :term:`IMAGE_FEATURES`
variable and then maps or configures the feature accordingly. Based on
this information, the build system automatically adds the appropriate
packages or configurations to the
:term:`IMAGE_INSTALL` variable.
Effectively, you are enabling extra features by extending the class or
creating a custom class for use with specialized image ``.bb`` files.
Use the :term:`EXTRA_IMAGE_FEATURES` variable from within your local
configuration file. Using a separate area from which to enable features
with this variable helps you avoid overwriting the features in the image
recipe that are enabled with :term:`IMAGE_FEATURES`. The value of
:term:`EXTRA_IMAGE_FEATURES` is added to :term:`IMAGE_FEATURES` within
``meta/conf/bitbake.conf``.
To illustrate how you can use these variables to modify your image,
consider an example that selects the SSH server. The Yocto Project ships
with two SSH servers you can use with your images: Dropbear and OpenSSH.
Dropbear is a minimal SSH server appropriate for resource-constrained
environments, while OpenSSH is a well-known standard SSH server
implementation. By default, the ``core-image-sato`` image is configured
to use Dropbear. The ``core-image-full-cmdline`` and ``core-image-lsb``
images both include OpenSSH. The ``core-image-minimal`` image does not
contain an SSH server.
You can customize your image and change these defaults. Edit the
:term:`IMAGE_FEATURES` variable in your recipe or use the
:term:`EXTRA_IMAGE_FEATURES` in your ``local.conf`` file so that it
configures the image you are working with to include
``ssh-server-dropbear`` or ``ssh-server-openssh``.
.. note::
See the ":ref:`ref-manual/features:image features`" section in the Yocto
Project Reference Manual for a complete list of image features that ship
with the Yocto Project.
Customizing Images Using Custom .bb Files
=========================================
You can also customize an image by creating a custom recipe that defines
additional software as part of the image. The following example shows
the form for the two lines you need::
IMAGE_INSTALL = "packagegroup-core-x11-base package1 package2"
inherit core-image
Defining the software using a custom recipe gives you total control over
the contents of the image. It is important to use the correct names of
packages in the :term:`IMAGE_INSTALL` variable. You must use the
OpenEmbedded notation and not the Debian notation for the names (e.g.
``glibc-dev`` instead of ``libc6-dev``).
The other method for creating a custom image is to base it on an
existing image. For example, if you want to create an image based on
``core-image-sato`` but add the additional package ``strace`` to the
image, copy the ``meta/recipes-sato/images/core-image-sato.bb`` to a new
``.bb`` and add the following line to the end of the copy::
IMAGE_INSTALL += "strace"
Customizing Images Using Custom Package Groups
==============================================
For complex custom images, the best approach for customizing an image is
to create a custom package group recipe that is used to build the image
or images. A good example of a package group recipe is
``meta/recipes-core/packagegroups/packagegroup-base.bb``.
If you examine that recipe, you see that the :term:`PACKAGES` variable lists
the package group packages to produce. The ``inherit packagegroup``
statement sets appropriate default values and automatically adds
``-dev``, ``-dbg``, and ``-ptest`` complementary packages for each
package specified in the :term:`PACKAGES` statement.
.. note::
The ``inherit packagegroup`` line should be located near the top of the
recipe, certainly before the :term:`PACKAGES` statement.
For each package you specify in :term:`PACKAGES`, you can use :term:`RDEPENDS`
and :term:`RRECOMMENDS` entries to provide a list of packages the parent
task package should contain. You can see examples of these further down
in the ``packagegroup-base.bb`` recipe.
Here is a short, fabricated example showing the same basic pieces for a
hypothetical packagegroup defined in ``packagegroup-custom.bb``, where
the variable :term:`PN` is the standard way to abbreviate the reference to
the full packagegroup name ``packagegroup-custom``::
DESCRIPTION = "My Custom Package Groups"
inherit packagegroup
PACKAGES = "\
${PN}-apps \
${PN}-tools \
"
RDEPENDS:${PN}-apps = "\
dropbear \
portmap \
psplash"
RDEPENDS:${PN}-tools = "\
oprofile \
oprofileui-server \
lttng-tools"
RRECOMMENDS:${PN}-tools = "\
kernel-module-oprofile"
In the previous example, two package group packages are created with
their dependencies and their recommended package dependencies listed:
``packagegroup-custom-apps``, and ``packagegroup-custom-tools``. To
build an image using these package group packages, you need to add
``packagegroup-custom-apps`` and/or ``packagegroup-custom-tools`` to
:term:`IMAGE_INSTALL`. For other forms of image dependencies see the other
areas of this section.
Customizing an Image Hostname
=============================
By default, the configured hostname (i.e. ``/etc/hostname``) in an image
is the same as the machine name. For example, if
:term:`MACHINE` equals "qemux86", the
configured hostname written to ``/etc/hostname`` is "qemux86".
You can customize this name by altering the value of the "hostname"
variable in the ``base-files`` recipe using either an append file or a
configuration file. Use the following in an append file::
hostname = "myhostname"
Use the following in a configuration file::
hostname:pn-base-files = "myhostname"
Changing the default value of the variable "hostname" can be useful in
certain situations. For example, suppose you need to do extensive
testing on an image and you would like to easily identify the image
under test from existing images with typical default hostnames. In this
situation, you could change the default hostname to "testme", which
results in all the images using the name "testme". Once testing is
complete and you do not need to rebuild the image for test any longer,
you can easily reset the default hostname.
Another point of interest is that if you unset the variable, the image
will have no default hostname in the filesystem. Here is an example that
unsets the variable in a configuration file::
hostname:pn-base-files = ""
Having no default hostname in the filesystem is suitable for
environments that use dynamic hostnames such as virtual machines.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,82 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Using a Development Shell
*************************
When debugging certain commands or even when just editing packages,
``devshell`` can be a useful tool. When you invoke ``devshell``, all
tasks up to and including
:ref:`ref-tasks-patch` are run for the
specified target. Then, a new terminal is opened and you are placed in
``${``\ :term:`S`\ ``}``, the source
directory. In the new terminal, all the OpenEmbedded build-related
environment variables are still defined so you can use commands such as
``configure`` and ``make``. The commands execute just as if the
OpenEmbedded build system were executing them. Consequently, working
this way can be helpful when debugging a build or preparing software to
be used with the OpenEmbedded build system.
Following is an example that uses ``devshell`` on a target named
``matchbox-desktop``::
$ bitbake matchbox-desktop -c devshell
This command spawns a terminal with a shell prompt within the
OpenEmbedded build environment. The
:term:`OE_TERMINAL` variable
controls what type of shell is opened.
For spawned terminals, the following occurs:
- The ``PATH`` variable includes the cross-toolchain.
- The ``pkgconfig`` variables find the correct ``.pc`` files.
- The ``configure`` command finds the Yocto Project site files as well
as any other necessary files.
Within this environment, you can run configure or compile commands as if
they were being run by the OpenEmbedded build system itself. As noted
earlier, the working directory also automatically changes to the Source
Directory (:term:`S`).
To manually run a specific task using ``devshell``, run the
corresponding ``run.*`` script in the
``${``\ :term:`WORKDIR`\ ``}/temp``
directory (e.g., ``run.do_configure.``\ `pid`). If a task's script does
not exist, which would be the case if the task was skipped by way of the
sstate cache, you can create the task by first running it outside of the
``devshell``::
$ bitbake -c task
.. note::
- Execution of a task's ``run.*`` script and BitBake's execution of
a task are identical. In other words, running the script re-runs
the task just as it would be run using the ``bitbake -c`` command.
- Any ``run.*`` file that does not have a ``.pid`` extension is a
symbolic link (symlink) to the most recent version of that file.
Remember, that the ``devshell`` is a mechanism that allows you to get
into the BitBake task execution environment. And as such, all commands
must be called just as BitBake would call them. That means you need to
provide the appropriate options for cross-compilation and so forth as
applicable.
When you are finished using ``devshell``, exit the shell or close the
terminal window.
.. note::
- It is worth remembering that when using ``devshell`` you need to
use the full compiler name such as ``arm-poky-linux-gnueabi-gcc``
instead of just using ``gcc``. The same applies to other
applications such as ``binutils``, ``libtool`` and so forth.
BitBake sets up environment variables such as :term:`CC` to assist
applications, such as ``make`` to find the correct tools.
- It is also worth noting that ``devshell`` still works over X11
forwarding and similar situations.

View File

@@ -0,0 +1,74 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
.. _device-manager:
Selecting a Device Manager
**************************
The Yocto Project provides multiple ways to manage the device manager
(``/dev``):
- Persistent and Pre-Populated ``/dev``: For this case, the ``/dev``
directory is persistent and the required device nodes are created
during the build.
- Use ``devtmpfs`` with a Device Manager: For this case, the ``/dev``
directory is provided by the kernel as an in-memory file system and
is automatically populated by the kernel at runtime. Additional
configuration of device nodes is done in user space by a device
manager like ``udev`` or ``busybox-mdev``.
Using Persistent and Pre-Populated ``/dev``
===========================================
To use the static method for device population, you need to set the
:term:`USE_DEVFS` variable to "0"
as follows::
USE_DEVFS = "0"
The content of the resulting ``/dev`` directory is defined in a Device
Table file. The
:term:`IMAGE_DEVICE_TABLES`
variable defines the Device Table to use and should be set in the
machine or distro configuration file. Alternatively, you can set this
variable in your ``local.conf`` configuration file.
If you do not define the :term:`IMAGE_DEVICE_TABLES` variable, the default
``device_table-minimal.txt`` is used::
IMAGE_DEVICE_TABLES = "device_table-mymachine.txt"
The population is handled by the ``makedevs`` utility during image
creation:
Using ``devtmpfs`` and a Device Manager
=======================================
To use the dynamic method for device population, you need to use (or be
sure to set) the :term:`USE_DEVFS`
variable to "1", which is the default::
USE_DEVFS = "1"
With this
setting, the resulting ``/dev`` directory is populated by the kernel
using ``devtmpfs``. Make sure the corresponding kernel configuration
variable ``CONFIG_DEVTMPFS`` is set when building you build a Linux
kernel.
All devices created by ``devtmpfs`` will be owned by ``root`` and have
permissions ``0600``.
To have more control over the device nodes, you can use a device manager
like ``udev`` or ``busybox-mdev``. You choose the device manager by
defining the ``VIRTUAL-RUNTIME_dev_manager`` variable in your machine or
distro configuration file. Alternatively, you can set this variable in
your ``local.conf`` configuration file::
VIRTUAL-RUNTIME_dev_manager = "udev"
# Some alternative values
# VIRTUAL-RUNTIME_dev_manager = "busybox-mdev"
# VIRTUAL-RUNTIME_dev_manager = "systemd"

View File

@@ -0,0 +1,61 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Conserving Disk Space
*********************
Conserving Disk Space During Builds
===================================
To help conserve disk space during builds, you can add the following
statement to your project's ``local.conf`` configuration file found in
the :term:`Build Directory`::
INHERIT += "rm_work"
Adding this statement deletes the work directory used for
building a recipe once the recipe is built. For more information on
"rm_work", see the :ref:`ref-classes-rm-work` class in the
Yocto Project Reference Manual.
When you inherit this class and build a ``core-image-sato`` image for a
``qemux86-64`` machine from an Ubuntu 22.04 x86-64 system, you end up with a
final disk usage of 22 Gbytes instead of &MIN_DISK_SPACE; Gbytes. However,
&MIN_DISK_SPACE_RM_WORK; Gbytes of initial free disk space are still needed to
create temporary files before they can be deleted.
Purging Obsolete Shared State Cache Files
=========================================
After multiple build iterations, the Shared State (sstate) cache can contain
multiple cache files for a given package, consuming a substantial amount of
disk space. However, only the most recent ones are likely to be reused.
The following command is a quick way to purge all the cache files which
haven't been used for a least a specified number of days::
find build/sstate-cache -type f -mtime +$DAYS -delete
The above command relies on the fact that BitBake touches the sstate cache
files as it accesses them, when it has write access to the cache.
You could use ``-atime`` instead of ``-mtime`` if the partition isn't mounted
with the ``noatime`` option for a read only cache.
For more advanced needs, OpenEmbedded-Core also offers a more elaborate
command. It has the ability to purge all but the newest cache files on each
architecture, and also to remove files that it considers unreachable by
exploring a set of build configurations. However, this command
requires a full build environment to be available and doesn't work well
covering multiple releases. It won't work either on limited environments
such as BSD based NAS::
sstate-cache-management.sh --remove-duplicated --cache-dir=build/sstate-cache
This command will ask you to confirm the deletions it identifies.
Run ``sstate-cache-management.sh`` for more details about this script.
.. note::
As this command is much more cautious and selective, removing only cache files,
it will execute much slower than the simple ``find`` command described above.
Therefore, it may not be your best option to trim huge cache directories.

View File

@@ -0,0 +1,68 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Efficiently Fetching Source Files During a Build
================================================
The OpenEmbedded build system works with source files located through
the :term:`SRC_URI` variable. When
you build something using BitBake, a big part of the operation is
locating and downloading all the source tarballs. For images,
downloading all the source for various packages can take a significant
amount of time.
This section shows you how you can use mirrors to speed up fetching
source files and how you can pre-fetch files all of which leads to more
efficient use of resources and time.
Setting up Effective Mirrors
----------------------------
A good deal that goes into a Yocto Project build is simply downloading
all of the source tarballs. Maybe you have been working with another
build system for which you have built up a
sizable directory of source tarballs. Or, perhaps someone else has such
a directory for which you have read access. If so, you can save time by
adding statements to your configuration file so that the build process
checks local directories first for existing tarballs before checking the
Internet.
Here is an efficient way to set it up in your ``local.conf`` file::
SOURCE_MIRROR_URL ?= "file:///home/you/your-download-dir/"
INHERIT += "own-mirrors"
BB_GENERATE_MIRROR_TARBALLS = "1"
# BB_NO_NETWORK = "1"
In the previous example, the
:term:`BB_GENERATE_MIRROR_TARBALLS`
variable causes the OpenEmbedded build system to generate tarballs of
the Git repositories and store them in the
:term:`DL_DIR` directory. Due to
performance reasons, generating and storing these tarballs is not the
build system's default behavior.
You can also use the
:term:`PREMIRRORS` variable. For
an example, see the variable's glossary entry in the Yocto Project
Reference Manual.
Getting Source Files and Suppressing the Build
----------------------------------------------
Another technique you can use to ready yourself for a successive string
of build operations, is to pre-fetch all the source files without
actually starting a build. This technique lets you work through any
download issues and ultimately gathers all the source files into your
download directory :ref:`structure-build-downloads`,
which is located with :term:`DL_DIR`.
Use the following BitBake command form to fetch all the necessary
sources without starting the build::
$ bitbake target --runall=fetch
This
variation of the BitBake command guarantees that you have all the
sources for that BitBake target should you disconnect from the Internet
and want to do the build later offline.

View File

@@ -0,0 +1,84 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Using the Error Reporting Tool
******************************
The error reporting tool allows you to submit errors encountered during
builds to a central database. Outside of the build environment, you can
use a web interface to browse errors, view statistics, and query for
errors. The tool works using a client-server system where the client
portion is integrated with the installed Yocto Project
:term:`Source Directory` (e.g. ``poky``).
The server receives the information collected and saves it in a
database.
There is a live instance of the error reporting server at
https://errors.yoctoproject.org.
When you want to get help with build failures, you can submit all of the
information on the failure easily and then point to the URL in your bug
report or send an email to the mailing list.
.. note::
If you send error reports to this server, the reports become publicly
visible.
Enabling and Using the Tool
===========================
By default, the error reporting tool is disabled. You can enable it by
inheriting the :ref:`ref-classes-report-error` class by adding the
following statement to the end of your ``local.conf`` file in your
:term:`Build Directory`::
INHERIT += "report-error"
By default, the error reporting feature stores information in
``${``\ :term:`LOG_DIR`\ ``}/error-report``.
However, you can specify a directory to use by adding the following to
your ``local.conf`` file::
ERR_REPORT_DIR = "path"
Enabling error
reporting causes the build process to collect the errors and store them
in a file as previously described. When the build system encounters an
error, it includes a command as part of the console output. You can run
the command to send the error file to the server. For example, the
following command sends the errors to an upstream server::
$ send-error-report /home/brandusa/project/poky/build/tmp/log/error-report/error_report_201403141617.txt
In the previous example, the errors are sent to a public database
available at https://errors.yoctoproject.org, which is used by the
entire community. If you specify a particular server, you can send the
errors to a different database. Use the following command for more
information on available options::
$ send-error-report --help
When sending the error file, you are prompted to review the data being
sent as well as to provide a name and optional email address. Once you
satisfy these prompts, the command returns a link from the server that
corresponds to your entry in the database. For example, here is a
typical link: https://errors.yoctoproject.org/Errors/Details/9522/
Following the link takes you to a web interface where you can browse,
query the errors, and view statistics.
Disabling the Tool
==================
To disable the error reporting feature, simply remove or comment out the
following statement from the end of your ``local.conf`` file in your
:term:`Build Directory`::
INHERIT += "report-error"
Setting Up Your Own Error Reporting Server
==========================================
If you want to set up your own error reporting server, you can obtain
the code from the Git repository at :yocto_git:`/error-report-web/`.
Instructions on how to set it up are in the README document.

View File

@@ -0,0 +1,67 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Using an External SCM
*********************
If you're working on a recipe that pulls from an external Source Code
Manager (SCM), it is possible to have the OpenEmbedded build system
notice new recipe changes added to the SCM and then build the resulting
packages that depend on the new recipes by using the latest versions.
This only works for SCMs from which it is possible to get a sensible
revision number for changes. Currently, you can do this with Apache
Subversion (SVN), Git, and Bazaar (BZR) repositories.
To enable this behavior, the :term:`PV` of
the recipe needs to reference
:term:`SRCPV`. Here is an example::
PV = "1.2.3+git${SRCPV}"
Then, you can add the following to your
``local.conf``::
SRCREV:pn-PN = "${AUTOREV}"
:term:`PN` is the name of the recipe for
which you want to enable automatic source revision updating.
If you do not want to update your local configuration file, you can add
the following directly to the recipe to finish enabling the feature::
SRCREV = "${AUTOREV}"
The Yocto Project provides a distribution named ``poky-bleeding``, whose
configuration file contains the line::
require conf/distro/include/poky-floating-revisions.inc
This line pulls in the
listed include file that contains numerous lines of exactly that form::
#SRCREV:pn-opkg-native ?= "${AUTOREV}"
#SRCREV:pn-opkg-sdk ?= "${AUTOREV}"
#SRCREV:pn-opkg ?= "${AUTOREV}"
#SRCREV:pn-opkg-utils-native ?= "${AUTOREV}"
#SRCREV:pn-opkg-utils ?= "${AUTOREV}"
SRCREV:pn-gconf-dbus ?= "${AUTOREV}"
SRCREV:pn-matchbox-common ?= "${AUTOREV}"
SRCREV:pn-matchbox-config-gtk ?= "${AUTOREV}"
SRCREV:pn-matchbox-desktop ?= "${AUTOREV}"
SRCREV:pn-matchbox-keyboard ?= "${AUTOREV}"
SRCREV:pn-matchbox-panel-2 ?= "${AUTOREV}"
SRCREV:pn-matchbox-themes-extra ?= "${AUTOREV}"
SRCREV:pn-matchbox-terminal ?= "${AUTOREV}"
SRCREV:pn-matchbox-wm ?= "${AUTOREV}"
SRCREV:pn-settings-daemon ?= "${AUTOREV}"
SRCREV:pn-screenshot ?= "${AUTOREV}"
. . .
These lines allow you to
experiment with building a distribution that tracks the latest
development source for numerous packages.
.. note::
The ``poky-bleeding`` distribution is not tested on a regular basis. Keep
this in mind if you use it.

View File

@@ -0,0 +1,40 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Optionally Using an External Toolchain
**************************************
You might want to use an external toolchain as part of your development.
If this is the case, the fundamental steps you need to accomplish are as
follows:
- Understand where the installed toolchain resides. For cases where you
need to build the external toolchain, you would need to take separate
steps to build and install the toolchain.
- Make sure you add the layer that contains the toolchain to your
``bblayers.conf`` file through the
:term:`BBLAYERS` variable.
- Set the :term:`EXTERNAL_TOOLCHAIN` variable in your ``local.conf`` file
to the location in which you installed the toolchain.
The toolchain configuration is very flexible and customizable. It
is primarily controlled with the :term:`TCMODE` variable. This variable
controls which ``tcmode-*.inc`` file to include from the
``meta/conf/distro/include`` directory within the :term:`Source Directory`.
The default value of :term:`TCMODE` is "default", which tells the
OpenEmbedded build system to use its internally built toolchain (i.e.
``tcmode-default.inc``). However, other patterns are accepted. In
particular, "external-\*" refers to external toolchains. One example is
the Mentor Graphics Sourcery G++ Toolchain. Support for this toolchain resides
in the separate ``meta-sourcery`` layer at
https://github.com/MentorEmbedded/meta-sourcery/.
See its ``README`` file for details about how to use this layer.
Another example of external toolchain layer is
:yocto_git:`meta-arm-toolchain </meta-arm/tree/meta-arm-toolchain/>`
supporting GNU toolchains released by ARM.
You can find further information by reading about the :term:`TCMODE` variable
in the Yocto Project Reference Manual's variable glossary.

View File

@@ -0,0 +1,155 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Enabling GObject Introspection Support
**************************************
`GObject introspection <https://gi.readthedocs.io/en/latest/>`__
is the standard mechanism for accessing GObject-based software from
runtime environments. GObject is a feature of the GLib library that
provides an object framework for the GNOME desktop and related software.
GObject Introspection adds information to GObject that allows objects
created within it to be represented across different programming
languages. If you want to construct GStreamer pipelines using Python, or
control UPnP infrastructure using Javascript and GUPnP, GObject
introspection is the only way to do it.
This section describes the Yocto Project support for generating and
packaging GObject introspection data. GObject introspection data is a
description of the API provided by libraries built on top of the GLib
framework, and, in particular, that framework's GObject mechanism.
GObject Introspection Repository (GIR) files go to ``-dev`` packages,
``typelib`` files go to main packages as they are packaged together with
libraries that are introspected.
The data is generated when building such a library, by linking the
library with a small executable binary that asks the library to describe
itself, and then executing the binary and processing its output.
Generating this data in a cross-compilation environment is difficult
because the library is produced for the target architecture, but its
code needs to be executed on the build host. This problem is solved with
the OpenEmbedded build system by running the code through QEMU, which
allows precisely that. Unfortunately, QEMU does not always work
perfectly as mentioned in the ":ref:`dev-manual/gobject-introspection:known issues`"
section.
Enabling the Generation of Introspection Data
=============================================
Enabling the generation of introspection data (GIR files) in your
library package involves the following:
#. Inherit the :ref:`ref-classes-gobject-introspection` class.
#. Make sure introspection is not disabled anywhere in the recipe or
from anything the recipe includes. Also, make sure that
"gobject-introspection-data" is not in
:term:`DISTRO_FEATURES_BACKFILL_CONSIDERED`
and that "qemu-usermode" is not in
:term:`MACHINE_FEATURES_BACKFILL_CONSIDERED`.
In either of these conditions, nothing will happen.
#. Try to build the recipe. If you encounter build errors that look like
something is unable to find ``.so`` libraries, check where these
libraries are located in the source tree and add the following to the
recipe::
GIR_EXTRA_LIBS_PATH = "${B}/something/.libs"
.. note::
See recipes in the ``oe-core`` repository that use that
:term:`GIR_EXTRA_LIBS_PATH` variable as an example.
#. Look for any other errors, which probably mean that introspection
support in a package is not entirely standard, and thus breaks down
in a cross-compilation environment. For such cases, custom-made fixes
are needed. A good place to ask and receive help in these cases is
the :ref:`Yocto Project mailing
lists <resources-mailinglist>`.
.. note::
Using a library that no longer builds against the latest Yocto
Project release and prints introspection related errors is a good
candidate for the previous procedure.
Disabling the Generation of Introspection Data
==============================================
You might find that you do not want to generate introspection data. Or,
perhaps QEMU does not work on your build host and target architecture
combination. If so, you can use either of the following methods to
disable GIR file generations:
- Add the following to your distro configuration::
DISTRO_FEATURES_BACKFILL_CONSIDERED = "gobject-introspection-data"
Adding this statement disables generating introspection data using
QEMU but will still enable building introspection tools and libraries
(i.e. building them does not require the use of QEMU).
- Add the following to your machine configuration::
MACHINE_FEATURES_BACKFILL_CONSIDERED = "qemu-usermode"
Adding this statement disables the use of QEMU when building packages for your
machine. Currently, this feature is used only by introspection
recipes and has the same effect as the previously described option.
.. note::
Future releases of the Yocto Project might have other features
affected by this option.
If you disable introspection data, you can still obtain it through other
means such as copying the data from a suitable sysroot, or by generating
it on the target hardware. The OpenEmbedded build system does not
currently provide specific support for these techniques.
Testing that Introspection Works in an Image
============================================
Use the following procedure to test if generating introspection data is
working in an image:
#. Make sure that "gobject-introspection-data" is not in
:term:`DISTRO_FEATURES_BACKFILL_CONSIDERED`
and that "qemu-usermode" is not in
:term:`MACHINE_FEATURES_BACKFILL_CONSIDERED`.
#. Build ``core-image-sato``.
#. Launch a Terminal and then start Python in the terminal.
#. Enter the following in the terminal::
>>> from gi.repository import GLib
>>> GLib.get_host_name()
#. For something a little more advanced, enter the following see:
https://python-gtk-3-tutorial.readthedocs.io/en/latest/introduction.html
Known Issues
============
Here are know issues in GObject Introspection Support:
- ``qemu-ppc64`` immediately crashes. Consequently, you cannot build
introspection data on that architecture.
- x32 is not supported by QEMU. Consequently, introspection data is
disabled.
- musl causes transient GLib binaries to crash on assertion failures.
Consequently, generating introspection data is disabled.
- Because QEMU is not able to run the binaries correctly, introspection
is disabled for some specific packages under specific architectures
(e.g. ``gcr``, ``libsecret``, and ``webkit``).
- QEMU usermode might not work properly when running 64-bit binaries
under 32-bit host machines. In particular, "qemumips64" is known to
not work under i686.

View File

@@ -4,15 +4,48 @@
Yocto Project Development Tasks Manual
======================================
|
.. toctree::
:caption: Table of Contents
:numbered:
intro
start
common-tasks
layers
customizing-images
new-recipe
new-machine
upgrading-recipes
temporary-source-code
quilt.rst
development-shell
python-development-shell
building
speeding-up-build
libraries
prebuilt-libraries
x32-psabi
gobject-introspection
external-toolchain
wic
bmaptool
securing-images
custom-distribution
custom-template-configuration-directory
disk-space
packages
efficiently-fetching-sources
init-manager
device-manager
external-scm
read-only-rootfs
build-quality
runtime-testing
debugging
licenses
vulnerabilities
sbom
error-reporting-tool
wayland
qemu
.. include:: /boilerplate.rst

View File

@@ -0,0 +1,162 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
.. _init-manager:
Selecting an Initialization Manager
***********************************
By default, the Yocto Project uses :wikipedia:`SysVinit <Init#SysV-style>` as
the initialization manager. There is also support for BusyBox init, a simpler
implementation, as well as support for :wikipedia:`systemd <Systemd>`, which
is a full replacement for init with parallel starting of services, reduced
shell overhead, increased security and resource limits for services, and other
features that are used by many distributions.
Within the system, SysVinit and BusyBox init treat system components as
services. These services are maintained as shell scripts stored in the
``/etc/init.d/`` directory.
SysVinit is more elaborate than BusyBox init and organizes services in
different run levels. This organization is maintained by putting links
to the services in the ``/etc/rcN.d/`` directories, where `N/` is one
of the following options: "S", "0", "1", "2", "3", "4", "5", or "6".
.. note::
Each runlevel has a dependency on the previous runlevel. This
dependency allows the services to work properly.
Both SysVinit and BusyBox init are configured through the ``/etc/inittab``
file, with a very similar syntax, though of course BusyBox init features
are more limited.
In comparison, systemd treats components as units. Using units is a
broader concept as compared to using a service. A unit includes several
different types of entities. ``Service`` is one of the types of entities.
The runlevel concept in SysVinit corresponds to the concept of a target
in systemd, where target is also a type of supported unit.
In systems with SysVinit or BusyBox init, services load sequentially (i.e. one
by one) during init and parallelization is not supported. With systemd, services
start in parallel. This method can have an impact on the startup performance
of a given service, though systemd will also provide more services by default,
therefore increasing the total system boot time. systemd also substantially
increases system size because of its multiple components and the extra
dependencies it pulls.
On the contrary, BusyBox init is the simplest and the lightest solution and
also comes with BusyBox mdev as device manager, a lighter replacement to
:wikipedia:`udev <Udev>`, which SysVinit and systemd both use.
The ":ref:`device-manager`" chapter has more details about device managers.
Using SysVinit with udev
=========================
SysVinit with the udev device manager corresponds to the
default setting in Poky. This corresponds to setting::
INIT_MANAGER = "sysvinit"
Using BusyBox init with BusyBox mdev
====================================
BusyBox init with BusyBox mdev is the simplest and lightest solution
for small root filesystems. All you need is BusyBox, which most systems
have anyway::
INIT_MANAGER = "mdev-busybox"
Using systemd
=============
The last option is to use systemd together with the udev device
manager. This is the most powerful and versatile solution, especially
for more complex systems::
INIT_MANAGER = "systemd"
This will enable systemd and remove sysvinit components from the image.
See :yocto_git:`meta/conf/distro/include/init-manager-systemd.inc
</poky/tree/meta/conf/distro/include/init-manager-systemd.inc>` for exact
details on what this does.
Controling systemd from the target command line
-----------------------------------------------
Here is a quick reference for controling systemd from the command line on the
target. Instead of opening and sometimes modifying files, most interaction
happens through the ``systemctl`` and ``journalctl`` commands:
- ``systemctl status``: show the status of all services
- ``systemctl status <service>``: show the status of one service
- ``systemctl [start|stop] <service>``: start or stop a service
- ``systemctl [enable|disable] <service>``: enable or disable a service at boot time
- ``systemctl list-units``: list all available units
- ``journalctl -a``: show all logs for all services
- ``journalctl -f``: show only the last log entries, and keep printing updates as they arrive
- ``journalctl -u``: show only logs from a particular service
Using systemd-journald without a traditional syslog daemon
----------------------------------------------------------
Counter-intuitively, ``systemd-journald`` is not a syslog runtime or provider,
and the proper way to use ``systemd-journald`` as your sole logging mechanism is to
effectively disable syslog entirely by setting these variables in your distribution
configuration file::
VIRTUAL-RUNTIME_syslog = ""
VIRTUAL-RUNTIME_base-utils-syslog = ""
Doing so will prevent ``rsyslog`` / ``busybox-syslog`` from being pulled in by
default, leaving only ``systemd-journald``.
Summary
-------
The Yocto Project supports three different initialization managers, offering
increasing levels of complexity and functionality:
.. list-table::
:widths: 40 20 20 20
:header-rows: 1
* -
- BusyBox init
- SysVinit
- systemd
* - Size
- Small
- Small
- Big [#footnote-systemd-size]_
* - Complexity
- Small
- Medium
- High
* - Support for boot profiles
- No
- Yes ("runlevels")
- Yes ("targets")
* - Services defined as
- Shell scripts
- Shell scripts
- Description files
* - Starting services in parallel
- No
- No
- Yes
* - Setting service resource limits
- No
- No
- Yes
* - Support service isolation
- No
- No
- Yes
* - Integrated logging
- No
- No
- Yes
.. [#footnote-systemd-size] Using systemd increases the ``core-image-minimal``
image size by 160\% for ``qemux86-64`` on Mickledore (4.2), compared to SysVinit.

View File

@@ -0,0 +1,839 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Understanding and Creating Layers
*********************************
The OpenEmbedded build system supports organizing
:term:`Metadata` into multiple layers.
Layers allow you to isolate different types of customizations from each
other. For introductory information on the Yocto Project Layer Model,
see the
":ref:`overview-manual/yp-intro:the yocto project layer model`"
section in the Yocto Project Overview and Concepts Manual.
Creating Your Own Layer
=======================
.. note::
It is very easy to create your own layers to use with the OpenEmbedded
build system, as the Yocto Project ships with tools that speed up creating
layers. This section describes the steps you perform by hand to create
layers so that you can better understand them. For information about the
layer-creation tools, see the
":ref:`bsp-guide/bsp:creating a new bsp layer using the \`\`bitbake-layers\`\` script`"
section in the Yocto Project Board Support Package (BSP) Developer's
Guide and the ":ref:`dev-manual/layers:creating a general layer using the \`\`bitbake-layers\`\` script`"
section further down in this manual.
Follow these general steps to create your layer without using tools:
#. *Check Existing Layers:* Before creating a new layer, you should be
sure someone has not already created a layer containing the Metadata
you need. You can see the :oe_layerindex:`OpenEmbedded Metadata Index <>`
for a list of layers from the OpenEmbedded community that can be used in
the Yocto Project. You could find a layer that is identical or close
to what you need.
#. *Create a Directory:* Create the directory for your layer. When you
create the layer, be sure to create the directory in an area not
associated with the Yocto Project :term:`Source Directory`
(e.g. the cloned ``poky`` repository).
While not strictly required, prepend the name of the directory with
the string "meta-". For example::
meta-mylayer
meta-GUI_xyz
meta-mymachine
With rare exceptions, a layer's name follows this form::
meta-root_name
Following this layer naming convention can save
you trouble later when tools, components, or variables "assume" your
layer name begins with "meta-". A notable example is in configuration
files as shown in the following step where layer names without the
"meta-" string are appended to several variables used in the
configuration.
#. *Create a Layer Configuration File:* Inside your new layer folder,
you need to create a ``conf/layer.conf`` file. It is easiest to take
an existing layer configuration file and copy that to your layer's
``conf`` directory and then modify the file as needed.
The ``meta-yocto-bsp/conf/layer.conf`` file in the Yocto Project
:yocto_git:`Source Repositories </poky/tree/meta-yocto-bsp/conf>`
demonstrates the required syntax. For your layer, you need to replace
"yoctobsp" with a unique identifier for your layer (e.g. "machinexyz"
for a layer named "meta-machinexyz")::
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
# We have recipes-* directories, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "yoctobsp"
BBFILE_PATTERN_yoctobsp = "^${LAYERDIR}/"
BBFILE_PRIORITY_yoctobsp = "5"
LAYERVERSION_yoctobsp = "4"
LAYERSERIES_COMPAT_yoctobsp = "dunfell"
Following is an explanation of the layer configuration file:
- :term:`BBPATH`: Adds the layer's
root directory to BitBake's search path. Through the use of the
:term:`BBPATH` variable, BitBake locates class files (``.bbclass``),
configuration files, and files that are included with ``include``
and ``require`` statements. For these cases, BitBake uses the
first file that matches the name found in :term:`BBPATH`. This is
similar to the way the ``PATH`` variable is used for binaries. It
is recommended, therefore, that you use unique class and
configuration filenames in your custom layer.
- :term:`BBFILES`: Defines the
location for all recipes in the layer.
- :term:`BBFILE_COLLECTIONS`:
Establishes the current layer through a unique identifier that is
used throughout the OpenEmbedded build system to refer to the
layer. In this example, the identifier "yoctobsp" is the
representation for the container layer named "meta-yocto-bsp".
- :term:`BBFILE_PATTERN`:
Expands immediately during parsing to provide the directory of the
layer.
- :term:`BBFILE_PRIORITY`:
Establishes a priority to use for recipes in the layer when the
OpenEmbedded build finds recipes of the same name in different
layers.
- :term:`LAYERVERSION`:
Establishes a version number for the layer. You can use this
version number to specify this exact version of the layer as a
dependency when using the
:term:`LAYERDEPENDS`
variable.
- :term:`LAYERDEPENDS`:
Lists all layers on which this layer depends (if any).
- :term:`LAYERSERIES_COMPAT`:
Lists the :yocto_wiki:`Yocto Project </Releases>`
releases for which the current version is compatible. This
variable is a good way to indicate if your particular layer is
current.
#. *Add Content:* Depending on the type of layer, add the content. If
the layer adds support for a machine, add the machine configuration
in a ``conf/machine/`` file within the layer. If the layer adds
distro policy, add the distro configuration in a ``conf/distro/``
file within the layer. If the layer introduces new recipes, put the
recipes you need in ``recipes-*`` subdirectories within the layer.
.. note::
For an explanation of layer hierarchy that is compliant with the
Yocto Project, see the ":ref:`bsp-guide/bsp:example filesystem layout`"
section in the Yocto Project Board Support Package (BSP) Developer's Guide.
#. *Optionally Test for Compatibility:* If you want permission to use
the Yocto Project Compatibility logo with your layer or application
that uses your layer, perform the steps to apply for compatibility.
See the
":ref:`dev-manual/layers:making sure your layer is compatible with yocto project`"
section for more information.
Following Best Practices When Creating Layers
=============================================
To create layers that are easier to maintain and that will not impact
builds for other machines, you should consider the information in the
following list:
- *Avoid "Overlaying" Entire Recipes from Other Layers in Your
Configuration:* In other words, do not copy an entire recipe into
your layer and then modify it. Rather, use an append file
(``.bbappend``) to override only those parts of the original recipe
you need to modify.
- *Avoid Duplicating Include Files:* Use append files (``.bbappend``)
for each recipe that uses an include file. Or, if you are introducing
a new recipe that requires the included file, use the path relative
to the original layer directory to refer to the file. For example,
use ``require recipes-core/``\ `package`\ ``/``\ `file`\ ``.inc`` instead
of ``require`` `file`\ ``.inc``. If you're finding you have to overlay
the include file, it could indicate a deficiency in the include file
in the layer to which it originally belongs. If this is the case, you
should try to address that deficiency instead of overlaying the
include file. For example, you could address this by getting the
maintainer of the include file to add a variable or variables to make
it easy to override the parts needing to be overridden.
- *Structure Your Layers:* Proper use of overrides within append files
and placement of machine-specific files within your layer can ensure
that a build is not using the wrong Metadata and negatively impacting
a build for a different machine. Following are some examples:
- *Modify Variables to Support a Different Machine:* Suppose you
have a layer named ``meta-one`` that adds support for building
machine "one". To do so, you use an append file named
``base-files.bbappend`` and create a dependency on "foo" by
altering the :term:`DEPENDS`
variable::
DEPENDS = "foo"
The dependency is created during any
build that includes the layer ``meta-one``. However, you might not
want this dependency for all machines. For example, suppose you
are building for machine "two" but your ``bblayers.conf`` file has
the ``meta-one`` layer included. During the build, the
``base-files`` for machine "two" will also have the dependency on
``foo``.
To make sure your changes apply only when building machine "one",
use a machine override with the :term:`DEPENDS` statement::
DEPENDS:one = "foo"
You should follow the same strategy when using ``:append``
and ``:prepend`` operations::
DEPENDS:append:one = " foo"
DEPENDS:prepend:one = "foo "
As an actual example, here's a
snippet from the generic kernel include file ``linux-yocto.inc``,
wherein the kernel compile and link options are adjusted in the
case of a subset of the supported architectures::
DEPENDS:append:aarch64 = " libgcc"
KERNEL_CC:append:aarch64 = " ${TOOLCHAIN_OPTIONS}"
KERNEL_LD:append:aarch64 = " ${TOOLCHAIN_OPTIONS}"
DEPENDS:append:nios2 = " libgcc"
KERNEL_CC:append:nios2 = " ${TOOLCHAIN_OPTIONS}"
KERNEL_LD:append:nios2 = " ${TOOLCHAIN_OPTIONS}"
DEPENDS:append:arc = " libgcc"
KERNEL_CC:append:arc = " ${TOOLCHAIN_OPTIONS}"
KERNEL_LD:append:arc = " ${TOOLCHAIN_OPTIONS}"
KERNEL_FEATURES:append:qemuall=" features/debug/printk.scc"
- *Place Machine-Specific Files in Machine-Specific Locations:* When
you have a base recipe, such as ``base-files.bb``, that contains a
:term:`SRC_URI` statement to a
file, you can use an append file to cause the build to use your
own version of the file. For example, an append file in your layer
at ``meta-one/recipes-core/base-files/base-files.bbappend`` could
extend :term:`FILESPATH` using :term:`FILESEXTRAPATHS` as follows::
FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
The build for machine "one" will pick up your machine-specific file as
long as you have the file in
``meta-one/recipes-core/base-files/base-files/``. However, if you
are building for a different machine and the ``bblayers.conf``
file includes the ``meta-one`` layer and the location of your
machine-specific file is the first location where that file is
found according to :term:`FILESPATH`, builds for all machines will
also use that machine-specific file.
You can make sure that a machine-specific file is used for a
particular machine by putting the file in a subdirectory specific
to the machine. For example, rather than placing the file in
``meta-one/recipes-core/base-files/base-files/`` as shown above,
put it in ``meta-one/recipes-core/base-files/base-files/one/``.
Not only does this make sure the file is used only when building
for machine "one", but the build process locates the file more
quickly.
In summary, you need to place all files referenced from
:term:`SRC_URI` in a machine-specific subdirectory within the layer in
order to restrict those files to machine-specific builds.
- *Perform Steps to Apply for Yocto Project Compatibility:* If you want
permission to use the Yocto Project Compatibility logo with your
layer or application that uses your layer, perform the steps to apply
for compatibility. See the
":ref:`dev-manual/layers:making sure your layer is compatible with yocto project`"
section for more information.
- *Follow the Layer Naming Convention:* Store custom layers in a Git
repository that use the ``meta-layer_name`` format.
- *Group Your Layers Locally:* Clone your repository alongside other
cloned ``meta`` directories from the :term:`Source Directory`.
Making Sure Your Layer is Compatible With Yocto Project
=======================================================
When you create a layer used with the Yocto Project, it is advantageous
to make sure that the layer interacts well with existing Yocto Project
layers (i.e. the layer is compatible with the Yocto Project). Ensuring
compatibility makes the layer easy to be consumed by others in the Yocto
Project community and could allow you permission to use the Yocto
Project Compatible Logo.
.. note::
Only Yocto Project member organizations are permitted to use the
Yocto Project Compatible Logo. The logo is not available for general
use. For information on how to become a Yocto Project member
organization, see the :yocto_home:`Yocto Project Website <>`.
The Yocto Project Compatibility Program consists of a layer application
process that requests permission to use the Yocto Project Compatibility
Logo for your layer and application. The process consists of two parts:
#. Successfully passing a script (``yocto-check-layer``) that when run
against your layer, tests it against constraints based on experiences
of how layers have worked in the real world and where pitfalls have
been found. Getting a "PASS" result from the script is required for
successful compatibility registration.
#. Completion of an application acceptance form, which you can find at
:yocto_home:`/webform/yocto-project-compatible-registration`.
To be granted permission to use the logo, you need to satisfy the
following:
- Be able to check the box indicating that you got a "PASS" when
running the script against your layer.
- Answer "Yes" to the questions on the form or have an acceptable
explanation for any questions answered "No".
- Be a Yocto Project Member Organization.
The remainder of this section presents information on the registration
form and on the ``yocto-check-layer`` script.
Yocto Project Compatible Program Application
--------------------------------------------
Use the form to apply for your layer's approval. Upon successful
application, you can use the Yocto Project Compatibility Logo with your
layer and the application that uses your layer.
To access the form, use this link:
:yocto_home:`/webform/yocto-project-compatible-registration`.
Follow the instructions on the form to complete your application.
The application consists of the following sections:
- *Contact Information:* Provide your contact information as the fields
require. Along with your information, provide the released versions
of the Yocto Project for which your layer is compatible.
- *Acceptance Criteria:* Provide "Yes" or "No" answers for each of the
items in the checklist. There is space at the bottom of the form for
any explanations for items for which you answered "No".
- *Recommendations:* Provide answers for the questions regarding Linux
kernel use and build success.
``yocto-check-layer`` Script
----------------------------
The ``yocto-check-layer`` script provides you a way to assess how
compatible your layer is with the Yocto Project. You should run this
script prior to using the form to apply for compatibility as described
in the previous section. You need to achieve a "PASS" result in order to
have your application form successfully processed.
The script divides tests into three areas: COMMON, BSP, and DISTRO. For
example, given a distribution layer (DISTRO), the layer must pass both
the COMMON and DISTRO related tests. Furthermore, if your layer is a BSP
layer, the layer must pass the COMMON and BSP set of tests.
To execute the script, enter the following commands from your build
directory::
$ source oe-init-build-env
$ yocto-check-layer your_layer_directory
Be sure to provide the actual directory for your
layer as part of the command.
Entering the command causes the script to determine the type of layer
and then to execute a set of specific tests against the layer. The
following list overviews the test:
- ``common.test_readme``: Tests if a ``README`` file exists in the
layer and the file is not empty.
- ``common.test_parse``: Tests to make sure that BitBake can parse the
files without error (i.e. ``bitbake -p``).
- ``common.test_show_environment``: Tests that the global or per-recipe
environment is in order without errors (i.e. ``bitbake -e``).
- ``common.test_world``: Verifies that ``bitbake world`` works.
- ``common.test_signatures``: Tests to be sure that BSP and DISTRO
layers do not come with recipes that change signatures.
- ``common.test_layerseries_compat``: Verifies layer compatibility is
set properly.
- ``bsp.test_bsp_defines_machines``: Tests if a BSP layer has machine
configurations.
- ``bsp.test_bsp_no_set_machine``: Tests to ensure a BSP layer does not
set the machine when the layer is added.
- ``bsp.test_machine_world``: Verifies that ``bitbake world`` works
regardless of which machine is selected.
- ``bsp.test_machine_signatures``: Verifies that building for a
particular machine affects only the signature of tasks specific to
that machine.
- ``distro.test_distro_defines_distros``: Tests if a DISTRO layer has
distro configurations.
- ``distro.test_distro_no_set_distros``: Tests to ensure a DISTRO layer
does not set the distribution when the layer is added.
Enabling Your Layer
===================
Before the OpenEmbedded build system can use your new layer, you need to
enable it. To enable your layer, simply add your layer's path to the
:term:`BBLAYERS` variable in your ``conf/bblayers.conf`` file, which is
found in the :term:`Build Directory`. The following example shows how to
enable your new ``meta-mylayer`` layer (note how your new layer exists
outside of the official ``poky`` repository which you would have checked
out earlier)::
# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
BBLAYERS ?= " \
/home/user/poky/meta \
/home/user/poky/meta-poky \
/home/user/poky/meta-yocto-bsp \
/home/user/mystuff/meta-mylayer \
"
BitBake parses each ``conf/layer.conf`` file from the top down as
specified in the :term:`BBLAYERS` variable within the ``conf/bblayers.conf``
file. During the processing of each ``conf/layer.conf`` file, BitBake
adds the recipes, classes and configurations contained within the
particular layer to the source directory.
Appending Other Layers Metadata With Your Layer
===============================================
A recipe that appends Metadata to another recipe is called a BitBake
append file. A BitBake append file uses the ``.bbappend`` file type
suffix, while the corresponding recipe to which Metadata is being
appended uses the ``.bb`` file type suffix.
You can use a ``.bbappend`` file in your layer to make additions or
changes to the content of another layer's recipe without having to copy
the other layer's recipe into your layer. Your ``.bbappend`` file
resides in your layer, while the main ``.bb`` recipe file to which you
are appending Metadata resides in a different layer.
Being able to append information to an existing recipe not only avoids
duplication, but also automatically applies recipe changes from a
different layer into your layer. If you were copying recipes, you would
have to manually merge changes as they occur.
When you create an append file, you must use the same root name as the
corresponding recipe file. For example, the append file
``someapp_3.1.bbappend`` must apply to ``someapp_3.1.bb``. This
means the original recipe and append filenames are version
number-specific. If the corresponding recipe is renamed to update to a
newer version, you must also rename and possibly update the
corresponding ``.bbappend`` as well. During the build process, BitBake
displays an error on starting if it detects a ``.bbappend`` file that
does not have a corresponding recipe with a matching name. See the
:term:`BB_DANGLINGAPPENDS_WARNONLY`
variable for information on how to handle this error.
Overlaying a File Using Your Layer
----------------------------------
As an example, consider the main formfactor recipe and a corresponding
formfactor append file both from the :term:`Source Directory`.
Here is the main
formfactor recipe, which is named ``formfactor_0.0.bb`` and located in
the "meta" layer at ``meta/recipes-bsp/formfactor``::
SUMMARY = "Device formfactor information"
DESCRIPTION = "A formfactor configuration file provides information about the \
target hardware for which the image is being built and information that the \
build system cannot obtain from other sources such as the kernel."
SECTION = "base"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
PR = "r45"
SRC_URI = "file://config file://machconfig"
S = "${WORKDIR}"
PACKAGE_ARCH = "${MACHINE_ARCH}"
INHIBIT_DEFAULT_DEPS = "1"
do_install() {
# Install file only if it has contents
install -d ${D}${sysconfdir}/formfactor/
install -m 0644 ${S}/config ${D}${sysconfdir}/formfactor/
if [ -s "${S}/machconfig" ]; then
install -m 0644 ${S}/machconfig ${D}${sysconfdir}/formfactor/
fi
}
In the main recipe, note the :term:`SRC_URI`
variable, which tells the OpenEmbedded build system where to find files
during the build.
Following is the append file, which is named ``formfactor_0.0.bbappend``
and is from the Raspberry Pi BSP Layer named ``meta-raspberrypi``. The
file is in the layer at ``recipes-bsp/formfactor``::
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
By default, the build system uses the
:term:`FILESPATH` variable to
locate files. This append file extends the locations by setting the
:term:`FILESEXTRAPATHS`
variable. Setting this variable in the ``.bbappend`` file is the most
reliable and recommended method for adding directories to the search
path used by the build system to find files.
The statement in this example extends the directories to include
``${``\ :term:`THISDIR`\ ``}/${``\ :term:`PN`\ ``}``,
which resolves to a directory named ``formfactor`` in the same directory
in which the append file resides (i.e.
``meta-raspberrypi/recipes-bsp/formfactor``. This implies that you must
have the supporting directory structure set up that will contain any
files or patches you will be including from the layer.
Using the immediate expansion assignment operator ``:=`` is important
because of the reference to :term:`THISDIR`. The trailing colon character is
important as it ensures that items in the list remain colon-separated.
.. note::
BitBake automatically defines the :term:`THISDIR` variable. You should
never set this variable yourself. Using ":prepend" as part of the
:term:`FILESEXTRAPATHS` ensures your path will be searched prior to other
paths in the final list.
Also, not all append files add extra files. Many append files simply
allow to add build options (e.g. ``systemd``). For these cases, your
append file would not even use the :term:`FILESEXTRAPATHS` statement.
The end result of this ``.bbappend`` file is that on a Raspberry Pi, where
``rpi`` will exist in the list of :term:`OVERRIDES`, the file
``meta-raspberrypi/recipes-bsp/formfactor/formfactor/rpi/machconfig`` will be
used during :ref:`ref-tasks-fetch` and the test for a non-zero file size in
:ref:`ref-tasks-install` will return true, and the file will be installed.
Installing Additional Files Using Your Layer
--------------------------------------------
As another example, consider the main ``xserver-xf86-config`` recipe and a
corresponding ``xserver-xf86-config`` append file both from the :term:`Source
Directory`. Here is the main ``xserver-xf86-config`` recipe, which is named
``xserver-xf86-config_0.1.bb`` and located in the "meta" layer at
``meta/recipes-graphics/xorg-xserver``::
SUMMARY = "X.Org X server configuration file"
HOMEPAGE = "http://www.x.org"
SECTION = "x11/base"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
PR = "r33"
SRC_URI = "file://xorg.conf"
S = "${WORKDIR}"
CONFFILES:${PN} = "${sysconfdir}/X11/xorg.conf"
PACKAGE_ARCH = "${MACHINE_ARCH}"
ALLOW_EMPTY:${PN} = "1"
do_install () {
if test -s ${WORKDIR}/xorg.conf; then
install -d ${D}/${sysconfdir}/X11
install -m 0644 ${WORKDIR}/xorg.conf ${D}/${sysconfdir}/X11/
fi
}
Following is the append file, which is named ``xserver-xf86-config_%.bbappend``
and is from the Raspberry Pi BSP Layer named ``meta-raspberrypi``. The
file is in the layer at ``recipes-graphics/xorg-xserver``::
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
SRC_URI:append:rpi = " \
file://xorg.conf.d/98-pitft.conf \
file://xorg.conf.d/99-calibration.conf \
"
do_install:append:rpi () {
PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
if [ "${PITFT}" = "1" ]; then
install -d ${D}/${sysconfdir}/X11/xorg.conf.d/
install -m 0644 ${WORKDIR}/xorg.conf.d/98-pitft.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
install -m 0644 ${WORKDIR}/xorg.conf.d/99-calibration.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
fi
}
FILES:${PN}:append:rpi = " ${sysconfdir}/X11/xorg.conf.d/*"
Building off of the previous example, we once again are setting the
:term:`FILESEXTRAPATHS` variable. In this case we are also using
:term:`SRC_URI` to list additional source files to use when ``rpi`` is found in
the list of :term:`OVERRIDES`. The :ref:`ref-tasks-install` task will then perform a
check for an additional :term:`MACHINE_FEATURES` that if set will cause these
additional files to be installed. These additional files are listed in
:term:`FILES` so that they will be packaged.
Prioritizing Your Layer
=======================
Each layer is assigned a priority value. Priority values control which
layer takes precedence if there are recipe files with the same name in
multiple layers. For these cases, the recipe file from the layer with a
higher priority number takes precedence. Priority values also affect the
order in which multiple ``.bbappend`` files for the same recipe are
applied. You can either specify the priority manually, or allow the
build system to calculate it based on the layer's dependencies.
To specify the layer's priority manually, use the
:term:`BBFILE_PRIORITY`
variable and append the layer's root name::
BBFILE_PRIORITY_mylayer = "1"
.. note::
It is possible for a recipe with a lower version number
:term:`PV` in a layer that has a higher
priority to take precedence.
Also, the layer priority does not currently affect the precedence
order of ``.conf`` or ``.bbclass`` files. Future versions of BitBake
might address this.
Managing Layers
===============
You can use the BitBake layer management tool ``bitbake-layers`` to
provide a view into the structure of recipes across a multi-layer
project. Being able to generate output that reports on configured layers
with their paths and priorities and on ``.bbappend`` files and their
applicable recipes can help to reveal potential problems.
For help on the BitBake layer management tool, use the following
command::
$ bitbake-layers --help
The following list describes the available commands:
- ``help:`` Displays general help or help on a specified command.
- ``show-layers:`` Shows the current configured layers.
- ``show-overlayed:`` Lists overlayed recipes. A recipe is overlayed
when a recipe with the same name exists in another layer that has a
higher layer priority.
- ``show-recipes:`` Lists available recipes and the layers that
provide them.
- ``show-appends:`` Lists ``.bbappend`` files and the recipe files to
which they apply.
- ``show-cross-depends:`` Lists dependency relationships between
recipes that cross layer boundaries.
- ``add-layer:`` Adds a layer to ``bblayers.conf``.
- ``remove-layer:`` Removes a layer from ``bblayers.conf``
- ``flatten:`` Flattens the layer configuration into a separate
output directory. Flattening your layer configuration builds a
"flattened" directory that contains the contents of all layers, with
any overlayed recipes removed and any ``.bbappend`` files appended to
the corresponding recipes. You might have to perform some manual
cleanup of the flattened layer as follows:
- Non-recipe files (such as patches) are overwritten. The flatten
command shows a warning for these files.
- Anything beyond the normal layer setup has been added to the
``layer.conf`` file. Only the lowest priority layer's
``layer.conf`` is used.
- Overridden and appended items from ``.bbappend`` files need to be
cleaned up. The contents of each ``.bbappend`` end up in the
flattened recipe. However, if there are appended or changed
variable values, you need to tidy these up yourself. Consider the
following example. Here, the ``bitbake-layers`` command adds the
line ``#### bbappended ...`` so that you know where the following
lines originate::
...
DESCRIPTION = "A useful utility"
...
EXTRA_OECONF = "--enable-something"
...
#### bbappended from meta-anotherlayer ####
DESCRIPTION = "Customized utility"
EXTRA_OECONF += "--enable-somethingelse"
Ideally, you would tidy up these utilities as follows::
...
DESCRIPTION = "Customized utility"
...
EXTRA_OECONF = "--enable-something --enable-somethingelse"
...
- ``layerindex-fetch``: Fetches a layer from a layer index, along
with its dependent layers, and adds the layers to the
``conf/bblayers.conf`` file.
- ``layerindex-show-depends``: Finds layer dependencies from the
layer index.
- ``create-layer``: Creates a basic layer.
Creating a General Layer Using the ``bitbake-layers`` Script
============================================================
The ``bitbake-layers`` script with the ``create-layer`` subcommand
simplifies creating a new general layer.
.. note::
- For information on BSP layers, see the ":ref:`bsp-guide/bsp:bsp layers`"
section in the Yocto
Project Board Specific (BSP) Developer's Guide.
- In order to use a layer with the OpenEmbedded build system, you
need to add the layer to your ``bblayers.conf`` configuration
file. See the ":ref:`dev-manual/layers:adding a layer using the \`\`bitbake-layers\`\` script`"
section for more information.
The default mode of the script's operation with this subcommand is to
create a layer with the following:
- A layer priority of 6.
- A ``conf`` subdirectory that contains a ``layer.conf`` file.
- A ``recipes-example`` subdirectory that contains a further
subdirectory named ``example``, which contains an ``example.bb``
recipe file.
- A ``COPYING.MIT``, which is the license statement for the layer. The
script assumes you want to use the MIT license, which is typical for
most layers, for the contents of the layer itself.
- A ``README`` file, which is a file describing the contents of your
new layer.
In its simplest form, you can use the following command form to create a
layer. The command creates a layer whose name corresponds to
"your_layer_name" in the current directory::
$ bitbake-layers create-layer your_layer_name
As an example, the following command creates a layer named ``meta-scottrif``
in your home directory::
$ cd /usr/home
$ bitbake-layers create-layer meta-scottrif
NOTE: Starting bitbake server...
Add your new layer with 'bitbake-layers add-layer meta-scottrif'
If you want to set the priority of the layer to other than the default
value of "6", you can either use the ``--priority`` option or you
can edit the
:term:`BBFILE_PRIORITY` value
in the ``conf/layer.conf`` after the script creates it. Furthermore, if
you want to give the example recipe file some name other than the
default, you can use the ``--example-recipe-name`` option.
The easiest way to see how the ``bitbake-layers create-layer`` command
works is to experiment with the script. You can also read the usage
information by entering the following::
$ bitbake-layers create-layer --help
NOTE: Starting bitbake server...
usage: bitbake-layers create-layer [-h] [--priority PRIORITY]
[--example-recipe-name EXAMPLERECIPE]
layerdir
Create a basic layer
positional arguments:
layerdir Layer directory to create
optional arguments:
-h, --help show this help message and exit
--priority PRIORITY, -p PRIORITY
Layer directory to create
--example-recipe-name EXAMPLERECIPE, -e EXAMPLERECIPE
Filename of the example recipe
Adding a Layer Using the ``bitbake-layers`` Script
==================================================
Once you create your general layer, you must add it to your
``bblayers.conf`` file. Adding the layer to this configuration file
makes the OpenEmbedded build system aware of your layer so that it can
search it for metadata.
Add your layer by using the ``bitbake-layers add-layer`` command::
$ bitbake-layers add-layer your_layer_name
Here is an example that adds a
layer named ``meta-scottrif`` to the configuration file. Following the
command that adds the layer is another ``bitbake-layers`` command that
shows the layers that are in your ``bblayers.conf`` file::
$ bitbake-layers add-layer meta-scottrif
NOTE: Starting bitbake server...
Parsing recipes: 100% |##########################################################| Time: 0:00:49
Parsing of 1441 .bb files complete (0 cached, 1441 parsed). 2055 targets, 56 skipped, 0 masked, 0 errors.
$ bitbake-layers show-layers
NOTE: Starting bitbake server...
layer path priority
==========================================================================
meta /home/scottrif/poky/meta 5
meta-poky /home/scottrif/poky/meta-poky 5
meta-yocto-bsp /home/scottrif/poky/meta-yocto-bsp 5
workspace /home/scottrif/poky/build/workspace 99
meta-scottrif /home/scottrif/poky/build/meta-scottrif 6
Adding the layer to this file
enables the build system to locate the layer during the build.
.. note::
During a build, the OpenEmbedded build system looks in the layers
from the top of the list down to the bottom in that order.

View File

@@ -0,0 +1,267 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Working With Libraries
**********************
Libraries are an integral part of your system. This section describes
some common practices you might find helpful when working with libraries
to build your system:
- :ref:`How to include static library files
<dev-manual/libraries:including static library files>`
- :ref:`How to use the Multilib feature to combine multiple versions of
library files into a single image
<dev-manual/libraries:combining multiple versions of library files into one image>`
- :ref:`How to install multiple versions of the same library in parallel on
the same system
<dev-manual/libraries:installing multiple versions of the same library>`
Including Static Library Files
==============================
If you are building a library and the library offers static linking, you
can control which static library files (``*.a`` files) get included in
the built library.
The :term:`PACKAGES` and
:term:`FILES:* <FILES>` variables in the
``meta/conf/bitbake.conf`` configuration file define how files installed
by the :ref:`ref-tasks-install` task are packaged. By default, the :term:`PACKAGES`
variable includes ``${PN}-staticdev``, which represents all static
library files.
.. note::
Some previously released versions of the Yocto Project defined the
static library files through ``${PN}-dev``.
Following is part of the BitBake configuration file, where you can see
how the static library files are defined::
PACKAGE_BEFORE_PN ?= ""
PACKAGES = "${PN}-src ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}"
PACKAGES_DYNAMIC = "^${PN}-locale-.*"
FILES = ""
FILES:${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*${SOLIBS} \
${sysconfdir} ${sharedstatedir} ${localstatedir} \
${base_bindir}/* ${base_sbindir}/* \
${base_libdir}/*${SOLIBS} \
${base_prefix}/lib/udev ${prefix}/lib/udev \
${base_libdir}/udev ${libdir}/udev \
${datadir}/${BPN} ${libdir}/${BPN}/* \
${datadir}/pixmaps ${datadir}/applications \
${datadir}/idl ${datadir}/omf ${datadir}/sounds \
${libdir}/bonobo/servers"
FILES:${PN}-bin = "${bindir}/* ${sbindir}/*"
FILES:${PN}-doc = "${docdir} ${mandir} ${infodir} ${datadir}/gtk-doc \
${datadir}/gnome/help"
SECTION:${PN}-doc = "doc"
FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
FILES:${PN}-dev = "${includedir} ${FILES_SOLIBSDEV} ${libdir}/*.la \
${libdir}/*.o ${libdir}/pkgconfig ${datadir}/pkgconfig \
${datadir}/aclocal ${base_libdir}/*.o \
${libdir}/${BPN}/*.la ${base_libdir}/*.la \
${libdir}/cmake ${datadir}/cmake"
SECTION:${PN}-dev = "devel"
ALLOW_EMPTY:${PN}-dev = "1"
RDEPENDS:${PN}-dev = "${PN} (= ${EXTENDPKGV})"
FILES:${PN}-staticdev = "${libdir}/*.a ${base_libdir}/*.a ${libdir}/${BPN}/*.a"
SECTION:${PN}-staticdev = "devel"
RDEPENDS:${PN}-staticdev = "${PN}-dev (= ${EXTENDPKGV})"
Combining Multiple Versions of Library Files into One Image
===========================================================
The build system offers the ability to build libraries with different
target optimizations or architecture formats and combine these together
into one system image. You can link different binaries in the image
against the different libraries as needed for specific use cases. This
feature is called "Multilib".
An example would be where you have most of a system compiled in 32-bit
mode using 32-bit libraries, but you have something large, like a
database engine, that needs to be a 64-bit application and uses 64-bit
libraries. Multilib allows you to get the best of both 32-bit and 64-bit
libraries.
While the Multilib feature is most commonly used for 32 and 64-bit
differences, the approach the build system uses facilitates different
target optimizations. You could compile some binaries to use one set of
libraries and other binaries to use a different set of libraries. The
libraries could differ in architecture, compiler options, or other
optimizations.
There are several examples in the ``meta-skeleton`` layer found in the
:term:`Source Directory`:
- :oe_git:`conf/multilib-example.conf </openembedded-core/tree/meta-skeleton/conf/multilib-example.conf>`
configuration file.
- :oe_git:`conf/multilib-example2.conf </openembedded-core/tree/meta-skeleton/conf/multilib-example2.conf>`
configuration file.
- :oe_git:`recipes-multilib/images/core-image-multilib-example.bb </openembedded-core/tree/meta-skeleton/recipes-multilib/images/core-image-multilib-example.bb>`
recipe
Preparing to Use Multilib
-------------------------
User-specific requirements drive the Multilib feature. Consequently,
there is no one "out-of-the-box" configuration that would
meet your needs.
In order to enable Multilib, you first need to ensure your recipe is
extended to support multiple libraries. Many standard recipes are
already extended and support multiple libraries. You can check in the
``meta/conf/multilib.conf`` configuration file in the
:term:`Source Directory` to see how this is
done using the
:term:`BBCLASSEXTEND` variable.
Eventually, all recipes will be covered and this list will not be
needed.
For the most part, the :ref:`Multilib <ref-classes-multilib*>`
class extension works automatically to
extend the package name from ``${PN}`` to ``${MLPREFIX}${PN}``, where
:term:`MLPREFIX` is the particular multilib (e.g. "lib32-" or "lib64-").
Standard variables such as
:term:`DEPENDS`,
:term:`RDEPENDS`,
:term:`RPROVIDES`,
:term:`RRECOMMENDS`,
:term:`PACKAGES`, and
:term:`PACKAGES_DYNAMIC` are
automatically extended by the system. If you are extending any manual
code in the recipe, you can use the ``${MLPREFIX}`` variable to ensure
those names are extended correctly.
Using Multilib
--------------
After you have set up the recipes, you need to define the actual
combination of multiple libraries you want to build. You accomplish this
through your ``local.conf`` configuration file in the
:term:`Build Directory`. An example configuration would be as follows::
MACHINE = "qemux86-64"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE:virtclass-multilib-lib32 = "x86"
IMAGE_INSTALL:append = " lib32-glib-2.0"
This example enables an additional library named
``lib32`` alongside the normal target packages. When combining these
"lib32" alternatives, the example uses "x86" for tuning. For information
on this particular tuning, see
``meta/conf/machine/include/ia32/arch-ia32.inc``.
The example then includes ``lib32-glib-2.0`` in all the images, which
illustrates one method of including a multiple library dependency. You
can use a normal image build to include this dependency, for example::
$ bitbake core-image-sato
You can also build Multilib packages
specifically with a command like this::
$ bitbake lib32-glib-2.0
Additional Implementation Details
---------------------------------
There are generic implementation details as well as details that are specific to
package management systems. Following are implementation details
that exist regardless of the package management system:
- The typical convention used for the class extension code as used by
Multilib assumes that all package names specified in
:term:`PACKAGES` that contain
``${PN}`` have ``${PN}`` at the start of the name. When that
convention is not followed and ``${PN}`` appears at the middle or the
end of a name, problems occur.
- The :term:`TARGET_VENDOR`
value under Multilib will be extended to "-vendormlmultilib" (e.g.
"-pokymllib32" for a "lib32" Multilib with Poky). The reason for this
slightly unwieldy contraction is that any "-" characters in the
vendor string presently break Autoconf's ``config.sub``, and other
separators are problematic for different reasons.
Here are the implementation details for the RPM Package Management System:
- A unique architecture is defined for the Multilib packages, along
with creating a unique deploy folder under ``tmp/deploy/rpm`` in the
:term:`Build Directory`. For example, consider ``lib32`` in a
``qemux86-64`` image. The possible architectures in the system are "all",
"qemux86_64", "lib32:qemux86_64", and "lib32:x86".
- The ``${MLPREFIX}`` variable is stripped from ``${PN}`` during RPM
packaging. The naming for a normal RPM package and a Multilib RPM
package in a ``qemux86-64`` system resolves to something similar to
``bash-4.1-r2.x86_64.rpm`` and ``bash-4.1.r2.lib32_x86.rpm``,
respectively.
- When installing a Multilib image, the RPM backend first installs the
base image and then installs the Multilib libraries.
- The build system relies on RPM to resolve the identical files in the
two (or more) Multilib packages.
Here are the implementation details for the IPK Package Management System:
- The ``${MLPREFIX}`` is not stripped from ``${PN}`` during IPK
packaging. The naming for a normal RPM package and a Multilib IPK
package in a ``qemux86-64`` system resolves to something like
``bash_4.1-r2.x86_64.ipk`` and ``lib32-bash_4.1-rw:x86.ipk``,
respectively.
- The IPK deploy folder is not modified with ``${MLPREFIX}`` because
packages with and without the Multilib feature can exist in the same
folder due to the ``${PN}`` differences.
- IPK defines a sanity check for Multilib installation using certain
rules for file comparison, overridden, etc.
Installing Multiple Versions of the Same Library
================================================
There are be situations where you need to install and use multiple versions
of the same library on the same system at the same time. This
almost always happens when a library API changes and you have
multiple pieces of software that depend on the separate versions of the
library. To accommodate these situations, you can install multiple
versions of the same library in parallel on the same system.
The process is straightforward as long as the libraries use proper
versioning. With properly versioned libraries, all you need to do to
individually specify the libraries is create separate, appropriately
named recipes where the :term:`PN` part of
the name includes a portion that differentiates each library version
(e.g. the major part of the version number). Thus, instead of having a
single recipe that loads one version of a library (e.g. ``clutter``),
you provide multiple recipes that result in different versions of the
libraries you want. As an example, the following two recipes would allow
the two separate versions of the ``clutter`` library to co-exist on the
same system:
.. code-block:: none
clutter-1.6_1.6.20.bb
clutter-1.8_1.8.4.bb
Additionally, if
you have other recipes that depend on a given library, you need to use
the :term:`DEPENDS` variable to
create the dependency. Continuing with the same example, if you want to
have a recipe depend on the 1.8 version of the ``clutter`` library, use
the following in your recipe::
DEPENDS = "clutter-1.8"

View File

@@ -0,0 +1,539 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Working With Licenses
*********************
As mentioned in the ":ref:`overview-manual/development-environment:licensing`"
section in the Yocto Project Overview and Concepts Manual, open source
projects are open to the public and they consequently have different
licensing structures in place. This section describes the mechanism by
which the :term:`OpenEmbedded Build System`
tracks changes to
licensing text and covers how to maintain open source license compliance
during your project's lifecycle. The section also describes how to
enable commercially licensed recipes, which by default are disabled.
Tracking License Changes
========================
The license of an upstream project might change in the future. In order
to prevent these changes going unnoticed, the
:term:`LIC_FILES_CHKSUM`
variable tracks changes to the license text. The checksums are validated
at the end of the configure step, and if the checksums do not match, the
build will fail.
Specifying the ``LIC_FILES_CHKSUM`` Variable
--------------------------------------------
The :term:`LIC_FILES_CHKSUM` variable contains checksums of the license text
in the source code for the recipe. Following is an example of how to
specify :term:`LIC_FILES_CHKSUM`::
LIC_FILES_CHKSUM = "file://COPYING;md5=xxxx \
file://licfile1.txt;beginline=5;endline=29;md5=yyyy \
file://licfile2.txt;endline=50;md5=zzzz \
..."
.. note::
- When using "beginline" and "endline", realize that line numbering
begins with one and not zero. Also, the included lines are
inclusive (i.e. lines five through and including 29 in the
previous example for ``licfile1.txt``).
- When a license check fails, the selected license text is included
as part of the QA message. Using this output, you can determine
the exact start and finish for the needed license text.
The build system uses the :term:`S`
variable as the default directory when searching files listed in
:term:`LIC_FILES_CHKSUM`. The previous example employs the default
directory.
Consider this next example::
LIC_FILES_CHKSUM = "file://src/ls.c;beginline=5;endline=16;\
md5=bb14ed3c4cda583abc85401304b5cd4e"
LIC_FILES_CHKSUM = "file://${WORKDIR}/license.html;md5=5c94767cedb5d6987c902ac850ded2c6"
The first line locates a file in ``${S}/src/ls.c`` and isolates lines
five through 16 as license text. The second line refers to a file in
:term:`WORKDIR`.
Note that :term:`LIC_FILES_CHKSUM` variable is mandatory for all recipes,
unless the :term:`LICENSE` variable is set to "CLOSED".
Explanation of Syntax
---------------------
As mentioned in the previous section, the :term:`LIC_FILES_CHKSUM` variable
lists all the important files that contain the license text for the
source code. It is possible to specify a checksum for an entire file, or
a specific section of a file (specified by beginning and ending line
numbers with the "beginline" and "endline" parameters, respectively).
The latter is useful for source files with a license notice header,
README documents, and so forth. If you do not use the "beginline"
parameter, then it is assumed that the text begins on the first line of
the file. Similarly, if you do not use the "endline" parameter, it is
assumed that the license text ends with the last line of the file.
The "md5" parameter stores the md5 checksum of the license text. If the
license text changes in any way as compared to this parameter then a
mismatch occurs. This mismatch triggers a build failure and notifies the
developer. Notification allows the developer to review and address the
license text changes. Also note that if a mismatch occurs during the
build, the correct md5 checksum is placed in the build log and can be
easily copied to the recipe.
There is no limit to how many files you can specify using the
:term:`LIC_FILES_CHKSUM` variable. Generally, however, every project
requires a few specifications for license tracking. Many projects have a
"COPYING" file that stores the license information for all the source
code files. This practice allows you to just track the "COPYING" file as
long as it is kept up to date.
.. note::
- If you specify an empty or invalid "md5" parameter,
:term:`BitBake` returns an md5
mis-match error and displays the correct "md5" parameter value
during the build. The correct parameter is also captured in the
build log.
- If the whole file contains only license text, you do not need to
use the "beginline" and "endline" parameters.
Enabling Commercially Licensed Recipes
======================================
By default, the OpenEmbedded build system disables components that have
commercial or other special licensing requirements. Such requirements
are defined on a recipe-by-recipe basis through the
:term:`LICENSE_FLAGS` variable
definition in the affected recipe. For instance, the
``poky/meta/recipes-multimedia/gstreamer/gst-plugins-ugly`` recipe
contains the following statement::
LICENSE_FLAGS = "commercial"
Here is a
slightly more complicated example that contains both an explicit recipe
name and version (after variable expansion)::
LICENSE_FLAGS = "license_${PN}_${PV}"
In order for a component restricted by a
:term:`LICENSE_FLAGS` definition to be enabled and included in an image, it
needs to have a matching entry in the global
:term:`LICENSE_FLAGS_ACCEPTED`
variable, which is a variable typically defined in your ``local.conf``
file. For example, to enable the
``poky/meta/recipes-multimedia/gstreamer/gst-plugins-ugly`` package, you
could add either the string "commercial_gst-plugins-ugly" or the more
general string "commercial" to :term:`LICENSE_FLAGS_ACCEPTED`. See the
":ref:`dev-manual/licenses:license flag matching`" section for a full
explanation of how :term:`LICENSE_FLAGS` matching works. Here is the
example::
LICENSE_FLAGS_ACCEPTED = "commercial_gst-plugins-ugly"
Likewise, to additionally enable the package built from the recipe
containing ``LICENSE_FLAGS = "license_${PN}_${PV}"``, and assuming that
the actual recipe name was ``emgd_1.10.bb``, the following string would
enable that package as well as the original ``gst-plugins-ugly``
package::
LICENSE_FLAGS_ACCEPTED = "commercial_gst-plugins-ugly license_emgd_1.10"
As a convenience, you do not need to specify the
complete license string for every package. You can use
an abbreviated form, which consists of just the first portion or
portions of the license string before the initial underscore character
or characters. A partial string will match any license that contains the
given string as the first portion of its license. For example, the
following value will also match both of the packages
previously mentioned as well as any other packages that have licenses
starting with "commercial" or "license"::
LICENSE_FLAGS_ACCEPTED = "commercial license"
License Flag Matching
---------------------
License flag matching allows you to control what recipes the
OpenEmbedded build system includes in the build. Fundamentally, the
build system attempts to match :term:`LICENSE_FLAGS` strings found in
recipes against strings found in :term:`LICENSE_FLAGS_ACCEPTED`.
A match causes the build system to include a recipe in the
build, while failure to find a match causes the build system to exclude
a recipe.
In general, license flag matching is simple. However, understanding some
concepts will help you correctly and effectively use matching.
Before a flag defined by a particular recipe is tested against the
entries of :term:`LICENSE_FLAGS_ACCEPTED`, the expanded
string ``_${PN}`` is appended to the flag. This expansion makes each
:term:`LICENSE_FLAGS` value recipe-specific. After expansion, the
string is then matched against the entries. Thus, specifying
``LICENSE_FLAGS = "commercial"`` in recipe "foo", for example, results
in the string ``"commercial_foo"``. And, to create a match, that string
must appear among the entries of :term:`LICENSE_FLAGS_ACCEPTED`.
Judicious use of the :term:`LICENSE_FLAGS` strings and the contents of the
:term:`LICENSE_FLAGS_ACCEPTED` variable allows you a lot of flexibility for
including or excluding recipes based on licensing. For example, you can
broaden the matching capabilities by using license flags string subsets
in :term:`LICENSE_FLAGS_ACCEPTED`.
.. note::
When using a string subset, be sure to use the part of the expanded
string that precedes the appended underscore character (e.g.
``usethispart_1.3``, ``usethispart_1.4``, and so forth).
For example, simply specifying the string "commercial" in the
:term:`LICENSE_FLAGS_ACCEPTED` variable matches any expanded
:term:`LICENSE_FLAGS` definition that starts with the string
"commercial" such as "commercial_foo" and "commercial_bar", which
are the strings the build system automatically generates for
hypothetical recipes named "foo" and "bar" assuming those recipes simply
specify the following::
LICENSE_FLAGS = "commercial"
Thus, you can choose to exhaustively enumerate each license flag in the
list and allow only specific recipes into the image, or you can use a
string subset that causes a broader range of matches to allow a range of
recipes into the image.
This scheme works even if the :term:`LICENSE_FLAGS` string already has
``_${PN}`` appended. For example, the build system turns the license
flag "commercial_1.2_foo" into "commercial_1.2_foo_foo" and would match
both the general "commercial" and the specific "commercial_1.2_foo"
strings found in the :term:`LICENSE_FLAGS_ACCEPTED` variable, as expected.
Here are some other scenarios:
- You can specify a versioned string in the recipe such as
"commercial_foo_1.2" in a "foo" recipe. The build system expands this
string to "commercial_foo_1.2_foo". Combine this license flag with a
:term:`LICENSE_FLAGS_ACCEPTED` variable that has the string
"commercial" and you match the flag along with any other flag that
starts with the string "commercial".
- Under the same circumstances, you can add "commercial_foo" in the
:term:`LICENSE_FLAGS_ACCEPTED` variable and the build system not only
matches "commercial_foo_1.2" but also matches any license flag with
the string "commercial_foo", regardless of the version.
- You can be very specific and use both the package and version parts
in the :term:`LICENSE_FLAGS_ACCEPTED` list (e.g.
"commercial_foo_1.2") to specifically match a versioned recipe.
Other Variables Related to Commercial Licenses
----------------------------------------------
There are other helpful variables related to commercial license handling,
defined in the
``poky/meta/conf/distro/include/default-distrovars.inc`` file::
COMMERCIAL_AUDIO_PLUGINS ?= ""
COMMERCIAL_VIDEO_PLUGINS ?= ""
If you want to enable these components, you can do so by making sure you have
statements similar to the following in your ``local.conf`` configuration file::
COMMERCIAL_AUDIO_PLUGINS = "gst-plugins-ugly-mad \
gst-plugins-ugly-mpegaudioparse"
COMMERCIAL_VIDEO_PLUGINS = "gst-plugins-ugly-mpeg2dec \
gst-plugins-ugly-mpegstream gst-plugins-bad-mpegvideoparse"
LICENSE_FLAGS_ACCEPTED = "commercial_gst-plugins-ugly commercial_gst-plugins-bad commercial_qmmp"
Of course, you could also create a matching list for those components using the
more general "commercial" string in the :term:`LICENSE_FLAGS_ACCEPTED` variable,
but that would also enable all the other packages with :term:`LICENSE_FLAGS`
containing "commercial", which you may or may not want::
LICENSE_FLAGS_ACCEPTED = "commercial"
Specifying audio and video plugins as part of the
:term:`COMMERCIAL_AUDIO_PLUGINS` and :term:`COMMERCIAL_VIDEO_PLUGINS` statements
(along with :term:`LICENSE_FLAGS_ACCEPTED`) includes the plugins or
components into built images, thus adding support for media formats or
components.
.. note::
GStreamer "ugly" and "bad" plugins are actually available through
open source licenses. However, the "ugly" ones can be subject to software
patents in some countries, making it necessary to pay licensing fees
to distribute them. The "bad" ones are just deemed unreliable by the
GStreamer community and should therefore be used with care.
Maintaining Open Source License Compliance During Your Product's Lifecycle
==========================================================================
One of the concerns for a development organization using open source
software is how to maintain compliance with various open source
licensing during the lifecycle of the product. While this section does
not provide legal advice or comprehensively cover all scenarios, it does
present methods that you can use to assist you in meeting the compliance
requirements during a software release.
With hundreds of different open source licenses that the Yocto Project
tracks, it is difficult to know the requirements of each and every
license. However, the requirements of the major FLOSS licenses can begin
to be covered by assuming that there are three main areas of concern:
- Source code must be provided.
- License text for the software must be provided.
- Compilation scripts and modifications to the source code must be
provided.
- spdx files can be provided.
There are other requirements beyond the scope of these three and the
methods described in this section (e.g. the mechanism through which
source code is distributed).
As different organizations have different ways of releasing software,
there can be multiple ways of meeting license obligations. At
least, we describe here two methods for achieving compliance:
- The first method is to use OpenEmbedded's ability to provide
the source code, provide a list of licenses, as well as
compilation scripts and source code modifications.
The remainder of this section describes supported methods to meet
the previously mentioned three requirements.
- The second method is to generate a *Software Bill of Materials*
(:term:`SBoM`), as described in the ":doc:`/dev-manual/sbom`" section.
Not only do you generate :term:`SPDX` output which can be used meet
license compliance requirements (except for sharing the build system
and layers sources for the time being), but this output also includes
component version and patch information which can be used
for vulnerability assessment.
Whatever method you choose, prior to releasing images, sources,
and the build system, you should audit all artifacts to ensure
completeness.
.. note::
The Yocto Project generates a license manifest during image creation
that is located in
``${DEPLOY_DIR}/licenses/<image-name>-<machine>.rootfs-<datestamp>/``
to assist with any audits.
Providing the Source Code
-------------------------
Compliance activities should begin before you generate the final image.
The first thing you should look at is the requirement that tops the list
for most compliance groups --- providing the source. The Yocto Project has
a few ways of meeting this requirement.
One of the easiest ways to meet this requirement is to provide the
entire :term:`DL_DIR` used by the
build. This method, however, has a few issues. The most obvious is the
size of the directory since it includes all sources used in the build
and not just the source used in the released image. It will include
toolchain source, and other artifacts, which you would not generally
release. However, the more serious issue for most companies is
accidental release of proprietary software. The Yocto Project provides
an :ref:`ref-classes-archiver` class to help avoid some of these concerns.
Before you employ :term:`DL_DIR` or the :ref:`ref-classes-archiver` class, you
need to decide how you choose to provide source. The source
:ref:`ref-classes-archiver` class can generate tarballs and SRPMs and can
create them with various levels of compliance in mind.
One way of doing this (but certainly not the only way) is to release
just the source as a tarball. You can do this by adding the following to
the ``local.conf`` file found in the :term:`Build Directory`::
INHERIT += "archiver"
ARCHIVER_MODE[src] = "original"
During the creation of your
image, the source from all recipes that deploy packages to the image is
placed within subdirectories of ``DEPLOY_DIR/sources`` based on the
:term:`LICENSE` for each recipe.
Releasing the entire directory enables you to comply with requirements
concerning providing the unmodified source. It is important to note that
the size of the directory can get large.
A way to help mitigate the size issue is to only release tarballs for
licenses that require the release of source. Let us assume you are only
concerned with GPL code as identified by running the following script:
.. code-block:: shell
# Script to archive a subset of packages matching specific license(s)
# Source and license files are copied into sub folders of package folder
# Must be run from build folder
#!/bin/bash
src_release_dir="source-release"
mkdir -p $src_release_dir
for a in tmp/deploy/sources/*; do
for d in $a/*; do
# Get package name from path
p=`basename $d`
p=${p%-*}
p=${p%-*}
# Only archive GPL packages (update *GPL* regex for your license check)
numfiles=`ls tmp/deploy/licenses/$p/*GPL* 2> /dev/null | wc -l`
if [ $numfiles -ge 1 ]; then
echo Archiving $p
mkdir -p $src_release_dir/$p/source
cp $d/* $src_release_dir/$p/source 2> /dev/null
mkdir -p $src_release_dir/$p/license
cp tmp/deploy/licenses/$p/* $src_release_dir/$p/license 2> /dev/null
fi
done
done
At this point, you
could create a tarball from the ``gpl_source_release`` directory and
provide that to the end user. This method would be a step toward
achieving compliance with section 3a of GPLv2 and with section 6 of
GPLv3.
Providing License Text
~~~~~~~~~~~~~~~~~~~~~~
One requirement that is often overlooked is inclusion of license text.
This requirement also needs to be dealt with prior to generating the
final image. Some licenses require the license text to accompany the
binary. You can achieve this by adding the following to your
``local.conf`` file::
COPY_LIC_MANIFEST = "1"
COPY_LIC_DIRS = "1"
LICENSE_CREATE_PACKAGE = "1"
Adding these statements to the
configuration file ensures that the licenses collected during package
generation are included on your image.
.. note::
Setting all three variables to "1" results in the image having two
copies of the same license file. One copy resides in
``/usr/share/common-licenses`` and the other resides in
``/usr/share/license``.
The reason for this behavior is because
:term:`COPY_LIC_DIRS` and
:term:`COPY_LIC_MANIFEST`
add a copy of the license when the image is built but do not offer a
path for adding licenses for newly installed packages to an image.
:term:`LICENSE_CREATE_PACKAGE`
adds a separate package and an upgrade path for adding licenses to an
image.
As the source :ref:`ref-classes-archiver` class has already archived the
original unmodified source that contains the license files, you would have
already met the requirements for inclusion of the license information
with source as defined by the GPL and other open source licenses.
Providing Compilation Scripts and Source Code Modifications
-----------------------------------------------------------
At this point, we have addressed all we need prior to generating the
image. The next two requirements are addressed during the final
packaging of the release.
By releasing the version of the OpenEmbedded build system and the layers
used during the build, you will be providing both compilation scripts
and the source code modifications in one step.
If the deployment team has a :ref:`overview-manual/concepts:bsp layer`
and a distro layer, and those
those layers are used to patch, compile, package, or modify (in any way)
any open source software included in your released images, you might be
required to release those layers under section 3 of GPLv2 or section 1
of GPLv3. One way of doing that is with a clean checkout of the version
of the Yocto Project and layers used during your build. Here is an
example:
.. code-block:: shell
# We built using the dunfell branch of the poky repo
$ git clone -b dunfell git://git.yoctoproject.org/poky
$ cd poky
# We built using the release_branch for our layers
$ git clone -b release_branch git://git.mycompany.com/meta-my-bsp-layer
$ git clone -b release_branch git://git.mycompany.com/meta-my-software-layer
# clean up the .git repos
$ find . -name ".git" -type d -exec rm -rf {} \;
One
thing a development organization might want to consider for end-user
convenience is to modify ``meta-poky/conf/bblayers.conf.sample`` to
ensure that when the end user utilizes the released build system to
build an image, the development organization's layers are included in
the ``bblayers.conf`` file automatically::
# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
BBLAYERS ?= " \
##OEROOT##/meta \
##OEROOT##/meta-poky \
##OEROOT##/meta-yocto-bsp \
##OEROOT##/meta-mylayer \
"
Creating and
providing an archive of the :term:`Metadata`
layers (recipes, configuration files, and so forth) enables you to meet
your requirements to include the scripts to control compilation as well
as any modifications to the original source.
Compliance Limitations with Executables Built from Static Libraries
-------------------------------------------------------------------
When package A is added to an image via the :term:`RDEPENDS` or :term:`RRECOMMENDS`
mechanisms as well as explicitly included in the image recipe with
:term:`IMAGE_INSTALL`, and depends on a static linked library recipe B
(``DEPENDS += "B"``), package B will neither appear in the generated license
manifest nor in the generated source tarballs. This occurs as the
:ref:`ref-classes-license` and :ref:`ref-classes-archiver` classes assume that
only packages included via :term:`RDEPENDS` or :term:`RRECOMMENDS`
end up in the image.
As a result, potential obligations regarding license compliance for package B
may not be met.
The Yocto Project doesn't enable static libraries by default, in part because
of this issue. Before a solution to this limitation is found, you need to
keep in mind that if your root filesystem is built from static libraries,
you will need to manually ensure that your deliveries are compliant
with the licenses of these libraries.
Copying Non Standard Licenses
=============================
Some packages, such as the linux-firmware package, have many licenses
that are not in any way common. You can avoid adding a lot of these
types of common license files, which are only applicable to a specific
package, by using the
:term:`NO_GENERIC_LICENSE`
variable. Using this variable also avoids QA errors when you use a
non-common, non-CLOSED license in a recipe.
Here is an example that uses the ``LICENSE.Abilis.txt`` file as
the license from the fetched source::
NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENSE.Abilis.txt"

View File

@@ -0,0 +1,118 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Adding a New Machine
====================
Adding a new machine to the Yocto Project is a straightforward process.
This section describes how to add machines that are similar to those
that the Yocto Project already supports.
.. note::
Although well within the capabilities of the Yocto Project, adding a
totally new architecture might require changes to ``gcc``/``glibc``
and to the site information, which is beyond the scope of this
manual.
For a complete example that shows how to add a new machine, see the
":ref:`bsp-guide/bsp:creating a new bsp layer using the \`\`bitbake-layers\`\` script`"
section in the Yocto Project Board Support Package (BSP) Developer's
Guide.
Adding the Machine Configuration File
=====================================
To add a new machine, you need to add a new machine configuration file
to the layer's ``conf/machine`` directory. This configuration file
provides details about the device you are adding.
The OpenEmbedded build system uses the root name of the machine
configuration file to reference the new machine. For example, given a
machine configuration file named ``crownbay.conf``, the build system
recognizes the machine as "crownbay".
The most important variables you must set in your machine configuration
file or include from a lower-level configuration file are as follows:
- :term:`TARGET_ARCH` (e.g. "arm")
- ``PREFERRED_PROVIDER_virtual/kernel``
- :term:`MACHINE_FEATURES` (e.g. "apm screen wifi")
You might also need these variables:
- :term:`SERIAL_CONSOLES` (e.g. "115200;ttyS0 115200;ttyS1")
- :term:`KERNEL_IMAGETYPE` (e.g. "zImage")
- :term:`IMAGE_FSTYPES` (e.g. "tar.gz jffs2")
You can find full details on these variables in the reference section.
You can leverage existing machine ``.conf`` files from
``meta-yocto-bsp/conf/machine/``.
Adding a Kernel for the Machine
===============================
The OpenEmbedded build system needs to be able to build a kernel for the
machine. You need to either create a new kernel recipe for this machine,
or extend an existing kernel recipe. You can find several kernel recipe
examples in the Source Directory at ``meta/recipes-kernel/linux`` that
you can use as references.
If you are creating a new kernel recipe, normal recipe-writing rules
apply for setting up a :term:`SRC_URI`. Thus, you need to specify any
necessary patches and set :term:`S` to point at the source code. You need to
create a :ref:`ref-tasks-configure` task that configures the unpacked kernel with
a ``defconfig`` file. You can do this by using a ``make defconfig``
command or, more commonly, by copying in a suitable ``defconfig`` file
and then running ``make oldconfig``. By making use of ``inherit kernel``
and potentially some of the ``linux-*.inc`` files, most other
functionality is centralized and the defaults of the class normally work
well.
If you are extending an existing kernel recipe, it is usually a matter
of adding a suitable ``defconfig`` file. The file needs to be added into
a location similar to ``defconfig`` files used for other machines in a
given kernel recipe. A possible way to do this is by listing the file in
the :term:`SRC_URI` and adding the machine to the expression in
:term:`COMPATIBLE_MACHINE`::
COMPATIBLE_MACHINE = '(qemux86|qemumips)'
For more information on ``defconfig`` files, see the
":ref:`kernel-dev/common:changing the configuration`"
section in the Yocto Project Linux Kernel Development Manual.
Adding a Formfactor Configuration File
======================================
A formfactor configuration file provides information about the target
hardware for which the image is being built and information that the
build system cannot obtain from other sources such as the kernel. Some
examples of information contained in a formfactor configuration file
include framebuffer orientation, whether or not the system has a
keyboard, the positioning of the keyboard in relation to the screen, and
the screen resolution.
The build system uses reasonable defaults in most cases. However, if
customization is necessary, you need to create a ``machconfig`` file in
the ``meta/recipes-bsp/formfactor/files`` directory. This directory
contains directories for specific machines such as ``qemuarm`` and
``qemux86``. For information about the settings available and the
defaults, see the ``meta/recipes-bsp/formfactor/files/config`` file
found in the same area.
Following is an example for "qemuarm" machine::
HAVE_TOUCHSCREEN=1
HAVE_KEYBOARD=1
DISPLAY_CAN_ROTATE=0
DISPLAY_ORIENTATION=0
#DISPLAY_WIDTH_PIXELS=640
#DISPLAY_HEIGHT_PIXELS=480
#DISPLAY_BPP=16
DISPLAY_DPI=150
DISPLAY_SUBPIXEL_ORDER=vrgb

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,209 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Working with Pre-Built Libraries
********************************
Introduction
============
Some library vendors do not release source code for their software but do
release pre-built binaries. When shared libraries are built, they should
be versioned (see `this article
<https://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html>`__
for some background), but sometimes this is not done.
To summarize, a versioned library must meet two conditions:
#. The filename must have the version appended, for example: ``libfoo.so.1.2.3``.
#. The library must have the ELF tag ``SONAME`` set to the major version
of the library, for example: ``libfoo.so.1``. You can check this by
running ``readelf -d filename | grep SONAME``.
This section shows how to deal with both versioned and unversioned
pre-built libraries.
Versioned Libraries
===================
In this example we work with pre-built libraries for the FT4222H USB I/O chip.
Libraries are built for several target architecture variants and packaged in
an archive as follows::
├── build-arm-hisiv300
│   └── libft4222.so.1.4.4.44
├── build-arm-v5-sf
│   └── libft4222.so.1.4.4.44
├── build-arm-v6-hf
│   └── libft4222.so.1.4.4.44
├── build-arm-v7-hf
│   └── libft4222.so.1.4.4.44
├── build-arm-v8
│   └── libft4222.so.1.4.4.44
├── build-i386
│   └── libft4222.so.1.4.4.44
├── build-i486
│   └── libft4222.so.1.4.4.44
├── build-mips-eglibc-hf
│   └── libft4222.so.1.4.4.44
├── build-pentium
│   └── libft4222.so.1.4.4.44
├── build-x86_64
│   └── libft4222.so.1.4.4.44
├── examples
│   ├── get-version.c
│   ├── i2cm.c
│   ├── spim.c
│   └── spis.c
├── ftd2xx.h
├── install4222.sh
├── libft4222.h
├── ReadMe.txt
└── WinTypes.h
To write a recipe to use such a library in your system:
- The vendor will probably have a proprietary licence, so set
:term:`LICENSE_FLAGS` in your recipe.
- The vendor provides a tarball containing libraries so set :term:`SRC_URI`
appropriately.
- Set :term:`COMPATIBLE_HOST` so that the recipe cannot be used with an
unsupported architecture. In the following example, we only support the 32
and 64 bit variants of the ``x86`` architecture.
- As the vendor provides versioned libraries, we can use ``oe_soinstall``
from :ref:`ref-classes-utils` to install the shared library and create
symbolic links. If the vendor does not do this, we need to follow the
non-versioned library guidelines in the next section.
- As the vendor likely used :term:`LDFLAGS` different from those in your Yocto
Project build, disable the corresponding checks by adding ``ldflags``
to :term:`INSANE_SKIP`.
- The vendor will typically ship release builds without debugging symbols.
Avoid errors by preventing the packaging task from stripping out the symbols
and adding them to a separate debug package. This is done by setting the
``INHIBIT_`` flags shown below.
The complete recipe would look like this::
SUMMARY = "FTDI FT4222H Library"
SECTION = "libs"
LICENSE_FLAGS = "ftdi"
LICENSE = "CLOSED"
COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
# Sources available in a .tgz file in .zip archive
# at https://ftdichip.com/wp-content/uploads/2021/01/libft4222-linux-1.4.4.44.zip
# Found on https://ftdichip.com/software-examples/ft4222h-software-examples/
# Since dealing with this particular type of archive is out of topic here,
# we use a local link.
SRC_URI = "file://libft4222-linux-${PV}.tgz"
S = "${WORKDIR}"
ARCH_DIR:x86-64 = "build-x86_64"
ARCH_DIR:i586 = "build-i386"
ARCH_DIR:i686 = "build-i386"
INSANE_SKIP:${PN} = "ldflags"
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_SYSROOT_STRIP = "1"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
do_install () {
install -m 0755 -d ${D}${libdir}
oe_soinstall ${S}/${ARCH_DIR}/libft4222.so.${PV} ${D}${libdir}
install -d ${D}${includedir}
install -m 0755 ${S}/*.h ${D}${includedir}
}
If the precompiled binaries are not statically linked and have dependencies on
other libraries, then by adding those libraries to :term:`DEPENDS`, the linking
can be examined and the appropriate :term:`RDEPENDS` automatically added.
Non-Versioned Libraries
=======================
Some Background
---------------
Libraries in Linux systems are generally versioned so that it is possible
to have multiple versions of the same library installed, which eases upgrades
and support for older software. For example, suppose that in a versioned
library, an actual library is called ``libfoo.so.1.2``, a symbolic link named
``libfoo.so.1`` points to ``libfoo.so.1.2``, and a symbolic link named
``libfoo.so`` points to ``libfoo.so.1.2``. Given these conditions, when you
link a binary against a library, you typically provide the unversioned file
name (i.e. ``-lfoo`` to the linker). However, the linker follows the symbolic
link and actually links against the versioned filename. The unversioned symbolic
link is only used at development time. Consequently, the library is packaged
along with the headers in the development package ``${PN}-dev`` along with the
actual library and versioned symbolic links in ``${PN}``. Because versioned
libraries are far more common than unversioned libraries, the default packaging
rules assume versioned libraries.
Yocto Library Packaging Overview
--------------------------------
It follows that packaging an unversioned library requires a bit of work in the
recipe. By default, ``libfoo.so`` gets packaged into ``${PN}-dev``, which
triggers a QA warning that a non-symlink library is in a ``-dev`` package,
and binaries in the same recipe link to the library in ``${PN}-dev``,
which triggers more QA warnings. To solve this problem, you need to package the
unversioned library into ``${PN}`` where it belongs. The following are the abridged
default :term:`FILES` variables in ``bitbake.conf``::
SOLIBS = ".so.*"
SOLIBSDEV = ".so"
FILES:${PN} = "... ${libdir}/lib*${SOLIBS} ..."
FILES_SOLIBSDEV ?= "... ${libdir}/lib*${SOLIBSDEV} ..."
FILES:${PN}-dev = "... ${FILES_SOLIBSDEV} ..."
:term:`SOLIBS` defines a pattern that matches real shared object libraries.
:term:`SOLIBSDEV` matches the development form (unversioned symlink). These two
variables are then used in ``FILES:${PN}`` and ``FILES:${PN}-dev``, which puts
the real libraries into ``${PN}`` and the unversioned symbolic link into ``${PN}-dev``.
To package unversioned libraries, you need to modify the variables in the recipe
as follows::
SOLIBS = ".so"
FILES_SOLIBSDEV = ""
The modifications cause the ``.so`` file to be the real library
and unset :term:`FILES_SOLIBSDEV` so that no libraries get packaged into
``${PN}-dev``. The changes are required because unless :term:`PACKAGES` is changed,
``${PN}-dev`` collects files before `${PN}`. ``${PN}-dev`` must not collect any of
the files you want in ``${PN}``.
Finally, loadable modules, essentially unversioned libraries that are linked
at runtime using ``dlopen()`` instead of at build time, should generally be
installed in a private directory. However, if they are installed in ``${libdir}``,
then the modules can be treated as unversioned libraries.
Example
-------
The example below installs an unversioned x86-64 pre-built library named
``libfoo.so``. The :term:`COMPATIBLE_HOST` variable limits recipes to the
x86-64 architecture while the :term:`INSANE_SKIP`, :term:`INHIBIT_PACKAGE_STRIP`
and :term:`INHIBIT_SYSROOT_STRIP` variables are all set as in the above
versioned library example. The "magic" is setting the :term:`SOLIBS` and
:term:`FILES_SOLIBSDEV` variables as explained above::
SUMMARY = "libfoo sample recipe"
SECTION = "libs"
LICENSE = "CLOSED"
SRC_URI = "file://libfoo.so"
COMPATIBLE_HOST = "x86_64.*-linux"
INSANE_SKIP:${PN} = "ldflags"
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_SYSROOT_STRIP = "1"
SOLIBS = ".so"
FILES_SOLIBSDEV = ""
do_install () {
install -d ${D}${libdir}
install -m 0755 ${WORKDIR}/libfoo.so ${D}${libdir}
}

View File

@@ -0,0 +1,50 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Using a Python Development Shell
********************************
Similar to working within a development shell as described in the
previous section, you can also spawn and work within an interactive
Python development shell. When debugging certain commands or even when
just editing packages, ``pydevshell`` can be a useful tool. When you
invoke the ``pydevshell`` task, all tasks up to and including
:ref:`ref-tasks-patch` are run for the
specified target. Then a new terminal is opened. Additionally, key
Python objects and code are available in the same way they are to
BitBake tasks, in particular, the data store 'd'. So, commands such as
the following are useful when exploring the data store and running
functions::
pydevshell> d.getVar("STAGING_DIR")
'/media/build1/poky/build/tmp/sysroots'
pydevshell> d.getVar("STAGING_DIR", False)
'${TMPDIR}/sysroots'
pydevshell> d.setVar("FOO", "bar")
pydevshell> d.getVar("FOO")
'bar'
pydevshell> d.delVar("FOO")
pydevshell> d.getVar("FOO")
pydevshell> bb.build.exec_func("do_unpack", d)
pydevshell>
See the ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:functions you can call from within python`"
section in the BitBake User Manual for details about available functions.
The commands execute just as if the OpenEmbedded build
system were executing them. Consequently, working this way can be
helpful when debugging a build or preparing software to be used with the
OpenEmbedded build system.
Following is an example that uses ``pydevshell`` on a target named
``matchbox-desktop``::
$ bitbake matchbox-desktop -c pydevshell
This command spawns a terminal and places you in an interactive Python
interpreter within the OpenEmbedded build environment. The
:term:`OE_TERMINAL` variable
controls what type of shell is opened.
When you are finished using ``pydevshell``, you can exit the shell
either by using Ctrl+d or closing the terminal window.

View File

@@ -0,0 +1,89 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Using Quilt in Your Workflow
****************************
`Quilt <https://savannah.nongnu.org/projects/quilt>`__ is a powerful tool
that allows you to capture source code changes without having a clean
source tree. This section outlines the typical workflow you can use to
modify source code, test changes, and then preserve the changes in the
form of a patch all using Quilt.
.. note::
With regard to preserving changes to source files, if you clean a
recipe or have :ref:`ref-classes-rm-work` enabled, the
:ref:`devtool workflow <sdk-manual/extensible:using \`\`devtool\`\` in your sdk workflow>`
as described in the Yocto Project Application Development and the
Extensible Software Development Kit (eSDK) manual is a safer
development flow than the flow that uses Quilt.
Follow these general steps:
#. *Find the Source Code:* Temporary source code used by the
OpenEmbedded build system is kept in the :term:`Build Directory`. See the
":ref:`dev-manual/temporary-source-code:finding temporary source code`" section to
learn how to locate the directory that has the temporary source code for a
particular package.
#. *Change Your Working Directory:* You need to be in the directory that
has the temporary source code. That directory is defined by the
:term:`S` variable.
#. *Create a New Patch:* Before modifying source code, you need to
create a new patch. To create a new patch file, use ``quilt new`` as
below::
$ quilt new my_changes.patch
#. *Notify Quilt and Add Files:* After creating the patch, you need to
notify Quilt about the files you plan to edit. You notify Quilt by
adding the files to the patch you just created::
$ quilt add file1.c file2.c file3.c
#. *Edit the Files:* Make your changes in the source code to the files
you added to the patch.
#. *Test Your Changes:* Once you have modified the source code, the
easiest way to test your changes is by calling the :ref:`ref-tasks-compile`
task as shown in the following example::
$ bitbake -c compile -f package
The ``-f`` or ``--force`` option forces the specified task to
execute. If you find problems with your code, you can just keep
editing and re-testing iteratively until things work as expected.
.. note::
All the modifications you make to the temporary source code disappear
once you run the :ref:`ref-tasks-clean` or :ref:`ref-tasks-cleanall`
tasks using BitBake (i.e. ``bitbake -c clean package`` and
``bitbake -c cleanall package``). Modifications will also disappear if
you use the :ref:`ref-classes-rm-work` feature as described in
the ":ref:`dev-manual/disk-space:conserving disk space during builds`"
section.
#. *Generate the Patch:* Once your changes work as expected, you need to
use Quilt to generate the final patch that contains all your
modifications::
$ quilt refresh
At this point, the
``my_changes.patch`` file has all your edits made to the ``file1.c``,
``file2.c``, and ``file3.c`` files.
You can find the resulting patch file in the ``patches/``
subdirectory of the source (:term:`S`) directory.
#. *Copy the Patch File:* For simplicity, copy the patch file into a
directory named ``files``, which you can create in the same directory
that holds the recipe (``.bb``) file or the append (``.bbappend``)
file. Placing the patch here guarantees that the OpenEmbedded build
system will find the patch. Next, add the patch into the :term:`SRC_URI`
of the recipe. Here is an example::
SRC_URI += "file://my_changes.patch"

View File

@@ -0,0 +1,89 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Creating a Read-Only Root Filesystem
************************************
Suppose, for security reasons, you need to disable your target device's
root filesystem's write permissions (i.e. you need a read-only root
filesystem). Or, perhaps you are running the device's operating system
from a read-only storage device. For either case, you can customize your
image for that behavior.
.. note::
Supporting a read-only root filesystem requires that the system and
applications do not try to write to the root filesystem. You must
configure all parts of the target system to write elsewhere, or to
gracefully fail in the event of attempting to write to the root
filesystem.
Creating the Root Filesystem
============================
To create the read-only root filesystem, simply add the
"read-only-rootfs" feature to your image, normally in one of two ways.
The first way is to add the "read-only-rootfs" image feature in the
image's recipe file via the :term:`IMAGE_FEATURES` variable::
IMAGE_FEATURES += "read-only-rootfs"
As an alternative, you can add the same feature
from within your :term:`Build Directory`'s ``local.conf`` file with the
associated :term:`EXTRA_IMAGE_FEATURES` variable, as in::
EXTRA_IMAGE_FEATURES = "read-only-rootfs"
For more information on how to use these variables, see the
":ref:`dev-manual/customizing-images:Customizing Images Using Custom \`\`IMAGE_FEATURES\`\` and \`\`EXTRA_IMAGE_FEATURES\`\``"
section. For information on the variables, see
:term:`IMAGE_FEATURES` and
:term:`EXTRA_IMAGE_FEATURES`.
Post-Installation Scripts and Read-Only Root Filesystem
=======================================================
It is very important that you make sure all post-Installation
(``pkg_postinst``) scripts for packages that are installed into the
image can be run at the time when the root filesystem is created during
the build on the host system. These scripts cannot attempt to run during
the first boot on the target device. With the "read-only-rootfs" feature
enabled, the build system makes sure that all post-installation scripts
succeed at file system creation time. If any of these scripts
still need to be run after the root filesystem is created, the build
immediately fails. These build-time checks ensure that the build fails
rather than the target device fails later during its initial boot
operation.
Most of the common post-installation scripts generated by the build
system for the out-of-the-box Yocto Project are engineered so that they
can run during root filesystem creation (e.g. post-installation scripts
for caching fonts). However, if you create and add custom scripts, you
need to be sure they can be run during this file system creation.
Here are some common problems that prevent post-installation scripts
from running during root filesystem creation:
- *Not using $D in front of absolute paths:* The build system defines
``$``\ :term:`D` when the root
filesystem is created. Furthermore, ``$D`` is blank when the script
is run on the target device. This implies two purposes for ``$D``:
ensuring paths are valid in both the host and target environments,
and checking to determine which environment is being used as a method
for taking appropriate actions.
- *Attempting to run processes that are specific to or dependent on the
target architecture:* You can work around these attempts by using
native tools, which run on the host system, to accomplish the same
tasks, or by alternatively running the processes under QEMU, which
has the ``qemu_run_binary`` function. For more information, see the
:ref:`ref-classes-qemu` class.
Areas With Write Access
=======================
With the "read-only-rootfs" feature enabled, any attempt by the target
to write to the root filesystem at runtime fails. Consequently, you must
make sure that you configure processes and applications that attempt
these types of writes do so to directories with write access (e.g.
``/tmp`` or ``/var/run``).

View File

@@ -0,0 +1,598 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Performing Automated Runtime Testing
************************************
The OpenEmbedded build system makes available a series of automated
tests for images to verify runtime functionality. You can run these
tests on either QEMU or actual target hardware. Tests are written in
Python making use of the ``unittest`` module, and the majority of them
run commands on the target system over SSH. This section describes how
you set up the environment to use these tests, run available tests, and
write and add your own tests.
For information on the test and QA infrastructure available within the
Yocto Project, see the ":ref:`ref-manual/release-process:testing and quality assurance`"
section in the Yocto Project Reference Manual.
Enabling Tests
==============
Depending on whether you are planning to run tests using QEMU or on the
hardware, you have to take different steps to enable the tests. See the
following subsections for information on how to enable both types of
tests.
Enabling Runtime Tests on QEMU
------------------------------
In order to run tests, you need to do the following:
- *Set up to avoid interaction with sudo for networking:* To
accomplish this, you must do one of the following:
- Add ``NOPASSWD`` for your user in ``/etc/sudoers`` either for all
commands or just for ``runqemu-ifup``. You must provide the full
path as that can change if you are using multiple clones of the
source repository.
.. note::
On some distributions, you also need to comment out "Defaults
requiretty" in ``/etc/sudoers``.
- Manually configure a tap interface for your system.
- Run as root the script in ``scripts/runqemu-gen-tapdevs``, which
should generate a list of tap devices. This is the option
typically chosen for Autobuilder-type environments.
.. note::
- Be sure to use an absolute path when calling this script
with sudo.
- The package recipe ``qemu-helper-native`` is required to run
this script. Build the package using the following command::
$ bitbake qemu-helper-native
- *Set the DISPLAY variable:* You need to set this variable so that
you have an X server available (e.g. start ``vncserver`` for a
headless machine).
- *Be sure your host's firewall accepts incoming connections from
192.168.7.0/24:* Some of the tests (in particular DNF tests) start an
HTTP server on a random high number port, which is used to serve
files to the target. The DNF module serves
``${WORKDIR}/oe-rootfs-repo`` so it can run DNF channel commands.
That means your host's firewall must accept incoming connections from
192.168.7.0/24, which is the default IP range used for tap devices by
``runqemu``.
- *Be sure your host has the correct packages installed:* Depending
your host's distribution, you need to have the following packages
installed:
- Ubuntu and Debian: ``sysstat`` and ``iproute2``
- openSUSE: ``sysstat`` and ``iproute2``
- Fedora: ``sysstat`` and ``iproute``
- CentOS: ``sysstat`` and ``iproute``
Once you start running the tests, the following happens:
#. A copy of the root filesystem is written to ``${WORKDIR}/testimage``.
#. The image is booted under QEMU using the standard ``runqemu`` script.
#. A default timeout of 500 seconds occurs to allow for the boot process
to reach the login prompt. You can change the timeout period by
setting
:term:`TEST_QEMUBOOT_TIMEOUT`
in the ``local.conf`` file.
#. Once the boot process is reached and the login prompt appears, the
tests run. The full boot log is written to
``${WORKDIR}/testimage/qemu_boot_log``.
#. Each test module loads in the order found in :term:`TEST_SUITES`. You can
find the full output of the commands run over SSH in
``${WORKDIR}/testimgage/ssh_target_log``.
#. If no failures occur, the task running the tests ends successfully.
You can find the output from the ``unittest`` in the task log at
``${WORKDIR}/temp/log.do_testimage``.
Enabling Runtime Tests on Hardware
----------------------------------
The OpenEmbedded build system can run tests on real hardware, and for
certain devices it can also deploy the image to be tested onto the
device beforehand.
For automated deployment, a "controller image" is installed onto the
hardware once as part of setup. Then, each time tests are to be run, the
following occurs:
#. The controller image is booted into and used to write the image to be
tested to a second partition.
#. The device is then rebooted using an external script that you need to
provide.
#. The device boots into the image to be tested.
When running tests (independent of whether the image has been deployed
automatically or not), the device is expected to be connected to a
network on a pre-determined IP address. You can either use static IP
addresses written into the image, or set the image to use DHCP and have
your DHCP server on the test network assign a known IP address based on
the MAC address of the device.
In order to run tests on hardware, you need to set :term:`TEST_TARGET` to an
appropriate value. For QEMU, you do not have to change anything, the
default value is "qemu". For running tests on hardware, the following
options are available:
- *"simpleremote":* Choose "simpleremote" if you are going to run tests
on a target system that is already running the image to be tested and
is available on the network. You can use "simpleremote" in
conjunction with either real hardware or an image running within a
separately started QEMU or any other virtual machine manager.
- *"SystemdbootTarget":* Choose "SystemdbootTarget" if your hardware is
an EFI-based machine with ``systemd-boot`` as bootloader and
``core-image-testmaster`` (or something similar) is installed. Also,
your hardware under test must be in a DHCP-enabled network that gives
it the same IP address for each reboot.
If you choose "SystemdbootTarget", there are additional requirements
and considerations. See the
":ref:`dev-manual/runtime-testing:selecting systemdboottarget`" section, which
follows, for more information.
- *"BeagleBoneTarget":* Choose "BeagleBoneTarget" if you are deploying
images and running tests on the BeagleBone "Black" or original
"White" hardware. For information on how to use these tests, see the
comments at the top of the BeagleBoneTarget
``meta-yocto-bsp/lib/oeqa/controllers/beaglebonetarget.py`` file.
- *"EdgeRouterTarget":* Choose "EdgeRouterTarget" if you are deploying
images and running tests on the Ubiquiti Networks EdgeRouter Lite.
For information on how to use these tests, see the comments at the
top of the EdgeRouterTarget
``meta-yocto-bsp/lib/oeqa/controllers/edgeroutertarget.py`` file.
- *"GrubTarget":* Choose "GrubTarget" if you are deploying images and running
tests on any generic PC that boots using GRUB. For information on how
to use these tests, see the comments at the top of the GrubTarget
``meta-yocto-bsp/lib/oeqa/controllers/grubtarget.py`` file.
- *"your-target":* Create your own custom target if you want to run
tests when you are deploying images and running tests on a custom
machine within your BSP layer. To do this, you need to add a Python
unit that defines the target class under ``lib/oeqa/controllers/``
within your layer. You must also provide an empty ``__init__.py``.
For examples, see files in ``meta-yocto-bsp/lib/oeqa/controllers/``.
Selecting SystemdbootTarget
---------------------------
If you did not set :term:`TEST_TARGET` to "SystemdbootTarget", then you do
not need any information in this section. You can skip down to the
":ref:`dev-manual/runtime-testing:running tests`" section.
If you did set :term:`TEST_TARGET` to "SystemdbootTarget", you also need to
perform a one-time setup of your controller image by doing the following:
#. *Set EFI_PROVIDER:* Be sure that :term:`EFI_PROVIDER` is as follows::
EFI_PROVIDER = "systemd-boot"
#. *Build the controller image:* Build the ``core-image-testmaster`` image.
The ``core-image-testmaster`` recipe is provided as an example for a
"controller" image and you can customize the image recipe as you would
any other recipe.
Here are the image recipe requirements:
- Inherits ``core-image`` so that kernel modules are installed.
- Installs normal linux utilities not BusyBox ones (e.g. ``bash``,
``coreutils``, ``tar``, ``gzip``, and ``kmod``).
- Uses a custom :term:`Initramfs` image with a custom
installer. A normal image that you can install usually creates a
single root filesystem partition. This image uses another installer that
creates a specific partition layout. Not all Board Support
Packages (BSPs) can use an installer. For such cases, you need to
manually create the following partition layout on the target:
- First partition mounted under ``/boot``, labeled "boot".
- The main root filesystem partition where this image gets installed,
which is mounted under ``/``.
- Another partition labeled "testrootfs" where test images get
deployed.
#. *Install image:* Install the image that you just built on the target
system.
The final thing you need to do when setting :term:`TEST_TARGET` to
"SystemdbootTarget" is to set up the test image:
#. *Set up your local.conf file:* Make sure you have the following
statements in your ``local.conf`` file::
IMAGE_FSTYPES += "tar.gz"
INHERIT += "testimage"
TEST_TARGET = "SystemdbootTarget"
TEST_TARGET_IP = "192.168.2.3"
#. *Build your test image:* Use BitBake to build the image::
$ bitbake core-image-sato
Power Control
-------------
For most hardware targets other than "simpleremote", you can control
power:
- You can use :term:`TEST_POWERCONTROL_CMD` together with
:term:`TEST_POWERCONTROL_EXTRA_ARGS` as a command that runs on the host
and does power cycling. The test code passes one argument to that
command: off, on or cycle (off then on). Here is an example that
could appear in your ``local.conf`` file::
TEST_POWERCONTROL_CMD = "powercontrol.exp test 10.11.12.1 nuc1"
In this example, the expect
script does the following:
.. code-block:: shell
ssh test@10.11.12.1 "pyctl nuc1 arg"
It then runs a Python script that controls power for a label called
``nuc1``.
.. note::
You need to customize :term:`TEST_POWERCONTROL_CMD` and
:term:`TEST_POWERCONTROL_EXTRA_ARGS` for your own setup. The one requirement
is that it accepts "on", "off", and "cycle" as the last argument.
- When no command is defined, it connects to the device over SSH and
uses the classic reboot command to reboot the device. Classic reboot
is fine as long as the machine actually reboots (i.e. the SSH test
has not failed). It is useful for scenarios where you have a simple
setup, typically with a single board, and where some manual
interaction is okay from time to time.
If you have no hardware to automatically perform power control but still
wish to experiment with automated hardware testing, you can use the
``dialog-power-control`` script that shows a dialog prompting you to perform
the required power action. This script requires either KDialog or Zenity
to be installed. To use this script, set the
:term:`TEST_POWERCONTROL_CMD`
variable as follows::
TEST_POWERCONTROL_CMD = "${COREBASE}/scripts/contrib/dialog-power-control"
Serial Console Connection
-------------------------
For test target classes requiring a serial console to interact with the
bootloader (e.g. BeagleBoneTarget, EdgeRouterTarget, and GrubTarget),
you need to specify a command to use to connect to the serial console of
the target machine by using the
:term:`TEST_SERIALCONTROL_CMD`
variable and optionally the
:term:`TEST_SERIALCONTROL_EXTRA_ARGS`
variable.
These cases could be a serial terminal program if the machine is
connected to a local serial port, or a ``telnet`` or ``ssh`` command
connecting to a remote console server. Regardless of the case, the
command simply needs to connect to the serial console and forward that
connection to standard input and output as any normal terminal program
does. For example, to use the picocom terminal program on serial device
``/dev/ttyUSB0`` at 115200bps, you would set the variable as follows::
TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200"
For local
devices where the serial port device disappears when the device reboots,
an additional "serdevtry" wrapper script is provided. To use this
wrapper, simply prefix the terminal command with
``${COREBASE}/scripts/contrib/serdevtry``::
TEST_SERIALCONTROL_CMD = "${COREBASE}/scripts/contrib/serdevtry picocom -b 115200 /dev/ttyUSB0"
Running Tests
=============
You can start the tests automatically or manually:
- *Automatically running tests:* To run the tests automatically after the
OpenEmbedded build system successfully creates an image, first set the
:term:`TESTIMAGE_AUTO` variable to "1" in your ``local.conf`` file in the
:term:`Build Directory`::
TESTIMAGE_AUTO = "1"
Next, build your image. If the image successfully builds, the
tests run::
bitbake core-image-sato
- *Manually running tests:* To manually run the tests, first globally
inherit the :ref:`ref-classes-testimage*` class by editing your
``local.conf`` file::
INHERIT += "testimage"
Next, use BitBake to run the tests::
bitbake -c testimage image
All test files reside in ``meta/lib/oeqa/runtime/cases`` in the
:term:`Source Directory`. A test name maps
directly to a Python module. Each test module may contain a number of
individual tests. Tests are usually grouped together by the area tested
(e.g tests for systemd reside in ``meta/lib/oeqa/runtime/cases/systemd.py``).
You can add tests to any layer provided you place them in the proper
area and you extend :term:`BBPATH` in
the ``local.conf`` file as normal. Be sure that tests reside in
``layer/lib/oeqa/runtime/cases``.
.. note::
Be sure that module names do not collide with module names used in
the default set of test modules in ``meta/lib/oeqa/runtime/cases``.
You can change the set of tests run by appending or overriding
:term:`TEST_SUITES` variable in
``local.conf``. Each name in :term:`TEST_SUITES` represents a required test
for the image. Test modules named within :term:`TEST_SUITES` cannot be
skipped even if a test is not suitable for an image (e.g. running the
RPM tests on an image without ``rpm``). Appending "auto" to
:term:`TEST_SUITES` causes the build system to try to run all tests that are
suitable for the image (i.e. each test module may elect to skip itself).
The order you list tests in :term:`TEST_SUITES` is important and influences
test dependencies. Consequently, tests that depend on other tests should
be added after the test on which they depend. For example, since the
``ssh`` test depends on the ``ping`` test, "ssh" needs to come after
"ping" in the list. The test class provides no re-ordering or dependency
handling.
.. note::
Each module can have multiple classes with multiple test methods.
And, Python ``unittest`` rules apply.
Here are some things to keep in mind when running tests:
- The default tests for the image are defined as::
DEFAULT_TEST_SUITES:pn-image = "ping ssh df connman syslog xorg scp vnc date rpm dnf dmesg"
- Add your own test to the list of the by using the following::
TEST_SUITES:append = " mytest"
- Run a specific list of tests as follows::
TEST_SUITES = "test1 test2 test3"
Remember, order is important. Be sure to place a test that is
dependent on another test later in the order.
Exporting Tests
===============
You can export tests so that they can run independently of the build
system. Exporting tests is required if you want to be able to hand the
test execution off to a scheduler. You can only export tests that are
defined in :term:`TEST_SUITES`.
If your image is already built, make sure the following are set in your
``local.conf`` file::
INHERIT += "testexport"
TEST_TARGET_IP = "IP-address-for-the-test-target"
TEST_SERVER_IP = "IP-address-for-the-test-server"
You can then export the tests with the
following BitBake command form::
$ bitbake image -c testexport
Exporting the tests places them in the :term:`Build Directory` in
``tmp/testexport/``\ image, which is controlled by the :term:`TEST_EXPORT_DIR`
variable.
You can now run the tests outside of the build environment::
$ cd tmp/testexport/image
$ ./runexported.py testdata.json
Here is a complete example that shows IP addresses and uses the
``core-image-sato`` image::
INHERIT += "testexport"
TEST_TARGET_IP = "192.168.7.2"
TEST_SERVER_IP = "192.168.7.1"
Use BitBake to export the tests::
$ bitbake core-image-sato -c testexport
Run the tests outside of
the build environment using the following::
$ cd tmp/testexport/core-image-sato
$ ./runexported.py testdata.json
Writing New Tests
=================
As mentioned previously, all new test files need to be in the proper
place for the build system to find them. New tests for additional
functionality outside of the core should be added to the layer that adds
the functionality, in ``layer/lib/oeqa/runtime/cases`` (as long as
:term:`BBPATH` is extended in the
layer's ``layer.conf`` file as normal). Just remember the following:
- Filenames need to map directly to test (module) names.
- Do not use module names that collide with existing core tests.
- Minimally, an empty ``__init__.py`` file must be present in the runtime
directory.
To create a new test, start by copying an existing module (e.g.
``syslog.py`` or ``gcc.py`` are good ones to use). Test modules can use
code from ``meta/lib/oeqa/utils``, which are helper classes.
.. note::
Structure shell commands such that you rely on them and they return a
single code for success. Be aware that sometimes you will need to
parse the output. See the ``df.py`` and ``date.py`` modules for examples.
You will notice that all test classes inherit ``oeRuntimeTest``, which
is found in ``meta/lib/oetest.py``. This base class offers some helper
attributes, which are described in the following sections:
Class Methods
-------------
Class methods are as follows:
- *hasPackage(pkg):* Returns "True" if ``pkg`` is in the installed
package list of the image, which is based on the manifest file that
is generated during the :ref:`ref-tasks-rootfs` task.
- *hasFeature(feature):* Returns "True" if the feature is in
:term:`IMAGE_FEATURES` or
:term:`DISTRO_FEATURES`.
Class Attributes
----------------
Class attributes are as follows:
- *pscmd:* Equals "ps -ef" if ``procps`` is installed in the image.
Otherwise, ``pscmd`` equals "ps" (busybox).
- *tc:* The called test context, which gives access to the
following attributes:
- *d:* The BitBake datastore, which allows you to use stuff such
as ``oeRuntimeTest.tc.d.getVar("VIRTUAL-RUNTIME_init_manager")``.
- *testslist and testsrequired:* Used internally. The tests
do not need these.
- *filesdir:* The absolute path to
``meta/lib/oeqa/runtime/files``, which contains helper files for
tests meant for copying on the target such as small files written
in C for compilation.
- *target:* The target controller object used to deploy and
start an image on a particular target (e.g. Qemu, SimpleRemote,
and SystemdbootTarget). Tests usually use the following:
- *ip:* The target's IP address.
- *server_ip:* The host's IP address, which is usually used
by the DNF test suite.
- *run(cmd, timeout=None):* The single, most used method.
This command is a wrapper for: ``ssh root@host "cmd"``. The
command returns a tuple: (status, output), which are what their
names imply - the return code of "cmd" and whatever output it
produces. The optional timeout argument represents the number
of seconds the test should wait for "cmd" to return. If the
argument is "None", the test uses the default instance's
timeout period, which is 300 seconds. If the argument is "0",
the test runs until the command returns.
- *copy_to(localpath, remotepath):*
``scp localpath root@ip:remotepath``.
- *copy_from(remotepath, localpath):*
``scp root@host:remotepath localpath``.
Instance Attributes
-------------------
There is a single instance attribute, which is ``target``. The ``target``
instance attribute is identical to the class attribute of the same name,
which is described in the previous section. This attribute exists as
both an instance and class attribute so tests can use
``self.target.run(cmd)`` in instance methods instead of
``oeRuntimeTest.tc.target.run(cmd)``.
Installing Packages in the DUT Without the Package Manager
==========================================================
When a test requires a package built by BitBake, it is possible to
install that package. Installing the package does not require a package
manager be installed in the device under test (DUT). It does, however,
require an SSH connection and the target must be using the
``sshcontrol`` class.
.. note::
This method uses ``scp`` to copy files from the host to the target, which
causes permissions and special attributes to be lost.
A JSON file is used to define the packages needed by a test. This file
must be in the same path as the file used to define the tests.
Furthermore, the filename must map directly to the test module name with
a ``.json`` extension.
The JSON file must include an object with the test name as keys of an
object or an array. This object (or array of objects) uses the following
data:
- "pkg" --- a mandatory string that is the name of the package to be
installed.
- "rm" --- an optional boolean, which defaults to "false", that specifies
to remove the package after the test.
- "extract" --- an optional boolean, which defaults to "false", that
specifies if the package must be extracted from the package format.
When set to "true", the package is not automatically installed into
the DUT.
Following is an example JSON file that handles test "foo" installing
package "bar" and test "foobar" installing packages "foo" and "bar".
Once the test is complete, the packages are removed from the DUT::
{
"foo": {
"pkg": "bar"
},
"foobar": [
{
"pkg": "foo",
"rm": true
},
{
"pkg": "bar",
"rm": true
}
]
}

View File

@@ -0,0 +1,72 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Creating a Software Bill of Materials
*************************************
Once you are able to build an image for your project, once the licenses for
each software component are all identified (see
":ref:`dev-manual/licenses:working with licenses`") and once vulnerability
fixes are applied (see ":ref:`dev-manual/vulnerabilities:checking
for vulnerabilities`"), the OpenEmbedded build system can generate
a description of all the components you used, their licenses, their dependencies,
their sources, the changes that were applied to them and the known
vulnerabilities that were fixed.
This description is generated in the form of a *Software Bill of Materials*
(:term:`SBOM`), using the :term:`SPDX` standard.
When you release software, this is the most standard way to provide information
about the Software Supply Chain of your software image and SDK. The
:term:`SBOM` tooling is often used to ensure open source license compliance by
providing the license texts used in the product which legal departments and end
users can read in standardized format.
:term:`SBOM` information is also critical to performing vulnerability exposure
assessments, as all the components used in the Software Supply Chain are listed.
The OpenEmbedded build system doesn't generate such information by default.
To make this happen, you must inherit the
:ref:`ref-classes-create-spdx` class from a configuration file::
INHERIT += "create-spdx"
You then get :term:`SPDX` output in JSON format as an
``IMAGE-MACHINE.spdx.json`` file in ``tmp/deploy/images/MACHINE/`` inside the
:term:`Build Directory`.
This is a toplevel file accompanied by an ``IMAGE-MACHINE.spdx.index.json``
containing an index of JSON :term:`SPDX` files for individual recipes, together
with an ``IMAGE-MACHINE.spdx.tar.zst`` compressed archive containing all such
files.
The :ref:`ref-classes-create-spdx` class offers options to include
more information in the output :term:`SPDX` data, such as making the generated
files more human readable (:term:`SPDX_PRETTY`), adding compressed archives of
the files in the generated target packages (:term:`SPDX_ARCHIVE_PACKAGED`),
adding a description of the source files used to generate host tools and target
packages (:term:`SPDX_INCLUDE_SOURCES`) and adding archives of these source
files themselves (:term:`SPDX_ARCHIVE_SOURCES`).
Though the toplevel :term:`SPDX` output is available in
``tmp/deploy/images/MACHINE/`` inside the :term:`Build Directory`, ancillary
generated files are available in ``tmp/deploy/spdx/MACHINE`` too, such as:
- The individual :term:`SPDX` JSON files in the ``IMAGE-MACHINE.spdx.tar.zst``
archive.
- Compressed archives of the files in the generated target packages,
in ``packages/packagename.tar.zst`` (when :term:`SPDX_ARCHIVE_PACKAGED`
is set).
- Compressed archives of the source files used to build the host tools
and the target packages in ``recipes/recipe-packagename.tar.zst``
(when :term:`SPDX_ARCHIVE_SOURCES` is set). Those are needed to fulfill
"source code access" license requirements.
See the `tools page <https://spdx.dev/resources/tools/>`__ on the :term:`SPDX`
project website for a list of tools to consume and transform the :term:`SPDX`
data generated by the OpenEmbedded build system.
See also Joshua Watt's
`Automated SBoM generation with OpenEmbedded and the Yocto Project <https://youtu.be/Q5UQUM6zxVU>`__
presentation at FOSDEM 2023.

View File

@@ -0,0 +1,156 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Making Images More Secure
*************************
Security is of increasing concern for embedded devices. Consider the
issues and problems discussed in just this sampling of work found across
the Internet:
- *"*\ `Security Risks of Embedded
Systems <https://www.schneier.com/blog/archives/2014/01/security_risks_9.html>`__\ *"*
by Bruce Schneier
- *"*\ `Internet Census
2012 <http://census2012.sourceforge.net/paper.html>`__\ *"* by Carna
Botnet
- *"*\ `Security Issues for Embedded
Devices <https://elinux.org/images/6/6f/Security-issues.pdf>`__\ *"*
by Jake Edge
When securing your image is of concern, there are steps, tools, and
variables that you can consider to help you reach the security goals you
need for your particular device. Not all situations are identical when
it comes to making an image secure. Consequently, this section provides
some guidance and suggestions for consideration when you want to make
your image more secure.
.. note::
Because the security requirements and risks are different for every
type of device, this section cannot provide a complete reference on
securing your custom OS. It is strongly recommended that you also
consult other sources of information on embedded Linux system
hardening and on security.
General Considerations
======================
There are general considerations that help you create more secure images.
You should consider the following suggestions to make your device
more secure:
- Scan additional code you are adding to the system (e.g. application
code) by using static analysis tools. Look for buffer overflows and
other potential security problems.
- Pay particular attention to the security for any web-based
administration interface.
Web interfaces typically need to perform administrative functions and
tend to need to run with elevated privileges. Thus, the consequences
resulting from the interface's security becoming compromised can be
serious. Look for common web vulnerabilities such as
cross-site-scripting (XSS), unvalidated inputs, and so forth.
As with system passwords, the default credentials for accessing a
web-based interface should not be the same across all devices. This
is particularly true if the interface is enabled by default as it can
be assumed that many end-users will not change the credentials.
- Ensure you can update the software on the device to mitigate
vulnerabilities discovered in the future. This consideration
especially applies when your device is network-enabled.
- Regularly scan and apply fixes for CVE security issues affecting
all software components in the product, see ":ref:`dev-manual/vulnerabilities:checking for vulnerabilities`".
- Regularly update your version of Poky and OE-Core from their upstream
developers, e.g. to apply updates and security fixes from stable
and :term:`LTS` branches.
- Ensure you remove or disable debugging functionality before producing
the final image. For information on how to do this, see the
":ref:`dev-manual/securing-images:considerations specific to the openembedded build system`"
section.
- Ensure you have no network services listening that are not needed.
- Remove any software from the image that is not needed.
- Enable hardware support for secure boot functionality when your
device supports this functionality.
Security Flags
==============
The Yocto Project has security flags that you can enable that help make
your build output more secure. The security flags are in the
``meta/conf/distro/include/security_flags.inc`` file in your
:term:`Source Directory` (e.g. ``poky``).
.. note::
Depending on the recipe, certain security flags are enabled and
disabled by default.
Use the following line in your ``local.conf`` file or in your custom
distribution configuration file to enable the security compiler and
linker flags for your build::
require conf/distro/include/security_flags.inc
Considerations Specific to the OpenEmbedded Build System
========================================================
You can take some steps that are specific to the OpenEmbedded build
system to make your images more secure:
- Ensure "debug-tweaks" is not one of your selected
:term:`IMAGE_FEATURES`.
When creating a new project, the default is to provide you with an
initial ``local.conf`` file that enables this feature using the
:term:`EXTRA_IMAGE_FEATURES`
variable with the line::
EXTRA_IMAGE_FEATURES = "debug-tweaks"
To disable that feature, simply comment out that line in your
``local.conf`` file, or make sure :term:`IMAGE_FEATURES` does not contain
"debug-tweaks" before producing your final image. Among other things,
leaving this in place sets the root password as blank, which makes
logging in for debugging or inspection easy during development but
also means anyone can easily log in during production.
- It is possible to set a root password for the image and also to set
passwords for any extra users you might add (e.g. administrative or
service type users). When you set up passwords for multiple images or
users, you should not duplicate passwords.
To set up passwords, use the :ref:`ref-classes-extrausers` class, which
is the preferred method. For an example on how to set up both root and
user passwords, see the ":ref:`ref-classes-extrausers`" section.
.. note::
When adding extra user accounts or setting a root password, be
cautious about setting the same password on every device. If you
do this, and the password you have set is exposed, then every
device is now potentially compromised. If you need this access but
want to ensure security, consider setting a different, random
password for each device. Typically, you do this as a separate
step after you deploy the image onto the device.
- Consider enabling a Mandatory Access Control (MAC) framework such as
SMACK or SELinux and tuning it appropriately for your device's usage.
You can find more information in the
:yocto_git:`meta-selinux </meta-selinux/>` layer.
Tools for Hardening Your Image
==============================
The Yocto Project provides tools for making your image more secure. You
can find these tools in the ``meta-security`` layer of the
:yocto_git:`Yocto Project Source Repositories <>`.

View File

@@ -0,0 +1,109 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Speeding Up a Build
*******************
Build time can be an issue. By default, the build system uses simple
controls to try and maximize build efficiency. In general, the default
settings for all the following variables result in the most efficient
build times when dealing with single socket systems (i.e. a single CPU).
If you have multiple CPUs, you might try increasing the default values
to gain more speed. See the descriptions in the glossary for each
variable for more information:
- :term:`BB_NUMBER_THREADS`:
The maximum number of threads BitBake simultaneously executes.
- :term:`BB_NUMBER_PARSE_THREADS`:
The number of threads BitBake uses during parsing.
- :term:`PARALLEL_MAKE`: Extra
options passed to the ``make`` command during the
:ref:`ref-tasks-compile` task in
order to specify parallel compilation on the local build host.
- :term:`PARALLEL_MAKEINST`:
Extra options passed to the ``make`` command during the
:ref:`ref-tasks-install` task in
order to specify parallel installation on the local build host.
As mentioned, these variables all scale to the number of processor cores
available on the build system. For single socket systems, this
auto-scaling ensures that the build system fundamentally takes advantage
of potential parallel operations during the build based on the build
machine's capabilities.
Following are additional factors that can affect build speed:
- File system type: The file system type that the build is being
performed on can also influence performance. Using ``ext4`` is
recommended as compared to ``ext2`` and ``ext3`` due to ``ext4``
improved features such as extents.
- Disabling the updating of access time using ``noatime``: The
``noatime`` mount option prevents the build system from updating file
and directory access times.
- Setting a longer commit: Using the "commit=" mount option increases
the interval in seconds between disk cache writes. Changing this
interval from the five second default to something longer increases
the risk of data loss but decreases the need to write to the disk,
thus increasing the build performance.
- Choosing the packaging backend: Of the available packaging backends,
IPK is the fastest. Additionally, selecting a singular packaging
backend also helps.
- Using ``tmpfs`` for :term:`TMPDIR`
as a temporary file system: While this can help speed up the build,
the benefits are limited due to the compiler using ``-pipe``. The
build system goes to some lengths to avoid ``sync()`` calls into the
file system on the principle that if there was a significant failure,
the :term:`Build Directory` contents could easily be rebuilt.
- Inheriting the :ref:`ref-classes-rm-work` class:
Inheriting this class has shown to speed up builds due to
significantly lower amounts of data stored in the data cache as well
as on disk. Inheriting this class also makes cleanup of
:term:`TMPDIR` faster, at the
expense of being easily able to dive into the source code. File
system maintainers have recommended that the fastest way to clean up
large numbers of files is to reformat partitions rather than delete
files due to the linear nature of partitions. This, of course,
assumes you structure the disk partitions and file systems in a way
that this is practical.
Aside from the previous list, you should keep some trade offs in mind
that can help you speed up the build:
- Remove items from
:term:`DISTRO_FEATURES`
that you might not need.
- Exclude debug symbols and other debug information: If you do not need
these symbols and other debug information, disabling the ``*-dbg``
package generation can speed up the build. You can disable this
generation by setting the
:term:`INHIBIT_PACKAGE_DEBUG_SPLIT`
variable to "1".
- Disable static library generation for recipes derived from
``autoconf`` or ``libtool``: Following is an example showing how to
disable static libraries and still provide an override to handle
exceptions::
STATICLIBCONF = "--disable-static"
STATICLIBCONF:sqlite3-native = ""
EXTRA_OECONF += "${STATICLIBCONF}"
.. note::
- Some recipes need static libraries in order to work correctly
(e.g. ``pseudo-native`` needs ``sqlite3-native``). Overrides,
as in the previous example, account for these kinds of
exceptions.
- Some packages have packaging code that assumes the presence of
the static libraries. If so, you might need to exclude them as
well.

View File

@@ -223,7 +223,7 @@ particular working environment and set of practices.
- Maintain your Metadata in layers that make sense for your
situation. See the ":ref:`overview-manual/yp-intro:the yocto project layer model`"
section in the Yocto Project Overview and Concepts Manual and the
":ref:`dev-manual/common-tasks:understanding and creating layers`"
":ref:`dev-manual/layers:understanding and creating layers`"
section for more information on layers.
- Separate the project's Metadata and code by using separate Git
@@ -246,14 +246,13 @@ particular working environment and set of practices.
- The Yocto Project community encourages you to send patches to the
project to fix bugs or add features. If you do submit patches,
follow the project commit guidelines for writing good commit
messages. See the
":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
section.
messages. See the ":doc:`../contributor-guide/submit-changes`"
section in the Yocto Project and OpenEmbedded Contributor Guide.
- Send changes to the core sooner than later as others are likely
to run into the same issues. For some guidance on mailing lists
to use, see the list in the
":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
to use, see the lists in the
":ref:`contributor-guide/submit-changes:finding a suitable mailing list`"
section. For a description
of the available mailing lists, see the ":ref:`resources-mailinglist`" section in
the Yocto Project Reference Manual.

View File

@@ -0,0 +1,66 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Finding Temporary Source Code
*****************************
You might find it helpful during development to modify the temporary
source code used by recipes to build packages. For example, suppose you
are developing a patch and you need to experiment a bit to figure out
your solution. After you have initially built the package, you can
iteratively tweak the source code, which is located in the
:term:`Build Directory`, and then you can force a re-compile and quickly
test your altered code. Once you settle on a solution, you can then preserve
your changes in the form of patches.
During a build, the unpacked temporary source code used by recipes to
build packages is available in the :term:`Build Directory` as defined by the
:term:`S` variable. Below is the default value for the :term:`S` variable as
defined in the ``meta/conf/bitbake.conf`` configuration file in the
:term:`Source Directory`::
S = "${WORKDIR}/${BP}"
You should be aware that many recipes override the
:term:`S` variable. For example, recipes that fetch their source from Git
usually set :term:`S` to ``${WORKDIR}/git``.
.. note::
The :term:`BP` represents the base recipe name, which consists of the name
and version::
BP = "${BPN}-${PV}"
The path to the work directory for the recipe
(:term:`WORKDIR`) is defined as
follows::
${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
The actual directory depends on several things:
- :term:`TMPDIR`: The top-level build
output directory.
- :term:`MULTIMACH_TARGET_SYS`:
The target system identifier.
- :term:`PN`: The recipe name.
- :term:`EXTENDPE`: The epoch --- if
:term:`PE` is not specified, which is
usually the case for most recipes, then :term:`EXTENDPE` is blank.
- :term:`PV`: The recipe version.
- :term:`PR`: The recipe revision.
As an example, assume a Source Directory top-level folder named
``poky``, a default :term:`Build Directory` at ``poky/build``, and a
``qemux86-poky-linux`` machine target system. Furthermore, suppose your
recipe is named ``foo_1.3.0.bb``. In this case, the work directory the
build system uses to build the package would be as follows::
poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0

View File

@@ -0,0 +1,397 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Upgrading Recipes
*****************
Over time, upstream developers publish new versions for software built
by layer recipes. It is recommended to keep recipes up-to-date with
upstream version releases.
While there are several methods to upgrade a recipe, you might
consider checking on the upgrade status of a recipe first. You can do so
using the ``devtool check-upgrade-status`` command. See the
":ref:`devtool-checking-on-the-upgrade-status-of-a-recipe`"
section in the Yocto Project Reference Manual for more information.
The remainder of this section describes three ways you can upgrade a
recipe. You can use the Automated Upgrade Helper (AUH) to set up
automatic version upgrades. Alternatively, you can use
``devtool upgrade`` to set up semi-automatic version upgrades. Finally,
you can manually upgrade a recipe by editing the recipe itself.
Using the Auto Upgrade Helper (AUH)
===================================
The AUH utility works in conjunction with the OpenEmbedded build system
in order to automatically generate upgrades for recipes based on new
versions being published upstream. Use AUH when you want to create a
service that performs the upgrades automatically and optionally sends
you an email with the results.
AUH allows you to update several recipes with a single use. You can also
optionally perform build and integration tests using images with the
results saved to your hard drive and emails of results optionally sent
to recipe maintainers. Finally, AUH creates Git commits with appropriate
commit messages in the layer's tree for the changes made to recipes.
.. note::
In some conditions, you should not use AUH to upgrade recipes
and should instead use either ``devtool upgrade`` or upgrade your
recipes manually:
- When AUH cannot complete the upgrade sequence. This situation
usually results because custom patches carried by the recipe
cannot be automatically rebased to the new version. In this case,
``devtool upgrade`` allows you to manually resolve conflicts.
- When for any reason you want fuller control over the upgrade
process. For example, when you want special arrangements for
testing.
The following steps describe how to set up the AUH utility:
#. *Be Sure the Development Host is Set Up:* You need to be sure that
your development host is set up to use the Yocto Project. For
information on how to set up your host, see the
":ref:`dev-manual/start:Preparing the Build Host`" section.
#. *Make Sure Git is Configured:* The AUH utility requires Git to be
configured because AUH uses Git to save upgrades. Thus, you must have
Git user and email configured. The following command shows your
configurations::
$ git config --list
If you do not have the user and
email configured, you can use the following commands to do so::
$ git config --global user.name some_name
$ git config --global user.email username@domain.com
#. *Clone the AUH Repository:* To use AUH, you must clone the repository
onto your development host. The following command uses Git to create
a local copy of the repository on your system::
$ git clone git://git.yoctoproject.org/auto-upgrade-helper
Cloning into 'auto-upgrade-helper'... remote: Counting objects: 768, done.
remote: Compressing objects: 100% (300/300), done.
remote: Total 768 (delta 499), reused 703 (delta 434)
Receiving objects: 100% (768/768), 191.47 KiB | 98.00 KiB/s, done.
Resolving deltas: 100% (499/499), done.
Checking connectivity... done.
AUH is not part of the :term:`OpenEmbedded-Core (OE-Core)` or
:term:`Poky` repositories.
#. *Create a Dedicated Build Directory:* Run the :ref:`structure-core-script`
script to create a fresh :term:`Build Directory` that you use exclusively
for running the AUH utility::
$ cd poky
$ source oe-init-build-env your_AUH_build_directory
Re-using an existing :term:`Build Directory` and its configurations is not
recommended as existing settings could cause AUH to fail or behave
undesirably.
#. *Make Configurations in Your Local Configuration File:* Several
settings are needed in the ``local.conf`` file in the build
directory you just created for AUH. Make these following
configurations:
- If you want to enable :ref:`Build
History <dev-manual/build-quality:maintaining build output quality>`,
which is optional, you need the following lines in the
``conf/local.conf`` file::
INHERIT =+ "buildhistory"
BUILDHISTORY_COMMIT = "1"
With this configuration and a successful
upgrade, a build history "diff" file appears in the
``upgrade-helper/work/recipe/buildhistory-diff.txt`` file found in
your :term:`Build Directory`.
- If you want to enable testing through the :ref:`ref-classes-testimage*`
class, which is optional, you need to have the following set in
your ``conf/local.conf`` file::
INHERIT += "testimage"
.. note::
If your distro does not enable by default ptest, which Poky
does, you need the following in your ``local.conf`` file::
DISTRO_FEATURES:append = " ptest"
#. *Optionally Start a vncserver:* If you are running in a server
without an X11 session, you need to start a vncserver::
$ vncserver :1
$ export DISPLAY=:1
#. *Create and Edit an AUH Configuration File:* You need to have the
``upgrade-helper/upgrade-helper.conf`` configuration file in your
:term:`Build Directory`. You can find a sample configuration file in the
:yocto_git:`AUH source repository </auto-upgrade-helper/tree/>`.
Read through the sample file and make configurations as needed. For
example, if you enabled build history in your ``local.conf`` as
described earlier, you must enable it in ``upgrade-helper.conf``.
Also, if you are using the default ``maintainers.inc`` file supplied
with Poky and located in ``meta-yocto`` and you do not set a
"maintainers_whitelist" or "global_maintainer_override" in the
``upgrade-helper.conf`` configuration, and you specify "-e all" on
the AUH command-line, the utility automatically sends out emails to
all the default maintainers. Please avoid this.
This next set of examples describes how to use the AUH:
- *Upgrading a Specific Recipe:* To upgrade a specific recipe, use the
following form::
$ upgrade-helper.py recipe_name
For example, this command upgrades the ``xmodmap`` recipe::
$ upgrade-helper.py xmodmap
- *Upgrading a Specific Recipe to a Particular Version:* To upgrade a
specific recipe to a particular version, use the following form::
$ upgrade-helper.py recipe_name -t version
For example, this command upgrades the ``xmodmap`` recipe to version 1.2.3::
$ upgrade-helper.py xmodmap -t 1.2.3
- *Upgrading all Recipes to the Latest Versions and Suppressing Email
Notifications:* To upgrade all recipes to their most recent versions
and suppress the email notifications, use the following command::
$ upgrade-helper.py all
- *Upgrading all Recipes to the Latest Versions and Send Email
Notifications:* To upgrade all recipes to their most recent versions
and send email messages to maintainers for each attempted recipe as
well as a status email, use the following command::
$ upgrade-helper.py -e all
Once you have run the AUH utility, you can find the results in the AUH
:term:`Build Directory`::
${BUILDDIR}/upgrade-helper/timestamp
The AUH utility
also creates recipe update commits from successful upgrade attempts in
the layer tree.
You can easily set up to run the AUH utility on a regular basis by using
a cron job. See the
:yocto_git:`weeklyjob.sh </auto-upgrade-helper/tree/weeklyjob.sh>`
file distributed with the utility for an example.
Using ``devtool upgrade``
=========================
As mentioned earlier, an alternative method for upgrading recipes to
newer versions is to use
:doc:`devtool upgrade </ref-manual/devtool-reference>`.
You can read about ``devtool upgrade`` in general in the
":ref:`sdk-manual/extensible:use \`\`devtool upgrade\`\` to create a version of the recipe that supports a newer version of the software`"
section in the Yocto Project Application Development and the Extensible
Software Development Kit (eSDK) Manual.
To see all the command-line options available with ``devtool upgrade``,
use the following help command::
$ devtool upgrade -h
If you want to find out what version a recipe is currently at upstream
without any attempt to upgrade your local version of the recipe, you can
use the following command::
$ devtool latest-version recipe_name
As mentioned in the previous section describing AUH, ``devtool upgrade``
works in a less-automated manner than AUH. Specifically,
``devtool upgrade`` only works on a single recipe that you name on the
command line, cannot perform build and integration testing using images,
and does not automatically generate commits for changes in the source
tree. Despite all these "limitations", ``devtool upgrade`` updates the
recipe file to the new upstream version and attempts to rebase custom
patches contained by the recipe as needed.
.. note::
AUH uses much of ``devtool upgrade`` behind the scenes making AUH somewhat
of a "wrapper" application for ``devtool upgrade``.
A typical scenario involves having used Git to clone an upstream
repository that you use during build operations. Because you have built the
recipe in the past, the layer is likely added to your
configuration already. If for some reason, the layer is not added, you
could add it easily using the
":ref:`bitbake-layers <bsp-guide/bsp:creating a new bsp layer using the \`\`bitbake-layers\`\` script>`"
script. For example, suppose you use the ``nano.bb`` recipe from the
``meta-oe`` layer in the ``meta-openembedded`` repository. For this
example, assume that the layer has been cloned into following area::
/home/scottrif/meta-openembedded
The following command from your :term:`Build Directory` adds the layer to
your build configuration (i.e. ``${BUILDDIR}/conf/bblayers.conf``)::
$ bitbake-layers add-layer /home/scottrif/meta-openembedded/meta-oe
NOTE: Starting bitbake server...
Parsing recipes: 100% |##########################################| Time: 0:00:55
Parsing of 1431 .bb files complete (0 cached, 1431 parsed). 2040 targets, 56 skipped, 0 masked, 0 errors.
Removing 12 recipes from the x86_64 sysroot: 100% |##############| Time: 0:00:00
Removing 1 recipes from the x86_64_i586 sysroot: 100% |##########| Time: 0:00:00
Removing 5 recipes from the i586 sysroot: 100% |#################| Time: 0:00:00
Removing 5 recipes from the qemux86 sysroot: 100% |##############| Time: 0:00:00
For this example, assume that the ``nano.bb`` recipe that
is upstream has a 2.9.3 version number. However, the version in the
local repository is 2.7.4. The following command from your build
directory automatically upgrades the recipe for you::
$ devtool upgrade nano -V 2.9.3
NOTE: Starting bitbake server...
NOTE: Creating workspace layer in /home/scottrif/poky/build/workspace
Parsing recipes: 100% |##########################################| Time: 0:00:46
Parsing of 1431 .bb files complete (0 cached, 1431 parsed). 2040 targets, 56 skipped, 0 masked, 0 errors.
NOTE: Extracting current version source...
NOTE: Resolving any missing task queue dependencies
.
.
.
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
NOTE: Tasks Summary: Attempted 74 tasks of which 72 didn't need to be rerun and all succeeded.
Adding changed files: 100% |#####################################| Time: 0:00:00
NOTE: Upgraded source extracted to /home/scottrif/poky/build/workspace/sources/nano
NOTE: New recipe is /home/scottrif/poky/build/workspace/recipes/nano/nano_2.9.3.bb
.. note::
Using the ``-V`` option is not necessary. Omitting the version number causes
``devtool upgrade`` to upgrade the recipe to the most recent version.
Continuing with this example, you can use ``devtool build`` to build the
newly upgraded recipe::
$ devtool build nano
NOTE: Starting bitbake server...
Loading cache: 100% |################################################################################################| Time: 0:00:01
Loaded 2040 entries from dependency cache.
Parsing recipes: 100% |##############################################################################################| Time: 0:00:00
Parsing of 1432 .bb files complete (1431 cached, 1 parsed). 2041 targets, 56 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
.
.
.
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
NOTE: nano: compiling from external source tree /home/scottrif/poky/build/workspace/sources/nano
NOTE: Tasks Summary: Attempted 520 tasks of which 304 didn't need to be rerun and all succeeded.
Within the ``devtool upgrade`` workflow, you can
deploy and test your rebuilt software. For this example,
however, running ``devtool finish`` cleans up the workspace once the
source in your workspace is clean. This usually means using Git to stage
and submit commits for the changes generated by the upgrade process.
Once the tree is clean, you can clean things up in this example with the
following command from the ``${BUILDDIR}/workspace/sources/nano``
directory::
$ devtool finish nano meta-oe
NOTE: Starting bitbake server...
Loading cache: 100% |################################################################################################| Time: 0:00:00
Loaded 2040 entries from dependency cache.
Parsing recipes: 100% |##############################################################################################| Time: 0:00:01
Parsing of 1432 .bb files complete (1431 cached, 1 parsed). 2041 targets, 56 skipped, 0 masked, 0 errors.
NOTE: Adding new patch 0001-nano.bb-Stuff-I-changed-when-upgrading-nano.bb.patch
NOTE: Updating recipe nano_2.9.3.bb
NOTE: Removing file /home/scottrif/meta-openembedded/meta-oe/recipes-support/nano/nano_2.7.4.bb
NOTE: Moving recipe file to /home/scottrif/meta-openembedded/meta-oe/recipes-support/nano
NOTE: Leaving source tree /home/scottrif/poky/build/workspace/sources/nano as-is; if you no longer need it then please delete it manually
Using the ``devtool finish`` command cleans up the workspace and creates a patch
file based on your commits. The tool puts all patch files back into the
source directory in a sub-directory named ``nano`` in this case.
Manually Upgrading a Recipe
===========================
If for some reason you choose not to upgrade recipes using
:ref:`dev-manual/upgrading-recipes:Using the Auto Upgrade Helper (AUH)` or
by :ref:`dev-manual/upgrading-recipes:Using \`\`devtool upgrade\`\``,
you can manually edit the recipe files to upgrade the versions.
.. note::
Manually updating multiple recipes scales poorly and involves many
steps. The recommendation to upgrade recipe versions is through AUH
or ``devtool upgrade``, both of which automate some steps and provide
guidance for others needed for the manual process.
To manually upgrade recipe versions, follow these general steps:
#. *Change the Version:* Rename the recipe such that the version (i.e.
the :term:`PV` part of the recipe name)
changes appropriately. If the version is not part of the recipe name,
change the value as it is set for :term:`PV` within the recipe itself.
#. *Update* :term:`SRCREV` *if Needed*: If the source code your recipe builds
is fetched from Git or some other version control system, update
:term:`SRCREV` to point to the
commit hash that matches the new version.
#. *Build the Software:* Try to build the recipe using BitBake. Typical
build failures include the following:
- License statements were updated for the new version. For this
case, you need to review any changes to the license and update the
values of :term:`LICENSE` and
:term:`LIC_FILES_CHKSUM`
as needed.
.. note::
License changes are often inconsequential. For example, the
license text's copyright year might have changed.
- Custom patches carried by the older version of the recipe might
fail to apply to the new version. For these cases, you need to
review the failures. Patches might not be necessary for the new
version of the software if the upgraded version has fixed those
issues. If a patch is necessary and failing, you need to rebase it
into the new version.
#. *Optionally Attempt to Build for Several Architectures:* Once you
successfully build the new software for a given architecture, you
could test the build for other architectures by changing the
:term:`MACHINE` variable and
rebuilding the software. This optional step is especially important
if the recipe is to be released publicly.
#. *Check the Upstream Change Log or Release Notes:* Checking both these
reveals if there are new features that could break
backwards-compatibility. If so, you need to take steps to mitigate or
eliminate that situation.
#. *Optionally Create a Bootable Image and Test:* If you want, you can
test the new software by booting it onto actual hardware.
#. *Create a Commit with the Change in the Layer Repository:* After all
builds work and any testing is successful, you can create commits for
any changes in the layer holding your upgraded recipe.

View File

@@ -0,0 +1,214 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Checking for Vulnerabilities
****************************
Vulnerabilities in Poky and OE-Core
===================================
The Yocto Project has an infrastructure to track and address unfixed
known security vulnerabilities, as tracked by the public
:wikipedia:`Common Vulnerabilities and Exposures (CVE) <Common_Vulnerabilities_and_Exposures>`
database.
The Yocto Project maintains a `list of known vulnerabilities
<https://autobuilder.yocto.io/pub/non-release/patchmetrics/>`__
for packages in Poky and OE-Core, tracking the evolution of the number of
unpatched CVEs and the status of patches. Such information is available for
the current development version and for each supported release.
Security is a process, not a product, and thus at any time, a number of security
issues may be impacting Poky and OE-Core. It is up to the maintainers, users,
contributors and anyone interested in the issues to investigate and possibly fix them by
updating software components to newer versions or by applying patches to address them.
It is recommended to work with Poky and OE-Core upstream maintainers and submit
patches to fix them, see ":doc:`../contributor-guide/submit-changes`" for details.
Vulnerability check at build time
=================================
To enable a check for CVE security vulnerabilities using
:ref:`ref-classes-cve-check` in the specific image or target you are building,
add the following setting to your configuration::
INHERIT += "cve-check"
The CVE database contains some old incomplete entries which have been
deemed not to impact Poky or OE-Core. These CVE entries can be excluded from the
check using build configuration::
include conf/distro/include/cve-extra-exclusions.inc
With this CVE check enabled, BitBake build will try to map each compiled software component
recipe name and version information to the CVE database and generate recipe and
image specific reports. These reports will contain:
- metadata about the software component like names and versions
- metadata about the CVE issue such as description and NVD link
- for each software component, a list of CVEs which are possibly impacting this version
- status of each CVE: ``Patched``, ``Unpatched`` or ``Ignored``
The status ``Patched`` means that a patch file to address the security issue has been
applied. ``Unpatched`` status means that no patches to address the issue have been
applied and that the issue needs to be investigated. ``Ignored`` means that after
analysis, it has been deemed to ignore the issue as it for example affects
the software component on a different operating system platform.
After a build with CVE check enabled, reports for each compiled source recipe will be
found in ``build/tmp/deploy/cve``.
For example the CVE check report for the ``flex-native`` recipe looks like::
$ cat poky/build/tmp/deploy/cve/flex-native
LAYER: meta
PACKAGE NAME: flex-native
PACKAGE VERSION: 2.6.4
CVE: CVE-2016-6354
CVE STATUS: Patched
CVE SUMMARY: Heap-based buffer overflow in the yy_get_next_buffer function in Flex before 2.6.1 might allow context-dependent attackers to cause a denial of service or possibly execute arbitrary code via vectors involving num_to_read.
CVSS v2 BASE SCORE: 7.5
CVSS v3 BASE SCORE: 9.8
VECTOR: NETWORK
MORE INFORMATION: https://nvd.nist.gov/vuln/detail/CVE-2016-6354
LAYER: meta
PACKAGE NAME: flex-native
PACKAGE VERSION: 2.6.4
CVE: CVE-2019-6293
CVE STATUS: Ignored
CVE SUMMARY: An issue was discovered in the function mark_beginning_as_normal in nfa.c in flex 2.6.4. There is a stack exhaustion problem caused by the mark_beginning_as_normal function making recursive calls to itself in certain scenarios involving lots of '*' characters. Remote attackers could leverage this vulnerability to cause a denial-of-service.
CVSS v2 BASE SCORE: 4.3
CVSS v3 BASE SCORE: 5.5
VECTOR: NETWORK
MORE INFORMATION: https://nvd.nist.gov/vuln/detail/CVE-2019-6293
For images, a summary of all recipes included in the image and their CVEs is also
generated in textual and JSON formats. These ``.cve`` and ``.json`` reports can be found
in the ``tmp/deploy/images`` directory for each compiled image.
At build time CVE check will also throw warnings about ``Unpatched`` CVEs::
WARNING: flex-2.6.4-r0 do_cve_check: Found unpatched CVE (CVE-2019-6293), for more information check /poky/build/tmp/work/core2-64-poky-linux/flex/2.6.4-r0/temp/cve.log
WARNING: libarchive-3.5.1-r0 do_cve_check: Found unpatched CVE (CVE-2021-36976), for more information check /poky/build/tmp/work/core2-64-poky-linux/libarchive/3.5.1-r0/temp/cve.log
It is also possible to check the CVE status of individual packages as follows::
bitbake -c cve_check flex libarchive
Fixing CVE product name and version mappings
============================================
By default, :ref:`ref-classes-cve-check` uses the recipe name :term:`BPN` as CVE
product name when querying the CVE database. If this mapping contains false positives, e.g.
some reported CVEs are not for the software component in question, or false negatives like
some CVEs are not found to impact the recipe when they should, then the problems can be
in the recipe name to CVE product mapping. These mapping issues can be fixed by setting
the :term:`CVE_PRODUCT` variable inside the recipe. This defines the name of the software component in the
upstream `NIST CVE database <https://nvd.nist.gov/>`__.
The variable supports using vendor and product names like this::
CVE_PRODUCT = "flex_project:flex"
In this example the vendor name used in the CVE database is ``flex_project`` and the
product is ``flex``. With this setting the ``flex`` recipe only maps to this specific
product and not products from other vendors with same name ``flex``.
Similarly, when the recipe version :term:`PV` is not compatible with software versions used by
the upstream software component releases and the CVE database, these can be fixed using
the :term:`CVE_VERSION` variable.
Note that if the CVE entries in the NVD database contain bugs or have missing or incomplete
information, it is recommended to fix the information there directly instead of working
around the issues possibly for a long time in Poky and OE-Core side recipes. Feedback to
NVD about CVE entries can be provided through the `NVD contact form <https://nvd.nist.gov/info/contact-form>`__.
Fixing vulnerabilities in recipes
=================================
If a CVE security issue impacts a software component, it can be fixed by updating to a newer
version of the software component or by applying a patch. For Poky and OE-Core master branches, updating
to a newer software component release with fixes is the best option, but patches can be applied
if releases are not yet available.
For stable branches, it is preferred to apply patches for the issues. For some software
components minor version updates can also be applied if they are backwards compatible.
Here is an example of fixing CVE security issues with patch files,
an example from the :oe_layerindex:`ffmpeg recipe</layerindex/recipe/47350>`::
SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \
file://0001-libavutil-include-assembly-with-full-path-from-sourc.patch \
file://fix-CVE-2020-20446.patch \
file://fix-CVE-2020-20453.patch \
file://fix-CVE-2020-22015.patch \
file://fix-CVE-2020-22021.patch \
file://fix-CVE-2020-22033-CVE-2020-22019.patch \
file://fix-CVE-2021-33815.patch \
A good practice is to include the CVE identifier in both the patch file name
and inside the patch file commit message using the format::
CVE: CVE-2020-22033
CVE checker will then capture this information and change the CVE status to ``Patched``
in the generated reports.
If analysis shows that the CVE issue does not impact the recipe due to configuration, platform,
version or other reasons, the CVE can be marked as ``Ignored`` using the :term:`CVE_CHECK_IGNORE` variable.
As mentioned previously, if data in the CVE database is wrong, it is recommend to fix those
issues in the CVE database directly.
Recipes can be completely skipped by CVE check by including the recipe name in
the :term:`CVE_CHECK_SKIP_RECIPE` variable.
Implementation details
======================
Here's what the :ref:`ref-classes-cve-check` class does to find unpatched CVE IDs.
First the code goes through each patch file provided by a recipe. If a valid CVE ID
is found in the name of the file, the corresponding CVE is considered as patched.
Don't forget that if multiple CVE IDs are found in the filename, only the last
one is considered. Then, the code looks for ``CVE: CVE-ID`` lines in the patch
file. The found CVE IDs are also considered as patched.
Then, the code looks up all the CVE IDs in the NIST database for all the
products defined in :term:`CVE_PRODUCT`. Then, for each found CVE:
- If the package name (:term:`PN`) is part of
:term:`CVE_CHECK_SKIP_RECIPE`, it is considered as ``Patched``.
- If the CVE ID is part of :term:`CVE_CHECK_IGNORE`, it is
set as ``Ignored``.
- If the CVE ID is part of the patched CVE for the recipe, it is
already considered as ``Patched``.
- Otherwise, the code checks whether the recipe version (:term:`PV`)
is within the range of versions impacted by the CVE. If so, the CVE
is considered as ``Unpatched``.
The CVE database is stored in :term:`DL_DIR` and can be inspected using
``sqlite3`` command as follows::
sqlite3 downloads/CVE_CHECK/nvdcve_1.1.db .dump | grep CVE-2021-37462
When analyzing CVEs, it is recommended to:
- study the latest information in `CVE database <https://nvd.nist.gov/vuln/search>`__.
- check how upstream developers of the software component addressed the issue, e.g.
what patch was applied, which upstream release contains the fix.
- check what other Linux distributions like `Debian <https://security-tracker.debian.org/tracker/>`__
did to analyze and address the issue.
- follow security notices from other Linux distributions.
- follow public `open source security mailing lists <https://oss-security.openwall.org/wiki/mailing-lists>`__ for
discussions and advance notifications of CVE bugs and software releases with fixes.

View File

@@ -0,0 +1,90 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Using Wayland and Weston
************************
:wikipedia:`Wayland <Wayland_(display_server_protocol)>`
is a computer display server protocol that provides a method for
compositing window managers to communicate directly with applications
and video hardware and expects them to communicate with input hardware
using other libraries. Using Wayland with supporting targets can result
in better control over graphics frame rendering than an application
might otherwise achieve.
The Yocto Project provides the Wayland protocol libraries and the
reference :wikipedia:`Weston <Wayland_(display_server_protocol)#Weston>`
compositor as part of its release. You can find the integrated packages
in the ``meta`` layer of the :term:`Source Directory`.
Specifically, you
can find the recipes that build both Wayland and Weston at
``meta/recipes-graphics/wayland``.
You can build both the Wayland and Weston packages for use only with targets
that accept the :wikipedia:`Mesa 3D and Direct Rendering Infrastructure
<Mesa_(computer_graphics)>`, which is also known as Mesa DRI. This implies that
you cannot build and use the packages if your target uses, for example, the
Intel Embedded Media and Graphics Driver (Intel EMGD) that overrides Mesa DRI.
.. note::
Due to lack of EGL support, Weston 1.0.3 will not run directly on the
emulated QEMU hardware. However, this version of Weston will run
under X emulation without issues.
This section describes what you need to do to implement Wayland and use
the Weston compositor when building an image for a supporting target.
Enabling Wayland in an Image
============================
To enable Wayland, you need to enable it to be built and enable it to be
included (installed) in the image.
Building Wayland
----------------
To cause Mesa to build the ``wayland-egl`` platform and Weston to build
Wayland with Kernel Mode Setting
(`KMS <https://wiki.archlinux.org/index.php/Kernel_Mode_Setting>`__)
support, include the "wayland" flag in the
:term:`DISTRO_FEATURES`
statement in your ``local.conf`` file::
DISTRO_FEATURES:append = " wayland"
.. note::
If X11 has been enabled elsewhere, Weston will build Wayland with X11
support
Installing Wayland and Weston
-----------------------------
To install the Wayland feature into an image, you must include the
following
:term:`CORE_IMAGE_EXTRA_INSTALL`
statement in your ``local.conf`` file::
CORE_IMAGE_EXTRA_INSTALL += "wayland weston"
Running Weston
==============
To run Weston inside X11, enabling it as described earlier and building
a Sato image is sufficient. If you are running your image under Sato, a
Weston Launcher appears in the "Utility" category.
Alternatively, you can run Weston through the command-line interpretor
(CLI), which is better suited for development work. To run Weston under
the CLI, you need to do the following after your image is built:
#. Run these commands to export ``XDG_RUNTIME_DIR``::
mkdir -p /tmp/$USER-weston
chmod 0700 /tmp/$USER-weston
export XDG_RUNTIME_DIR=/tmp/$USER-weston
#. Launch Weston in the shell::
weston

View File

@@ -0,0 +1,729 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Creating Partitioned Images Using Wic
*************************************
Creating an image for a particular hardware target using the
OpenEmbedded build system does not necessarily mean you can boot that
image as is on your device. Physical devices accept and boot images in
various ways depending on the specifics of the device. Usually,
information about the hardware can tell you what image format the device
requires. Should your device require multiple partitions on an SD card,
flash, or an HDD, you can use the OpenEmbedded Image Creator, Wic, to
create the properly partitioned image.
The ``wic`` command generates partitioned images from existing
OpenEmbedded build artifacts. Image generation is driven by partitioning
commands contained in an OpenEmbedded kickstart file (``.wks``)
specified either directly on the command line or as one of a selection
of canned kickstart files as shown with the ``wic list images`` command
in the
":ref:`dev-manual/wic:generate an image using an existing kickstart file`"
section. When you apply the command to a given set of build artifacts, the
result is an image or set of images that can be directly written onto media and
used on a particular system.
.. note::
For a kickstart file reference, see the
":ref:`ref-manual/kickstart:openembedded kickstart (\`\`.wks\`\`) reference`"
Chapter in the Yocto Project Reference Manual.
The ``wic`` command and the infrastructure it is based on is by
definition incomplete. The purpose of the command is to allow the
generation of customized images, and as such, was designed to be
completely extensible through a plugin interface. See the
":ref:`dev-manual/wic:using the wic plugin interface`" section
for information on these plugins.
This section provides some background information on Wic, describes what
you need to have in place to run the tool, provides instruction on how
to use the Wic utility, provides information on using the Wic plugins
interface, and provides several examples that show how to use Wic.
Background
==========
This section provides some background on the Wic utility. While none of
this information is required to use Wic, you might find it interesting.
- The name "Wic" is derived from OpenEmbedded Image Creator (oeic). The
"oe" diphthong in "oeic" was promoted to the letter "w", because
"oeic" is both difficult to remember and to pronounce.
- Wic is loosely based on the Meego Image Creator (``mic``) framework.
The Wic implementation has been heavily modified to make direct use
of OpenEmbedded build artifacts instead of package installation and
configuration, which are already incorporated within the OpenEmbedded
artifacts.
- Wic is a completely independent standalone utility that initially
provides easier-to-use and more flexible replacements for an existing
functionality in OE-Core's :ref:`ref-classes-image-live`
class. The difference between Wic and those examples is that with Wic
the functionality of those scripts is implemented by a
general-purpose partitioning language, which is based on Redhat
kickstart syntax.
Requirements
============
In order to use the Wic utility with the OpenEmbedded Build system, your
system needs to meet the following requirements:
- The Linux distribution on your development host must support the
Yocto Project. See the ":ref:`detailed-supported-distros`"
section in the Yocto Project Reference Manual for the list of
distributions that support the Yocto Project.
- The standard system utilities, such as ``cp``, must be installed on
your development host system.
- You must have sourced the build environment setup script (i.e.
:ref:`structure-core-script`) found in the :term:`Build Directory`.
- You need to have the build artifacts already available, which
typically means that you must have already created an image using the
OpenEmbedded build system (e.g. ``core-image-minimal``). While it
might seem redundant to generate an image in order to create an image
using Wic, the current version of Wic requires the artifacts in the
form generated by the OpenEmbedded build system.
- You must build several native tools, which are built to run on the
build system::
$ bitbake wic-tools
- Include "wic" as part of the
:term:`IMAGE_FSTYPES`
variable.
- Include the name of the :ref:`wic kickstart file <openembedded-kickstart-wks-reference>`
as part of the :term:`WKS_FILE` variable. If multiple candidate files can
be provided by different layers, specify all the possible names through the
:term:`WKS_FILES` variable instead.
Getting Help
============
You can get general help for the ``wic`` command by entering the ``wic``
command by itself or by entering the command with a help argument as
follows::
$ wic -h
$ wic --help
$ wic help
Currently, Wic supports seven commands: ``cp``, ``create``, ``help``,
``list``, ``ls``, ``rm``, and ``write``. You can get help for all these
commands except "help" by using the following form::
$ wic help command
For example, the following command returns help for the ``write``
command::
$ wic help write
Wic supports help for three topics: ``overview``, ``plugins``, and
``kickstart``. You can get help for any topic using the following form::
$ wic help topic
For example, the following returns overview help for Wic::
$ wic help overview
There is one additional level of help for Wic. You can get help on
individual images through the ``list`` command. You can use the ``list``
command to return the available Wic images as follows::
$ wic list images
genericx86 Create an EFI disk image for genericx86*
edgerouter Create SD card image for Edgerouter
beaglebone-yocto Create SD card image for Beaglebone
qemux86-directdisk Create a qemu machine 'pcbios' direct disk image
systemd-bootdisk Create an EFI disk image with systemd-boot
mkhybridiso Create a hybrid ISO image
mkefidisk Create an EFI disk image
sdimage-bootpart Create SD card image with a boot partition
directdisk-multi-rootfs Create multi rootfs image using rootfs plugin
directdisk Create a 'pcbios' direct disk image
directdisk-bootloader-config Create a 'pcbios' direct disk image with custom bootloader config
qemuriscv Create qcow2 image for RISC-V QEMU machines
directdisk-gpt Create a 'pcbios' direct disk image
efi-bootdisk
Once you know the list of available
Wic images, you can use ``help`` with the command to get help on a
particular image. For example, the following command returns help on the
"beaglebone-yocto" image::
$ wic list beaglebone-yocto help
Creates a partitioned SD card image for Beaglebone.
Boot files are located in the first vfat partition.
Operational Modes
=================
You can use Wic in two different modes, depending on how much control
you need for specifying the OpenEmbedded build artifacts that are used
for creating the image: Raw and Cooked:
- *Raw Mode:* You explicitly specify build artifacts through Wic
command-line arguments.
- *Cooked Mode:* The current
:term:`MACHINE` setting and image
name are used to automatically locate and provide the build
artifacts. You just supply a kickstart file and the name of the image
from which to use artifacts.
Regardless of the mode you use, you need to have the build artifacts
ready and available.
Raw Mode
--------
Running Wic in raw mode allows you to specify all the partitions through
the ``wic`` command line. The primary use for raw mode is if you have
built your kernel outside of the Yocto Project :term:`Build Directory`.
In other words, you can point to arbitrary kernel, root filesystem locations,
and so forth. Contrast this behavior with cooked mode where Wic looks in the
:term:`Build Directory` (e.g. ``tmp/deploy/images/``\ machine).
The general form of the ``wic`` command in raw mode is::
$ wic create wks_file options ...
Where:
wks_file:
An OpenEmbedded kickstart file. You can provide
your own custom file or use a file from a set of
existing files as described by further options.
optional arguments:
-h, --help show this help message and exit
-o OUTDIR, --outdir OUTDIR
name of directory to create image in
-e IMAGE_NAME, --image-name IMAGE_NAME
name of the image to use the artifacts from e.g. core-
image-sato
-r ROOTFS_DIR, --rootfs-dir ROOTFS_DIR
path to the /rootfs dir to use as the .wks rootfs
source
-b BOOTIMG_DIR, --bootimg-dir BOOTIMG_DIR
path to the dir containing the boot artifacts (e.g.
/EFI or /syslinux dirs) to use as the .wks bootimg
source
-k KERNEL_DIR, --kernel-dir KERNEL_DIR
path to the dir containing the kernel to use in the
.wks bootimg
-n NATIVE_SYSROOT, --native-sysroot NATIVE_SYSROOT
path to the native sysroot containing the tools to use
to build the image
-s, --skip-build-check
skip the build check
-f, --build-rootfs build rootfs
-c {gzip,bzip2,xz}, --compress-with {gzip,bzip2,xz}
compress image with specified compressor
-m, --bmap generate .bmap
--no-fstab-update Do not change fstab file.
-v VARS_DIR, --vars VARS_DIR
directory with <image>.env files that store bitbake
variables
-D, --debug output debug information
.. note::
You do not need root privileges to run Wic. In fact, you should not
run as root when using the utility.
Cooked Mode
-----------
Running Wic in cooked mode leverages off artifacts in the
:term:`Build Directory`. In other words, you do not have to specify kernel or
root filesystem locations as part of the command. All you need to provide is
a kickstart file and the name of the image from which to use artifacts
by using the "-e" option. Wic looks in the :term:`Build Directory` (e.g.
``tmp/deploy/images/``\ machine) for artifacts.
The general form of the ``wic`` command using Cooked Mode is as follows::
$ wic create wks_file -e IMAGE_NAME
Where:
wks_file:
An OpenEmbedded kickstart file. You can provide
your own custom file or use a file from a set of
existing files provided with the Yocto Project
release.
required argument:
-e IMAGE_NAME, --image-name IMAGE_NAME
name of the image to use the artifacts from e.g. core-
image-sato
Using an Existing Kickstart File
================================
If you do not want to create your own kickstart file, you can use an
existing file provided by the Wic installation. As shipped, kickstart
files can be found in the :ref:`overview-manual/development-environment:yocto project source repositories` in the
following two locations::
poky/meta-yocto-bsp/wic
poky/scripts/lib/wic/canned-wks
Use the following command to list the available kickstart files::
$ wic list images
genericx86 Create an EFI disk image for genericx86*
beaglebone-yocto Create SD card image for Beaglebone
edgerouter Create SD card image for Edgerouter
qemux86-directdisk Create a QEMU machine 'pcbios' direct disk image
directdisk-gpt Create a 'pcbios' direct disk image
mkefidisk Create an EFI disk image
directdisk Create a 'pcbios' direct disk image
systemd-bootdisk Create an EFI disk image with systemd-boot
mkhybridiso Create a hybrid ISO image
sdimage-bootpart Create SD card image with a boot partition
directdisk-multi-rootfs Create multi rootfs image using rootfs plugin
directdisk-bootloader-config Create a 'pcbios' direct disk image with custom bootloader config
When you use an existing file, you
do not have to use the ``.wks`` extension. Here is an example in Raw
Mode that uses the ``directdisk`` file::
$ wic create directdisk -r rootfs_dir -b bootimg_dir \
-k kernel_dir -n native_sysroot
Here are the actual partition language commands used in the
``genericx86.wks`` file to generate an image::
# short-description: Create an EFI disk image for genericx86*
# long-description: Creates a partitioned EFI disk image for genericx86* machines
part /boot --source bootimg-efi --sourceparams="loader=grub-efi" --ondisk sda --label msdos --active --align 1024
part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024 --use-uuid
part swap --ondisk sda --size 44 --label swap1 --fstype=swap
bootloader --ptable gpt --timeout=5 --append="rootfstype=ext4 console=ttyS0,115200 console=tty0"
Using the Wic Plugin Interface
==============================
You can extend and specialize Wic functionality by using Wic plugins.
This section explains the Wic plugin interface.
.. note::
Wic plugins consist of "source" and "imager" plugins. Imager plugins
are beyond the scope of this section.
Source plugins provide a mechanism to customize partition content during
the Wic image generation process. You can use source plugins to map
values that you specify using ``--source`` commands in kickstart files
(i.e. ``*.wks``) to a plugin implementation used to populate a given
partition.
.. note::
If you use plugins that have build-time dependencies (e.g. native
tools, bootloaders, and so forth) when building a Wic image, you need
to specify those dependencies using the :term:`WKS_FILE_DEPENDS`
variable.
Source plugins are subclasses defined in plugin files. As shipped, the
Yocto Project provides several plugin files. You can see the source
plugin files that ship with the Yocto Project
:yocto_git:`here </poky/tree/scripts/lib/wic/plugins/source>`.
Each of these plugin files contains source plugins that are designed to
populate a specific Wic image partition.
Source plugins are subclasses of the ``SourcePlugin`` class, which is
defined in the ``poky/scripts/lib/wic/pluginbase.py`` file. For example,
the ``BootimgEFIPlugin`` source plugin found in the ``bootimg-efi.py``
file is a subclass of the ``SourcePlugin`` class, which is found in the
``pluginbase.py`` file.
You can also implement source plugins in a layer outside of the Source
Repositories (external layer). To do so, be sure that your plugin files
are located in a directory whose path is
``scripts/lib/wic/plugins/source/`` within your external layer. When the
plugin files are located there, the source plugins they contain are made
available to Wic.
When the Wic implementation needs to invoke a partition-specific
implementation, it looks for the plugin with the same name as the
``--source`` parameter used in the kickstart file given to that
partition. For example, if the partition is set up using the following
command in a kickstart file::
part /boot --source bootimg-pcbios --ondisk sda --label boot --active --align 1024
The methods defined as class
members of the matching source plugin (i.e. ``bootimg-pcbios``) in the
``bootimg-pcbios.py`` plugin file are used.
To be more concrete, here is the corresponding plugin definition from
the ``bootimg-pcbios.py`` file for the previous command along with an
example method called by the Wic implementation when it needs to prepare
a partition using an implementation-specific function::
.
.
.
class BootimgPcbiosPlugin(SourcePlugin):
"""
Create MBR boot partition and install syslinux on it.
"""
name = 'bootimg-pcbios'
.
.
.
@classmethod
def do_prepare_partition(cls, part, source_params, creator, cr_workdir,
oe_builddir, bootimg_dir, kernel_dir,
rootfs_dir, native_sysroot):
"""
Called to do the actual content population for a partition i.e. it
'prepares' the partition to be incorporated into the image.
In this case, prepare content for legacy bios boot partition.
"""
.
.
.
If a
subclass (plugin) itself does not implement a particular function, Wic
locates and uses the default version in the superclass. It is for this
reason that all source plugins are derived from the ``SourcePlugin``
class.
The ``SourcePlugin`` class defined in the ``pluginbase.py`` file defines
a set of methods that source plugins can implement or override. Any
plugins (subclass of ``SourcePlugin``) that do not implement a
particular method inherit the implementation of the method from the
``SourcePlugin`` class. For more information, see the ``SourcePlugin``
class in the ``pluginbase.py`` file for details:
The following list describes the methods implemented in the
``SourcePlugin`` class:
- ``do_prepare_partition()``: Called to populate a partition with
actual content. In other words, the method prepares the final
partition image that is incorporated into the disk image.
- ``do_configure_partition()``: Called before
``do_prepare_partition()`` to create custom configuration files for a
partition (e.g. syslinux or grub configuration files).
- ``do_install_disk()``: Called after all partitions have been
prepared and assembled into a disk image. This method provides a hook
to allow finalization of a disk image (e.g. writing an MBR).
- ``do_stage_partition()``: Special content-staging hook called
before ``do_prepare_partition()``. This method is normally empty.
Typically, a partition just uses the passed-in parameters (e.g. the
unmodified value of ``bootimg_dir``). However, in some cases, things
might need to be more tailored. As an example, certain files might
additionally need to be taken from ``bootimg_dir + /boot``. This hook
allows those files to be staged in a customized fashion.
.. note::
``get_bitbake_var()`` allows you to access non-standard variables that
you might want to use for this behavior.
You can extend the source plugin mechanism. To add more hooks, create
more source plugin methods within ``SourcePlugin`` and the corresponding
derived subclasses. The code that calls the plugin methods uses the
``plugin.get_source_plugin_methods()`` function to find the method or
methods needed by the call. Retrieval of those methods is accomplished
by filling up a dict with keys that contain the method names of
interest. On success, these will be filled in with the actual methods.
See the Wic implementation for examples and details.
Wic Examples
============
This section provides several examples that show how to use the Wic
utility. All the examples assume the list of requirements in the
":ref:`dev-manual/wic:requirements`" section have been met. The
examples assume the previously generated image is
``core-image-minimal``.
Generate an Image using an Existing Kickstart File
--------------------------------------------------
This example runs in Cooked Mode and uses the ``mkefidisk`` kickstart
file::
$ wic create mkefidisk -e core-image-minimal
INFO: Building wic-tools...
.
.
.
INFO: The new image(s) can be found here:
./mkefidisk-201804191017-sda.direct
The following build artifacts were used to create the image(s):
ROOTFS_DIR: /home/stephano/yocto/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/rootfs
BOOTIMG_DIR: /home/stephano/yocto/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/recipe-sysroot/usr/share
KERNEL_DIR: /home/stephano/yocto/build/tmp-glibc/deploy/images/qemux86
NATIVE_SYSROOT: /home/stephano/yocto/build/tmp-glibc/work/i586-oe-linux/wic-tools/1.0-r0/recipe-sysroot-native
INFO: The image(s) were created using OE kickstart file:
/home/stephano/yocto/openembedded-core/scripts/lib/wic/canned-wks/mkefidisk.wks
The previous example shows the easiest way to create an image by running
in cooked mode and supplying a kickstart file and the "-e" option to
point to the existing build artifacts. Your ``local.conf`` file needs to
have the :term:`MACHINE` variable set
to the machine you are using, which is "qemux86" in this example.
Once the image builds, the output provides image location, artifact use,
and kickstart file information.
.. note::
You should always verify the details provided in the output to make
sure that the image was indeed created exactly as expected.
Continuing with the example, you can now write the image from the
:term:`Build Directory` onto a USB stick, or whatever media for which you
built your image, and boot from the media. You can write the image by using
``bmaptool`` or ``dd``::
$ oe-run-native bmap-tools-native bmaptool copy mkefidisk-201804191017-sda.direct /dev/sdX
or ::
$ sudo dd if=mkefidisk-201804191017-sda.direct of=/dev/sdX
.. note::
For more information on how to use the ``bmaptool``
to flash a device with an image, see the
":ref:`dev-manual/bmaptool:flashing images using \`\`bmaptool\`\``"
section.
Using a Modified Kickstart File
-------------------------------
Because partitioned image creation is driven by the kickstart file, it
is easy to affect image creation by changing the parameters in the file.
This next example demonstrates that through modification of the
``directdisk-gpt`` kickstart file.
As mentioned earlier, you can use the command ``wic list images`` to
show the list of existing kickstart files. The directory in which the
``directdisk-gpt.wks`` file resides is
``scripts/lib/image/canned-wks/``, which is located in the
:term:`Source Directory` (e.g. ``poky``).
Because available files reside in this directory, you can create and add
your own custom files to the directory. Subsequent use of the
``wic list images`` command would then include your kickstart files.
In this example, the existing ``directdisk-gpt`` file already does most
of what is needed. However, for the hardware in this example, the image
will need to boot from ``sdb`` instead of ``sda``, which is what the
``directdisk-gpt`` kickstart file uses.
The example begins by making a copy of the ``directdisk-gpt.wks`` file
in the ``scripts/lib/image/canned-wks`` directory and then by changing
the lines that specify the target disk from which to boot::
$ cp /home/stephano/yocto/poky/scripts/lib/wic/canned-wks/directdisk-gpt.wks \
/home/stephano/yocto/poky/scripts/lib/wic/canned-wks/directdisksdb-gpt.wks
Next, the example modifies the ``directdisksdb-gpt.wks`` file and
changes all instances of "``--ondisk sda``" to "``--ondisk sdb``". The
example changes the following two lines and leaves the remaining lines
untouched::
part /boot --source bootimg-pcbios --ondisk sdb --label boot --active --align 1024
part / --source rootfs --ondisk sdb --fstype=ext4 --label platform --align 1024 --use-uuid
Once the lines are changed, the
example generates the ``directdisksdb-gpt`` image. The command points
the process at the ``core-image-minimal`` artifacts for the Next Unit of
Computing (nuc) :term:`MACHINE` the
``local.conf``::
$ wic create directdisksdb-gpt -e core-image-minimal
INFO: Building wic-tools...
.
.
.
Initialising tasks: 100% |#######################################| Time: 0:00:01
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
NOTE: Tasks Summary: Attempted 1161 tasks of which 1157 didn't need to be rerun and all succeeded.
INFO: Creating image(s)...
INFO: The new image(s) can be found here:
./directdisksdb-gpt-201710090938-sdb.direct
The following build artifacts were used to create the image(s):
ROOTFS_DIR: /home/stephano/yocto/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/rootfs
BOOTIMG_DIR: /home/stephano/yocto/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/recipe-sysroot/usr/share
KERNEL_DIR: /home/stephano/yocto/build/tmp-glibc/deploy/images/qemux86
NATIVE_SYSROOT: /home/stephano/yocto/build/tmp-glibc/work/i586-oe-linux/wic-tools/1.0-r0/recipe-sysroot-native
INFO: The image(s) were created using OE kickstart file:
/home/stephano/yocto/poky/scripts/lib/wic/canned-wks/directdisksdb-gpt.wks
Continuing with the example, you can now directly ``dd`` the image to a
USB stick, or whatever media for which you built your image, and boot
the resulting media::
$ sudo dd if=directdisksdb-gpt-201710090938-sdb.direct of=/dev/sdb
140966+0 records in
140966+0 records out
72174592 bytes (72 MB, 69 MiB) copied, 78.0282 s, 925 kB/s
$ sudo eject /dev/sdb
Using a Modified Kickstart File and Running in Raw Mode
-------------------------------------------------------
This next example manually specifies each build artifact (runs in Raw
Mode) and uses a modified kickstart file. The example also uses the
``-o`` option to cause Wic to create the output somewhere other than the
default output directory, which is the current directory::
$ wic create test.wks -o /home/stephano/testwic \
--rootfs-dir /home/stephano/yocto/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/rootfs \
--bootimg-dir /home/stephano/yocto/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/recipe-sysroot/usr/share \
--kernel-dir /home/stephano/yocto/build/tmp/deploy/images/qemux86 \
--native-sysroot /home/stephano/yocto/build/tmp/work/i586-poky-linux/wic-tools/1.0-r0/recipe-sysroot-native
INFO: Creating image(s)...
INFO: The new image(s) can be found here:
/home/stephano/testwic/test-201710091445-sdb.direct
The following build artifacts were used to create the image(s):
ROOTFS_DIR: /home/stephano/yocto/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/rootfs
BOOTIMG_DIR: /home/stephano/yocto/build/tmp-glibc/work/qemux86-oe-linux/core-image-minimal/1.0-r0/recipe-sysroot/usr/share
KERNEL_DIR: /home/stephano/yocto/build/tmp-glibc/deploy/images/qemux86
NATIVE_SYSROOT: /home/stephano/yocto/build/tmp-glibc/work/i586-oe-linux/wic-tools/1.0-r0/recipe-sysroot-native
INFO: The image(s) were created using OE kickstart file:
test.wks
For this example,
:term:`MACHINE` did not have to be
specified in the ``local.conf`` file since the artifact is manually
specified.
Using Wic to Manipulate an Image
--------------------------------
Wic image manipulation allows you to shorten turnaround time during
image development. For example, you can use Wic to delete the kernel
partition of a Wic image and then insert a newly built kernel. This
saves you time from having to rebuild the entire image each time you
modify the kernel.
.. note::
In order to use Wic to manipulate a Wic image as in this example,
your development machine must have the ``mtools`` package installed.
The following example examines the contents of the Wic image, deletes
the existing kernel, and then inserts a new kernel:
#. *List the Partitions:* Use the ``wic ls`` command to list all the
partitions in the Wic image::
$ wic ls tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic
Num Start End Size Fstype
1 1048576 25041919 23993344 fat16
2 25165824 72157183 46991360 ext4
The previous output shows two partitions in the
``core-image-minimal-qemux86.wic`` image.
#. *Examine a Particular Partition:* Use the ``wic ls`` command again
but in a different form to examine a particular partition.
.. note::
You can get command usage on any Wic command using the following
form::
$ wic help command
For example, the following command shows you the various ways to
use the
wic ls
command::
$ wic help ls
The following command shows what is in partition one::
$ wic ls tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic:1
Volume in drive : is boot
Volume Serial Number is E894-1809
Directory for ::/
libcom32 c32 186500 2017-10-09 16:06
libutil c32 24148 2017-10-09 16:06
syslinux cfg 220 2017-10-09 16:06
vesamenu c32 27104 2017-10-09 16:06
vmlinuz 6904608 2017-10-09 16:06
5 files 7 142 580 bytes
16 582 656 bytes free
The previous output shows five files, with the
``vmlinuz`` being the kernel.
.. note::
If you see the following error, you need to update or create a
``~/.mtoolsrc`` file and be sure to have the line "mtools_skip_check=1"
in the file. Then, run the Wic command again::
ERROR: _exec_cmd: /usr/bin/mdir -i /tmp/wic-parttfokuwra ::/ returned '1' instead of 0
output: Total number of sectors (47824) not a multiple of sectors per track (32)!
Add mtools_skip_check=1 to your .mtoolsrc file to skip this test
#. *Remove the Old Kernel:* Use the ``wic rm`` command to remove the
``vmlinuz`` file (kernel)::
$ wic rm tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic:1/vmlinuz
#. *Add In the New Kernel:* Use the ``wic cp`` command to add the
updated kernel to the Wic image. Depending on how you built your
kernel, it could be in different places. If you used ``devtool`` and
an SDK to build your kernel, it resides in the ``tmp/work`` directory
of the extensible SDK. If you used ``make`` to build the kernel, the
kernel will be in the ``workspace/sources`` area.
The following example assumes ``devtool`` was used to build the
kernel::
$ wic cp poky_sdk/tmp/work/qemux86-poky-linux/linux-yocto/4.12.12+git999-r0/linux-yocto-4.12.12+git999/arch/x86/boot/bzImage \
poky/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic:1/vmlinuz
Once the new kernel is added back into the image, you can use the
``dd`` command or :ref:`bmaptool
<dev-manual/bmaptool:flashing images using \`\`bmaptool\`\`>`
to flash your wic image onto an SD card or USB stick and test your
target.
.. note::
Using ``bmaptool`` is generally 10 to 20 times faster than using ``dd``.

View File

@@ -0,0 +1,54 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Using x32 psABI
***************
x32 processor-specific Application Binary Interface (`x32
psABI <https://software.intel.com/en-us/node/628948>`__) is a native
32-bit processor-specific ABI for Intel 64 (x86-64) architectures. An
ABI defines the calling conventions between functions in a processing
environment. The interface determines what registers are used and what
the sizes are for various C data types.
Some processing environments prefer using 32-bit applications even when
running on Intel 64-bit platforms. Consider the i386 psABI, which is a
very old 32-bit ABI for Intel 64-bit platforms. The i386 psABI does not
provide efficient use and access of the Intel 64-bit processor
resources, leaving the system underutilized. Now consider the x86_64
psABI. This ABI is newer and uses 64-bits for data sizes and program
pointers. The extra bits increase the footprint size of the programs,
libraries, and also increases the memory and file system size
requirements. Executing under the x32 psABI enables user programs to
utilize CPU and system resources more efficiently while keeping the
memory footprint of the applications low. Extra bits are used for
registers but not for addressing mechanisms.
The Yocto Project supports the final specifications of x32 psABI as
follows:
- You can create packages and images in x32 psABI format on x86_64
architecture targets.
- You can successfully build recipes with the x32 toolchain.
- You can create and boot ``core-image-minimal`` and
``core-image-sato`` images.
- There is RPM Package Manager (RPM) support for x32 binaries.
- There is support for large images.
To use the x32 psABI, you need to edit your ``conf/local.conf``
configuration file as follows::
MACHINE = "qemux86-64"
DEFAULTTUNE = "x86-64-x32"
baselib = "${@d.getVar('BASE_LIB:tune-' + (d.getVar('DEFAULTTUNE') \
or 'INVALID')) or 'lib'}"
Once you have set
up your configuration file, use BitBake to build an image that supports
the x32 psABI. Here is an example::
$ bitbake core-image-sato

View File

@@ -26,6 +26,7 @@ Welcome to the Yocto Project Documentation
:caption: Manuals
Overview and Concepts Manual <overview-manual/index>
Contributor Guide <contributor-guide/index>
Reference Manual <ref-manual/index>
Board Support Package (BSP) Developer's guide <bsp-guide/index>
Development Tasks Manual <dev-manual/index>

View File

@@ -101,13 +101,13 @@ section:
For background information on working with common and BSP layers,
see the
":ref:`dev-manual/common-tasks:understanding and creating layers`"
":ref:`dev-manual/layers:understanding and creating layers`"
section in the Yocto Project Development Tasks Manual and the
":ref:`bsp-guide/bsp:bsp layers`" section in the Yocto Project Board
Support (BSP) Developer's Guide, respectively. For information on how to
use the ``bitbake-layers create-layer`` command to quickly set up a layer,
see the
":ref:`dev-manual/common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`"
":ref:`dev-manual/layers:creating a general layer using the \`\`bitbake-layers\`\` script`"
section in the Yocto Project Development Tasks Manual.
4. *Inform the BitBake Build Environment About Your Layer:* As directed
@@ -278,13 +278,13 @@ section:
For background information on working with common and BSP layers,
see the
":ref:`dev-manual/common-tasks:understanding and creating layers`"
":ref:`dev-manual/layers:understanding and creating layers`"
section in the Yocto Project Development Tasks Manual and the
":ref:`bsp-guide/bsp:bsp layers`" section in the Yocto Project Board
Support (BSP) Developer's Guide, respectively. For information on how to
use the ``bitbake-layers create-layer`` command to quickly set up a layer,
see the
":ref:`dev-manual/common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`"
":ref:`dev-manual/layers:creating a general layer using the \`\`bitbake-layers\`\` script`"
section in the Yocto Project Development Tasks Manual.
4. *Inform the BitBake Build Environment About Your Layer:* As directed
@@ -364,7 +364,7 @@ layer contains its own :term:`BitBake`
append files (``.bbappend``) and provides a convenient mechanism to
create your own recipe files (``.bb``) as well as store and use kernel
patch files. For background information on working with layers, see the
":ref:`dev-manual/common-tasks:understanding and creating layers`"
":ref:`dev-manual/layers:understanding and creating layers`"
section in the Yocto Project Development Tasks Manual.
.. note::
@@ -372,7 +372,7 @@ section in the Yocto Project Development Tasks Manual.
The Yocto Project comes with many tools that simplify tasks you need
to perform. One such tool is the ``bitbake-layers create-layer``
command, which simplifies creating a new layer. See the
":ref:`dev-manual/common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`"
":ref:`dev-manual/layers:creating a general layer using the \`\`bitbake-layers\`\` script`"
section in the Yocto Project Development Tasks Manual for
information on how to use this script to quick set up a new layer.
@@ -425,7 +425,7 @@ home directory:
The :term:`FILESEXTRAPATHS` and :term:`SRC_URI` statements
enable the OpenEmbedded build system to find patch files. For more
information on using append files, see the
":ref:`dev-manual/common-tasks:appending other layers metadata with your layer`"
":ref:`dev-manual/layers:appending other layers metadata with your layer`"
section in the Yocto Project Development Tasks Manual.
Modifying an Existing Recipe
@@ -1070,7 +1070,7 @@ Section.
For more information on append files and patches, see the
":ref:`kernel-dev/common:creating the append file`" and
":ref:`kernel-dev/common:applying patches`" sections. You can also see the
":ref:`dev-manual/common-tasks:appending other layers metadata with your layer`"
":ref:`dev-manual/layers:appending other layers metadata with your layer`"
section in the Yocto Project Development Tasks Manual.
.. note::

View File

@@ -38,7 +38,7 @@ The kernel image (e.g. ``vmlinuz``) is provided by the
specify whether or not the kernel image is installed in the generated
root filesystem, override ``RRECOMMENDS:${KERNEL_PACKAGE_NAME}-base`` to include or not
include "kernel-image". See the
":ref:`dev-manual/common-tasks:appending other layers metadata with your layer`"
":ref:`dev-manual/layers:appending other layers metadata with your layer`"
section in the
Yocto Project Development Tasks Manual for information on how to use an
append file to override metadata.

View File

@@ -87,7 +87,7 @@ understand the following documentation:
as described in the Yocto Project Application Development and the
Extensible Software Development Kit (eSDK) manual.
- The ":ref:`dev-manual/common-tasks:understanding and creating layers`"
- The ":ref:`dev-manual/layers:understanding and creating layers`"
section in the Yocto Project Development Tasks Manual.
- The ":ref:`kernel-dev/intro:kernel modification workflow`" section.

View File

@@ -83,7 +83,7 @@ create an append file for the ``init-ifupdown`` recipe instead, which
you can find in the :term:`Source Directory` at
``meta/recipes-core/init-ifupdown``. For information on how to use
append files, see the
":ref:`dev-manual/common-tasks:appending other layers metadata with your layer`"
":ref:`dev-manual/layers:appending other layers metadata with your layer`"
section in the Yocto Project Development Tasks Manual.
.. _migration-1.4-remote-debugging:

View File

@@ -244,7 +244,7 @@ A new automated image testing framework has been added through the
framework replaces the older ``imagetest-qemu`` framework.
You can learn more about performing automated image tests in the
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
":ref:`dev-manual/runtime-testing:performing automated runtime testing`"
section in the Yocto Project Development Tasks Manual.
.. _migration-1.5-build-history:
@@ -267,7 +267,7 @@ Following are changes to Build History:
option for each utility for more information on the new syntax.
For more information on Build History, see the
":ref:`dev-manual/common-tasks:maintaining build output quality`"
":ref:`dev-manual/build-quality:maintaining build output quality`"
section in the Yocto Project Development Tasks Manual.
.. _migration-1.5-udev:

View File

@@ -12,7 +12,7 @@ Project 1.6 Release (codename "daisy") from the prior release.
The :ref:`archiver <ref-classes-archiver>` class has been rewritten
and its configuration has been simplified. For more details on the
source archiver, see the
":ref:`dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle`"
":ref:`dev-manual/licenses:maintaining open source license compliance during your product's lifecycle`"
section in the Yocto Project Development Tasks Manual.
.. _migration-1.6-packaging-changes:
@@ -147,7 +147,7 @@ NFS mount, an error occurs.
The ``PRINC`` variable has been deprecated and triggers a warning if
detected during a build. For :term:`PR` increments on changes,
use the PR service instead. You can find out more about this service in
the ":ref:`dev-manual/common-tasks:working with a pr service`"
the ":ref:`dev-manual/packages:working with a pr service`"
section in the Yocto Project Development Tasks Manual.
.. _migration-1.6-variable-changes-IMAGE_TYPES:
@@ -220,7 +220,7 @@ Package Test (ptest)
Package Tests (ptest) are built but not installed by default. For
information on using Package Tests, see the
":ref:`dev-manual/common-tasks:testing packages with ptest`"
":ref:`dev-manual/packages:testing packages with ptest`"
section in the Yocto Project Development Tasks Manual. For information on the
``ptest`` class, see the ":ref:`ref-classes-ptest`" section.

View File

@@ -217,7 +217,7 @@ The following miscellaneous change occurred:
should manually remove old "build-id" files from your existing build
history repositories to avoid confusion. For information on the build
history feature, see the
":ref:`dev-manual/common-tasks:maintaining build output quality`"
":ref:`dev-manual/build-quality:maintaining build output quality`"
section in the Yocto Project Development Tasks Manual.

View File

@@ -343,7 +343,7 @@ This release supports generation of GLib Introspective Repository (GIR)
files through GObject introspection, which is the standard mechanism for
accessing GObject-based software from runtime environments. You can
enable, disable, and test the generation of this data. See the
":ref:`dev-manual/common-tasks:enabling gobject introspection support`"
":ref:`dev-manual/gobject-introspection:enabling gobject introspection support`"
section in the Yocto Project Development Tasks Manual for more
information.

View File

@@ -363,7 +363,7 @@ The following changes have been made to Wic:
.. note::
For more information on Wic, see the
":ref:`dev-manual/common-tasks:creating partitioned images using wic`"
":ref:`dev-manual/wic:creating partitioned images using wic`"
section in the Yocto Project Development Tasks Manual.
- *Default Output Directory Changed:* Wic's default output directory is

View File

@@ -264,7 +264,7 @@ The following are additional changes:
will trigger a warning during ``do_rootfs``.
For more information, see the
":ref:`dev-manual/common-tasks:post-installation scripts`"
":ref:`dev-manual/new-recipe:post-installation scripts`"
section in the Yocto Project Development Tasks Manual.
- The ``elf`` image type has been removed. This image type was removed

View File

@@ -368,7 +368,7 @@ Any failure of a ``pkg_postinst()`` script (including exit 1) triggers
an error during the :ref:`ref-tasks-rootfs` task.
For more information on post-installation behavior, see the
":ref:`dev-manual/common-tasks:post-installation scripts`"
":ref:`dev-manual/new-recipe:post-installation scripts`"
section in the Yocto Project Development Tasks Manual.
.. _migration-2.6-python-3-profile-guided-optimizations:

View File

@@ -238,7 +238,7 @@ Warnings will now be shown at ``do_package_qa`` time in the following
circumstances:
- A recipe installs ``.desktop`` files containing ``MimeType`` keys but
does not inherit the new ``mime-xdg`` class
does not inherit the new :ref:`mime-xdg <ref-classes-mime-xdg>` class
- A recipe installs ``.xml`` files into ``${datadir}/mime/packages``
but does not inherit the :ref:`mime <ref-classes-mime>` class

View File

@@ -17,3 +17,5 @@ Release 4.0 (kirkstone)
release-notes-4.0.8
release-notes-4.0.9
release-notes-4.0.10
release-notes-4.0.11
release-notes-4.0.12

View File

@@ -0,0 +1,214 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Release notes for Yocto-4.0.11 (Kirkstone)
------------------------------------------
Security Fixes in Yocto-4.0.11
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- cups: Fix :cve:`2023-32324`
- curl: Fix :cve:`2023-28319`, :cve:`2023-28320`, :cve:`2023-28321` and :cve:`2023-28322`
- git: Ignore :cve:`2023-25815`
- go: Fix :cve:`2023-24539` and :cve:`2023-24540`
- nasm: Fix :cve:`2022-46457`
- openssh: Fix :cve:`2023-28531`
- openssl: Fix :cve:`2023-1255` and :cve:`2023-2650`
- perl: Fix :cve:`2023-31484`
- python3-requests: Fix for :cve:`2023-32681`
- sysstat: Fix :cve:`2023-33204`
- vim: Fix :cve:`2023-2426`
- webkitgtk: fix :cve:`2022-42867`, :cve:`2022-46691`, :cve:`2022-46699` and :cve:`2022-46700`
Fixes in Yocto-4.0.11
~~~~~~~~~~~~~~~~~~~~~
- Revert "docs: conf.py: fix cve extlinks caption for sphinx <4.0"
- Revert "ipk: Decode byte data to string in manifest handling"
- avahi: fix D-Bus introspection
- build-appliance-image: Update to kirkstone head revision
- conf.py: add macro for Mitre CVE links
- conf: add nice level to the hash config ignred variables
- cpio: Fix wrong CRC with ASCII CRC for large files
- cve-update-nvd2-native: added the missing http import
- cve-update-nvd2-native: new CVE database fetcher
- dhcpcd: use git instead of tarballs
- e2fsprogs: fix ptest bug for second running
- gcc-runtime: Use static dummy libstdc++
- glibc: stable 2.35 branch updates (cbceb903c4d7)
- go.bbclass: don't use test to check output from ls
- gstreamer1.0: Upgrade to 1.20.6
- iso-codes: Upgrade to 4.15.0
- kernel-devicetree: allow specification of dtb directory
- kernel-devicetree: make shell scripts posix compliant
- kernel-devicetree: recursively search for dtbs
- kernel: don't force PAHOLE=false
- kmscube: Correct :term:`DEPENDS` to avoid overwrite
- lib/terminal.py: Add urxvt terminal
- license.bbclass: Include :term:`LICENSE` in the output when it fails to parse
- linux-yocto/5.10: Upgrade to v5.10.180
- linux-yocto/5.15: Upgrade to v5.15.113
- llvm: backport a fix for build with gcc-13
- maintainers.inc: Fix email address typo
- maintainers.inc: Move repo to unassigned
- migration-guides: add release notes for 4.0.10
- migration-guides: use new cve_mitre macro
- nghttp2: Deleted the entries for -client and -server, and removed a dependency on them from the main package.
- oeqa/selftest/cases/devtool.py: skip all tests require folder a git repo
- openssh: Remove BSD-4-clause contents completely from codebase
- openssl: Upgrade to 3.0.9
- overview-manual: concepts.rst: Fix a typo
- p11-kit: add native to :term:`BBCLASSEXTEND`
- package: enable recursion on file globs
- package_manager/ipk: fix config path generation in _create_custom_config()
- piglit: Add :term:`PACKAGECONFIG` for glx and opencl
- piglit: Add missing glslang dependencies
- piglit: Fix build time dependency
- poky.conf: bump version for 4.0.11
- profile-manual: fix blktrace remote usage instructions
- quilt: Fix merge.test race condition
- ref-manual: add clarification for :term:`SRCREV`
- selftest/reproducible: Allow native/cross reuse in test
- staging.bbclass: do not add extend_recipe_sysroot to prefuncs of prepare_recipe_sysroot
- systemd-networkd: backport fix for rm unmanaged wifi
- systemd-systemctl: fix instance template WantedBy symlink construction
- systemd-systemctl: support instance expansion in WantedBy
- uninative: Upgrade to 3.10 to support gcc 13
- uninative: Upgrade to 4.0 to include latest gcc 13.1.1
- vim: Upgrade to 9.0.1527
- waffle: Upgrade to 1.7.2
- weston: add xwayland to :term:`DEPENDS` for :term:`PACKAGECONFIG` xwayland
Known Issues in Yocto-4.0.11
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- N/A
Contributors to Yocto-4.0.11
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Alexander Kanavin
- Andrew Jeffery
- Archana Polampalli
- Bhabu Bindu
- Bruce Ashfield
- C. Andy Martin
- Chen Qi
- Daniel Ammann
- Deepthi Hemraj
- Ed Beroset
- Eero Aaltonen
- Enrico Jörns
- Hannu Lounento
- Hitendra Prajapati
- Ian Ray
- Jan Luebbe
- Jan Vermaete
- Khem Raj
- Lee Chee Yang
- Lei Maohui
- Lorenzo Arena
- Marek Vasut
- Marta Rybczynska
- Martin Jansa
- Martin Siegumfeldt
- Michael Halstead
- Michael Opdenacker
- Ming Liu
- Narpat Mali
- Omkar Patil
- Pablo Saavedra
- Pavel Zhukov
- Peter Kjellerstedt
- Peter Marko
- Qiu Tingting
- Quentin Schulz
- Randolph Sapp
- Randy MacLeod
- Ranjitsinh Rathod
- Richard Purdie
- Riyaz Khan
- Sakib Sajal
- Sanjay Chitroda
- Soumya Sambu
- Steve Sakoman
- Thomas Roos
- Tom Hochstein
- Vivek Kumbhar
- Wang Mingyu
- Yogita Urade
- Zoltan Boszormenyi
Repositories / Downloads for Yocto-4.0.11
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poky
- Repository Location: :yocto_git:`/poky`
- Branch: :yocto_git:`kirkstone </poky/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.11 </poky/log/?h=yocto-4.0.11>`
- Git Revision: :yocto_git:`fc697fe87412b9b179ae3a68d266ace85bb1fcc6 </poky/commit/?id=fc697fe87412b9b179ae3a68d266ace85bb1fcc6>`
- Release Artefact: poky-fc697fe87412b9b179ae3a68d266ace85bb1fcc6
- sha: d42ab1b76b9d8ab164d86dc0882c908658f6b5be0742b13a71531068f6a5ee98
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.11/poky-fc697fe87412b9b179ae3a68d266ace85bb1fcc6.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.11/poky-fc697fe87412b9b179ae3a68d266ace85bb1fcc6.tar.bz2
openembedded-core
- Repository Location: :oe_git:`/openembedded-core`
- Branch: :oe_git:`kirkstone </openembedded-core/log/?h=kirkstone>`
- Tag: :oe_git:`yocto-4.0.11 </openembedded-core/log/?h=yocto-4.0.11>`
- Git Revision: :oe_git:`7949e786cf8e50f716ff1f1c4797136637205e0c </openembedded-core/commit/?id=7949e786cf8e50f716ff1f1c4797136637205e0c>`
- Release Artefact: oecore-7949e786cf8e50f716ff1f1c4797136637205e0c
- sha: 3bda3f7d15961bad5490faf3194709528591a97564b5eae3da7345b63be20334
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.11/oecore-7949e786cf8e50f716ff1f1c4797136637205e0c.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.11/oecore-7949e786cf8e50f716ff1f1c4797136637205e0c.tar.bz2
meta-mingw
- Repository Location: :yocto_git:`/meta-mingw`
- Branch: :yocto_git:`kirkstone </meta-mingw/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.11 </meta-mingw/log/?h=yocto-4.0.11>`
- Git Revision: :yocto_git:`a90614a6498c3345704e9611f2842eb933dc51c1 </meta-mingw/commit/?id=a90614a6498c3345704e9611f2842eb933dc51c1>`
- Release Artefact: meta-mingw-a90614a6498c3345704e9611f2842eb933dc51c1
- sha: 49f9900bfbbc1c68136f8115b314e95d0b7f6be75edf36a75d9bcd1cca7c6302
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.11/meta-mingw-a90614a6498c3345704e9611f2842eb933dc51c1.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.11/meta-mingw-a90614a6498c3345704e9611f2842eb933dc51c1.tar.bz2
meta-gplv2
- Repository Location: :yocto_git:`/meta-gplv2`
- Branch: :yocto_git:`kirkstone </meta-gplv2/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.11 </meta-gplv2/log/?h=yocto-4.0.11>`
- Git Revision: :yocto_git:`d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a </meta-gplv2/commit/?id=d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a>`
- Release Artefact: meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a
- sha: c386f59f8a672747dc3d0be1d4234b6039273d0e57933eb87caa20f56b9cca6d
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.11/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.11/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
bitbake
- Repository Location: :oe_git:`/bitbake`
- Branch: :oe_git:`2.0 </bitbake/log/?h=2.0>`
- Tag: :oe_git:`yocto-4.0.11 </bitbake/log/?h=yocto-4.0.11>`
- Git Revision: :oe_git:`0c6f86b60cfba67c20733516957c0a654eb2b44c </bitbake/commit/?id=0c6f86b60cfba67c20733516957c0a654eb2b44c>`
- Release Artefact: bitbake-0c6f86b60cfba67c20733516957c0a654eb2b44c
- sha: 4caa94ee4d644017b0cc51b702e330191677f7d179018cbcec8b1793949ebc74
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.11/bitbake-0c6f86b60cfba67c20733516957c0a654eb2b44c.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.11/bitbake-0c6f86b60cfba67c20733516957c0a654eb2b44c.tar.bz2
yocto-docs
- Repository Location: :yocto_git:`/yocto-docs`
- Branch: :yocto_git:`kirkstone </yocto-docs/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.11 </yocto-docs/log/?h=yocto-4.0.11>`
- Git Revision: :yocto_git:`6d16d2bde0aa32276a035ee49703e6eea7c7b29a </yocto-docs/commit/?id=6d16d2bde0aa32276a035ee49703e6eea7c7b29a>`

View File

@@ -0,0 +1,277 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Release notes for Yocto-4.0.12 (Kirkstone)
------------------------------------------
Security Fixes in Yocto-4.0.12
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- bind: Fix :cve:`2023-2828` and :cve:`2023-2911`
- cups: Fix :cve:`2023-34241`
- curl: Added :cve:`2023-28320` Follow-up patch
- dbus: Fix :cve:`2023-34969`
- dmidecode: fix :cve:`2023-30630`
- ghostscript: fix :cve:`2023-36664`
- go: fix :cve_mitre:`2023-24531`, :cve:`2023-24536`, :cve:`2023-29400`, :cve:`2023-29402`, :cve:`2023-29404`, :cve:`2023-29405` and :cve:`2023-29406`
- libarchive: Ignore :cve:`2023-30571`
- libcap: Fix :cve:`2023-2602` and :cve:`2023-2603`
- libjpeg-turbo: Fix :cve:`2023-2804`
- libpcre2: Fix :cve:`2022-41409`
- libtiff: fix :cve:`2023-26965`
- libwebp: Fix :cve:`2023-1999`
- libx11: Fix :cve:`2023-3138`
- libxpm: Fix :cve:`2022-44617`
- ninja: Ignore :cve:`2021-4336`
- openssh: Fix :cve:`2023-38408`
- openssl: Fix :cve:`2023-2975`, :cve:`2023-3446` and :cve:`2023-3817`
- perl: Fix :cve:`2023-31486`
- python3: Ignore :cve:`2023-36632`
- qemu: Fix :cve:`2023-0330`, :cve_mitre:`2023-2861`, :cve_mitre:`2023-3255` and :cve_mitre:`2023-3301`
- sqlite3: Fix :cve:`2023-36191`
- tiff: Fix :cve:`2023-0795`, :cve:`2023-0796`, :cve:`2023-0797`, :cve:`2023-0798`, :cve:`2023-0799`, :cve:`2023-25433`, :cve:`2023-25434` and :cve:`2023-25435`
- vim: :cve:`2023-2609` and :cve:`2023-2610`
Fixes in Yocto-4.0.12
~~~~~~~~~~~~~~~~~~~~~
- babeltrace2: Always use BFD linker when building tests with ld-is-lld distro feature
- babeltrace2: upgrade to 2.0.5
- bitbake.conf: add unzstd in :term:`HOSTTOOLS`
- bitbake: bitbake-layers: initialize tinfoil before registering command line arguments
- bitbake: runqueue: Fix deferred task/multiconfig race issue
- blktrace: ask for python3 specifically
- build-appliance-image: Update to kirkstone head revision
- cmake: Fix CMAKE_SYSTEM_PROCESSOR setting for SDK
- connman: fix warning by specifying runstatedir at configure time
- cpio: Replace fix wrong CRC with ASCII CRC for large files with upstream backport
- cve-update-nvd2-native: actually use API keys
- cve-update-nvd2-native: always pass str for json.loads()
- cve-update-nvd2-native: fix cvssV3 metrics
- cve-update-nvd2-native: handle all configuration nodes, not just first
- cve-update-nvd2-native: increase retry count
- cve-update-nvd2-native: log a little more
- cve-update-nvd2-native: retry all errors and sleep between retries
- cve-update-nvd2-native: use exact times, don't truncate
- dbus: upgrade to 1.14.8
- devtool: Fix the wrong variable in srcuri_entry
- diffutils: upgrade to 3.10
- docs: ref-manual: terms: fix typos in :term:`SPDX` term
- fribidi: upgrade to 1.0.13
- gcc: upgrade to v11.4
- gcc-testsuite: Fix ppc cpu specification
- gcc: don't pass --enable-standard-branch-protection
- gcc: fix runpath errors in cc1 binary
- grub: submit determinism.patch upstream
- image_types: Fix reproducible builds for initramfs and UKI img
- kernel: add missing path to search for debug files
- kmod: remove unused ptest.patch
- layer.conf: Add missing dependency exclusion
- libassuan: upgrade to 2.5.6
- libksba: upgrade to 1.6.4
- libpng: Add ptest for libpng
- libxcrypt: fix build with perl-5.38 and use master branch
- libxcrypt: fix hard-coded ".so" extension
- libxpm: upgrade to 3.5.16
- linux-firmware: upgrade to 20230515
- linux-yocto/5.10: cfg: fix DECNET configuration warning
- linux-yocto/5.10: update to v5.10.185
- linux-yocto/5.15: cfg: fix DECNET configuration warning
- linux-yocto/5.15: update to v5.15.120
- logrotate: Do not create logrotate.status file
- lttng-ust: upgrade to 2.13.6
- machine/arch-arm64: add -mbranch-protection=standard
- maintainers.inc: correct Carlos Rafael Giani's email address
- maintainers.inc: correct unassigned entries
- maintainers.inc: unassign Adrian Bunk from wireless-regdb
- maintainers.inc: unassign Alistair Francis from opensbi
- maintainers.inc: unassign Andreas Müller from itstool entry
- maintainers.inc: unassign Pascal Bach from cmake entry
- maintainers.inc: unassign Ricardo Neri from ovmf
- maintainers.inc: unassign Richard Weinberger from erofs-utils entry
- mdadm: fix 07revert-inplace ptest
- mdadm: fix segfaults when running ptests
- mdadm: fix util-linux ptest dependency
- mdadm: skip running known broken ptests
- meson.bbclass: Point to llvm-config from native sysroot
- meta: lib: oe: npm_registry: Add more safe caracters
- migration-guides: add release notes for 4.0.11
- minicom: remove unused patch files
- mobile-broadband-provider-info: upgrade to 20230416
- oe-depends-dot: Handle new format for task-depends.dot
- oeqa/runtime/cases/rpm: fix wait_for_no_process_for_user failure case
- oeqa/selftest/bbtests: add non-existent prefile/postfile tests
- oeqa/selftest/devtool: add unit test for "devtool add -b"
- openssl: Upgrade to 3.0.10
- openssl: add PERLEXTERNAL path to test its existence
- openssl: use a glob on the PERLEXTERNAL to track updates on the path
- package.bbclass: moving field data process before variable process in process_pkgconfig
- pm-utils: fix multilib conflictions
- poky.conf: bump version for 4.0.12
- psmisc: Set :term:`ALTERNATIVE` for pstree to resolve conflict with busybox
- pybootchartgui: show elapsed time for each task
- python3: fix missing comma in get_module_deps3.py
- python3: upgrade to 3.10.12
- recipetool: Fix inherit in created -native* recipes
- ref-manual: add LTS and Mixin terms
- ref-manual: document image-specific variant of :term:`INCOMPATIBLE_LICENSE`
- ref-manual: release-process: update for LTS releases
- rust-llvm: backport a fix for build with gcc-13
- scripts/runqemu: allocate unfsd ports in a way that doesn't race or clash with unrelated processes
- scripts/runqemu: split lock dir creation into a reusable function
- sdk.py: error out when moving file fails
- sdk.py: fix moving dnf contents
- selftest reproducible.py: support different build targets
- selftest/license: Exclude from world
- selftest/reproducible: Allow chose the package manager
- serf: upgrade to 1.3.10
- strace: Disable failing test
- strace: Merge two similar patches
- strace: Update patches/tests with upstream fixes
- sysfsutils: fetch a supported fork from github
- systemd-systemctl: fix errors in instance name expansion
- systemd: Backport nspawn: make sure host root can write to the uidmapped mounts we prepare for the container payload
- tzdata: upgrade to 2023c
- uboot-extlinux-config.bbclass: fix old override syntax in comment
- unzip: fix configure check for cross compilation
- useradd-staticids.bbclass: improve error message
- util-linux: add alternative links for ipcs,ipcrm
- v86d: Improve kernel dependency
- vim: upgrade to 9.0.1592
- wget: upgrade to 1.21.4
- wic: Add dependencies for erofs-utils
- wireless-regdb: upgrade to 2023.05.03
- xdpyinfo: upgrade to 1.3.4
- zip: fix configure check by using _Static_assert
Known Issues in Yocto-4.0.12
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- N/A
Contributors to Yocto-4.0.12
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Alberto Planas
- Alexander Kanavin
- Alexander Sverdlin
- Andrej Valek
- Archana Polampalli
- BELOUARGA Mohamed
- Benjamin Bouvier
- Bruce Ashfield
- Charlie Wu
- Chen Qi
- Etienne Cordonnier
- Fabien Mahot
- Frieder Paape
- Frieder Schrempf
- Heiko Thole
- Hitendra Prajapati
- Jermain Horsman
- Jose Quaresma
- Kai Kang
- Khem Raj
- Lee Chee Yang
- Marc Ferland
- Marek Vasut
- Martin Jansa
- Mauro Queiros
- Michael Opdenacker
- Mikko Rapeli
- Nikhil R
- Ovidiu Panait
- Peter Marko
- Poonam Jadhav
- Quentin Schulz
- Richard Purdie
- Ross Burton
- Rusty Howell
- Sakib Sajal
- Soumya Sambu
- Steve Sakoman
- Sundeep KOKKONDA
- Tim Orling
- Tom Hochstein
- Trevor Gamblin
- Vijay Anusuri
- Vivek Kumbhar
- Wang Mingyu
- Xiangyu Chen
- Yoann Congal
- Yogita Urade
- Yuta Hayama
Repositories / Downloads for Yocto-4.0.12
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poky
- Repository Location: :yocto_git:`/poky`
- Branch: :yocto_git:`kirkstone </poky/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.12 </poky/log/?h=yocto-4.0.12>`
- Git Revision: :yocto_git:`d6b8790370500b99ca11f0d8a05c39b661ab2ba6 </poky/commit/?id=d6b8790370500b99ca11f0d8a05c39b661ab2ba6>`
- Release Artefact: poky-d6b8790370500b99ca11f0d8a05c39b661ab2ba6
- sha: 35f0390e0c5a12f403ed471c0b1254c13cbb9d7c7b46e5a3538e63e36c1ac280
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.12/poky-d6b8790370500b99ca11f0d8a05c39b661ab2ba6.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.12/poky-d6b8790370500b99ca11f0d8a05c39b661ab2ba6.tar.bz2
openembedded-core
- Repository Location: :oe_git:`/openembedded-core`
- Branch: :oe_git:`kirkstone </openembedded-core/log/?h=kirkstone>`
- Tag: :oe_git:`yocto-4.0.12 </openembedded-core/log/?h=yocto-4.0.12>`
- Git Revision: :oe_git:`e1a604db8d2cf8782038b4016cc2e2052467333b </openembedded-core/commit/?id=e1a604db8d2cf8782038b4016cc2e2052467333b>`
- Release Artefact: oecore-e1a604db8d2cf8782038b4016cc2e2052467333b
- sha: 8b302eb3f3ffe5643f88bc6e4ae8f9a5cda63544d67e04637ecc4197e9750a1d
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.12/oecore-e1a604db8d2cf8782038b4016cc2e2052467333b.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.12/oecore-e1a604db8d2cf8782038b4016cc2e2052467333b.tar.bz2
meta-mingw
- Repository Location: :yocto_git:`/meta-mingw`
- Branch: :yocto_git:`kirkstone </meta-mingw/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.12 </meta-mingw/log/?h=yocto-4.0.12>`
- Git Revision: :yocto_git:`a90614a6498c3345704e9611f2842eb933dc51c1 </meta-mingw/commit/?id=a90614a6498c3345704e9611f2842eb933dc51c1>`
- Release Artefact: meta-mingw-a90614a6498c3345704e9611f2842eb933dc51c1
- sha: 49f9900bfbbc1c68136f8115b314e95d0b7f6be75edf36a75d9bcd1cca7c6302
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.12/meta-mingw-a90614a6498c3345704e9611f2842eb933dc51c1.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.12/meta-mingw-a90614a6498c3345704e9611f2842eb933dc51c1.tar.bz2
meta-gplv2
- Repository Location: :yocto_git:`/meta-gplv2`
- Branch: :yocto_git:`kirkstone </meta-gplv2/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.12 </meta-gplv2/log/?h=yocto-4.0.12>`
- Git Revision: :yocto_git:`d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a </meta-gplv2/commit/?id=d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a>`
- Release Artefact: meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a
- sha: c386f59f8a672747dc3d0be1d4234b6039273d0e57933eb87caa20f56b9cca6d
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.12/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.12/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
bitbake
- Repository Location: :oe_git:`/bitbake`
- Branch: :oe_git:`2.0 </bitbake/log/?h=2.0>`
- Tag: :oe_git:`yocto-4.0.12 </bitbake/log/?h=yocto-4.0.12>`
- Git Revision: :oe_git:`41b6684489d0261753344956042be2cc4adb0159 </bitbake/commit/?id=41b6684489d0261753344956042be2cc4adb0159>`
- Release Artefact: bitbake-41b6684489d0261753344956042be2cc4adb0159
- sha: efa2b1c4d0be115ed3960750d1e4ed958771b2db6d7baee2d13ad386589376e8
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.12/bitbake-41b6684489d0261753344956042be2cc4adb0159.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.12/bitbake-41b6684489d0261753344956042be2cc4adb0159.tar.bz2
yocto-docs
- Repository Location: :yocto_git:`/yocto-docs`
- Branch: :yocto_git:`kirkstone </yocto-docs/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.12 </yocto-docs/log/?h=yocto-4.0.12>`
- Git Revision: :yocto_git:`4dfef81ac6164764c6541e39a9fef81d49227096 </yocto-docs/commit/?id=4dfef81ac6164764c6541e39a9fef81d49227096>`

View File

@@ -34,7 +34,7 @@ itself is of various types:
BitBake knows how to combine multiple data sources together and refers
to each data source as a layer. For information on layers, see the
":ref:`dev-manual/common-tasks:understanding and creating layers`"
":ref:`dev-manual/layers:understanding and creating layers`"
section of the Yocto Project Development Tasks Manual.
Following are some brief details on these core components. For
@@ -149,7 +149,7 @@ Conforming to a known structure allows BitBake to make assumptions
during builds on where to find types of metadata. You can find
procedures and learn about tools (i.e. ``bitbake-layers``) for creating
layers suitable for the Yocto Project in the
":ref:`dev-manual/common-tasks:understanding and creating layers`"
":ref:`dev-manual/layers:understanding and creating layers`"
section of the Yocto Project Development Tasks Manual.
OpenEmbedded Build System Concepts
@@ -308,7 +308,7 @@ during the build. By default, the layers listed in this file include
layers minimally needed by the build system. However, you must manually
add any custom layers you have created. You can find more information on
working with the ``bblayers.conf`` file in the
":ref:`dev-manual/common-tasks:enabling your layer`"
":ref:`dev-manual/layers:enabling your layer`"
section in the Yocto Project Development Tasks Manual.
The files ``site.conf`` and ``auto.conf`` are not created by the
@@ -408,7 +408,7 @@ a ``README`` file as good practice and especially if the layer is to be
distributed, a configuration directory, and recipe directories. You can
learn about the general structure for layers used with the Yocto Project
in the
":ref:`dev-manual/common-tasks:creating your own layer`"
":ref:`dev-manual/layers:creating your own layer`"
section in the
Yocto Project Development Tasks Manual. For a general discussion on
layers and the many layers from which you can draw, see the
@@ -814,7 +814,7 @@ For more information on how the source directories are created, see the
":ref:`overview-manual/concepts:source fetching`" section. For
more information on how to create patches and how the build system
processes patches, see the
":ref:`dev-manual/common-tasks:patching code`"
":ref:`dev-manual/new-recipe:patching code`"
section in the
Yocto Project Development Tasks Manual. You can also see the
":ref:`sdk-manual/extensible:use \`\`devtool modify\`\` to modify the source of an existing component`"
@@ -1014,8 +1014,8 @@ data files are deleted from the root filesystem. As part of the final
stage of package installation, post installation scripts that are part
of the packages are run. Any scripts that fail to run on the build host
are run on the target when the target system is first booted. If you are
using a
:ref:`read-only root filesystem <dev-manual/common-tasks:creating a read-only root filesystem>`,
using a
:ref:`read-only root filesystem <dev-manual/read-only-rootfs:creating a read-only root filesystem>`,
all the post installation scripts must succeed on the build host during
the package installation phase since the root filesystem on the target
is read-only.
@@ -1174,7 +1174,7 @@ varflag. If some other task depends on such a task, then that task will
also always be considered out of date, which might not be what you want.
For details on how to view information about a task's signature, see the
":ref:`dev-manual/common-tasks:viewing task variable dependencies`"
":ref:`dev-manual/debugging:viewing task variable dependencies`"
section in the Yocto Project Development Tasks Manual.
Setscene Tasks and Shared State
@@ -1603,15 +1603,15 @@ them if they are deemed to be valid.
the shared state packages. Consequently, there are considerations that
affect maintaining shared state feeds. For information on how the
build system works with packages and can track incrementing :term:`PR`
information, see the ":ref:`dev-manual/common-tasks:automatically incrementing a package version number`"
information, see the ":ref:`dev-manual/packages:automatically incrementing a package version number`"
section in the Yocto Project Development Tasks Manual.
- The code in the build system that supports incremental builds is
complex. For techniques that help you work around issues
related to shared state code, see the
":ref:`dev-manual/common-tasks:viewing metadata used to create the input signature of a shared state task`"
":ref:`dev-manual/debugging:viewing metadata used to create the input signature of a shared state task`"
and
":ref:`dev-manual/common-tasks:invalidating shared state to force a task to run`"
":ref:`dev-manual/debugging:invalidating shared state to force a task to run`"
sections both in the Yocto Project Development Tasks Manual.
The rest of this section goes into detail about the overall incremental

View File

@@ -94,7 +94,7 @@ are several ways of working in the Yocto Project environment:
through your Linux distribution and the Yocto Project.
For a general flow of the build procedures, see the
":ref:`dev-manual/common-tasks:building a simple image`"
":ref:`dev-manual/building:building a simple image`"
section in the Yocto Project Development Tasks Manual.
- *Board Support Package (BSP) Development:* Development of BSPs
@@ -244,8 +244,8 @@ and so forth.
For information on finding out who is responsible for (maintains) a
particular area of code in the Yocto Project, see the
":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
section of the Yocto Project Development Tasks Manual.
":doc:`../contributor-guide/identify-component`"
section of the Yocto Project and OpenEmbedded Contributor Guide.
The Yocto Project ``poky`` Git repository also has an upstream
contribution Git repository named ``poky-contrib``. You can see all the
@@ -276,8 +276,8 @@ push them into the "contrib" area and subsequently request that the
maintainer include them into an upstream branch. This process is called
"submitting a patch" or "submitting a change." For information on
submitting patches and changes, see the
":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
section in the Yocto Project Development Tasks Manual.
":doc:`../contributor-guide/submit-changes`" section in the Yocto Project
and OpenEmbedded Contributor Guide.
In summary, there is a single point of entry for changes into the
development branch of the Git repository, which is controlled by the
@@ -340,11 +340,10 @@ Book <https://book.git-scm.com>`__.
software on which to develop. The Yocto Project has two scripts named
``create-pull-request`` and ``send-pull-request`` that ship with the
release to facilitate this workflow. You can find these scripts in
the ``scripts`` folder of the
:term:`Source Directory`. For information
the ``scripts`` folder of the :term:`Source Directory`. For information
on how to use these scripts, see the
":ref:`dev-manual/common-tasks:using scripts to push a change upstream and request a pull`"
section in the Yocto Project Development Tasks Manual.
":ref:`contributor-guide/submit-changes:using scripts to push a change upstream and request a pull`"
section in the Yocto Project and OpenEmbedded Contributor Guide.
- *Patch Workflow:* This workflow allows you to notify the maintainer
through an email that you have a change (or patch) you would like
@@ -352,8 +351,8 @@ Book <https://book.git-scm.com>`__.
this type of change, you format the patch and then send the email
using the Git commands ``git format-patch`` and ``git send-email``.
For information on how to use these scripts, see the
":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
section in the Yocto Project Development Tasks Manual.
":doc:`../contributor-guide/submit-changes`" section in the Yocto Project
and OpenEmbedded Contributor Guide.
Git
===
@@ -655,5 +654,5 @@ Project uses in the ``meta/files/common-licenses`` directory in your
For information that can help you maintain compliance with various open
source licensing during the lifecycle of a product created using the
Yocto Project, see the
":ref:`dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle`"
":ref:`dev-manual/licenses:maintaining open source license compliance during your product's lifecycle`"
section in the Yocto Project Development Tasks Manual.

View File

@@ -129,7 +129,7 @@ Here are features and advantages of the Yocto Project:
arbitrarily include packages.
- *License Manifest:* The Yocto Project provides a :ref:`license
manifest <dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle>`
manifest <dev-manual/licenses:maintaining open source license compliance during your product's lifecycle>`
for review by people who need to track the use of open source
licenses (e.g. legal teams).
@@ -225,7 +225,7 @@ your Metadata, the easier it is to cope with future changes.
- Layers support the inclusion of technologies, hardware components,
and software components. The :ref:`Yocto Project
Compatible <dev-manual/common-tasks:making sure your layer is compatible with yocto project>`
Compatible <dev-manual/layers:making sure your layer is compatible with yocto project>`
designation provides a minimum level of standardization that
contributes to a strong ecosystem. "YP Compatible" is applied to
appropriate products and software components such as BSPs, other
@@ -269,7 +269,7 @@ of the ``poky`` repository, you will see several layers: ``meta``,
layer.
For procedures on how to create layers, see the
":ref:`dev-manual/common-tasks:understanding and creating layers`"
":ref:`dev-manual/layers:understanding and creating layers`"
section in the Yocto Project Development Tasks Manual.
Components and Tools
@@ -351,7 +351,7 @@ Yocto Project:
(BitBake and
OE-Core) automatically generates upgrades for recipes that are based
on new versions of the recipes published upstream. See
:ref:`dev-manual/common-tasks:using the auto upgrade helper (auh)`
:ref:`dev-manual/upgrading-recipes:using the auto upgrade helper (auh)`
for how to set it up.
- *Recipe Reporting System:* The Recipe Reporting System tracks recipe
@@ -781,7 +781,7 @@ helpful for getting started:
Yocto Project.
For more detailed information on layers, see the
":ref:`dev-manual/common-tasks:understanding and creating layers`"
":ref:`dev-manual/layers:understanding and creating layers`"
section in the Yocto Project Development Tasks Manual. For a
discussion specifically on BSP Layers, see the
":ref:`bsp-guide/bsp:bsp layers`" section in the Yocto

View File

@@ -67,8 +67,8 @@ inherit the ``allarch`` class.
The ``archiver`` class supports releasing source code and other
materials with the binaries.
For more details on the source archiver, see the
":ref:`dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle`"
For more details on the source :ref:`ref-classes-archiver`, see the
":ref:`dev-manual/licenses:maintaining open source license compliance during your product's lifecycle`"
section in the Yocto Project Development Tasks Manual. You can also see
the :term:`ARCHIVER_MODE` variable for information
about the variable flags (varflags) that help control archive creation.
@@ -86,7 +86,7 @@ standardization. This class defines a set of tasks (e.g. ``configure``,
should usually be enough to define a few standard variables and then
simply ``inherit autotools``. These classes can also work with software
that emulates Autotools. For more information, see the
":ref:`dev-manual/common-tasks:autotooled package`" section
":ref:`dev-manual/new-recipe:building an autotooled package`" section
in the Yocto Project Development Tasks Manual.
By default, the ``autotools*`` classes use out-of-tree builds (i.e.
@@ -216,7 +216,7 @@ The ``buildhistory`` class records a history of build output metadata,
which can be used to detect possible regressions as well as used for
analysis of the build output. For more information on using Build
History, see the
":ref:`dev-manual/common-tasks:maintaining build output quality`"
":ref:`dev-manual/build-quality:maintaining build output quality`"
section in the Yocto Project Development Tasks Manual.
.. _ref-classes-buildstats:
@@ -384,7 +384,7 @@ by the :term:`SPDX_PRETTY`, :term:`SPDX_ARCHIVE_PACKAGED`,
:term:`SPDX_ARCHIVE_SOURCES` and :term:`SPDX_INCLUDE_SOURCES` variables.
See the description of these variables and the
":ref:`dev-manual/common-tasks:creating a software bill of materials`"
":ref:`dev-manual/sbom:creating a software bill of materials`"
section in the Yocto Project Development Manual for more details.
.. _ref-classes-cross:
@@ -478,7 +478,7 @@ These can only be detected by reviewing the details of the issues and iterating
and following what happens in other Linux distributions and in the greater open source community.
You will find some more details in the
":ref:`dev-manual/common-tasks:checking for vulnerabilities`"
":ref:`dev-manual/vulnerabilities:checking for vulnerabilities`"
section in the Development Tasks Manual.
.. _ref-classes-debian:
@@ -517,10 +517,10 @@ staging the files from :term:`DEPLOYDIR` to :term:`DEPLOY_DIR_IMAGE`.
``devshell.bbclass``
====================
The ``devshell`` class adds the ``do_devshell`` task. Distribution
policy dictates whether to include this class. See the ":ref:`dev-manual/common-tasks:using a development shell`"
The :ref:`ref-classes-devshell` class adds the :ref:`ref-tasks-devshell` task. Distribution
policy dictates whether to include this class. See the ":ref:`dev-manual/development-shell:using a development shell`"
section in the Yocto Project Development Tasks Manual for more
information about using ``devshell``.
information about using :ref:`ref-classes-devshell`.
.. _ref-classes-devupstream:
@@ -591,9 +591,8 @@ See these variables for more information:
For more information on the ``externalsrc`` class, see the comments in
``meta/classes/externalsrc.bbclass`` in the :term:`Source Directory`.
For information on how to use the
``externalsrc`` class, see the
":ref:`dev-manual/common-tasks:building software from an external source`"
For information on how to use the :ref:`ref-classes-externalsrc` class, see the
":ref:`dev-manual/building:building software from an external source`"
section in the Yocto Project Development Tasks Manual.
.. _ref-classes-extrausers:
@@ -942,7 +941,7 @@ then one or more image files are created.
install into the image.
For information on customizing images, see the
":ref:`dev-manual/common-tasks:customizing images`" section
":ref:`dev-manual/customizing-images:customizing images`" section
in the Yocto Project Development Tasks Manual. For information on how
images are created, see the
":ref:`overview-manual/concepts:images`" section in the
@@ -1330,7 +1329,7 @@ packages such as ``kernel-vmlinux``.
The ``kernel`` class contains logic that allows you to embed an initial
RAM filesystem (initramfs) image when you build the kernel image. For
information on how to build an initramfs, see the
":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`" section in
":ref:`dev-manual/building:building an initial ram filesystem (Initramfs) image`" section in
the Yocto Project Development Tasks Manual.
Various other classes are used by the ``kernel`` and ``module`` classes
@@ -1537,6 +1536,16 @@ messages for various BitBake severity levels (i.e. ``bbplain``,
This class is enabled by default since it is inherited by the ``base``
class.
.. _ref-classes-meson:
``meson.bbclass``
=================
The :ref:`ref-classes-meson` class allows to create recipes that build software
using the `Meson <https://mesonbuild.com/>`__ build system. You can use
the :term:`MESON_BUILDTYPE` and :term:`EXTRA_OEMESON` variables to specify
additional configuration options to be passed using the ``meson`` command line.
.. _ref-classes-metadata_scm:
``metadata_scm.bbclass``
@@ -1568,6 +1577,27 @@ The ``mime`` class generates the proper post-install and post-remove
These scriptlets call ``update-mime-database`` to add the MIME types to
the shared database.
.. _ref-classes-mime-xdg:
``mime-xdg.bbclass``
====================
The :ref:`mime-xdg <ref-classes-mime-xdg>` class generates the proper
post-install and post-remove (postinst/postrm) scriptlets for packages
that install ``.desktop`` files containing ``MimeType`` entries.
These scriptlets call ``update-desktop-database`` to add the MIME types
to the database of MIME types handled by desktop files.
Thanks to this class, when users open a file through a file browser
on recently created images, they don't have to choose the application
to open the file from the pool of all known applications, even the ones
that cannot open the selected file.
If you have recipes installing their ``.desktop`` files as absolute
symbolic links, the detection of such files cannot be done by the current
implementation of this class. In this case, you have to add the corresponding
package names to the :term:`MIME_XDG_PACKAGES` variable.
.. _ref-classes-mirrors:
``mirrors.bbclass``
@@ -1619,7 +1649,7 @@ different target optimizations or target architectures and installing
them side-by-side in the same image.
For more information on using the Multilib feature, see the
":ref:`dev-manual/common-tasks:combining multiple versions of library files into one image`"
":ref:`dev-manual/libraries:combining multiple versions of library files into one image`"
section in the Yocto Project Development Tasks Manual.
.. _ref-classes-native:
@@ -1727,7 +1757,7 @@ package manager (NPM) <https://en.wikipedia.org/wiki/Npm_(software)>`__.
fetcher to have dependencies fetched and packaged automatically.
For information on how to create NPM packages, see the
":ref:`dev-manual/common-tasks:creating node package manager (npm) packages`"
":ref:`dev-manual/packages:creating node package manager (npm) packages`"
section in the Yocto Project Development Tasks Manual.
.. _ref-classes-oelint:
@@ -1905,7 +1935,7 @@ If you take the optional step to set up a repository (package feed) on
the development host that can be used by DNF, you can install packages
from the feed while you are running the image on the target (i.e.
runtime installation of packages). For more information, see the
":ref:`dev-manual/common-tasks:using runtime package management`"
":ref:`dev-manual/packages:using runtime package management`"
section in the Yocto Project Development Tasks Manual.
The package-specific class you choose can affect build-time performance
@@ -2024,7 +2054,7 @@ so forth). It is highly recommended that all package group recipes
inherit this class.
For information on how to use this class, see the
":ref:`dev-manual/common-tasks:customizing images using custom package groups`"
":ref:`dev-manual/customizing-images:customizing images using custom package groups`"
section in the Yocto Project Development Tasks Manual.
Previously, this class was called the ``task`` class.
@@ -2240,8 +2270,8 @@ The ``primport`` class provides functionality for importing
``prserv.bbclass``
==================
The ``prserv`` class provides functionality for using a :ref:`PR
service <dev-manual/common-tasks:working with a pr service>` in order to
The :ref:`ref-classes-prserv` class provides functionality for using a :ref:`PR
service <dev-manual/packages:working with a pr service>` in order to
automatically manage the incrementing of the :term:`PR`
variable for each recipe.
@@ -2261,7 +2291,7 @@ runtime tests for recipes that build software that provides these tests.
This class is intended to be inherited by individual recipes. However,
the class' functionality is largely disabled unless "ptest" appears in
:term:`DISTRO_FEATURES`. See the
":ref:`dev-manual/common-tasks:testing packages with ptest`"
":ref:`dev-manual/packages:testing packages with ptest`"
section in the Yocto Project Development Tasks Manual for more information
on ptest.
@@ -2274,7 +2304,7 @@ Enables package tests (ptests) specifically for GNOME packages, which
have tests intended to be executed with ``gnome-desktop-testing``.
For information on setting up and running ptests, see the
":ref:`dev-manual/common-tasks:testing packages with ptest`"
":ref:`dev-manual/packages:testing packages with ptest`"
section in the Yocto Project Development Tasks Manual.
.. _ref-classes-python3-dir:
@@ -2361,8 +2391,8 @@ override the removal by setting ``REMOVE_LIBTOOL_LA`` to "0" as follows::
``report-error.bbclass``
========================
The ``report-error`` class supports enabling the :ref:`error reporting
tool <dev-manual/common-tasks:using the error reporting tool>`",
The :ref:`ref-classes-report-error` class supports enabling the :ref:`error reporting
tool <dev-manual/error-reporting-tool:using the error reporting tool>`",
which allows you to submit build error information to a central database.
The class collects debug information for recipe, recipe version, task,
@@ -2766,8 +2796,8 @@ Services are set up to start on boot automatically
unless you have set
:term:`SYSTEMD_AUTO_ENABLE` to "disable".
For more information on ``systemd``, see the
":ref:`dev-manual/common-tasks:selecting an initialization manager`"
For more information on :ref:`ref-classes-systemd`, see the
":ref:`dev-manual/init-manager:selecting an initialization manager`"
section in the Yocto Project Development Tasks Manual.
.. _ref-classes-systemd-boot:
@@ -2843,7 +2873,7 @@ runs tests on an image after the image is constructed (i.e.
:term:`TESTIMAGE_AUTO` must be set to "1").
For information on how to enable, run, and create new tests, see the
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
":ref:`dev-manual/runtime-testing:performing automated runtime testing`"
section in the Yocto Project Development Tasks Manual.
.. _ref-classes-testsdk:

View File

@@ -411,7 +411,7 @@ Upgrading a Recipe
As software matures, upstream recipes are upgraded to newer versions. As
a developer, you need to keep your local recipes up-to-date with the
upstream version releases. There are several ways of upgrading recipes.
You can read about them in the ":ref:`dev-manual/common-tasks:upgrading recipes`"
You can read about them in the ":ref:`dev-manual/upgrading-recipes:upgrading recipes`"
section of the Yocto Project Development Tasks Manual. This section
overviews the ``devtool upgrade`` command.
@@ -439,7 +439,7 @@ You can read more on the ``devtool upgrade`` workflow in the
":ref:`sdk-manual/extensible:use \`\`devtool upgrade\`\` to create a version of the recipe that supports a newer version of the software`"
section in the Yocto Project Application Development and the Extensible
Software Development Kit (eSDK) manual. You can also see an example of
how to use ``devtool upgrade`` in the ":ref:`dev-manual/common-tasks:using \`\`devtool upgrade\`\``"
how to use ``devtool upgrade`` in the ":ref:`dev-manual/upgrading-recipes:using \`\`devtool upgrade\`\``"
section in the Yocto Project Development Tasks Manual.
.. _devtool-resetting-a-recipe:

View File

@@ -45,7 +45,7 @@ section for steps on how to update your build tools.
**A:** Support for an additional board is added by creating a Board
Support Package (BSP) layer for it. For more information on how to
create a BSP layer, see the
":ref:`dev-manual/common-tasks:understanding and creating layers`"
":ref:`dev-manual/layers:understanding and creating layers`"
section in the Yocto Project Development Tasks Manual and the
:doc:`/bsp-guide/index`.
@@ -73,7 +73,7 @@ device.
**A:** To add a package, you need to create a BitBake recipe. For
information on how to create a BitBake recipe, see the
":ref:`dev-manual/common-tasks:writing a new recipe`"
":ref:`dev-manual/new-recipe:writing a new recipe`"
section in the Yocto Project Development Tasks Manual.
**Q:** Do I have to reflash my entire board with a new Yocto Project
@@ -201,7 +201,7 @@ You can find more information on licensing in the
":ref:`overview-manual/development-environment:licensing`"
section in the Yocto
Project Overview and Concepts Manual and also in the
":ref:`dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle`"
":ref:`dev-manual/licenses:maintaining open source license compliance during your product's lifecycle`"
section in the Yocto Project Development Tasks Manual.
**Q:** How do I disable the cursor on my touchscreen device?

View File

@@ -157,7 +157,7 @@ metadata:
- *ptest:* Enables building the package tests where supported by
individual recipes. For more information on package tests, see the
":ref:`dev-manual/common-tasks:testing packages with ptest`" section
":ref:`dev-manual/packages:testing packages with ptest`" section
in the Yocto Project Development Tasks Manual.
- *smbfs:* Include SMB networks client support (for mounting
@@ -241,7 +241,7 @@ Here are the image features available for all images:
- *read-only-rootfs:* Creates an image whose root filesystem is
read-only. See the
":ref:`dev-manual/common-tasks:creating a read-only root filesystem`"
":ref:`dev-manual/read-only-rootfs:creating a read-only root filesystem`"
section in the Yocto Project Development Tasks Manual for more
information.
@@ -278,7 +278,7 @@ these valid features is as follows:
- *tools-debug:* Installs debugging tools such as ``strace`` and
``gdb``. For information on GDB, see the
":ref:`dev-manual/common-tasks:debugging with the gnu project debugger (gdb) remotely`" section
":ref:`dev-manual/debugging:debugging with the gnu project debugger (gdb) remotely`" section
in the Yocto Project Development Tasks Manual. For information on
tracing and profiling, see the :doc:`/profile-manual/index`.

View File

@@ -14,15 +14,17 @@ image you want.
Building an image without GNU General Public License Version 3
(GPLv3), GNU Lesser General Public License Version 3 (LGPLv3), and
the GNU Affero General Public License Version 3 (AGPL-3.0) components
is only supported for minimal and base images. Furthermore, if you
are going to build an image using non-GPLv3 and similarly licensed
components, you must make the following changes in the ``local.conf``
file before using the BitBake command to build the minimal or base
image::
is only tested for core-image-minimal image. Furthermore, if you would like to
build an image and verify that it does not include GPLv3 and similarly licensed
components, you must make the following changes in the image recipe
file before using the BitBake command to build the image:
1. Comment out the EXTRA_IMAGE_FEATURES line
2. Set INCOMPATIBLE_LICENSE = "GPL-3.0* LGPL-3.0* AGPL-3.0*"
INCOMPATIBLE_LICENSE = "GPL-3.0* LGPL-3.0*"
Alternatively, you can adjust ``local.conf`` file, repeating and adjusting the line
for all images where the license restriction must apply:
INCOMPATIBLE_LICENSE:pn-your-image-name = "GPL-3.0* LGPL-3.0*"
From within the ``poky`` Git repository, you can use the following
command to display the list of directories within the :term:`Source Directory`
@@ -117,7 +119,7 @@ Following is a list of supported recipes:
deployed to a separate partition so that you can boot into it and use
it to deploy a second image to be tested. You can find more
information about runtime testing in the
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
":ref:`dev-manual/runtime-testing:performing automated runtime testing`"
section in the Yocto Project Development Tasks Manual.
- ``core-image-testmaster-initramfs``: A RAM-based Initial Root
@@ -127,7 +129,7 @@ Following is a list of supported recipes:
- ``core-image-weston``: A very basic Wayland image with a terminal.
This image provides the Wayland protocol libraries and the reference
Weston compositor. For more information, see the
":ref:`dev-manual/common-tasks:using wayland and weston`"
":ref:`dev-manual/wayland:using wayland and weston`"
section in the Yocto Project Development Tasks Manual.
- ``core-image-x11``: A very basic X11 image with a terminal.

View File

@@ -82,7 +82,7 @@ the ``part`` and ``partition`` commands:
source of the data that populates the partition. The most common
value for this option is "rootfs", but you can use any value that
maps to a valid source plugin. For information on the source plugins,
see the ":ref:`dev-manual/common-tasks:using the wic plugin interface`"
see the ":ref:`dev-manual/wic:using the wic plugin interface`"
section in the Yocto Project Development Tasks Manual.
If you use ``--source rootfs``, Wic creates a partition as large as

View File

@@ -162,7 +162,7 @@ Errors and Warnings
normally expected to be empty (such as ``/tmp``). These files may
be more appropriately installed to a different location, or
perhaps alternatively not installed at all, usually by updating the
``do_install`` task/function.
:ref:`ref-tasks-install` task/function.
.. _qa-check-arch:
@@ -536,7 +536,7 @@ Errors and Warnings
in (e.g. ``FILES:${``\ :term:`PN`\ ``}`` for the main
package).
- Delete the files at the end of the ``do_install`` task if the
- Delete the files at the end of the :ref:`ref-tasks-install` task if the
files are not needed in any package.
 
@@ -579,10 +579,10 @@ Errors and Warnings
- ``package contains mime types but does not inherit mime: <packagename> path '<file>' [mime]``
The specified package contains mime type files (``.xml`` files in
``${datadir}/mime/packages``) and yet does not inherit the mime
class which will ensure that these get properly installed. Either
add ``inherit mime`` to the recipe or remove the files at the
``do_install`` step if they are not needed.
``${datadir}/mime/packages``) and yet does not inherit the
:ref:`ref-classes-mime` class which will ensure that these get
properly installed. Either add ``inherit mime`` to the recipe or remove the
files at the :ref:`ref-tasks-install` step if they are not needed.
.. _qa-check-mime-xdg:
@@ -590,10 +590,10 @@ Errors and Warnings
- ``package contains desktop file with key 'MimeType' but does not inhert mime-xdg: <packagename> path '<file>' [mime-xdg]``
The specified package contains a .desktop file with a 'MimeType' key
present, but does not inherit the mime-xdg class that is required in
order for that to be activated. Either add ``inherit mime`` to the
recipe or remove the files at the ``do_install`` step if they are not
needed.
present, but does not inherit the :ref:`mime-xdg <ref-classes-mime-xdg>`
class that is required in order for that to be activated. Either add
``inherit mime`` to the recipe or remove the files at the
:ref:`ref-tasks-install` step if they are not needed.
.. _qa-check-src-uri-bad:
@@ -602,7 +602,7 @@ Errors and Warnings
GitHub provides "archive" tarballs, however these can be re-generated
on the fly and thus the file's signature will not necessarily match that
in the SRC_URI checksums in future leading to build failures. It is
in the :term:`SRC_URI` checksums in future leading to build failures. It is
recommended that you use an official release tarball or switch to
pulling the corresponding revision in the actual git repository instead.
@@ -613,18 +613,20 @@ Errors and Warnings
so using ${:term:`BPN`} rather than ${:term:`PN`} as the latter will change
for different variants of the same recipe e.g. when :term:`BBCLASSEXTEND`
or multilib are being used. This check will fail if a reference to ``${PN}``
is found within the :term:`SRC_URI` value - change it to ``${BPN}`` instead.
is found within the :term:`SRC_URI` value --- change it to ``${BPN}`` instead.
.. _qa-check-unhandled-features-check:
- ``<recipename>: recipe doesn't inherit features_check [unhandled-features-check]``
This check ensures that if one of the variables that the :ref:`features_check <ref-classes-features_check>`
class supports (e.g. :term:`REQUIRED_DISTRO_FEATURES`) is used, then the recipe
inherits ``features_check`` in order for the requirement to actually work. If
you are seeing this message, either add ``inherit features_check`` to your recipe
or remove the reference to the variable if it is not needed.
This check ensures that if one of the variables that the
:ref:`ref-classes-features_check` class supports (e.g.
:term:`REQUIRED_DISTRO_FEATURES`) is used, then the recipe
inherits :ref:`ref-classes-features_check` in order for
the requirement to actually work. If you are seeing this message, either
add ``inherit features_check`` to your recipe or remove the reference to
the variable if it is not needed.
.. _qa-check-missing-update-alternatives:
@@ -632,7 +634,7 @@ Errors and Warnings
- ``<recipename>: recipe defines ALTERNATIVE:<packagename> but doesn't inherit update-alternatives. This might fail during do_rootfs later! [missing-update-alternatives]``
This check ensures that if a recipe sets the :term:`ALTERNATIVE` variable that the
recipe also inherits :ref:`update-alternatives <ref-classes-update-alternatives>` such
recipe also inherits :ref:`ref-classes-update-alternatives` such
that the alternative will be correctly set up. If you are seeing this message, either
add ``inherit update-alternatives`` to your recipe or remove the reference to the variable
if it is not needed.
@@ -653,7 +655,7 @@ Errors and Warnings
- ``<packagename> contains perllocal.pod (<files>), should not be installed [perllocalpod]``
``perllocal.pod`` is an index file of locally installed modules and so shouldn't be
installed by any distribution packages. The :ref:`cpan <ref-classes-cpan>` class
installed by any distribution packages. The :ref:`ref-classes-cpan` class
already sets ``NO_PERLLOCAL`` to stop this file being generated by most Perl recipes,
but if a recipe is using ``MakeMaker`` directly then they might not be doing this
correctly. This check ensures that perllocal.pod is not in any package in order to
@@ -667,8 +669,8 @@ Errors and Warnings
If ``usrmerge`` is in :term:`DISTRO_FEATURES`, this check will ensure that no package
installs files to root (``/bin``, ``/sbin``, ``/lib``, ``/lib64``) directories. If you are seeing this
message, it indicates that the ``do_install`` step (or perhaps the build process that
``do_install`` is calling into, e.g. ``make install`` is using hardcoded paths instead
message, it indicates that the :ref:`ref-tasks-install` step (or perhaps the build process that
:ref:`ref-tasks-install` is calling into, e.g. ``make install`` is using hardcoded paths instead
of the variables set up for this (``bindir``, ``sbindir``, etc.), and should be
changed so that it does.
@@ -677,7 +679,7 @@ Errors and Warnings
- ``Fuzz detected: <patch output> [patch-fuzz]``
This check looks for evidence of "fuzz" when applying patches within the ``do_patch``
This check looks for evidence of "fuzz" when applying patches within the :ref:`ref-tasks-patch`
task. Patch fuzz is a situation when the ``patch`` tool ignores some of the context
lines in order to apply the patch. Consider this example:
@@ -727,7 +729,7 @@ Errors and Warnings
devtool modify <recipe>
This will apply all of the patches, and create new commits out of them in
the workspace - with the patch context updated.
the workspace --- with the patch context updated.
Then, replace the patches in the recipe layer::
@@ -748,6 +750,45 @@ Errors and Warnings
other things in the patches, those can be discarded.
.. _qa-check-patch-status:
- ``Missing Upstream-Status in patch <patchfile> Please add according to <url> [patch-status-core/patch-status-noncore]``
The ``Upstream-Status`` value is missing in the specified patch file's header.
This value is intended to track whether or not the patch has been sent
upstream, whether or not it has been merged, etc.
There are two options for this same check - ``patch-status-core`` (for
recipes in OE-Core) and ``patch-status-noncore`` (for recipes in any other
layer).
For more information, see the
":ref:`contributor-guide/recipe-style-guide:patch upstream status`"
section in the Yocto Project and OpenEmbedded Contributor Guide.
- ``Malformed Upstream-Status in patch <patchfile> Please correct according to <url> [patch-status-core/patch-status-noncore]``
The ``Upstream-Status`` value in the specified patch file's header is invalid -
it must be a specific format. See the "Missing Upstream-Status" entry above
for more information.
.. _qa-check-buildpaths:
- ``File <filename> in package <packagename> contains reference to TMPDIR [buildpaths]``
This check ensures that build system paths (including :term:`TMPDIR`) do not
appear in output files, which not only leaks build system configuration into
the target, but also hinders binary reproducibility as the output will change
if the build system configuration changes.
Typically these paths will enter the output through some mechanism in the
configuration or compilation of the software being built by the recipe. To
resolve this issue you will need to determine how the detected path is
entering the output. Sometimes it may require adjusting scripts or code to
use a relative path rather than an absolute one, or to pick up the path from
runtime configuration or environment variables.
Configuring and Disabling QA Checks
===================================

View File

@@ -18,9 +18,9 @@ Following are examples of some major YP releases with their codenames
also shown. See the ":ref:`ref-manual/release-process:major release codenames`"
section for information on codenames used with major releases.
- 2.2 (Morty)
- 2.1 (Krogoth)
- 2.0 (Jethro)
- 4.1 ("Langdale")
- 4.0 ("Kirkstone")
- 3.4 ("Honister")
While the cadence is never perfect, this timescale facilitates
regular releases that have strong QA cycles while not overwhelming users
@@ -32,9 +32,9 @@ basis and are usually driven by the accumulation of enough significant
fixes or enhancements to the associated major release. Following are
some example past point releases:
- 2.1.1
- 2.1.2
- 2.2.1
- 4.1.3
- 4.0.8
- 3.4.4
The point release
indicates a point in the major release branch where a full QA cycle and
@@ -87,15 +87,51 @@ stable release.
exception to this policy occurs when there is a strong reason such as
the fix happens to also be the preferred upstream approach.
Stable release branches have strong maintenance for about a year after
their initial release. Should significant issues be found for any
release regardless of its age, fixes could be backported to older
releases. For issues that are not backported given an older release,
Community LTS trees and branches allow community members to share
patches for older releases. However, these types of patches do not go
through the same release process as do point releases. You can find more
information about stable branch maintenance at
:yocto_wiki:`/Stable_branch_maintenance`.
.. _ref-long-term-support-releases:
Long Term Support Releases
==========================
While stable releases are supported for a duration of seven months,
some specific ones are now supported for a longer period by the Yocto
Project, and are called Long Term Support (:term:`LTS`) releases.
When significant issues are found, :term:`LTS` releases allow to publish
fixes not only for the current stable release, but also to the
:term:`LTS` releases that are still supported. Older stable releases which
have reached their End of Life (EOL) won't receive such updates.
This started with version 3.1 ("Dunfell"), released in April 2020, which
the project initially committed to supporting for two years, but this duration
was later extended to four years. Similarly, the following :term:`LTS` release,
version 4.0 ("Kirkstone"), was released two years later in May 2022 and the
project committed to supporting it for four years too.
Therefore, a new :term:`LTS` release is made every two years and is supported
for four years. This offers more stability to project users and leaves more
time to upgrade to the following :term:`LTS` release.
See :yocto_wiki:`/Stable_Release_and_LTS` for details about the management
of stable and :term:`LTS` releases.
.. image:: svg/releases.*
:width: 100%
.. note::
In some circumstances, a layer can be created by the community in order to
add a specific feature or support a new version of some package for an :term:`LTS`
release. This is called a :term:`Mixin` layer. These are thin and specific
purpose layers which can be stacked with an :term:`LTS` release to "mix" a specific
feature into that build. These are created on an as-needed basis and
maintained by the people who need them.
Policies on testing these layers depend on how widespread their usage is and
determined on a case-by-case basis. You can find some :term:`Mixin` layers in the
:yocto_git:`meta-lts-mixins </meta-lts-mixins>` repository. While the Yocto
Project provides hosting for those repositories, it does not provides
testing on them. Other :term:`Mixin` layers may be released elsewhere by the wider
community.
Testing and Quality Assurance
=============================
@@ -107,7 +143,7 @@ Additionally, because the test strategies are visible to you as a
developer, you can validate your projects. This section overviews the
available test infrastructure used in the Yocto Project. For information
on how to run available tests on your projects, see the
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
":ref:`dev-manual/runtime-testing:performing automated runtime testing`"
section in the Yocto Project Development Tasks Manual.
The QA/testing infrastructure is woven into the project to the point
@@ -134,7 +170,7 @@ consists of the following pieces:
operation and functions. However, the test can also use the IP
address of a machine to test.
- :ref:`ptest <dev-manual/common-tasks:testing packages with ptest>`:
- :ref:`ptest <dev-manual/packages:testing packages with ptest>`:
Runs tests against packages produced during the build for a given
piece of software. The test allows the packages to be run within a
target image.
@@ -155,14 +191,12 @@ effort has been made to automate the tests so that more people can use
them and the Yocto Project development team can run them faster and more
efficiently.
The Yocto Project's main Autobuilder (&YOCTO_AB_URL;)
publicly tests each Yocto Project release's code in the
:term:`OpenEmbedded-Core (OE-Core)`, Poky, and BitBake repositories. The testing
occurs for both the current state of the "master" branch and also for
The Yocto Project's main Autobuilder (&YOCTO_AB_URL;) publicly tests each Yocto
Project release's code in the :oe_git:`openembedded-core </openembedded-core>`,
:yocto_git:`poky </poky>` and :oe_git:`bitbake </bitbake>` repositories. The
testing occurs for both the current state of the "master" branch and also for
submitted patches. Testing for submitted patches usually occurs in the
"ross/mut" branch in the ``poky-contrib`` repository (i.e. the
master-under-test branch) or in the "master-next" branch in the ``poky``
repository.
in the "master-next" branch in the :yocto_git:`poky </poky>` repository.
.. note::

View File

@@ -23,8 +23,7 @@ The Yocto Project gladly accepts contributions. You can submit changes
to the project either by creating and sending pull requests, or by
submitting patches through email. For information on how to do both as
well as information on how to identify the maintainer for each area of
code, see the ":ref:`dev-manual/common-tasks:submitting a change to the yocto project`" section in the
Yocto Project Development Tasks Manual.
code, see the :doc:`../contributor-guide/index`.
.. _resources-bugtracker:
@@ -46,8 +45,8 @@ your expectations).
For a general procedure and guidelines on how to use Bugzilla to submit a bug
against the Yocto Project, see the following:
- The ":ref:`dev-manual/common-tasks:submitting a defect against the yocto project`"
section in the Yocto Project Development Tasks Manual.
- The ":doc:`../contributor-guide/report-defect`"
section in the Yocto Project and OpenEmbedded Contributor Guide.
- The Yocto Project :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>`

View File

@@ -175,7 +175,7 @@ within the :term:`Source Directory`. If you design a
custom distribution, you can include your own version of this
configuration file to mention the targets defined by your distribution.
See the
":ref:`dev-manual/common-tasks:creating a custom template configuration directory`"
":ref:`dev-manual/custom-template-configuration-directory:creating a custom template configuration directory`"
section in the Yocto Project Development Tasks Manual for more
information.
@@ -191,7 +191,7 @@ Directory named ``mybuilds/`` that is outside of the :term:`Source Directory`::
The OpenEmbedded build system uses the template configuration files, which
are found by default in the ``meta-poky/conf/`` directory in the Source
Directory. See the
":ref:`dev-manual/common-tasks:creating a custom template configuration directory`"
":ref:`dev-manual/custom-template-configuration-directory:creating a custom template configuration directory`"
section in the Yocto Project Development Tasks Manual for more
information.
@@ -234,7 +234,7 @@ The OpenEmbedded build system creates this directory when you enable
build history via the :ref:`buildhistory <ref-classes-buildhistory>` class file. The directory
organizes build information into image, packages, and SDK
subdirectories. For information on the build history feature, see the
":ref:`dev-manual/common-tasks:maintaining build output quality`"
":ref:`dev-manual/build-quality:maintaining build output quality`"
section in the Yocto Project Development Tasks Manual.
.. _structure-build-conf-local.conf:
@@ -289,7 +289,7 @@ file, it uses ``sed`` to substitute final
----------------------------
This configuration file defines
:ref:`layers <dev-manual/common-tasks:understanding and creating layers>`,
:ref:`layers <dev-manual/layers:understanding and creating layers>`,
which are directory trees, traversed (or walked) by BitBake. The
``bblayers.conf`` file uses the :term:`BBLAYERS`
variable to list the layers BitBake tries to find.
@@ -434,7 +434,7 @@ directory contains sub-directories for ``bash``, ``busybox``, and
``glibc`` (among others) that in turn contain appropriate ``COPYING``
license files with other licensing information. For information on
licensing, see the
":ref:`dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle`"
":ref:`dev-manual/licenses:maintaining open source license compliance during your product's lifecycle`"
section in the Yocto Project Development Tasks Manual.
.. _structure-build-tmp-deploy-images:
@@ -571,7 +571,7 @@ built within the Yocto Project. For this package, a work directory of
``tmp/work/qemux86-poky-linux/linux-yocto/3.0+git1+<.....>``, referred
to as the :term:`WORKDIR`, is created. Within this directory, the source is
unpacked to ``linux-qemux86-standard-build`` and then patched by Quilt.
(See the ":ref:`dev-manual/common-tasks:using quilt in your workflow`" section in
(See the ":ref:`dev-manual/quilt:using quilt in your workflow`" section in
the Yocto Project Development Tasks Manual for more information.) Within
the ``linux-qemux86-standard-build`` directory, standard Quilt
directories ``linux-3.0/patches`` and ``linux-3.0/.pc`` are created, and

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 106 KiB

View File

@@ -34,15 +34,38 @@ and conceptual information in the :doc:`/overview-manual/index`.
Supported Linux Distributions
=============================
Currently, the Yocto Project is supported on the following
distributions:
- Ubuntu 18.04 (LTS)
Currently, the &DISTRO; release ("&DISTRO_NAME;") of the Yocto Project is
supported on the following distributions:
- Ubuntu 20.04 (LTS)
- Ubuntu 22.04 (LTS)
- Fedora 37
- Debian GNU/Linux 11.x (Bullseye)
- AlmaLinux 8.8
The following distribution versions are still tested (being listed
in :term:`SANITY_TESTED_DISTROS`), even though the organizations
publishing them no longer make updates publicly available:
- Ubuntu 18.04 (LTS)
- OpenSUSE Leap 15.3
Note that the Yocto Project doesn't have access to private updates
that some of these versions may have. Therefore, our testing has
limited value if you have access to such updates.
Finally, here are the distribution versions which were previously
tested on former revisions of "&DISTRO_NAME;", but no longer are:
- Ubuntu 16.04 (LTS)
- Ubuntu 21.10
- Fedora 34
- Fedora 35
@@ -61,10 +84,6 @@ distributions:
- Debian GNU/Linux 10.x (Buster)
- Debian GNU/Linux 11.x (Bullseye)
- OpenSUSE Leap 15.3
.. note::
- While the Yocto Project Team attempts to ensure all Yocto Project
@@ -96,9 +115,8 @@ distributions:
interested in hearing about your experience. For information on
how to submit a bug, see the Yocto Project
:yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>`
and the ":ref:`dev-manual/common-tasks:submitting a defect against the yocto project`"
section in the Yocto Project Development Tasks Manual.
and the ":doc:`../contributor-guide/report-defect`"
section in the Yocto Project and OpenEmbedded Contributor Guide.
Required Packages for the Build Host
====================================

View File

@@ -343,7 +343,7 @@ while ``file2.patch`` would not be applied.
You can find out more about the patching process in the
":ref:`overview-manual/concepts:patching`" section in
the Yocto Project Overview and Concepts Manual and the
":ref:`dev-manual/common-tasks:patching code`" section in the
":ref:`dev-manual/new-recipe:patching code`" section in the
Yocto Project Development Tasks Manual.
.. _ref-tasks-populate_lic:
@@ -522,7 +522,7 @@ scratch is guaranteed.
Starts a shell in which an interactive Python interpreter allows you to
interact with the BitBake build environment. From within this shell, you
can directly examine and set bits from the data store and execute
functions as if within the BitBake environment. See the ":ref:`dev-manual/common-tasks:using a python development shell`" section in
functions as if within the BitBake environment. See the ":ref:`dev-manual/python-development-shell:using a Python development shell`" section in
the Yocto Project Development Tasks Manual for more information about
using ``pydevshell``.
@@ -532,7 +532,7 @@ using ``pydevshell``.
---------------
Starts a shell whose environment is set up for development, debugging,
or both. See the ":ref:`dev-manual/common-tasks:using a development shell`" section in the
or both. See the ":ref:`dev-manual/development-shell:using a development shell`" section in the
Yocto Project Development Tasks Manual for more information about using
``devshell``.
@@ -597,7 +597,7 @@ information on how the root filesystem is created.
Boots an image and performs runtime tests within the image. For
information on automatically testing images, see the
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
":ref:`dev-manual/runtime-testing:performing automated runtime testing`"
section in the Yocto Project Development Tasks Manual.
.. _ref-tasks-testimage_auto:
@@ -610,7 +610,7 @@ after it has been built. This task is enabled when you set
:term:`TESTIMAGE_AUTO` equal to "1".
For information on automatically testing images, see the
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
":ref:`dev-manual/runtime-testing:performing automated runtime testing`"
section in the Yocto Project Development Tasks Manual.
Kernel-Related Tasks

View File

@@ -21,7 +21,7 @@ universal, the list includes them just in case:
Information in append files extends or overrides the information in the
similarly-named recipe file. For an example of an append file in use, see
the ":ref:`dev-manual/common-tasks:appending other layers metadata with your layer`"
the ":ref:`dev-manual/layers:appending other layers metadata with your layer`"
section in the Yocto Project Development Tasks Manual.
When you name an append file, you can use the "``%``" wildcard character
@@ -192,6 +192,48 @@ universal, the list includes them just in case:
of the supported image types that the Yocto Project provides, see the
":ref:`ref-manual/images:Images`" chapter.
:term:`Initramfs`
An Initial RAM Filesystem (:term:`Initramfs`) is an optionally compressed
:wikipedia:`cpio <Cpio>` archive which is extracted
by the Linux kernel into RAM in a special :wikipedia:`tmpfs <Tmpfs>`
instance, used as the initial root filesystem.
This is a replacement for the legacy init RAM disk ("initrd")
technique, booting on an emulated block device in RAM, but being less
efficient because of the overhead of going through a filesystem and
having to duplicate accessed file contents in the file cache in RAM,
as for any block device.
.. note::
As far as bootloaders are concerned, :term:`Initramfs` and "initrd"
images are still copied to RAM in the same way. That's why most
most bootloaders refer to :term:`Initramfs` images as "initrd"
or "init RAM disk".
This kind of mechanism is typically used for two reasons:
- For booting the same kernel binary on multiple systems requiring
different device drivers. The :term:`Initramfs` image is then customized
for each type of system, to include the specific kernel modules
necessary to access the final root filesystem. This technique
is used on all GNU / Linux distributions for desktops and servers.
- For booting faster. As the root filesystem is extracted into RAM,
accessing the first user-space applications is very fast, compared
to having to initialize a block device, to access multiple blocks
from it, and to go through a filesystem having its own overhead.
For example, this allows to display a splashscreen very early,
and to later take care of mounting the final root filesystem and
loading less time-critical kernel drivers.
This cpio archive can either be loaded to RAM by the bootloader,
or be included in the kernel binary.
For information on creating and using an :term:`Initramfs`, see the
":ref:`dev-manual/building:building an initial ram filesystem (Initramfs) image`"
section in the Yocto Project Development Tasks Manual.
:term:`Layer`
A collection of related recipes. Layers allow you to consolidate related
metadata to customize your build. Layers also isolate information used
@@ -205,12 +247,18 @@ universal, the list includes them just in case:
":ref:`overview-manual/yp-intro:The Yocto Project Layer
Model`" section in the Yocto Project Overview and Concepts Manual. For
more detailed information on layers, see the
":ref:`dev-manual/common-tasks:Understanding and Creating
":ref:`dev-manual/layers:Understanding and Creating
Layers`" section in the Yocto Project Development Tasks Manual. For a
discussion specifically on BSP Layers, see the ":ref:`bsp-guide/bsp:BSP
Layers`" section in the Yocto Project Board Support Packages (BSP)
Developer's Guide.
:term:`LTS`
This term means "Long Term Support", and in the context of the Yocto
Project, it corresponds to selected stable releases for which bug and
security fixes are provided for at least four years. See
the :ref:`ref-long-term-support-releases` section for details.
:term:`Metadata`
A key element of the Yocto Project is the Metadata that
is used to construct a Linux distribution and is contained in the
@@ -230,6 +278,12 @@ universal, the list includes them just in case:
:yocto_git:`yocto-kernel-cache </yocto-kernel-cache>`
Git repository.
:term:`Mixin`
A :term:`Mixin` layer is a layer which can be created by the community to
add a specific feature or support a new version of some package for an
:term:`LTS` release. See the :ref:`ref-long-term-support-releases`
section for details.
:term:`OpenEmbedded-Core (OE-Core)`
OE-Core is metadata comprised of
foundational recipes, classes, and associated files that are meant to
@@ -337,7 +391,7 @@ universal, the list includes them just in case:
The OpenEmbedded Build System can generate such documentation for your
project, in :term:`SPDX` format, based on all the metadata it used to
build the software images. See the ":ref:`dev-manual/common-tasks:creating
build the software images. See the ":ref:`dev-manual/sbom:creating
a software bill of materials`" section of the Development Tasks manual.
:term:`Source Directory`
@@ -401,14 +455,14 @@ universal, the list includes them just in case:
section in the Yocto Project Overview and Concepts Manual.
:term:`SPDX`
This term means *Software Package Data Exchange*, and is used as a open
This term means *Software Package Data Exchange*, and is used as an open
standard for providing a *Software Bill of Materials* (:term:`SBOM`).
This standard is developed through a `Linux Foundation project
<https://spdx.dev/>`__ and is used by the OpenEmbedded Build System to
provide an :term:`SBOM` associated to each a software image.
provide an :term:`SBOM` associated to each software image.
For details, see Wikipedia's :wikipedia:`SPDX page <Software_Package_Data_Exchange>`
and the ":ref:`dev-manual/common-tasks:creating a software bill of materials`"
and the ":ref:`dev-manual/sbom:creating a software bill of materials`"
section of the Development Tasks manual.
:term:`Task`

View File

@@ -223,7 +223,7 @@ system and gives an overview of their function and contents.
so that it does contain ``${SRCPV}``.
For more information see the
":ref:`dev-manual/common-tasks:automatically incrementing a package version number`"
":ref:`dev-manual/packages:automatically incrementing a package version number`"
section in the Yocto Project Development Tasks Manual.
:term:`AUTO_SYSLINUXMENU`
@@ -239,7 +239,7 @@ system and gives an overview of their function and contents.
The list simply presents the tunes that are available. Not all tunes
may be compatible with a particular machine configuration, or with
each other in a
:ref:`Multilib <dev-manual/common-tasks:combining multiple versions of library files into one image>`
:ref:`Multilib <dev-manual/libraries:combining multiple versions of library files into one image>`
configuration.
To add a tune to the list, be sure to append it with spaces using the
@@ -304,7 +304,7 @@ system and gives an overview of their function and contents.
:term:`BASE_LIB`
The library directory name for the CPU or Application Binary
Interface (ABI) tune. The :term:`BASE_LIB` applies only in the Multilib
context. See the ":ref:`dev-manual/common-tasks:combining multiple versions of library files into one image`"
context. See the ":ref:`dev-manual/libraries:combining multiple versions of library files into one image`"
section in the Yocto Project Development Tasks Manual for information
on Multilib.
@@ -528,7 +528,7 @@ system and gives an overview of their function and contents.
is not set higher than "20".
For more information on speeding up builds, see the
":ref:`dev-manual/common-tasks:speeding up a build`"
":ref:`dev-manual/speeding-up-build:speeding up a build`"
section in the Yocto Project Development Tasks Manual.
:term:`BB_SERVER_TIMEOUT`
@@ -725,7 +725,7 @@ system and gives an overview of their function and contents.
For information on how to use :term:`BBMULTICONFIG` in an environment
that supports building targets with multiple configurations, see the
":ref:`dev-manual/common-tasks:building images for multiple targets using multiple configurations`"
":ref:`dev-manual/building:building images for multiple targets using multiple configurations`"
section in the Yocto Project Development Tasks Manual.
:term:`BBPATH`
@@ -971,7 +971,7 @@ system and gives an overview of their function and contents.
When inheriting the :ref:`buildhistory <ref-classes-buildhistory>`
class, this variable specifies the build history features to be
enabled. For more information on how build history works, see the
":ref:`dev-manual/common-tasks:maintaining build output quality`"
":ref:`dev-manual/build-quality:maintaining build output quality`"
section in the Yocto Project Development Tasks Manual.
You can specify these features in the form of a space-separated list:
@@ -1156,6 +1156,26 @@ system and gives an overview of their function and contents.
optional at the distribution level, in case the hardware supports
Bluetooth but you do not ever intend to use it.
:term:`COMMERCIAL_AUDIO_PLUGINS`
This variable is specific to the :yocto_git:`GStreamer recipes
</poky/tree/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb>`.
It allows to build the GStreamer `"ugly"
<https://github.com/GStreamer/gst-plugins-ugly>`__ and
`"bad" <https://github.com/GStreamer/gst-plugins-bad>`__ audio plugins.
See the :ref:`dev-manual/licenses:other variables related to commercial licenses`
section for usage details.
:term:`COMMERCIAL_VIDEO_PLUGINS`
This variable is specific to the :yocto_git:`GStreamer recipes
</poky/tree/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb>`.
It allows to build the GStreamer `"ugly"
<https://github.com/GStreamer/gst-plugins-ugly>`__ and
`"bad" <https://github.com/GStreamer/gst-plugins-bad>`__ video plugins.
See the :ref:`dev-manual/licenses:other variables related to commercial licenses`
section for usage details.
:term:`COMMON_LICENSE_DIR`
Points to ``meta/files/common-licenses`` in the
:term:`Source Directory`, which is where generic license
@@ -1274,8 +1294,8 @@ system and gives an overview of their function and contents.
If you specify multiple directories and files, the initramfs image
will be the aggregate of all of them.
For information on creating an initramfs, see the
":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`" section
For information on creating an :term:`Initramfs`, see the
":ref:`dev-manual/building:building an initial ram filesystem (Initramfs) image`" section
in the Yocto Project Development Tasks Manual.
:term:`CONFIG_SITE`
@@ -1310,7 +1330,7 @@ system and gives an overview of their function and contents.
newly installed packages to an image, which might be most suitable for
read-only filesystems that cannot be upgraded. See the
:term:`LICENSE_CREATE_PACKAGE` variable for additional information.
You can also reference the ":ref:`dev-manual/common-tasks:providing license text`"
You can also reference the ":ref:`dev-manual/licenses:providing license text`"
section in the Yocto Project Development Tasks Manual for
information on providing license text.
@@ -1326,7 +1346,7 @@ system and gives an overview of their function and contents.
newly installed packages to an image, which might be most suitable for
read-only filesystems that cannot be upgraded. See the
:term:`LICENSE_CREATE_PACKAGE` variable for additional information.
You can also reference the ":ref:`dev-manual/common-tasks:providing license text`"
You can also reference the ":ref:`dev-manual/licenses:providing license text`"
section in the Yocto Project Development Tasks Manual for
information on providing license text.
@@ -2071,11 +2091,10 @@ system and gives an overview of their function and contents.
less).
:term:`ERR_REPORT_DIR`
When used with the :ref:`report-error <ref-classes-report-error>`
class, specifies the path used for storing the debug files created by
the :ref:`error reporting
tool <dev-manual/common-tasks:using the error reporting tool>`, which
allows you to submit build errors you encounter to a central
When used with the :ref:`ref-classes-report-error` class, specifies the
path used for storing the debug files created by the :ref:`error reporting
tool <dev-manual/error-reporting-tool:using the error reporting tool>`,
which allows you to submit build errors you encounter to a central
database. By default, the value of this variable is
``${``\ :term:`LOG_DIR`\ ``}/error-report``.
@@ -2223,6 +2242,12 @@ system and gives an overview of their function and contents.
:ref:`kernel-yocto <ref-classes-kernel-yocto>` class in
``meta/classes`` to see how the variable is used.
:term:`EXTERNAL_TOOLCHAIN`
When you intend to use an
:ref:`external toolchain <dev-manual/external-toolchain:optionally using an external toolchain>`,
this variable allows to specify the directory where this toolchain was
installed.
:term:`EXTERNALSRC`
When inheriting the :ref:`externalsrc <ref-classes-externalsrc>`
class, this variable points to the source tree, which is outside of
@@ -2232,7 +2257,7 @@ system and gives an overview of their function and contents.
See the ":ref:`ref-classes-externalsrc`" section for details. You
can also find information on how to use this variable in the
":ref:`dev-manual/common-tasks:building software from an external source`"
":ref:`dev-manual/building:building software from an external source`"
section in the Yocto Project Development Tasks Manual.
:term:`EXTERNALSRC_BUILD`
@@ -2245,11 +2270,11 @@ system and gives an overview of their function and contents.
See the ":ref:`ref-classes-externalsrc`" section for details. You
can also find information on how to use this variable in the
":ref:`dev-manual/common-tasks:building software from an external source`"
":ref:`dev-manual/building:building software from an external source`"
section in the Yocto Project Development Tasks Manual.
:term:`EXTRA_AUTORECONF`
For recipes inheriting the :ref:`autotools <ref-classes-autotools>`
For recipes inheriting the :ref:`ref-classes-autotools`
class, you can use :term:`EXTRA_AUTORECONF` to specify extra options to
pass to the ``autoreconf`` command that is executed during the
:ref:`ref-tasks-configure` task.
@@ -2283,7 +2308,7 @@ system and gives an overview of their function and contents.
useful if you want to develop against the libraries in the image.
- "read-only-rootfs" - Creates an image whose root filesystem is
read-only. See the
":ref:`dev-manual/common-tasks:creating a read-only root filesystem`"
":ref:`dev-manual/read-only-rootfs:creating a read-only root filesystem`"
section in the Yocto Project Development Tasks Manual for more
information
- "tools-debug" - Adds debugging tools such as gdb and strace.
@@ -2296,7 +2321,7 @@ system and gives an overview of their function and contents.
Project, see the ":ref:`ref-features-image`" section.
For an example that shows how to customize your image by using this
variable, see the ":ref:`dev-manual/common-tasks:customizing images using custom \`\`image_features\`\` and \`\`extra_image_features\`\``"
variable, see the ":ref:`dev-manual/customizing-images:customizing images using custom \`\`image_features\`\` and \`\`extra_image_features\`\``"
section in the Yocto Project Development Tasks Manual.
:term:`EXTRA_IMAGECMD`
@@ -2345,6 +2370,20 @@ system and gives an overview of their function and contents.
variable specifies additional configuration options you want to pass
to the ``scons`` command line.
:term:`EXTRA_OEMESON`
Additional `Meson <https://mesonbuild.com/>`__ options. See the
:ref:`ref-classes-meson` class for additional information.
In addition to standard Meson options, such options correspond to
`Meson build options <https://mesonbuild.com/Build-options.html>`__
defined in the ``meson_options.txt`` file in the sources to build.
Here is an example::
EXTRA_OEMESON = "-Dpython=disabled -Dvalgrind=disabled"
Note that any custom value for the Meson ``--buildtype`` option
should be set through the :term:`MESON_BUILDTYPE` variable.
:term:`EXTRA_USERS_PARAMS`
When inheriting the :ref:`extrausers <ref-classes-extrausers>`
class, this variable provides image level user and group operations.
@@ -2641,7 +2680,7 @@ system and gives an overview of their function and contents.
You can find out more about the patching process in the
":ref:`overview-manual/concepts:patching`" section
in the Yocto Project Overview and Concepts Manual and the
":ref:`dev-manual/common-tasks:patching code`" section in
":ref:`dev-manual/new-recipe:patching code`" section in
the Yocto Project Development Tasks Manual. See the
:ref:`ref-tasks-patch` task as well.
@@ -2773,7 +2812,7 @@ system and gives an overview of their function and contents.
Allows to specify an extra search path for ``.so`` files
in GLib related recipes using GObject introspection,
and which do not compile without this setting.
See the ":ref:`dev-manual/common-tasks:enabling gobject introspection support`"
See the ":ref:`dev-manual/gobject-introspection:enabling gobject introspection support`"
section for details.
:term:`GITDIR`
@@ -3058,7 +3097,7 @@ system and gives an overview of their function and contents.
the same files into a ``boot`` directory within the target partition.
You can find information on how to use the Wic tool in the
":ref:`dev-manual/common-tasks:creating partitioned images using wic`"
":ref:`dev-manual/wic:creating partitioned images using wic`"
section of the Yocto Project Development Tasks Manual. Reference
material for Wic is located in the
":doc:`/ref-manual/kickstart`" chapter.
@@ -3130,7 +3169,7 @@ system and gives an overview of their function and contents.
the same files into a ``boot`` directory within the target partition.
You can find information on how to use the Wic tool in the
":ref:`dev-manual/common-tasks:creating partitioned images using wic`"
":ref:`dev-manual/wic:creating partitioned images using wic`"
section of the Yocto Project Development Tasks Manual. Reference
material for Wic is located in the
":doc:`/ref-manual/kickstart`" chapter.
@@ -3151,7 +3190,7 @@ system and gives an overview of their function and contents.
the ":ref:`ref-features-image`" section.
For an example that shows how to customize your image by using this
variable, see the ":ref:`dev-manual/common-tasks:customizing images using custom \`\`image_features\`\` and \`\`extra_image_features\`\``"
variable, see the ":ref:`dev-manual/customizing-images:customizing images using custom \`\`image_features\`\` and \`\`extra_image_features\`\``"
section in the Yocto Project Development Tasks Manual.
:term:`IMAGE_FSTYPES`
@@ -3206,8 +3245,8 @@ system and gives an overview of their function and contents.
:term:`PACKAGE_INSTALL` variable, which
allows the initial RAM filesystem (initramfs) recipe to use a
fixed set of packages and not be affected by :term:`IMAGE_INSTALL`.
For information on creating an initramfs, see the
":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`"
For information on creating an :term:`Initramfs`, see the
":ref:`dev-manual/building:building an initial ram filesystem (Initramfs) image`"
section in the Yocto Project Development Tasks Manual.
- Using :term:`IMAGE_INSTALL` with the
@@ -3547,9 +3586,18 @@ system and gives an overview of their function and contents.
:term:`INCOMPATIBLE_LICENSE`
Specifies a space-separated list of license names (as they would
appear in :term:`LICENSE`) that should be excluded
from the build. Recipes that provide no alternatives to listed
from the build (if set globally), or from an image (if set locally
in an image recipe).
When the variable is set globally, recipes that provide no alternatives to listed
incompatible licenses are not built. Packages that are individually
licensed with the specified incompatible licenses will be deleted.
Most of the time this does not allow a feasible build (because it becomes impossible
to satisfy build time dependencies), so the recommended way to
implement license restrictions is to set the variable in specific
image recipes where the restrictions must apply. That way there
are no build time restrictions, but the license check is still
performed when the image's filesystem is assembled from packages.
There is some support for wildcards in this variable's value,
however it is restricted to specific licenses. Currently only
@@ -3700,8 +3748,8 @@ system and gives an overview of their function and contents.
For more information, you can also see the
:term:`INITRAMFS_IMAGE_BUNDLE`
variable, which allows the generated image to be bundled inside the
kernel image. Additionally, for information on creating an initramfs
image, see the ":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`" section
kernel image. Additionally, for information on creating an :term:`Initramfs`
image, see the ":ref:`dev-manual/building:building an initial ram filesystem (Initramfs) image`" section
in the Yocto Project Development Tasks Manual.
:term:`INITRAMFS_IMAGE_BUNDLE`
@@ -3753,7 +3801,7 @@ system and gives an overview of their function and contents.
See the
:yocto_git:`local.conf.sample.extended </poky/tree/meta-poky/conf/local.conf.sample.extended>`
file for additional information. Also, for information on creating an
initramfs, see the ":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`" section
:term:`Initramfs`, see the ":ref:`dev-manual/building:building an initial ram filesystem (Initramfs) image`" section
in the Yocto Project Development Tasks Manual.
:term:`INITRAMFS_LINK_NAME`
@@ -3778,8 +3826,8 @@ system and gives an overview of their function and contents.
This allows the kernel to bundle an :term:`INITRAMFS_IMAGE` coming from
a separate multiconfig, this is meant to be used in addition to :term:`INITRAMFS_DEPLOY_DIR_IMAGE`.
For more information on how to bundle an initramfs image from a separate
multiconfig see the ":ref:`dev-manual/common-tasks:Bundling an Initramfs Image From a Separate Multiconfig`"
For more information on how to bundle an :term:`Initramfs` image from a separate
multiconfig see the ":ref:`dev-manual/building:Bundling an Initramfs Image From a Separate Multiconfig`"
section in the Yocto Project Development Tasks Manual.
:term:`INITRAMFS_NAME`
@@ -4373,7 +4421,7 @@ system and gives an overview of their function and contents.
The OpenEmbedded build system produces a warning if the variable
is not set for any given layer.
See the ":ref:`dev-manual/common-tasks:creating your own layer`"
See the ":ref:`dev-manual/layers:creating your own layer`"
section in the Yocto Project Development Tasks Manual.
:term:`LAYERVERSION`
@@ -4422,7 +4470,7 @@ system and gives an overview of their function and contents.
This variable must be defined for all recipes (unless
:term:`LICENSE` is set to "CLOSED").
For more information, see the ":ref:`dev-manual/common-tasks:tracking license changes`"
For more information, see the ":ref:`dev-manual/licenses:tracking license changes`"
section in the Yocto Project Development Tasks Manual.
:term:`LICENSE`
@@ -4486,7 +4534,7 @@ system and gives an overview of their function and contents.
For related information on providing license text, see the
:term:`COPY_LIC_DIRS` variable, the
:term:`COPY_LIC_MANIFEST` variable, and the
":ref:`dev-manual/common-tasks:providing license text`"
":ref:`dev-manual/licenses:providing license text`"
section in the Yocto Project Development Tasks Manual.
:term:`LICENSE_FLAGS`
@@ -4499,14 +4547,14 @@ system and gives an overview of their function and contents.
typically used to mark recipes that might require additional licenses
in order to be used in a commercial product. For more information,
see the
":ref:`dev-manual/common-tasks:enabling commercially licensed recipes`"
":ref:`dev-manual/licenses:enabling commercially licensed recipes`"
section in the Yocto Project Development Tasks Manual.
:term:`LICENSE_FLAGS_ACCEPTED`
Lists license flags that when specified in
:term:`LICENSE_FLAGS` within a recipe should not
prevent that recipe from being built. For more information, see the
":ref:`dev-manual/common-tasks:enabling commercially licensed recipes`"
":ref:`dev-manual/licenses:enabling commercially licensed recipes`"
section in the Yocto Project Development Tasks Manual.
:term:`LICENSE_PATH`
@@ -4785,6 +4833,17 @@ system and gives an overview of their function and contents.
:term:`MAINTAINER`
The email address of the distribution maintainer.
:term:`MESON_BUILDTYPE`
Value of the Meson ``--buildtype`` argument used by the
:ref:`ref-classes-meson` class. It defaults to ``debug`` if
:term:`DEBUG_BUILD` is set to "1", and ``plain`` otherwise.
See `Meson build options <https://mesonbuild.com/Builtin-options.html>`__
for the values you could set in a recipe. Values such as ``plain``,
``debug``, ``debugoptimized``, ``release`` and ``minsize`` allow
you to specify the inclusion of debugging symbols and the compiler
optimizations (none, performance or size).
:term:`METADATA_BRANCH`
The branch currently checked out for the OpenEmbedded-Core layer (path
determined by :term:`COREBASE`).
@@ -4793,6 +4852,13 @@ system and gives an overview of their function and contents.
The revision currently checked out for the OpenEmbedded-Core layer (path
determined by :term:`COREBASE`).
:term:`MIME_XDG_PACKAGES`
The current implementation of the :ref:`mime-xdg <ref-classes-mime-xdg>`
class cannot detect ``.desktop`` files installed through absolute
symbolic links. Use this setting to make the class create post-install
and post-remove scripts for these packages anyway, to invoke the
``update-destop-database`` command.
:term:`MIRRORS`
Specifies additional paths from which the OpenEmbedded build system
gets source code. When the build system searches for source code, it
@@ -5055,7 +5121,7 @@ system and gives an overview of their function and contents.
Controls how the OpenEmbedded build system spawns interactive
terminals on the host development system (e.g. using the BitBake
command with the ``-c devshell`` command-line option). For more
information, see the ":ref:`dev-manual/common-tasks:using a development shell`" section in
information, see the ":ref:`dev-manual/development-shell:using a development shell`" section in
the Yocto Project Development Tasks Manual.
You can use the following values for the :term:`OE_TERMINAL` variable:
@@ -5122,7 +5188,7 @@ system and gives an overview of their function and contents.
An easy way to see what overrides apply is to search for :term:`OVERRIDES`
in the output of the ``bitbake -e`` command. See the
":ref:`dev-manual/common-tasks:viewing variable values`" section in the Yocto
":ref:`dev-manual/debugging:viewing variable values`" section in the Yocto
Project Development Tasks Manual for more information.
:term:`P`
@@ -5143,7 +5209,7 @@ system and gives an overview of their function and contents.
specific by using the package name as a suffix.
You can find out more about applying this variable in the
":ref:`dev-manual/common-tasks:adding custom metadata to packages`"
":ref:`dev-manual/packages:adding custom metadata to packages`"
section in the Yocto Project Development Tasks Manual.
:term:`PACKAGE_ARCH`
@@ -5250,7 +5316,7 @@ system and gives an overview of their function and contents.
use of the :term:`INHIBIT_PACKAGE_DEBUG_SPLIT` variable.
You can find out more about debugging using GDB by reading the
":ref:`dev-manual/common-tasks:debugging with the gnu project debugger (gdb) remotely`" section
":ref:`dev-manual/debugging:debugging with the gnu project debugger (gdb) remotely`" section
in the Yocto Project Development Tasks Manual.
:term:`PACKAGE_EXCLUDE`
@@ -5409,7 +5475,7 @@ system and gives an overview of their function and contents.
the :ref:`core-image-minimal-initramfs <ref-manual/images:images>`
image. When working with an initial RAM filesystem (initramfs) image,
use the :term:`PACKAGE_INSTALL` variable. For information on creating an
initramfs, see the ":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`" section
:term:`Initramfs`, see the ":ref:`dev-manual/building:building an initial ram filesystem (Initramfs) image`" section
in the Yocto Project Development Tasks Manual.
:term:`PACKAGE_INSTALL_ATTEMPTONLY`
@@ -5432,7 +5498,7 @@ system and gives an overview of their function and contents.
:term:`PACKAGE_WRITE_DEPS`.
For information on running post-installation scripts, see the
":ref:`dev-manual/common-tasks:post-installation scripts`"
":ref:`dev-manual/new-recipe:post-installation scripts`"
section in the Yocto Project Development Tasks Manual.
:term:`PACKAGECONFIG`
@@ -5583,7 +5649,7 @@ system and gives an overview of their function and contents.
For an example of how to use the :term:`PACKAGES_DYNAMIC` variable when
you are splitting packages, see the
":ref:`dev-manual/common-tasks:handling optional module packaging`"
":ref:`dev-manual/packages:handling optional module packaging`"
section in the Yocto Project Development Tasks Manual.
:term:`PACKAGESPLITFUNCS`
@@ -5618,7 +5684,7 @@ system and gives an overview of their function and contents.
the ``do_compile`` task that result in race conditions, you can clear
the :term:`PARALLEL_MAKE` variable within the recipe as a workaround. For
information on addressing race conditions, see the
":ref:`dev-manual/common-tasks:debugging parallel make races`"
":ref:`dev-manual/debugging:debugging parallel make races`"
section in the Yocto Project Development Tasks Manual.
For single socket systems (i.e. one CPU), you should not have to
@@ -5628,7 +5694,7 @@ system and gives an overview of their function and contents.
not set higher than "-j 20".
For more information on speeding up builds, see the
":ref:`dev-manual/common-tasks:speeding up a build`"
":ref:`dev-manual/speeding-up-build:speeding up a build`"
section in the Yocto Project Development Tasks Manual.
:term:`PARALLEL_MAKEINST`
@@ -5648,7 +5714,7 @@ system and gives an overview of their function and contents.
the ``do_install`` task that result in race conditions, you can
clear the :term:`PARALLEL_MAKEINST` variable within the recipe as a
workaround. For information on addressing race conditions, see the
":ref:`dev-manual/common-tasks:debugging parallel make races`"
":ref:`dev-manual/debugging:debugging parallel make races`"
section in the Yocto Project Development Tasks Manual.
:term:`PATCHRESOLVE`
@@ -5748,7 +5814,7 @@ system and gives an overview of their function and contents.
For examples of how this data is used, see the
":ref:`overview-manual/concepts:automatically added runtime dependencies`"
section in the Yocto Project Overview and Concepts Manual and the
":ref:`dev-manual/common-tasks:viewing package information with \`\`oe-pkgdata-util\`\``"
":ref:`dev-manual/debugging:viewing package information with \`\`oe-pkgdata-util\`\``"
section in the Yocto Project Development Tasks Manual. For more
information on the shared, global-state directory, see
:term:`STAGING_DIR_HOST`.
@@ -5864,7 +5930,7 @@ system and gives an overview of their function and contents.
Because manually managing :term:`PR` can be cumbersome and error-prone,
an automated solution exists. See the
":ref:`dev-manual/common-tasks:working with a pr service`" section
":ref:`dev-manual/packages:working with a pr service`" section
in the Yocto Project Development Tasks Manual for more information.
:term:`PREFERRED_PROVIDER`
@@ -5887,7 +5953,7 @@ system and gives an overview of their function and contents.
PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
For more
information, see the ":ref:`dev-manual/common-tasks:using virtual providers`"
information, see the ":ref:`dev-manual/new-recipe:using virtual providers`"
section in the Yocto Project Development Tasks Manual.
.. note::
@@ -6087,7 +6153,7 @@ system and gives an overview of their function and contents.
You must
set the variable if you want to automatically start a local :ref:`PR
service <dev-manual/common-tasks:working with a pr service>`. You can
service <dev-manual/packages:working with a pr service>`. You can
set :term:`PRSERV_HOST` to other values to use a remote PR service.
@@ -6101,7 +6167,7 @@ system and gives an overview of their function and contents.
:term:`PTEST_ENABLED`
Specifies whether or not :ref:`Package
Test <dev-manual/common-tasks:testing packages with ptest>` (ptest)
Test <dev-manual/packages:testing packages with ptest>` (ptest)
functionality is enabled when building a recipe. You should not set
this variable directly. Enabling and disabling building Package Tests
at build time should be done by adding "ptest" to (or removing it
@@ -7213,10 +7279,42 @@ system and gives an overview of their function and contents.
various ``SPL_*`` variables used by the OpenEmbedded build system.
See the BeagleBone machine configuration example in the
":ref:`dev-manual/common-tasks:adding a layer using the \`\`bitbake-layers\`\` script`"
":ref:`dev-manual/layers:adding a layer using the \`\`bitbake-layers\`\` script`"
section in the Yocto Project Board Support Package Developer's Guide
for additional information.
:term:`SPLASH_IMAGES`
This variable, used by the ``psplash`` recipe, allows to customize
the default splashscreen image.
Specified images in PNG format are converted to ``.h`` files by the recipe,
and are included in the ``psplash`` binary, so you won't find them in
the root filesystem.
To make such a change, it is recommended to customize the
``psplash`` recipe in a custom layer. Here is an example structure for
an ``ACME`` board::
meta-acme/recipes-core/psplash
├── files
│   └── logo-acme.png
└── psplash_%.bbappend
And here are the contents of the ``psplash_%.bbappend`` file in
this example::
SPLASH_IMAGES = "file://logo-acme.png;outsuffix=default"
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
You could even add specific configuration options for ``psplash``,
for example::
EXTRA_OECONF += "--disable-startup-msg --enable-img-fullscreen"
For information on append files, see the
":ref:`dev-manual/layers:appending other layers metadata with your layer`"
section.
:term:`SRC_URI`
See the BitBake manual for the initial description for this variable:
@@ -7305,7 +7403,7 @@ system and gives an overview of their function and contents.
For information on limitations when inheriting the latest revision
of software using :term:`SRCREV`, see the :term:`AUTOREV` variable
description and the
":ref:`dev-manual/common-tasks:automatically incrementing a package version number`"
":ref:`dev-manual/packages:automatically incrementing a package version number`"
section, which is in the Yocto Project Development Tasks Manual.
:term:`SRCTREECOVEREDTASKS`
@@ -7807,8 +7905,7 @@ system and gives an overview of their function and contents.
SYSTEMD_SERVICE:${PN} = "connman.service"
:term:`SYSVINIT_ENABLED_GETTYS`
When using
:ref:`SysVinit <dev-manual/common-tasks:enabling system services>`,
When using :ref:`SysVinit <dev-manual/new-recipe:enabling system services>`,
specifies a space-separated list of the virtual terminals that should
run a `getty <https://en.wikipedia.org/wiki/Getty_%28Unix%29>`__
(allowing login), assuming :term:`USE_VT` is not set to
@@ -8090,7 +8187,7 @@ system and gives an overview of their function and contents.
file.
For more information on testing images, see the
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
":ref:`dev-manual/runtime-testing:performing automated runtime testing`"
section in the Yocto Project Development Tasks Manual.
:term:`TEST_SERIALCONTROL_CMD`
@@ -8163,7 +8260,7 @@ system and gives an overview of their function and contents.
TEST_SUITES = "test_A test_B"
For more information on testing images, see the
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
":ref:`dev-manual/runtime-testing:performing automated runtime testing`"
section in the Yocto Project Development Tasks Manual.
:term:`TEST_TARGET`
@@ -8182,7 +8279,7 @@ system and gives an overview of their function and contents.
You can provide the following arguments with :term:`TEST_TARGET`:
- *"qemu":* Boots a QEMU image and runs the tests. See the
":ref:`dev-manual/common-tasks:enabling runtime tests on qemu`" section
":ref:`dev-manual/runtime-testing:enabling runtime tests on qemu`" section
in the Yocto Project Development Tasks Manual for more
information.
@@ -8198,7 +8295,7 @@ system and gives an overview of their function and contents.
``meta/lib/oeqa/controllers/simpleremote.py``.
For information on running tests on hardware, see the
":ref:`dev-manual/common-tasks:enabling runtime tests on hardware`"
":ref:`dev-manual/runtime-testing:enabling runtime tests on hardware`"
section in the Yocto Project Development Tasks Manual.
:term:`TEST_TARGET_IP`
@@ -8235,7 +8332,7 @@ system and gives an overview of their function and contents.
For more information
on enabling, running, and writing these tests, see the
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
":ref:`dev-manual/runtime-testing:performing automated runtime testing`"
section in the Yocto Project Development Tasks Manual and the
":ref:`ref-classes-testimage*`" section.
@@ -8694,16 +8791,15 @@ system and gives an overview of their function and contents.
specifically set. Typically, you would set :term:`USE_DEVFS` to "0" for a
statically populated ``/dev`` directory.
See the ":ref:`dev-manual/common-tasks:selecting a device manager`" section in
See the ":ref:`dev-manual/device-manager:selecting a device manager`" section in
the Yocto Project Development Tasks Manual for information on how to
use this variable.
:term:`USE_VT`
When using
:ref:`SysVinit <dev-manual/common-tasks:enabling system services>`,
determines whether or not to run a
`getty <https://en.wikipedia.org/wiki/Getty_%28Unix%29>`__ on any
virtual terminals in order to enable logging in through those
:ref:`SysVinit <dev-manual/new-recipe:enabling system services>`,
determines whether or not to run a :wikipedia:`getty <Getty_(Unix)>`
on any virtual terminals in order to enable logging in through those
terminals.
The default value used for :term:`USE_VT` is "1" when no default value is
@@ -8868,7 +8964,7 @@ system and gives an overview of their function and contents.
OpenEmbedded build system to create a partitioned image
(``image.wic``). For information on how to create a partitioned
image, see the
":ref:`dev-manual/common-tasks:creating partitioned images using wic`"
":ref:`dev-manual/wic:creating partitioned images using wic`"
section in the Yocto Project Development Tasks Manual. For details on
the kickstart file format, see the ":doc:`/ref-manual/kickstart`" Chapter.
@@ -8896,6 +8992,19 @@ system and gives an overview of their function and contents.
previous example, some-native-tool would be replaced with an actual
native tool on which the build would depend.
:term:`WKS_FILES`
Specifies a list of candidate Wic kickstart files to be used by the
OpenEmbedded build system to create a partitioned image. Only the
first one that is found, from left to right, will be used.
This is only useful when there are multiple ``.wks`` files that can be
used to produce an image. A typical case is when multiple layers are
used for different hardware platforms, each supplying a different
``.wks`` file. In this case, you specify all possible ones through
:term:`WKS_FILES`.
If only one ``.wks`` file is used, set :term:`WKS_FILE` instead.
:term:`WORKDIR`
The pathname of the work directory in which the OpenEmbedded build
system builds a recipe. This directory is located within the

View File

@@ -41,6 +41,44 @@ functionality.
Installing the Extensible SDK
=============================
Two ways to install the Extensible SDK
--------------------------------------
Extensible SDK can be installed in two different ways, and both have
their own pros and cons:
#. *Setting up the Extensible SDK environment directly in a Yocto build*. This
avoids having to produce, test, distribute and maintain separate SDK
installer archives, which can get very large. There is only one environment
for the regular Yocto build and the SDK and less code paths where things can
go not according to plan. It's easier to update the SDK: it simply means
updating the Yocto layers with git fetch or layer management tooling. The
SDK extensibility is better than in the second option: just run ``bitbake``
again to add more things to the sysroot, or add layers if even more things
are required.
#. *Setting up the Extensible SDK from a standalone installer*. This has the
benefit of having a single, self-contained archive that includes all the
needed binary artifacts. So nothing needs to be rebuilt, and there is no
need to provide a well-functioning binary artefact cache over the network
for developers with underpowered laptops.
Setting up the Extensible SDK environment directly in a Yocto build
-------------------------------------------------------------------
#. Set up all the needed layers and a Yocto :term:`Build Directory`, e.g. a regular Yocto
build where ``bitbake`` can be executed.
#. Run::
$ bitbake meta-ide-support
$ bitbake -c populate_sysroot gtk+3
# or any other target or native item that the application developer would need
$ bitbake build-sysroots
Setting up the Extensible SDK from a standalone installer
---------------------------------------------------------
The first thing you need to do is install the SDK on your :term:`Build
Host` by running the ``*.sh`` installation script.
@@ -102,16 +140,7 @@ must be writable for whichever users need to use the SDK.
The following command shows how to run the installer given a toolchain
tarball for a 64-bit x86 development host system and a 64-bit x86 target
architecture. The example assumes the SDK installer is located in
``~/Downloads/`` and has execution rights.
.. note::
If you do not have write permissions for the directory into which you
are installing the SDK, the installer notifies you and exits. For
that case, set up the proper permissions in the directory and run the
installer again.
::
``~/Downloads/`` and has execution rights::
$ ./Downloads/poky-glibc-x86_64-core-image-minimal-core2-64-toolchain-ext-2.5.sh
Poky (Yocto Project Reference Distro) Extensible SDK installer version 2.5
@@ -132,11 +161,23 @@ architecture. The example assumes the SDK installer is located in
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
$ . /home/scottrif/poky_sdk/environment-setup-core2-64-poky-linux
.. note::
If you do not have write permissions for the directory into which you
are installing the SDK, the installer notifies you and exits. For
that case, set up the proper permissions in the directory and run the
installer again.
Running the Extensible SDK Environment Setup Script
===================================================
Once you have the SDK installed, you must run the SDK environment setup
script before you can actually use the SDK. This setup script resides in
script before you can actually use the SDK.
When using a SDK directly in a Yocto build, you will find the script in
``tmp/deploy/images/qemux86-64/`` in your :term:`Build Directory`.
When using a standalone SDK installer, this setup script resides in
the directory you chose when you installed the SDK, which is either the
default ``poky_sdk`` directory or the directory you chose during
installation.
@@ -154,11 +195,14 @@ script is for an IA-based target machine using i586 tuning::
SDK environment now set up; additionally you may now run devtool to perform development tasks.
Run devtool --help for further details.
Running the setup script defines many environment variables needed in
order to use the SDK (e.g. ``PATH``,
:term:`CC`,
:term:`LD`, and so forth). If you want to
see all the environment variables the script exports, examine the
When using the environment script directly in a Yocto build, it can
be run similarly::
$ source tmp/deploy/images/qemux86-64/environment-setup-core2-64-poky-linux
Running the setup script defines many environment variables needed in order to
use the SDK (e.g. ``PATH``, :term:`CC`, :term:`LD`, and so forth). If you want
to see all the environment variables the script exports, examine the
installation file itself.
Using ``devtool`` in Your SDK Workflow
@@ -172,11 +216,8 @@ system.
.. note::
The use of
devtool
is not limited to the extensible SDK. You can use
devtool
to help you easily develop any project whose build output must be
The use of ``devtool`` is not limited to the extensible SDK. You can use
``devtool`` to help you easily develop any project whose build output must be
part of an image built using the build system.
The ``devtool`` command line is organized similarly to
@@ -186,15 +227,10 @@ all the commands.
.. note::
See the "
devtool
 Quick Reference
" in the Yocto Project Reference Manual for a
devtool
quick reference.
See the ":doc:`/ref-manual/devtool-reference`"
section in the Yocto Project Reference Manual.
Three ``devtool`` subcommands provide entry-points into
development:
Three ``devtool`` subcommands provide entry-points into development:
- *devtool add*: Assists in adding new software to be built.
@@ -233,9 +269,9 @@ shows common development flows you would use with the ``devtool add``
command:
.. image:: figures/sdk-devtool-add-flow.png
:align: center
:width: 100%
1. *Generating the New Recipe*: The top part of the flow shows three
#. *Generating the New Recipe*: The top part of the flow shows three
scenarios by which you could use ``devtool add`` to generate a recipe
based on existing source code.
@@ -252,7 +288,7 @@ command:
- *Left*: The left scenario in the figure represents a common
situation where the source code does not exist locally and needs
to be extracted. In this situation, the source code is extracted
to the default workspace - you do not want the files in some
to the default workspace --- you do not want the files in some
specific location outside of the workspace. Thus, everything you
need will be located in the workspace::
@@ -267,13 +303,12 @@ command:
- *Middle*: The middle scenario in the figure also represents a
situation where the source code does not exist locally. In this
case, the code is again upstream and needs to be extracted to some
local area - this time outside of the default workspace.
local area --- this time outside of the default workspace.
.. note::
If required,
devtool
always creates a Git repository locally during the extraction.
If required, ``devtool`` always creates a Git repository locally
during the extraction.
Furthermore, the first positional argument ``srctree`` in this case
identifies where the ``devtool add`` command will locate the
@@ -282,8 +317,7 @@ command:
$ devtool add recipe srctree fetchuri
In summary,
the source code is pulled from fetchuri and extracted into the
In summary, the source code is pulled from fetchuri and extracted into the
location defined by ``srctree`` as a local Git repository.
Within workspace, ``devtool`` creates a recipe named recipe along
@@ -302,28 +336,26 @@ command:
recipe for the code and places the recipe into the workspace.
Because the extracted source code already exists, ``devtool`` does
not try to relocate the source code into the workspace - only the
not try to relocate the source code into the workspace --- only the
new recipe is placed in the workspace.
Aside from a recipe folder, the command also creates an associated
append folder and places an initial ``*.bbappend`` file within.
2. *Edit the Recipe*: You can use ``devtool edit-recipe`` to open up the
#. *Edit the Recipe*: You can use ``devtool edit-recipe`` to open up the
editor as defined by the ``$EDITOR`` environment variable and modify
the file::
$ devtool edit-recipe recipe
From within the editor, you
can make modifications to the recipe that take effect when you build
it later.
From within the editor, you can make modifications to the recipe that
take effect when you build it later.
3. *Build the Recipe or Rebuild the Image*: The next step you take
#. *Build the Recipe or Rebuild the Image*: The next step you take
depends on what you are going to do with the new code.
If you need to eventually move the build output to the target
hardware, use the following ``devtool`` command:
:;
hardware, use the following ``devtool`` command::
$ devtool build recipe
@@ -334,7 +366,7 @@ command:
$ devtool build-image image
4. *Deploy the Build Output*: When you use the ``devtool build`` command
#. *Deploy the Build Output*: When you use the ``devtool build`` command
to build out your recipe, you probably want to see if the resulting
build output works as expected on the target hardware.
@@ -348,20 +380,22 @@ command:
development machine.
You can deploy your build output to that target hardware by using the
``devtool deploy-target`` command: $ devtool deploy-target recipe
target The target is a live target machine running as an SSH server.
``devtool deploy-target`` command::
$ devtool deploy-target recipe target
The target is a live target machine running as an SSH server.
You can, of course, also deploy the image you build to actual
hardware by using the ``devtool build-image`` command. However,
``devtool`` does not provide a specific command that allows you to
deploy the image to actual hardware.
5. *Finish Your Work With the Recipe*: The ``devtool finish`` command
#. *Finish Your Work With the Recipe*: The ``devtool finish`` command
creates any patches corresponding to commits in the local Git
repository, moves the new recipe to a more permanent layer, and then
resets the recipe so that the recipe is built normally rather than
from the workspace.
::
from the workspace::
$ devtool finish recipe layer
@@ -379,11 +413,9 @@ command:
.. note::
You can use the
devtool reset
command to put things back should you decide you do not want to
proceed with your work. If you do use this command, realize that
the source tree is preserved.
You can use the ``devtool reset`` command to put things back should you
decide you do not want to proceed with your work. If you do use this
command, realize that the source tree is preserved.
Use ``devtool modify`` to Modify the Source of an Existing Component
--------------------------------------------------------------------
@@ -401,9 +433,9 @@ diagram shows common development flows for the ``devtool modify``
command:
.. image:: figures/sdk-devtool-modify-flow.png
:align: center
:width: 100%
1. *Preparing to Modify the Code*: The top part of the flow shows three
#. *Preparing to Modify the Code*: The top part of the flow shows three
scenarios by which you could use ``devtool modify`` to prepare to
work on source files. Each scenario assumes the following:
@@ -430,11 +462,9 @@ command:
$ devtool modify recipe
Once
``devtool``\ locates the recipe, ``devtool`` uses the recipe's
:term:`SRC_URI` statements to
locate the source code and any local patch files from other
developers.
Once ``devtool`` locates the recipe, ``devtool`` uses the recipe's
:term:`SRC_URI` statements to locate the source code and any local
patch files from other developers.
With this scenario, there is no ``srctree`` argument. Consequently, the
default behavior of the ``devtool modify`` command is to extract
@@ -470,11 +500,7 @@ command:
.. note::
You cannot provide a URL for
srctree
using the
devtool
command.
You cannot provide a URL for ``srctree`` using the ``devtool`` command.
As with all extractions, the command uses the recipe's :term:`SRC_URI`
statements to locate the source files and any associated patch
@@ -512,11 +538,11 @@ command:
append file for the recipe in the ``devtool`` workspace. The
recipe and the source code remain in their original locations.
2. *Edit the Source*: Once you have used the ``devtool modify`` command,
#. *Edit the Source*: Once you have used the ``devtool modify`` command,
you are free to make changes to the source files. You can use any
editor you like to make and save your source code modifications.
3. *Build the Recipe or Rebuild the Image*: The next step you take
#. *Build the Recipe or Rebuild the Image*: The next step you take
depends on what you are going to do with the new code.
If you need to eventually move the build output to the target
@@ -527,9 +553,11 @@ command:
On the other hand, if you want an image to contain the recipe's
packages from the workspace for immediate deployment onto a device
(e.g. for testing purposes), you can use the ``devtool build-image``
command: $ devtool build-image image
command::
4. *Deploy the Build Output*: When you use the ``devtool build`` command
$ devtool build-image image
#. *Deploy the Build Output*: When you use the ``devtool build`` command
to build out your recipe, you probably want to see if the resulting
build output works as expected on target hardware.
@@ -554,13 +582,12 @@ command:
``devtool`` does not provide a specific command to deploy the image
to actual hardware.
5. *Finish Your Work With the Recipe*: The ``devtool finish`` command
#. *Finish Your Work With the Recipe*: The ``devtool finish`` command
creates any patches corresponding to commits in the local Git
repository, updates the recipe to point to them (or creates a
``.bbappend`` file to do so, depending on the specified destination
layer), and then resets the recipe so that the recipe is built
normally rather than from the workspace.
::
normally rather than from the workspace::
$ devtool finish recipe layer
@@ -568,8 +595,7 @@ command:
Any changes you want to turn into patches must be staged and
committed within the local Git repository before you use the
devtool finish
command.
``devtool finish`` command.
Because there is no need to move the recipe, ``devtool finish``
either updates the original recipe in the original layer or the
@@ -584,11 +610,9 @@ command:
.. note::
You can use the
devtool reset
command to put things back should you decide you do not want to
proceed with your work. If you do use this command, realize that
the source tree is preserved.
You can use the ``devtool reset`` command to put things back should you
decide you do not want to proceed with your work. If you do use this
command, realize that the source tree is preserved.
Use ``devtool upgrade`` to Create a Version of the Recipe that Supports a Newer Version of the Software
-------------------------------------------------------------------------------------------------------
@@ -602,27 +626,25 @@ counterparts.
.. note::
Several methods exist by which you can upgrade recipes -
``devtool upgrade``
happens to be one. You can read about all the methods by which you
can upgrade recipes in the
:ref:`dev-manual/common-tasks:upgrading recipes` section
of the Yocto Project Development Tasks Manual.
Several methods exist by which you can upgrade recipes ---
``devtool upgrade`` happens to be one. You can read about all the methods by
which you can upgrade recipes in the
:ref:`dev-manual/upgrading-recipes:upgrading recipes` section of the Yocto
Project Development Tasks Manual.
The ``devtool upgrade`` command is flexible enough to allow you to
specify source code revision and versioning schemes, extract code into
or out of the ``devtool``
:ref:`devtool-the-workspace-layer-structure`,
and work with any source file forms that the
:ref:`bitbake:bitbake-user-manual/bitbake-user-manual-fetching:fetchers` support.
The ``devtool upgrade`` command is flexible enough to allow you to specify
source code revision and versioning schemes, extract code into or out of the
``devtool`` :ref:`devtool-the-workspace-layer-structure`, and work with any
source file forms that the
:ref:`bitbake-user-manual/bitbake-user-manual-fetching:fetchers` support.
The following diagram shows the common development flow used with the
``devtool upgrade`` command:
.. image:: figures/sdk-devtool-upgrade-flow.png
:align: center
:width: 100%
1. *Initiate the Upgrade*: The top part of the flow shows the typical
#. *Initiate the Upgrade*: The top part of the flow shows the typical
scenario by which you use the ``devtool upgrade`` command. The
following conditions exist:
@@ -674,7 +696,7 @@ The following diagram shows the common development flow used with the
are incorporated into the build the next time you build the software
just as are other changes you might have made to the source.
2. *Resolve any Conflicts created by the Upgrade*: Conflicts could happen
#. *Resolve any Conflicts created by the Upgrade*: Conflicts could happen
after upgrading the software to a new version. Conflicts occur
if your recipe specifies some patch files in :term:`SRC_URI` that
conflict with changes made in the new version of the software. For
@@ -685,7 +707,7 @@ The following diagram shows the common development flow used with the
conflicts created through use of a newer or different version of the
software.
3. *Build the Recipe or Rebuild the Image*: The next step you take
#. *Build the Recipe or Rebuild the Image*: The next step you take
depends on what you are going to do with the new code.
If you need to eventually move the build output to the target
@@ -700,7 +722,7 @@ The following diagram shows the common development flow used with the
$ devtool build-image image
4. *Deploy the Build Output*: When you use the ``devtool build`` command
#. *Deploy the Build Output*: When you use the ``devtool build`` command
or ``bitbake`` to build your recipe, you probably want to see if the
resulting build output works as expected on target hardware.
@@ -714,15 +736,18 @@ The following diagram shows the common development flow used with the
development machine.
You can deploy your build output to that target hardware by using the
``devtool deploy-target`` command: $ devtool deploy-target recipe
target The target is a live target machine running as an SSH server.
``devtool deploy-target`` command::
$ devtool deploy-target recipe target
The target is a live target machine running as an SSH server.
You can, of course, also deploy the image you build using the
``devtool build-image`` command to actual hardware. However,
``devtool`` does not provide a specific command that allows you to do
this.
5. *Finish Your Work With the Recipe*: The ``devtool finish`` command
#. *Finish Your Work With the Recipe*: The ``devtool finish`` command
creates any patches corresponding to commits in the local Git
repository, moves the new recipe to a more permanent layer, and then
resets the recipe so that the recipe is built normally rather than
@@ -734,8 +759,7 @@ The following diagram shows the common development flow used with the
If you specify a destination layer that is the same as the original
source, then the old version of the recipe and associated files are
removed prior to adding the new version.
::
removed prior to adding the new version::
$ devtool finish recipe layer
@@ -750,11 +774,9 @@ The following diagram shows the common development flow used with the
.. note::
You can use the
devtool reset
command to put things back should you decide you do not want to
proceed with your work. If you do use this command, realize that
the source tree is preserved.
You can use the ``devtool reset`` command to put things back should you
decide you do not want to proceed with your work. If you do use this
command, realize that the source tree is preserved.
A Closer Look at ``devtool add``
================================
@@ -822,10 +844,9 @@ run ``devtool add`` again and provide the name or the version.
Dependency Detection and Mapping
--------------------------------
The ``devtool add`` command attempts to detect build-time dependencies
and map them to other recipes in the system. During this mapping, the
command fills in the names of those recipes as part of the
:term:`DEPENDS` variable within the
The ``devtool add`` command attempts to detect build-time dependencies and map
them to other recipes in the system. During this mapping, the command fills in
the names of those recipes as part of the :term:`DEPENDS` variable within the
recipe. If a dependency cannot be mapped, ``devtool`` places a comment
in the recipe indicating such. The inability to map a dependency can
result from naming not being recognized or because the dependency simply
@@ -842,10 +863,8 @@ following to your recipe::
.. note::
The
devtool add
command often cannot distinguish between mandatory and optional
dependencies. Consequently, some of the detected dependencies might
The ``devtool add`` command often cannot distinguish between mandatory and
optional dependencies. Consequently, some of the detected dependencies might
in fact be optional. When in doubt, consult the documentation or the
configure script for the software the recipe is building for further
details. In some cases, you might find you can substitute the
@@ -855,16 +874,14 @@ following to your recipe::
License Detection
-----------------
The ``devtool add`` command attempts to determine if the software you
are adding is able to be distributed under a common, open-source
license. If so, the command sets the
:term:`LICENSE` value accordingly.
The ``devtool add`` command attempts to determine if the software you are
adding is able to be distributed under a common, open-source license. If
so, the command sets the :term:`LICENSE` value accordingly.
You should double-check the value added by the command against the
documentation or source files for the software you are building and, if
necessary, update that :term:`LICENSE` value.
The ``devtool add`` command also sets the
:term:`LIC_FILES_CHKSUM`
The ``devtool add`` command also sets the :term:`LIC_FILES_CHKSUM`
value to point to all files that appear to be license-related. Realize
that license statements often appear in comments at the top of source
files or within the documentation. In such cases, the command does not
@@ -944,10 +961,9 @@ mind:
Adding Native Tools
-------------------
Often, you need to build additional tools that run on the :term:`Build
Host` as opposed to
the target. You should indicate this requirement by using one of the
following methods when you run ``devtool add``:
Often, you need to build additional tools that run on the :term:`Build Host`
as opposed to the target. You should indicate this requirement by using one of
the following methods when you run ``devtool add``:
- Specify the name of the recipe such that it ends with "-native".
Specifying the name like this produces a recipe that only builds for
@@ -971,8 +987,7 @@ Adding Node.js Modules
----------------------
You can use the ``devtool add`` command two different ways to add
Node.js modules: 1) Through ``npm`` and, 2) from a repository or local
source.
Node.js modules: through ``npm`` or from a repository or local source.
Use the following form to add Node.js modules through ``npm``::
@@ -987,7 +1002,7 @@ these behaviors ensure the reproducibility and integrity of the build.
.. note::
- You must use quotes around the URL. The ``devtool add`` does not
- You must use quotes around the URL. ``devtool add`` does not
require the quotes, but the shell considers ";" as a splitter
between multiple commands. Thus, without the quotes,
``devtool add`` does not receive the other parts, which results in
@@ -1002,9 +1017,8 @@ repository or local source tree. To add modules this way, use
$ devtool add https://github.com/diversario/node-ssdp
In this example, ``devtool``
fetches the specified Git repository, detects the code as Node.js code,
fetches dependencies using ``npm``, and sets
In this example, ``devtool`` fetches the specified Git repository, detects the
code as Node.js code, fetches dependencies using ``npm``, and sets
:term:`SRC_URI` accordingly.
Working With Recipes
@@ -1013,17 +1027,17 @@ Working With Recipes
When building a recipe using the ``devtool build`` command, the typical
build progresses as follows:
1. Fetch the source
#. Fetch the source
2. Unpack the source
#. Unpack the source
3. Configure the source
#. Configure the source
4. Compile the source
#. Compile the source
5. Install the build output
#. Install the build output
6. Package the installed output
#. Package the installed output
For recipes in the workspace, fetching and unpacking is disabled as the
source tree has already been prepared and is persistent. Each of these
@@ -1038,9 +1052,8 @@ does not include complete instructions for building the software.
Instead, common functionality is encapsulated in classes inherited with
the ``inherit`` directive. This technique leaves the recipe to describe
just the things that are specific to the software being built. There is
a :ref:`base <ref-classes-base>` class that
is implicitly inherited by all recipes and provides the functionality
that most recipes typically need.
a :ref:`ref-classes-base` class that is implicitly inherited by all recipes
and provides the functionality that most recipes typically need.
The remainder of this section presents information useful when working
with recipes.
@@ -1066,9 +1079,9 @@ links created within the source tree:
``${``\ :term:`D`\ ``}``.
- ``sysroot-destdir/``: Contains a subset of files installed within
``do_install`` that have been put into the shared sysroot. For
:ref:`ref-tasks-install` that have been put into the shared sysroot. For
more information, see the
":ref:`dev-manual/common-tasks:sharing files between recipes`" section.
":ref:`dev-manual/new-recipe:sharing files between recipes`" section.
- ``packages-split/``: Contains subdirectories for each package
produced by the recipe. For more information, see the
@@ -1082,18 +1095,13 @@ Setting Configure Arguments
If the software your recipe is building uses GNU autoconf, then a fixed
set of arguments is passed to it to enable cross-compilation plus any
extras specified by
:term:`EXTRA_OECONF` or
:term:`PACKAGECONFIG_CONFARGS`
extras specified by :term:`EXTRA_OECONF` or :term:`PACKAGECONFIG_CONFARGS`
set within the recipe. If you wish to pass additional options, add them
to :term:`EXTRA_OECONF` or :term:`PACKAGECONFIG_CONFARGS`. Other supported build
tools have similar variables (e.g.
:term:`EXTRA_OECMAKE` for
CMake, :term:`EXTRA_OESCONS`
for Scons, and so forth). If you need to pass anything on the ``make``
command line, you can use :term:`EXTRA_OEMAKE` or the
:term:`PACKAGECONFIG_CONFARGS`
variables to do so.
tools have similar variables (e.g. :term:`EXTRA_OECMAKE` for CMake,
:term:`EXTRA_OESCONS` for Scons, and so forth). If you need to pass anything on
the ``make`` command line, you can use :term:`EXTRA_OEMAKE` or the
:term:`PACKAGECONFIG_CONFARGS` variables to do so.
You can use the ``devtool configure-help`` command to help you set the
arguments listed in the previous paragraph. The command determines the
@@ -1117,8 +1125,7 @@ the build host.
Recipes should never write files directly into the sysroot. Instead,
files should be installed into standard locations during the
:ref:`ref-tasks-install` task within
the ``${``\ :term:`D`\ ``}`` directory. A
:ref:`ref-tasks-install` task within the ``${``\ :term:`D`\ ``}`` directory. A
subset of these files automatically goes into the sysroot. The reason
for this limitation is that almost all files that go into the sysroot
are cataloged in manifests in order to ensure they can be removed later
@@ -1134,14 +1141,12 @@ the target device, it is important to understand packaging because the
contents of the image are expressed in terms of packages and not
recipes.
During the :ref:`ref-tasks-package`
task, files installed during the
:ref:`ref-tasks-install` task are
split into one main package, which is almost always named the same as
the recipe, and into several other packages. This separation exists
because not all of those installed files are useful in every image. For
example, you probably do not need any of the documentation installed in
a production image. Consequently, for each recipe the documentation
During the :ref:`ref-tasks-package` task, files installed during the
:ref:`ref-tasks-install` task are split into one main package, which is almost
always named the same as the recipe, and into several other packages. This
separation exists because not all of those installed files are useful in every
image. For example, you probably do not need any of the documentation installed
in a production image. Consequently, for each recipe the documentation
files are separated into a ``-doc`` package. Recipes that package
software containing optional modules or plugins might undergo additional
package splitting as well.
@@ -1149,8 +1154,7 @@ package splitting as well.
After building a recipe, you can see where files have gone by looking in
the ``oe-workdir/packages-split`` directory, which contains a
subdirectory for each package. Apart from some advanced cases, the
:term:`PACKAGES` and
:term:`FILES` variables controls
:term:`PACKAGES` and :term:`FILES` variables controls
splitting. The :term:`PACKAGES` variable lists all of the packages to be
produced, while the :term:`FILES` variable specifies which files to include
in each package by using an override to specify the package. For
@@ -1192,16 +1196,11 @@ target machine.
.. note::
The
devtool deploy-target
and
devtool undeploy-target
commands do not currently interact with any package management system
on the target device (e.g. RPM or OPKG). Consequently, you should not
intermingle
devtool deploy-target
and package manager operations on the target device. Doing so could
result in a conflicting set of files.
The ``devtool deploy-target`` and ``devtool undeploy-target`` commands do
not currently interact with any package management system on the target
device (e.g. RPM or OPKG). Consequently, you should not intermingle
``devtool deploy-target`` and package manager operations on the target
device. Doing so could result in a conflicting set of files.
Installing Additional Items Into the Extensible SDK
===================================================
@@ -1215,9 +1214,25 @@ need to link to libGL but you are not sure which recipe provides libGL.
You can use the following command to find out::
$ devtool search libGL mesa
A free implementation of the OpenGL API
A free implementation of the OpenGL API Once you know the recipe
(i.e. ``mesa`` in this example), you can install it::
Once you know the recipe
(i.e. ``mesa`` in this example), you can install it.
When using the extensible SDK directly in a Yocto build
-------------------------------------------------------
In this scenario, the Yocto build tooling, e.g. ``bitbake``
is directly accessible to build additional items, and it
can simply be executed directly::
$ bitbake mesa
$ bitbake build-sysroots
When using a standalone installer for the Extensible SDK
--------------------------------------------------------
::
$ devtool sdk-install mesa
@@ -1244,13 +1259,13 @@ To update your installed SDK, use ``devtool`` as follows::
$ devtool sdk-update
The previous command assumes your SDK provider has set the
default update URL for you through the :term:`SDK_UPDATE_URL`
variable as described in the
The previous command assumes your SDK provider has set the default update URL
for you through the :term:`SDK_UPDATE_URL` variable as described in the
":ref:`sdk-manual/appendix-customizing:Providing Updates to the Extensible SDK After Installation`"
section. If the SDK provider has not set that default URL, you need to
specify it yourself in the command as follows: $ devtool sdk-update
path_to_update_directory
specify it yourself in the command as follows::
$ devtool sdk-update path_to_update_directory
.. note::
@@ -1267,15 +1282,15 @@ those customers need an SDK that has custom libraries. In such a case,
you can produce a derivative SDK based on the currently installed SDK
fairly easily by following these steps:
1. If necessary, install an extensible SDK that you want to use as a
#. If necessary, install an extensible SDK that you want to use as a
base for your derivative SDK.
2. Source the environment script for the SDK.
#. Source the environment script for the SDK.
3. Add the extra libraries or other components you want by using the
#. Add the extra libraries or other components you want by using the
``devtool add`` command.
4. Run the ``devtool build-sdk`` command.
#. Run the ``devtool build-sdk`` command.
The previous steps take the recipes added to the workspace and construct
a new SDK installer that contains those recipes and the resulting binary

View File

@@ -1019,7 +1019,7 @@
id="tspan1183-1-8"
x="-52.348656"
y="518.42615"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:37.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke:none">Objets</tspan></text>
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:37.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke:none">Objects</tspan></text>
<text
xml:space="preserve"
style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

View File

@@ -142,7 +142,7 @@ the following types of tests:
- *Package Testing:* A Package Test (ptest) runs tests against packages
built by the OpenEmbedded build system on the target machine. See the
:ref:`Testing Packages With
ptest <dev-manual/common-tasks:Testing Packages With ptest>` section
ptest <dev-manual/packages:Testing Packages With ptest>` section
in the Yocto Project Development Tasks Manual and the
":yocto_wiki:`Ptest </Ptest>`" Wiki page for more
information on Ptest.

View File

@@ -27,7 +27,7 @@ In the second version of the program, a script was added to make validation
easier and clearer, the script is called ``yocto-check-layer`` and is
available in :term:`OpenEmbedded-Core (OE-Core)`.
See :ref:`dev-manual/common-tasks:making sure your layer is compatible with yocto project`
See :ref:`dev-manual/layers:making sure your layer is compatible with yocto project`
for details.
========

View File

@@ -66,7 +66,7 @@ layers.
For general information on layers, see the
":ref:`overview-manual/yp-intro:the yocto project layer model`"
section in the Yocto Project Overview and Concepts Manual. For information on how
to create layers, see the ":ref:`dev-manual/common-tasks:understanding and creating layers`"
to create layers, see the ":ref:`dev-manual/layers:understanding and creating layers`"
section in the Yocto Project Development Tasks Manual.
Configuring Toaster to Hook Into Your Layer Index

View File

@@ -42,7 +42,7 @@ Transitioning to a custom environment for systems development
You might want to start with the build specification that Poky provides
(which is reference embedded distribution) and then add your newly chosen
layers to that. Here is the information :ref:`about adding layers
<dev-manual/common-tasks:Understanding and Creating Layers>`.
<dev-manual/layers:Understanding and Creating Layers>`.
#. **Based on the layers you've chosen, make needed changes in your
configuration**.
@@ -58,7 +58,7 @@ Transitioning to a custom environment for systems development
releases. If you are using a Yocto Project release earlier than 2.4, use the
``yocto-layer create`` tool. The ``bitbake-layers`` tool also provides a number
of other useful layer-related commands. See
:ref:`dev-manual/common-tasks:creating a general layer using the
:ref:`dev-manual/layers:creating a general layer using the
\`\`bitbake-layers\`\` script` section.
#. **Create your own layer for the BSP you're going to use**.
@@ -79,7 +79,7 @@ Transitioning to a custom environment for systems development
process of refinement. Start by getting each step of the build process
working beginning with fetching all the way through packaging. Next, run the
software on your target and refine further as needed. See :ref:`Writing a New
Recipe <dev-manual/common-tasks:writing a new recipe>` in the
Recipe <dev-manual/new-recipe:writing a new recipe>` in the
Yocto Project Development Tasks Manual for more information.
#. **Now you're ready to create an image recipe**.
@@ -103,7 +103,7 @@ Transitioning to a custom environment for systems development
needs to change for your distribution. If you find yourself adding a lot of
configuration to your local.conf file aside from paths and other typical
local settings, it's time to :ref:`consider creating your own distribution
<dev-manual/common-tasks:creating your own distribution>`.
<dev-manual/custom-distribution:creating your own distribution>`.
You can add product specifications that can customize the distribution if
needed in other layers. You can also add other functionality specific to the

View File

@@ -131,7 +131,7 @@ contact us with other suggestions.
say "bitbake foo" where "foo" is the name for a specific recipe. As you
become more advanced using the Yocto Project, and if builds are failing, it
can be useful to make sure the fetch itself works as desired. Here are some
valuable links: :ref:`dev-manual/common-tasks:Using a Development
valuable links: :ref:`dev-manual/development-shell:Using a Development
Shell` for information on how to build and run a specific task using
devshell. Also, the :ref:`SDK manual shows how to build out a specific recipe
<sdk-manual/extensible:use \`\`devtool modify\`\` to modify the source of an existing component>`.

View File

@@ -1,7 +1,7 @@
DISTRO = "poky"
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
#DISTRO_VERSION = "3.4+snapshot-${METADATA_REVISION}"
DISTRO_VERSION = "4.0.11"
DISTRO_VERSION = "4.0.13"
DISTRO_CODENAME = "kirkstone"
SDK_VENDOR = "-pokysdk"
SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}"
@@ -34,22 +34,13 @@ TCLIBCAPPEND = ""
SANITY_TESTED_DISTROS ?= " \
poky-3.3 \n \
poky-3.4 \n \
ubuntu-16.04 \n \
ubuntu-18.04 \n \
ubuntu-20.04 \n \
ubuntu-21.10 \n \
ubuntu-22.04 \n \
fedora-34 \n \
fedora-35 \n \
fedora-36 \n \
centos-7 \n \
centos-8 \n \
debian-9 \n \
debian-10 \n \
fedora-37 \n \
debian-11 \n \
opensuseleap-15.3 \n \
almalinux-8.5 \n \
almalinux-8.7 \n \
almalinux-8.8 \n \
"
# add poky sanity bbclass
INHERIT += "poky-sanity"

View File

@@ -1,3 +1,5 @@
SUMMARY = "Recipe with an alias of an SPDX license"
DESCRIPTION = "Is licensed with an alias of an SPDX license to be used for testing"
LICENSE = "GPLv3"
EXCLUDE_FROM_WORLD = "1"

View File

@@ -1,3 +1,5 @@
SUMMARY = "Recipe with an SPDX license"
DESCRIPTION = "Is licensed with an SPDX license to be used for testing"
LICENSE = "GPL-3.0-only"
EXCLUDE_FROM_WORLD = "1"

View File

@@ -1,3 +1,5 @@
SUMMARY = "Recipe with multiple SPDX licenses"
DESCRIPTION = "Is licensed with multiple SPDX licenses to be used for testing"
LICENSE = "GPL-2.0-only & GPL-3.0-only & LGPL-3.0-only"
EXCLUDE_FROM_WORLD = "1"

View File

@@ -1,3 +1,5 @@
SUMMARY = "Recipe with a non-SPDX license"
DESCRIPTION = "Is licensed with a non-SPDX license to be used for testing"
LICENSE = "FooLicense"
EXCLUDE_FROM_WORLD = "1"

View File

@@ -49,7 +49,6 @@ oe_cargo_build () {
do_compile[progress] = "outof:\s+(\d+)/(\d+)"
cargo_do_compile () {
oe_cargo_fix_env
oe_cargo_build
}

View File

@@ -101,6 +101,10 @@ cargo_common_do_configure () {
EOF
}
do_compile:prepend () {
oe_cargo_fix_env
}
oe_cargo_fix_env () {
export CC="${RUST_TARGET_CC}"
export CXX="${RUST_TARGET_CXX}"

View File

@@ -76,6 +76,8 @@ python () {
# Dummy value because the default function can't be called with blank SRC_URI
d.setVar('SRCPV', '999')
# sstate is never going to work for external source trees, disable it
d.setVar('SSTATE_SKIP_CREATION', '1')
if d.getVar('CONFIGUREOPT_DEPTRACK') == '--disable-dependency-tracking':
d.setVar('CONFIGUREOPT_DEPTRACK', '')
@@ -83,10 +85,7 @@ python () {
tasks = filter(lambda k: d.getVarFlag(k, "task"), d.keys())
for task in tasks:
if task.endswith("_setscene"):
# sstate is never going to work for external source trees, disable it
bb.build.deltask(task, d)
elif os.path.realpath(d.getVar('S')) == os.path.realpath(d.getVar('B')):
if os.path.realpath(d.getVar('S')) == os.path.realpath(d.getVar('B')):
# Since configure will likely touch ${S}, ensure only we lock so one task has access at a time
d.appendVarFlag(task, "lockfiles", " ${S}/singletask.lock")

View File

@@ -130,10 +130,11 @@ IMAGE_CMD:cpio () {
if [ ! -L ${IMAGE_ROOTFS}/init ] && [ ! -e ${IMAGE_ROOTFS}/init ]; then
if [ -L ${IMAGE_ROOTFS}/sbin/init ] || [ -e ${IMAGE_ROOTFS}/sbin/init ]; then
ln -sf /sbin/init ${WORKDIR}/cpio_append/init
touch -h -r ${IMAGE_ROOTFS}/sbin/init ${WORKDIR}/cpio_append/init
else
touch ${WORKDIR}/cpio_append/init
touch -r ${IMAGE_ROOTFS} ${WORKDIR}/cpio_append/init
fi
(cd ${WORKDIR}/cpio_append && echo ./init | cpio -oA -H newc -F ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cpio)
(cd ${WORKDIR}/cpio_append && echo ./init | cpio --reproducible -oA -H newc -F ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cpio)
fi
fi
}

View File

@@ -83,7 +83,7 @@ do_image_wic[recrdeptask] += "do_deploy"
do_image_wic[deptask] += "do_image_complete"
WKS_FILE_DEPENDS_DEFAULT = '${@bb.utils.contains_any("BUILD_ARCH", [ 'x86_64', 'i686' ], "syslinux-native", "",d)}'
WKS_FILE_DEPENDS_DEFAULT += "bmap-tools-native cdrtools-native btrfs-tools-native squashfs-tools-native e2fsprogs-native"
WKS_FILE_DEPENDS_DEFAULT += "bmap-tools-native cdrtools-native btrfs-tools-native squashfs-tools-native e2fsprogs-native erofs-utils-native"
# Unified kernel images need objcopy
WKS_FILE_DEPENDS_DEFAULT += "virtual/${MLPREFIX}${TARGET_PREFIX}binutils"
WKS_FILE_DEPENDS_BOOTLOADERS = ""

Some files were not shown because too many files have changed in this diff Show More