Compare commits

..

494 Commits

Author SHA1 Message Date
Richard Purdie
daf096e295 bitbake: fetch/git: Handle github dropping git:// support
github is dropping support for git protocol in Git urls. Add code to remap
this to https in a way that could be used in older bitbake versions.

(Bitbake rev: 7150c8286fba6c4b5ab03d3a74f06e068c9c28c8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-03 11:31:50 +00:00
Richard Purdie
d88d62c20d selftest/signing: Ensure build path relocation is safe
Similarly to 04ee0e8b95cd8ed890374e0007f976684206b630, ensure only full
build paths are replaced in the environment to avoid breaking buildtools.

(From OE-Core rev: db8ceed8f2eca92a4cffe8295481d8041281fdd0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:54 +01:00
Khem Raj
dd683d8b2f uninative: Upgrade to 2.9
This supports glibc upto 2.32 which is now rolling into distributions

(From OE-Core rev: 8523e55cc70ef5972da63a666aabacfe2a258e8f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:54 +01:00
Zhixiong Chi
0b9096fc1e gnutls: CVE-2020-24659
Backport the CVE patch from the usptream:
https://gitlab.com/gnutls/gnutls.git
commit 29ee67c205855e848a0a26e6d0e4f65b6b943e0a

(From OE-Core rev: 7a9969fe8cb8b039976bcd482d7b815922ae54ea)

Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Li Zhou
d3de07b781 go: Security Advisory - go - CVE-2020-24553
Backport the patch from <https://github.com/golang/go/commit/
eb07103a083237414145a45f029c873d57037e06> to solve CVE-2020-24553.

(From OE-Core rev: 794dfa173adbce781c9fe609d58d3ed9b8cbd501)

Signed-off-by: Li Zhou <li.zhou@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Li Wang
791f8fea3f qemu: CVE-2020-14364
Backport patch from:
https://git.qemu.org/?p=qemu.git;a=patch;h=b946434f2659a182afc17e155be6791ebfb302eb

(From OE-Core rev: 8b4163c4e60f5e96790522e129f84102831feb8e)

Signed-off-by: Li Wang <li.wang@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Li Zhou
a17aa2f360 bind: Security Advisory - bind - CVE-2020-8624
Backport patch from <https://gitlab.isc.org/isc-projects/bind9/
commit/e4cccf9668c7adee4724a7649ec64685f82c8677> to solve CVE-2020-8624.

(From OE-Core rev: 660d170b6889b5e644da9fbef22220f63169aeb5)

Signed-off-by: Li Zhou <li.zhou@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Li Zhou
5cf27f353b bind: Security Advisory - bind - CVE-2020-8623
Backport patch from <https://gitlab.isc.org/isc-projects/bind9/
commit/8d807cc21655eaa6e6a08afafeec3682c0f3f2ab> to solve CVE-2020-8623.

(From OE-Core rev: cfbd144e94452bc4a197b284b5ec47cfff5b0047)

Signed-off-by: Li Zhou <li.zhou@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Li Zhou
301132a6d0 bind: Security Advisory - bind - CVE-2020-8622
Backport patch from <https://gitlab.isc.org/isc-projects/bind9/
commit/6ed167ad0a647dff20c8cb08c944a7967df2d415> to solve CVE-2020-8622.

(From OE-Core rev: 64a2b62c41574bf4d45dd8ed447ee3b6c05fbd84)

Signed-off-by: Li Zhou <li.zhou@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Li Wang
dc4767f775 qemu : fix CVE-2020-15863
(From OE-Core rev: 30b0784e2eef9c4d45296857b0792a4374020fab)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Li Wang <Li.Wang@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Stefan Ghinea
5ce2f71ca3 qemu: CVE-2020-10756
An out-of-bounds read vulnerability was found in the SLiRP networking
implementation of the QEMU emulator. This flaw occurs in the
icmp6_send_echoreply() routine while replying to an ICMP echo request,
also known as ping. This flaw allows a malicious guest to leak the
contents of the host memory, resulting in possible information disclosure.
This flaw affects versions of libslirp before 4.3.1.

References:
https://nvd.nist.gov/vuln/detail/CVE-2020-10756
https://bugzilla.redhat.com/show_bug.cgi?id=1835986

Upstream patches:
c7ede54cbd

(From OE-Core rev: b6d73f9f8c055928051dc57943baf5833568d04f)

Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Zhixiong Chi
ba9c9dc106 go: CVE-2020-16845
Backport CVE patch from the upstream:
https://github.com/golang/go.git
commit 027d7241ce050d197e7fabea3d541ffbe3487258

(From OE-Core rev: 4fa2a6c171e62855ad9a2bd7a2d8507067f62988)

Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Li Wang
a76794a159 qemu: CVE-2020-16092
Backport CVE patch from the upstream:
https://git.qemu.org/?p=qemu.git;a=commit;h=035e69b063835a5fd23cacabd63690a3d84532a8

(From OE-Core rev: ffb65dd34fce4c75b9aa00dc0197bf83198a9980)

Signed-off-by: Li Wang <li.wang@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Li Zhou
f65146f02f xserver-xorg: Security Advisory - xserver-xorg - CVE-2020-14347
Backport patch from <https://gitlab.freedesktop.org/xorg/xserver/-/
commit/aac28e162e5108510065ad4c323affd6deffd816> to solve
CVE-2020-14347.

(From OE-Core rev: 850b454c090523f7f7503d4472fda77a4b2fc7a0)

Signed-off-by: Li Zhou <li.zhou@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Richard Purdie
a1d518a787 oeqa/runtime_test: Disable test_testimage_virgl_gtk
This test keeps failing on the autobuilder and is proving extremely
annoying. It works much better in later releases but for zeus and
earlier, lets just stop running it as it doesn't really tell us
anything useful at this point, nobody has any plans to improve
the distro exclusions or otherwise fix it in the older releases.

(From OE-Core rev: 290b9083b539a938fe8e12d5b17bb1348644a4e8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Richard Purdie
7db53268bf python3-testtools: Avoid traceback2 module requirement
traceback2 adds traceback for python2. Rather than depend on traceback2, we're
python3 only so just use traceback.

This caused breakage in oe-selftest -j which uses testtools on the autobuilder
using buildtools-tarball.

[YOCTO #13652]

(From OE-Core rev: ee80a06c107375e3cf0d246ea17c09dda4536dab)

(From OE-Core rev: 9f51e83ab407c3dff6624b6ae1b03ca6c326d382)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Richard Purdie
44b251630e acl: Disable parallel make install
Similiarly to attr, do_install fails on newer versions of make with interesting
and hard to debug errors. Disablle parallle make install as a workaround.
Later verisons of acl in newer releases don't have the issue.

(From OE-Core rev: 036a4b425f88a237c2c7c1b9575bd2d372a8e130)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Richard Purdie
f88445342f attr: Disable parallel make install
do_install fails on newer versions of make with interesting and hard to
debug errors. Disablle parallle make install as a workaround. Later verisons
of attr in newer releases don't have the issue.

(From OE-Core rev: 3bea0931087698b9913f56bb93df3ef279ab4930)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Richard Purdie
25ac7e58c8 oeqa/selftest: Ensure buildtools in environment variables isn't replaced
This avoids the seeing broken replacements like:
oe-selftest-centos/build/build-st-926tools/sysroots/x86_64-pokysdk-linux/etc/ssl/certs/ca-certificates.crt
which understandably break builds.

(From OE-Core rev: 04ee0e8b95cd8ed890374e0007f976684206b630)

(Cherry-picked from f930e2cadb but adjusted for thud)
(From OE-Core rev: 3841b0e2a2e1c1ebd296c6057831b3e463fcba69)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Richard Purdie
8b269b3a2b oeqa/testsdk: Use original PATH
We want to test the SDK with PATH from the original host, not with our own
tools injected via HOSTTOOLS. It even uses some tools which aren't in
HOSTTOOLS.

This is necessary after changing the SDK to not reset PATH to the system
default which is bad for other reasons and brings the testing into sync
with that change.

(From OE-Core rev: 87c9602fd0dedc7bcf75b822aaf5f6ebfc17737c)

(From OE-Core rev: e58bc5ea7d4da2e50e1820e80a5f906ce38d2372)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Jeremy Puhlman
1b0398e616 buildtools-extended-tarball: add nativesdk-libxcrypt-dev
virtual/crypt-native is assume provided in bitbake.conf, so
buildtools-extended-tarball shoud provide crypt since it doesn't
use the host's headers/libraries.

[YOCTO #13714]

(From OE-Core rev: da948b25d5ef452fb35275d108e18d2a2829f4fb)

(From OE-Core rev: bc42406d83310398bc4d4db4244252411eff117d)

Signed-off-by: Jeremy A. Puhlman <jpuhlman@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:41 +01:00
Richard Purdie
6bb33deba8 glibc: Update nativesdk locale relocation patch
The locale binary reported incorrect locale lists in relocated toolchains
as some path references were not relocated by this patch. Fix this missing
relocations so the locale binary correctly reports the locales.

(From OE-Core rev: f7a6a72880009380ae81bc7fc863921a26811c8c)

(From OE-Core rev: e4c4337e642f565e9988a4a2c50a995090d1f49e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:40 +01:00
Jeremy Puhlman
c5df372e50 buildtools-tarball: add nativesdk-python
(From OE-Core rev: 6467eb4461f3cab16cab2ba63154c92fc2adacef)

Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:40 +01:00
Steve Sakoman
84bcfc299c buildtools-tarball: export OPENSSL_CONF in environment setup
The autobuilder has been experiencing SSL: CERTIFICATE_VERIFY_FAILED
errors during error report uploads when using buildtools due to looking
for certs in /opt/poky

(From OE-Core rev: 197f1d5d14b8e57295f5a81c03c86abba5328614)

(From OE-Core rev: 35c6ab2501672083cf8b974d8b9c3daa3202de36)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:40 +01:00
Liwei Song
816f4d5c46 buildtools-tarball: export OPENSSL_CONF for openssl
export OPENSSL_CONF to aviod SDK openssl can not find openssl.cnf.

(From OE-Core rev: 0aaf3dd17dcde959e9c0d62543cb91c9b33551b4)

(From OE-Core rev: 63d8569b2c9f66e8123e2672a7f8fb8e7cc1f0b4)

Signed-off-by: Liwei Song <liwei.song@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:40 +01:00
Jeremy Puhlman
338b29de40 buildtools-extended-tarball: Add libstc++.a
Builds like native-openjdk, really wants a to link
some tools against the static version. Since when
using the extended tarball, its the only place to
get it, add the library.

(From OE-Core rev: 59c4a3fdbbfd5a6aaba7e0a1675dcd5866a7f3a4)

(From OE-Core rev: 152709dec03bbac582ca63b65f2efb835e0b33fb)

Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:40 +01:00
Tim Orling
6c03620d50 nativesdk-buildtools-perl-dummy: add dependencies for autoconf and automake
* For buildtools-extended-tarball, where we are adding all of build-essentials
  to the nativesdk, we need additional perl modules for autoconf and automake.

(From OE-Core rev: f0f766160663407ea7683d31bbf5f011accc9ba2)

(From OE-Core rev: e7ade58a7da52ebb40120020dd86dd3ae9b2148e)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:40 +01:00
Richard Purdie
44e09f313c buildtools-extended-tarball: Add locale command
The eSDK installation code checks installed locales with the locale command which is
from glibc-utils. Add this so that we find the correct locales from the buildtools.

(From OE-Core rev: 7d35e4bc6ff94a2d03c48827d7d60a6855c9029d)

(From OE-Core rev: d99b6432decec0964ac0e08698abc782c9b114f5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:40 +01:00
Richard Purdie
9e5690a157 files/toolchain-shar-extract.sh: Rework PATH cleaning
Trying to create a clean PATH breaks cases where we install a buildtools tarball
on hosts to provide newer versions of gcc. Rework the fix for #8698 to clean up
directories in PATH which don't exist isntead. Do it with python as the shell
version was too fraught with corner cases.

(From OE-Core rev: 7674b63819aa7ca95ca5ca5477a5cce32e9691eb)

(From OE-Core rev: 9825236deacf6eb311121d233435a46288c02cdb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:40 +01:00
Richard Purdie
8ec59a27a8 binutils: Install non-alternatives links for nativesdk
In the SDK we need the plain symlinks and don't use alternative providers.
When these are missing the toolchain can work incorrectly so fix this.

(From OE-Core rev: 0c06cfaa016d06cc56d80dc1c244a938f3d38a3c)

(From OE-Core rev: 0d299c5dc04407d2d54574157f4014f50f2d0468)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:40 +01:00
Richard Purdie
3abf1c375c binutils: Fix relocation of ld.so.conf in nativesdk builds
We need binutils to look at our ld.so.conf file within the SDK to ensure
we search the SDK's libdirs as well as those from the host system.

There add a patch which passes in the directory to the code using a define,
then add it to a section we relocate in a similar way to the way we relocate
the gcc internal paths. This ensures that ld works correctly in our buildtools
tarball.

Standard sysroot relocation doesn't work since we're not in a sysroot,
we want to use both the host system and SDK libs.

(From OE-Core rev: f6c1089642934ad93056ef19a0888965486ee030)

(From OE-Core rev: 09a2b16ac2bd1e3e415131e46315c851373aa7e0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:40 +01:00
Richard Purdie
7b0a620d4a buildtools-tarball: Add an ld.so.conf for nativesdk-binutils
We need to search our own libdirs, then fall back to the system ones as our
customised dynamic loader will. Have ld.so.conf reflect that.

This ensures that binutils finds libraries here when linking too.

(From OE-Core rev: ab729c362684474a8346e5256d636200826feb47)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:40 +01:00
Tim Orling
c10f210e8f buildtools-extended-tarball: add recipe with build-essentials
* For some aging distros, such as CentOS 7, the native version
  of gcc is simply too ancient and is a constant source of
  headaches for moving forward.

* Add an extended version of buildtools-tarball which adds all
  of build-essential, so that the host is now modernized and
  capable of compiling the latest versions of components.

Fixes [YOCTO #13714]

(From OE-Core rev: f0377af2325613b63716b0bb4db1ab253d79f388)

(From OE-Core rev: bb4979f0e8367b475cc9a5274933a61bb0eb64b3)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 13:21:40 +01:00
Richard Purdie
ecd64bc63d bitbake: tests/fetch: Allow wget upgrade tests to run against a local server
Currently these tests rely upon multiple uptream webservers which may change
or be unavailable. Add local copies of the test data, copy the httpserver
from OE-Core (used for testing there) and run these tests against a local
server instead.

(Bitbake rev: 1d4f3a5cb64273508357cddc32cc5367e7807191)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-09 09:44:44 +01:00
Richard Purdie
53f6c01fae bitbake: fetch2: Change git fetcher not to destroy old references
It looks like we're about to see a lot of changes in branch names in repos. If
we have the prune option here, those old names are lost, the changes propagate
to our source mirrors and our old releases break.

We have the force option so any replaced references should be replaced, its only
orphaned branches which will now be preserved.

I believe this behaviour will cause us fewer problems given the changes that
look likely to happen.

(Bitbake rev: e2fc4147bbe436ac79de187d92d3bc80a8a95349)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-08 14:46:02 +01:00
akuster
5408e48d37 Documentation: Prepared for 3.0.4 release
(From yocto-docs rev: 9f51be3a11b7422aba3617a90a98336c3c75f71e)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-16 00:00:19 +01:00
Richard Purdie
f2eb22a878 build-appliance-image: Update to zeus head revision
(From OE-Core rev: 9cad716656b427e625a470a820b8b29b1ec9f976)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-14 17:56:00 +01:00
Richard Purdie
f4b1c01110 poky.conf: Bump version for 3.0.4 zeus release
(From meta-yocto rev: 6cd2fc85bd6a40474b21b83408c0a57bb819649f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-14 17:55:48 +01:00
Rahul Taya
fb9a4d23c3 libpcre: Add fix for CVE-2020-14155
Added below patch in libpcre
CVE-2020-14155.patch

This patch fixes below error:
PCRE could allow a remote attacker to execute arbitrary
code on the system, caused by an integer overflow in
libpcre via a large number after (?C substring.
By sending a request with a large number, an attacker
can execute arbitrary code on the system or
cause the application to crash.

Tested-by: Rahul Taya <Rahul.Taya@kpit.com>
(From OE-Core rev: 3f536edfa56ce3f93223c23ed48427a0c24ede1a)

Signed-off-by: Saloni Jain <Saloni.Jain@kpit.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:51 +01:00
Li Zhou
908d6ca32d go: Security Advisory - go - CVE-2020-15586
Backport patch from <https://github.com/golang/go/commit/
fa98f46741f818913a8c11b877520a548715131f> to solve CVE-2020-15586.

(From OE-Core rev: 0e8526ce8694ebd6988c3804e4d2ccf39cda90c7)

Signed-off-by: Li Zhou <li.zhou@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:51 +01:00
Tim Orling
28e4f996b7 pypi.bbclass: use new pypi UPSTREAM_CHECK_URI
Upstream https://pypi.python.org/pypi/${PYPI_PACKAGE}/
redirects to https://pypi.org/project/${PYPI_PACKAGE}/

(From OE-Core rev: b535360f0bd2fb6a057b678f35da1803a31eeba6)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit e5f3f961242d888f3f786af8f793bf1d247fdff0)
[Yocto # 13990]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:51 +01:00
Konrad Weihmann
2eb0fb2fcf pypi.bbclass: mind package suffix on version check
Some pypi packages do have suffixes like dev, or a0 or b1.
When doing a version check on these, the version will get falsely
identified as major release versions.
Add a terminating slash to rule out those false positives

(From OE-Core rev: 13b145b9551884534f1dd2446eccfc55abc25f38)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 0603f6d9f2abfa67b99b1bc39228f6aa16a0370d)
[Yocto bug #13990]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:51 +01:00
Anuj Mittal
0fa2b2c436 gstreamer1.0: fix builds with make 4.3
Depend on make-native instead of using host make to avoid errors like:

| controller-enumtypes.c:10:1: error: stray '\' in program
|    10 | \#include "gstinterpolationcontrolsource.h"
|       | ^
| controller-enumtypes.c:10:2: error: stray '#' in program
|    10 | \#include "gstinterpolationcontrolsource.h"
|       |  ^
| controller-enumtypes.c:10:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before string constant
|    10 | \#include "gstinterpolationcontrolsource.h"
|       |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| controller-enumtypes.c:11:1: error: stray '\' in program
|    11 | \#include "gstlfocontrolsource.h"
|       | ^
| controller-enumtypes.c:11:2: error: stray '#' in program
|    11 | \#include "gstlfocontrolsource.h"

This helps building on autobuilder where some workers have buildtools
with make 4.3 installed.

Building using meson works fine so later branches are not affected and
upstream has rejected patches to fix this:

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/515

(From OE-Core rev: 74e22d0d2b61d0014f408972725469bb7a024622)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:38 +01:00
Ahmad Fatoum
5acf553451 core: glib-2.0: fix requested libmount/mkostemp/selinux not being linked in
Since 010202076760 ("meson.bbclass: avoid unexpected operating-system
names"), meson is no longer used with a cross file that appends the used
libc to the operating system name, e.g. linux-gnueabi.

Prior to that commit, the host_system == 'linux' checks in glib's meson
failed, which led to glib being compiled without libmount, mkostemp and
selinux even if explicitly requested.

As the aforementioned commit affects all recipes built by glib, it might
not be a candidate for backporting to current stable branches. To fix
just the glib issue, instances of host_system == 'linux' are patched
locally.

The patch is marked as Upstream-Status: Inappropriate as it is rendered
unnecessary for OE releases newer than Dunfell.

(From OE-Core rev: 2adcc5ade62fe10715a6c943565f71efe7627229)

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:38 +01:00
Zhixiong Chi
9d15991cfa glibc: CVE-2020-6096
Backport the CVE patch from the upstream:
git://sourceware.org/git/glibc.git
commit 79a4fa341b8a89cb03f84564fd72abaa1a2db394
commit beea361050728138b82c57dda0c4810402d342b9

(From OE-Core rev: 9059f720f00f7b8dfac89d842ad19876eae201d5)

Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:38 +01:00
Ovidiu Panait
20757f3bb4 nss: Fix CVE-2020-12399
Master (nss version 3.54) is not affected by this issue. This is a backport
from nss version 3.54.

NSS has shown timing differences when performing DSA signatures, which was
exploitable and could eventually leak private keys. This vulnerability affects
Thunderbird < 68.9.0, Firefox < 77, and Firefox ESR < 68.9.

Upstream patch:
daa823a4a2

(From OE-Core rev: c447b32c1ec0c117748a4be68dda02d375c81b85)

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:38 +01:00
Konrad Weihmann
cb791c2755 cve-update: handle baseMetricV2 as optional
Currently in NVD DB an item popped up, which hasn't set baseMetricV2.
Let the parser handle it as an optional item.
In case use baseMetricV2 before baseMetricV3

(From OE-Core rev: e1c507da9fa5fd12dd42037d0476d94fe3aac730)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fdcbf3f28289188c5a97664d1421d4a5c4991eda)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:38 +01:00
Adrian Bunk
c65ad03f2b python3-numpy: Stop shipping manual config files
Automatic generation seems to work fine,
and does not become outdated.

(From OE-Core rev: 49a9b38bb8355aa6b3413335851b7b609356e33b)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8993270f8bc65e152418d84fde03f8ead83c054b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:38 +01:00
Richard Purdie
3b60ea0339 selftest/context: Avoid tracebacks from tests using multiprocessing
We can see tracebacks where the SIGTERM handler catches things
it shouldn't. Avoid exit(1) unless we're the process that
it was intended for.

[YOCTO #13664]

(From OE-Core rev: d9c62ffac611310efd47ed6397d31dccb72fe868)

(From OE-Core rev: 45b4bd7b4d30d81bdff0d471e8d97c2322ed2f75)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit dba8c1d5ef)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:38 +01:00
Sakib Sajal
f29b31784a sqlite: backport CVE fix
Fixes CVE-2020-11655

(From OE-Core rev: 3b06a6c73f4e49c6d00f758423c2e8865ec2de00)

(From OE-Core rev: 36edee3e489e7bd94d6fa555f87d94c5ec0f3ad8)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[ without the CVE-2020-11656 fix that did not apply cleanly ]
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:38 +01:00
He Zhe
f6998f7c70 perf: Correct the substitution of python shebangs
To make the native python3 always used,

- Use sed one-liner instead
- Add substitution for ${S}/scripts/bpf_helpers_doc.py to fix the
  following warning.

File "/usr/lib/python3.6/sysconfig.py", line 421, in _init_posix
_temp = __import__(name, globals(), locals(), ['build_time_vars'], 0)
ModuleNotFoundError: No module named '_sysconfigdata'

This issue is first reported by Joel Stanley <joel@jms.id.au>
The sed one-liner is credited to Anuj Mittal <anuj.mittal@intel.com>

(From OE-Core rev: 3f93173130a94310255389cfc62c67102a4fb21b)

(From OE-Core rev: c0bcc24ccc6d769935d7fa202a1405250d94e342)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3a1a18ba9d)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:38 +01:00
Bruce Ashfield
92f184e213 perf: fix build for v5.5+
In kernel 5.5+ there are python3 scripts that explicitly use
/usr/bin/python3 as the interpreter. That will find the host
python and produce undefined results.

We add that interpreter path to our substitutions to ensure
that our sysroot variant is used.

(From OE-Core rev: 103316d50d4947b3c3500eb5cbc4845702a62d22)

(From OE-Core rev: 3269e3d2d0258ac3788ed63fa46df4d4aae33b1e)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e5c4f31275)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:38 +01:00
Charles-Antoine Couret
b9d6ffc341 utils: fix gcc 10 version detection
Utils can not detect GCC 10 correctly due to wrong regex.
It generates this error "ERROR: Can't get compiler version from gcc  --version output"

Sub-version numbers should be 1 or more digits instead of 1 only.

(From OE-Core rev: d9e58aff76edf1f5fdc31785fd81fae2c7c508c8)

Signed-off-by: Charles-Antoine Couret <charles-antoine.couret@mind.be>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 186fe4a3d390a52b87282c3e694ce3251e45ee78)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:38 +01:00
Hongxu Jia
0ecd636a52 iso-codes: switch upstream branch master -> main
(From OE-Core rev: 6e16ef0c2e0ec2bbb862231cd84e7650bd5789af)

(From OE-Core rev: add9b04f0596ade188224104595406d638a6fa73)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 75e91b8e52)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:38 +01:00
Lee Chee Yang
32fa72c75d python3: fix CVE-2020-14422
(From OE-Core rev: f12ea255a24d60c625d4e6ab4de0633df49679a5)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
[Rebased for v3.7.8]
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:38 +01:00
wenlin.kang@windriver.com
f77e7daad0 systemd: fix CVE-2020-13776
Backport from systemd.git.

(OE-Core master rev: a1b22b2263da6d11a4e0cbfa792d2bd1e56f5346)

(From OE-Core rev: e6f233ebcef08f61dc00d2b20f2efcfdae33a694)

Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:38 +01:00
Armin Kuster
ac2df95950 wpa-supplicant: Security fix CVE-2020-12695
Source: http://w1.fi/security/
Disposition: Backport from http://w1.fi/security/2020-1/

Affects <= 2.9 wpa-supplicant

(From OE-Core rev: 720d29cbfce34375402c6a4c17e440ffbb2659bf)

(From OE-Core rev: a341c128a5166c505ee1ec207abb87e5fa64d62e)

Signed-off-by: Armin Kuster <akuster@mvista.com>
(cherry picked from commit e9c696397ae1b4344b8329a13076f265980ee74d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
Lee Chee Yang
0e3b8415cf perl: fix CVE-2020-10543 & CVE-2020-10878
(From OE-Core rev: d9c5d9c52eb1f03ff9c907a76dda31042fb26edb)

(From OE-Core rev: de3fe84fcfe3f1c3c2ad963b1fe459ccca9472a0)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
Lee Chee Yang
6cb526d6a9 dbus: fix CVE-2020-12049
(From OE-Core rev: 3f69946c6159fa359bc5800ee72ef6151d9ecd36)

(From OE-Core rev: b5c66309b776b9228fc1d9dbfaec9ccc6f48f0e7)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
Richard Purdie
256e3a1255 perl: Fix host specific modules problems
We were seeing a ton of empty perl modules being created such as
"perl-module-x86-64-linux-encoding" where the name would include
${TARGET_ARCH}-linux. These files were already being filtered in an
earlier do_split_packages() expression so exclude them from the latter
one to remove the pointless empty modules in PACKAGES.

This doesn't explain why some were not deterministic but will recude
the do_package execution time and clean up the build directories
at the very least.

(From OE-Core rev: 5aaf9d3a748cbad17a4a3e5d9715ac2f289b007d)

(From OE-Core rev: 6103cc314520280e55366d00657723e90f609d70)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9f1a959d9831f43dda656e3b0c4d059db3363877)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
akuster
836c3b1865 bind: update to 9.11.19
Bug fix only updates.

suitable for Stable branch updates where applicable.

Drop CVE patches included in update
LIC_FILES_CHKSUM update copyright year to 2020

Full changes found at : https://gitlab.isc.org/isc-projects/bind9/-/blob/v9_11/CHANGES

(From OE-Core rev: c672d2b6c98607f1fda917f4a3189a53712e8fc2)

(From OE-Core rev: 74aacd292387f9a2c36381080ade5537af1d3d9e)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
(cherry picked from commit a6ba66cf5e754cdcd41f01d233fbef7b94a10225)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
Alexander Kanavin
77d5709875 bind: update 9.11.5-P4 -> 9.11.13
Drop backports.

Drop 0001-gen.c-extend-DIRNAMESIZE-from-256-to-512.patch and
0001-lib-dns-gen.c-fix-too-long-error.patch as problem is fixed
upstream.

(From OE-Core rev: 6965ec5c491e71d5951dfb58fc060bd0b717e33d)

(From OE-Core rev: 3f723af6059fbfed6dac0c281f212b9a02c3e026)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
Otavio Salvador
0d6a0b9c7f mtd-utils: Fix return value of ubiformat
This changeset fixes a feature regression in ubiformat.  Older versions
of ubiformat, when invoked with a flash-image, would return 0 in the
case no error was encountered.  Upon upgrading to latest, it was
discovered that ubiformat returned 255 even without encountering an
error condition.

This changeset corrects the above issue and causes ubiformat, when given an
image file, to return 0 when no errors are detected.

Backport fix from 2.1.2

(From OE-Core rev: 3ee98b6c9ddd1dd0825245ca672236b7befb9859)

(From OE-Core rev: e10f007c165ed974a0cd4d46934cd4708661aaf5)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
(cherry picked from commit 7ebacd9cbaec98fbc406e8ae99c9805a24fdadc6)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
Kai Kang
a436f5fe08 encodings: clear postinst script
Postinst script from xorg-font-common.inc doesn't apply to this recipe.
So clear the postinst script of encodings.

(From OE-Core rev: ba94c908b99713ce115e9240df525c6442a60c7a)

(From OE-Core rev: 19c87007f6f92dc94db19e3c23ad06e09f397abe)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
(cherry picked from commit 99ae6dbb7278dfd264453af852c108fa56a0d4e3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
Kai Kang
6b37ae304a wpa-supplicant: remove service templates from SYSTEMD_SERVICE
Remove service templates wpa_supplicant-nl80211@.service and
wpa_supplicant-wired@.service from SYSTEMD_SERVICE that they should NOT
be started/stopped by calling 'systemctl' in postinst and prerm scripts.

(From OE-Core rev: 7910a0d6f332253608767a9576a0d521dd87efd7)

(From OE-Core rev: c6c26311e846a688f2981b541be0966c73cd69d8)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
(cherry picked from commit fe9b8e50461ab00ab3ad8b065ebd32f0eea2a255)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
Joe Slater
662919a486 vim: _FORTIFY_SOURCE=2 be gone
vim will abort in many places with this setting.  Replace
it with the benign _FORTIFY_SOURCE=1.

(From OE-Core rev: d9de155f6452f916edd3131addd0c2eebaf4d639)

(From OE-Core rev: db1e93c33150e712b90e81450fd2e161ea2fad08)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
(cherry picked from commit 18129cbaeddb3278efe9963718556e3765f06c1e)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
Richard Purdie
d7c037ccdd patchelf: Add patch to address corrupt shared library issue
patchelf can corrupt shared libraries if the program headers don't
immediately follow the elf header. Add a patch submitted upstream
to address this.

(From OE-Core rev: faaf5f34332290708f3720a5488b3d1549d9e95a)

(From OE-Core rev: 1969b67592bf1cfb0088f89ecde516abf614238f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e7811c787bbe2f5d49b3506309499acc27189988)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
Ralph Siemsen
6d936d8d3d cve-check: include epoch in product version output
In the generated cve.log files, include the epoch in the product
version. This better matches how versions are displayed elsewhere,
in particular the bb.warn("Found unpatched CVE...") that appears
on the terminal when CVEs are found.

(From OE-Core rev: 99f6de1c74b581054c74c6b4598a5d47facc9964)

(From OE-Core rev: a8b69927485acbe504fcd75dc2cafc4c550cb66a)

Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
(cherry picked from commit e1c3c0b6e5b01304e2127f5058986697e82adf93)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
Lee Chee Yang
ea0d41cdfb libexif: fix CVE-2020-13114
(From OE-Core rev: 2e497029ee00babbc50f3c1d99580230bc46155c)

(From OE-Core rev: 221e42c20148bb57986dfa862b352b9264694003)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
Khem Raj
46809da0bb cve-check: Run it after do_fetch
Certain recipes e.g. bash readline ( from meta-gplv2 ) download patches instead of having them in
metadata, this could fail cve_check

ERROR: readline-5.2-r9 do_cve_check: File Not found: qemuarm/build/../downloads/readline52-001

This patch ensures that download is done before running CVE scan, even
though these will be external patches and may not contain CVE tags as it
expects, but it will fix the run failures as seen above

(From OE-Core rev: dbf143d79476e54e8da93101fc16eaedeec88362)

(From OE-Core rev: 4b65abc70e84187f666e2ea2ab4dcf6bf7216658)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
(cherry picked from commit e406fcb6c609a0d2456d7da0d2406d2d9fa52dd2)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
Jan-Simon Moeller
923b91efb8 file: add bzip2-replacement-native to DEPENDS to fix sstate issue
file-native when built on a Debian 10 host will embed a dependency to
'libbz2.so.1.0' (instead of 'libbz2.so.1'). This can cause issues
when sharing the sstate between hosts e.g.:

 recipe-sysroot-native/usr/lib/rpm/rpmdeps:
      error while loading shared libraries: libbz2.so.1.0: \
        cannot open shared object file: No such file or directory

To avoid this situation, let's add the bzip2-replacement-native to the
file recipe's DEPENDS_class-native .

Details in https://bugzilla.yoctoproject.org/show_bug.cgi?id=13915 .

(From OE-Core rev: 5a2bc3bfa9e1a4f37b6e26a5c40a4a9c025d03f1)

(From OE-Core rev: 693caddd3b62d0bcb76ec6d3d6faa6561b763598)

Signed-off-by: Jan-Simon Moeller <dl9pf@gmx.de>
(cherry picked from commit 4a996574464028bd5d57b90920d0887d1a81e9e9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
Kai Kang
0179a78200 gcr: depends on gnupg-native
It fails to build gcr if no commmand gpg on build host:

| meson.build:44:0: ERROR: Program(s) ['gpg2', 'gpg'] not found or not executable

Add dependency gnupg-native to fix the error.

(From OE-Core rev: da7360247995d7c8e79dfcaa0c0761952a9013f1)

(From OE-Core rev: 034f09ebd90a03a2775b44750951ce7a22e00564)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
(cherry picked from commit e4a6eda4c246b2bca059defed796bdab19a7ab5f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
Pierre-Jean Texier
da8d11016e timezone: upgrade 2019c -> 2020a
See full changelog https://github.com/eggert/tz/blob/master/NEWS#L11

(From OE-Core rev: 9d74b048e3a160d7a9a20e85817e9eb3a558af63)

(From OE-Core rev: 9a75b44244b42cdd341ee38a253b2d935ae05ee1)

Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
Adrian Bunk
33bab96f78 python3: Upgrade 3.7.7 -> 3.7.8
Backported patch removed.

(From OE-Core rev: 2c33c482ba6691ae82252f192b3c03e8c8fb7d55)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-04 23:17:37 +01:00
haiqing
a92ae31dc4 libpam: Remove option 'obscure' from common-password
libpam does not support 'obscure' checks to password,
there are the same checks in pam_cracklib module.
And this fix can remove the below error message while
updating password with 'passwd':
pam_unix(passwd:chauthtok):unrecognized option[obscure]

(From OE-Core rev: f5b90eeed7366432b39c7cd8c6ee8c23e2d4abe8)

Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ea761dbac90be77797308666fe1586b05e3df824)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-08 10:47:50 +01:00
Peter Kjellerstedt
ab25229636 relocatable.bbclass: Avoid an exception if an empty pkgconfig dir exist
Rewrite relocatable_native_pcfiles() so that it can handle that any of
the checked pkgconfig directories are empty without causing an
exception.

(From OE-Core rev: d449e6b536c197b6723dab1d61e989706c14f19c)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f9c5df6dc1c13e9b05ff1b47ad84ad339f6779a4)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-08 10:47:50 +01:00
Lili Li
f8fcc057d5 kernel.bbclass: Fix Module.symvers support
Starting from v5.8-rc1 commit 269a535ca931 (modpost: generate
vmlinux.symvers and reuse it for the second modpost"), kernel will
generate new vmlinux.symvers instead of dumping all the vmlinux symbols
into Module.symvers in the first pass.

Error log:
    'run.do_shared_workdir.16614' failed with exit code 1:
    DEBUG: cp: cannot stat 'Module.symvers': No such file or directory

This change will check the file Module.symvers existence before copying it.

(From OE-Core rev: 03248953d1eacede00971289dc9fff8d97d00464)

Signed-off-by: Lili Li <lili.li@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cd2d62a08a1dfcd890a03ee55132b6d6c65f5ab7)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-08 10:47:50 +01:00
Richard Leitner
42fd2f8e4d kernel-fitimage: introduce FIT_SIGN_ALG
make fitImage configuration signature algorithm selectable with
FIT_SIGN_ALG.

(From OE-Core rev: e24b27a2b49e97cec6153f2d642d17a901b8ba12)

(From OE-Core rev: 12dceaba5a7e3afed2ccb43d0788e5b95c602951)

Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-08 10:47:50 +01:00
haiqing
577f1b0b2f gnutls: fixed CVE-2020-13777
GnuTLS 3.6.x before 3.6.14 uses incorrect cryptography
for encrypting a session ticket

Backport the patch from upstream:
https://gitlab.com/gnutls/gnutls.git
commit c2646aeee94e71cb15c90a3147cf3b5b0ca158ca
commit 50ad8778a81f9421effa4c5a3b457f98e559b178
commit 3d7fae761e65e9d0f16d7247ee8a464d4fe002da

(From OE-Core rev: 86870cd2ff3555161ea5bb434740338ec20495a0)

Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-08 10:47:50 +01:00
Lee Chee Yang
4e90fb17b1 qemu: fix CVE-2020-10702 & CVE-2020-13765
(From OE-Core rev: 684307688eb0c1a98be8885164ecc8f578a36cf8)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-08 10:47:50 +01:00
jason.lau
09d29eb36a libjpeg-turbo: Fix CVE-2020-13790
libjpeg-turbo 2.0.4 has a heap-based buffer over-read
in get_rgb_row() in rdppm.c via a malformed PPM input file.

Upstream-Status: Backport
[3de15e0c34]

CVE:CVE-2020-13790

(From OE-Core rev: 90f4e2f299d8cd6c839b73307dc7b0ec3d389294)

Signed-off-by: Liu Haitao <haitao.liu@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-08 10:47:50 +01:00
Alexander Kanavin
e1d89748ec python3: un-break disabling the readline PACKAGECONFIG
Previously the readline module would have been built regardless of
readline's presence in the sysroot, and the recipe would
fail at package_qa.

(From OE-Core rev: 4a4413aa521f35414d94f883a74aec3beb628a9a)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-08 10:47:50 +01:00
Alexander Kanavin
eeef7b053f python3: make gdbm optional
The use case is building a gpl3-free image, without having
to rely on outdated recipes from meta-gplv2 layer.

(From OE-Core rev: 033a63507d1ccd423b8023575729ff089614303b)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-08 10:47:50 +01:00
wenlin.kang@windriver.com
9771da0a54 nfs-utils: fix CVE-2019-3689
Fix CVE-2019-3689

(From OE-Core rev: 15186556c7e6ccdb3a308c90563f61b0bbd57407)

Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-08 10:47:50 +01:00
Richard Purdie
d6c3a4db81 bitbake: tests/fetch: Switch from git.infradead.org to a YP mirror
Upstream is unavailable, breaking tests. Switch to a YP mirror since
if we can't reach that there are bigger problems. This should remove
a source of intermittent failures on the autobuilder.

(Bitbake rev: fd279f857c98d492f43cc62d9ebae18ce6412b6e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-29 15:57:08 +01:00
Yann Dirson
ca9dd4b8ea mesa: fix meson configure fix when 'dri' is excluded from PACKAGECONFIG
(From OE-Core rev: ee95a399285abbde84e0148ca957b59d65bcad0a)

Signed-off-by: Yann Dirson <yann@blade-group.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 78efff8741f869647790810a3dd41459b9d9d8a6)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:50 +01:00
Paul Barker
a6ee553b42 avahi: Don't advertise example services by default
The example service files are placed into /etc/avahi/services when we
run `make install` for avahi. This results in ssh and sftp-ssh services
being announced by default even if no ssh server is installed in an
image.

These example files should be moved away to another location such as
/usr/share/doc/avahi (taking inspiration from Arch Linux).

(From OE-Core rev: 3d8fdfc57d7fd846c8668daf730cf820ea5ecb13)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:50 +01:00
Alexander Kanavin
00c9ca0b03 strace: fix failing ptests
1. They need to be run under regular user.
2. Some tests genuinely need more time than 30 seconds
3. The Makefile patch erroneously introduced a test-breaking change.

(From OE-Core rev: 3d6bf58c7080c1cacf3ed1f270ff5acf4858c790)

(From OE-Core rev: 7bc11ef93b02ff3b223fc0b3b730ce7b06181156)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a5e90281ac)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:50 +01:00
Lee Chee Yang
fb2a791892 bind: fix CVE-2020-8616/7
fix CVE-2020-8616 and CVE-2020-8617

(From OE-Core rev: b280b3fe22a1fda62707bfa40ca78439ad201736)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:50 +01:00
Alexander Kanavin
657d14a41f icu: update SRC_URI
New releases of ICU are published on github.

(From OE-Core rev: c90113c61877b35211878286cd3b60a36b8c8684)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:50 +01:00
Alexander Kanavin
714d9c1969 gst-validate: upgrade 1.16.1 -> 1.16.2
(From OE-Core rev: 53d655fdf2c7004fa95e2bb591f1e4d2289ba674)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:50 +01:00
Anuj Mittal
d7b8f13bc2 gstreamer1.0-vaapi: upgrade 1.16.1 -> 1.16.2
(From OE-Core rev: 16b254a5c7674bd9894a20037b10202d1450ac58)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:50 +01:00
Anuj Mittal
26641489ec gstreamer1.0-rtsp-server: upgrade 1.16.1 -> 1.16.2
(From OE-Core rev: e197e69d32dd8bf0d6861f26a0fe9a46547a4e7e)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:50 +01:00
Anuj Mittal
e94429d28f gstreamer1.0-python: upgrade 1.16.1 -> 1.16.2
(From OE-Core rev: b6006b561265dc6972011d4dd1a9539b501438f1)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:50 +01:00
Anuj Mittal
d0c7b7e0d6 gstreamer1.0-omx: upgrade 1.16.1 -> 1.16.2
(From OE-Core rev: a468d593c0e17ca5a0db7314ab227b76c0fd5d69)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:50 +01:00
Anuj Mittal
5e66d35eb2 gstreamer1.0-libav: upgrade 1.16.1 -> 1.16.2
(From OE-Core rev: 8810b03648f64da502293a6a46057ea2f12e5f58)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:49 +01:00
Anuj Mittal
fcd376924e gstreamer1.0-plugins-ugly: upgrade 1.16.1 -> 1.16.2
(From OE-Core rev: 8d319a209475559ef129e3181cda4a7edf68cc22)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:49 +01:00
Anuj Mittal
8435150163 gstreamer1.0-plugins-bad: upgrade 1.16.1 -> 1.16.2
(From OE-Core rev: 06a6dc2355463568e8e0979bffe4899b916726df)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:49 +01:00
Anuj Mittal
c09bd0d9c1 gstreamer1.0-plugins-good: upgrade 1.16.1 -> 1.16.2
(From OE-Core rev: f27f40c36f12ec30b5def1d8d48aa9ed221f8402)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:49 +01:00
Anuj Mittal
f651beee8e gstreamer1.0-plugins-base: upgrade 1.16.1 -> 1.16.2
(From OE-Core rev: dedd38b6d864aacb79007b624fe69bdeec20e98d)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:49 +01:00
Anuj Mittal
ef495ef049 gstreamer1.0: upgrade 1.16.1 -> 1.16.2
(From OE-Core rev: ebd7c24aa0fd5718b23af047090bd8ddf6e80d37)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:49 +01:00
Alexander Kanavin
f65f286536 gstreamer1.0-python: add a patch to fix python 3.8 builds
(From OE-Core rev: 1d047307e11d59eb9ac0affb308407488e1853e4)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:49 +01:00
Adrian Bunk
1faa58efcc wireless-regdb: Upgrade 2019.06.03 -> 2020.04.29
(From OE-Core rev: 5b71a3f3d1bca6b52f53b97971131a6771618420)

(From OE-Core rev: 91686105f34f578458a5db1b8a40f15ca27a7944)

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:49 +01:00
Zhixiong Chi
786a0678db glibc: CVE-2020-1752
Backport the CVE patch from upstream:
git://sourceware.org/git/glibc.git
commit ddc650e9b3dc916eab417ce9f79e67337b05035c

(From OE-Core rev: 50b04216e47b1bf0da8170c7fd62d18a07d10152)

Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:49 +01:00
Richard Purdie
45c9f45b85 sstatesig: Optimise get_taskhash for hashequiv
With hashequiv the get_taskhash function is called much more regularly
and contains expensive operations. This these don't change based upon
hash in a given build, improve the caching within the function to
reduce overhead.

(From OE-Core rev: de98cfe3cde4b8d5f4b163b5fba3f129651ef06a)

(From OE-Core rev: 4c7e12ee42ff6ab228c2d8aa23a8153ff0debd4b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:49 +01:00
Lee Chee Yang
1cd36a832e ghostscript : fix CVE-2019-10216
(From OE-Core rev: 4620180a073b721dbc91d14ab64285187bec4cb7)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:49 +01:00
Lee Chee Yang
7ed7e1e332 qemu: fix CVE-2020-11869
(From OE-Core rev: 5ada35d14598505448c16a52e8fe129e72f1ed0b)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:49 +01:00
Trevor Gamblin
4683c3d6ec python3: fix CVE-2020-8492
CVE: CVE-2020-8492

(From OE-Core rev: c9ee462bb606b34ab31cfb90f84a5302d15135cf)

(From OE-Core rev: 5c8662e6ff870da917ed5efa02179d6da4addba9)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5811ed9140)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:49 +01:00
Richard Purdie
611e3276ec targetcontrol: Fix leaking log handler
We had a mystery failure on the autobuilder where runqemu appeared to
be failing as a logfile directory no longer existed. The key to
reproducing was running a runqemu where the image was deleted (as
devtool does), then running another runqemu test. E.g.:

'oe-selftest -r  devtool.DevtoolExtractTests.test_devtool_deploy_target wic.Wic2.test_qemu_efi'

This then tries to write to the logfile from the first test, the
image directory was deleted and we get strange failures.

The fix is to remove the logging handler when qemu is stopped.

(From OE-Core rev: 924b020eacf111b4fd4d731b363084e254a3422d)

(From OE-Core rev: 6893eb741c4cd4849e2fde1f86d9911b6c89db5b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9b335fa867)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:49 +01:00
Richard Purdie
6dc7ae4ff9 oeqa/qemurunner: Clean up failure handling
If you fail to setup the tap devices, runqemu will error quickly
however stdout/stderr are not shown to the user, instead a SystemExit
traceback is shown. This could explain some long since unexplained
failures on the autobuilder.

Rework the error handling so SystemExit isn't used and the
standard log failure messages can be shown. The code could
likely ultimatley need some restructuring to work effectively.

(From OE-Core rev: 83b8e66b66aa9848ed9c8761a21cb47c6443d0c6)

(From OE-Core rev: 19120fce4f55f6a2903812ed9461273a85cb3544)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e820c86fb9)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 13:32:49 +01:00
akuster
c77dade37c Documentation: Prepared for 3.0.3 release
(From yocto-docs rev: 9d522e747d2715aa0b2fe4c81cacc34bfad3e1a3)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-17 22:35:42 +01:00
Richard Purdie
05e6558514 resulttool/resultutils: Fix unicode error handling
This error handling didn't work as expected since upon failure it would
inject bytestreams back into the code leading to tracebacks.

Instead, ignore the decode errors. Fixes:

Traceback (most recent call last):
  File "/home/pokybuild/yocto-worker/a-full/build/scripts/resulttool", line 78, in <module>
    sys.exit(main())
  File "/home/pokybuild/yocto-worker/a-full/build/scripts/resulttool", line 72, in main
    ret = args.func(args, logger)
  File "/home/pokybuild/yocto-worker/a-full/build/scripts/lib/resulttool/store.py", line 70, in store
    resultutils.save_resultsdata(results, tempdir, ptestlogs=True)
  File "/home/pokybuild/yocto-worker/a-full/build/scripts/lib/resulttool/resultutils.py", line 178, in save_resultsdata
    f.write(sectionlog)
TypeError: write() argument must be str, not bytes

(From OE-Core rev: b63955977ebbf9fba291faa1b30c8dba9bd52869)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-15 11:55:45 +01:00
Richard Purdie
eac84e73e8 build-appliance-image: Update to zeus head revision
(From OE-Core rev: 9bab7c1a29a58ba7f97e253e4e0ac167b77d0e65)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-14 16:47:32 +01:00
Richard Purdie
0ae1964fb1 poky.conf: Bump version for 3.0.3 zeus release
(From meta-yocto rev: 2d2dc20359ca75203f2194415b53731ad8ff0066)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-14 16:47:09 +01:00
Jan Luebbe
cba9674143 openssl: upgrade 1.1.1f -> 1.1.1g
This also fixes CVE-2020-1967.

(From OE-Core rev: 26b13f59385c1ed871aee7653c3ee7241affca38)

Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:09 +01:00
wenlin.kang@windriver.com
f6f5d7dc7f systemd: Fix CVE-2020-1712
Fix CVE-2020-1712

(From OE-Core rev: 0d0c87e6c6082e1ac9d60d6131f889c53c25a9cc)

Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:09 +01:00
Wang Mingyu
23f4a357ca gnutls: upgrade 3.6.12 -> 3.6.13
(From OE-Core rev: 5cc0f0dcf1f41bc148b034b3f7abef756a328cd3)

(From OE-Core rev: 7e51108dc8d3fbb63b7da9728a3790c587ee36f8)

Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[ includes the fix for CVE-2020-11501 ]
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:09 +01:00
Alexander Kanavin
bfba596431 gnutls: upgrade 3.6.11.1 -> 3.6.12
(From OE-Core rev: 8652c95ceb505dd7386166842486c833ea5a7ee7)

(From OE-Core rev: 7a657beeb1ff65111481501e72092b8af021c3eb)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:09 +01:00
Alex Kiernan
ebefc69522 gnutls: upgrade 3.6.8 -> 3.6.11.1
Drop patch from 81485be19b ("gnutls: don't use HOSTTOOLS_DIR/bash as a
shell on target") as upstream now honours POSIX_SHELL when set as the
primary target shell.

(From OE-Core rev: bc487ced3be40569157fb40c99bfa68871f74744)

(From OE-Core rev: f4f933297a77f99783f9a5fb571503e1f45ad259)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:09 +01:00
Chee Yang Lee
887f299ce9 qemu/slirp: fix CVE-2020-7211
fix CVE-2020-7211 for qemu slirp submodule
see :
https://www.openwall.com/lists/oss-security/2020/01/17/2
14ec36e107

(From OE-Core rev: 31362d739834377ac4ab880029c3e3dda0cd7698)

(From OE-Core rev: c68323151b9bafb5f52dda6a4bd11712feff2e83)

Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:09 +01:00
Changqing Li
76f72ee8a9 qemu: fix CVE-2020-7039
(From OE-Core rev: 5ea3d9d83ed695827634e3216664c13fcff6d48a)

(From OE-Core rev: b7b96bd938cf4167b4abeebb68d35ba74ce0d3c6)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:09 +01:00
Adrian Bunk
e2065837fc python: Upgrade 2.7.17 -> 2.17.18
LICENSE checksum changed due to 2019 -> 2020 update.

(From OE-Core rev: b15db3ce3af3460b7f9ae1e186e453a79a056511)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:09 +01:00
Wang Mingyu
e6f5cc0af8 gnupg: upgrade 2.2.17 -> 2.2.19
(From OE-Core rev: 287de363f80a2f9919b942a1349f58575e8b91d8)

(From OE-Core rev: e0ca79be7d7a5574daea9866d20fdbc668defedc)

Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[ includes the fix for CVE-2019-14855 ]
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:09 +01:00
haiqing
5f245d29cb qemu: Add PACKAGECONFIG for glusterfs
(From OE-Core rev: b249fddf46b1e1ebeedf3c599acdadd93e6d046a)

Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:09 +01:00
Lee Chee Yang
419d592685 cve-update-db-native: clean DB if temporary file exist
when do_populate_cve_db forced stop at certain point, the
DB execution are stoped however the temporary database
file (DB-JOURNAL) are not removed. This db-journal file
indicates that DB is incomplete and set DB in readonly
mode. So when db-journal exist, remove both DB and the
db-journal and build the DB again from scratch.

[YOCTO #13682]

(From OE-Core rev: 70713df25b8ae27a21e53b0b9234567d7053800a)

(From OE-Core rev: 3f3bdb014cb6d87ee2e22db3c76b99ca6085787a)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:09 +01:00
Li Zhou
3412c7b713 git: Security Advisory - git - CVE-2020-11008
Backport the 1st -- 9th patches listed by
<https://github.com/git/git/compare/v2.17.4...v2.17.5>
to solve CVE-2020-11008.

Also backport the 2nd -- 4th patches listed by
<https://github.com/git/git/compare/v2.17.3...v2.17.4>
for CVE-2020-5260 (not necessary, and only the 1st patch is necessary
for this CVE), because some of the above 9 patches are based on them.

(From OE-Core rev: 63c7f76912f097cdfb95296778c42887b7336925)

Signed-off-by: Li Zhou <li.zhou@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:09 +01:00
Li Zhou
cfcd63e044 git: Security Advisory - git - CVE-2020-5260
Backport patch from <https://github.com/git/git/commit/
9a6bbee8006c24b46a85d29e7b38cfa79e9ab21b> to solve CVE-2020-5260.

(From OE-Core rev: e4c3adbaae41147f921dde638b25911d1f5422e1)

Signed-off-by: Li Zhou <li.zhou@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:09 +01:00
Zhixiong Chi
9f70721b9a glibc: CVE-2020-1751
Backport the CVE patch from upstream:
git://sourceware.org/git/glibc.git
commit d93769405996dfc11d216ddbe415946617b5a494

(From OE-Core rev: 807d416cb8b01de4dbb96236653bb47447018ad0)

Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:09 +01:00
Jan Luebbe
d0ebed64d9 apt-native: don't let dpkg overwrite files by default
With --force-overwrite (implied by --force-all), dpkg will not abort
when a package overwrites files from different packages. As this can
also lead to "The following package disappeared from your system as
all files have been overwritten by other packages: <package>" and
subsequently broken dependencies, this makes the simple case of
conflicting files hard to debug.

Instead of finding all possibly required force options, only disable
overwrite for now.

(From OE-Core rev: b57b311cfaabbcd08ce51760abcd64cf23e1435b)

Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:09 +01:00
Martin Jansa
0e0be80a89 prservice.py: fix do_package with newer Python in Ubuntu 20.04
* with Ubuntu 20.04 which is using python 3.8 I'm seeing a lot of errors like:
  ERROR: libxml2-2.9.10-r0 do_package: Can NOT get PRAUTO, exception No module named '_sysconfigdata'
  not sure what caused this from python 3.8, but this seems to work
* PRserv is enabled with:
  PRSERV_HOST = "localhost:0"

(From OE-Core rev: 4b26eaf7152fb712aba47a0c746333578f58ee8d)

(From OE-Core rev: c314c6695acca9ea68e38359fb03a94afa37bb2b)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c23d6f7799)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:09 +01:00
Khem Raj
67b329daf9 qemu: Replace stime() API with clock_settime
(From OE-Core rev: e69b89575e5ccec243658e09936908dd9e5d45ef)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:08 +01:00
Jeremy Puhlman
f9396d52d0 python3-native: Should not search the system for headers/libraries.
The specific issue here is rpc/rpc.h, but its likely more general.
/usr/include is searched for rpc/rpc.h and if it exists on the
system, it changes behavior. If you are using the extended buildtools
tarball on a machine that has /usr/include/rpc/rpc.h, it will decide
that is good enough and not continue to search. nis fails to build
because /usr/include and /usr/lib are not part of the include/link
paths for the buildtools tarball compiler(nor should they be).

This makes it so python3-native will not build if you are using the
extended buildtools tarball, but from a larger issue perspective it
is building in likely different ways depending on what machine it
is building on.

libtirpc is already a depend so we shouldn't need the hosts rpc/rcp.h.

(From OE-Core rev: f37dfc7907ae7bac08d40468ddde2e5b8bba030c)

(From OE-Core rev: db8bef336849570dd99900b173c44cc47b208058)

Signed-off-by: Jeremy A. Puhlman <jpuhlman@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 400743867d)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 17:32:08 +01:00
Alexander Kanavin
40daaa0c05 openssl: update to 1.1.1f
This also un-breaks python3 ptest which got broken
with 1.1.1e update.

(From OE-Core rev: bd3e0d724004a346921a25defa6d812d48d6108a)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b4ddf5b9d8cd769b7026663f93c8bc69b55d8cbf)
[AK: bugfix only update]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-29 16:11:56 +01:00
Adrian Bunk
f9ffd2a06a openssl: Upgrade 1.1.1d -> 1.1.1e
Backported patch removed.

(From OE-Core rev: 683818289ced6cd3c70860b5c97de2e89169096b)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 710bc0f8544f54750c8fb7b8affa243932927a24)
[AK: bug fix only update]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-29 16:11:56 +01:00
Denys Dmytriyenko
70c242521f openssl: recommend cryptodev-module for corresponding PACKAGECONFIG
(From OE-Core rev: 285957cba45a15c90ceb062a55c957e81486a031)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 57fcf9b517fe95e871122946cb99fe7fa9fd2e26)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-29 16:11:56 +01:00
Ovidiu Panait
3d0865c905 inetutils: Use alternatives to avoid manpage conflict
Fix the following manpage conflicts:
 * check_data_file_clashes: Package inetutils-doc wants to install file /usr/share/man/man1/tftp.1
	But that file is already provided by package  * tftp-hpa-doc
 * check_data_file_clashes: Package inetutils-doc wants to install file /usr/share/man/man8/tftpd.8
	But that file is already provided by package  * tftp-hpa-doc
 * check_data_file_clashes: Package netkit-telnet-doc wants to install file /usr/share/man/man8/telnetd.8
	But that file is already provided by package  * inetutils-doc

(From OE-Core rev: 1c2a1f29aa720d376bc7f88edfcb1ccecc35f6c2)

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fc14bfd60ad86094f65ebefbd10dbddc112d2698)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-29 16:11:56 +01:00
Lee Chee Yang
51586b5612 wic: align layer plugin path
wic look for external layer source plugin under scripts/lib/
while other tools look for lib/.

allow wic to check for source plugin at both scripts/lib/ and
lib/ to align with other tools while avoid breaking any existing
source plugin in external layer.

[YOCTO #13056]

(From OE-Core rev: 8351cb19e8a83157143b1df61cd9bbb71282e9fc)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 986baff26bd96a6265f5fe2d631818fff9f66374)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-29 16:11:56 +01:00
Richard Purdie
4d888ebbda pseudo: Ensure we use our own libsqlite
pseudo-native is special in that bitbake ends up executing it from the
sysroot-components directory before we have any workdirs for the bitbake
fakeroot worker. Since we switched to dynamically linking sqlite, it
means sqlite from the host system may be found, we really want the version
in sysroot-components. Trying to run tasks to create some special environment
for pseudo is hard and error prone. The simplest fix is to add an RPATH to
the binary so that it can correctly find the sqlite we want.

Unfortunately passing $ORIGIN into make doesn't work so well with shell
quoting so we have to fix that during do_install.

[YOCTO #13814]

(From OE-Core rev: 2cbb3a663a3d3b2dcf8c12c26843d6087789ded0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3937ca9e2dfabb1ce9bce1d536b60b1e2a43739b)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-29 16:11:56 +01:00
Lee Chee Yang
73738879a2 cve-check: CPE version '-' as all version
CPE version could be '-' to mean no version info.
Current cve_check treat it as not valid and does not report these
CVE but some of these could be a valid vulnerabilities.

Since non-valid CVE can be whitelisted, so treat '-' as all version
and report all these CVE to capture possible vulnerabilities.

Non-valid CVE to be whitelisted separately.

[YOCTO #13617]

(From OE-Core rev: 1e8e188514584f9f972c0eb733c10a61853ec3d0)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c69ee3594079589d27c10db32bc288566ebde9ef)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-29 16:11:56 +01:00
Paul Barker
74f229160c kernelsrc.bbclass: Fix externalsrc support
When the externalsrc class is used the tasks listed in
SRCTREECOVEREDTASKS are deleted to prevent them being executed. If
externalsrc is used for the kernel then this will include
virtual/kernel:do_patch.

We can depend on do_shared_workdir instead as this will survive when
externalsrc is used.

(From OE-Core rev: 5ac98c776f9b77804a0ee812f47f3ecf593e432f)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2c17d35cc7b9c5e01fd5829858d2f0234e7ac8d6)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-17 08:29:02 +01:00
Paul Barker
7b053a4ab7 perf: Fix externalsrc support
When the externalsrc class is used the tasks listed in
SRCTREECOVEREDTASKS are deleted to prevent them being executed. If
externalsrc is used for the kernel then this will include
virtual/kernel:do_patch.

We can depend on do_shared_workdir instead as this will survive when
externalsrc is used.

(From OE-Core rev: c30d6b98b739f1ee9c2ebb937e739453899b513d)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit eab605bab94552046ec4adae5debe026cc03bb4c)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-17 08:29:02 +01:00
Paul Barker
5b38b8af6a kernel-yocto.bbclass: Support config fragments with externalsrc
The merging of config fragments is performend in the do_kernel_configme
task and so config fragments will not be supported when this task is
removed from the dependency tree.

kernel-yocto adds additional tasks which may modify the source directory
to SRCTREECOVEREDTASKS so that they are removed when using externalsrc.
However, do_kernel_configme should be safe to use, the only modification
to the source tree is the potential creation of the '.kernel-meta'
directory and the '.metadir' file.

(From OE-Core rev: b7ae0fa668be008e46982190553d0738a5465efe)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 44f04c039a4d61dd18666e42b9b9865cbc3ada9e)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-17 08:29:02 +01:00
Jan Luebbe
1ee8c1b72c lib/oe/package_manager: don't try to rm /var/lib/opkg
As opkglibdir starts with a /, os.path.join will ignore
self.target_rootfs, leading to an attempt to remove /var/lib/opkg.

This only fails if it exists on the host, explaining why this remained
undiscovered for long.

(From OE-Core rev: 71711f5f20fc3744be4c9188a75606f60d524ff9)

Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fc974977cea389f54e7fc7de7b1c8fd3d8bafe58)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-17 08:29:02 +01:00
Jan Luebbe
7f1063ed94 lib/oe/package_manager: avoid installing provided packages via apt
If there already is a package providing (and conflicting against)
packages what should be installed, apt will try remove the conflicting
package (target-sdk-provides-dummy) and any that depend on it (like apt
and dpkg). This usually fails because of the protection of essential
packages. In that case, no -dev/-dbg packages are installed to the SDK.

Avoid this problem by checking which packages are already provided and
removing them from the list to be installed. Also sort the list to make
it easier to read when debugging.

(From OE-Core rev: 978eeeb7c975441e5b05253a63b9d954af2b903b)

Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3ffb339dd55f8ca7c952fd3390608510f772e19f)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-17 08:29:02 +01:00
Jan Luebbe
1eb584a335 lib/oe/package_manager: collect provided package names when using debs
This is needed for a later change to avoid installing packages which are
already provided by an installed package.

(From OE-Core rev: 1bedfdf58d3ebd06126aa45c7bdc84e66c750725)

Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ad72dfaaa2caf2c39d033dc1682f0bbbbe45dbbd)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-17 08:29:02 +01:00
Jan Luebbe
54eec13b6e lib/oe/package_manager: fix handling of last package
In commit 7d214b34e11dc57316ed5c1c7747c4601286f6d2, only the code in the
for loop was modified to store the pkgarch value. The code used if there
was no empty line at the end was not modified.

Instead of fixing the duplicated code, remove it and just make sure that
a final empty line is processed.

(From OE-Core rev: 7dba11373af742d4e4924e14e8fd386d53ffddbd)

Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a7b93c695b23d015607b179d98526b9b14c03d45)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-17 08:29:02 +01:00
Jan Luebbe
5ab3ff5dcc lib/oe/package_manager: make sure to not remove packages in apt install
apt install can decide to remove already installed packages if there are
conflicts. Avoid this by explicitly specifying --no-remove. This will
then cause a "E: Packages need to be removed but remove is disabled."
message.

(From OE-Core rev: 15790fa224f405652e8ccc93c01dee04a7259246)

Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9605a488b55042add012e9aeef13ab3f4e70e6e5)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-17 08:29:02 +01:00
Jeremy Puhlman
3e311128b2 busybox: on upgrade save busybox if it is the last shell
During a busybox upgrade on a ipk based system, it is possible
that busybox is the only shell in the system. During the uninstall
the alternative for /bin/sh is removed and everything after that
goes down hill.

* Add a check to verify if busybox is the shell, and save it to
the busyboxrm directory created in tmp. Then add an alternative
for /bin/sh that points to that busybox at the lowest priority.

* Add PATH to the busyboxrm directory using shell(as during an upgrade
busybox and its links are missing).

* When install over remove extra busybox if present.

deb and rpm are uneffected by the bug because they both drag in bash,
however neither upgrade seemed to have issue with the changes.

[YOCTO 13850]

(From OE-Core rev: 443d1c8c7fb5a69c03c813f3e90758e0add7df4b)

Signed-off-by: Jeremy A. Puhlman <jpuhlman@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a9d2af8f5b3da8239cf00a52883ca596a19ea23a)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-17 08:29:02 +01:00
haiqing
a41085d1a6 glib-2.0: fix CVE-2020-6750
GSocketClient in GNOME GLib through 2.62.4 may occasionally connect directly
to a target address instead of connecting via a proxy server when configured
to do so, because the proxy_addr field is mishandled. This bug is timing-dependent
and may occur only sporadically depending on network delays. The greatest security
relevance is in use cases where a proxy is used to help with privacy/anonymity,
even though there is no technical barrier to a direct connection.

(From OE-Core rev: 29ed9fc7341cc3db716115aef1a6910fdb893145)

Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-17 08:29:02 +01:00
Marek Vasut
eb029c9ac0 lttng-modules: update to 2.10.14
Upgrade to version 2.10.14 in order to fix some build errors
with latest 5.4 kernel.

- conflicting types for 'trace_rcu_dyntick'
  Reproductible on kernel greater than v5.4.22, starting with commit
  6cf539a87a ("rcu: Fix data-race due to atomic_t copy-by-value")

Also drop patches which are no longer required.

(From OE-Core rev: 88cce1d9d06ed4c5a7b58a31d75cfd1503605df9)

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Armin Kuster <akuster808@gmail.com>
Cc: Daniel Dragomir <Daniel.Dragomir@windriver.com>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-17 08:29:02 +01:00
Marek Vasut
782cde184e waffle: no need to depend on target python3
(From OE-Core rev: 7b4f6a4c7c5bcb4479c7e2e7eca733065cb40464)

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: Ross Burton <ross.burton@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-17 08:29:02 +01:00
Joshua Watt
5a3dd29f60 u-boot-tools: Split out inc file
Spilts out the inc file for u-boot-tools so that BSPs can include it for
their forked version of the tools, just like u-boot.inc.

As an example, this recipe [1] builds mkimage u-boot as part of the
u-boot recipe itself. This is incorrect because u-boot is a target
recipe, which means that the uninative loader transformations do not get
applied when the recipe is restored from sstate, breaking the mkimage
command breaks. The correct solution is to have a u-boot-tools-imx
recipe that pulls in their custom u-boot source; this inc file makes
that much easier to maintain.

[1]: aa27fc6209/recipes-bsp/u-boot/u-boot-imx_2019.04.bb

(From OE-Core rev: 2e15642ada8b5403ac933072a581b9af9a359122)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2f3bd198d9b1e85f17f7a587b1690ab196ab0300)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-17 08:29:02 +01:00
Chee Yang Lee
5531ffc566 wic/direct: reserve 2 sector for extended partition
extended partition should reserve at least 2 unallocated sectors
between the start of the extended partition and the start of a
logical partition.

[YOCTO #13658]

(From OE-Core rev: 884c8a0e50a49bdca5e048197a9dc0ff37cc8d1a)

(From OE-Core rev: 0743dcd0cd70dee87a49d3bcd017168352e60982)

Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 590555e3b8)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-30 17:41:56 +01:00
Bruce Ashfield
aea3843717 linux-yocto/4.19: update to v4.19.107
Updating linux-yocto/4.19 to the latest korg -stable release that comprises
the following commits:

    16ae5406361a crypto: CVE-2019-18808
    a083db76118d Linux 4.19.107
    cfc30449bbc5 Revert "char/random: silence a lockdep splat with printk()"
    8541452acba5 s390/mm: Explicitly compare PAGE_DEFAULT_KEY against zero in storage_key_init_range
    fee87e931cc5 xen: Enable interrupts when calling _cond_resched()
    28a73a946a46 ata: ahci: Add shutdown to freeze hardware resources of ahci
    43cac315bec1 rxrpc: Fix call RCU cleanup using non-bh-safe locks
    acbc5071f073 netfilter: xt_hashlimit: limit the max size of hashtable
    5a2972600a2f ALSA: seq: Fix concurrent access to queue current tick/time
    b105447809b1 ALSA: seq: Avoid concurrent access to queue flags
    63495d1e1c7c ALSA: rawmidi: Avoid bit fields for state flags
    bf3043d27755 bpf, offload: Replace bitwise AND by logical AND in bpf_prog_offload_info_fill
    3132696dd748 genirq/proc: Reject invalid affinity masks (again)
    ba2c07dfa0d8 iommu/vt-d: Fix compile warning from intel-svm.h
    c0965be4b28b ecryptfs: replace BUG_ON with error handling code
    1bae8f424c84 staging: greybus: use after free in gb_audio_manager_remove_all()
    568991c91849 staging: rtl8723bs: fix copy of overlapping memory
    f8e6a3412dc6 usb: dwc2: Fix in ISOC request length checking
    de8dbb7b02fa usb: gadget: composite: Fix bMaxPower for SuperSpeedPlus
    1cad1a6497ec scsi: Revert "target: iscsi: Wait for all commands to finish before freeing a session"
    c66b2b571211 scsi: Revert "RDMA/isert: Fix a recently introduced regression related to logout"
    b046c6fec04e Revert "dmaengine: imx-sdma: Fix memory leak"
    cd26d53a27d6 Btrfs: fix btrfs_wait_ordered_range() so that it waits for all ordered extents
    4d886f91ca13 btrfs: do not check delayed items are empty for single transaction cleanup
    68b7db197bf8 btrfs: reset fs_root to NULL on error in open_ctree
    0ba8e5f347b2 btrfs: fix bytes_may_use underflow in prealloc error condtition
    e541982a6e5f KVM: apic: avoid calculating pending eoi from an uninitialized val
    267eec2d216d KVM: nVMX: handle nested posted interrupts when apicv is disabled for L1
    85dd0eb771e8 KVM: nVMX: Check IO instruction VM-exit conditions
    e5c0857bd5cc KVM: nVMX: Refactor IO bitmap checks into helper function
    8cf20fb73e73 ext4: fix race between writepages and enabling EXT4_EXTENTS_FL
    48fdbe2a818d ext4: rename s_journal_flag_rwsem to s_writepages_rwsem
    b7dc081c24db ext4: fix mount failure with quota configured as module
    50017cec3dbb ext4: fix potential race between s_flex_groups online resizing and access
    7720966a68c8 ext4: fix potential race between s_group_info online resizing and access
    cc9948abe47b ext4: fix potential race between online resizing and write operations
    38884609b8b5 ext4: add cond_resched() to __ext4_find_entry()
    9b6e90918bc0 ext4: fix a data race in EXT4_I(inode)->i_disksize
    0e3a6e86d43b drm/nouveau/kms/gv100-: Re-set LUT after clearing for modesets
    da3418ad747f lib/stackdepot.c: fix global out-of-bounds in stack_slabs
    56ad5b4b7405 tty: serial: qcom_geni_serial: Fix RX cancel command failure
    e6ebad85883d tty: serial: qcom_geni_serial: Remove xfer_mode variable
    4e438733f727 tty: serial: qcom_geni_serial: Remove set_rfr_wm() and related variables
    1cc8834773b2 tty: serial: qcom_geni_serial: Remove use of *_relaxed() and mb()
    4d1a94fa6d14 tty: serial: qcom_geni_serial: Remove interrupt storm
    0a38fd9326fd tty: serial: qcom_geni_serial: Fix UART hang
    fe1cfc645845 KVM: x86: don't notify userspace IOAPIC on edge-triggered interrupt EOI
    ed9e97c35b45 KVM: nVMX: Don't emulate instructions in guest mode
    6ca274be314b xhci: apply XHCI_PME_STUCK_QUIRK to Intel Comet Lake platforms
    8300ed5a2175 drm/amdgpu/soc15: fix xclk for raven
    837ba4829b9f mm/vmscan.c: don't round up scan size for online memory cgroup
    ea2a11561d01 genirq/irqdomain: Make sure all irq domain flags are distinct
    576c04cbbef2 nvme-multipath: Fix memory leak with ana_log_buf
    e75d2de90b86 mm/memcontrol.c: lost css_put in memcg_expand_shrinker_maps()
    cf85f00f87db Revert "ipc,sem: remove uneeded sem_undo_list lock usage in exit_sem()"
    af4693daff1b MAINTAINERS: Update drm/i915 bug filing URL
    c9ca2010202b serdev: ttyport: restore client ops on deregistration
    463a3db812d9 tty: serial: imx: setup the correct sg entry for tx dma
    6807593e8edc tty/serial: atmel: manage shutdown in case of RS485 or ISO7816 mode
    f4e6d51f3f40 serial: 8250: Check UPF_IRQ_SHARED in advance
    f28ec250579c x86/cpu/amd: Enable the fixed Instructions Retired counter IRPERF
    5e5b443ae6cc x86/mce/amd: Fix kobject lifetime
    0a3aca3a0f41 x86/mce/amd: Publish the bank pointer only after setup has succeeded
    4512119ac90a jbd2: fix ocfs2 corrupt when clearing block group bits
    72e2df70fb52 powerpc/tm: Fix clearing MSR[TS] in current when reclaiming on signal delivery
    e34182fb8a2f staging: rtl8723bs: Fix potential overuse of kernel memory
    e4770de3ae41 staging: rtl8723bs: Fix potential security hole
    b4eab56d96f1 staging: rtl8188eu: Fix potential overuse of kernel memory
    2a50bd9e2a69 staging: rtl8188eu: Fix potential security hole
    d59f6a6e35b7 usb: dwc3: gadget: Check for IOC/LST bit in TRB->ctrl fields
    c787444891a4 usb: dwc2: Fix SET/CLEAR_FEATURE and GET_STATUS flows
    8cfda0c9c966 USB: hub: Fix the broken detection of USB3 device in SMSC hub
    37d2eb43b64c USB: hub: Don't record a connect-change event during reset-resume
    babaa26b7c1c USB: Fix novation SourceControl XL after suspend
    2debc1717cf2 usb: uas: fix a plug & unplug racing
    4db4761cfe15 USB: quirks: blacklist duplicate ep on Sound Devices USBPre2
    63d176ed148a USB: core: add endpoint-blacklist quirk
    d74d5d042d42 usb: host: xhci: update event ring dequeue pointer on purpose
    2a2582dc62e9 xhci: Fix memory leak when caching protocol extended capability PSI tables - take 2
    7c8cde41a0c3 xhci: fix runtime pm enabling for quirky Intel hosts
    dce60e7efa97 xhci: Force Maximum Packet size for Full-speed bulk devices to valid range.

    <snip>

    c7f81d70d7ae ubifs: Fix default compression selection in ubifs
    3331e61b23b1 nvme: fix kernel paging oops
    2f99d478ddbd xfs: require both realtime inodes to mount
    b2d84967f076 bcache: do not mark writeback_running too early
    6f48e23888b9 bcache: do not check if debug dentry is ERR or NULL explicitly on remove
    c318f88411a8 rtl818x: fix potential use after free
    7cf86c89d7e4 brcmfmac: set SDIO F1 MesBusyCtrl for CYW4373
    38b73129c113 brcmfmac: set F2 watermark to 256 for 4373
    6138e4b132cd mwifiex: debugfs: correct histogram spacing, formatting
    1450ff720076 mwifiex: fix potential NULL dereference and use after free
    4912b454e029 arm64: dts: renesas: draak: Fix CVBS input
    48d37cc42390 crypto: user - support incremental algorithm dumps
    43cd68d7002b s390/zcrypt: make sysfs reset attribute trigger queue reset
    5ac0da68eae1 nvme: provide fallback for discard alloc failure
    d702d7bc7eb4 scsi: qla2xxx: Fix for FC-NVMe discovery for NPIV port
    78777dd6174e scsi: qla2xxx: Fix NPIV handling for FC-NVMe
    58ab95b03497 scsi: lpfc: Enable Management features for IF_TYPE=6
    e772949a3fd6 ACPI / LPSS: Ignore acpi_device_fix_up_power() return value
    d411bd858447 ARM: ks8695: fix section mismatch warning
    22227437ca68 xfs: zero length symlinks are not valid
    4d54a7969524 PM / AVS: SmartReflex: NULL check before some freeing functions is not needed
    d2e3e3c3c14b RDMA/vmw_pvrdma: Use atomic memory allocation in create AH
    64694b276d74 arm64: preempt: Fix big-endian when checking preempt count in assembly
    2ec103458855 RDMA/hns: Fix the bug while use multi-hop of pbl
    60da6da4b511 ARM: OMAP1: fix USB configuration for device-only setups
    0086d127f90d platform/x86: mlx-platform: Fix LED configuration
    08d8ab9615c5 bus: ti-sysc: Check for no-reset and no-idle flags at the child level
    4b40393b5240 arm64: smp: Handle errors reported by the firmware
    e3d27b94111b arm64: mm: Prevent mismatched 52-bit VA support
    57f3359cdabe ARM: dts: Fix hsi gdd range for omap4
    9b1f6bde17d6 parisc: Fix HP SDC hpa address output
    d18f228f504e parisc: Fix serio address output
    72a50a1e1c65 ARM: dts: imx53-voipac-dmm-668: Fix memory node duplication
    bf39f5b323eb ARM: dts: imx25: Fix memory node duplication
    d2eb50e57a5c ARM: dts: imx27: Fix memory node duplication
    54750b6f6671 ARM: dts: imx1: Fix memory node duplication
    6aeb6bd0eda6 ARM: dts: imx23: Fix memory node duplication
    1694780bd4ca ARM: dts: imx50: Fix memory node duplication
    2442b4c0f30a ARM: dts: imx6sl: Fix memory node duplication
    bae011f4c9a4 ARM: dts: imx6sx: Fix memory node duplication
    0990926c9395 ARM: dts: imx6ul: Fix memory node duplication
    e021f0ccc4fa ARM: dts: imx7: Fix memory node duplication
    a90469345b26 ARM: dts: imx35: Fix memory node duplication
    6bc1e695b4be ARM: dts: imx31: Fix memory node duplication
    ca02e14bdd7f ARM: dts: imx53: Fix memory node duplication
    5a1e6f95733c ARM: dts: imx51: Fix memory node duplication
    8c0c8c2a80b2 ARM: debug-imx: only define DEBUG_IMX_UART_PORT if needed
    dee3f7703207 tracing: Lock event_mutex before synth_event_mutex
    67547b9b4660 ARM: dts: Fix up SQ201 flash access
    ee6d2bedb400 scsi: lpfc: Fix dif and first burst use in write commands
    20feb7333049 scsi: lpfc: Fix kernel Oops due to null pring pointers
    a8c0f6334e56 scsi: target/tcmu: Fix queue_cmd_ring() declaration
    480233f89d42 pwm: bcm-iproc: Prevent unloading the driver module while in use
    27d22db4ccf1 block: drbd: remove a stray unlock in __drbd_send_protocol()
    51a564498cfb mac80211: fix station inactive_time shortly after boot
    b707e0da2791 net/fq_impl: Switch to kvmalloc() for memory allocation
    a8a61f82cc9f ceph: return -EINVAL if given fsc mount option on kernel w/o support
    0f716cda304b net: mscc: ocelot: fix __ocelot_rmw_ix prototype
    a30c6e424fdd net: bcmgenet: reapply manual settings to the PHY
    acd6a29134f0 net: bcmgenet: use RGMII loopback for MAC reset
    ff3f7465ee98 scripts/gdb: fix debugging modules compiled with hot/cold partitioning
    22f4892950b2 ASoC: stm32: sai: add restriction on mmap support
    3f034e6889e7 watchdog: meson: Fix the wrong value of left time
    7302e7b10855 can: mcp251x: mcp251x_restart_work_handler(): Fix potential force_quit race condition
    24e10fc2e0db can: flexcan: increase error counters if skb enqueueing via can_rx_offload_queue_sorted() fails
    ee7981538293 can: rx-offload: can_rx_offload_irq_offload_fifo(): continue on error
    5c8f5485614c can: rx-offload: can_rx_offload_irq_offload_timestamp(): continue on error
    eca4b786f3bb can: rx-offload: can_rx_offload_offload_one(): use ERR_PTR() to propagate error value in case of errors
    a85ce0107d6b can: rx-offload: can_rx_offload_offload_one(): increment rx_fifo_errors on queue overflow or OOM
    b83d4e4899d6 can: rx-offload: can_rx_offload_offload_one(): do not increase the skb_queue beyond skb_queue_len_max
    77f94f0d7f52 can: rx-offload: can_rx_offload_queue_tail(): fix error handling, avoid skb mem leak
    66e21b7b9251 can: c_can: D_CAN: c_can_chip_config(): perform a sofware reset on open
    7559e68ca91f can: peak_usb: report bus recovery as well
    c5b0bbef4367 bridge: ebtables: don't crash when using dnat target in output chains
    2070b33ee987 net: fec: add missed clk_disable_unprepare in remove
    28f34294442b clk: ti: clkctrl: Fix failed to enable error with double udelay timeout
    cb5a4049608c clk: ti: dra7-atl-clock: Remove ti_clk_add_alias call
    1677a0e54937 x86/resctrl: Prevent NULL pointer dereference when reading mondata
    8ef58b82d1e4 idr: Fix idr_alloc_u32 on 32-bit systems
    88358c7610cc idr: Fix integer overflow in idr_for_each_entry
    a6359d5e2d98 powerpc/bpf: Fix tail call implementation
    4665759af735 samples/bpf: fix build by setting HAVE_ATTR_TEST to zero
    40c3b8fc47b3 ARM: dts: sun8i-a83t-tbs-a711: Fix WiFi resume from suspend
    40017db20bfa clk: sunxi-ng: a80: fix the zero'ing of bits 16 and 18
    49ade064ea4b clk: sunxi: Fix operator precedence in sunxi_divs_clk_setup
    15fc2f3c64e7 clk: at91: avoid sleeping early
    8885552a061b reset: fix reset_control_ops kerneldoc comment
    a94913c0c8cf ARM: dts: imx6qdl-sabreauto: Fix storm of accelerometer interrupts
    5b15b1bf5428 pinctrl: cherryview: Allocate IRQ chip dynamic
    a0554203bc12 clk: samsung: exynos5420: Preserve PLL configuration during suspend/resume
    80e28fa256c9 ASoC: kirkwood: fix device remove ordering
    6a7472add344 ASoC: kirkwood: fix external clock probe defer
    a2c2cf16b059 clk: samsung: exynos5433: Fix error paths
    9a5933aa1242 reset: Fix memory leak in reset_control_array_put()
    e8eb6233be9a ASoC: compress: fix unsigned integer overflow check
    7971b7fd5623 ASoC: msm8916-wcd-analog: Fix RX1 selection in RDAC2 MUX
    daa2c4030510 clocksource/drivers/mediatek: Fix error handling
    9c65bb9518ea clk: meson: gxbb: let sar_adc_clk_div set the parent clock rate

(From OE-Core rev: 5a2500a81914bab7fd107d4c4b439c01d8fbd736)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-30 17:41:56 +01:00
Tom Hochstein
cbe7c6568e security_flags.inc: fix flags missing from SDK toolchain
The security flags were missing from the SDK toolchain
because they were added specifically to class-target.
Add them to class-cross-canadian as well (since the SDK environment
file is created from cross-canadian target flags).

(From OE-Core rev: d6df153991c91a1a14b561b3af52dcf96b73e6d7)

Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Signed-off-by: Antoine Manache <a.manache@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-30 17:41:56 +01:00
Anuj Mittal
f504feabb8 e2fsprogs: backport upstream patch
Fixes a bug wherein a use after free could potentially be used to run
malicious code if a user can be tricked into running e2fsck on a
maliciously crafted file system.

Also see:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=948517

(From OE-Core rev: 23c1b157362609bd8d85c7d35e6c7f0f60c32c88)

(From OE-Core rev: bc3c82e82e6d2dce025e84b8f398379f4fc6f249)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-30 17:41:56 +01:00
Anuj Mittal
ad00b082d8 e2fsprogs: fix CVE-2019-5188
Also see:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=948508

(From OE-Core rev: 09bdcef183d885025da6aa87a7c2bf7e8268774e)

(From OE-Core rev: b3fcf13e332d8830e759ef4161161f0e54591700)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-30 17:41:56 +01:00
Julius Hemanth Pitti
2491bc87a4 nfs-utils: Disable statx if using glibc emulation
nfs-utils 2.4.1, moves from "stat" to "statx
with AT_STATX_DONT_SYNC" in parts of the code.

statx is supported in Linux kernel v4.11 and above.
For all older kernels glibc emulates statx, and it
doesn't support AT_STATX_DONT_SYNC and will return
EINVAL.

When server uses nfs-utils 2.4.1 on kernel v4.10
and older, mount.nfs4 would fail with error
"reason given by server: No such file or directory".

Since Linux v4.4 and v4.9 are LTS, its more likely
that people would use above combination.

This issue has been fixed in nfs-utils 2.4.3 and
above. Backporting fix to 2.4.1.

(From OE-Core rev: 8cbd6f6f7f10c57b27a1388883a6dc5715610600)

Signed-off-by: Julius Hemanth Pitti <jpitti@cisco.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-30 17:41:56 +01:00
Ross Burton
4ccd0345c8 sanity: check for more bits of Python
MJ: icu in master doesn't need distutils anymore, because icu 65.1 currently in
dunfell/master doesn't depend on python3-distutils anymore since:
b4d41b0561

but the icu-64.2 in zeus and openembedded-core/meta/recipes-core/ovmf/ovmf_git.bb
still need python3-distutils as described in:
http://lists.openembedded.org/pipermail/openembedded-core/2020-March/293984.html

(From OE-Core rev: da2df0251098c46a1476983db379cf33010e3035)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-30 17:41:56 +01:00
Anuj Mittal
bf506f4eba screen: fix CVE-2020-9366
(From OE-Core rev: 6d79a4d7545bc78ac759e575f6d15d7b23fad638)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-30 17:41:56 +01:00
Anuj Mittal
02299147d9 icu: fix CVE-2020-10531
(From OE-Core rev: 76f53b383b17f0cc568201843e8dac8690791495)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-30 17:41:55 +01:00
Anuj Mittal
f9ef210967 bluez: fix CVE-2020-0556
It was discovered that BlueZ's HID and HOGP profiles implementations
don't specifically require bonding between the device and the host.

This creates an opportunity for an malicious device to connect to a
target host to either impersonate an existing HID device without
security or to cause an SDP or GATT service discovery to take place
which would allow HID reports to be injected to the input subsystem from
a non-bonded source.

(From OE-Core rev: d598f8eee0741148416e8660e10c716654205cb5)

(From OE-Core rev: c940e4b858d6be28b198770768117ecc098fa0d3)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bed169a07b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-19 09:57:51 +00:00
Wenlin Kang
9542f3282e libarchive: Fix CVE-2020-9308
Fix CVE-2020-9308

(From OE-Core rev: 878817358eb7c25ffa48d10dde9475299674a96c)

Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-19 09:57:51 +00:00
Adrian Bunk
acb0b159be python3: Upgrade 3.7.6 -> 3.7.7
THE LICENSE checksum changed in this update due to copyright notice
added for 2020.

(From OE-Core rev: 3c40cfe7433999272e1698e2c914d6d190f76b63)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-19 09:57:51 +00:00
Stefan Ghinea
d08c1b7e9c aspell: CVE-2019-20433
libaspell.a in GNU Aspell before 0.60.8 has a buffer over-read for a string
ending with a single '\0' byte, if the encoding is set to ucs-2 or ucs-4
outside of the application, as demonstrated by the ASPELL_CONF environment
variable.

References:
https://nvd.nist.gov/vuln/detail/CVE-2019-20433

Upstream patches:
de29341638
cefd447e55

(From OE-Core rev: 07dc85604baf696cccf784c909dbad67275ad7b3)

Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-19 09:57:51 +00:00
Ross Burton
61210237a7 sqlite: fix numerous CVEs
Fix the following CVEs:

- CVE-2019-19244
- CVE-2019-19923
- CVE-2019-19924
- CVE-2019-19925
- CVE-2019-19926
- CVE-2019-19959
- CVE-2019-20218

(From OE-Core rev: feb8982ac6670af3bcb1243b51054bba9b027c83)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[ removed the CVE-2019-19880 fix that did not apply cleanly ]
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-19 09:57:50 +00:00
Lee Chee Yang
983a51fd1d libpcre2: fix CVE-2019-20454
(From OE-Core rev: 8ec7a51da26f07fd43b5e6787b15c8636009b183)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-19 09:57:50 +00:00
Lee Chee Yang
70686ed9aa qemu: fix CVE-2019-20382
(From OE-Core rev: dac4545cdf0ab848086da96eac123d0c640cd8b2)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-19 09:57:50 +00:00
Chee Yang Lee
c6f99b055e cve-check: fix ValueError
fix below error for whitelisted recipe and recipe skip cve check.

Error:
The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
     0001:
 *** 0002:do_cve_check(d)
     0003:
File: '/poky-master/meta/classes/cve-check.bbclass', lineno: 59, function: do_cve_check
     0055:        try:
     0056:            patched_cves = get_patches_cves(d)
     0057:        except FileNotFoundError:
     0058:            bb.fatal("Failure in searching patches")
 *** 0059:        whitelisted, patched, unpatched = check_cves(d, patched_cves)
     0060:        if patched or unpatched:
     0061:            cve_data = get_cve_info(d, patched + unpatched)
     0062:            cve_write_data(d, patched, unpatched, whitelisted, cve_data)
     0063:    else:
Exception: ValueError: not enough values to unpack (expected 3, got 2)

(From OE-Core rev: d8cfc309f9dd0dc8904ab18e5898770502ee2540)

Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 64a362bd2dd0b4f3165d5162adbc600826af66f8)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-16 16:44:54 +00:00
Chee Yang Lee
8b1eccc311 cve-check: show whitelisted status
change whitelisted CVE status from "Patched" to "Whitelisted".

[Yocto #13687]

(From OE-Core rev: 707b3a41b3cacfb7f1d1ed75f9a298ff4721735e)

Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 181bdd670492525f9488d52c3ebb9a1b142e35ea)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-16 16:44:54 +00:00
Zhixiong Chi
c5c4666f6a glibc: CVE-2020-10029
Backport the CVE patch from upstream:
[https://sourceware.org/git/gitweb.cgi?p=glibc.git;
a=patch;h=9333498794cde1d5cca518badf79533a24114b6f]

(From OE-Core rev: 229bc59863265433121656b57320d90808f6569e)

Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-16 16:44:54 +00:00
Richard Purdie
3237bb394c maintainers: Add entry for buildtools-extended-tarball
(From OE-Core rev: 4281342a04078990bb0a110760ff2dc053eccc93)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 61d4d3d5a9f27e0fbf1d7ed6db818a779643b8f3)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-16 16:44:54 +00:00
Lee Chee Yang
95a319c7b4 virglrenderer: fix multiple CVEs
fix these CVE:
CVE-2019-18390
CVE-2019-18391
CVE-2020-8002

(From OE-Core rev: 74a1ec4a39fe3b05045c1d60a89393cd25eccb1f)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-16 16:44:53 +00:00
Ovidiu Panait
ae1001ab3a dhcp: Fix REQUIRE(ctx->running) assertion triggered on SIGTERM/SIGINT
Closed a small window of time between the installation of graceful
shutdown signal handlers and application context startup, during which
the receipt of shutdown signal would cause a REQUIRE() assertion to
occur.  Note this issue is only visible when compiling with
ENABLE_GENTLE_SHUTDOWN defined.

Reference:
https://gitlab.isc.org/isc-projects/dhcp/issues/53

Upstream patches:
ce117de7a1
dbd36dfa82
95944cab60

(From OE-Core rev: 7235c62727e48415c4e81f852607311ec31b6e41)

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-16 16:44:53 +00:00
Rahul Chauhan
f4f272f72c ruby: fix CVE-2019-16254
(From OE-Core rev: b8e6eb473f3697ab76f30ca8a0abe584d3d10fa6)

Signed-off-by: Rahul Chauhan <rahulchauhankitps@gmail.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-16 16:44:53 +00:00
Nathan Rossi
917d2fc42b gcc-target.inc: Prevent sysroot from leaking into configargs.h
Prevent the full recipe-sysroot path from leaking into configargs.h. The
configargs.h header is intended to be static and unchanged as the
content is used as a means of determining that a gcc plugin is built for
the same gcc. This also effects the output of 'gcc -v'. Due to per
recipe sysroots and staging, the sysroot path would be replaced with the
sysroot local to the recipe thus changing the content of configargs.h.
This change also improves gcc binary reproducibility. The sysroot path
is replaced with the base target root "/".

(From OE-Core rev: 0f418fccab3f67a2afaa28195263d6f24831dd56)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b8d6e2ab68ee5e341fe970b191bfd334e6d2c40b)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-16 16:44:53 +00:00
Nathan Rossi
4dabdf2ff5 gcc-cross.inc: Prevent native sysroot from leaking into configargs.h
Prevent the native(sdk) sysroot path from leaking into configargs.h. The
configargs.h header is intended to be static and unchanged as the
content is used as a means of determining that a gcc plugin is built for
the same gcc. This also effects the output of 'gcc --version'. Due to
per recipe sysroots and staging, the sysroot path would be replaced with
the sysroot local to the recipe thus changing the content of
configargs.h.

The sysroot path is replaced with a generic "/host" prefix which
represents the host sysroot (e.g. native or nativesdk).

(From OE-Core rev: 9bb270b3f12ff94b1541649078741e683020ffe9)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 84a78f46d59447eeec3d69532a7506148f64c979)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-16 16:44:53 +00:00
Mark Hatle
7064f9c626 gcc-cross-canadian: A missing space in an append caused an invalid option
When configuring the cross-candian toolchain for a non-linux target system,
the resulting gcc configuration included:

  --enable-initfini-array--without-headers

these should have been two separate options.

(From OE-Core rev: fdd3d65b690c9d460a5758cf1b83e7b2edfc9559)

Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7b52893632dae7bc9ac75dddc7ad625e19f41050)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-16 16:44:53 +00:00
Armin Kuster
f42a79c02d wic/engine: lets display an error not a traceback
If the requested partition does not exist in this request "wic ls {path}:pnum"
display a nice message not a trackback

Also fix displaying the pnum and not "%s"

(From OE-Core rev: 29a1d9bed5bf7ed024870a0323f9afdf88346e4d)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 15d1722950a22649905cf8a5789d3cfe48a2a892)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-16 16:44:53 +00:00
Richard Purdie
a3187545df dummy-sdk-package: Add DUMMYPROVIDES_PACKAGES
We're about to need to use this variable in the main include file so
restructure the users of it to all set it appropriately.

(From OE-Core rev: a01bf79a35c908d6b072b984608114860b5c1e8f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4a247e7c961286cbed73b6dc0f4074ecf856402a)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-16 16:44:53 +00:00
Armin Kuster
7d8d93cfb9 cve-check: fail gracefully when file not found
With out these changes, a traceback displayed when a file
is listed in the SRC_URI but the file does not exist.

raise FileNotFoundError and print the patch then mark the task as failed.

(From OE-Core rev: d313a5912d2ecbf7796e75ee7e7cd1d442b4fa40)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit d4926c11a4ab9148bdb640a9367c9e1891491a5b)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-16 16:44:53 +00:00
Bruce Ashfield
266e22f25f linux-yocto/5.2: backport perf build fix for latest binutils
[
   Author: Changbin Du <changbin.du@gmail.com>
   Date:   Tue Jan 28 23:29:38 2020 +0800

       perf: Make perf able to build with latest libbfd

       libbfd has changed the bfd_section_* macros to inline functions
       bfd_section_<field> since 2019-09-18. See below two commits:
	 o http://www.sourceware.org/ml/gdb-cvs/2019-09/msg00064.html
	 o https://www.sourceware.org/ml/gdb-cvs/2019-09/msg00072.html

       This fix make perf able to build with both old and new libbfd.

       Signed-off-by: Changbin Du <changbin.du@gmail.com>
       Acked-by: Jiri Olsa <jolsa@redhat.com>
       Cc: Peter Zijlstra <peterz@infradead.org>
       Link: http://lore.kernel.org/lkml/20200128152938.31413-1-changbin.du@gmail.com
       Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
       Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
]

(From OE-Core rev: fb3a4c0ef61ca9b6313d4fdc6e2b28d415780dc7)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 14a338dbbe2da5a022a916081b3aab9c7472c3ce)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-16 16:44:53 +00:00
Michael Halstead
ef51ce1aef yocto-uninative.inc: version 2.8 updates glibc to 2.31
Allow sstate use in Tumbleweed and other distros as they update glibc.

(From OE-Core rev: 2da4ee30335d0b127b79a6eedad68c8559606c57)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ccb374c279b260b1fd3460f6bfd1567240816055)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-16 16:44:53 +00:00
Bruce Ashfield
04d71b42e7 linux-yocto/5.2: update to v5.2.32
Updating linux-yocto/5.2 to the latest korg -stable release that comprises
the following commits:

    ef3886a722c8 Linux 5.2.32
    ce5a5accc87e dm thin: fix use-after-free in metadata_pre_commit_callback
    9aafc6574336 cifs: Fix memory allocation in __smb2_handle_cancelled_cmd()
    e177f6d8471e drm/amd/display: add default clocks if not able to fetch them
    dba8b53f1ef4 drm/dp_mst: Correct the bug in drm_dp_update_payload_part1()
    bd427585578d drm/radeon: fix r1xx/r2xx register checker for POT textures
    b56603ead990 drm/i915/fbc: Disable fbc by default on all glk+
    5ce9d8bdf796 drm/nouveau/kms/nv50-: Limit MST BPC to 8
    86bdcc48feb0 drm/nouveau/kms/nv50-: Store the bpc we're using in nv50_head_atom
    b039a9b6d8f4 drm/nouveau/kms/nv50-: Call outp_atomic_check_view() before handling PBN
    03e122dbc136 scsi: qla2xxx: Fix incorrect SFUB length used for Secure Flash Update MB Cmd
    8bf5409573de scsi: qla2xxx: Correctly retrieve and interpret active flash region
    7af719a2ca84 scsi: qla2xxx: Change discovery state before PLOGI
    1fea09aa4b42 scsi: qla2xxx: Added support for MPI and PEP regions for ISP28XX
    30205f999d12 scsi: qla2xxx: Initialize free_work before flushing it
    39ec6bc75116 scsi: qla2xxx: Ignore NULL pointer in tcm_qla2xxx_free_mcmd
    1f08dd5fa5c5 scsi: iscsi: Fix a potential deadlock in the timeout handler
    42a2fbbc708f dm thin: Flush data device before committing metadata
    56d35c21552b dm thin metadata: Add support for a pre-commit callback
    d658f6349a2f dm btree: increase rebalance threshold in __rebalance2()
    3aca6fce0d4e dm mpath: remove harmful bio-based optimization
    2363f92cde9c drm: meson: venc: cvbs: fix CVBS mode matching
    2878bba5052a dma-buf: Fix memory leak in sync_file_merge()
    b10d7f86b5ca vfio/pci: call irq_bypass_unregister_producer() before freeing irq
    099085c85deb ARM: tegra: Fix FLOW_CTLR_HALT register clobbering by tegra_resume()
    674f30df2798 ARM: dts: s3c64xx: Fix init order of clock providers
    7fe7993bd757 cifs: Fix retrieval of DFS referrals in cifs_mount()
    6fef05311f57 CIFS: Fix NULL pointer dereference in mid callback
    42d37a87a332 CIFS: Do not miss cancelled OPEN responses
    ca8deb792b01 CIFS: Close open handle after interrupted close
    df192003fb6b CIFS: Respect O_SYNC and O_DIRECT flags during reconnect
    40ae22555ce3 cifs: Don't display RDMA transport on reconnect
    969925ff652b cifs: smbd: Return -ECONNABORTED when trasnport is not in connected state
    82fe0b779a89 cifs: smbd: Return -EINVAL when the number of iovs exceeds SMBDIRECT_MAX_SGE
    d88fc76297a7 cifs: smbd: Add messages on RDMA session destroy and reconnection
    f1bede222a44 cifs: smbd: Only queue work for error recovery on memory registration
    118c2599caf3 cifs: smbd: Return -EAGAIN when transport is reconnecting
    2c3c6e2691ff rpmsg: glink: Free pending deferred work on remove
    7286d52aa88c rpmsg: glink: Don't send pending rx_done during remove
    eed61c8c6667 rpmsg: glink: Fix rpmsg_register_device err handling
    00b748a63488 rpmsg: glink: Put an extra reference during cleanup
    ebb78ad8b431 rpmsg: glink: Fix use after free in open_ack TIMEOUT case
    b3f09043fc81 rpmsg: glink: Fix reuse intents memory leak issue
    5bfb2ef7a181 rpmsg: glink: Set tail pointer to 0 at end of FIFO
    63045fa07fba xtensa: fix syscall_set_return_value
    9247f95643ef xtensa: fix TLB sanity checker
    c848ea0969ce gfs2: fix glock reference problem in gfs2_trans_remove_revoke
    eb30a9e18f47 xtensa: use MEMBLOCK_ALLOC_ANYWHERE for KASAN shadow map
    adff286a3be5 PCI: Apply Cavium ACS quirk to ThunderX2 and ThunderX3
    f28f30c5255c PCI: rcar: Fix missing MACCTLR register setting in initialization sequence
    cb5cb799bf0b PCI: Do not use bus number zero from EA capability
    d291c94f8e57 PCI/MSI: Fix incorrect MSI-X masking on resume
    eb24be2871ad PCI: Fix Intel ACS quirk UPDCR register address
    06ad330304d2 PCI: pciehp: Avoid returning prematurely from sysfs requests
    5d558c8b1439 PCI/PM: Always return devices to D0 when thawing
    84dfe86a3851 PCI/switchtec: Read all 64 bits of part_event_bitmap
    0db244d3995f mmc: block: Add CMD13 polling for MMC IOCTLS with R1B response
    845b2cbece34 mmc: block: Make card_busy_detect() a bit more generic
    5db0e71cbee1 libertas: make lbs_ibss_join_existing() return error code on rates overflow
    36e460a8c861 libertas: don't exit from lbs_ibss_join_existing() with RCU read lock held
    2aabb3fcd7fe libertas: Fix two buffer overflows at parsing bss descriptor
    8866a53c5e7a Linux 5.2.31
    33a9ecf23bdb hsr: fix a NULL pointer dereference in hsr_dev_xmit()
    c5eba532e308 gre: refetch erspan header from skb->data after pskb_may_pull()
    8477c46262fa tcp: Protect accesses to .ts_recent_stamp with {READ,WRITE}_ONCE()
    d46e87f84fd4 tcp: tighten acceptance of ACKs not matching a child socket
    06b27e9e4496 tcp: fix rejected syncookies due to stale timestamps
    d3ce127be5c7 net: ipv6_stub: use ip6_dst_lookup_flow instead of ip6_dst_lookup
    31ecfe259fba net: ipv6: add net argument to ip6_dst_lookup_flow
    1a45655b78c5 net/mlx5e: Query global pause state before setting prio2buffer
    10ac0045c8a7 tipc: fix ordering of tipc module init and exit routine
    f8089e38f286 tcp: md5: fix potential overestimation of TCP option space
    c9b8428b8b42 openvswitch: support asymmetric conntrack
    ab45bc5d7c6f net/tls: Fix return values to avoid ENOTSUPP
    aaa20d4352a1 net: thunderx: start phy before starting autonegotiation
    aebf8e234674 net: sched: fix dump qlen for sch_mq/sch_mqprio with NOLOCK subqueues
    876e02c6b8de net: ethernet: ti: cpsw: fix extra rx interrupt
    75b099157e3b net: dsa: fix flow dissection on Tx path
    b8c2a07d7fc9 net: bridge: deny dev_set_mac_address() when unregistering
    ef141fca118c mqprio: Fix out-of-bounds access in mqprio_dump
    a0484dba9932 inet: protect against too small mtu values.
    7d923144ef6e net_sched: validate TCA_KIND attribute in tc_chain_tmplt_add()
    c0f777b6c28d SUNRPC: Fix another issue with MIC buffer space
    cce35a47eb7c raid5: need to set STRIPE_HANDLE for batch head
    2b15565d1a62 workqueue: Fix missing kfree(rescuer) in destroy_workqueue()
    2fb67c1da0c0 blk-mq: make sure that line break can be printed
    588d5a85b106 ext4: fix a bug in ext4_wait_for_tail_page_commit
    87b234005394 splice: only read in as much information as there is pipe buffer space
    de86c841c81b rtc: disable uie before setting time and enable after
    d4e7102cc326 mm/shmem.c: cast the type of unmap_start to u64
    922a48c3e94d s390/kaslr: store KASLR offset for early dumps
    3b7d69248f06 s390/smp,vdso: fix ASCE handling
    546e9a689d3e firmware: qcom: scm: Ensure 'a0' status code is treated as signed
    a9b6310e93a4 ext4: work around deleting a file with i_nlink == 0 safely
    609a4e56145d mm: memcg/slab: wait for !root kmem_cache refcnt killing on root kmem_cache destruction
    3d5c91034234 mfd: rk808: Fix RK818 ID template
    fbac2f7aa1c3 mm, memfd: fix COW issue on MAP_PRIVATE and F_SEAL_FUTURE_WRITE mappings
    118197756683 powerpc: Fix vDSO clock_getres()
    9ba5c6dcb3b7 powerpc: Avoid clang warnings around setjmp and longjmp
    7c36247732a2 omap: pdata-quirks: remove openpandora quirks for mmc3 and wl1251
    1eff30510478 omap: pdata-quirks: revert pandora specific gpiod additions
    5dbe853560e4 iio: ad7949: fix channels mixups
    7df6007288fd iio: ad7949: kill pointless "readback"-handling code
    109dbc91c5a8 iio: imu: st_lsm6dsx: fix ODR check in st_lsm6dsx_write_raw
    6305866e630c iio: imu: st_lsm6dsx: move odr_table in st_lsm6dsx_sensor_settings
    9073b0be6589 scsi: lpfc: Fix bad ndlp ptr in xri aborted handling
    13f83b3a2688 reiserfs: fix extended attributes on the root directory
    e026fc523a75 ext4: Fix credit estimate for final inode freeing
    b09b4d152aa2 quota: fix livelock in dquot_writeback_dquots
    513bcf5ee8e0 seccomp: avoid overflow in implicit constant conversion
    ae57738ec38a ext2: check err when partial != NULL
    b7c24d8c06b8 quota: Check that quota is not dirty before release
    42e495b46f80 video/hdmi: Fix AVI bar unpack
    6739872abdfd powerpc/xive: Skip ioremap() of ESB pages for LSI interrupts
    7d55c5e73263 powerpc: Allow flush_icache_range to work across ranges >4GB
    be0cd7e9b258 powerpc/xive: Prevent page fault issues in the machine crash handler
    99d2164e4865 powerpc: Allow 64bit VDSO __kernel_sync_dicache to work across ranges >4GB
    f0f08beb3fa0 stm class: Lose the protocol driver when dropping its reference
    c0919315b735 ppdev: fix PPGETTIME/PPSETTIME ioctls
    86de25118e9c RDMA/core: Fix ib_dma_max_seg_size()
    f5aae41d4eac ARM: dts: omap3-tao3530: Fix incorrect MMC card detection GPIO polarity
    5cc72ba36683 mmc: host: omap_hsmmc: add code for special init of wl1251 to get rid of pandora_wl1251_init_card
    f15fa36b9c6b pinctrl: samsung: Fix device node refcount leaks in S3C24xx wakeup controller init
    da352a4b5493 pinctrl: samsung: Fix device node refcount leaks in init code
    738e8de6b8d2 pinctrl: samsung: Fix device node refcount leaks in S3C64xx wakeup controller init
    53149343fc98 pinctrl: samsung: Fix device node refcount leaks in Exynos wakeup controller init
    43cb61f4878b pinctrl: samsung: Add of_node_put() before return in error path
    72f6c3180468 pinctrl: armada-37xx: Fix irq mask access in armada_37xx_irq_set_type()
    e264e3ae1165 pinctrl: rza2: Fix gpio name typos
    61a4f44dc075 ACPI: PM: Avoid attaching ACPI PM domain to certain devices
    0a041ba2564a ACPI: bus: Fix NULL pointer check in acpi_bus_get_private_data()
    b56eca6bf2e4 ACPI: OSL: only free map once in osl.c
    2ba38c34447d ACPI / hotplug / PCI: Allocate resources directly under the non-hotplug bridge
    0a4cab60dde2 ACPI: LPSS: Add dmi quirk for skipping _DEP check for some device-links
    487afadea2fd ACPI: LPSS: Add LNXVIDEO -> BYT I2C1 to lpss_device_links
    9af85668040a ACPI: LPSS: Add LNXVIDEO -> BYT I2C7 to lpss_device_links
    e055c1890429 ACPI / utils: Move acpi_dev_get_first_match_dev() under CONFIG_ACPI
    5eac1d4c2450 ALSA: oxfw: fix return value in error path of isochronous resources reservation
    33e6efad9334 cpufreq: powernv: fix stack bloat and hard limit on number of CPUs
    7240e6e25891 PM / devfreq: Lock devfreq in trans_stat_show
    92741be9a736 intel_th: pci: Add Tiger Lake CPU support
    69d1163cd0f4 intel_th: pci: Add Ice Lake CPU support
    5ac267cabcd9 intel_th: Fix a double put_device() in error path
    a3784ad079c6 powerpc/perf: Disable trace_imc pmu
    08ded9339d52 cpuidle: teo: Fix "early hits" handling for disabled idle states
    30b23caa5deb cpuidle: teo: Consider hits and misses metrics of disabled states
    0df48241b6ab cpuidle: teo: Rename local variable in teo_select()
    db302e3bb162 cpuidle: teo: Ignore disabled idle states that are too deep
    ade564919a0c cpuidle: Do not unset the driver if it is there already
    f2a7f16026f9 media: cec.h: CEC_OP_REC_FLAG_ values were swapped
    342c964a9895 media: radio: wl1273: fix interrupt masking on release
    780fe9f19c38 media: bdisp: fix memleak on release
    348cecf72f8e s390/mm: properly clear _PAGE_NOEXEC bit when it is not supported
    9ec8636ef00a ar5523: check NULL before memcpy() in ar5523_cmd()
    6fc971f1d831 wil6210: check len before memcpy() calls
    ba29035eb4bc cgroup: pids: use atomic64_t for pids->limit
    873f0623fcbe blk-mq: avoid sysfs buffer overflow with too many CPU cores
    758af427f60f md: improve handling of bio with REQ_PREFLUSH in md_flush_request()
    3882ad8fadb0 ASoC: fsl_audmix: Add spin lock to protect tdms
    141bba39e422 ASoC: Jack: Fix NULL pointer dereference in snd_soc_jack_report
    a99f0045c434 ASoC: rt5645: Fixed typo for buddy jack support.
    1ecdb55a6de6 ASoC: rt5645: Fixed buddy jack support.
    d78e1588f356 workqueue: Fix pwq ref leak in rescuer_thread()
    86226c42d8f7 workqueue: Fix spurious sanity check failures in destroy_workqueue()
    7b79872cb160 dm zoned: reduce overhead of backing device checks
    b7c4feffa872 dm writecache: handle REQ_FUA
    fa700de0abd2 hwrng: omap - Fix RNG wait loop timeout
    903867fe506a ovl: relax WARN_ON() on rename to self
    8b2e7fec9f26 ovl: fix corner case of non-unique st_dev;st_ino
    c73fe5396edf ovl: fix lookup failure on multi lower squashfs
    15fe8b7f7962 lib: raid6: fix awk build warnings
    b8f32a0e26fb rtlwifi: rtl8192de: Fix missing enable interrupt flag
    0917a96e2d3a rtlwifi: rtl8192de: Fix missing callback that tests for hw release of buffer
    32c6c1de1c05 rtlwifi: rtl8192de: Fix missing code to retrieve RX buffer address
    f1da748f078d btrfs: record all roots for rename exchange on a subvol
    017f00a09704 Btrfs: send, skip backreference walking for extents with many references
    f08e9d661548 btrfs: Remove btrfs_bio::flags member
    f01ca4344ffe btrfs: Avoid getting stuck during cyclic writebacks
    07383f0fced7 Btrfs: fix negative subv_writers counter and data space leak after buffered write
    69608bab8b1b Btrfs: fix metadata space leak on fixup worker failure to set range as delalloc
    6bab2f18b421 btrfs: use refcount_inc_not_zero in kill_all_nodes
    b703482bc2ec btrfs: check page->mapping when loading free space cache
    11b102bc593e iwlwifi: pcie: fix support for transmitting SKBs with fraglist
    7a569d85c92b usb: typec: fix use after free in typec_register_port()
    254d37011ab2 phy: renesas: rcar-gen3-usb2: Fix sysfs interface of "role"
    26593100f6a1 usb: dwc3: ep0: Clear started flag on completion
    d2e949f9d6c5 usb: dwc3: gadget: Clear started flag for non-IOC
    077399428186 usb: dwc3: gadget: Fix logical condition
    545da1614800 usb: dwc3: pci: add ID for the Intel Comet Lake -H variant
    393edc8f15ca virtio-balloon: fix managed page counts when migrating pages between zones
    15c579c3d104 virt_wifi: fix use-after-free in virt_wifi_newlink()
    3891c22e7b74 mtd: rawnand: Change calculating of position page containing BBM
    175a15f4c288 mtd: spear_smi: Fix Write Burst mode
    5738119a60ed brcmfmac: disable PCIe interrupts before bus reset
    ab35b8b9a235 EDAC/altera: Use fast register IO for S10 IRQs
    deda3f6b06dc tpm: add check after commands attribs tab allocation
    ebb7dae402e3 usb: mon: Fix a deadlock in usbmon between mmap and read
    650d955bc548 usb: core: urb: fix URB structure initialization function
    d54daa869ed5 USB: adutux: fix interface sanity check
    3e4a4cb54c04 usb: roles: fix a potential use after free
    14fa9bcb6a07 USB: serial: io_edgeport: fix epic endpoint lookup
    174f3783b4f0 USB: idmouse: fix interface sanity checks
    6facde75d1c8 USB: atm: ueagle-atm: add missing endpoint check
    b4972eba6831 iio: adc: ad7124: Enable internal reference
    b609ee0b3024 iio: adc: ad7606: fix reading unnecessary data from device
    bc27d17532dd iio: imu: inv_mpu6050: fix temperature reporting using bad unit
    edfeae1a5a70 iio: humidity: hdc100x: fix IIO_HUMIDITYRELATIVE channel reporting
    76a78a37799d iio: adis16480: Fix scales factors
    a8f0c5837cca iio: adis16480: Add debugfs_reg_access entry
    a02348d262b3 ARM: dts: pandora-common: define wl1251 as child node of mmc3
    43a05d85e421 interconnect: qcom: sdm845: Walk the list safely on node removal
    3ea35e60e8c8 xhci: make sure interrupts are restored to correct state
    0df691c29da9 xhci: handle some XHCI_TRUST_TX_LENGTH quirks cases as default behaviour.
    d10974513d17 xhci: Increase STS_HALT timeout in xhci_suspend()
    40ccc7fb3125 xhci: fix USB3 device initiated resume race with roothub autosuspend
    8f015d20b7d5 xhci: Fix memory leak in xhci_add_in_port()
    de53955ea0d3 usb: xhci: only set D3hot for pci device
    13d723a6c22c staging: gigaset: add endpoint-type sanity check
    ed9145e7d4a4 staging: gigaset: fix illegal free on probe errors
    a193faef6209 staging: gigaset: fix general protection fault on probe
    a48994561cab staging: vchiq: call unregister_chrdev_region() when driver registration fails
    38beaaec130c staging: rtl8712: fix interface sanity check
    238af85b081b staging: rtl8188eu: fix interface sanity check
    9517a9f133fd binder: fix incorrect calculation for num_valid
    a65c5b1d8762 usb: host: xhci-tegra: Correct phy enable sequence
    0da1ca92c578 usb: Allow USB device to be warm reset in suspended state
    fa74b02fa20f USB: documentation: flags on usb-storage versus UAS
    46f840a92233 USB: uas: heed CAPACITY_HEURISTICS
    9cc58d6fb42e USB: uas: honor flag to avoid CAPACITY16
    19ccc7083566 media: venus: remove invalid compat_ioctl32 handler
    6f4b7b312148 scsi: zfcp: trace channel log even for FCP command responses
    6975c6beb5f0 usb: gadget: pch_udc: fix use after free
    6f10fa4a113c rpmsg: char: release allocated memory
    f01eedaf4e09 mac80211: Do not send Layer 2 Update frame before authorization
    38b2d9bb7b57 libertas: fix a potential NULL pointer dereference
    2789290efc0b mwifiex: Fix heap overflow in mmwifiex_process_tdls_action_frame()
    fd820abb0696 Linux 5.2.30
    10f017c26642 spi: dw: Correct handling of native chipselect
    9e79f5ae512f spi: cadence: Correct handling of native chipselect
    db91ee312ada drm/sun4i: tcon: Set RGB DCLK min. divider based on hardware model
    9eeb986b4809 clk: samsung: exynos5420: Keep top G3D clocks enabled
    99232a68c619 block: fix "check bi_size overflow before merge"
    f54449c00a10 EDAC/ghes: Do not warn when incrementing refcount on 0
    4f18ed319605 ALSA: hda: Fix regression by strip mask fix
    a550c8d05657 io_uring: ensure req->submit is copied when req is deferred
    7b57a96cf3b7 Input: Fix memory leak in psxpad_spi_probe
    a006a5ae6b91 ALSA: hda: hdmi - fix pin setup on Tigerlake
    85435506e9e0 EDAC/ghes: Fix locking and memory barrier issues
    81a005d25b01 watchdog: aspeed: Fix clock behaviour for ast2600
    c3f6c163ac89 md/raid0: Fix an error message in raid0_make_request()
    e90488c1856c ALSA: hda - Fix pending unsol events at shutdown
    ac5a40962daf KVM: x86: fix out-of-bounds write in KVM_GET_EMULATED_CPUID (CVE-2019-19332)
    949540e93943 binder: Handle start==NULL in binder_update_page_range()
    75a11437a803 binder: Prevent repeated use of ->mmap() via NULL mapping
    e0a0299acecb binder: Fix race between mmap() and binder_alloc_print_pages()
    ba5d71130445 thermal: Fix deadlock in thermal thermal_zone_device_check
    cf162b1f1d6f iomap: Fix pipe page leakage during splicing
    1ede48d1d47e RDMA/qib: Validate ->show()/store() callbacks before calling them
    6df074625c15 can: ucan: fix non-atomic allocation in completion handler
    1233eadb99a9 spi: Fix NULL pointer when setting SPI_CS_HIGH for GPIO CS
    cad0ca361138 spi: Fix SPI_CS_HIGH setting when using native and GPIO CS
    25ac2d29646a spi: atmel: Fix CS high support
    efd56e6b1fbd spi: stm32-qspi: Fix kernel oops when unbinding driver
    dfbd2a22d8b1 spi: spi-fsl-qspi: Clear TDH bits in FLSHCR register
    d7e9115f21e0 spi: spi-fsl-qspi: change i.MX7D RX FIFO size
    76cde0d7ff39 crypto: ecdh - fix big endian bug in ECC library
    36759ce37925 crypto: ccp - fix uninitialized list head
    8ba8fa9fc2db crypto: geode-aes - switch to skcipher for cbc(aes) fallback
    86a44e8938be crypto: af_alg - cast ki_complete ternary op to int
    9ff009403999 crypto: atmel-aes - Fix IV handling when req->nbytes < ivsize
    2cbf74169383 crypto: crypto4xx - fix double-free in crypto4xx_destroy_sdr
    f6981b364dae KVM: x86: Grab KVM's srcu lock when setting nested state
    c08ddad72e7b KVM: x86: Remove a spurious export of a static function
    317fd0a0c93d KVM: x86: fix presentation of TSX feature in ARCH_CAPABILITIES
    7f70f6380882 KVM: x86: do not modify masked bits of shared MSRs
    6384ad0ab29b KVM: arm/arm64: vgic: Don't rely on the wrong pending table
    bdcecb6dd8e8 KVM: nVMX: Always write vmcs02.GUEST_CR3 during nested VM-Enter
    3600a4189d12 KVM: PPC: Book3S HV: XIVE: Set kvm->arch.xive when VPs are allocated
    34e8d4a0ef05 KVM: PPC: Book3S HV: XIVE: Fix potential page leak on error path
    4ebdbf4ff503 KVM: PPC: Book3S HV: XIVE: Free previous EQ page when setting up a new one
    cc73381579f9 arm64: dts: exynos: Revert "Remove unneeded address space mapping for soc node"
    1d19cc75f715 drm/i810: Prevent underflow in ioctl
    16f54bf33fce drm: damage_helper: Fix race checking plane->state->fb
    20a0047cdca4 drm/msm: fix memleak on release
    6c34f27046e3 jbd2: Fix possible overflow in jbd2_log_space_left()
    5b1ab9f1a2c0 kernfs: fix ino wrap-around detection
    910116ce4349 nfsd: restore NFSv3 ACL support
    6589961e5ec7 nfsd: Ensure CLONE persists data and metadata changes to the target file
    574498a02845 tty: vt: keyboard: reject invalid keycodes
    c75342d33dd5 CIFS: Fix SMB2 oplock break processing
    c8c867906145 CIFS: Fix NULL-pointer dereference in smb2_push_mandatory_locks
    2199093ff906 x86/PCI: Avoid AMD FCH XHCI USB PME# from D0 defect
    4d34c238f6ee x86/mm/32: Sync only to VMALLOC_END in vmalloc_sync_all()
    64a582385b92 media: rc: mark input device as pointing stick
    70fd4e1972e8 coresight: etm4x: Fix input validation for sysfs.
    55c0be64071e Input: goodix - add upside-down quirk for Teclast X89 tablet
    2405495a00f8 Input: synaptics-rmi4 - don't increment rmiaddr for SMBus transfers
    868c29a7efd0 Input: synaptics-rmi4 - re-enable IRQs in f34v7_do_reflash
    0e606e3626e6 Input: synaptics - switch another X1 Carbon 6 to RMI/SMbus
    94adc53b2c47 ALSA: hda: Modify stream stripe mask only when needed
    a527c3df9f54 ALSA: hda - Add mute led support for HP ProBook 645 G4
    accc2add3da3 ALSA: pcm: oss: Avoid potential buffer overflows
    55f6418b7ae3 ALSA: hda/realtek - Dell headphone has noise on unmute for ALC236
    bbad17075fe3 ALSA: hda/realtek - Enable the headset-mic on a Xiaomi's laptop
    fcfb4bce22aa ALSA: hda/realtek - Enable internal speaker of ASUS UX431FLC
    83753976cfae fuse: verify attributes
    a6f6439eb10f fuse: verify nlink
    31aa652b9a69 i2c: core: fix use after free in of_i2c_notify
    92084c0b356d net: ep93xx_eth: fix mismatch of request_mem_region in remove
    f75cb980f0ab afs: Fix race in commit bulk status fetch
    26167b5cf5df net: hns3: fix ETS bandwidth validation bug
    037e0cbe8863 net: hns3: reallocate SSU' buffer size when pfc_en changes
    423f97775629 ravb: implement MTU change while device is up
    ba49aa6bccbb rsxx: add missed destroy_workqueue calls in remove
    6dbf3b9cc169 selftests: kvm: fix build with glibc >= 2.30
    334204bdbd89 drm/sun4i: tcon: Set min division of TCON0_DCLK to 1.
    d2001cf2e8d3 x86/resctrl: Fix potential lockdep warning
    7bf14c3c120b ALSA: pcm: Fix stream lock usage in snd_pcm_period_elapsed()
    57dbe72b9638 perf/core: Consistently fail fork on allocation failures
    24a8ce6100ab sched/pelt: Fix update of blocked PELT ordering
    cadf46055b6f sched/core: Avoid spurious lock dependencies
    b8a654dde72b Input: cyttsp4_core - fix use after free bug
    9bcb8316e536 block: check bi_size overflow before merge
    f05d37196a77 xfrm: release device reference for invalid state
    e630f0eab8b3 NFC: nxp-nci: Fix NULL pointer dereference after I2C communication error
    14f8f24bfcbc ALSA: hda: Add Cometlake-S PCI ID
    85deda956139 ecryptfs: fix unlink and rmdir in face of underlying fs modifications
    7a7b13483234 audit_get_nd(): don't unlock parent too early
    6f26d186c431 exportfs_decode_fh(): negative pinned may become positive without the parent locked
    d5a9bd7dc9c2 cgroup: don't put ERR_PTR() into fc->root
    5490ae827b29 iwlwifi: pcie: don't consider IV len in A-MSDU
    5bc1282dfb21 RDMA/hns: Correct the value of srq_desc_size
    9b0df7c7e42c RDMA/hns: Correct the value of HNS_ROCE_HEM_CHUNK_LEN
    bf7d03571100 MIPS: SGI-IP27: fix exception handler replication
    b578c711e5e7 autofs: fix a leak in autofs_expire_indirect()
    81559b396efa aio: Fix io_pgetevents() struct __compat_aio_sigset layout
    03bd68a92f82 signal: simplify set_user_sigmask/restore_user_sigmask
    88300b370dbc serial: ifx6x60: add missed pm_runtime_disable
    06eb5d963912 serial: serial_core: Perform NULL checks for break_ctl ops
    c811b133b3e7 serial: pl011: Fix DMA ->flush_buffer()
    d451358ffe85 tty: serial: msm_serial: Fix flow control
    5b10978724e0 tty: serial: fsl_lpuart: use the sg count from dma_map_sg
    c38c3a52315f usb: gadget: u_serial: add missing port entry locking
    b30c295d649b time: Zero the upper 32-bits in __kernel_timespec on 32-bit
    9f06fb5da07e lp: fix sparc64 LPSETTIMEOUT ioctl
    068341cb7952 sparc64: implement ioremap_uc
    932b771c65b6 arm64: tegra: Fix 'active-low' warning for Jetson TX1 regulator
    edc3ff235784 net: fec: fix clock count mis-match
    ed9b79600a5d platform/x86: hp-wmi: Fix ACPI errors caused by passing 0 as input size
    952328f5193b platform/x86: hp-wmi: Fix ACPI errors caused by too small buffer
    da62cf911005 HID: core: check whether Usage Page item is after Usage ID items
    fb85a234fc39 tipc: fix link name length check
    0867e153690e selftests: bpf: test_sockmap: handle file creation failures gracefully
    cd73a77a2288 net/tls: use sg_next() to walk sg entries
    55c1ea6758d8 net/tls: remove the dead inplace_crypto code
    c824b8c9957b net: skmsg: fix TLS 1.3 crash with full sk_msg
    45c795cbee84 net: sockmap: use bitmap for copy info
    c1c89460bda2 net/tls: free the record on encryption error
    1468022cc8f2 net/tls: take into account that bpf_exec_tx_verdict() may free the record
    a3157970686f openvswitch: remove another BUG_ON()
    bacb11535532 openvswitch: drop unneeded BUG_ON() in ovs_flow_cmd_build_info()
    744916544dba sctp: cache netns in sctp_ep_common
    f4312b9ba27c sctp: Fix memory leak in sctp_sf_do_5_2_4_dupcook
    8d442143ccd4 openvswitch: fix flow command message size
    b834278b4d0a net: sched: fix `tc -s class show` no bstats on class with nolock subqueues
    2f47935914f8 net: psample: fix skb_over_panic
    8fc3ccb35fba net: macb: add missed tasklet_kill
    9243823cd73a net: dsa: sja1105: fix sja1105_parse_rgmii_delays()
    1e7ff496e195 mdio_bus: don't use managed reset-controller
    f458119c914d macvlan: schedule bc_work even if error
    442b4bac7514 xfrm: Fix memleak on xfrm state destroy
    d06561a292bf thunderbolt: Power cycle the router if NVM authentication fails
    97a4d0528c98 mei: me: add comet point V device id
    aa6a4bfabb1a mei: bus: prefix device names on bus with the bus name
    fb94cd58ee14 USB: serial: ftdi_sio: add device IDs for U-Blox C099-F9P
    33c6adbab912 staging: rtl8723bs: Add 024c:0525 to the list of SDIO device-ids
    34820fb849a8 staging: rtl8723bs: Drop ACPI device ids
    18ff3bb126fe staging: rtl8192e: fix potential use after free
    955068eb7918 staging: wilc1000: fix illegal memory access in wilc_parse_join_bss_param()
    afe6f4526509 usb: dwc2: use a longer core rest timeout in dwc2_core_reset()
    4b15bd43d8ed clk: at91: fix update bit maps on CFG_MOR write
    6ed6cd2d7f8a i40e: Fix for ethtool -m issue on X722 NIC
    ddcdd3cc96f1 i40e: Fix for missing "link modes" info in ethtool
    ae4d08f3a69b iavf: initialize ITRN registers with correct values
    12c0db2518f8 ice: fix potential infinite loop because loop counter being too small
    c105a4b2019d pwm: bcm-iproc: Prevent unloading the driver module while in use
    66f3f3c4da1e block: drbd: remove a stray unlock in __drbd_send_protocol()
    11748bed1eeb mac80211: fix station inactive_time shortly after boot
    2df48b15a9ca net/fq_impl: Switch to kvmalloc() for memory allocation
    1332a34432a5 ceph: return -EINVAL if given fsc mount option on kernel w/o support
    218333cf3e5b net: stmmac: xgmac: Disable Flow Control when 1 or more queues are in AV
    e8fec331b7e3 net: stmmac: xgmac: Fix TSA selection
    f7e0994188b2 net: stmmac: gmac4: bitrev32 returns u32
    d99d2e2d5c7d drm/amdgpu: add warning for GRBM 1-cycle delay issue in gfx9
    3db9d787fbbe net: mscc: ocelot: fix __ocelot_rmw_ix prototype
    23d1a942d638 net/mlx5e: Fix eswitch debug print of max fdb flow
    c26064b7eda5 drm/amdgpu: dont schedule jobs while in reset
    d61b5d11db4b net: bcmgenet: reapply manual settings to the PHY
    303f8e7b7d18 net: bcmgenet: use RGMII loopback for MAC reset
    82077751014a scripts/gdb: fix debugging modules compiled with hot/cold partitioning
    7b20840690f5 mm/gup_benchmark: fix MAP_HUGETLB case
    c7816d20058f ASoC: SOF: topology: Fix bytes control size checks
    1b3afeddab4a ARM: dts: stm32: Fix CAN RAM mapping on stm32mp157c
    4de26c8cbe50 ALSA: hda: hdmi - add Tigerlake support
    f43786eb3acb ASoC: stm32: sai: add restriction on mmap support
    36fa7d5299c2 watchdog: bd70528: Add MODULE_ALIAS to allow module auto loading
    f023dd202f6b watchdog: meson: Fix the wrong value of left time
    9054f01030f8 watchdog: pm8916_wdt: fix pretimeout registration flow
    2c25aa88640f nvme-multipath: fix crash in nvme_mpath_clear_ctrl_paths
    6fdb636145b0 nvme-rdma: fix a segmentation fault during module unload
    43bd0bf71860 can: mcp251x: mcp251x_restart_work_handler(): Fix potential force_quit race condition
    7091bcbccb6b perf scripting engines: Iterate on tep event arrays directly
    7371326920db x86/tsc: Respect tsc command line paraemeter for clocksource_tsc_early
    8efe12d76d7e can: flexcan: increase error counters if skb enqueueing via can_rx_offload_queue_sorted() fails
    4a3333ea25b1 can: rx-offload: can_rx_offload_irq_offload_fifo(): continue on error
    a26a27d53b40 can: rx-offload: can_rx_offload_irq_offload_timestamp(): continue on error
    39b89fc6625f can: rx-offload: can_rx_offload_offload_one(): use ERR_PTR() to propagate error value in case of errors
    f6b5da01db2f can: rx-offload: can_rx_offload_offload_one(): increment rx_fifo_errors on queue overflow or OOM
    acb9095493be can: rx-offload: can_rx_offload_offload_one(): do not increase the skb_queue beyond skb_queue_len_max
    189c1239632b can: rx-offload: can_rx_offload_queue_tail(): fix error handling, avoid skb mem leak
    7ac97e4ef4d9 can: c_can: D_CAN: c_can_chip_config(): perform a sofware reset on open
    1ac0d4885a34 can: peak_usb: report bus recovery as well
    b542266496fa stacktrace: Don't skip first entry on noncurrent tasks
    afe7ff5be406 bridge: ebtables: don't crash when using dnat target in output chains
    a19d86990335 netfilter: ipset: Fix nla_policies to fully support NL_VALIDATE_STRICT
    17db97a8e7d5 netfilter: ipset: Fix the last missing check of nla_parse_deprecated()
    5f4ada6390b6 net: fec: add missed clk_disable_unprepare in remove
    0b283b59a62f clk: ti: clkctrl: Fix failed to enable error with double udelay timeout
    b70eae1c4480 clk: ti: dra7-atl-clock: Remove ti_clk_add_alias call
    aab6b68e53eb ASoC: hdac_hda: fix race in device removal
    b23f8d6ca25f fbdev: c2p: Fix link failure on non-inlining
    51c019bf2c42 arm64: dts: zii-ultra: fix ARM regulator GPIO handle
    819ee4651182 x86/resctrl: Prevent NULL pointer dereference when reading mondata
    4d71464d5830 idr: Fix idr_alloc_u32 on 32-bit systems
    9956dbb774e4 idr: Fix integer overflow in idr_for_each_entry
    a530ec599a8a idr: Fix idr_get_next_ul race with idr_remove
    6909ddf4276c powerpc/bpf: Fix tail call implementation
    957928006316 samples/bpf: fix build by setting HAVE_ATTR_TEST to zero
    d3a556320b11 bpf: Allow narrow loads of bpf_sysctl fields with offset > 0
    4fd976da64d7 ARM: dts: sun8i-a83t-tbs-a711: Fix WiFi resume from suspend
    1d6d86b21245 clk: sunxi-ng: a80: fix the zero'ing of bits 16 and 18
    440f439c1041 clk: sunxi: Fix operator precedence in sunxi_divs_clk_setup
    b4c8fc7dcab9 clk: at91: avoid sleeping early
    c42ce4122e86 ASoC: ti: sdma-pcm: Add back the flags parameter for non standard dma names
    32ea5f2ae3b6 arm64: dts: imx8mm: fix compatible string for sdma
    4071d8976ac5 reset: fix reset_control_ops kerneldoc comment
    b178a6e8f8f3 soc: imx: gpc: fix initialiser format
    0a751a005ded ARM: dts: imx6qdl-sabreauto: Fix storm of accelerometer interrupts
    946654641741 pinctrl: cherryview: Allocate IRQ chip dynamic
    66c7b484cae0 clk: samsung: exynos5420: Preserve PLL configuration during suspend/resume
    30c758e0a731 arm64: dts: ls1028a: fix a compatible issue
    ba3e13683df7 ASoC: kirkwood: fix device remove ordering
    d7ee3bbc1085 ASoC: kirkwood: fix external clock probe defer
    7a754f5e5751 clk: samsung: exynos542x: Move G3D subsystem clocks to its sub-CMU
    2361cffc9775 clk: samsung: exynos5433: Fix error paths
    e1fc074e8178 reset: Fix memory leak in reset_control_array_put()
    b01838b0ca64 ASoC: compress: fix unsigned integer overflow check
    41360b33fec2 ASoC: msm8916-wcd-analog: Fix RX1 selection in RDAC2 MUX
    e7fc8cc79377 soundwire: intel: fix intel_register_dai PDI offsets and numbers
    82b111a092b1 clocksource/drivers/mediatek: Fix error handling
    85c26d3b879d thunderbolt: Fix lockdep circular locking depedency warning
    a41faef2aef6 thunderbolt: Read DP IN adapter first two dwords in one go
    0b4d76ea32e5 clk: at91: sam9x60: fix programmable clock
    3ac5085a98ba clk: meson: gxbb: let sar_adc_clk_div set the parent clock rate
    922eddf892e2 XArray: Fix xas_next() with a single entry at 0

(From OE-Core rev: c78140941f8a98e013932023a63501ba3b7e975a)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
(cherry picked from commit c37bf8287072ddf6005d5c3f419a6a77f673164c)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Lee Chee Yang
3c49e7636e libxml2: Fix CVE-2019-20388
see:
https://gitlab.gnome.org/GNOME/libxml2/merge_requests/68

(From OE-Core rev: 12a5eb0ea6f530ad7be2e58d4091b4edadbf461b)

(From OE-Core rev: 49131908e3510dc69e0f278889803a461c2d96c0)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Anuj Mittal
eb3988272b libxml2: fix CVE-2020-7595
(From OE-Core rev: f2f7aa9a495774fe5a2e3947584cb3503bd1eaf1)

(From OE-Core rev: 72a747f77f9fd051e054e679deacf537b4b7116f)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Yi Zhao
d37b23160b ppp: Security fix CVE-2020-8597
CVE-2020-8597: eap.c in pppd in ppp 2.4.2 through 2.4.8 has an rhostname
buffer overflow in the eap_request and eap_response functions.

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

Patch from:
8d7970b8f3

(From OE-Core rev: b01505e018ff46f1af34f98219d55f4ca700cd5a)

(From OE-Core rev: f0c7e7d03d1e9f7426031acdde3f7452118edd8c)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Anuj Mittal
a448c47761 ncurses: add CVE_VERSION
Include the version number in a format that is comparable to what we get
from NVD.

(From OE-Core rev: fdb2a95d5e0265de1172940b6dc71fc7d602e8d1)

(From OE-Core rev: 53b94d0bc839eda408d90e15937746871b7546e3)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Lee Chee Yang
89601107db qemu: Fix CVE-2020-1711
see https://git.qemu.org/?p=qemu.git;a=commit;h=693fd2acdf14dd86c0bf852610f1c2cca80a74dc

(From OE-Core rev: 3e65ad67995874c363863280e40457acc3f479e9)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Jeremy Puhlman
36890c03d4 toolchain-shar-extract: ignore timestamp on decompress
Installing on centos7, which the extended version of the
buildtools tarball is supposed to fix and with reproducable
builds turned on, all the time stamps are for epoch. This
results in the following output for every file:

tar: ./sysroots/x86_64-pokysdk-linux/usr/include/c++/9.2.0/cstdalign: implausibly old time stamp 1969-12-31 16:00:00
tar: ./sysroots/x86_64-pokysdk-linux/usr/lib/libstdc++.so.6: implausibly old time stamp 1969-12-31 16:00:00

Ignore the timestamps during the uncompession step.

(From OE-Core rev: 2d61ef93383d49db43af144aa17a88dd250ceb95)

Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 319ca22ea4465c56c63730847378a7aee4f5935a)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Tim Orling
4495667b53 liberror-perl: upgrade 0.17028 -> 0.17029
Upstream release notes:
"
0.17029         2020-01-28
    - Rebuild for order of 'NAME' and 'VERSION' sections in the generated
    POD documentation (see 0.001004 in
    https://metacpan.org/changes/distribution/Pod-Weaver-PluginBundle-SHLOMIF
    ).
        - VERSION used to appear before NAME.
"

(From OE-Core rev: 8856aa960ff4c9c833e958082466d19259915d5f)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f4a520cc827187d83f2997614d893bba7d74a152)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Richard Purdie
3752e41448 perl: Fix makefile race causing configuration differences
Add a missing makefile dependency which can cause differences in
configuration (submitted upstream).

[YOCTO #13800]

(From OE-Core rev: 1589115ff42e8c211bc0784bd8aca7d3a5b8f566)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fe97845a45434902c5a994e253a127a462d7d3b4)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Richard Purdie
4d11365f40 perl: Fix encode module reproducibility issues
The code is encoding host compiler parameters into target builds. Avoid
this for our target builds. This should resolve builds which aren't
reproducible between hosts with different compilers.

(From OE-Core rev: 4b41afeea632f33a490d75621e2c0d6bb2bb6aca)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 71cdbf426e46e3ca1b5038f40e9f7ba958abc537)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Alexander Kanavin
049494b87c perl: fix failing ptests
(From OE-Core rev: b84f3056591c16fa3e2bba2e4fa936390a76ee9a)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f1da6355f13e707b3ffa5025067e509e0120784d)
[Fixup for zeus context]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Ross Burton
74bec4855b perl: improve reproducibility
Occasionally the reproducibility selftest fails because perl-pod differs,
specifically that the perltoc.pod file was sometimes missing modules.

Debugging revealed that there are missing dependencies so there is a build race:
building perltoc.pod from an clean build tree results in no modules being listed
at all.

A bug has been filed at https://github.com/arsv/perl-cross/issues/86 to solve
this properly, but for now we can just delete perltoc.pod after make has
finished and re-generate it.

[ YOCTO #13726 ]

(From OE-Core rev: 4ee9c60797e95674ae138245b3a4de063b2e95db)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7e0f6c9ea4f824f29dc30c6631fd8039ebe83a0b)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Alexander Kanavin
5b84102650 libmodule-build-perl: fix ptests
Particularly remove a broken detection of skipped tests
(which was marking tests that actually passed), and install
additional artefacts needed for testing.

(From OE-Core rev: 559fd361440898479937c887a0e4f8cfb8c46891)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit dbbce0918617c21d0e43e9727d38372c22dff3dc)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Alexander Kanavin
dd95222a3a perl: install typemap and other extutils metadata as part of perl-core
Modules actually make use of these files, so they belong in perl-core
other than perl-doc (the immediate failure was ptests for
libmodule-build-perl failing).

(From OE-Core rev: c95832dbfe4f375dadbffc8ee678052dbf7b3913)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 829e8c49833e4cb8de5db869769eb492c827e8c9)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Alexander Kanavin
19e844dc2e perl: package Config.pm from arch directory into the main perl package
Otherwise, some modules such as libmodule-build-perl fail to work
properly.

(From OE-Core rev: 2d5fae94a889cd9558e3946ecec2362c94e1c1e9)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e4072d53a7fb4fbbdacce9a20968e71ef6cff307)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Alexander Kanavin
db2edbf58c perl: update to 5.30.1
Drop fix-setgroup.patch as the upstream has fixed the issue.

(From OE-Core rev: df86f5d32dc18f25c5c4788b65cceae8905a6ef3)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 45edc6d23e20f7634c50db71e419c7e3bb7f393e)
[Bug fix only update]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Bruce Ashfield
60ec9f2634 linux-yocto/5.2: update to v5.2.29
Updating linux-yocto/5.2 to the latest korg -stable release that comprises
the following commits:

    928ea9c56927 Linux 5.2.29
    4e41907620bc slip: Fix use-after-free Read in slip_open
    d11814f97a05 can: slcan: Fix use-after-free Read in slcan_open
    01313dcf66e7 can: kvaser_usb: kvaser_usb_leaf: Fix some info-leaks to USB devices
    7f006e58efc2 scsi: libsas: stop discovering if oob mode is disconnected
    0e5c48d6b011 staging: comedi: usbduxfast: usbduxfast_ai_cmdtest rounding error
    d8b3d5fb8765 USB: serial: option: add support for Foxconn T77W968 LTE modules
    c4fe1d495f9c USB: serial: option: add support for DW5821e with eSIM support
    4ac031b15d86 USB: serial: mos7840: fix remote wakeup
    4d44a218aea6 USB: serial: mos7720: fix remote wakeup
    3561f4d3242f USB: serial: mos7840: add USB ID to support Moxa UPort 2210
    13a33fb9debe appledisplay: fix error handling in the scheduled work
    0cd437d7c16b USB: chaoskey: fix error case of a timeout
    2136119fde46 usb-serial: cp201x: support Mark-10 digital force gauge
    3a71173a4a45 usbip: tools: fix fd leakage in the function of read_attr_usbip_status
    726510907c68 USBIP: add config dependency for SGL_ALLOC
    7dd553573bc5 media: mceusb: fix out of bounds read in MCE receiver buffer
    1e4921f684ca media: imon: invalid dereference in imon_touch_event
    d482dfe2776a media: cxusb: detect cxusb_ctrl_msg error in query
    ab4952849dd8 media: b2c2-flexcop-usb: add sanity checking
    e2aa61cda115 media: uvcvideo: Fix error path in control parsing failure
    115fa3afd4d1 cpufreq: Add NULL checks to show() and store() methods of cpufreq
    767facdefa23 media: usbvision: Fix races among open, close, and disconnect
    ba90b62cb0bd media: usbvision: Fix invalid accesses after device disconnect
    829b703e9706 media: vivid: Set vid_cap_streaming and vid_out_streaming to true
    57f2b5c44f02 nfc: port100: handle command failure cleanly
    5fc4dc967e06 ALSA: usb-audio: Fix NULL dereference at parsing BADD
    c938307a439a futex: Prevent robust futex exit race
    8b0f13ee2b7b nbd: prevent memory leak
    1bfd67a1c47b ARM: 8904/1: skip nomap memblocks while finding the lowmem/highmem boundary
    a634776bcd5e md/raid10: prevent access of uninitialized resync_pages offset
    40c0b4538c8b Revert "dm crypt: use WQ_HIGHPRI for the IO and crypt workqueues"
    53eaf5993eea ath9k_hw: fix uninitialized variable data
    5a1b959a78ea ath10k: Fix a NULL-ptr-deref bug in ath10k_usb_alloc_urb_from_pipe
    8b16c7096bc9 ath10k: Fix HOST capability QMI incompatibility
    ceee3b64b0b5 ath10k: restore QCA9880-AR1A (v1) detection
    08c0402ed497 Bluetooth: Fix invalid-free in bcsp_close()
    c1ed057fbe33 drm/i915/userptr: Try to acquire the page lock around set_page_dirty()
    5ec5ba44bd85 drm/i915/pmu: "Frequency" is reported as accumulated cycles
    c7ceeaf80706 drm/amd/powerplay: issue no PPSMC_MSG_GetCurrPkgPwr on unsupported ASICs
    1c3fb0c8357e drm/amdgpu: disable gfxoff on original raven
    ccd9d21f783e drm/amdgpu: disable gfxoff when using register read interface
    6e745cbc5051 mm/ksm.c: don't WARN if page is still mapped in remove_stable_node()
    79194b4a342c mm/memory_hotplug: don't access uninitialized memmaps in shrink_zone_span()
    01d151b7e74e virtio_balloon: fix shrinker count
    caae62219805 virtio_ring: fix return code on DMA mapping fails
    272ed6b7ca4a virtio_console: allocate inbufs in add_port() only if it is needed
    abce58c3af15 nbd:fix memory leak in nbd_get_socket()
    2601193dc253 tools: gpio: Correctly add make dependencies for gpio_utils
    3608aa07bac2 gpio: max77620: Fixup debounce delays
    c6bf6af12a68 vhost/vsock: split packets to send using multiple buffers
    95a617d1f70c net/mlx5: Update the list of the PCI supported devices
    febceda6db3f net/mlx5e: Do not use non-EXT link modes in EXT mode
    f8bddf0e192a net/mlx5e: Fix error flow cleanup in mlx5e_tc_tun_create_header_ipv4/6
    e049e3c43308 taprio: don't reject same mqprio settings
    8345d40b83bf ipv6/route: return if there is no fib_nh_gw_family
    1edfc6649c92 net/tls: enable sk_msg redirect to tls socket egress
    27845a1dd06b net/mlx5: Fix auto group size calculation
    ec6d299939c3 net/mlx5e: Fix set vf link state error flow
    bab144f2a957 net/mlxfw: Verify FSM error code translation doesn't exceed array size
    3eb4c2e70dce sfc: Only cancel the PPS workqueue if it exists
    a03585b724bc net: sched: ensure opts_len <= IP_TUNNEL_OPTS_MAX in act_tunnel_key
    285a19d8dde0 net/sched: act_pedit: fix WARN() in the traffic path
    8e40158af458 net: rtnetlink: prevent underflows in do_setvfinfo()
    1afad75b2dba net/mlx4_en: Fix wrong limitation for number of TX rings
    ce1291041c39 net/mlx4_en: fix mlx4 ethtool -N insertion
    2a7ad86813a4 mlxsw: spectrum_router: Fix determining underlay for a GRE tunnel
    da957117e731 fbdev: Ditch fb_edid_add_monspecs
    1f043415c4f5 arm64: uaccess: Ensure PAN is re-enabled after unhandled uaccess fault
    0063e9b69796 mm/memory_hotplug: fix updating the node span
    d27074543286 mm/memory_hotplug: don't access uninitialized memmaps in shrink_pgdat_span()
    62ca688436d3 block, bfq: deschedule empty bfq_queues not referred by any process
    045a481acd16 slcan: Fix memory leak in error path
    22bc38eae704 mmc: sdhci-of-at91: fix quirk2 overwrite
    8505966cdc7e mm/page_io.c: do not free shared swap slots
    349d5ccf8971 mm: hugetlb: switch to css_tryget() in hugetlb_cgroup_charge_cgroup()
    cb4df7d810ac mm: memcg: switch to css_tryget() in get_mem_cgroup_from_mm()
    eec30082ea78 mm: mempolicy: fix the wrong return value and potential pages leak of mbind
    c4b3eaf0585b iommu/vt-d: Fix QI_DEV_IOTLB_PFSID and QI_DEV_EIOTLB_PFSID macros
    5a705e36d350 net: ethernet: dwmac-sun8i: Use the correct function in exit path
    50d4170ffddd ntp/y2038: Remove incorrect time_t truncation
    f701a893aba0 ecryptfs_lookup_interpose(): lower_dentry->d_parent is not stable either
    97dd5923ba23 ecryptfs_lookup_interpose(): lower_dentry->d_inode is not stable
    3c130e6cddae x86/quirks: Disable HPET on Intel Coffe Lake platforms
    a0f63a47ab13 i2c: acpi: Force bus speed to 400KHz if a Silead touchscreen is present
    ca7d1676d537 IB/hfi1: Use a common pad buffer for 9B and 16B packets
    b8b6479e3cc9 IB/hfi1: Ensure full Gen3 speed in a Gen4 system
    72ff837e69c5 IB/hfi1: TID RDMA WRITE should not return IB_WC_RNR_RETRY_EXC_ERR
    3c1db8a639ac IB/hfi1: Calculate flow weight based on QP MTU for TID RDMA
    d2f5dd2fd992 IB/hfi1: Ensure r_tid_ack is valid before building TID RDMA ACK packet
    e88f0707f216 KVM: MMU: Do not treat ZONE_DEVICE pages as being reserved
    9e35e5bc4a04 Input: synaptics-rmi4 - destroy F54 poller workqueue when removing
    2eaf311ccd38 Input: synaptics-rmi4 - clear IRQ enables for F54
    f05aacf5a7b9 Input: synaptics-rmi4 - do not consume more data than we have (F11, F12)
    7e649c757a1a Input: synaptics-rmi4 - disable the relative position IRQ in the F12 driver
    4b482d7281a6 Input: synaptics-rmi4 - fix video buffer size
    74e0752ee79e cgroup: freezer: call cgroup_enter_frozen() with preemption disabled in ptrace_stop()
    a9cae67b7a20 Btrfs: fix log context list corruption after rename exchange operation
    011e452b4d84 ALSA: usb-audio: not submit urb for stopped endpoint
    c7801593d92a ALSA: usb-audio: Fix missing error check at mixer resolution test
    ff24b83d0f73 dpaa2-eth: free already allocated channels on probe defer
    21790068a579 tcp: remove redundant new line from tcp_event_sk_skb
    364436976763 slip: Fix memory leak in slip_open error path
    b75c75d36816 net: usb: qmi_wwan: add support for Foxconn T77W968 LTE modules
    c8a648ae5f96 net/smc: fix fastopen for non-blocking connect()
    b392b2d28e58 net: gemini: add missed free_netdev
    612aeedfe77d ipmr: Fix skb headroom in ipmr_get_route().
    5fa89b3526c5 ax88172a: fix information leak on short answers
    609d02229b16 scsi: core: Handle drivers which set sg_tablesize to zero
    efa2c8c477dd x86/entry/32: Fix FIXUP_ESPFIX_STACK with user CR3
    a0f6ee27e686 x86/pti/32: Calculate the various PTI cpu_entry_area sizes correctly, make the CPU_ENTRY_AREA_PAGES assert precise
    60418beeefd7 selftests/x86/sigreturn/32: Invalidate DS and ES when abusing the kernel
    777b0ee4fd79 selftests/x86/mov_ss_trap: Fix the SYSENTER test
    07b7c6191853 x86/entry/32: Fix NMI vs ESPFIX
    62433c16a282 x86/entry/32: Unwind the ESPFIX stack earlier on exception entry
    4a2364594599 x86/entry/32: Move FIXUP_FRAME after pushing %fs in SAVE_ALL
    0593a806b430 x86/entry/32: Use %ss segment where required
    26ce03ac3327 x86/entry/32: Fix IRET exception
    f74d7e9547de x86/cpu_entry_area: Add guard page for entry stack on 32bit
    41cb303e1436 x86/pti/32: Size initial_page_table correctly
    2d2e7fe408eb x86/doublefault/32: Fix stack canaries in the double fault handler
    1fd0ff871abe x86/xen/32: Simplify ring check in xen_iret_crit_fixup()
    68ef02e30623 x86/xen/32: Make xen_iret_crit_fixup() independent of frame layout
    ef15170227e2 x86/stackframe/32: Repair 32-bit Xen PV
    37880a369c68 x86/speculation: Fix redundant MDS mitigation message
    459c71f82b48 x86/speculation: Fix incorrect MDS/TAA mitigation status
    c77d64c158c6 x86/insn: Fix awk regexp warnings
    41bbdde13b43 x86: Use CONFIG_PREEMPTION
    217d051d8efd x86/entry/32: Pass cr2 to do_async_page_fault()
    1ecceee4c859 x86/entry/64: Prevent clobbering of saved CR2 value
    8ccce28352fe x86/mm, tracing: Fix CR2 corruption
    8873fea5f2d4 x86/entry/64: Update comments and sanity tests for create_gap
    7801660649a0 x86/entry/64: Simplify idtentry a little
    5d305a697f40 x86/entry/32: Simplify common_exception
    216401f82bef x86/paravirt: Make read_cr2() CALLEE_SAVE
    bf8b9dd0d0bf x86/asm: Move native_write_cr0/4() out of line
    222093f0acfd x86/pgtable/32: Fix LOWMEM_PAGES constant
    7998b2c4801a x86/alternatives: Fix int3_emulate_call() selftest stack corruption
    e4a8155be9bd x86/ldt: Initialize the context lock for init_mm
    f07a9a3a9ad4 x86/alternatives: Add int3_emulate_call() selftest
    29b042bbfab8 x86/stackframe/32: Allow int3_emulate_push()
    22334402db00 x86/stackframe/32: Provide consistent pt_regs
    ed6c118e4451 x86/stackframe, x86/ftrace: Add pt_regs frame annotations
    7159ebba55a4 x86/stackframe, x86/kprobes: Fix frame pointer annotations
    ba09efb8b35b x86/stackframe: Move ENCODE_FRAME_POINTER to asm/frame.h
    c2f632a32c05 x86/entry/32: Clean up return from interrupt preemption path
    ce394d5e28c6 x86/asm: Pin sensitive CR0 bits
    b3327106585c x86/asm: Pin sensitive CR4 bits
    e3534ce1de0c Documentation/x86: Fix path to entry_32.S
    487a6cb63d71 x86/asm: Remove unused TASK_TI_flags from asm-offsets.c
    2bd8a406516b x86/entry/64: Don't compile ignore_sysret if 32-bit emulation is enabled

(From OE-Core rev: 5c45a080ae140dfe890ac07f3c6914abfc35faa2)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d320a03b697679dfe223883b23480b70f89ad649)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Anuj Mittal
57661f31d9 openssh: backport patch to fix "cert not yet valid" test
Fixes [YOCTO #13796]

(From OE-Core rev: 1cacb300369fb062ad45b0460ed93bfc800d7323)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Kevin Hao
0dffb94709 xserver-nodm-init: Fix the start failure for non-root user
In order to start the xserver, a non-root user should have the
cap_sys_admin capability to set the drm master. We try to get
the cap_sys_admin capability by setting it in both the thread
and file inheritable set. The side effect of this is that we
would have to add the "pam" to the distro features if we want
use the xserver-nodm-init for a non-root user.

[Yocto #11526]

(From OE-Core rev: fec05cd1eaaad41fd72a29d7792f1c37d2a82f3e)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cfd71a68a4931c8bda15357ebb1e9ebcf0e302dc)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Trevor Gamblin
b61d8bc577 qemurunner.py: add try/except for pid handling race
In some instances, attempts to remove the qemu pidfile within the
stop() method fail despite the os.path.exists() call immediately
before implying that the file is present. Add a try/except block
to log a warning if this occurs, rather than failing outright,
since the process simply appears to be exiting at an inconvenient
time.

[YOCTO #13675]

(From OE-Core rev: 0e94cfb4aa718b4842f608879b77d5671b5bf338)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit eadb899e23b18eb9eaff145c3bf5b20fb417c3e8)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:45 +00:00
Nathan Rossi
ceda1b23f2 glibc-testsuite: Exclude this recipe from world builds
This recipe is intended to be run manually or via oeqa.

[YOCTO #13737]

(From OE-Core rev: 2b3235f10bb1759d651d28b41825ad53192c841a)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit eadbe01bb8232de79e0827e6c6b3411f69ea7303)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:44 +00:00
Nathan Rossi
6543299fa6 glibc-testsuite: Remove the do_install task
This task is not intended to be run as this recipe does not produce any
packages or install any sysroot content. Additionally running this task
behaves differently from a normal glibc build, and can result in issues.

[YOCTO #13737]

(From OE-Core rev: a02934484605e5f81e67798d4d8eeb24e70591e6)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2b51252cb8bd9badfa28794f9ef9431b48752e3d)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-07 10:56:44 +00:00
Daisuke Yamane
7f5914015b bitbake: lib/bb/utils.py: Preserve ownership of symlink
Yocto Bug: https://bugzilla.yoctoproject.org/show_bug.cgi?id=13806

Uncomment lchown() to preserve ownership of symlink.

(Bitbake rev: 6836184ef5220488a1127413c7d2e523fc37e2e9)

Signed-off-by: Daisuke Yamane <daisuke.yamane@cybertrust.co.jp>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-06 17:25:27 +00:00
Anuj Mittal
5e1f52edb7 Revert "bash: Fix CVE-2019-18276"
This reverts commit 09e695246d.

This isn't a Backport as indicated in patch and not all the changes in
this change are relevant to the CVE. Revert and wait for the fix
to be available upstream.

(From OE-Core rev: f39285bb82e68945a81034b84da09ca1078d6719)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-19 18:53:19 +00:00
Richard Purdie
c204cc47d0 bitbake: cooker/siggen: Empty siggen cache during parsing
When parsing recipes its apparent the memory usage of bitbake rises linearly
with number of recipes parsed. It shouldn't.

Using tracemalloc (thanks for the tip Joshua Lock) it was clear that the
dependency information left behind in siggen was the culprit. Add a new
method to allow us to drop this information. We don't need it after the recipe
has been parsed and hashes calculated (at runtime its different but only the
currently executing task would be in memory).

This should give signficant memory usage improvements for bitbake and that
in turn should help speed on more constrained systems, as well as when used in
multiconfig environments.

(Bitbake rev: ef29309d0b512b64d024e383e7baff22c727711c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-18 13:59:06 +00:00
Richard Purdie
fe857e4179 build-appliance-image: Update to zeus head revision
(From OE-Core rev: 799b3cd1016bd765f4452a5e81ea5613c9089bce)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:06:41 +00:00
Tom Hochstein
65d341daaf u-boot.inc: Fix devtool build u-boot for u-boot without menuconfig
For u-boot recipes without menuconfig support, running devtool results
in a do_configure error:

cp: cannot stat '/home/r60874/upstream/fsl-xwayland/tmp/work/imx8mmevk-fsl-linux/u-boot-imx/2018.03-r0/u-boot-imx-2018.03//.config': No such file or directory

The problem arises because u-boot.inc supports recipes with and without
menuconfig.

Fix the problem by properly setting DEVTOOL_DISABLE_MENUCONFIG so that devtool
can control logic that applies only for menuconfig support.

(From OE-Core rev: 00e0bc966cc21e8560587c73e72858b9d2e8c891)

Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a6c430b0077eb56b4adbe391a0a05a52133cc8f0)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:13 +00:00
Richard Purdie
6f559af29a ncurses: Fix reproducibility issue
The build was deciding whether to rename manpages based upon the presence of
/etc/debian_version. Be explicit about the configuration instead and
ensure determinism.

[YOCTO #13781]

(From OE-Core rev: 09c8a28893e7ca94a44232d802e1cb02a8f34b87)

(From OE-Core rev: 3d114c08c32578426646f5d97769d2c66fea06cb)

(From OE-Core rev: 7bc68f7b946b1aaaafb161a57aa889b200abc2eb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:13 +00:00
Richard Purdie
82b2340edf libevdev: Fix determinism issue
We need to sort python dict output to be deterministic and generate consistent
header files.

(From OE-Core rev: 75e4cedb986379db2e8a897df52ee1363f9a9a80)

(From OE-Core rev: fc6e8e527698a82bf8047d02e0e792c4a1a64449)

(From OE-Core rev: 7edd5e5fd392fe2bc5eb41e40ee49a2b0f118e41)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:13 +00:00
Richard Purdie
7ba056c19b sysvinit: Fix Reproducibility issue
With a sequence like:

bitbake sysvinit
bitbake sysvinit -c clean
bitbake sysvinit -c package_write_ipk -f

then the resulting package has two files with group "root/70" rather
than "root/shutdown". The issue is that of do_package is a setscene
task, base-passwd isn't present. This patch fixes that dependency
but there may be other cases of this problem around.

[YOCTO #13776]

(From OE-Core rev: 0227e929021263c51d2e7db36224000fecb01f1c)

(From OE-Core rev: cbcba43c18d67aea0ba41f019b357fbec6570ee1)

(From OE-Core rev: bde90e407c8ae0b851534ae84d9d54980e908046)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:13 +00:00
Ross Burton
5737722432 sudo: specify where target tools are
sudo uses AC_PATH_PROG to find target paths, which means at best
potential host-contamination (and reproducible issues) and at worst it
thinks sh is at /your/build/path/hosttools/sh.

Solve this by explicitly passing the correct paths to configure.

(From OE-Core rev: 61650dd8498a093f3bfa93202c9cd2e9a7fb7834)

(From OE-Core rev: 6e809474ab686fba6924d8b46fd0b9eab5c66c06)

(From OE-Core rev: 232430bdee74bb266ded6ccf2fb3842caad06181)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:13 +00:00
Richard Purdie
74efd4db8b libgcrypt: Fix determinism issue
The build was injection git information from the wrong git tree, stop this
to allow reproducible builds.

(From OE-Core rev: 506b36b6d86b3454fcc3cb85f6229cbe8d14f5b5)

(From OE-Core rev: 2b68ffc6d7c45541958f1b0c0b9ca9e39064e096)

(From OE-Core rev: cd2e778771d836e04f76a0ff283c250dc19372c6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:13 +00:00
Richard Purdie
8b96d020f5 libinput: Fix determinism issue
The build was injection git information from the wrong git tree, stop this
to allow reproducible builds.

(From OE-Core rev: c3f6a6113f562ecdb13386c3ff52adb7973980a4)

(From OE-Core rev: 22dc9a3314eef5925241a9a961bd79815d3172b6)

(From OE-Core rev: f29b56b9c140a03edeba69ffc2dc9888b2fde106)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:13 +00:00
Richard Purdie
b7138f18b6 iputils: Fix build determinism
The suid/setcap code depends on whether setcap is on the host system or not
with suid as a fallback. Disable this functionality to be deterministic.

(From OE-Core rev: 8b00ec484fb851c301f13145e17707c0167feab1)

(From OE-Core rev: 3997c47dea49d583fd48cb03f83c007f61d2cb35)

(From OE-Core rev: 46f9c48dc11928ace672e9a3dea7c01d29cf3f04)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:13 +00:00
Richard Purdie
d2da9d8417 openssl: Fix reproducibility issue
There was a build architecture leaking into the target ptest which
could vary depending upon host. Remove it as its cosmetic.

[YOCTO #13770]

(From OE-Core rev: 37db519eedb7eb5cd4f14d05f30f5d580aa7458d)

(From OE-Core rev: c31c676319812e6fc036741db2ab8e16eccff723)

(From OE-Core rev: 94113433887dab43d54f3a76b1e0aa1bacb0d086)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:13 +00:00
Richard Purdie
02cbb680a9 perl: Fix various reproducibile build issues
Add a patch which handles the following issues:

a) Remove the \n from configure_attr.sh since it gets quoted differently depending on
   whether the shell is bash or dash which can cause the test result to be incorrect.
   Reported upstream: https://github.com/arsv/perl-cross/issues/87

b) Sort the order of the module lists from configure_mods.sh since otherwise
   the result isn't the same leading to makefile differences.
   Reported upstream: https://github.com/arsv/perl-cross/issues/88

c) Sort the Encode::Byte byte_t.fnm file output (and the makefile depends whilst
   there for good measure)
   This needs to go to upstream perl (not done)

d) Use bash for perl-cross configure since otherwise trnl gets set to "\n" with bash
   and "" with dash
   Reported upstream: https://github.com/arsv/perl-cross/issues/87

(From OE-Core rev: 482fd0d99f989b5a72a25bdf402fb2f219420b5d)

(From OE-Core rev: def3a9d748564883d71c506726554df622701b00)

(From OE-Core rev: 1f630fe43ec3c3e78c25f93d6badc8a35ff782ad)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Alexander Kanavin
ed51e1231a perl: do not install files that contain build host specific data
This was breaking reproducibility, and the files aren't needed on
target.

[YOCTO #13772]

(From OE-Core rev: 2e0f30c4680221c693495e3a0327378d502a518b)

(From OE-Core rev: 208efc88fa3c57244b272bf7e7f7f8163f14630c)

(From OE-Core rev: e120848c6bba6ce2cf910e762d53193d85280a98)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Ross Burton
3a54dd9de8 gtk+3: sort resources for reproducible binaries
The list of resources is gathered with $(wildcard) in Make, which isn't
sorted. If this order changes then the generated libraries will differ.

(From OE-Core rev: f3675be6be29426688187a135221431a0941d007)

(From OE-Core rev: a2a6d9fa4df66a1f52c1c1fec45eedb4199e8162)

(From OE-Core rev: 5c38cdfc67fb2da167012190d24a607dc7b273ba)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Richard Purdie
d3d7b1b2d0 libidn2: Fix reproducibility issue
The previous tweak for reproducibility didn't handle the duplicate
whitepace left behind, fix this.

[YOCTO #13771]

(From OE-Core rev: 0392fcbdc85180581ce7392212808ebb822cc2e8)

(From OE-Core rev: ca213de432d8d9d715ef09e17cea2aa1e6666e91)

(From OE-Core rev: 77be3238269de636199f9e1e40133711b7440cb4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Richard Purdie
5602cc200b patch: Extend to native/nativesdk and depend upon
There is a bug in patch 2.7.3 and earlier where index lines
in patches can change file modes when they shouldn't:
http://git.savannah.gnu.org/cgit/patch.git/patch/?id=82b800c9552a088a241457948219d25ce0a407a4

This leaks into debug sources in particular (e.g. tcp-wrappers where
source files are read-only). Add the dependency to target recipes
to avoid this problem until we can rely on 2.7.4 or later.

We could try and remove all index lines from patch files but it will be a
losing battle. We could try and identify all the recipes which change
modes on files in patches but again, its a losing battle.

Instead, compromise and have patch-native as a dependency
for target recipes. We use patch-replacement-native since patch-native
is in ASSUME_PROVIDED.

Also add nativesdk-patch to buildtools-tarball.

[YOCTO #13777]

(From OE-Core rev: 5ed0840c93804488cd1c1aba6cb382b2434714a5)

(From OE-Core rev: fd3bd61a6fe5190c575dc968f3a0be9c1cbf21ed)

(From OE-Core rev: 148f1f8caf5d9a262c1f55e437326ce6139a743e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Richard Purdie
e91261050e tar: Fix build determinism, disable rsh
rsh is insecure and obsolete but tar will enable support if the binary is
on the host system. Some systems point it at ssh. Lets explictly disable it
for now unless someone actually needs/uses this at which point it could
become a packageconfig.

(From OE-Core rev: d14a4b0db92a9a7d1ff72a2e0faca7f1a23a0b68)

(From OE-Core rev: 6bdc5f787af46e9c849947cad06ad40aa401b767)

(From OE-Core rev: af4a284bb6fbfd8b58d10d4a5f0f10297c949912)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Richard Purdie
96114090ea mc: Fix manpage date indeterminism
The man page date can vary depending upon the host perl, e.g. in Russian
some versions print 'июня', others 'Июнь' or Polish 'czerwca' or 'czerwiec'.
Rather than depend upon perl-native to fix this, just remove the date from
the manpages.

(From OE-Core rev: 5553c20f9fa4f35bf711b6b9d5717dcf4bfefafa)

(From OE-Core rev: 3653fd41fbc28f70259a00bb0098ec8731526449)

(From OE-Core rev: feaf05c39ffecd7a9fd8bd81fc1872ce26b7801e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Richard Purdie
7688cd8a2f mc: Set zipinfo presence determinstically
This value was floating causing differences in generated files.
Set it determinstically.

(From OE-Core rev: 11d7a9e37c1d3fc21396a98fefc9d34c0b9e784b)

(From OE-Core rev: 8f77075425e2ef9c3b5adbf8e5b29e7cfd7b9b7a)

(From OE-Core rev: 60cdd912b565207b9f236116d8832719cfa9ccfd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Joshua Watt
8c224dd6b0 mc: Fix build reproducibility
Fixes some issues with reproducible builds. Adds a patch to allow the
configure arguments to be omitted from the build and also explicitly
setting some autoconf paths that were picking up hosttools.

(From OE-Core rev: f54d60ee8f15229aa515e168b9c7d248663b48fe)

(From OE-Core rev: 164d72b7a6ab20940f9a124beaf485be9ddc07ba)

(From OE-Core rev: 055766f135b4373264827c5b33c8c385b1ff4748)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Richard Purdie
c98ce5715a libxshmfence: Set shm directory deterministically
Without setting this it will vary depending on which directories are present
on the host.

[YOCTO #13778]

(From OE-Core rev: 6217c3a7201b34888aa2fbae8b6e490bea545574)

(From OE-Core rev: 10357b0bf3f6b34b54c0329e7e392ecf2c7043cd)

(From OE-Core rev: 0e0111a9adad2faadfc825f14b0ad34c429ab95b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Richard Purdie
b9ed515898 sudo: Set vardir deterministically
Without setting this it will vary depending on which directories are present
on the host.

[YOCTO #13775]

(From OE-Core rev: 39fe849b56d70689846262c31ab7c182c8443923)

(From OE-Core rev: 51274c9b195ad00dd6362f352ad9bbf7e9a3e098)

(From OE-Core rev: 89f517c2775338db92874484c28b4224d670ec1f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Joshua Watt
632bbf4bd7 classes/reproducible_build: Read SDE file later
Defers the resolution of the SOURCE_DATE_EPOCH until the variable needs
to be actually realized with a value. The previous method of loading the
value in anonymous python had issues because it could occur before other
anonymous python functions that affect the location of the epoch file,
such as when a recipe uses AUTOINC/AUTOREV or allarch.bbclass.

Also adds more logging to help diagnose issues in the future.

[YOCTO #13763]

(From OE-Core rev: b3313a10a3eb93f0a3710a35de0404fb49cd6202)

(From OE-Core rev: 10515e5f7e38edbc4430e2599062a9ce6fdb42a8)

(From OE-Core rev: 81d3832728aeae0e02e775bab9fc13e159fb61d3)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Richard Purdie
e8c813141d oeqa/reproducible: Improve test output and ensure deb+ipk compared
Adding newline characters between the packages in the failure output
massively improves readability.

Also ensure to output ipk failures when there are deb failures by
calling self.fail() at the end, else sometimes only partial differences
are returned.

(From OE-Core rev: 6e2e0480852177db75a6108d77c99c92c4e9950f)

(From OE-Core rev: 4d470f48f7fb5e05fba1ca3a59fb4f85d910026e)

(From OE-Core rev: 38359c79dc6e02a21d1bc26756c8bd88da762ef8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Richard Purdie
00534e3e4c opkg-utils: Fix reproducibility issues in opkg-build
There is a sorting problem with opkg-build where the ipk generated is depending
upon the order of files on disk. The reason is the --sort option to tar only
influences the orders of files tar reads, not those passed by the -T option.

Add in a sort call to resolve this issue. To ensure consistent sorting we
also need to force to a specific locale (C) else the results are still not
deterministic.

(From OE-Core rev: a9b8287984c63420e10329a69f7ac5125f1687f8)

(From OE-Core rev: b577a6d923042cfc04e67d470e0987488ea61412)

(From OE-Core rev: ff31fa7ae18cffb1618c3859c5dff7eb3c587692)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Alejandro del Castillo
f17ff5f9ce opkg-utils: upgrade to version 0.4.2
- Drop 00001-Switch-all-scripts-to-use-Python-3.x.patch
- Drop 00001-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch
- Drop pipefail.patch

(From OE-Core rev: bf51a4a1312562cc9b5944b7dfccba0b3d11dc3c)

(From OE-Core rev: 1b71c28e1ca4fddc0f3c340ea4bcd76854ef620c)

(From OE-Core rev: 428c8a3887c86ea882b264fdad606612b9d9eb8e)

Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Taras Kondratiuk via Openembedded-core
2b0ad2bcad gcc-9.2: fix bug #91102 'aarch64 ICE on Linux kernel with -Os'
Linux kernel compilation for aarch64 triggers ICE if
CONFIG_CC_OPTIMIZE_FOR_SIZE=y.

The rootcause is GCC bug #91102 'aarch64 ICE on Linux kernel with -Os'.
Apply the fix to 9.2.

(From OE-Core rev: 14f34d32bfdaa752f5043e62750d2e7b92c4b419)

(From OE-Core rev: 8ebd3b4ed4995f27c1568cf873067ce24b1998bd)

Signed-off-by: Taras Kondratiuk <takondra@cisco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Tom Hochstein
7435786516 devtool/standard.py: Allow recipe to disable menuconfig logic
u-boot.inc supports u-boot recipes with or without menuconfig [1].
However, running devtool on a u-boot recipe that does not support menuconfig
results in an error:

cp: cannot stat '/home/r60874/upstream/fsl-xwayland/tmp/work/imx8mmevk-fsl-linux/u-boot-imx/2018.03-r0/u-boot-imx-2018.03//.config': No such file or directory

The problem is the devtool logic assumes that any recipe with a do_menuconfig task
will generate a .config in do_configure().

Fix the problem by removing the assumption with a flag that the recipe can control,
like this:

do_configure() {
    if [ menuconfig-supported ]; then
        ...
    else
        DEVTOOL_DISABLE_MENUCONFIG=true
    fi
}

[1] 11278e3b2c

(From OE-Core rev: 803391ef7ba662a5ee58609d9c81aeffa494287c)

Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Anuj Mittal
8a398c5fab cpio: fix CVE-2019-14866
(From OE-Core rev: c06d69e6dccb849e60847a33593fa20e192feea2)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Anuj Mittal
d447876b4f curl: fix CVE-2019-15601
(From OE-Core rev: 30f4f40c4c92b000fa3356fae0504da233b0f601)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Lee Chee Yang
5865fb9194 rsync: whitelist CVE-2017-16548
patch for this CVE applies to v3.1.3pre1 not for v3.1.3.
patch already in v3.1.3.
see
https://git.samba.org/rsync.git/?p=rsync.git;a=commitdiff;h=47a63d90e71d3e19e0e96052bb8c6b9cb140ecc1;hp=bc112b0e7feece62ce98708092306639a8a53cce

(From OE-Core rev: 1e2739c821312527010fb0afbde5a20cd3f03d24)

(From OE-Core rev: be8838387b5dd06abd81cc478d3c2ab9c95930bc)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Anuj Mittal
495b6d9f24 Revert "bzip2: Fix CVE-2019-12900"
This reverts commit 175e6cb75c.

This change is already in bzip2 1.0.7. The change fixing a regression
caused by this change is in 1.0.8 which is the current version in zeus.

This isn't resulting in failures because the patch file isn't included
in SRC_URI.

(From OE-Core rev: ac6150563bd8e4cb2fa09a2777879afc993f1c20)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:05:12 +00:00
Richard Purdie
6eee202b9a bitbake: siggen: Avoid cache mismatch issues with locked sigs
If locked sigs are in use this function makes little sense, need to
avoid generating mismatch warnings.

(Bitbake rev: 95687be83e716220eb3893b67428f97fd59fc2c5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 27ad9c1d468fba858a4adeb56b605227b415ae0f)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:02:14 +00:00
Richard Purdie
57a4bcc6bf bitbake: siggen: Cache unihash values to avoid cache lookup
Add unihash cache of values to speed up cache lookup.

This avoids the overhead of the disk based check functions.

(Bitbake rev: 1f5a662176fd174c4793e3e28d1b4e95616b1715)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5c9cc45b60904a1c355db9bf9c4495f1b25aca37)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:02:14 +00:00
Richard Purdie
7412d9acf7 bitbake: siggen: Optimise get_unihash disk based cache handling
Currently the cache can grow huge since any previously used hash is
retained in the cache. This change moves to use one hash per task
which improves the speed of the functions considerably. Currently
performance is an issue, as are very large cache files and cache
load time.

By moving to a single hash per task, the shorted filename as a key
is no longer usable as the same recipe has multiple variants for
the same filename so this has to change.

(Bitbake rev: 8f4f6c2f9acab23bc795ffe389c4cd74711d10ff)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ed764e7fcf04b6d0ba6b4cac7415b1ee8f492865)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:02:14 +00:00
Frazer Clews
4f8e5ec393 bitbake: cooker/toaster: replaced deprecated method warn() with warning()
Removed the deprecated methods as it will only cause problems later on,
and since warn() just calls warning(), it shouldn't change anything

(Bitbake rev: c131015f1ac152f1fea4b83a3d451c3e4d05ebec)

Signed-off-by: Frazer Clews <frazer.clews@codethink.co.uk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a194f275235f22411cb2368f06a44f61ceb6a0f3)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:02:13 +00:00
Chris Laplante
64d62e5d48 bitbake: persist_data.py: Immediately get exclusive lock in __setitem__
To avoid races, SQLTable::__setitem__ needs an exclusive lock for the
entire transaction, not just the INSERT/UPDATE part.

(Bitbake rev: 2ba2f224b50956313f5c2ba01942143b4d6098f2)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit feb43e7c30f5bfab75d718896c45df621810d06f)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:02:13 +00:00
Chris Laplante
ee1dd9f1e2 bitbake: fetch2/git: _revision_key: collapse adjacent slashes
>From a SRCREV caching point of view, there is no reason to treat the
following upstreams as different:

    SRC_URI = "git://github.com/file/file.git"
    SRC_URI = "git://github.com//file/file.git"

(Bitbake rev: 716cdf737bc536f84ed1254d464c9f286e0d5a9a)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 425e21c14955dd38868c6e97637df3bbe0f89fac)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:02:13 +00:00
Chris Laplante
2edae751cf bitbake: fetch2: do not suffix srcrev cache key with PN
Prior to this change, two different recipes pulling from the same
exact repo could get a different SRCREV during a single parse session.

This was originally observed using git. For git at least, it still
allows recipes to pull from the same repo, but with different branches
or tags, since the form of the srcrev cache key for git is:

        "git:" + ud.host + ud.path.replace('/', '.') + ud.unresolvedrev[name]

Where the 'unresolvedrev' part is the branch or tag name.

(Bitbake rev: 63556259f2e34003ad0618a8fe19e1cfe8aef5c9)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6c938e6fd29beebe09b32be839dae008fe6491d2)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-11 23:02:13 +00:00
Richard Purdie
73fe0e273b build-appliance-image: Update to zeus head revision
(From OE-Core rev: 832588c287d47604d8f717adfed6cc2ecd8c755e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-06 16:44:10 +00:00
Richard Purdie
36520aa382 poky.conf: Bump version for 3.0.2 zeus release
(From meta-yocto rev: f9fe37c5dca3e3fd384b70d2f5e7a890271d8d70)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-06 16:43:51 +00:00
akuster
af832a4da0 Documentation: Prepared for 3.0.2 release
Add release date for 3.0.2.

(From yocto-docs rev: ac75b463b23ae6258c1e6f3bbdefc398f3a03d43)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-06 16:42:53 +00:00
Armin Kuster
c604115e9e python2: add ntpath
python3 has this but python is missing this.
[Yocto #13740]

(From OE-Core rev: af41a2238beec0c34c1c1e5f25eed55f2a214643)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-04 18:43:08 +00:00
Joe Slater
58513c802f webkitgtk: fix occasional link error
Partial backport from WebKit.git.  See patch for details.

Fixed in webkitgtk 2.26.1.

(From OE-Core rev: bc31d2d68135ce0a856db62519b370d6c05201f1)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-04 18:43:08 +00:00
Sumit Garg
b3d2fb6ab1 core: recipes: fix some native tools dependencies
Some native tools dependency issues were seen while building with
external GCC tool-set rather than source GCC tool-set. While building
with source tool-set these dependencies were implicitly met which is not
the case with external tool-set. So explicitly state these native tools
dependencies.

(From OE-Core rev: 534b4a63299c6d74662c9d035238a0adb19cd1c7)

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-04 18:43:08 +00:00
Sana Kazi
175e6cb75c bzip2: Fix CVE-2019-12900
Added patch for CVE-2019-12900 as backport from upstream.
Fixes out of bound access discovered while fuzzying karchive.

Tested by: Sana.Kazi@kpit.com

(From OE-Core rev: aec10c9993f04304466e15ea7a5bc4d85a357c5b)

Signed-off-by: Saloni Jain <Saloni.Jain@kpit.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-04 18:43:08 +00:00
Hongxu Jia
e547b2c85f kbd: avoid vlock conflict with busybox
busybox as well as vlock utility from meta-oe provides vlock utility
which can conflict when with kbd if pam is a enabled distro_feature

Fixes image build errors

update-alternatives: Error: not linking <rootfs>/usr/bin/vlock to /bin/busybox.suid since <rootfs>/usr/bin/vlock exists and is not a link

ERROR: yoe-qt5-wayland-image-1.0-r0 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.

(From OE-Core rev: d00349526f5727fdff9b40c6139d95bd75af213d)

Signed-off-by: Khem Raj <raj.khem@gmail.com>

The vlock doesn't exist if PAM isn't enabled.

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: De Huo <de.huo@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-04 18:43:08 +00:00
De Huo
d4cd1c045e kbd: configure.ac: Fix logic of vlock configure switch
Downstream bug report: https://bugs.gentoo.org/661650

Upstream-Status: Backport [f7f357ef079b6d185f340e716d7c72a98d82bad0]

(From OE-Core rev: bb544a4d9b0b889d6acacdd73e3a790546fe13ba)

Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
Signed-off-by: De Huo <De.Huo@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-04 18:43:08 +00:00
De Huo
09e695246d bash: Fix CVE-2019-18276
An issue was discovered in disable_priv_mode in shell.c in GNU Bash through 5.0 patch 11.
By default, if Bash is run with its effective UID not equal to its real UID,
it will drop privileges by setting its effective UID to its real UID.
However, it does so incorrectly. On Linux and other systems that support "saved UID" functionality,
the saved UID is not dropped. An attacker with command execution in the shell can use "enable -f" for
runtime loading of a new builtin, which can be a shared object that calls setuid() and therefore
regains privileges. However, binaries running with an effective UID of 0 are unaffected.

Backport the CVE patche from https://github.com/bminor/bash/commit/
951bdaad7a18cc0dc1036bba86b18b90874d39ff to fix CVE-2019-18276

(From OE-Core rev: b348e31c93f08332667df65cd2ecec63631d184e)

Signed-off-by: Chet Ramey <chet.ramey@case.edu>
Signed-off-by: De Huo <De.Huo@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-04 18:43:08 +00:00
Lee Chee Yang
7dc72fde6e libxml2: Fix CVE-2019-19956
see:
5a02583c7e

(From OE-Core rev: 9fd363d21df59fff4488763d62548c936b4d14fb)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-04 18:43:08 +00:00
Jefro
69cfd69410 Adding memoriam to scottrif
Added a few comment lines in Makefile to commemorate Scott's
contributions

(From yocto-docs rev: fba30da7b4e55838ce3b19a6a7cc658bc686b947)

Signed-off-by: Jefro <jefro@jefro.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-31 08:03:17 +00:00
Richard Purdie
c1d49a3741 bitbake: runqueue: Use a set for the setscene tasks list
This should give performance improvements to functions using this list of
tasks (sets are used for most of the other code for this reason, not sure
why this wasn't a set in the first place).

(Bitbake rev: 1a026d4aca47ed1b0b74a8a818635e7520e8f9c8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f5daef68703481a3c243dfecc7de404e6ebfdbb6)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:51:03 +00:00
Peter Kjellerstedt
a74b608224 bitbake: knotty: Be consistent when creating/updating progress bars
When creating a new progress bar (using BBProgress), a colon was
appended to the supplied message. However, when updating the message,
no colon was appended.

Change this so that the colon is instead part of the widgets that make
up the progress bar so that it does not matter when and how the
message is updated, it always displays the same.

(Bitbake rev: 1115a14c93dc44124c3ab95053142da78032a004)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 08f35c04f6e1ce4c4ca5c2bef4cd8a192e12e682)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:51:03 +00:00
Peter Kjellerstedt
3d92e6b49d bitbake: knotty: Hide the footer if a process progress bar is shown
With the introduction of the hash equivalence server, the progress bar
for "Checking sstate mirror object availability" is shown repeatedly
while the tasks are being executed. If the footer is not hidden then,
it will be moved up one line every time, creating a messy interface.

(Bitbake rev: b7ecb1d0232c12b8388ae516b1dbd025ad782d56)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 56b5ec4c2b3e658e73ca6c3a12feeb96df0977fb)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:51:03 +00:00
Peter Kjellerstedt
9b93154528 bitbake: cooker: Keep track of watched files using a set instead of a list
When there are many watched files, keeping track of them using lists
is suboptimal. Using sets improves the performance considerably.

(Bitbake rev: 16799ada1cda8e021cb04c43e469225790525723)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1e96df260e47d160dbd36bfc92c31ef06266f662)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:51:03 +00:00
Richard Purdie
5fd44938fd sstatesig: Improve debug output if getpwuid() fails
If getpwduid fails, we don't see which file it failed on which is key information
to aid debugging. Print this information when exceptions are raised.

(From OE-Core rev: 2bba0052597020ea887c84419440df11f9859283)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9d7a5219713af8117eda145052c6d9abdf577d8f)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:51:03 +00:00
Richard Purdie
167bd3e6b6 scripts/oe-build-perf-report: Avoid buildstats warning
When a comparision branch is set we see warnings. If two branches are used,
look for buildstats information from both to avoid this kind of warning:

INFO: Parsing buildstats from 'refs/notes/buildstats/perf-centos7.yoctoproject.org/master-next/qemux86'
WARNING: Buildstats not found for perf-centos7.yoctoproject.org/master/qemux86/56808-g08220028e52992dcba667fc97bf3afe8be1949fb/0
WARNING: Buildstats not found for perf-centos7.yoctoproject.org/master/qemux86/56808-g08220028e52992dcba667fc97bf3afe8be1949fb/1
INFO: Buildstats were missing for some test runs, please run 'git fetch origin refs/notes/buildstats/perf-centos7.yoctoproject.org/master-next/qemux86:refs/notes/buildstats/perf-centos7.yoctoproject.org/master-next/qemux86' and try again

(the warning is due to stats being looked for in both branches, choose
the other branch and different warnings would be shown)

(From OE-Core rev: 232b2f6dabaedff087df15a7e6d431dd9f314b4c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit af58c18fcd0451540dd77ee862956b2b9dee17c4)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:51:03 +00:00
Richard Purdie
6571d4ee29 sstatesig: Test cross/native hashserv method extension
We can have one taskhash which represents multiple native/cross sstate objects
since they're stored by BUILD_ARCH or possibly host distro (or host gcc version).
We need to put these into separate namespaces on hashserv since their outhashes
will never match and we need deterministic lookups for the different namespaces.

Use this extramethod option to handle this. This fixes several problematic
failures on the autobuilder.

(From OE-Core rev: 766b57a1f9030429b546276a537fbce3a175cc25)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2a76082363d189880613765ad339718e3614049d)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:51:03 +00:00
Kalle Lampila
88448accde wic/filemap: If FIGETBSZ iotctl fail, failback to os.stat
Some file systems don't support fetching the block size (notably the
file system Docker uses for containers), so if iotctl() fail, try to use
failback via os.stat() to get block size.

(From OE-Core rev: 996013b4e5d3cd1c054e87539ac1a8d95581a87f)

Signed-off-by: Kalle lampila <kalle.lampila@lempea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e219f5175177a640dd62833082ea19adc1c13d42)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:51:03 +00:00
Mike Crowe
297debd5ea multilib.conf: Ensure that RECIPE_SYSROOT is unchanged for native
Ensure that RECIPE_SYSROOT is the same for -native recipes whether
multilib.conf is included or not.

Without this change task signatures for -native recipes change when
switching between MACHINEs that require multilib.conf and those that
don't.

This fix was one of the ones suggested by Khem Raj in
http://lists.openembedded.org/pipermail/openembedded-core/2019-December/290303.html

Add test_sstate_multilib_or_not_native_samesigs test case to
sstatetests.py to ensure that this stays fixed.

(From OE-Core rev: c3e957409bf68e7b310e27781ac91d24cf4452bf)

Signed-off-by: Mike Crowe <mac@mcrowe.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit aa05f1ded71366b86eda7fce24d8b5395e85ada2)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:51:03 +00:00
Alex Kiernan
8fdf082c11 linuxloader: Correct loader for glibc on armhf
Fix the naming of the loader on armhf to match what glibc expects:

  #define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT SYSTEMLIBS_DIR "ld-linux.so.3"
  #define GLIBC_DYNAMIC_LINKER_HARD_FLOAT SYSTEMLIBS_DIR "ld-linux-armhf.so.3"

(From OE-Core rev: 70efe880589df1dfe7d71451d62d9d8e4afd7981)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7ad531093d620f18c04d487d79e9dad9f5a96232)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:51:03 +00:00
Peter Kjellerstedt
375065fa17 license.bbclass: Introduce AVAILABLE_LICENSES that lists all licenses
Previously, there was SRC_DISTRIBUTE_LICENSES, an undocumented
variable that contained a static list of licenses. It was used by
expand_wildcard_licenses() to expand any wildcards used in, e.g.,
INCOMPATIBLE_LICENSE. However, since this static list of licenses has
not been kept up-to-date, many licenses were missing, with the result
that if one tried to use any of those licenses with a wildcard, no
licenses would be found, effectively ignoring that they should be
marked as incompatible.

This introduces a new (documented) variable, AVAILABLE_LICENSES, that
is automatically updated to contain all licenses found in any
directories specified by ${COMMON_LICENSE_DIR} and ${LICENSE_PATH},
and uses it instead of SRC_DISTRIBUTE_LICENSES when expanding
wildcards.

(From OE-Core rev: 5ed714139f91eb03871e01b68a4370784071234d)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8c9ef587fe499c612a878a1ab42092eb79b334ef)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:51:03 +00:00
Peter Kjellerstedt
14227b03a2 licenses.conf: Remove the SRC_DISTRIBUTE_LICENSES variable
The SRC_DISTRIBUTE_LICENSES variable and its static list of licenses
has been replaced by AVAILABLE_LICENSES, which automatically contains
all available licenses.

(From OE-Core rev: c41f1c7f33a8a13ed8e6fd86b494cf460328a9e4)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 64daaf29e2c12c8b587bafdebf9409433187ddf7)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:51:03 +00:00
Peter Kjellerstedt
afc2ffee1a sanity.bbclass: Move sanity_info from conf to cache
Since this file is written during recipe parsing, having it in the
${BUILDDIR}/conf directory, which is covered by an inotify watcher,
will trigger a re-parse the next time bitbake is run and the resident
bitbake server is enabled. This causes the sanity_info file to be
updated again, which triggers a new parse the next time bitbake is run
ad infinitum. Moving it to ${BUILDDIR}/cache should avoid this.

(From OE-Core rev: f1a609e7176a37e7e5f86f0b786f7da915085f83)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f98103b548aa7dba6b1be6c8e02ef41858a8e85c)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:51:03 +00:00
Peter Kjellerstedt
2071b7caf2 populate_sdk_ext.bbclass: No longer needed to clean away conf/sanity_info
Since the sanity_info file has moved from the conf directory to the
cache directory, there is no longer any need to clean it away
explicitly in clean_esdk_builddir() since the whole cache directory is
already cleaned away anyway.

(From OE-Core rev: f0ea8b49a183d9340aaf0c60ee959aa8ec3c041c)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 40c30990e1be72130819c040fe471e2bdc0c6e7d)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:51:03 +00:00
Peter Kjellerstedt
0cce5bc165 toaster.bbclass: Correct pkgdatadir path in toaster_package_dumpdata()
In commit 692b2046 (package: Fix race between do_package and
do_packagedata), the path used for do_packagedata[sstate-inputdirs]
was changed from "${PKGDESTWORK}" to "${WORKDIR}/pkgdata-pdata-input".
This commit adapts the path used for pkgdatadir in
toaster_package_dumpdata() accordingly to avoid setscene errors like:

  ERROR: libgcc-9.2.0-r0 do_packagedata_setscene: Error executing a
  python function in exec_python_func() autogenerated:

  The stack trace of python calls that resulted in this
  exception/failure was:
  File: 'exec_python_func() autogenerated', lineno: 2, function:
  <module>
       0001:
   *** 0002:toaster_package_dumpdata(d)
       0003:
  File: 'meta/classes/toaster.bbclass', lineno: 130, function:
  toaster_package_dumpdata
       0126:    lpkgdata = {}
       0127:    datadir = os.path.join(pkgdatadir, 'runtime')
       0128:
       0129:    # scan and send data for each generated package
   *** 0130:    for datafile in os.listdir(datadir):
       0131:        if not datafile.endswith('.packaged'):
       0132:            lpkgdata = _toaster_load_pkgdatafile(datadir,
       0133:            # Fire an event containing the pkg data
       0134:            bb.event.fire(bb.event.MetadataEvent(
  Exception: FileNotFoundError: [Errno 2] No such file or directory:
  'tmp/work/mips32r2el-nf-poky-linux/libgcc/9.2.0-r0/pkgdata/runtime'

(From OE-Core rev: c1d881448fea0bc48aba0bc0e5b8748442572226)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5a0f6f631b86f7107aa72453b6d23f32ba39f713)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:51:03 +00:00
Richard Purdie
cf92a2d567 bitbake: cache: Lower debug level for wold build messages
These messages spam the logs for no good reason, they were useful for debugging
a particular problem long ago but are distracting noise now. Disable them.

(Bitbake rev: 46969195492708a705390896c9dea515f158954c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1a9247c468cf09da60e5d396ccb81e950841c99e)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:23 +00:00
Richard Purdie
5a7ede639f bitbake: siggen: Test extra cross/native hashserv method
Hack the hashserv to allow extra data to be injected into the hashserv
method. This allows OE-Core to handle cases where there are multiple
sstate objects for the same taskhash, e.g. native/cross objects based
upon BUILD_ARCH or the host distro (when uninative isn't used).

This has been tested and proven to be very effective. We will likely
rework the code to improve how this is handled but for now this
improves automated builds until we can get to that refactoring and
more invasive changes.

(Bitbake rev: e21bf572cfe18e805d3f849777189685f7391a67)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0a09b0fa03d1afc08037964dc63a18ef7cff9c78)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:23 +00:00
Richard Purdie
9f02b50c8c bitbake: runqueue: Fix task dependency corner case in sanity test
A corner case was identified where tasks with valid stamps from previous
builds need to be accounted for in the new sanity test in the migration
code. Add a variable to track such completed tasks to ensure the sanity
test works correctly.

(Bitbake rev: 39cc4930676970b2e51b99a778f5d5d9b5259991)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d517b1ef13ca7ab2fb4d761d3bd3b9fb7c591514)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:23 +00:00
Richard Purdie
d0f86a99f7 bitbake: runqueue: Ensure task dependencies are run correctly
We've seen a number of mystery failures where task B would run despite
task A, its dependency not having run. An example would be do_compile
when do_unpack didn't run.

This has been tracked down to this code block. In theory it shouldn't
trigger however it can and has due to bugs elsewhere. When it does, it
causes significant weird failures and possible build corruption.

Change the code to abort the build. This avoids any chance of corruption
and should ensure the issues get reported, putting an end to the weird
build failures.

There may be some cases where this triggers and it shouldn't, we'll work
through those as they arise and are identified.

(Bitbake rev: 182b2ae7bab4a943978154be3a65c018aaf21fdc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7a92b7f58ab187eddfe550bd6fb687240c7b11bb)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:23 +00:00
Richard Purdie
fbde5ca509 bitbake: runqueue: Fix equiv hash handling build failures
Regardless of whether we remapped the hash on the server or not, we need
to have bitbake work as if we did as we need to match how the stamp files
look.

This change resolves build failures where tasks were rerunning when they
shouldn't.

(Bitbake rev: 10058fe590c56ee3b4d2136b6e247c2d29ae47e6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 40928f6991436cf687821015324483b205abfcb1)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Ola x Nilsson
9b0f2f2e79 bitbake: prserv/serv: Use with while reading pidfile
(Bitbake rev: e731f72ca86629eb935bb1c4f7323421a125aace)

Signed-off-by: Ola x Nilsson <olani@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6fa8a18ea4994031fdd1253fe363c5d8eeeba456)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Aníbal Limón
f619b13403 bitbake: lib/bb: Add BB_SIGNATURE_LOCAL_DIRS_EXCLUDE to speed-up taskhash on directories
The new BB_SIGNATURE_LOCAL_DIRS_EXCLUDE allows you to specify a list
of directories to exclude when making taskhash, our specific case
is using SRC_URI that points local VCS directory.

Use bb.fetch.module to set default to: "CVS .bzr .git .hg .osc .p4 .repo .svn"

(Bitbake rev: 4c7d689341f471efdf8ab7c2a7c6a19d2d370f5c)

Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 923aff060d8aba8456979c35b16d300ba7c13ff9)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Richard Purdie
b51364db48 bitbake: lib/bb: Optimise out debug messages from cooker
We have bb.debug(2, xxx) messages in cooker which are useful for debugging
but have really bad effects on performance, 640,000 calls on recent profile
graphs taking tens of seconds.

Rather than commenting out debug which can be useful for debugging, don't
create events for debug log messages from cooker which would never be seen.
We already stop the messages hitting the IPC but this avoids the overhead
of creating the log messages too, which has been shown to be signficiant
on the profiles. This allows the code to perform whilst allowing debug
messages to be availble when wanted/enabled.

(Bitbake rev: f224201b5003b89367d688b1f08a062754fce13a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f04cd931091fb0508badf3e002d70a6952700495)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Richard Purdie
8c5bfee392 bitbake: runqueue: Only call into the migrations function if migrations active
This doesn't save much time but does make the profile counts for the
function more accurate which is in itself useful.

(Bitbake rev: 53a3cba93401c902d1d214cafe0bc036e1b101e5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d446fa89d206fbc6d098215163c968ea5a8cf4a9)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Richard Purdie
fb65235aca bitbake: runqueue: Optimise task filtering
We were seeing this running thousands of times with hashequiv, do
the filtering where it makes more sense and make it persist.

(Bitbake rev: 7fa3ede953971f761d8cafafa37d1bcb65ad6a77)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2cfeb9998a8ad5b1dcda0bb4e192c5e4306dab17)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Richard Purdie
014558f14c bitbake: runqueue: Optimise out pointless loop iteration
(Bitbake rev: 14babbf0a32637db640e0494b0331397dcb0f715)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 105d1f0748edde7753a4063e6fdc758ffc8a8a9e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Richard Purdie
2425a927c7 bitbake: runqueue: Optimise task migration code slightly
Move the calls to difference_update out a code level which improves efficiency
significantly.

Also further combine the outer loop for efficiency too.

These two changes remove a bottleneck from the performance charts.

(Bitbake rev: 57df7f191755dd887827d51b125d246c1af3e1b6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e28ec69356f1797de3e4e3fca0fef710bc4564de)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Richard Purdie
db413b5050 bitbake: runqueue: Fix sstate task iteration performance
Creating a new sorted list of sstate tasks each iteration through runqueue is
extremely ineffecient and was compounded by the recent change from a list to set.

Create one sorted list instead of recreating it each time.

(Bitbake rev: a80024a4397485f96693c4df108b40f6b1bdf32b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit de18824996841c3f35f54ff5ad12f94f6dc20d88)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Richard Purdie
56631225aa bitbake: siggen: Split get_tashhash for performance
There are two operations happening in get_taskhash, the building of the
underlying data and the calculation of the hash.

Split these into two funtions since the preparation part doesn't need
to rerun when unihash changes, only the calculation does.

This split allows sigificant performance improvements for hashequiv
in builds where many hashes are equivalent and many hashes are changing.

(Bitbake rev: c4ce216b4c5a1626764752edd21005750d05a0c2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6a32af2808d748819f4af55c443578c8a63062b3)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Richard Purdie
8de879583e bitbake: runqueue: Fix task mismatch failures from incorrect logic
The "no dependencies" task case was not being correctly considered in this
code and seemed to be the cause of occasionaly task hash mismatch errors
that were being seen as the dependencies were never accounted for properly.

(Bitbake rev: 480939538f5887a70d11c2f7cf74446100e25fab)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 608b9f821539de813bfbd9e65950dbc56a274bc2)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Richard Purdie
57efd2721b bitbake: runqueue: Rework process_possible_migrations() to improve performance
The looping over multiple changed hashes causes many calls to get_taskhash
and get_unihash which are potentially slow and then overwritten.

Instead, batch up all the tasks which have changed unihashes and then
do one big loop over the changed tasks rather than each in turn.

This makes worlds of difference to the performance graphs and should speed
up build where many tasks are being rehashed.

(Bitbake rev: c9ab598f6f1ea3ae3a0713dc6692b4c4bafbfb50)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c9c68d898985cf0bec6fc95f54c151cc50255cac)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Chris Laplante via bitbake-devel
7278f3f786 bitbake: bb.utils.fileslocked: don't leak files if yield throws
Discovered with a recipe under devtool. The ${S}/singletask.lock file (added by
externalsrc.bbclass) was leaked, giving a warning like:

  WARNING: <PN>+git999-r0 do_populate_lic: /home/laplante/yocto/sources/poky/bitbake/lib/bb/build.py:582: ResourceWarning: unclosed file <_io.TextIOWrapper name='/home/laplante/yocto/build/workspace/sources/<PN>/singletask.lock' mode='a+' encoding='UTF-8'>
    exec_func(task, localdata)

(Bitbake rev: 81829ab28afae08e02f4a758ec063fc0d90579ea)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6beddf6214e22b4002626761031a9e9d34fb04db)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Richard Purdie
c37d0c4aa5 bitbake: siggen: Fix performance issue in get_unihash
There is a significant performance issue in get_unihash(). The issue turns out
to be the lookups of setscene tasks. We can fix this by using a set() instead of
the current list.

(Bitbake rev: 5afad266f2ce55db2038c36f2e49a3c80be9bbfc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1e561672d039ebfb8cd0e0654a44dcf48513317c)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Joshua Watt
f181928937 bitbake: runqueue: Batch scenequeue updates
Batch all updates to scenequeue data together in a single invocation
instead of checking each task serially. This allows the checks for
sstate object to happen in parallel, and also makes sure the log
statement only happens once (per set of rehashes).

(Bitbake rev: a7426c73a8e9fae468414a2c32a533d9c3729405)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit db033a8f8a276d864bdb2e1eef159ab5794a0658)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Richard Purdie
7448f9a180 bitbake: siggen: Ensure new unihash propagates through the system
Its possible the new unihash may not exist in sstate. Currently the code
would create an sstate object with the old hash however this updates it to
create the object with the new unihash.

(Bitbake rev: 0aee83e4e31dff7f4354e4eb4cbd35dd592e9f06)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit abcaa1398031fa5338a43859c661e6d4a9ce863d)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Richard Purdie
376f8eaeb9 bitbake: siggen: Avoid taskhash mismatch errors for nostamp tasks when dependencies rehash
An example:

NOTE: recipe binutils-cross-testsuite-2.32.0-r0: task do_check: Started
ERROR: Taskhash mismatch b074da4334aff8aa06572e7a8725c941fa6b08de4ce714a65a90c0c0b680abea versus 17375278daed609a7129769b74a1336a37bdef14b534ae85189ccc033a9f2db4 for /home/pokybuild/yocto-worker/qemux86-64/build/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.32.bb:do_check
NOTE: recipe binutils-cross-testsuite-2.32.0-r0: task do_check: Succeeded

Is caused by a rehash in a dependency happening somewhere earlier in the build
and the taint being reset.

Change the code so that nostamp taints are preserved to avoid the issue.

(Bitbake rev: c42d00ff293d0538cad1b84c108bf7f5f49d4d84)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 61624a3fc38e8546e01356d5ce7a09f21e7094ab)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Richard Purdie
cbb4636125 bitbake: knotty/uihelper: Switch from pids to tids for Task event management
We've seen cases where a task can execute with a given pid, complete
and a new task can start using the same pid before the UI handler has
had time to adapt.

Traceback (most recent call last):
  File "/home/pokybuild/yocto-worker/qemux86-alt/build/bitbake/lib/bb/ui/knotty.py", line 484, in main
    helper.eventHandler(event)
  File "/home/pokybuild/yocto-worker/qemux86-alt/build/bitbake/lib/bb/ui/uihelper.py", line 30, in eventHandler
    del self.running_tasks[event.pid]
KeyError: 13490

This means using pids to match up events on the UI side is a bad
idea. Change the code to use task ids instead. There is a small
amount of fuzzy matching for the progress information since there
is no task information there and we don't want the overhead of a task
ID in every event, however since pid reuse is unlikely, we can live
with a progress bar not quite working properly in a corner case like
this.

[YOCTO #13667]

(Bitbake rev: a109d034cf4fc059fd5a1e1d03246dac65522dd6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e427eafa1bb04008d12100ccc5c862122bba53e0)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Richard Purdie
afd0025290 bitbake: runqueue: Add extra debugging when locked sigs mismatches occur
(Bitbake rev: 6f0b82627edc82601f80f0f096bf96db43afefa8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3aad9978be2a40d4c535a5ae092f374ba2a5f627)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Richard Purdie
b8f326a778 bitbake: runqueue/siggen: Allow handling of equivalent hashes
Based on the hashserv's new ability to accept hash mappings, update runqueue
to use this through a helper function in siggen.

This addresses problems with meta-extsdk-toolchain and its dependency on
gdb-cross which caused errors when building eSDK. See the previous commit
for more details.

(Bitbake rev: 222df6d6b832868c6e87334f8acdd74b730a91d6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 39098b4ba2133f4d9229a0aa4fcf4c3e1291286a)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Richard Purdie
1d0c73bd68 bitbake: hashserv: Add support for equivalent hash reporting
The reason for this should be recorded in the commit logs. Imagine
you have a target recipe (e.g. meta-extsdk-toolchain) which depends on
gdb-cross. sstate in OE-Core allows gdb-cross to have the same hash
regardless of whether its built on x86 or arm. The outhash will be
different.

We need hashequiv to be able to adapt to the prescence of sstate artefacts
for meta-extsdk-toolchain and allow the hashes to re-intersect, rather than
trying to force a rebuild of meta-extsdk-toolchain. By this point in the build,
it would have already been installed from sstate so the build needs to adapt.

Equivalent hashes should be reported to the server as a taskhash that
needs to map to an specific unihash. This patch adds API to the hashserv
client/server to allow this.

[Thanks to Joshua Watt for help with this patch]

(Bitbake rev: 0d154434ed8e3e88ad440a8dd21a164e72ba4ac5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 674692fd46a7691a1de59ace6af0556cc5dd6a71)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Vasyl Gomonovych
9151c84245 kernel: Make symbol link to vmlinux.64 in boot directory
Some mips 64 bit platforms use vmlinux.64 image name
Make a symbol link to vmlinux.64 in arch/mips/boot/

(From OE-Core rev: f9739e0f58f5d8a5dc01fdb0efaa778af4edd671)

Signed-off-by: Vasyl Gomonovych <gomonovych@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 70626b52e5e61c80018e9f1f85bc169d0434b986)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Yanfei Xu
79584ffcd3 libsdl2: fix failure appeared in bitbake libsdl2-native
When you bitbake libsdl2-native and your host had installed fcitx
or ibus, it may cause you bitbake failed in do_compile.

Disable fcitx and ibus check with EXTRA_OECONF in bb file.

-------------snip---------------------
  CC     build/SDL_sysfilesystem.lo
  CC     build/SDL_syshaptic.lo
  CC     build/SDL_systimer.lo
/poky/build/tmp/work/x86_64-linux/libsdl2-native/2.0.10-r0/SDL2-2.0.10/src/core/linux/SDL_fcitx.c:52:5:
error: unknown type name ‘SDL_DBusContext’
     SDL_DBusContext *dbus;
     ^~~~~~~~~~~~~~~
/poky/build/tmp/work/x86_64-linux/libsdl2-native/2.0.10-r0/SDL2-2.0.10/src/core/linux/SDL_fcitx.c:121:8:
error: unknown type name ‘DBusHandlerResult’
 static DBusHandlerResult
        ^~~~~~~~~~~~~~~~~
/poky/build/tmp/work/x86_64-linux/libsdl2-native/2.0.10-r0/SDL2-2.0.10/src/core/linux/SDL_fcitx.c:122:20:
error: unknown type name ‘DBusConnection’;
------------snip----------------------

(From OE-Core rev: f48ab4268746a2780ee0fdc84e5c39afe593ade7)

Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

(cherry picked from commit eb286172e413e9d6449dc13ccec1b78c04481eb5)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Robert Yang
0d53c40c36 pseudo: Make realpath() remove trailing slashes
Linux system's realpath() remove trailing slashes, but pseudo's doesn't, need
make them identical.

E.g., the following code (rel.c) prints '/tmp' with system's realpath, but
pseudo's realpath prints '/tmp/':

    #include <stdio.h>
    #include <limits.h>
    #include <stdlib.h>

    int main() {
        char out[PATH_MAX];
        printf("%s\n", realpath("/tmp/", out));
        return 0;
    }

$ bitbake base-passwd -cdevshell # For pseudo env
$ gcc rel.c
$ ./a.out
/tmp/ (but should be /tmp)

This patch fixes the problem.

(From OE-Core rev: c251e753486dae9b460df315a6d19d6c81098ecb)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 319bbf66e03377adf2db7efa93ef578e3460eb38)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Richard Purdie
5a9198f525 python3: Update to apply libgcc fix to libpython, glibc only
Update to account for review feedback on list.

(From OE-Core rev: 9a2748db44c4382bbba81a5a9b96c998f0fab983)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ec788594f3f6a47687c6eb321437f2d2b58b1518)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Joshua Watt
9f82054a2c python3: RDEPEND on libgcc
=help>
List-Subscribe:
 <http://lists.openembedded.org/mailman/listinfo/openembedded-core>,
 <mailto:openembedded-core-request@lists.openembedded.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Sender: openembedded-core-bounces@lists.openembedded.org
Errors-To: openembedded-core-bounces@lists.openembedded.org
X-Virus-Scanned: clamav-milter 0.101.4 at dan
X-Virus-Status: Clean
X-Evolution-Source: 1525863794.3857.16@hex
Content-Transfer-Encoding: 8bit

Python uses features of glibc that require it to dynamically load (i.e.
dlopen()) libgcc_s at runtime. However, since this isn't a link time
dependency, it doesn't get picked up automatically by bitbake so
manually add it to RDEPENDS.

There is an outstanding bug in Python to make it explicitly link against
libgcc at link time which would remove the need for this. See:
https://bugs.python.org/issue37395

(From OE-Core rev: e6c4017727008ac2f665e843d59d53b584f3f1b3)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit df107f3a149b1e88d9f869e7ff87950ccf5aaee0)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Adrian Bunk
f7ef93bbb0 python3: Upgrade 3.7.5 -> 3.7.6
(From OE-Core rev: b8926f3898fbf6828b908d741ab3b450adb85643)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit aee9beb12226abf7a195b8ee801ea488920b2fdb)
[Bug fix only update]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Adrian Bunk
61d60f4336 systemd: Upgrade 243 -> 243.2
Bugfix-only changes on the 243 stable branch.

(From OE-Core rev: fd1aa49d8a25767953e8b1beb91001d5e115f781)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Ross Burton
5a3341083f podfix: only alter normal files
(From OE-Core rev: dcbaf2a7a444f07ab516833f4ed4a2322828bddd)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 23d38b2ad6f7a39e5c1ffd092322942474935c33)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Ross Burton
0d4ae87e43 reproducible_build_simple: inherit podfix
When doing reproducible builds inherit podfix to remove the possibility
of differing Perl versions causing manpages to change.

(From OE-Core rev: 3534f17752eccdd62eac8809d7842e9d25fa770a)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5dc43edab4787906f2c9f51e51bf78d1dc966286)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Ross Burton
9a294101b6 podfix: class to remove Pod::Man versions from manpages
Manpages generated by Pod::Man contain the version number, which isn't
reproducible if we're using the host Perl to generate manpage.

One option is to always depend on perl-native when generating manpages
but this is a heavy dependency, so instead strip out the versions in
do_install().

(From OE-Core rev: 88255abe6bb4d10d50a660022ab3f9a1c2954ec7)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 18d8e5ac689d6eb6098f68ac785f43e9d5f5938a)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Tim Orling
f5dc7d9f69 liberror-perl: update 0.17027 -> 0.17028
HOMEPAGE change from bitbucket to github

Upstream release notes:
  - Moved the VCS repo to https://github.com/shlomif/perl-error.pm
  - No other significant changes.

(From OE-Core rev: f15419842bfdf463d987ba708e6d5f9b6aabecdf)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 488680f45fbe28e32391e2a1a66ab350706abe93)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:22 +00:00
Bruce Ashfield
ac328375f9 linux-yocto/5.2: update to v5.2.28
Updating linux-yocto/5.2 to the latest korg -stable release that comprises
the following commits:

    7943d7e69aa7 Linux 5.2.28
    b5db992cfdd3 usbip: Fix uninitialized symbol 'nents' in stub_recv_cmd_submit()
    a0b637f7868d usb: gadget: configfs: Fix missing spin_lock_init()
    aee8c2147a36 net: cdc_ncm: Signedness bug in cdc_ncm_set_dgram_size()
    a04397ac5986 bonding: fix active-backup transition after link failure
    0993efbf3f01 ALSA: usb-audio: Fix incorrect size check for processing/extension units
    66375457a696 ALSA: usb-audio: Fix incorrect NULL check in create_yamaha_midi_quirk()
    c0920628d63f ALSA: hda/ca0132 - Fix work handling in delayed HP detection
    e14b1f4b4011 mwifiex: fix possible heap overflow in mwifiex_process_country_ie()
    060505a3c9dc io_uring: use current task creds instead of allocating a new one
    8d113ae57534 io_uring: async workers should inherit the user creds
    4079323e2113 net/ibmvnic: unlock rtnl_lock in reset so linkwatch_event can run
    013e927d5204 arm64: errata: Update stale comment
    2c8f51168b64 netfilter: ipset: Copy the right MAC address in hash:ip,mac IPv6 sets
    911f63fa6335 bonding: fix using uninitialized mode_lock
    ab3e4e6f92d4 usbip: Fix free of unallocated memory in vhci tx
    516423c1395e cgroup,writeback: don't switch wbs immediately on dead wbs if the memcg is dead
    2c17159569ee mm/filemap.c: don't initiate writeback if mapping has no dirty pages
    a53a54cbee03 ocfs2: protect extent tree in ocfs2_prepare_inode_for_write()
    96e3c3553d84 e1000: fix memory leaks
    ef2c5f55f92e igb: Fix constant media auto sense switching when no cable is connected
    5853c1ae13c9 net: ethernet: arc: add the missed clk_disable_unprepare
    330a0ce1737a NFSv4: Don't allow a cached open with a revoked delegation
    ecb481d00e39 arm64: apply ARM64_ERRATUM_843419 workaround for Brahma-B53 core
    c3cc8b365b07 arm64: Brahma-B53 is SSB and spectre v2 safe
    87251ea1e89b arm64: apply ARM64_ERRATUM_845719 workaround for Brahma-B53 core
    36c2624f9432 usb: dwc3: gadget: fix race when disabling ep with cancelled xfers
    93268e187878 arm64: cpufeature: Enable Qualcomm Falkor errata 1009 for Kryo
    1498bf362a53 x86, efi: Never relocate kernel below lowest acceptable address
    3cfc26fc6f99 efi: libstub/arm: Account for firmware reserved memory at the base of RAM
    fc5ffc1e3fdd hv_netvsc: Fix error handling in netvsc_attach()
    92b10afd667e SUNRPC: The RDMA back channel mustn't disappear while requests are outstanding
    086a81dbfba3 SUNRPC: The TCP back channel mustn't disappear while requests are outstanding
    ffdad349b545 drm/amd/display: Passive DP->HDMI dongle detection fix
    35be94b64940 drm/amd/display: do not synchronize "drr" displays
    7c39460cb5ac drm/amdgpu: If amdgpu_ib_schedule fails return back the error.
    78d726f10338 drm/sched: Set error to s_fence if HW job submission failed.
    9830f79967bf mt76: dma: fix buffer unmap with non-linear skbs
    720d823bdb4b iommu/amd: Apply the same IVRS IOAPIC workaround to Acer Aspire A315-41
    63fd1ae15909 net: mscc: ocelot: refuse to overwrite the port's native vlan
    9016218584da net: mscc: ocelot: fix vlan_filtering when enslaving to bridge before link is up
    28c0b80eaf33 net: hisilicon: Fix "Trying to free already-free IRQ"
    1ecc30627dde fjes: Handle workqueue allocation failure
    e87e60d8b437 nvme-multipath: fix possible io hang after ctrl reconnect
    4872894ab801 sched/topology: Allow sched_asym_cpucapacity to be disabled
    1da63fea0a7b sched/topology: Don't try to build empty sched domains
    70e90b283406 scsi: qla2xxx: stop timer in shutdown path
    1cc270775485 hwmon: (ina3221) Fix read timeout issue
    45239aea409d RDMA/hns: Prevent memory leaks of eq->buf_list
    53fa37993b30 RDMA/iw_cxgb4: Avoid freeing skb twice in arp failure case
    7ff5b79bbbeb usbip: tools: Fix read_usb_vudc_device() error path handling
    a2938e175103 USB: ldusb: use unsigned size format specifiers
    680a523e29ac USB: Skip endpoints with 0 maxpacket length
    e0d7df991267 perf/x86/uncore: Fix event group support
    89cc224ca642 perf/x86/amd/ibs: Handle erratum #420 only on the affected CPU family (10h)
    3cef7fe493bc perf/x86/amd/ibs: Fix reading of the IBS OpData register and thus precise RIP validity
    b2dce44309c3 usb: dwc3: remove the call trace of USBx_GFLADJ
    2a3754959b17 usb: gadget: configfs: fix concurrent issue between composite APIs
    b97e16bf764c usb: gadget: composite: Fix possible double free memory bug
    f28bdd84158d usb: gadget: udc: atmel: Fix interrupt storm in FIFO mode.
    5853c961dc7f usb: fsl: Check memory resource before releasing it
    95100a241e6d usb: dwc3: select CONFIG_REGMAP_MMIO
    108ae240a478 scsi: sd: define variable dif as unsigned int instead of bool
    6525d5046fc8 virt_wifi: fix refcnt leak in module exit routine
    d7aaa2cc70d4 macsec: fix refcnt leak in module exit routine
    9ca46b3266cd bonding: use dynamic lockdep key instead of subclass
    09dd999301fe bonding: fix unexpected IFF_BONDING bit unset
    b3ba6e2b6620 ipvs: move old_secure_tcp into struct netns_ipvs
    d532f1fd8afb ipvs: don't ignore errors in case refcounting ip_vs module fails
    70cbcdb17ff0 net: phy: smsc: LAN8740: add PHY_RST_AFTER_CLK_EN flag
    0e4ba0c6840e xsk: Fix registration of Rx-only sockets
    ef1fdf7f97d0 netfilter: nf_flow_table: set timeout before insertion into hashes
    38521edda858 iwlwifi: pcie: 0x2720 is qu and 0x30DC is not
    8560aaae6c0e iwlwifi: pcie: fix all 9460 entries for qnj
    bd7630c67813 iwlwifi: pcie: fix PCI ID 0x2720 configs that should be soc
    dbd6c9966dd8 bpf: Fix use after free in bpf_get_prog_name
    86e351f38ec7 scsi: qla2xxx: Initialized mailbox to prevent driver load failure
    efb36f318994 scsi: lpfc: Honor module parameter lpfc_use_adisc
    9bff69da3b99 net: openvswitch: free vport unless register_netdevice() succeeds
    193fa1a4522a bpf: Fix use after free in subprog's jited symbol removal
    1ee4522aa93c RDMA/uverbs: Prevent potential underflow
    9c018cb9f15b scsi: ufs-bsg: Wake the device before sending raw upiu commands
    682f81e5304b scsi: qla2xxx: fixup incorrect usage of host_byte
    dca864479cde selftests/bpf: More compatible nc options in test_tc_edt
    7ad63e706f31 net/mlx5e: TX, Fix consumer index of error cqe dump
    b3c5d67904a8 net/mlx5e: Tx, Fix assumption of single WQEBB of NOP in cleanup flow
    de4ed191ea6a IB/core: Use rdma_read_gid_l2_fields to compare GID L2 fields
    b4912439edec RDMA/qedr: Fix reported firmware version
    8291185a312b iw_cxgb4: fix ECN check on the passive accept
    fc84b384eb40 RDMA/mlx5: Clear old rate limit when closing QP
    c76d7b0214ee powerpc/32s: fix allow/prevent_user_access() when crossing segment boundaries.
    13fecbf4a027 HID: intel-ish-hid: fix wrong error handling in ishtp_cl_alloc_tx_ring()
    e6d91869518a dmaengine: sprd: Fix the possible memory leak issue
    55d41c0f1470 dmaengine: xilinx_dma: Fix control reg update in vdma_channel_set_config
    cb7318f2b0e4 dmaengine: xilinx_dma: Fix 64-bit simple AXIDMA transfer
    03a1b968775d bpf: lwtunnel: Fix reroute supplying invalid dst
    4903f1d1bf8b dmaengine: sprd: Fix the link-list pointer register configuration issue
    556cf9124c0a HID: google: add magnemite/masterball USB ids
    09e8a1ec600e usbip: Implement SG support to vhci-hcd and stub driver
    065245f072da ALSA: usb-audio: Fix copy&paste error in the validator
    51db18fc1b06 ALSA: usb-audio: remove some dead code
    eeb8753a5329 ALSA: usb-audio: Fix possible NULL dereference at create_yamaha_midi_quirk()
    5159d8aab602 ALSA: usb-audio: Clean up check_input_term()
    594d9d1e5e17 ALSA: usb-audio: Remove superfluous bLength checks
    44db0074cd7c ALSA: usb-audio: Unify the release of usb_mixer_elem_info objects
    443cff51a6bb ALSA: usb-audio: Simplify parse_audio_unit()
    bcc4dd818640 ALSA: usb-audio: More validations of descriptor units
    af26301992ac configfs: fix a deadlock in configfs_symlink()
    58e23dc42be6 can: dev: add missing of_node_put() after calling of_get_child_by_name()
    b2b42b51675f can: rx-offload: can_rx_offload_queue_sorted(): fix error handling, avoid skb mem leak
    35b90e57a289 can: peak_usb: fix a potential out-of-sync while decoding packets
    6cc9a0bb94de can: c_can: c_can_poll(): only read status register after status IRQ
    78aa7546e343 can: flexcan: disable completely the ECC mechanism
    60eb5bed4403 can: usb_8dev: fix use-after-free on disconnect
    573872be4f06 SMB3: Fix persistent handles reconnect
    a422197a1eab x86/apic/32: Avoid bogus LDR warnings
    46279c9462f3 x86/dumpstack/64: Don't evaluate exception stacks before setup
    c6c6ac3c04b2 intel_th: pci: Add Jasper Lake PCH support
    911ece5b25e1 intel_th: pci: Add Comet Lake PCH support
    3f2a73ab3b0a intel_th: gth: Fix the window switching sequence
    ecb83032ecac netfilter: ipset: Fix an error code in ip_set_sockfn_get()
    343ebeaf5062 netfilter: nf_tables: Align nft_expr private data to 64-bit
    97d84484d0e6 cpufreq: intel_pstate: Fix invalid EPB setting
    7c985c014425 ARM: sunxi: Fix CPU powerdown on A83T
    43a2cca05874 iio: srf04: fix wrong limitation in distance measuring
    b870132ec166 iio: imu: inv_mpu6050: fix no data on MPU6050
    e48c1fca5974 iio: imu: adis16480: make sure provided frequency is positive
    9dca863d3b35 iio: adc: stm32-adc: fix stopping dma
    8fc1bf8f2be7 ceph: don't allow copy_file_range when stripe_count != 1
    8cfda9695cf9 ceph: don't try to handle hashed dentries in non-O_CREAT atomic_open
    4ad07fc427d4 ceph: add missing check in d_revalidate snapdir handling
    ef1848480086 ceph: fix RCU case handling in ceph_d_revalidate()
    d97f80fd208a ceph: fix use-after-free in __ceph_remove_cap()
    dfe4803a9068 ASoC: rsnd: dma: fix SSI9 4/5/6/7 busif dma address
    5e23235c9524 arm64: Do not mask out PTE_RDONLY in pte_same()
    48c2025b2f09 blkcg: make blkcg_print_stat() print stats only for online blkgs
    034d5809a5f4 soundwire: bus: set initial value to port_status
    649b8fd670bc soundwire: depend on ACPI || OF
    94aa8ee28648 soundwire: depend on ACPI
    ee8af21351c4 mm/khugepaged: fix might_sleep() warn with CONFIG_HIGHPTE=y
    d66df2eb6b3a HID: wacom: generic: Treat serial number and related fields as unsigned
    e1ffbf4ecc06 drm/radeon: fix si_enable_smc_cac() failed issue
    69d06ef9e08d perf map: Use zalloc for map_groups
    782163d51e60 perf tools: Fix time sorting
    3067a7cc476a pinctrl: intel: Avoid potential glitches if pin is in GPIO mode
    b69bf236dff2 tools: gpio: Use !building_out_of_srctree to determine srctree
    e231278b0d22 btrfs: save i_size to avoid double evaluation of i_size_read in compress_file_range
    5e162cf4feec btrfs: tree-checker: Fix wrong check on max devid
    3f2943947386 dump_stack: avoid the livelock of the dump_lock
    4355d417a94f mm, vmstat: hide /proc/pagetypeinfo from normal users
    953014f940f5 mm: thp: handle page cache THP correctly in PageTransCompoundMap
    61650775cd53 mm, meminit: recalculate pcpu batch and high limits after init completes
    2dcc41fdaf8a mm: memcontrol: fix network errors from failing __GFP_ATOMIC charges
    aa9bf5f11454 ALSA: hda/ca0132 - Fix possible workqueue stall
    3b82b35a59db ALSA: bebob: fix to detect configured source of sampling clock for Focusrite Saffire Pro i/o series
    e2ba23d39223 ALSA: timer: Fix incorrectly assigned timer instance
    0dc0b91d07e4 vsock/virtio: fix sock refcnt holding during the shutdown
    420c2d73c309 net/smc: fix ethernet interface refcounting
    d7b3e1639bd7 net: sched: prevent duplicate flower rules from tcf_proto destroy race
    343d798fc32d net: prevent load/store tearing on sk->sk_stamp
    7dae346fabf5 net: hns: Fix the stray netpoll locks causing deadlock in NAPI path
    d8dd70306467 ipv6: fixes rt6_probe() and fib6_nh->last_probe init
    28b0701981a4 selftests/tls: add test for concurrent recv and send
    e35586c32b38 net/tls: add a TX lock
    a440797c1de5 net/tls: don't pay attention to sk_write_pending when pushing partial records
    d606d0d99205 net: mscc: ocelot: fix NULL pointer on LAG slave removal
    0be7d0f645a9 net: mscc: ocelot: don't handle netdev events for other netdevs
    7c406bd7d55b qede: fix NULL pointer deref in __qede_remove()
    a09ec9b4cc7d NFC: st21nfca: fix double free
    0c0b3ac80ac8 nfc: netlink: fix double device reference drop
    90a397f2593f NFC: fdp: fix incorrect free object
    cfe446854a9c net: usb: qmi_wwan: add support for DW5821e with eSIM support
    8d510fd1378a net/tls: fix sk_msg trim on fallback to copy mode
    55a7a495b3fe net: qualcomm: rmnet: Fix potential UAF when unregistering
    756e7124cde2 net: fix data-race in neigh_event_send()
    212322510b49 net: ethernet: octeon_mgmt: Account for second possible VLAN header
    b0855a3ad221 ipv4: Fix table id reference in fib_sync_down_addr
    9dfa56e19c37 CDC-NCM: handle incomplete transfer of MTU
    86e7bde87d43 bonding: fix state transition issue in link monitoring

(From OE-Core rev: f8489c88044e179ec39f811703a89f0681fa30ea)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b538fedff2cbd4604a7c73fdee07167f1ad3155a)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:21 +00:00
Bruce Ashfield
9c5e784874 linux-yocto/4.19/5.2/-dev: fix gcc10 build
Integrating Khem's gcc10 build fix:

[
    Author: Khem Raj <raj.khem@gmail.com>
    Date:   Fri Dec 20 17:42:02 2019 -0800

        x86/boot/compressed/64: Define __force_order only when CONFIG_RANDOMIZE_BASE is unset

        kaslr_64.c also defines the same variable, however when both files are
        included into final link, linker complains about multiple definition of
        `__force_order' which is coming from kaslr_64.o and pgtable_64.o, its
        possible that kaslr_64.o is disabled via CONFIG_RANDOMIZE_BASE config
        option, therefore define it conditionally only when
        CONFIG_RANDOMIZE_BASE is not set

        Signed-off-by: Khem Raj <raj.khem@gmail.com>
        Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
        Cc: Kees Cook <keescook@chromium.org>
        Cc: "H. Peter Anvin" <hpa@zytor.com>
        Cc: Ingo Molnar <mingo@redhat.com>
        Cc: Thomas Gleixner <tglx@linutronix.de>
        Cc: x86-ml <x86@kernel.org>
        Cc: Arnd Bergmann <arnd@arndb.de>
        Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
]

(From OE-Core rev: 201965ba510830561a8c1c38f7c111207f604d03)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d3112fcf7283b9c015e77db1b0a1a78044ed2e23)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:21 +00:00
Bruce Ashfield
888526098a linux-yocto/5.2: update to v5.2.27
Updating linux-yocto/5.2 to the latest korg -stable release that comprises
the following commits:

    766f754fb8ce Linux 5.2.27
    2e635a05d05c ASoC: SOF: Intel: hda-stream: fix the CONFIG_ prefix missing
    1708b2a269de usb: gadget: udc: core: Fix segfault if udc_bind_to_driver() for pending driver fails
    52d4750e4da2 arm64: dts: ti: k3-am65-main: Fix gic-its node unit-address
    d7b2a7ceb695 ASoC: pcm3168a: The codec does not support S32_LE
    8c9d7d01ccf0 selftests/powerpc: Fix compile error on tlbie_test due to newer gcc
    532cc582af44 selftests/powerpc: Add test case for tlbie vs mtpidr ordering issue
    21344b6bacda CIFS: Fix retry mid list corruption on reconnects
    7249aad46eed platform/x86: pmc_atom: Add Siemens SIMATIC IPC227E to critclk_systems DMI table
    48a226ebae98 net/flow_dissector: switch to siphash
    27508702fe6d net: bcmgenet: reset 40nm EPHY on energy detect
    8bbff985b199 net: phy: bcm7xxx: define soft_reset for 40nm EPHY
    3a48c3ea0431 net: netem: correct the parent's backlog when corrupted packet was dropped
    472df452d167 r8152: add device id for Lenovo ThinkPad USB-C Dock Gen 2
    717fa6516e96 net: usb: lan78xx: Connect PHY before registering MAC
    1d2fd4d20889 net: netem: fix error path for corrupted GSO frames
    5f0d17174801 net: hns3: fix mis-counting IRQ vector numbers issue
    18a577972516 net: dsa: fix switch tree list
    b2c233dbbdcb net: dsa: b53: Do not clear existing mirrored port mask
    30f425544ea2 net: bcmgenet: don't set phydev->link from MAC
    3d4a4cfb4ef7 net/mlx5e: Fix handling of compressed CQEs in case of low NAPI budget
    ba405f985d11 net/mlx5e: Fix ethtool self test: link speed
    01284dbae3d4 r8169: fix wrong PHY ID issue with RTL8168dp
    0a02e85ee175 mlxsw: core: Unpublish devlink parameters during reload
    0031274acd73 net/mlx5: Fix rtable reference leak
    0bb43d6b565e net/smc: fix refcount non-blocking connect() -part 2
    5dca2f5212b5 net/smc: fix refcounting for non-blocking connect()
    3320bb716cb3 net/mlx5: Fix flow counter list auto bits struct
    0490b698de8f net/smc: keep vlan_id for SMC-R in smc_listen_work()
    83577bc7531c net/smc: fix closing of fallback SMC sockets
    89b1d3e8dc5e selftests: fib_tests: add more tests for metric update
    52752b65dc62 ipv4: fix route update on metric change.
    c7525fb56257 net: add READ_ONCE() annotation in __skb_wait_for_more_packets()
    c7a5d3e53e0a net: use skb_queue_empty_lockless() in busy poll contexts
    7648cc097d86 net: use skb_queue_empty_lockless() in poll() handlers
    b192ff3d10ba udp: use skb_queue_empty_lockless()
    155f9ae9e73c net: add skb_queue_empty_lockless()
    c17ac3802036 vxlan: check tun_info options_len properly
    9c154c58aa9d udp: fix data-race in udp_set_dev_scratch()
    b64595ce1ed4 selftests: net: reuseport_dualstack: fix uninitalized parameter
    fb87cd347da4 net: Zeroing the structure ethtool_wolinfo in ethtool_get_wol()
    0819acecc962 net: usb: lan78xx: Disable interrupts before calling generic_handle_irq()
    07e413b2fbb0 net: rtnetlink: fix a typo fbd -> fdb
    0e3580cc30bf netns: fix GFP flags in rtnl_net_notifyid()
    338502ee8050 net/mlx4_core: Dynamically set guaranteed amount of counters per VF
    df8fccdba3d1 net: hisilicon: Fix ping latency when deal with high throughput
    1a3cfa10a0d7 net: fix sk_page_frag() recursion from memory reclaim
    b38a3703d880 net: ethernet: ftgmac100: Fix DMA coherency issue with SW checksum
    7ad5a3f67946 net: dsa: bcm_sf2: Fix IMP setup for port different than 8
    9f949630b4e5 net: annotate lockless accesses to sk->sk_napi_id
    8f963115bff3 net: annotate accesses to sk->sk_incoming_cpu
    72e16d7c131f inet: stop leaking jiffies on the wire
    250e30ea064b erspan: fix the tun_info options_len check for erspan
    5001418c1340 dccp: do not leak jiffies on the wire
    7ed4e6ea40b4 cxgb4: request the TX CIDX updates to status page
    11ccb2b93320 cxgb4: fix panic when attaching to ULD fail
    95a7b64f82d0 nbd: handle racing with error'ed out commands
    5d6e015cded5 nbd: protect cmd->status with cmd->lock
    092a5fa02456 irqchip/sifive-plic: Skip contexts except supervisor in plic_init()
    7a3552d0d993 cifs: Fix cifsInodeInfo lock_sem deadlock when reconnect occurs
    81eb09eaf75b i2c: stm32f7: remove warning when compiling with W=1
    29143d76b32e i2c: stm32f7: fix a race in slave mode with arbitration loss irq
    433c1cb88a21 i2c: stm32f7: fix first byte to send in slave mode
    aef36d8fa956 i2c: mt65xx: fix NULL ptr dereference
    47392944abe2 irqchip/gic-v3-its: Use the exact ITSList for VMOVP
    93cfb4dcfa2c MIPS: bmips: mark exception vectors as char arrays
    7639d63d6cdb ALSA: hda: Add Tigerlake/Jasperlake PCI ID
    1b916a8969b6 selftests: kvm: fix sync_regs_test with newer gccs
    782536b540ef selftests: kvm: vmx_set_nested_state_test: don't check for VMX support twice
    e7d861519b9d ARM: 8926/1: v7m: remove register save to stack before svc
    6a70e11c2225 drm/komeda: Don't flush inactive pipes
    2ae6a7ecd31d i2c: aspeed: fix master pending state handling
    db0521235e05 ARM: dts: bcm2837-rpi-cm3: Avoid leds-gpio probing issue
    7d8ff5d7d0bc tracing: Fix "gfp_t" format for synthetic events
    962b999c85b7 scsi: target: core: Do not overwrite CDB byte 1
    14983cdea8af drm/amdgpu: fix error handling in amdgpu_bo_list_create
    a772698fbff7 drm/amdgpu: fix potential VM faults
    7c39141a8e19 ARM: davinci: dm365: Fix McBSP dma_slave_map entry
    f6266068923b perf kmem: Fix memory leak in compact_gfp_flags()
    39fa2e018843 8250-men-mcb: fix error checking when get_num_ports returns -ENODEV
    8695a1b81da1 perf c2c: Fix memory leak in build_cl_output()
    c6bfe2d971a2 perf tools: Fix resource leak of closedir() on the error paths
    74825b0f12f5 arm64: dts: imx8mm: Use correct clock for usdhc's ipg clk
    606b1f7012c4 arm64: dts: imx8mq: Use correct clock for usdhc's ipg clk
    bd48cf1b8785 ARM: dts: imx7s: Correct GPT's ipg clock source
    634adb5ff10d ARM: dts: vf610-zii-scu4-aib: Specify 'i2c-mux-idle-disconnect'
    b5e444ec8046 ARM: dts: imx6q-logicpd: Re-Enable SNVS power key
    21991e6ca3a8 arm64: dts: lx2160a: Correct CPU core idle state name
    0c6787a615a9 arm64: dts: rockchip: fix RockPro64 sdmmc settings
    54a20ce80ef4 ARM: 8914/1: NOMMU: Fix exc_ret for XIP
    65afe1bbf903 ARM: 8908/1: add __always_inline to functions called from __get_user_check()
    f1d2d5999a90 scsi: fix kconfig dependency warning related to 53C700_LE_ON_BE
    f91e21d4ec3a scsi: sni_53c710: fix compilation error
    41c16b471c56 scsi: scsi_dh_alua: handle RTPG sense code correctly during state transitions
    1ca65ebd2038 scsi: qla2xxx: fix a potential NULL pointer dereference
    d6940a823dd4 ARM: mm: fix alignment handler faults under memory pressure
    2dbff99a37af ARM: dts: Use level interrupt for omap4 & 5 wlcore
    1c5dfeaa70da ASoC: simple_card_utils.h: Fix potential multiple redefinition error
    6c1607186a43 ASoC: msm8916-wcd-digital: add missing MIX2 path for RX1/2
    3f03fb38ecb5 ARM: dts: am3874-iceboard: Fix 'i2c-mux-idle-disconnect' usage
    0e688ad61baa arm64: dts: zii-ultra: fix ARM regulator states
    0af649d2eb1f pinctrl: stmfx: fix null pointer on remove
    c4829c0de7f8 pinctrl: ns2: Fix off by one bugs in ns2_pinmux_enable()
    a804692693e4 arm64: dts: rockchip: fix RockPro64 sdhci settings
    adb1f13ec2a3 arm64: dts: rockchip: fix RockPro64 vdd-log regulator settings
    3b7f40e22049 ARM: dts: logicpd-torpedo-som: Remove twl_keypad
    dbae4113b111 arm64: dts: rockchip: fix Rockpro64 RK808 interrupt line
    35121b191493 ASoc: rockchip: i2s: Fix RPM imbalance
    273687c15ca7 ASoC: wm_adsp: Don't generate kcontrols without READ flags
    2a8adb4c41eb regulator: pfuze100-regulator: Variable "val" in pfuze100_regulator_probe() could be uninitialized
    0b37b27e25e4 ASoC: intel: bytcr_rt5651: add null check to support_button_press
    f56de4455199 ASoC: intel: sof_rt5682: add remove function to disable jack
    f7b687159124 ASoC: rt5682: add NULL handler to set_jack function
    4b6e757b6c3b ASoC: SOF: Intel: hda: Disable DMI L1 entry during capture
    375b9b38fbb8 ASoC: SOF: Intel: initialise and verify FW crash dump data.
    70e6d9eafbe8 ASoC: SOF: Intel: hda: fix warnings during FW load
    87df87873d3f ASoC: SOF: topology: fix parse fail issue for byte/bool tuple types
    f0c8c58983c5 ASoC: SOF: loader: fix kernel oops on firmware boot failure
    d972519f0d11 pinctrl: intel: Allocate IRQ chip dynamic
    ceced419c570 regulator: ti-abb: Fix timeout in ti_abb_wait_txdone/ti_abb_clear_all_txdone
    4934e53e51a2 arm64: dts: Fix gpio to pinmux mapping
    9a61c23028d2 arm64: dts: allwinner: a64: sopine-baseboard: Add PHY regulator delay
    39f4a4a170ce arm64: dts: allwinner: a64: Re-add PMU node
    b68dfc690d27 arm64: dts: allwinner: a64: Drop PMU node
    6974df4eb790 arm64: dts: allwinner: a64: pine64-plus: Add PHY regulator delay
    01a832b775a0 ASoC: topology: Fix a signedness bug in soc_tplg_dapm_widget_create()
    94c31579cefb regulator: da9062: fix suspend_enable/disable preparation
    ece602dfdc03 ASoC: wm8994: Do not register inapplicable controls for WM1811
    52cc4490b025 regulator: of: fix suspend-min/max-voltage parsing
    d35e9545daaa ext4: add more paranoia checking in ext4_expand_extra_isize handling

(From OE-Core rev: 761a6ddf2555535e8edc4b52091dd5047f8a7af7)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f558800a5cf1e59310eaacb091d75d06022ecea0)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:21 +00:00
Bruce Ashfield
787a408259 linux-yocto/5.2: update to v5.2.26
Updating linux-yocto/5.2 to the latest korg -stable release that comprises
the following commits:

    d0be30663e55 Linux 5.2.26
    a5f01eb4ae19 can: mcba_usb: fix use-after-free on disconnect
    d440c83adfe2 x86/fpu: Don't cache access to fpu_fpregs_owner_ctx
    d0a6ac8ee861 can: peak_usb: fix slab info leak
    bbbf7603e285 Input: ff-memless - kill timer in destroy()
    91356b4afa6c media: rc: prevent memory leak in cx23888_ir_probe
    51637609104e Revert "ALSA: hda: Flush interrupts on disabling"
    9a4445b878a9 powerpc/powernv: Fix CPU idle to be called with IRQs disabled
    9193213c9e4e sched/fair: Fix -Wunused-but-set-variable warnings
    c43cfdeb169a ALSA: usb-audio: Add DSD support for Gustard U16/X26 USB Interface
    897a94da5ae1 ALSA: usb-audio: Update DSD support quirks for Oppo and Rotel
    7e58efc63bf7 ALSA: usb-audio: DSD auto-detection for Playback Designs
    210ea1053fbd sched/fair: Fix low cpu usage with high throttling by removing expiration of cpu-local slices
    55f7e1c999df iwlwifi: exclude GEO SAR support for 3168
    0d8c60339f82 net: sched: sch_sfb: don't call qdisc_put() while holding tree lock
    0adbd50f981b sch_netem: fix rcu splat in netem_enqueue()
    8efcc97c3e42 net: usb: sr9800: fix uninitialized local variable
    45e162b87d41 netfilter: conntrack: avoid possible false sharing
    3fe6d57d9149 bonding: fix potential NULL deref in bond_update_slave_arr
    a8b0fd3f931d NFC: pn533: fix use-after-free and memleaks
    7ad6fbf0576a rxrpc: Fix trace-after-put looking at the put peer record
    5e24e1198eea rxrpc: rxrpc_peer needs to hold a ref on the rxrpc_local record
    1a6bd945690b rxrpc: Fix call ref leak
    203ec8334e5b llc: fix sk_buff leak in llc_conn_service()
    c438c3900aba llc: fix sk_buff leak in llc_sap_state_process()
    c18d44740378 batman-adv: Avoid free/alloc race when handling OGM buffer
    58d94f9f31f2 NFS: Fix an RCU lock leak in nfs4_refresh_delegation_stateid()
    02da3016e993 drm/amdgpu/powerplay/vega10: allow undervolting in p7
    7722152c2d83 dmaengine: cppi41: Fix cppi41_dma_prep_slave_sg() when idle
    ee388389576c dmaengine: imx-sdma: fix size check for sdma script_number
    55c55744a28e dmaengine: tegra210-adma: fix transfer failure
    f9343260a427 dmaengine: qcom: bam_dma: Fix resource leak
    bd8f667e3a9c KVM: vmx, svm: always run with EFER.NXE=1 when shadow paging is active
    cdee2de27735 rtlwifi: rtl_pci: Fix problem of too small skb->len
    ab8c920166a5 virtio_ring: fix stalls for packed rings
    26579ee95eaa arm64: cpufeature: Enable Qualcomm Falkor/Kryo errata 1003
    54a879fbe1b3 arm64: Ensure VM_WRITE|VM_SHARED ptes are clean by default
    8efd0c50367a IB/hfi1: Avoid excessive retry for TID RDMA READ request
    335bff30e808 ARC: perf: Accommodate big-endian CPU
    ee5a9c33330f s390/idle: fix cpu idle time calculation
    60af342e8b0d s390/cmm: fix information leak in cmm_timeout_handler()
    c86c49b94246 s390/unwind: fix mixing regs and sp
    df9c6fcddce0 um-ubd: Entrust re-queue to the upper layers
    4a1a26a4bf91 HID: logitech-hidpp: do all FF cleanup in hidpp_ff_destroy()
    f6fa66f01aa8 HID: logitech-hidpp: rework device validation
    7fe194de644b HID: logitech-hidpp: split g920_get_config()
    2049b4bb9f81 HID: fix error message in hid_open_report()
    63e52b01254f HID: Fix assumption that devices have inputs
    a3a9f34b88cb HID: i2c-hid: add Trekstor Primebook C11B to descriptor override
    e90905647a5a scsi: target: cxgbit: Fix cxgbit_fw4_ack()
    ac372582cc42 scsi: qla2xxx: Fix partial flash write of MBI
    e57315b44301 USB: serial: whiteheat: fix line-speed endianness
    1f92660c8acf USB: serial: whiteheat: fix potential slab corruption
    00bd2baf8dc4 usb: xhci: fix __le32/__le64 accessors in debugfs code
    098f7b186cbb usb: xhci: fix Immediate Data Transfer endianness
    1b576e218d1e USB: ldusb: fix control-message timeout
    2b3c8a8ec1b4 USB: ldusb: fix ring-buffer locking
    6d678d6fa0d2 usb-storage: Revert commit 747668dbc061 ("usb-storage: Set virt_boundary_mask to avoid SG overflows")
    e32f12632c9f USB: gadget: Reject endpoints with 0 maxpacket value
    3390a1c10bc9 nl80211: fix validation of mesh path nexthop
    c890ae5aac42 UAS: Revert commit 3ae62a42090f ("UAS: fix alignment of scatter/gather segments")
    e382a68d7aed ALSA: hda/realtek - Add support for ALC623
    f7a4541160d1 ALSA: hda/realtek - Fix 2 front mics of codec 0x623
    1ef6d8090939 ALSA: timer: Fix mutex deadlock at releasing card
    0d261a4dc4d2 ALSA: bebob: Fix prototype of helper function to return negative value
    c217d9f666ec fuse: truncate pending writes on O_TRUNC
    7bb177bda49b fuse: flush dirty data/metadata before non-truncate setattr
    270aa285a332 ath6kl: fix a NULL-ptr-deref bug in ath6kl_usb_alloc_urb_from_pipe()
    0278c9083bcd thunderbolt: Use 32-bit writes when writing ring producer/consumer
    eb73fb79781c thunderbolt: Correct path indices for PCIe tunnel
    d87fc8124793 s390/pci: fix MSI message data
    913f0293d40e rtw88: Fix misuse of GENMASK macro
    f85ce6c2ac9f perf/aux: Fix tracking of auxiliary trace buffer allocation
    6bdd6dbc529f perf annotate: Fix multiple memory and file descriptor leaks
    5680844af670 tracing: Initialize iter->seq after zeroing in tracing_read_pipe()
    81fdb3a267a8 s390/uaccess: avoid (false positive) compiler warnings
    b6c9dce7fde4 NFSv4: Fix leak of clp->cl_acceptor string
    b1b57fae22d2 nbd: fix possible sysfs duplicate warning
    da80a689e9e5 MIPS: fw: sni: Fix out of bounds init of o32 stack
    3f5c4e2276b7 MIPS: include: Mark __xchg as __always_inline
    f0bde95d77c1 iio: imu: st_lsm6dsx: fix waitime for st_lsm6dsx i2c controller
    1a5843dc8c0c drm/amdgpu: fix memory leak
    868397e6c42c perf/x86/amd: Change/fix NMI latency mitigation to use a timestamp
    81fc7990a0c5 perf/core: Fix corner case in perf_rotate_context()
    721fa4a46fc9 perf/core: Rework memory accounting in perf_mmap()
    f182d51db406 sched/vtime: Fix guest/system mis-accounting on task switch
    4d182255c178 sched/fair: Scale bandwidth quota and period without losing quota/period ratio precision
    9f951480df73 x86/cpu: Add Comet Lake to the Intel CPU models header
    cc5d1ac88699 arm64: armv8_deprecated: Checking return value for memory allocation
    becc2d395df8 btrfs: silence maybe-uninitialized warning in clone_range
    33fff851e503 fs: ocfs2: fix a possible null-pointer dereference in ocfs2_write_end_nolock()
    32503fb41c44 fs: ocfs2: fix a possible null-pointer dereference in ocfs2_info_scan_inode_alloc()
    db2a5874c6ed ocfs2: clear zero in unaligned direct IO
    ceaf6a8c4ea9 x86/xen: Return from panic notifier
    2f921acb80bf riscv: Correct the handling of unexpected ebreak in do_trap_break()
    97cb8b84f1c3 riscv: avoid sending a SIGTRAP to a user thread trapped in WARN()
    a300b6885c64 riscv: avoid kernel hangs when trapped in BUG()
    da43a3822b64 MIPS: include: Mark __cmpxchg as __always_inline
    373c1dd11b45 efi/x86: Do not clean dummy variable in kexec path
    f9041dd022cb efi/cper: Fix endianness of PCIe class code
    f722f7ecf089 serial: mctrl_gpio: Check for NULL pointer
    a6ff1233680e fs: cifs: mute -Wunused-const-variable message
    c1c06adaa024 gpio: max77620: Use correct unit for debounce times
    a5b546c50f27 RDMA/mlx5: Order num_pending_prefetch properly with synchronize_srcu
    cbbee24f43c9 RDMA/mlx5: Do not allow rereg of a ODP MR
    5c113e817535 RDMA/cm: Fix memory leak in cm_add/remove_one
    735a98c89faf RDMA/core: Fix an error handling path in 'res_get_common_doit()'
    c643e93dc992 tty: n_hdlc: fix build on SPARC
    bf1a30450492 serial/sifive: select SERIAL_EARLYCON
    9b216ebaa0ff tty: serial: rda: Fix the link time qualifier of 'rda_uart_exit()'
    af0e484e2aea tty: serial: owl: Fix the link time qualifier of 'owl_uart_exit()'
    ccc0779a474d arm64: ftrace: Ensure synchronisation in PLT setup for Neoverse-N1 #1542419
    eba84370623a arm64: Fix incorrect irqflag restore for priority masking for compat
    6d4308365bdd nfs: Fix nfsi->nrequests count error on nfs_inode_remove_request
    ba5505b64fff selftests/kselftest/runner.sh: Add 45 second timeout per test
    5611d30695ff kselftest: Fix NULL INSTALL_PATH for TARGETS runlist
    2332b66b6d48 kselftest: exclude failed TARGETS from runlist
    a007910420b3 HID: hyperv: Use in-place iterator API in the channel callback
    d9f1bbf18881 RDMA/iwcm: Fix a lock inversion issue
    97410d49b2c1 RDMA/iw_cxgb4: fix SRQ access from dump_qp()
    812b81500a5a staging: rtl8188eu: fix null dereference when kzalloc fails
    8a9ea260d651 perf script: Fix invalid LBR/binary mismatch error
    e623c8e7aa71 perf annotate: Don't return -1 for error when doing BPF disassembly
    ebf5e2ee8a97 perf annotate: Return appropriate error code for allocation failures
    219422c0e09c perf annotate: Fix arch specific ->init() failure errors
    2dd48965796f perf annotate: Propagate the symbol__annotate() error return
    d58fb414acc7 perf annotate: Fix the signedness of failure returns
    7956b781a7b7 perf annotate: Propagate perf_env__arch() error
    d6f9043d8173 perf tools: Propagate get_cpuid() error
    b2737fe8cbf0 perf jevents: Fix period for Intel fixed counters
    dda1e196d61e perf script brstackinsn: Fix recovery from LBR/binary mismatch
    8b5ae52f9852 perf map: Fix overlapped map handling
    8680453e5d99 perf tests: Avoid raising SEGV using an obvious NULL dereference
    c484a2c277d2 libsubcmd: Make _FORTIFY_SOURCE defines dependent on the feature
    13121b2d6844 iio: fix center temperature of bmc150-accel-core
    2f86da9d6403 iio: adc: meson_saradc: Fix memory allocation order
    58374086dd4d btrfs: qgroup: Always free PREALLOC META reserve in btrfs_delalloc_release_extents()
    da3cb2dc1dce Btrfs: fix inode cache block reserve leak on failure to allocate data space
    0f0914c95877 dm snapshot: rework COW throttling to fix deadlock
    8355852edf97 dm snapshot: introduce account_start_copy() and account_end_copy()
    c69d2a1ac851 dm snapshot: fix oversights in optional discard support
    80fe585a3c4f dm snapshot: add optional discard support features

(From OE-Core rev: 40a4167ddcf7fe25b7fec57b9255f348a6902ac7)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
(cherry picked from commit 2103b4234595399f441b58f4d96dfe1b22260b06)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:21 +00:00
Bruce Ashfield
20c2695529 linux-yocto/5.2: update to v5.2.25
Updating linux-yocto/5.2 to the latest korg -stable release that comprises
the following commits:

    38cbae50e893 Linux 5.2.25
    efe66d67e43d wimax: i2400: Fix memory leak in i2400m_op_rfkill_sw_toggle
    aae5e918d3f4 wimax: i2400: fix memory leak
    596fd85a2430 iio: imu: adis16400: fix memory leak
    3fe8e6c9095c spi: lpspi: fix memory leak in fsl_lpspi_probe
    7d0bf52f1adb scsi: bfa: release allocated memory in case of error
    27fbb054e805 RDMA/hfi1: Prevent memory leak in sdma_init
    a135a89e6160 ath9k: release allocated buffer if timed out
    56e06c206399 ath10k: fix memory leak
    6e5539a37beb misc: fastrpc: prevent memory leak in fastrpc_dma_buf_attach
    69a90884629a spi: gpio: prevent memory leak in spi_gpio_probe
    92c5d7695ef6 rsi: release skb if rsi_prepare_beacon fails
    e874f72c40c2 RDMA: Fix goto target to release the allocated memory
    f34a1eae03b8 tracing: Have error path in predicate_parse() free its allocated memory
    2e5f50144b3e drm/amd/display: prevent memory leak
    d3021f313fd4 mwifiex: pcie: Fix memory leak in mwifiex_pcie_alloc_cmdrsp_buf
    d5293038e8f9 vcs: prevent write access to vcsu devices
    96f4eb9dc3b7 KVM: PPC: Book3S HV: Flush link stack on guest exit to host kernel
    6ad7da3d7562 powerpc/book3s64: Fix link stack flush on context switch
    edebf91d3684 powerpc/64s: support nospectre_v2 cmdline option
    69a943951169 crypto: user - fix memory leak in crypto_reportstat
    70c19a57f953 crypto: user - fix memory leak in crypto_report
    fd0f9ef50a33 can: gs_usb: gs_can_open(): prevent memory leak
    a216a264a85d rtlwifi: prevent memory leak in rtl_usb_probe
    8eaea2a3f510 of: unittest: fix memory leak in unittest_data_add
    f97bd033e3c8 virt: vbox: fix memory leak in hgcm_call_preprocess_linaddr
    cf5f620eb9ec iio: imu: adis16400: release allocated memory on failure
    4adc4baa97b6 mwifiex: pcie: Fix memory leak in mwifiex_pcie_init_evt_ring
    676ef8fc1346 nl80211: fix memory leak in nl80211_get_ftm_responder_stats
    a7f7800a32b7 net: qrtr: fix memort leak in qrtr_tun_write_iter
    ab4362f47880 iwlwifi: dbg_ini: fix memory leak in alloc_sgtable
    799775defe5a ath9k_htc: release allocated buffer if timed out
    b3287955d81c rtl8xxxu: prevent leaking urb
    af27e0abb87a ipmi: Fix memory leak in __ipmi_bmc_register
    d887d3cfa04a media: vivid: Fix wrong locking that causes race conditions on streaming stop
    0c1df555b18a media: rcar_drif: fix a memory disclosure
    aea6f13d6eff media: usb: fix memory leak in af9005_identify_state
    19746d855926 net/mlx5: prevent memory leak in mlx5_fpga_conn_create_cq
    8503f31fed01 crypto: ccp - Release all allocated memory if sha type is invalid

(From OE-Core rev: 56e9c166c6c636f80e30cfa1ee4371acd392a79d)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
(cherry picked from commit f9db269297dbd019129063135739b7f016bb2667)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:21 +00:00
Bruce Ashfield
19103ab1ac linux-yocto/4.19: update to v4.19.87
Updating linux-yocto/4.19 to the latest korg -stable release that comprises
the following commits:

    174651bdf802 Linux 4.19.87
    6938a9da7ff8 PM / devfreq: Fix kernel oops on governor module load
    345712c95eec KVM: PPC: Book3S HV: Flush link stack on guest exit to host kernel
    0a60d4bddc0b powerpc/book3s64: Fix link stack flush on context switch
    19d98b4d55b0 powerpc/64s: support nospectre_v2 cmdline option
    b7e2a040d9fc staging: comedi: usbduxfast: usbduxfast_ai_cmdtest rounding error
    4101916e9f08 USB: serial: option: add support for Foxconn T77W968 LTE modules
    62aca6645c08 USB: serial: option: add support for DW5821e with eSIM support
    3349ed266ae2 USB: serial: mos7840: fix remote wakeup
    abbda35d6a6e USB: serial: mos7720: fix remote wakeup
    84743898d60b USB: serial: mos7840: add USB ID to support Moxa UPort 2210
    356440a79b6b appledisplay: fix error handling in the scheduled work
    0439d6b90187 USB: chaoskey: fix error case of a timeout
    a18675e5d5f7 usb-serial: cp201x: support Mark-10 digital force gauge
    61f6a3fac394 usbip: Fix uninitialized symbol 'nents' in stub_recv_cmd_submit()
    375b26a86481 usbip: tools: fix fd leakage in the function of read_attr_usbip_status
    e70448b92253 USBIP: add config dependency for SGL_ALLOC
    5d0b56f6725d virtio_ring: fix return code on DMA mapping fails
    78260a294c04 media: imon: invalid dereference in imon_touch_event
    94a94b605916 media: cxusb: detect cxusb_ctrl_msg error in query
    8b42c263ec1a media: b2c2-flexcop-usb: add sanity checking
    56be9f1b8733 media: uvcvideo: Fix error path in control parsing failure
    61e73cf57ed8 cpufreq: Add NULL checks to show() and store() methods of cpufreq
    f217cef919da media: usbvision: Fix races among open, close, and disconnect
    467052f6ea5a media: vivid: Fix wrong locking that causes race conditions on streaming stop
    b73b28b1b2cb media: vivid: Set vid_cap_streaming and vid_out_streaming to true
    af8071f50f46 nfc: port100: handle command failure cleanly
    3510fb7947d5 ALSA: usb-audio: Fix NULL dereference at parsing BADD
    2819f4030f43 futex: Prevent robust futex exit race
    d3f8c58d701c y2038: futex: Move compat implementation into futex.c
    344966da99c9 nbd: prevent memory leak
    ed7a3dde0aa2 x86/speculation: Fix redundant MDS mitigation message
    0af5ae268e24 x86/speculation: Fix incorrect MDS/TAA mitigation status
    ed7312096a1f x86/insn: Fix awk regexp warnings
    99b933bbc7b0 ARC: perf: Accommodate big-endian CPU
    e02f1448282b ARM: 8904/1: skip nomap memblocks while finding the lowmem/highmem boundary
    046f0fcf7397 ocfs2: remove ocfs2_is_o2cb_active()
    36bef080b55f net: phy: dp83867: increase SGMII autoneg timer duration
    87997a7800a1 net: phy: dp83867: fix speed 10 in sgmii mode
    5779cbc98369 mm/memory_hotplug: don't access uninitialized memmaps in shrink_zone_span()
    a268d985f089 md/raid10: prevent access of uninitialized resync_pages offset
    f8dc0350d32b ath9k_hw: fix uninitialized variable data
    f0cfe98332d6 ath10k: Fix a NULL-ptr-deref bug in ath10k_usb_alloc_urb_from_pipe
    4ae7392ab6f4 KVM: MMU: Do not treat ZONE_DEVICE pages as being reserved
    03bf4876a593 Bluetooth: Fix invalid-free in bcsp_close()
    006360ec33d9 mm/page_io.c: do not free shared swap slots
    16a300fb1dbb cfg80211: call disconnect_wk when AP stops
    2b3541ffdd05 ipv6: Fix handling of LLA with VRF and sockets bound to VRF
    091ed093c9c8 mm/memory_hotplug: Do not unlock when fails to take the device_hotplug_lock
    896f7398152b i2c: uniphier-f: fix timeout error after reading 8 bytes
    1efa17ab9cb8 spi: omap2-mcspi: Fix DMA and FIFO event trigger size mismatch
    1b0f1b2dde06 nvme-pci: fix surprise removal
    597a37d01b69 PCI: keystone: Use quirk to limit MRRS for K2G
    c0418c4a61aa pinctrl: zynq: Use define directive for PIN_CONFIG_IO_STANDARD
    0858006cda38 pinctrl: lpc18xx: Use define directive for PIN_CONFIG_GPIO_PIN_INT
    5efa36e7f04a pinctrl: bcm2835: Use define directive for BCM2835_PINCONF_PARAM_PULL
    bad4da12b797 pinctrl: qcom: spmi-gpio: fix gpio-hog related boot issues
    c24fe7807320 cfg80211: Prevent regulatory restore during STA disconnect in concurrent interfaces
    ee7d2473812b tools: bpftool: pass an argument to silence open_obj_pinned()
    367e64ce11fc of: unittest: initialize args before calling of_*parse_*()
    e4547e028547 of: unittest: allow base devicetree to have symbol metadata
    1303c938c953 net: bcmgenet: return correct value 'ret' from bcmgenet_power_down
    1d6a0dd6aa53 ACPICA: Use %d for signed int print formatting instead of %u
    d15b8b691725 clk: tegra20: Turn EMC clock gate into divider
    91c5f99d131e vrf: mark skb for multicast or link-local as enslaved to VRF
    5c2a3997ae5b dlm: don't leak kernel pointer to userspace
    afb4717ab81b dlm: fix invalid free
    30fc13ae88b2 usb: typec: tcpm: charge current handling for sink during hard reset
    5e989b6cad68 scsi: lpfc: Correct loss of fc4 type on remote port address change
    a391709b636e scsi: lpfc: Fix odd recovery in duplicate FLOGIs in point-to-point
    05678af01a33 scsi: lpfc: fcoe: Fix link down issue after 1000+ link bounces
    e6d0262e1628 scsi: megaraid_sas: Fix goto labels in error handling
    83e679606e78 scsi: megaraid_sas: Fix msleep granularity
    ff997bf13c1e scsi: mpt3sas: Fix driver modifying persistent data in Manufacturing page11
    80224e3b08ff scsi: mpt3sas: Don't modify EEDPTagMode field setting on SAS3.5 HBA devices
    5553e2bdcb02 scsi: mpt3sas: Fix Sync cache command failure during driver unload
    5f2dc610eb28 net: dsa: bcm_sf2: Turn on PHY to allow successful registration
    2ac94b9e902f rtlwifi: rtl8192de: Fix misleading REG_MCUFWDL information
    13d434fed1a2 wireless: airo: potential buffer overflow in sprintf()
    fad934bb2e47 brcmsmac: never log "tid x is not agg'able" by default
    bdb61fa50b70 rtl8xxxu: Fix missing break in switch
    06ed77066838 wlcore: Fix the return value in case of error in 'wlcore_vendor_cmd_smart_config_start()'
    c68a499448e1 ath10k: snoc: fix unbalanced clock error handling
    c262dc0655df wil6210: fix locking in wmi_call
    ccb2390e8933 wil6210: fix RGF_CAF_ICR address for Talyn-MB
    0e1304ae42c2 wil6210: fix L2 RX status handling
    aa2112d57152 wil6210: fix debugfs memory access alignment
    ea136e61e4df btrfs: avoid link error with CONFIG_NO_AUTO_INLINE
    4a035f2643c6 media: ov13858: Check for possible null pointer
    3ee72f30c163 nds32: Fix bug in bitfield.h
    e6c6c0439a93 net: bpfilter: fix iptables failure if bpfilter_umh is disabled
    811c8141d663 sock_diag: fix autoloading of the raw_diag module
    3c69a033b416 audit: print empty EXECVE args
    5dc441fbef91 soc: bcm: brcmstb: Fix re-entry point with a THUMB2_KERNEL
    9cdfff0a5e61 clk: sunxi-ng: enable so-said LDOs for A64 SoC's pll-mipi clock
    a2e6fe1f647f ARM: dts: imx6sx-sdb: Fix enet phy regulator
    465073e44fda openvswitch: fix linking without CONFIG_NF_CONNTRACK_LABELS
    31bced01fe77 sched/fair: Don't increase sd->balance_interval on newidle balance
    ed023646c2cf sched/topology: Fix off by one bug
    f9fca78e6cf2 net: do not abort bulk send on BQL status
    0d3b9ac2844f ocfs2: fix clusters leak in ocfs2_defrag_extent()
    6c150df9c2e8 ocfs2: don't put and assigning null to bh allocated outside
    6fd469d06eb8 ocfs2: don't use iocb when EIOCBQUEUED returns
    abc7968b86b1 ocfs2: without quota support, avoid calling quota recovery
    6a2245d828e4 mm: handle no memcg case in memcg_kmem_charge() properly
    08f07d9f5b17 tools/power turbosat: fix AMD APIC-id output
    b167fee4e45d arm64: makefile fix build of .i file in external module case
    fa7f1bce27c0 nvme-pci: fix conflicting p2p resource adds
    0bbb8382db4c irq/matrix: Fix memory overallocation
    ad8298fccd70 ntb: intel: fix return value for ndev_vec_mask()
    3bd4422af874 ntb_netdev: fix sleep time mismatch
    8dbecf6c2f17 net: hns3: bugfix for hclge_mdio_write and hclge_mdio_read
    12eeb72afac2 net: hns3: bugfix for is_valid_csq_clean_head()
    e3345108409c net: hns3: bugfix for reporting unknown vector0 interrupt repeatly problem
    b0465d06d4c6 net: hns3: bugfix for buffer not free problem during resetting
    3d9bc014c519 fm10k: ensure completer aborts are marked as non-fatal after a resume
    2fed73906e97 igb: shorten maximum PHC timecounter update interval
    3081ae5e378f powerpc/powernv: hold device_hotplug_lock when calling device_online()
    17523d7a1cc8 mm/memory_hotplug: fix online/offline_pages called w.o. mem_hotplug_lock
    02735d5987b9 mm/memory_hotplug: make add_memory() take the device_hotplug_lock
    023c071f101c kernel/panic.c: do not append newline to the stack protector panic string
    1914e5edd811 fs/hfs/extent.c: fix array out of bounds read of array extent
    a9f38975eb98 hfs: update timestamp on truncate()
    0013adceb521 hfsplus: update timestamps on truncate()
    38e7b916daa2 hfs: fix return value of hfs_get_block()
    550da9ee35fd hfsplus: fix return value of hfsplus_get_block()
    8687d57d247a hfs: prevent btree data loss on ENOSPC
    0b54b59d8541 hfsplus: prevent btree data loss on ENOSPC
    7beaf6105e2e hfs: fix BUG on bnode parent update
    1df96949ebfb hfsplus: fix BUG on bnode parent update
    08751e477f0e lib/bitmap.c: fix remaining space computation in bitmap_print_to_pagebuf
    1d5834945945 linux/bitmap.h: fix type of nbits in bitmap_shift_right()
    8deaaf77ce2e linux/bitmap.h: handle constant zero-size bitmaps correctly
    30598425aecc mm/gup_benchmark.c: prevent integer overflow in ioctl
    9663d294ae28 block: call rq_qos_exit() after queue is frozen
    a125df22d134 selftests/powerpc/cache_shape: Fix out-of-tree build
    024cd793bbe1 selftests/powerpc/switch_endian: Fix out-of-tree build
    a4a660f7abd9 selftests/powerpc/signal: Fix out-of-tree build
    f74f406bbd0b selftests/powerpc/ptrace: Fix out-of-tree build
    57aab8f0a33d powerpc/xmon: Relax frame size for clang
    32d7474b7a08 ipv4/igmp: fix v1/v2 switchback timeout based on rfc3376, 8.12
    691bd94c15b1 vfs: avoid problematic remapping requests into partial EOF block
    cdc45f204775 um: Make line/tty semantics use true write IRQ
    a17e3bbfb97c i2c: uniphier-f: fix race condition when IRQ is cleared
    a118403a5ecc i2c: uniphier-f: fix occasional timeout error
    1466eae37a9f i2c: uniphier-f: make driver robust against concurrency
    10807b374663 block: fix the DISCARD request merge
    b948d56951be macsec: let the administrator set UP state even if lowerdev is down
    f5bdad7106fc macsec: update operstate when lower device changes
    4291e97c69f6 mm: thp: fix MADV_DONTNEED vs migrate_misplaced_transhuge_page race condition
    ac1cad79bcad tools/testing/selftests/vm/gup_benchmark.c: fix 'write' flag usage
    2d9d6c099eaf mm/page-writeback.c: fix range_cyclic writeback vs writepages deadlock
    bcba80f38a00 fs/ocfs2/dlm/dlmdebug.c: fix a sleep-in-atomic-context bug in dlm_print_one_mle()
    99b3146b799a arm64: lib: use C string functions with KASAN enabled
    b84e965c7edb sparc64: Rework xchg() definition to avoid warnings.
    4e4cad4365e0 powerpc/process: Fix flush_all_to_thread for SPE
    54299e1cf379 bpf, btf: fix a missing check bug in btf_parse
    8044e741eee4 bpf: devmap: fix wrong interface selection in notifier_call
    7b557dbdc519 net: ethernet: cadence: fix socket buffer corruption problem
    3681b901e94a thermal: rcar_thermal: Prevent hardware access during system suspend
    436e610bf195 thermal: rcar_thermal: fix duplicate IRQ request
    51aa1a10fbac selftests: fix warning: "_GNU_SOURCE" redefined
    c62be4108883 selftests: kvm: Fix -Wformat warnings
    5802cb25de86 selftests: watchdog: Fix error message.
    74685702363c selftests: watchdog: fix message when /dev/watchdog open fails
    58ceffabad41 selftests/ftrace: Fix to test kprobe $comm arg only if available
    adcb6d9ff121 spi: uniphier: fix incorrect property items
    6c2075f792c6 fs/cifs: fix uninitialised variable warnings
    c5621fbd6560 net: socionext: Stop PHY before resetting netsec
    0a6fa6119ab1 mfd: max8997: Enale irq-wakeup unconditionally
    5a04242e8c23 mfd: intel_soc_pmic_bxtwc: Chain power button IRQs as well
    dd72391c9a53 mfd: mc13xxx-core: Fix PMIC shutdown when reading ADC values
    02c9ec11860f mfd: arizona: Correct calling of runtime_put_sync
    e79d230832d0 net: ethernet: ti: cpsw: unsync mcast entries while switch promisc mode
    7c011435110f qlcnic: fix a return in qlcnic_dcb_get_capability()
    321c40dce581 mISDN: Fix type of switch control variable in ctrl_teimanager
    074af1668038 f2fs: spread f2fs_set_inode_flags()
    e7f81efae3b5 f2fs: fix to spread clear_cold_data()
    733fddc34651 thermal: armada: fix a test in probe()
    bb925b9bece2 RISC-V: Avoid corrupting the upper 32-bit of phys_addr_t in ioremap
    829aa617bf6e rtc: s35390a: Change buf's type to u8 in s35390a_init
    8112f3d4ed03 ceph: only allow punch hole mode in fallocate
    146fb4b0d4fe ceph: fix dentry leak in ceph_readdir_prepopulate
    083757d84859 tools: bpftool: fix completion for "bpftool map update"
    570c05378d97 selftests/bpf: fix return value comparison for tests in test_libbpf.sh
    3173e226ca41 powerpc/64s/radix: Fix radix__flush_tlb_collapsed_pmd double flushing pmd
    b43c5287f6bc powerpc/mm/radix: Fix small page at boundary when splitting
    b499fa070ee4 powerpc/mm/radix: Fix overuse of small pages in splitting logic
    434551e9fd44 powerpc/mm/radix: Fix off-by-one in split mapping logic
    ee35e01b0f08 powerpc/pseries: Export raw per-CPU VPA data via debugfs
    9ed143cf730d scsi: hisi_sas: Fix NULL pointer dereference
    ff6618e06cb4 sparc: Fix parport build warnings.
    3d02e3bb3cfe x86/intel_rdt: Prevent pseudo-locking from using stale pointers
    b6e44f743951 spi: omap2-mcspi: Set FIFO DMA trigger level to word length
    ad9a4e963c92 swiotlb: do not panic on mapping failures
    9b572e8bc038 s390/perf: Return error when debug_register fails
    641f1f798c80 atm: zatm: Fix empty body Clang warnings
    f9304c6277ed sunrpc: safely reallow resvport min/max inversion
    7983dea8c368 SUNRPC: Fix a compile warning for cmpxchg64()
    a0ec7f6eabe8 selftests/bpf: fix file resource leak in load_kallsyms
    56b8b1832122 dm raid: avoid bitmap with raid4/5/6 journal device
    4de506d51177 sctp: use sk_wmem_queued to check for writable space
    1f7f2a0666a3 usbip: tools: fix atoi() on non-null terminated string
    283d9618e22b USB: misc: appledisplay: fix backlight update_status return code
    80a23f70d546 PCI: vmd: Detach resources after stopping root bus
    b0f69ccfff3a macintosh/windfarm_smu_sat: Fix debug output
    86f63146f886 ALSA: i2c/cs8427: Fix int to char conversion
    46729b27706a PM / Domains: Deal with multiple states but no governor in genpd
    cf800f2b630b ACPI / scan: Create platform device for INT33FE ACPI nodes
    cb6a3096ec2f kprobes, x86/ptrace.h: Make regs_get_kernel_stack_nth() not fault on bad stack
    f0f842a1a9f9 xfs: clear ail delwri queued bufs on unmount of shutdown fs
    bb64349b6f56 xfs: fix use-after-free race in xfs_buf_rele
    e0e8d83e4878 net: ena: Fix Kconfig dependency on X86
    7ac437558e4a net: fix warning in af_unix
    5e110ec2d924 net: dsa: mv88e6xxx: Fix 88E6141/6341 2500mbps SERDES speed
    274726bcf5ba scsi: zorro_esp: Limit DMA transfers to 65535 bytes
    1f13afca914f scsi: dc395x: fix DMA API usage in sg_update_list
    e95ec662b126 scsi: dc395x: fix dma API usage in srb_done
    95655b10529d ASoC: tegra_sgtl5000: fix device_node refcounting
    f1f1002a9987 clk: at91: audio-pll: fix audio pmc type
    f15b802890bb clk: mmp2: fix the clock id for sdh2_clk and sdh3_clk
    6391dd5eb0ef PCI: mediatek: Fixup MSI enablement logic by enabling MSI before clocks
    305c262fb8ee nvme-pci: fix hot removal during error handling
    4e4b97f59050 nvmet-fcloop: suppress a compiler warning
    2f1e4e65ba41 nvmet: avoid integer overflow in the discard code
    30ca1af49481 crypto: ccree - avoid implicit enum conversion
    5bbeb4fcf39a scsi: iscsi_tcp: Explicitly cast param in iscsi_sw_tcp_host_get_param
    06815ae5e27f scsi: bfa: Avoid implicit enum conversion in bfad_im_post_vendor_event
    f4bf2dc77826 scsi: isci: Change sci_controller_start_task's return type to sci_status
    3a40068dc831 scsi: isci: Use proper enumerated type in atapi_d2h_reg_frame_handler
    6288f52ed258 clk: tegra: Fixes for MBIST work around
    5a487f40e717 KVM/x86: Fix invvpid and invept register operand size in 64-bit mode
    7392aa08f8a4 KVM: nVMX: move check_vmentry_postreqs() call to nested_vmx_enter_non_root_mode()
    9fe573d539a8 KVM: nVMX: reset cache/shadows when switching loaded VMCS
    cec14148c1a9 nfp: bpf: protect against mis-initializing atomic counters
    bfe01cddb81a scsi: ips: fix missing break in switch
    073f454cc28c qed: Align local and global PTT to propagate through the APIs.
    45f89cf0f329 amiflop: clean up on errors during setup
    4043bc0f634b pwm: lpss: Only set update bit if we are actually changing the settings
    ad78a958663a pinctrl: sunxi: Fix a memory leak in 'sunxi_pinctrl_build_state()'
    fae3cf8874c3 RDMA/bnxt_re: Avoid resource leak in case the NQ registration fails
    b1bf1e424dcb RDMA/bnxt_re: Fix qp async event reporting
    2f241e333f7b RDMA/bnxt_re: Avoid NULL check after accessing the pointer
    bbeeadb7bab4 scsi: hisi_sas: Free slot later in slot_complete_vx_hw()
    628cae51693a scsi: hisi_sas: Fix the race between IO completion and timeout for SMP/internal IO
    d10b7dd14a37 scsi: hisi_sas: Feed back linkrate(max/min) when re-attached
    92ac0e324974 m68k: fix command-line parsing when passed from u-boot
    4ab1594e699e w1: IAD Register is yet readable trough iad sys file. Fix snprintf (%u for unsigned, count for max size).
    d11d985d0a82 misc: mic: fix a DMA pool free failure
    a2204a295554 gsmi: Fix bug in append_to_eventlog sysfs handler
    cc08097f2619 btrfs: handle error of get_old_root
    1b49c453a564 btrfs: defrag: use btrfs_mod_outstanding_extents in cluster_pages_for_defrag
    9325e8f4688c PCI: mediatek: Fix class type for MT7622 to PCI_CLASS_BRIDGE_PCI
    dfffae314a02 mmc: mediatek: fix cannot receive new request when msdc_cmd_is_ready fail
    e2c158f58522 mmc: mediatek: fill the actual clock for mmc debugfs
    e3fa491211c4 spi: sh-msiof: fix deferred probing
    2cd0b70c55b0 cdrom: don't attempt to fiddle with cdo->capability
    0c5c34c1aaf3 skd: fixup usage of legacy IO API
    196b007ac0a6 ath10k: allocate small size dma memory in ath10k_pci_diag_write_mem
    17fbe3c91ad4 ath10k: set probe request oui during driver start
    8111f99f7c44 brcmsmac: AP mode: update beacon when TIM changes
    20e42ddf6c1d mt76x0: phy: fix restore phase in mt76x0_phy_recalibrate_after_assoc
    8cb568162524 mt76: do not store aggregation sequence number for null-data frames
    b95998fb6c50 EDAC, thunderx: Fix memory leak in thunderx_l2c_threaded_isr()
    97aab1a43a2f powerpc/eeh: Fix use of EEH_PE_KEEP on wrong field
    bd2a7e53cd6e powerpc/eeh: Fix null deref for devices removed during EEH
    16e4657a1d25 powerpc/boot: Disable vector instructions
    5346c8403733 powerpc/boot: Fix opal console in boot wrapper
    4505cff2ef4a powerpc: Fix signedness bug in update_flash_db()
    93b943c0602f synclink_gt(): fix compat_ioctl()
    8d67a4ecb473 pty: fix compat ioctls
    fa3fe5f442ab gfs2: Fix marking bitmaps non-full
    26a4c6a562ce PCI: cadence: Write MSI data with 32bits
    ca71f9c8adc2 pinctrl: madera: Fix uninitialized variable bug in madera_mux_set_mux
    4465a916eaa7 printk: fix integer overflow in setup_log_buf()
    90d73768ddb6 printk: lock/unlock console only for new logbuf entries
    8888689bd433 crypto: testmgr - fix sizeof() on COMP_BUF_SIZE
    3757657af27e ALSA: isight: fix leak of reference to firewire unit in error path of .probe callback
    49a9643b5e8d mwifiex: Fix NL80211_TX_POWER_LIMITED
    e80e88ef6057 drm/i915/userptr: Try to acquire the page lock around set_page_dirty()
    a0ee03bb5269 drm/i915/pmu: "Frequency" is reported as accumulated cycles
    8a67fbf65971 drm/amd/powerplay: issue no PPSMC_MSG_GetCurrPkgPwr on unsupported ASICs
    e8d355befc42 mm/ksm.c: don't WARN if page is still mapped in remove_stable_node()
    b28da9da6e51 Revert "fs: ocfs2: fix possible null-pointer dereferences in ocfs2_xa_prepare_entry()"
    67380639dfdb virtio_console: allocate inbufs in add_port() only if it is needed
    65d153c8ed65 nbd:fix memory leak in nbd_get_socket()
    036588ec6888 tools: gpio: Correctly add make dependencies for gpio_utils
    7cb8ee734c18 gpio: max77620: Fixup debounce delays
    70d594d17ebb vhost/vsock: split packets to send using multiple buffers
    48bc34efbc65 net/mlx5: Fix auto group size calculation
    28a4cc2b5d6f net/mlxfw: Verify FSM error code translation doesn't exceed array size
    7c1a53817782 net/mlx5e: Fix set vf link state error flow
    1ff2a0f8692f sfc: Only cancel the PPS workqueue if it exists
    13512a5eb818 net: sched: ensure opts_len <= IP_TUNNEL_OPTS_MAX in act_tunnel_key
    2ba6a4f5402e net/sched: act_pedit: fix WARN() in the traffic path
    9f6de5cf5390 net: rtnetlink: prevent underflows in do_setvfinfo()
    ebcb0840a76b net/mlx4_en: Fix wrong limitation for number of TX rings
    5408138df1db net/mlx4_en: fix mlx4 ethtool -N insertion
    baa888ca02db mlxsw: spectrum_router: Fix determining underlay for a GRE tunnel
    14260788bbb9 Linux 4.19.86
    2e1f151cd2d9 x86/resctrl: Fix rdt_find_domain() return value and checks
    d64b58520670 mmc: tmio: fix SCC error handling to avoid false positive CRC error
    e2a37708cfca powerpc/time: Fix clockevent_decrementer initalisation for PR KVM
    ff36ace6c107 tools: PCI: Fix broken pcitest compilation
    4039b5dd0f67 PM / devfreq: Fix static checker warning in try_then_request_governor
    903cfafe0874 ACPI / LPSS: Use acpi_lpss_* instead of acpi_subsys_* functions for hibernate
    6491a2d26c08 tcp: start receiver buffer autotuning sooner
    ef0811ef95ea ARM: dts: omap5: Fix dual-role mode on Super-Speed port
    183f9ae8c4d2 mlxsw: spectrum_switchdev: Check notification relevance based on upper device
    16ad1c43196a spi: rockchip: initialize dma_slave_config properly
    f28abe5a3695 mac80211: minstrel: fix sampling/reporting of CCK rates in HT mode
    83ea4ccdb9eb mac80211: minstrel: fix CCK rate group streams value
    8bbedf4dffe9 mac80211: minstrel: fix using short preamble CCK rates on HT clients
    5d017065cec9 misc: cxl: Fix possible null pointer dereference
    9089b2f0049e netfilter: nft_compat: do not dump private area
    e6c540bf9786 net: sched: avoid writing on noop_qdisc
    b80939a47413 selftests: forwarding: Have lldpad_app_wait_set() wait for unknown, too
    a119952d4be6 hwmon: (npcm-750-pwm-fan) Change initial pwm target to 255
    4bbc8deedd89 hwmon: (ina3221) Fix INA3221_CONFIG_MODE macros
    5bdad12ab211 hwmon: (pwm-fan) Silence error on probe deferral
    0cb6525b75e1 hwmon: (nct6775) Fix names of DIMM temperature sources
    a58d5770493c hwmon: (k10temp) Support all Family 15h Model 6xh and Model 7xh processors
    1301b861cf50 scsi: arcmsr: clean up clang warning on extraneous parentheses
    b0c75ea8d372 pinctrl: gemini: Fix up TVC clock group
    2a6c8fc0af64 orangefs: rate limit the client not running info message
    336793832f26 x86/mm: Do not warn about PCI BIOS W+X mappings
    1eeb7407d233 ARM: 8802/1: Call syscall_trace_exit even when system call skipped
    e616dd603c29 spi: spidev: Fix OF tree warning logic
    4fabd2e530ab pinctrl: gemini: Mask and set properly
    8aa36b8a7684 spi: fsl-lpspi: Prevent FIFO under/overrun by default
    07ed61a0a711 gpio: syscon: Fix possible NULL ptr usage
    312de5a09d10 net: fix generic XDP to handle if eth header was mangled
    014045888a74 bpf: btf: Fix a missing check bug
    85f996c36e15 x86/kexec: Correct KEXEC_BACKUP_SRC_END off-by-one error
    3f4f4c639f29 lightnvm: pblk: consider max hw sectors supported for max_write_pgs
    d4ab0df8d5dd lightnvm: pblk: fix error handling of pblk_lines_init()
    cdf73455471a lightnvm: do no update csecs and sos on 1.2
    1fb60da4d736 lightnvm: pblk: guarantee mw_cunits on read buffer
    1e9796622bc7 lightnvm: pblk: fix write amplificiation calculation
    d56fe8f59a23 lightnvm: pblk: guarantee emeta on line close
    c7e49f73152f lightnvm: pblk: fix incorrect min_write_pgs
    ced6b5dae1dc lightnvm: pblk: fix rqd.error return value in pblk_blk_erase_sync
    e99956093f70 ALSA: hda/ca0132 - Fix input effect controls for desktop cards
    9c30ea2dda5d media: venus: vdec: fix decoded data size
    5b388c45c3e5 media: cx231xx: fix potential sign-extension overflow on large shift
    4d7cf69b77ce GFS2: Flush the GFS2 delete workqueue before stopping the kernel threads
    1adde6589b4a media: isif: fix a NULL pointer dereference bug
    3404019d6d0f printk: Give error on attempt to set log buffer length to over 2G
    b2d6db3e572a mfd: ti_am335x_tscadc: Keep ADC interface on if child is wakeup capable
    b0c6a78a8a5a backlight: lm3639: Unconditionally call led_classdev_unregister
    94764e3ae569 proc/vmcore: Fix i386 build error of missing copy_oldmem_page_encrypted()
    e78c55ad6657 s390/kasan: avoid user access code instrumentation
    ef5ad4f11e74 s390/kasan: avoid instrumentation of early C code
    5228d07c4f92 s390/kasan: avoid vdso instrumentation
    0046af383099 mmc: mmci: expand startbiterr to irqmask and error check
    322f530fd959 x86/intel_rdt: CBM overlap should also check for overlap with CDP peer
    36cf91317ca9 x86/intel_rdt: Introduce utility to obtain CDP peer
    f9a2a8b8a5d4 mtd: devices: m25p80: Make sure WRITE_EN is issued before each write
    6664533b4fc1 mtd: spi-nor: cadence-quadspi: Use proper enum for dma_[un]map_single
    370dbbc7b5cb media: cx18: Don't check for address of video_dev
    76765353043b media: dw9807-vcm: Fix probe error handling
    96134bbea649 media: dw9714: Fix error handling in probe function
    2103ebde9ac0 platform/x86: mlx-platform: Properly use mlxplat_mlxcpld_msn201x_items
    04d38fa8436b bcache: recal cached_dev_sectors on detach
    65910055b560 bcache: account size of buckets used in uuid write to ca->meta_sectors_written
    16c2d36b1123 reset: Fix potential use-after-free in __of_reset_control_get()
    84b787e35482 fbdev: fix broken menu dependencies
    21bb43c0dd86 fbdev: sbuslib: integer overflow in sbusfb_ioctl_helper()
    e57ba9db8c5f fbdev: sbuslib: use checked version of put_user()
    964cd867ef63 atmel_lcdfb: support native-mode display-timings
    a3a76b5d22f0 mmc: renesas_sdhi_internal_dmac: set scatter/gather max segment size
    e8853ef02e2d mmc: tmio: Fix SCC error detection
    01395b5f089b mmc: renesas_sdhi_internal_dmac: Whitelist r8a774a1
    500c933055e7 x86/fsgsbase/64: Fix ptrace() to read the FS/GS base accurately
    b17ddbdc6035 xsk: proper AF_XDP socket teardown ordering
    29fda86178fe iwlwifi: mvm: don't send keys when entering D3
    d43b7b99fe77 ACPI / SBS: Fix rare oops when removing modules
    7f02606367b3 xfrm: use correct size to initialise sp->ovec
    6b9c4eddb3be crypto: mxs-dcp - Fix AES issues
    70ecd0459d03 crypto: mxs-dcp - Fix SHA null hashes and output length
    fef30612e23c dmaengine: rcar-dmac: set scatter/gather max segment size
    af23231acaf6 x86/olpc: Fix build error with CONFIG_MFD_CS5535=m
    624cd074631a kexec: Allocate decrypted control pages for kdump if SME is enabled
    59e5269c692e remoteproc: qcom: q6v5: Fix a race condition on fatal crash
    4b8c7bce49ca remoteproc: Check for NULL firmwares in sysfs interface
    e4aecc15d7c4 tc-testing: fix build of eBPF programs
    d653bd939cb1 net: hns3: Fix for rx vlan id handle to support Rev 0x21 hardware
    3bef7420e129 soc: fsl: bman_portals: defer probe after bman's probe
    090122baa262 Input: silead - try firmware reload after unsuccessful resume
    c13b00c39464 Input: st1232 - set INPUT_PROP_DIRECT property
    205ae6b06288 i2c: zx2967: use core to detect 'no zero length' quirk
    1698ed9f0e2f i2c: tegra: use core to detect 'no zero length' quirk
    d511166558a4 i2c: qup: use core to detect 'no zero length' quirk
    e0d9c58c49e6 i2c: omap: use core to detect 'no zero length' quirk
    f3afad5d1eff gfs2: slow the deluge of io error messages
    35c8125cbea4 media: cec-gpio: select correct Signal Free Time
    58d0a3dbad2b media: ov5640: fix framerate update
    47dd538e9c44 dmaengine: ioat: fix prototype of ioat_enumerate_channels
    90d73c1cadb8 NFSv4.x: fix lock recovery during delegation recall
    799c98cba071 printk: Correct wrong casting
    e7ff1141b60c i2c: brcmstb: Allow enabling the driver on DSL SoCs
    8b3e444fe8d0 clk: samsung: Use clk_hw API for calling clk framework from clk notifiers
    599d5350f123 clk: samsung: exynos5420: Define CLK_SECKEY gate clock only or Exynos5420
    06da39429640 clk: samsung: Use NOIRQ stage for Exynos5433 clocks suspend/resume
    fe46630cd2a1 qtnfmac: drop error reports for out-of-bounds key indexes
    4ecc631d975c qtnfmac: inform wireless core about supported extended capabilities
    28d5342b2ae4 qtnfmac: pass sgi rate info flag to wireless core
    5554e47a2946 qtnfmac: request userspace to do OBSS scanning if FW can not
    75a1e8dec421 brcmfmac: fix full timeout waiting for action frame on-channel tx
    c01258a2ad7d brcmfmac: reduce timeout for action frame scan
    89cf2472a295 cpu/SMT: State SMT is disabled even with nosmt and without "=force"
    8fce141f4805 mtd: physmap_of: Release resources on error
    d46cd42b4ffa usb: dwc2: disable power_down on rockchip devices
    3ad0531dbe0c USB: serial: cypress_m8: fix interrupt-out transfer length
    24ce099a5388 KVM: PPC: Book3S PR: Exiting split hack mode needs to fixup both PC and LR
    8b6021ca47a3 bnxt_en: return proper error when FW returns HWRM_ERR_CODE_RESOURCE_ACCESS_DENIED
    6e454b0ad02d ALSA: hda/sigmatel - Disable automute for Elo VuPoint
    6925a5afc148 media: i2c: adv748x: Support probing a single output
    a02bad04d110 media: rcar-vin: fix redeclaration of symbol
    14dc7aeef3f4 media: pxa_camera: Fix check for pdev->dev.of_node
    7672ca60a14a media: rc: ir-rc6-decoder: enable toggle bit for Kathrein RCU-676 remote
    01e9e39f4f61 qed: Avoid implicit enum conversion in qed_ooo_submit_tx_buffers
    d1dff747758f ata: ep93xx: Use proper enums for directions
    6a70c66a84e0 powerpc/64s/radix: Explicitly flush ERAT with local LPID invalidation
    9e4649e443e2 powerpc/time: Use clockevents_register_device(), fixing an issue with large decrementer
    d7e546d06182 ASoC: qdsp6: q6asm-dai: checking NULL vs IS_ERR()
    27ab8f1648ac cpuidle: menu: Fix wakeup statistics updates for polling state
    38ad2aa9331b ACPICA: Never run _REG on system_memory and system_IO
    216929d15b2c OPP: Return error on error from dev_pm_opp_get_opp_count()
    3d0c72f99efc msm/gpu/a6xx: Force of_dma_configure to setup DMA for GMU
    674b223d7a48 rpmsg: glink: smem: Support rx peak for size less than 4 bytes
    ec9fc981de57 IB/mlx4: Avoid implicit enumerated type conversion
    d5d78049b7a4 RDMA/hns: Limit the size of extend sge of sq
    010af7a8d0ae RDMA/hns: Bugfix for CM test
    5b7064adfb4b RDMA/hns: Submit bad wr when post send wr exception
    af76265532a8 RDMA/hns: Bugfix for reserved qp number
    350703fae672 IB/rxe: avoid srq memory leak
    e3db306d1fda IB/mthca: Fix error return code in __mthca_init_one()
    1b86b8ad6e47 ixgbe: Fix crash with VFs and flow director on interface flap
    0e1fd69cff75 i40e: Use proper enum in i40e_ndo_set_vf_link_state
    22b8d7e3bcb5 ixgbe: Fix ixgbe TX hangs with XDP_TX beyond queue limit
    b69cfc4f2665 md: allow metadata updates while suspending an array - fix
    4aa110048087 ice: Fix forward to queue group logic
    d97a02b84879 clocksource/drivers/sh_cmt: Fix clocksource width for 32-bit machines
    31fb5ea6ed1b clocksource/drivers/sh_cmt: Fixup for 64-bit machines
    0e8855ba9f9a tools: PCI: Fix compilation warnings
    9372023e10ee PM / hibernate: Check the success of generating md5 digest before hibernation
    ed896ddfae94 mtd: rawnand: sh_flctl: Use proper enum for flctl_dma_fifo0_transfer
    83cda9ea1876 ARM: dts: at91: sama5d2_ptc_ek: fix bootloader env offsets
    10551e574d79 ARM: dts: at91: at91sam9x5cm: fix addressable nand flash size
    825d176a1049 ARM: dts: at91: sama5d4_xplained: fix addressable nand flash size
    ab9928588283 powerpc/xive: Move a dereference below a NULL test
    38d7fa28157e powerpc/pseries: Fix how we iterate over the DTL entries
    a3576a228404 powerpc/pseries: Fix DTL buffer registration
    b28aa87d081c cxgb4: Use proper enum in IEEE_FAUX_SYNC
    efdacf2b7aa7 cxgb4: Use proper enum in cxgb4_dcb_handle_fw_update
    743ccf759e8e mei: samples: fix a signedness bug in amt_host_if_call()
    cc7d996a4428 x86/PCI: Apply VMD's AERSID fixup generically
    6cedfaffb4ac sunrpc: Fix connect metrics
    7e4602eac666 clk: keystone: Enable TISCI clocks if K3_ARCH
    6c487c0e877a ext4: fix build error when DX_DEBUG is defined
    f2877a3c332d ALSA: hda: Fix mismatch for register mask and value in ext controller.
    ae3765a0a33d dmaengine: timb_dma: Use proper enum in td_prep_slave_sg
    0c21aa9b5651 dmaengine: ep93xx: Return proper enum in ep93xx_dma_chan_direction
    671ce9f892b9 printk: CON_PRINTBUFFER console registration is a bit racy
    cd120df118d7 printk: Do not miss new messages when replaying the log
    5a6f7274e67b KVM: PPC: Inform the userspace about TCE update failures
    38374aa3c916 watchdog: w83627hf_wdt: Support NCT6796D, NCT6797D, NCT6798D
    96505abd2435 watchdog: sama5d4: fix timeout-sec usage
    26d6e542dc47 watchdog: renesas_wdt: stop when unregistering
    f4cfb7eeae62 watchdog: core: fix null pointer dereference when releasing cdev
    a9f36455edc1 irqchip/irq-mvebu-icu: Fix wrong private data retrieval
    be4f5457a5fd nl80211: Fix a GET_KEY reply attribute
    21ba66937e0d usb: dwc3: gadget: Check ENBLSLPM before sending ep command
    639fce0bc8b5 usb: gadget: udc: fotg210-udc: Fix a sleep-in-atomic-context bug in fotg210_get_status()
    f22a4d8cf049 selftests/tls: Fix recv(MSG_PEEK) & splice() test cases
    475398b72984 ath9k: fix reporting calculated new FFT upper max
    f6ec4fccbf9a PM / devfreq: stopping the governor before device_unregister()
    fc491a1e77be PM / devfreq: Fix handling of min/max_freq == 0
    b5add975c871 PM / devfreq: Fix devfreq_add_device() when drivers are built as modules.
    5f5a8d36749f ata: ahci_brcm: Allow using driver or DSL SoCs
    4cfcb5379a9c rtlwifi: btcoex: Use proper enumerated types for Wi-Fi only interface
    e5895e41aeb3 ath10k: fix vdev-start timeout on error
    06cb99e6399d arm64/numa: Report correct memblock range for the dummy node
    256a29480733 kvm: arm/arm64: Fix stage2_flush_memslot for 4 level page table
    bae080e72e92 iommu/arm-smmu-v3: Fix unexpected CMD_SYNC timeout
    2bab3df8f506 iommu/io-pgtable-arm: Fix race handling in split_blk_unmap()
    741a445a88e4 mt76: fix handling ps-poll frames
    ddb4299f1d78 mt76x2: disable WLAN core before probe
    b14825a5c652 mt76x2: fix tx power configuration for VHT mcs 9
    449b9ae3504c IB/hfi1: Ensure ucast_dlid access doesnt exceed bounds
    e0dee1c839e3 IB/hfi1: Error path MAD response size is incorrect
    8d93707e7195 f2fs: keep lazytime on remount
    a5f7bf0379d3 ACPI / LPSS: Resume BYT/CHT I2C controllers from resume_noirq
    aa39d53f2b89 ACPI / LPSS: Make acpi_lpss_find_device() also find PCI devices
    9372a40b54d0 SUNRPC: Fix priority queue fairness
    43876b1ce42b tcp: up initial rmem to 128KB and SYN rwin to around 64KB
    d2cacb6ac4ff ARM: dts: sun8i: h3: bpi-m2-plus: Fix address for external RGMII Ethernet PHY
    ed220d3dcc79 ARM: dts: sun8i: h3-h5: ir register size should be the whole memory block
    ac02379889e2 f2fs: return correct errno in f2fs_gc
    7cbac9d598a7 net: hns3: Fix loss of coal configuration while doing reset
    af98283da9e9 net: hns3: Fix for netdev not up problem when setting mtu
    7a1f314e3c80 ARM: dts: omap5: enable OTG role for DWC3 controller
    789d29044793 ARM: dts: dra7: Enable workaround for errata i870 in PCIe host mode
    6d286faeee74 net: xen-netback: fix return type of ndo_start_xmit function
    c234566f1ea0 net: ovs: fix return type of ndo_start_xmit function
    d51d9605888d bpf, x32: Fix bug for BPF_JMP | {BPF_JSGT, BPF_JSLE, BPF_JSLT, BPF_JSGE}
    f3c40792cf4b bpf, x32: Fix bug with ALU64 {LSH, RSH, ARSH} BPF_K shift by 0
    a085f797449e bpf, x32: Fix bug with ALU64 {LSH, RSH, ARSH} BPF_X shift by 0
    860a7d18b9e6 bpf, x32: Fix bug for BPF_ALU64 | BPF_NEG
    03543b9c5573 fbdev: Ditch fb_edid_add_monspecs
    703662598b9c arm64: uaccess: Ensure PAN is re-enabled after unhandled uaccess fault
    f8b09a043685 mm/memory_hotplug: fix updating the node span
    6631def3ee38 mm/memory_hotplug: don't access uninitialized memmaps in shrink_pgdat_span()
    a16a3669273b idr: Fix idr_get_next race with idr_remove
    4c62337d8f17 net: cdc_ncm: Signedness bug in cdc_ncm_set_dgram_size()
    17a82bc67728 Revert "OPP: Protect dev_list with opp_table lock"
    4f4ab0b49cf2 tee: optee: add missing of_node_put after of_device_is_available
    2008d0e3d364 i2c: mediatek: modify threshold passed to i2c_get_dma_safe_msg_buf()
    976e944e005f spi: mediatek: use correct mata->xfer_len when in fifo transfer
    c63ee2939dc1 Linux 4.19.85
    e99d64837815 slcan: Fix memory leak in error path
    e4cc9c81e230 memfd: Use radix_tree_deref_slot_protected to avoid the warning.
    914834a73b16 net: phy: mdio-bcm-unimac: mark PM functions as __maybe_unused
    2ed924f2782f s390/vdso: correct vdso mapping for compat tasks
    1b904b2eb9c1 media: ov2680: fix null dereference at power on
    0c3e32230bcc IB/iser: Fix possible NULL deref at iser_inv_desc()
    d7b412e1448e fuse: use READ_ONCE on congestion_threshold and max_background
    2e72489c822e usb: usbtmc: uninitialized symbol 'actual' in usbtmc_ioctl_clear
    eb9b6c203870 usb: xhci-mtk: fix ISOC error when interval is zero
    8ddec6aaad86 netfilter: masquerade: don't flush all conntracks if only one address deleted on device
    ba8c4cc746a5 rtc: armada38x: fix possible race condition
    44bb1b1256b5 rtc: tx4939: fixup nvmem name and register size
    e7ab2bab7e60 rtc: isl1208: avoid possible sysfs race
    70f0ead5c6af ARM: dts: lpc32xx: Fix SPI controller node names
    8e359bce724c arm64: dts: lg: Fix SPI controller node names
    f52a34b5b111 arm64: dts: amd: Fix SPI bus warnings
    b26edaa53496 scsi: NCR5380: Check for bus reset
    080b37aacd2b scsi: NCR5380: Handle BUS FREE during reselection
    aa45f4ab86a2 scsi: NCR5380: Don't call dsprintk() following reselection interrupt
    23635cf271a3 scsi: NCR5380: Don't clear busy flag when abort fails
    aeb0ed2e5bb9 scsi: NCR5380: Check for invalid reselection target
    98c6d8f8a401 scsi: NCR5380: Use DRIVER_SENSE to indicate valid sense data
    1a46e4d3da31 scsi: NCR5380: Withhold disconnect privilege for REQUEST SENSE
    624f60251f1a scsi: NCR5380: Have NCR5380_select() return a bool
    873506e566ef scsi: NCR5380: Clear all unissued commands on host reset
    fe5ef5fe3e19 iwlwifi: mvm: Allow TKIP for AP mode
    c4a3dcb0a273 iwlwifi: mvm: use correct FIFO length
    d395b6f51cf7 iwlwifi: pcie: fit reclaim msg to MAX_MSG_LEN
    08d2000d2162 iwlwifi: pcie: gen2: build A-MSDU only for GSO
    f4f0909f3d3f iwlwifi: api: annotate compressed BA notif array sizes
    e455ecaf52da iwlwifi: pcie: read correct prph address for newer devices
    c5eafde04ad3 iwlwifi: fix non_shared_ant for 22000 devices
    f73c75560ffd iwlwifi: dbg: don't crash if the firmware crashes in the middle of a debug dump
    98ca4f397feb crypto: fix a memory leak in rsa-kcs1pad's encryption mode
    975b3c8dd182 crypto: s5p-sss: Fix Fix argument list alignment
    ef089d9b58a7 crypto: s5p-sss: Fix race in error handling
    d34465e722e7 x86/hyperv: Suppress "PCI: Fatal: No config space access function found"
    23a4059cd6b8 Bluetooth: btrsi: fix bt tx timeout issue
    245b2765e87c Bluetooth: L2CAP: Detect if remote is not able to use the whole MPS
    2c8946462f07 Bluetooth: hci_serdev: clear HCI_UART_PROTO_READY to avoid closing proto races
    f416fe070ec1 firmware: dell_rbu: Make payload memory uncachable
    5d3675e3e6d1 ARM: dts: realview: Fix SPI controller node names
    57b78e41a397 EDAC: Raise the maximum number of memory controllers
    352668d32cd5 RDMA: Fix dependencies for rdma_user_mmap_io
    36ffc9a76df9 f2fs: mark inode dirty explicitly in recover_inode()
    a4bd303d6774 f2fs: fix to recover inode's project id during POR
    7bae8b6b73e4 f2fs: update i_size after DIO completion
    9de276a804c7 PCI/ERR: Run error recovery callbacks for all affected devices
    8738fd312e63 net: faraday: fix return type of ndo_start_xmit function
    8ff333f3f819 net: smsc: fix return type of ndo_start_xmit function
    4481669a3a95 ARM: dts: paz00: fix wakeup gpio keycode
    4e9cf62e8ffb ARM: tegra: colibri_t30: fix mcp2515 can controller interrupt polarity
    63c28c08e485 ARM: tegra: apalis_t30: fix mcp2515 can controller interrupt polarity
    2241b82d7b3f ARM: tegra: apalis_t30: fix mmc1 cmd pull-up
    1717eca134f2 ARM: dts: tegra20: restore address order
    619f46726e66 ARM: dts: tegra30: fix xcvr-setup-use-fuses
    70c4b0fb4fd5 arm64: tegra: I2C on Tegra194 is not compatible with Tegra114
    e821b710b58d ARM: dts: imx51-zii-rdu1: Fix the rtc compatible string
    a09b6731c4dd arm64: dts: fsl: Fix I2C and SPI bus warnings
    2d6b885ba741 phy: lantiq: Fix compile warning
    6fce50c100c8 f2fs: fix remount problem of option io_bits
    c4a33c4ecc1f scsi: libsas: always unregister the old device if going to discover new
    2f9d0f703b9c iw_cxgb4: Use proper enumerated type in c4iw_bar2_addrs
    1ae5bfee6cff vfio/pci: Mask buggy SR-IOV VF INTx support
    dde3433de9a0 vfio/pci: Fix potential memory leak in vfio_msi_cap_len
    86f886e91dcf vmbus: keep pointer to ring buffer page
    728a7552dc49 misc: genwqe: should return proper error value.
    6707b1ba53be misc: kgdbts: Fix restrict error
    890bee675729 silmbus: ngd: register controller after power up.
    932980ed5b77 slimbus: ngd: return proper error code instead of zero
    9874abd5c878 slimbus: ngd: register ngd driver only once.
    614744f4e80e coresight: dynamic-replicator: Handle multiple connections
    36aa9cd28c59 coresight: tmc: Fix byte-address alignment for RRP
    0bb87d413aef coresight: etm4x: Configure EL2 exception level when kernel is running in HYP
    a0e0ec0a5544 coresight: tmc-etr: Handle driver mode specific ETR buffers
    1099665125ed coresight: perf: Disable trace path upon source error
    87e382c3f706 coresight: perf: Fix per cpu path management
    25deeb3c1b9f coresight: Fix handling of sinks
    59a488998caf coresight: Use ERR_CAST instead of ERR_PTR
    240293e02123 usb: gadget: uvc: Only halt video streaming endpoint in bulk mode
    bb7c36e91d45 usb: gadget: uvc: Factor out video USB request queueing
    c4635c27d3ac ARM: dts: imx6ull: update vdd_soc voltage for 900MHz operating point
    a9c11660389c phy: phy-twl4030-usb: fix denied runtime access
    6e176dd0e4c2 phy: renesas: rcar-gen3-usb2: fix vbus_ctrl for role sysfs
    f0525581df5f phy: brcm-sata: allow PHY_BRCM_SATA driver to be built for DSL SoCs
    ff0eabfaf4a4 ARM: at91: pm: call put_device instead of of_node_put in at91_pm_config_ws
    1b23c28d87e7 gpiolib: Fix gpio_direction_* for single direction GPIOs
    ec0b30347e4a i2c: aspeed: fix invalid clock parameters for very large divisors
    de2875336ee8 ARM: dts: exynos: Correct audio subsystem parent clock on Peach Chromebooks
    4e6c65624090 usb: gadget: uvc: configfs: Sort frame intervals upon writing
    d036103870c6 usb: gadget: uvc: configfs: Prevent format changes after linking header
    e6e1ad1e2537 usb: gadget: uvc: configfs: Drop leaked references to config items
    b7ffda42d720 ARM: dts: rockchip: explicitly set vcc_sd0 pin to gpio on rk3188-radxarock
    0b08daf034cc media: davinci: Fix implicit enum conversion warning
    0994d0cb86ec media: au0828: Fix incorrect error messages
    0e63f5db54d8 media: pci: ivtv: Fix a sleep-in-atomic-context bug in ivtv_yuv_init()
    2dacea472335 media: imx: work around false-positive warning, again
    1b73ea8377da mlxsw: Make MLXSW_SP1_FWREV_MINOR a hard requirement
    9d2ce0611ad5 arm64: dts: rockchip: Fix microSD in rk3399 sapphire board
    46a9bbe9d579 MIPS: kexec: Relax memory restriction
    3b9528b302a6 EDAC: Correct DIMM capacity unit symbol
    e897dd4cfdde x86/CPU: Change query logic so CPUID is enabled before testing
    d26ad73be70f x86/CPU: Use correct macros for Cyrix calls
    fd3f592b2af6 net: freescale: fix return type of ndo_start_xmit function
    cab175f881c5 net: micrel: fix return type of ndo_start_xmit function
    590ee2e0aec7 net: phy: mdio-bcm-unimac: Allow configuring MDIO clock divider
    73cb54858021 samples/bpf: fix compilation failure
    3536c05af6f4 PCI/ERR: Use slot reset if available
    0729c5944eee PCI/AER: Don't read upstream ports below fatal errors
    f3f55d83ea0d PCI/AER: Take reference on error devices
    40ebd8b31fea bnx2x: Ignore bandwidth attention in single function mode
    0769f445afa4 ARM: dts: stm32: Fix SPI controller node names
    c6305dfb214b ARM: dts: clearfog: fix sdhci supply property name
    b939d8b914d8 ARM: dts: stm32: enable display on stm32mp157c-ev1 board
    098e12f385f9 x86/mce-inject: Reset injection struct after injection
    aa190837bec5 ARM: dts: marvell: Fix SPI and I2C bus warnings
    ccc8bf41dac8 crypto: arm/crc32 - avoid warning when compiling with Clang
    9e70da12d01f cpufeature: avoid warning when compiling with clang
    ad28c2ba4318 crypto: chacha20 - Fix chacha20_block() keystream alignment (again)
    af4749d23d46 spi: pic32: Use proper enum in dmaengine_prep_slave_rg
    c2f76a19fbc8 ARM: dts: ste: Fix SPI controller node names
    4d22878d5894 ARM: dts: ux500: Fix LCDA clock line muxing
    8be4d596d3f2 ARM: dts: ux500: Correct SCU unit address
    dfc81686a642 f2fs: fix to recover inode's uid/gid during POR
    c783946ea9b1 f2fs: avoid infinite loop in f2fs_alloc_nid
    caab324d1b01 ARM: dts: ti: Fix SPI and I2C bus warnings
    2cf6352a6d4c ARM: dts: am335x-evm: fix number of cpsw
    1eeee2fd2e0c PCI: portdrv: Initialize service drivers directly
    38bee3f3f280 mlxsw: spectrum: Init shaper for TCs 8..15
    636cbdec5cf4 brcmsmac: Use kvmalloc() for ucode allocations
    2980b6a81378 brcmfmac: increase buffer for obtaining firmware capabilities
    59d6e59f32cc s390/vdso: correct CFI annotations of vDSO functions
    84bfa03445bc s390/vdso: avoid 64-bit vdso mapping for compat tasks
    3d510bdf35c2 s390/zcrypt: enable AP bus scan without a valid default domain
    5e9923e85e1c usb: usbtmc: Fix ioctl USBTMC_IOCTL_ABORT_BULK_OUT
    92aeb3756c43 usb: chipidea: Fix otg event handler
    979f541851d9 usb: chipidea: imx: enable OTG overcurrent in case USB subsystem is already started
    b39e733da3f8 nfp: provide a better warning when ring allocation fails
    883843b5a912 net: hns3: Fix parameter type for q_id in hclge_tm_q_to_qs_map_cfg()
    a1b2c39f3ec7 net: hns3: Fix client initialize state issue when roce client initialize failed
    20f2b72faff0 net: hns3: Clear client pointer when initialize client failed or unintialize finished
    ae95237256de net: hns3: Fix cmdq registers initialization issue for vf
    110de23fc502 net: hns3: Fix for setting speed for phy failed problem
    bd23121daecf net: sun: fix return type of ndo_start_xmit function
    5d52c10c345d net: amd: fix return type of ndo_start_xmit function
    0cd3edaf82e6 net: broadcom: fix return type of ndo_start_xmit function
    63a0e0512dba net: xilinx: fix return type of ndo_start_xmit function
    df9f5c799d85 net: toshiba: fix return type of ndo_start_xmit function
    e50d7274104c net: marvell: fix return type of ndo_start_xmit function
    28fae2d588be net: mvpp2: fix the number of queues per cpu for PPv2.2
    0ede78b3576c power: supply: twl4030_charger: disable eoc interrupt on linear charge
    773fb69e4307 power: supply: twl4030_charger: fix charging current out-of-bounds
    0729f87b840a libfdt: Ensure INT_MAX is defined in libfdt_env.h
    e000de3f01c5 of/unittest: Fix I2C bus unit-address error
    4c64ce947cfa OPP: Protect dev_list with opp_table lock
    51e509caf5fa ARM: dts: atmel: Fix I2C and SPI bus warnings
    7cfb3b04d096 RDMA/i40iw: Fix incorrect iterator type
    eb355ccfdf1d powerpc: Fix duplicate const clang warning in user access code
    e7b37640916f powerpc/pseries: Disable CPU hotplug across migrations
    9271304c26fc powerpc/pseries/memory-hotplug: Only update DT once per memory DLPAR request
    0ab2545aa404 powerpc/64s/hash: Fix stab_rr off by one initialization
    a3581509e890 selftests/powerpc: Do not fail with reschedule
    089b169ceb80 powerpc/iommu: Avoid derefence before pointer check
    13d5bc50f405 net: ibm: fix return type of ndo_start_xmit function
    efe22c12087d net: cavium: fix return type of ndo_start_xmit function
    279a4f77546a net: hns3: fix return type of ndo_start_xmit function
    dd4b87a945c1 ipmi: fix return value of ipmi_set_my_LUN
    ea944c71360f ipmi:dmi: Ignore IPMI SMBIOS entries with a zero base address
    438bf726def0 ipmi_si: fix potential integer overflow on large shift
    78538bae1dab ipmi_si_pci: fix NULL device in ipmi_si error message
    5ab64c1633f6 ASoC: rt5682: Fix the boost volume at the begining of playback
    6237e9d0715a spi: mediatek: Don't modify spi_transfer when transfer.
    779c96ef3fac spi/bcm63xx-hsspi: keep pll clk enabled
    eaa4d5ac4403 samples/bpf: fix a compilation failure
    feb52253d738 arm64: dts: ti: k3-am65: Change #address-cells and #size-cells of interconnect to 2
    1ea4603cc812 tty: serial: qcom_geni_serial: Fix serial when not used as console
    87153f7a04c9 serial: mxs-auart: Fix potential infinite loop
    400caa3d02ea serial: samsung: Enable baud clock for UART reset procedure in resume
    30cfa3ebc0ed serial: uartps: Fix suspend functionality
    bad4e6d3d40d ARM: dts: xilinx: Fix I2C and SPI bus warnings
    d15e5038213e PCI: mediatek: Fix unchecked return value
    80ec7fcb04a0 net: socionext: Fix two sleep-in-atomic-context bugs in ave_rxfifo_reset()
    176f6203a4f4 PCI/ACPI: Correct error message for ASPM disabling
    525552a0e849 media: ov2680: don't register the v4l2 subdevice before checking chip ID
    f4683c89808f media: vsp1: Fix YCbCr planar formats pitch calculation
    ee5a1460f271 media: vsp1: Fix vsp1_regs.h license header
    2d7578285958 s390/qeth: invoke softirqs after napi_schedule()
    66fb291b264d s390/qeth: uninstall IRQ handler on device removal
    ccc1e600844d ath9k: Fix a locking bug in ath9k_add_interface()
    e97d09277b77 netfilter: nf_tables: avoid BUG_ON usage
    d1440f1a38eb ACPI / LPSS: Exclude I2C busses shared with PUNIT from pmc_atom_d3_mask
    75fd1aec33c6 arm64: dts: rockchip: Fix I2C bus unit-address error on rk3399-puma-haikou
    5fc9af407fc5 ARM: dts: rockchip: Fix erroneous SPI bus dtc warnings on rk3036
    0592c2178e3c scsi: ufshcd: Fix NULL pointer dereference for in ufshcd_init
    6745591c8da9 ip_gre: fix parsing gre header in ipgre_err
    ada2a0f1ac54 kernfs: Fix range checks in kernfs_get_target_path
    5fba81510697 component: fix loop condition to call unbind() if bind() fails
    925c19a8c6bb power: supply: max8998-charger: Fix platform data retrieval
    82d8a34470e9 power: reset: at91-poweroff: do not procede if at91_shdwc is allocated
    1fb3d279a384 power: supply: ab8500_fg: silence uninitialized variable warnings
    c9398259cf85 arm64: dts: meson: Fix erroneous SPI bus warnings
    89f4d27c1bcd blok, bfq: do not plug I/O if all queues are weight-raised
    6c9a79651bff block, bfq: inject other-queue I/O into seeky idle queues on NCQ flash
    6d7757f04866 arm64: fix for bad_mode() handler to always result in panic
    7f49a2210e85 cxgb4: Fix endianness issue in t4_fwcache()
    b0cb2d8164d0 android: binder: no outgoing transaction when thread todo has transaction
    31e470f92d9e ARM: dts: sun9i: Fix I2C bus warnings
    0989aa65bc37 pinctrl: at91: don't use the same irqchip with multiple gpiochips
    d1b9d321df35 ARM: dts: sunxi: Fix I2C bus warnings
    8ac08053744c ARM: dts: socfpga: Fix I2C bus unit-address error
    e70ccd8a13a9 powerpc/vdso: Correct call frame information
    11d7842812f8 ARM: dts: aspeed: Fix I2C bus warnings
    5a8130ed237f ARM: dts: bcm: Fix SPI bus warnings
    08ffefc8e7ed arm64: dts: broadcom: Fix I2C and SPI bus warnings
    174e8262f08a drivers: qcom: rpmh-rsc: clear wait_for_compl after use
    09c8a33ed766 soc: qcom: apr: Avoid string overflow
    6651ecf92f3c soc: qcom: wcnss_ctrl: Avoid string overflow
    4a2c4d1a0b6b soc: qcom: geni: geni_se_clk_freq_match() should always accept multiples
    331ed266987e soc: qcom: geni: Don't ignore clk_round_rate() errors in geni_se_clk_tbl_get()
    b0826d4774c2 ARM: dts: qcom: ipq4019: fix cpu0's qcom,saw2 reg value
    9a484516a410 llc: avoid blocking in llc_sap_close()
    50e40ebcaa32 pinctrl: at91-pio4: fix has_config check in atmel_pctl_dt_subnode_to_map()
    3f57f7387db2 arm64: dts: renesas: r8a77965: Fix clock/reset for usb2_phy1
    7ed1974d2b03 arm64: dts: renesas: r8a77965: Fix HS-USB compatible
    dc521bf8ffda arm64: dts: renesas: r8a77965: Attach the SYS-DMAC to the IPMMU
    1badf45f08b3 arm64: dts: renesas: salvator-common: adv748x: Override secondary addresses
    20f93eb9194c ALSA: intel8x0m: Register irq handler after register initializations
    e80e83fb0106 arm64: dts: meson-axg: use the proper compatible for ethmac
    2694107888a5 arm64: dts: meson: libretech: update board model
    3804f9dd8f76 net: bcmgenet: Fix speed selection for reverse MII
    914282c62ab2 media: dvb: fix compat ioctl translation
    03056f8c725a media: fix: media: pci: meye: validate offset to avoid arbitrary access
    fe384ab1496c ALSA: hda: Fix implicit definition of pci_iomap() on SH
    6281d021bbb3 media: dt-bindings: adv748x: Fix decimal unit addresses
    88e9f8198dd5 nvmem: core: return error code instead of NULL from nvmem_device_get
    b0d54e40f3c4 Drivers: hv: vmbus: Fix synic per-cpu context initialization
    a1d374ea1e95 net: aquantia: fix hw_atl_utils_fw_upload_dwords
    a9cab0fe6e26 kprobes: Don't call BUG_ON() if there is a kprobe in use on free list
    7aea0bd886ae scsi: pm80xx: Fixed system hang issue during kexec boot
    a66a544dca32 scsi: pm80xx: Corrected dma_unmap_sg() parameter
    ac892349e21b ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" is set
    86d5ceaea04c scsi: sym53c8xx: fix NULL pointer dereference panic in sym_int_sir()
    66b2e4c7afd0 scsi: lpfc: Fix errors in log messages.
    87c32dbd7eff scsi: lpfc: Correct invalid EQ doorbell write on if_type=6
    8caed6a5d385 scsi: lpfc: Fix GFT_ID and PRLI logic for RSCN
    050e019c2d69 scsi: qla2xxx: Fix duplicate switch's Nport ID entries
    c7ddd7ba1d05 scsi: qla2xxx: Fix dropped srb resource.
    8c32664a6a0d scsi: qla2xxx: Fix port speed display on chip reset
    3e3a2c5c4569 scsi: qla2xxx: Check for Register disconnect
    3a7ec92a5b2a scsi: qla2xxx: Increase abort timeout value
    5320b946687a scsi: qla2xxx: Fix deadlock between ATIO and HW lock
    6f6e01ff7413 scsi: qla2xxx: Terminate Plogi/PRLI if WWN is 0
    f91811dd9501 scsi: qla2xxx: Defer chip reset until target mode is enabled
    667bdc46aa4e scsi: qla2xxx: Fix iIDMA error
    ca35c5a1cb21 scsi: qla2xxx: Use correct qpair for ABTS/CMD
    a1f14df33c05 f2fs: fix setattr project check upon fssetxattr ioctl
    7b55102cdc61 f2fs: fix memory leak of percpu counter in fill_super()
    883037308018 f2fs: fix memory leak of write_io in fill_super()
    e5b515f56626 signal: Properly deliver SIGSEGV from x86 uprobes
    91c3a88054c1 signal: Properly deliver SIGILL from uprobes
    3b5681d39fa4 signal: Always ignore SIGKILL and SIGSTOP sent to the global init
    93ae4ded2abe IB/hfi1: Missing return value in error path for user sdma
    45d0ddf97448 RDMA/hns: Fix an error code in hns_roce_v2_init_eq_table()
    8edddc2cf3c1 dmaengine: at_xdmac: remove a stray bottom half unlock
    9234fbbd7782 ath9k: add back support for using active monitor interfaces for tx99
    82663f99cbdf rtc: pl030: fix possible race condition
    5a869e9828e8 rtc: mt6397: fix possible race condition
    0773f03aebdd EDAC, sb_edac: Return early on ADDRV bit and address type test
    fc7be6308364 dmaengine: dma-jz4780: Further residue status fix
    f6d4561cae3a dmaengine: dma-jz4780: Don't depend on MACH_JZ4780
    a34ea3ddc763 usb: mtu3: disable vbus rise/fall interrupts of ltssm
    a5d1ffee2f2f ARM: dts: exynos: Disable pull control for PMIC IRQ line on Artik5 board
    67e477d8eaa0 arm64: dts: rockchip: Fix VCC5V0_HOST_EN on rk3399-sapphire
    4c884128b414 firmware: arm_scmi: use strlcpy to ensure NULL-terminated strings
    d786bf93f0c5 sched/debug: Use symbolic names for task state constants
    e4e522609854 sched/debug: Explicitly cast sched_feat() to bool
    0ddcbbf4cd47 failover: Fix error return code in net_failover_create
    eca5b74e0080 f2fs: submit bio after shutdown
    0f9c9a216288 ARM: dts: omap3-gta04: keep vpll2 always on
    d59817b0ca62 ARM: dts: omap3-gta04: make NAND partitions compatible with recent U-Boot
    6b268c233df7 ARM: dts: omap3-gta04: fix touchscreen tsc2007
    96907aa1ab3c ARM: dts: omap3-gta04: tvout: enable as display1 alias
    8f03a5116e9d ARM: dts: omap3-gta04: fixes for tvout / venc
    5cacb026fe26 ARM: dts: omap3-gta04: give spi_lcd node a label so that we can overwrite in other DTS files
    69116e3bae2b of: make PowerMac cache node search conditional on CONFIG_PPC_PMAC
    cc5f462c1b08 ata: Disable AHCI ALPM feature for Ampere Computing eMAG SATA
    3d5d2f7806a9 ASoC: Intel: hdac_hdmi: Limit sampling rates at dai creation
    0376916b7b2c ASoC: dapm: Avoid uninitialised variable warning
    0204720dde67 udf: Fix crash during mount
    52cda4c1d9cd mips: txx9: fix iounmap related issue
    f63587cbb091 RDMA/core: Follow correct unregister order between sysfs and cgroup
    6b827d38cead RDMA/core: Rate limit MAD error messages
    a618cca0438b IB/ipoib: Ensure that MTU isn't less than minimum permitted
    2543eeba256a IB/mlx5: Don't hold spin lock while checking device state
    4d8d651e1c5f i2c: mediatek: Use DMA safe buffers for i2c transactions
    d0d8f0efb6bd ath10k: wmi: disable softirq's while calling ieee80211_rx
    14c9bc4be084 ARM: dts: exynos: Disable pull control for S5M8767 PMIC
    588822fcb313 ath10k: avoid possible memory access violation
    34293775f117 ASoC: sgtl5000: avoid division by zero if lo_vag is zero
    6cbd0932ab9a rtnetlink: move type calculation out of loop
    4b702fdd6e7e net: lan78xx: Bail out if lan78xx_get_endpoints fails
    23ad83c399b0 f2fs: avoid wrong decrypted data from disk
    b6410b95c224 cfg80211: validate wmm rule when setting
    8d705195a9a3 mac80211: fix saving a few HE values
    4d146d72687e qxl: fix null-pointer crash during suspend
    f5ee703ff92c IB/mlx5: Change TX affinity assignment in RoCE LAG mode
    5128ea974c22 mtd: rawnand: qcom: don't include dma-direct.h
    d6ebf70120c6 mtd: rawnand: fsl_ifc: fixup SRAM init for newer ctrl versions
    29535bafb64b mtd: rawnand: fsl_ifc: check result of SRAM initialization
    6ae8c86ee458 mtd: rawnand: marvell: use regmap_update_bits() for syscon access
    6c7644ad22ae ARM: dts: meson8b: fix the clock controller register size
    e39779f6ea67 ARM: dts: meson8: fix the clock controller register size
    6da9a4a98215 net: phy: mscc: read 'vsc8531, edge-slowdown' as an u32
    77f9e263e296 net: phy: mscc: read 'vsc8531,vddmac' as an u32
    5dc1cbcff700 net/mlx5: Fix atomic_mode enum values
    b5f6d6de5b12 net: hns3: Change the dst mac addr of loopback packet
    f995b2efa439 net: hns3: Fix for loopback selftest failed problem
    d01caf35564c net: hns3: Fix error of checking used vlan id
    4aea8f76727e net: hns3: Fix for multicast failure
    e5f48f8eff66 ASoC: rsnd: ssi: Fix issue in dma data address assignment
    0b8e8bddc5c0 soc: imx: gpc: fix PDN delay
    7f88d806443f mt76: Fix comparisons with invalid hardware key index
    1f54ec5b3047 brcmfmac: fix wrong strnchr usage
    f05f8607622c mwifex: free rx_cmd skb in suspended state
    6c27b9267a84 mwifiex: do no submit URB in suspended state
    cd554b025c09 rtl8187: Fix warning generated when strncpy() destination length matches the sixe argument
    c495a8c78b50 ARM: dts: pxa: fix power i2c base address
    72e13203c56d ARM: dts: pxa: fix the rtc controller
    fe9048c7bb38 media: ov772x: Disable clk on error path
    b489c1e010e4 media: i2c: Fix pm_runtime_get_if_in_use() usage in sensor drivers
    5a21c7a0b592 media: vicodec: fix out-of-range values when decoding
    17743861edc7 iwlwifi: mvm: avoid sending too many BARs
    75de80e11e6b iwlwifi: don't WARN on trying to dump dead firmware
    ecedae02e89d iwlwifi: drop packets with bad status in CD
    02adbecf542e IB/rxe: fixes for rdma read retry
    cad889676bdb IB/rxe: avoid back-to-back retries
    ac0ab821c4d5 i40e: Prevent deleting MAC address from VF when set by PF
    712d35e0d2c1 i40evf: cancel workqueue sync for adminq when a VF is removed
    e5d3afbe3a5c i40e: hold the rtnl lock on clearing interrupt scheme
    f9a84bbd3ca6 i40evf: Don't enable vlan stripping when rx offload is turned on
    fe301cf64f7e i40e: Check and correct speed values for link on open
    8d7e6ab3b5d2 i40evf: set IFF_UNICAST_FLT flag for the VF
    015fc5251996 i40e: use correct length for strncpy
    a90fcbdb9b22 i40evf: Validate the number of queues a PF sends
    2da61f212f4d ARM: dts: exynos: Fix regulators configuration on Peach Pi/Pit Chromebooks
    d4e5c8aeb198 arm64: dts: stratix10: i2c clock running out of spec
    b0bac46b52a9 liquidio: fix race condition in instruction completion processing
    b2e427c268f3 ARM: dts: exynos: Fix sound in Snow-rev5 Chromebook
    0b53b56287ab ARM: dts: exynos: Fix HDMI-HPD line handling on Arndale
    0baa3fe5805e ARM: dts: exynos: Use i2c-gpio for HDMI-DDC on Arndale
    8e6acc5ee14d MIPS: BCM47XX: Enable USB power on Netgear WNDR3400v3
    7c68184fced7 pinctrl: ingenic: Probe driver at subsys_initcall
    8ddea21d4c0b ASoC: AMD: Change MCLK to 48Mhz
    bdb7368ac333 ASoC: meson: axg-fifo: report interrupt request failure
    aac9381b2ca8 ASoC: dpcm: Properly initialise hw->rate_max
    ac66c0c470a3 ASoC: dapm: Don't fail creating new DAPM control on NULL pinctrl
    d3a45d4d6f2d ice: Fix and update driver version string
    48b128cddb91 gfs2: Don't set GFS2_RDF_UPTODATE when the lvb is updated
    9ca72984d7c0 ice: Prevent control queue operations during reset
    a881088f512e ice: Update request resource command to latest specification
    f71230e6898e ath10k: limit available channels via DT ieee80211-freq-limit
    8cad5d80f8d0 wil6210: fix invalid memory access for rx_buff_mgmt debugfs
    bcaabaa75eeb wil6210: prevent usage of tx ring 0 for eDMA
    acf041edec0a wil6210: set edma variables only for Talyn-MB devices
    be039c973093 wil6210: drop Rx multicast packets that are looped-back to STA
    1b0581bf379f ath9k: fix tx99 with monitor mode interface
    a618e2069783 ath10k: skip resetting rx filter for WCN3990
    f7b2312c68a8 ALSA: seq: Do error checks at creating system ports
    c2f459d3340f cfg80211: Avoid regulatory restore when COUNTRY_IE_IGNORE is set
    d377d63a9228 extcon: cht-wc: Return from default case to avoid warnings
    7575a34ed101 remoteproc/davinci: Use %zx for formating size_t
    c2dca83e9e83 rtc: rv8803: fix the rv8803 id in the OF table
    5a408693b414 rtc: sysfs: fix NULL check in rtc_add_groups()
    a01d6a320440 ARM: dts: at91/trivial: Fix USART1 definition for at91sam9g45
    ea6a25cd2d41 ARM: dts: rcar: Correct SATA device sizes to 2 MiB
    32d3fe68d20e y2038: make do_gettimeofday() and get_seconds() inline
    5a830803b593 arm64: dts: tegra210-p2180: Correct sdmmc4 vqmmc-supply
    a124e7f2fecf soc/tegra: pmc: Fix pad voltage configuration for Tegra186
    90cfef191a30 ALSA: pcm: signedness bug in snd_pcm_plug_alloc()
    e84cb5882da6 arm64: dts: allwinner: a64: NanoPi-A64: Fix DCDC1 voltage
    3bbce894d52d arm64: dts: allwinner: a64: Olinuxino: fix DRAM voltage
    d304218f959e arm64: dts: allwinner: a64: Orange Pi Win: Fix SD card node
    030f6397eb89 soundwire: intel: Fix uninitialized adev deref
    4b4153b7d6af soundwire: Initialize completion for defer messages
    38d1ecc23e3e clk: sunxi-ng: h6: fix PWM gate/reset offset
    6c0fcc727ff0 iio: dac: mcp4922: fix error handling in mcp4922_write_raw
    f125d1831402 ath10k: fix kernel panic by moving pci flush after napi_disable
    75a600d7f062 tee: optee: take DT status property into account
    cd3de5870c80 iio: adc: max9611: explicitly cast gain_selectors
    a6bb63183de2 mmc: sdhci-of-at91: fix quirk2 overwrite
    b4bc6498c39b mm: hugetlb: switch to css_tryget() in hugetlb_cgroup_charge_cgroup()
    bb1bc2d8231c mm: memcg: switch to css_tryget() in get_mem_cgroup_from_mm()
    653d9e0c55bf mm: mempolicy: fix the wrong return value and potential pages leak of mbind
    5b1c342fc3e0 iommu/vt-d: Fix QI_DEV_IOTLB_PFSID and QI_DEV_EIOTLB_PFSID macros
    29dcbbb5ab0a net: ethernet: dwmac-sun8i: Use the correct function in exit path
    bdae2f7b2031 ecryptfs_lookup_interpose(): lower_dentry->d_parent is not stable either
    beb3860c2e0e ecryptfs_lookup_interpose(): lower_dentry->d_inode is not stable
    1a48aaabf1cd i2c: acpi: Force bus speed to 400KHz if a Silead touchscreen is present
    9ace24bba657 IB/hfi1: Use a common pad buffer for 9B and 16B packets
    6ec4a5498ee5 IB/hfi1: Ensure full Gen3 speed in a Gen4 system
    1f3bbf9f0adc Input: synaptics-rmi4 - destroy F54 poller workqueue when removing
    5c9fd709c5f5 Input: synaptics-rmi4 - clear IRQ enables for F54
    fbe9849f79aa Input: synaptics-rmi4 - do not consume more data than we have (F11, F12)
    924a8f2c745a Input: synaptics-rmi4 - disable the relative position IRQ in the F12 driver
    8e347aa4e04b Input: synaptics-rmi4 - fix video buffer size
    c02230815282 Input: ff-memless - kill timer in destroy()
    47d06a15f25a Btrfs: fix log context list corruption after rename exchange operation
    f2465526866a ALSA: usb-audio: Fix incorrect size check for processing/extension units
    420433f6cf5c ALSA: usb-audio: Fix incorrect NULL check in create_yamaha_midi_quirk()
    ab2ee4299b7e ALSA: usb-audio: not submit urb for stopped endpoint
    a2c763cd9609 ALSA: usb-audio: Fix missing error check at mixer resolution test
    edc471038b48 slip: Fix memory leak in slip_open error path
    4cd50a31ac9e net: usb: qmi_wwan: add support for Foxconn T77W968 LTE modules
    0a772b2ac696 net: gemini: add missed free_netdev
    66daa05750a9 ipmr: Fix skb headroom in ipmr_get_route().
    20beeb30083e ax88172a: fix information leak on short answers
    c4a0f567e652 scsi: core: Handle drivers which set sg_tablesize to zero
    81adf034d5d6 MIPS: BCM63XX: fix switch core reset on BCM6368
    dbf1ef2dc0d5 KVM: x86: introduce is_pae_paging

(From OE-Core rev: 7e944cca62851689f9ddf8a5308ee3331f763957)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
(cherry picked from commit 064811c18fe26c7d9bc84f86047325e25e2a1001)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:21 +00:00
Bruce Ashfield
3fdea86b0c linux-yocto/5.2: update to v5.2.24
Updating linux-yocto/5.2 to the latest korg -stable release that comprises
the following commits:

    67c4ef96da8e Linux 5.2.24
    b65008090e4e blk-rq-qos: fix first node deletion of rq_qos_del()
    660039a1505a opp: of: drop incorrect lockdep_assert_held()
    915ff97f555d PCI: PM: Fix pci_power_up()
    160278e4d967 xen/netback: fix error path of xenvif_connect_data()
    cb67e6c61f1b ceph: just skip unrecognized info in ceph_reply_info_extra
    216d0d68a639 cpufreq: Avoid cpufreq_suspend() deadlock on system shutdown
    e1f8c7185612 memstick: jmb38x_ms: Fix an error handling path in 'jmb38x_ms_probe()'
    2a25e88d19a9 KVM: PPC: Book3S HV: XIVE: Ensure VP isn't already in use
    83a4472477a0 btrfs: tracepoints: Fix bad entry members of qgroup events
    f861e5d90514 btrfs: tracepoints: Fix wrong parameter order for qgroup events
    e9ee3be6143d Btrfs: check for the full sync flag while holding the inode lock during fsync
    dea5fb68615d Btrfs: fix qgroup double free after failure to reserve metadata for delalloc
    e79a8938b3db btrfs: don't needlessly create extent-refs kernel thread
    ea54be3ae39e Btrfs: add missing extents release on file extent cluster relocation error
    350af44ebf89 btrfs: block-group: Fix a memory leak due to missing btrfs_put_block_group()
    2598b914d8e7 pinctrl: armada-37xx: swap polarity on LED group
    c2c5f397f100 pinctrl: armada-37xx: fix control of pins 32 and up
    e7592916ea17 pinctrl: cherryview: restore Strago DMI workaround for all versions
    d799e86fafb6 x86/hyperv: Make vapic support x2apic mode
    a1b5e414e2f0 x86/apic/x2apic: Fix a NULL pointer deref when handling a dying cpu
    753cf99522be x86/boot/64: Make level2_kernel_pgt pages invalid outside kernel area
    6112a6de4c94 irqchip/sifive-plic: Switch to fasteoi flow
    e0b798bf1f89 dm cache: fix bugs when a GFP_NOWAIT allocation fails
    01201d4129db fs/dax: Fix pmd vs pte conflict detection
    26b699f52cdd tracing: Fix race in perf_trace_buf initialization
    20c15650fac8 perf/aux: Fix AUX output stopping
    a4c470b4ce43 cifs: Fix missed free operations
    ef349a5dbe21 CIFS: avoid using MID 0xFFFF
    9153eea1aef9 EDAC/ghes: Fix Use after free in ghes_edac remove path
    2c05afe496d9 parisc: Fix vmap memory leak in ioremap()/iounmap()
    c422c3941ebd s390/kaslr: add support for R_390_GLOB_DAT relocation type
    4d81f7b538a9 s390/zcrypt: fix memleak at release
    b641f048fd85 xtensa: fix change_bit in exclusive access option
    63ef015fd0d6 xtensa: drop EXPORT_SYMBOL for outs*/ins*
    607aad67d79e zram: fix race between backing_dev_show and backing_dev_store
    fa13957c99d1 mm/memory-failure: poison read receives SIGKILL instead of SIGBUS if mmaped more than once
    ef506f2a8158 hugetlbfs: don't access uninitialized memmaps in pfn_range_valid_gigantic()
    9585141a3645 mm: memblock: do not enforce current limit for memblock_phys* family
    2da60e78efbf mm: memcg: get number of pages on the LRU list in memcgroup base on lru_zone_size
    1c72ac7b41e4 mm, compaction: fix wrong pfn handling in __reset_isolation_pfn()
    714213ef3a7a mm/page_owner: don't access uninitialized memmaps when reading /proc/pagetypeinfo
    5180116dff45 mm/slub: fix a deadlock in show_slab_objects()
    224b4490619c mm/memory-failure.c: don't access uninitialized memmaps in memory_failure()
    94d4f140cfb9 mmc: sdhci-omap: Fix Tuning procedure for temperatures < -20C
    a76022591624 mmc: cqhci: Commit descriptors before setting the doorbell
    ca380ac56424 mmc: mxs: fix flags passed to dmaengine_prep_slave_sg
    6bc5498c702e fs/proc/page.c: don't access uninitialized memmaps in fs/proc/page.c
    ff7e418c7e8e drivers/base/memory.c: don't access uninitialized memmaps in soft_offline_page_store()
    f364590d8ab4 drm/amdgpu/uvd7: fix allocation size in enc ring test (v2)
    363471d25d92 drm/amdgpu/uvd6: fix allocation size in enc ring test (v2)
    78bc8daa826d drm/amdgpu/vcn: fix allocation size in enc ring test
    edd872deff06 drm/amdgpu/vce: fix allocation size in enc ring test
    d1f35310fac2 drm/amdgpu: Bail earlier when amdgpu.cik_/si_support is not set to 1
    1f2551687ba9 drm/panfrost: Handle resetting on timeout better
    5c2e8711136e drm/ttm: Restore ttm prefaulting
    59a21feaf42c drm/edid: Add 6 bpc quirk for SDC panel in Lenovo G50
    180a1b6fef83 mac80211: Reject malformed SSID elements
    930b9ba2a46d iwlwifi: pcie: change qu with jf devices to use qu configuration
    de326ae7e864 ACPI: CPPC: Set pcc_data[pcc_ss_id] to NULL in acpi_cppc_processor_exit()
    136bd113a26a ASoC: rsnd: Reinitialize bit clock inversion flag for every format setting
    11861621576c Input: st1232 - fix reporting multitouch coordinates
    1ac8d0c02e34 Input: synaptics-rmi4 - avoid processing unknown IRQs
    0337cdfd1172 Input: da9063 - fix capability and drop KEY_SLEEP
    38d23aa7eaeb scsi: ch: Make it possible to open a ch device multiple times again
    ea6645c4fb39 scsi: core: try to get module before removing device
    77957d171255 scsi: core: save/restore command resid for error handling
    1feb8a7203f8 scsi: sd: Ignore a failure to sync cache due to lack of authorization
    9f1c82f12b62 scsi: zfcp: fix reaction on bit error threshold notification
    e8c96fb7e7f3 staging: kpc2000: fix integer overflow with left shifts
    529ca74d5730 staging: wlan-ng: fix exit return when sme->key_idx >= NUM_WEPKEYS
    5f65debeb6f6 MIPS: tlbex: Fix build_restore_pagemask KScratch restore
    0a496dac91ac binder: Don't modify VMA bounds in ->mmap handler
    b7a359f53d87 USB: ldusb: fix read info leaks
    72665117bd21 USB: ldusb: fix memleak on disconnect
    a93c0f8a448e USB: serial: ti_usb_3410_5052: fix port-close races
    e6c0a2973542 usb: udc: lpc32xx: fix bad bit shift operation
    609978137cc2 ALSA: usb-audio: Disable quirks for BOSS Katana amplifiers
    7ebfbd60d38b ALSA: hda/realtek - Enable headset mic on Asus MJ401TA
    33bac14d01de ALSA: hda/realtek - Add support for ALC711
    d46df68073e6 USB: legousbtower: fix memleak on disconnect
    7585815e0141 io_uring: fix bad inflight accounting for SETUP_IOPOLL|SETUP_SQTHREAD
    b0c129ccba46 rxrpc: use rcu protection while reading sk->sk_user_data
    5cfde84829d4 netdevsim: Fix error handling in nsim_fib_init and nsim_fib_exit
    b8ce2c4f92e3 net: phy: micrel: Update KSZ87xx PHY name
    61ece488ec6a net: phy: micrel: Discern KSZ8051 and KSZ8795 PHYs
    2e2eadc05885 net: aquantia: correctly handle macvlan and multicast coexistence
    10ebf6d7c7ab net: aquantia: do not pass lro session with invalid tcp checksum
    b48166bebe46 net: aquantia: when cleaning hw cache it should be toggled
    1d3a96408673 net: aquantia: temperature retrieval fix
    ef857690724a sctp: change sctp_prot .no_autobind with true
    8748438651fe sched: etf: Fix ordering of packets with same txtime
    502ead97c900 rxrpc: Fix possible NULL pointer access in ICMP handling
    0f0957b39c65 net: stmmac: disable/enable ptp_ref_clk in suspend/resume flow
    c96d1c298473 net: ipv6: fix listify ip6_rcv_finish in case of forwarding
    792dffb6c25f net/ibmvnic: Fix EOI when running in XIVE mode.
    1eff1ddb41d1 net: i82596: fix dma_alloc_attr for sni_82596
    789b5b2296d0 net: bcmgenet: Set phydev->dev_flags only for internal PHYs
    26b5aad017f8 net: bcmgenet: Fix RGMII_MODE_EN value for GENET v1/2/3
    39b4db2c205f net: avoid potential infinite loop in tc_ctl_action()
    f6e58b1a1237 ipv4: Return -ENETUNREACH if we can't create route but saddr is valid
    15136dd27a2a ipv4: fix race condition between route lookup and invalidation
    04a68067f471 nvme: change nvme_passthru_cmd64 to explicitly mark rsvd
    7e42a8fc20bc nvme-pci: Set the prp2 correctly when using more than 4k page
    f6a8d244495e ocfs2: fix panic due to ocfs2_wq is null
    dd9fa2a089de Revert "drm/radeon: Fix EEH during kexec"
    8129be7b7cf1 md/raid0: fix warning message for parameter default_layout
    8cf008b91833 libata/ahci: Fix PCS quirk application
    22d516a43782 net_sched: fix backward compatibility for TCA_ACT_KIND
    ba69d901e036 net_sched: fix backward compatibility for TCA_KIND
    b826ad4c7669 filldir[64]: remove WARN_ON_ONCE() for bad directory entries
    9df0c66d5143 uaccess: implement a proper unsafe_copy_to_user() and switch filldir over to it
    30043672b8e6 Make filldir[64]() verify the directory entry filename is valid
    2fcaa9a2e8c9 elf: don't use MAP_FIXED_NOREPLACE for elf executable mappings
    a9397425edf9 Convert filldir[64]() from __put_user() to unsafe_put_user()
    0c03d3d9a998 namespace: fix namespace.pl script to support relative paths
    e5df7c23ef1c net: phy: fix write to mii-ctrl1000 register
    e6378e134543 net: phy: allow for reset line to be tied to a sleepy GPIO controller
    3951482af0d5 r8152: Set macpassthru in reset_resume callback
    85e2c81d8964 s390/mm: fix -Wunused-but-set-variable warnings
    fbd0915567ea lib: textsearch: fix escapes in example code
    2cf2b8c86277 selftests: kvm: Fix libkvm build error
    54cccd9f3fd0 net: hisilicon: Fix usage of uninitialized variable in function mdio_sc_cfg_reg_write()
    8f634c4755d6 mips: Loongson: Fix the link time qualifier of 'serial_exit()'
    009d3d7135af drm/amd/display: memory leak
    d0d9f70beb32 drm/amdgpu: fix multiple memory leaks in acp_hw_init
    9cac23841d31 RISC-V: Clear load reservations while restoring hart contexts
    a1fffbb6cfd8 net: stmmac: Correctly take timestamp for PTPv2
    b115b9832dc2 net: dsa: rtl8366rb: add missing of_node_put after calling of_get_child_by_name
    45f3a8886a6a netfilter: nft_connlimit: disable bh on garbage collection
    420a015ed643 mac80211: fix txq null pointer dereference
    51340f3579a0 nl80211: fix null pointer dereference
    0e53662be2aa loop: change queue block size to match when using DIO
    0ce37f356397 xen/efi: Set nonblocking callbacks
    fe4b184d832e MIPS: dts: ar9331: fix interrupt-controller size
    fa7e74d07aaa net: dsa: qca8k: Use up to 7 ports for all operations
    12afa6d96de4 ARM: dts: am4372: Set memory bandwidth limit for DISPC
    c41a0bf4ba4d ieee802154: ca8210: prevent memory leak
    4cbc0b08406d nvme-rdma: fix possible use-after-free in connect timeout
    61c456e74461 nvme: allow 64-bit results in passthru commands
    e3e3c343b869 Added QUIRKs for ADATA XPG SX8200 Pro 512GB
    e3f58f778cee nvme: fix an error code in nvme_init_subsystem()
    902c726061a9 nvme-tcp: fix wrong stop condition in io_work
    9f1ce805b4fc ARM: OMAP2+: Fix warnings with broken omap2_set_init_voltage()
    64719bd78a0b ARM: OMAP2+: Add missing LCDC midlemode for am335x
    4b6e2a327e7c ARM: OMAP2+: Fix missing reset done flag for am3 and am43
    db825fd99455 ARM: dts: Fix gpio0 flags for am335x-icev2
    0e65dece86ca scsi: qla2xxx: Fix unbound sleep in fcport delete path.
    950b905e2cbe scsi: qla2xxx: Silence fwdump template message
    276ae12e3b8d scsi: megaraid: disable device when probe failed after enabled device
    e8d688a3f957 scsi: ufs: skip shutdown if hba is not powered
    a1318847f2d5 nvme-pci: Fix a race in controller removal
    f1f8bc4e1d87 ARM: dts: Fix wrong clocks for dra7 mcasp
    d1a356d53545 clk: ti: dra7: Fix mcasp8 clock bits
    6e16a5de5c09 drm: Clear the fence pointer when writeback job signaled
    5cc2a052ef35 RDMA/cxgb4: Do not dma memory off of the stack
    60f32e5e3ae6 usb: dwc3: pci: prevent memory leak in dwc3_pci_probe
    7a745fd3fdc5 ASoC: SOF: ipc: Fix memory leak in sof_set_get_large_ctrl_data
    240452393720 net: dsa: sja1105: Prevent leaking memory
    c9ed1ddd76de iwlwifi: pcie: fix memory leaks in iwl_pcie_ctxt_info_gen3_init

(From OE-Core rev: 5412b2065a46f6e70fc5f9eb5d5fb79c4efbb4cf)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
(cherry picked from commit c54b02ab238fe7682a0beac2f2afeb418406dd48)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:21 +00:00
Bruce Ashfield
206d42923f linux-yocto/4.19: update to v4.19.84
Updating linux-yocto/4.19 to the latest korg -stable release that comprises
the following commits:

    c555efaf1402 Linux 4.19.84
    46a4a014c48e kvm: x86: mmu: Recovery of shattered NX large pages
    6082f2e28887 kvm: Add helper function for creating VM worker threads
    5219505fcbb6 kvm: mmu: ITLB_MULTIHIT mitigation
    db77548b1652 KVM: vmx, svm: always run with EFER.NXE=1 when shadow paging is active
    37dfbc8ba763 KVM: x86: add tracepoints around __direct_map and FNAME(fetch)
    9ef1fae24d58 KVM: x86: change kvm_mmu_page_get_gfn BUG_ON to WARN_ON
    b182093d1c70 KVM: x86: remove now unneeded hugepage gfn adjustment
    e79234ce5765 KVM: x86: make FNAME(fetch) and __direct_map more similar
    8aaac3068623 kvm: mmu: Do not release the page inside mmu_set_spte()
    30d8d8d6cd92 kvm: Convert kvm_lock to a mutex
    a991063ce576 kvm: x86, powerpc: do not allow clearing largepages debugfs entry
    580c79e7e3e5 Documentation: Add ITLB_MULTIHIT documentation
    db5ae6596ae2 cpu/speculation: Uninline and export CPU mitigations helpers
    955607466ace x86/cpu: Add Tremont to the cpu vulnerability whitelist
    f9aa6b73a407 x86/bugs: Add ITLB_MULTIHIT bug infrastructure
    415bb221a070 x86/speculation/taa: Fix printing of TAA_MSG_SMT on IBRS_ALL CPUs
    4ad7466ddf2d x86/tsx: Add config options to set tsx=on|off|auto
    e3bf6b3ff55a x86/speculation/taa: Add documentation for TSX Async Abort
    2402432d5557 x86/tsx: Add "auto" option to the tsx= cmdline parameter
    a0808f06dfa1 kvm/x86: Export MDS_NO=0 to guests when TSX is enabled
    15dfa5d706df x86/speculation/taa: Add sysfs reporting for TSX Async Abort
    6c58ea8525bf x86/speculation/taa: Add mitigation for TSX Async Abort
    b8eb348ae408 x86/cpu: Add a "tsx=" cmdline option with TSX disabled by default
    37cf9ef900cc x86/cpu: Add a helper function x86_read_arch_cap_msr()
    4002d16a2ae1 x86/msr: Add the IA32_TSX_CTRL MSR
    dbf38b17a892 KVM: x86: use Intel speculation bugs and features as derived in generic x86 code
    fee619bb8136 drm/i915/cmdparser: Fix jump whitelist clearing
    255ed51599de drm/i915/gen8+: Add RC6 CTX corruption WA
    011b7173cbdb drm/i915: Lower RM timeout to avoid DSI hard hangs
    a7bda639a17f drm/i915/cmdparser: Ignore Length operands during command matching
    6e53c71a6913 drm/i915/cmdparser: Add support for backward jumps
    f27bc2b5950d drm/i915/cmdparser: Use explicit goto for error paths
    cdd77c6b4be4 drm/i915: Add gen9 BCS cmdparsing
    fea688c5dd81 drm/i915: Allow parsing of unsized batches
    7ce726b61c57 drm/i915: Support ro ppgtt mapped cmdparser shadow buffers
    fc3510fe6f6b drm/i915: Add support for mandatory cmdparsing
    fba4207cf15e drm/i915: Remove Master tables from cmdparser
    f1ff77080fa1 drm/i915: Disable Secure Batches for gen6+
    b4b1abdc6b18 drm/i915: Rename gen7 cmdparser tables
    e238e05ec2dc vsock/virtio: fix sock refcnt holding during the shutdown
    2e7e3f16901d iio: imu: mpu6050: Fix FIFO layout for ICM20602
    99ea48af7bd9 net: prevent load/store tearing on sk->sk_stamp
    d32629dcd1e5 netfilter: ipset: Copy the right MAC address in hash:ip,mac IPv6 sets
    5833560d54fd usbip: Fix free of unallocated memory in vhci tx
    6890b4bc3d2b cgroup,writeback: don't switch wbs immediately on dead wbs if the memcg is dead
    d3b3c0a14615 mm/filemap.c: don't initiate writeback if mapping has no dirty pages
    285eb6af4351 iio: imu: inv_mpu6050: fix no data on MPU6050
    d888a80727ab iio: imu: mpu6050: Add support for the ICM 20602 IMU
    522128128dec blkcg: make blkcg_print_stat() print stats only for online blkgs
    30b969392cf2 pinctrl: cherryview: Fix irq_valid_mask calculation
    ca79bb7e1168 ocfs2: protect extent tree in ocfs2_prepare_inode_for_write()
    2c655a111968 pinctrl: intel: Avoid potential glitches if pin is in GPIO mode
    713adf6dd327 e1000: fix memory leaks
    4a05571772cc igb: Fix constant media auto sense switching when no cable is connected
    1baab8352d80 net: ethernet: arc: add the missed clk_disable_unprepare
    24523745ed41 NFSv4: Don't allow a cached open with a revoked delegation
    440a748ed6df usb: dwc3: gadget: fix race when disabling ep with cancelled xfers
    e66f52eb3f29 hv_netvsc: Fix error handling in netvsc_attach()
    99d5f18cebbf drm/amd/display: Passive DP->HDMI dongle detection fix
    e5edbf9c45ce drm/amdgpu: If amdgpu_ib_schedule fails return back the error.
    b651ddc15e7a iommu/amd: Apply the same IVRS IOAPIC workaround to Acer Aspire A315-41
    214e4f0ecdd1 net: mscc: ocelot: refuse to overwrite the port's native vlan
    5aedcc8aa8be net: mscc: ocelot: fix vlan_filtering when enslaving to bridge before link is up
    3b956e63e2f3 net: hisilicon: Fix "Trying to free already-free IRQ"
    f09b99c883e8 fjes: Handle workqueue allocation failure
    6376736d016f nvme-multipath: fix possible io hang after ctrl reconnect
    1372527e6876 scsi: qla2xxx: stop timer in shutdown path
    f2bab3ed456c RDMA/hns: Prevent memory leaks of eq->buf_list
    55ca08347487 RDMA/iw_cxgb4: Avoid freeing skb twice in arp failure case
    e36be7959326 usbip: tools: Fix read_usb_vudc_device() error path handling
    cd9561a53d26 USB: ldusb: use unsigned size format specifiers
    c753113ae714 USB: Skip endpoints with 0 maxpacket length
    ef38f4d123d0 perf/x86/uncore: Fix event group support
    f14751658a01 perf/x86/amd/ibs: Handle erratum #420 only on the affected CPU family (10h)
    5b99e97b275a perf/x86/amd/ibs: Fix reading of the IBS OpData register and thus precise RIP validity
    45944c4a7743 usb: dwc3: remove the call trace of USBx_GFLADJ
    dff38149cec4 usb: gadget: configfs: fix concurrent issue between composite APIs
    10eb9abd21ba usb: dwc3: pci: prevent memory leak in dwc3_pci_probe
    c73ccf65e169 usb: gadget: composite: Fix possible double free memory bug
    26d31e1c3ab2 usb: gadget: udc: atmel: Fix interrupt storm in FIFO mode.
    88912019b49c usb: fsl: Check memory resource before releasing it
    3a2675a2d97a macsec: fix refcnt leak in module exit routine
    0d0ca85ad424 bonding: fix unexpected IFF_BONDING bit unset
    50e31318b525 ipvs: move old_secure_tcp into struct netns_ipvs
    102f4078fbdd ipvs: don't ignore errors in case refcounting ip_vs module fails
    81de0b500baa netfilter: nf_flow_table: set timeout before insertion into hashes
    d45fc2ed472b scsi: qla2xxx: Initialized mailbox to prevent driver load failure
    b6612a3dbad8 scsi: lpfc: Honor module parameter lpfc_use_adisc
    4e80e5614770 net: openvswitch: free vport unless register_netdevice() succeeds
    027253315d70 RDMA/uverbs: Prevent potential underflow
    d582769add68 scsi: qla2xxx: fixup incorrect usage of host_byte
    42de3a902443 net/mlx5: prevent memory leak in mlx5_fpga_conn_create_cq
    7dfdcd9407f3 net/mlx5e: TX, Fix consumer index of error cqe dump
    48dd71289ca3 RDMA/qedr: Fix reported firmware version
    6208c2bfe224 iw_cxgb4: fix ECN check on the passive accept
    89aa9e2626f4 RDMA/mlx5: Clear old rate limit when closing QP
    d6706b2ec108 HID: intel-ish-hid: fix wrong error handling in ishtp_cl_alloc_tx_ring()
    113a154ef2f2 dmaengine: sprd: Fix the possible memory leak issue
    6040f96d5147 dmaengine: xilinx_dma: Fix control reg update in vdma_channel_set_config
    78e7e0248eb8 HID: google: add magnemite/masterball USB ids
    8181146cd7de PCI: tegra: Enable Relaxed Ordering only for Tegra20 & Tegra30
    e2dd254bde5c usbip: Implement SG support to vhci-hcd and stub driver
    f865ae473c16 usbip: Fix vhci_urb_enqueue() URB null transfer buffer error path
    e9c0fc4a7ccd sched/fair: Fix -Wunused-but-set-variable warnings
    502bd151448c sched/fair: Fix low cpu usage with high throttling by removing expiration of cpu-local slices
    4ebee4875eab ALSA: usb-audio: Fix copy&paste error in the validator
    e0051889243d ALSA: usb-audio: remove some dead code
    4f6c52002699 ALSA: usb-audio: Fix possible NULL dereference at create_yamaha_midi_quirk()
    3a0cdf210b94 ALSA: usb-audio: Clean up check_input_term()
    9feeaa50e5b4 ALSA: usb-audio: Remove superfluous bLength checks
    f0e164f66e75 ALSA: usb-audio: Unify the release of usb_mixer_elem_info objects
    dae4d839e549 ALSA: usb-audio: Simplify parse_audio_unit()
    17821e2fb167 ALSA: usb-audio: More validations of descriptor units
    5e36cf8edb58 configfs: fix a deadlock in configfs_symlink()
    0dfc45be875a configfs: provide exclusion between IO and removals
    25c118d8d158 configfs: new object reprsenting tree fragments
    65524d647e9d configfs_register_group() shouldn't be (and isn't) called in rmdirable parts
    2bd63490c1dd configfs: stash the data we need into configfs_buffer at open time
    a7be2debb769 can: peak_usb: fix slab info leak
    ce9b94da0e04 can: mcba_usb: fix use-after-free on disconnect
    5a9e37f2029f can: dev: add missing of_node_put() after calling of_get_child_by_name()
    9289226f6982 can: gs_usb: gs_can_open(): prevent memory leak
    9f5c59428843 can: rx-offload: can_rx_offload_queue_sorted(): fix error handling, avoid skb mem leak
    ef502d5a84d6 can: peak_usb: fix a potential out-of-sync while decoding packets
    7ae08111ca70 can: c_can: c_can_poll(): only read status register after status IRQ
    0327c7818da2 can: flexcan: disable completely the ECC mechanism
    46265660e5ba can: usb_8dev: fix use-after-free on disconnect
    d8a76e300e37 SMB3: Fix persistent handles reconnect
    caddaf43b024 x86/apic/32: Avoid bogus LDR warnings
    dc1a91dc4917 intel_th: pci: Add Jasper Lake PCH support
    f9d3aea1dca2 intel_th: pci: Add Comet Lake PCH support
    64997ee49c8c netfilter: ipset: Fix an error code in ip_set_sockfn_get()
    1b0e60f6a48b netfilter: nf_tables: Align nft_expr private data to 64-bit
    2dae80b5b666 ARM: sunxi: Fix CPU powerdown on A83T
    20b9e094dcd3 iio: srf04: fix wrong limitation in distance measuring
    bee45b44b13e iio: imu: adis16480: make sure provided frequency is positive
    a428996147e2 iio: adc: stm32-adc: fix stopping dma
    78a1d6cdd302 ceph: add missing check in d_revalidate snapdir handling
    6f9657793a6e ceph: fix use-after-free in __ceph_remove_cap()
    3840610d60b2 arm64: Do not mask out PTE_RDONLY in pte_same()
    56f270a1d72c soundwire: bus: set initial value to port_status
    9a06efc745c3 soundwire: depend on ACPI
    a81a4637456b HID: wacom: generic: Treat serial number and related fields as unsigned
    e3fdd0c1a3d0 drm/radeon: fix si_enable_smc_cac() failed issue
    f39fbd05f921 perf tools: Fix time sorting
    66d53cd683a8 tools: gpio: Use !building_out_of_srctree to determine srctree
    8e358a027611 dump_stack: avoid the livelock of the dump_lock
    6c944fc51f0a mm, vmstat: hide /proc/pagetypeinfo from normal users
    2686f71fdcc5 mm: thp: handle page cache THP correctly in PageTransCompoundMap
    7dfa51beacac mm, meminit: recalculate pcpu batch and high limits after init completes
    8e6bf4bc3a88 mm: memcontrol: fix network errors from failing __GFP_ATOMIC charges
    6ecc16351a84 ALSA: hda/ca0132 - Fix possible workqueue stall
    6921b1609912 ALSA: bebob: fix to detect configured source of sampling clock for Focusrite Saffire Pro i/o series
    b85472244b70 ALSA: timer: Fix incorrectly assigned timer instance
    107451b87ea5 net: hns: Fix the stray netpoll locks causing deadlock in NAPI path
    26e398dcb3f1 ipv6: fixes rt6_probe() and fib6_nh->last_probe init
    05b761423d67 net: mscc: ocelot: fix NULL pointer on LAG slave removal
    1cfc967ef584 net: mscc: ocelot: don't handle netdev events for other netdevs
    a6fdbaeef1f2 qede: fix NULL pointer deref in __qede_remove()
    956b38853517 NFC: st21nfca: fix double free
    1143496c9632 nfc: netlink: fix double device reference drop
    760a1f7f22ee NFC: fdp: fix incorrect free object
    5580091ce7d9 net: usb: qmi_wwan: add support for DW5821e with eSIM support
    4fd218071f21 net: qualcomm: rmnet: Fix potential UAF when unregistering
    b9bda52f8f3e net: fix data-race in neigh_event_send()
    2fbfdb2de4a1 net: ethernet: octeon_mgmt: Account for second possible VLAN header
    88f8c39912bc ipv4: Fix table id reference in fib_sync_down_addr
    0ddabef89067 CDC-NCM: handle incomplete transfer of MTU
    27b5f4bf5ba9 bonding: fix state transition issue in link monitoring
    7d8dbefc22ff Linux 4.19.83
    818c96ac80be usb: gadget: udc: core: Fix segfault if udc_bind_to_driver() for pending driver fails
    b06f37eaa2b3 arm64: dts: ti: k3-am65-main: Fix gic-its node unit-address
    54ee5ccd0251 ASoC: pcm3168a: The codec does not support S32_LE
    3ddf2a70cf6d selftests/powerpc: Fix compile error on tlbie_test due to newer gcc
    e7aaa8dd60c5 selftests/powerpc: Add test case for tlbie vs mtpidr ordering issue
    ec199b24aa5c powerpc/mm: Fixup tlbie vs mtpidr/mtlpidr ordering issue on POWER9
    06e8438eddf8 platform/x86: pmc_atom: Add Siemens SIMATIC IPC227E to critclk_systems DMI table
    2d830cf287a5 wireless: Skip directory when generating certificates
    558d2bdad5f6 net/flow_dissector: switch to siphash
    f6ef35998fb0 r8152: add device id for Lenovo ThinkPad USB-C Dock Gen 2
    c33f7efec3b3 net: dsa: fix switch tree list
    6b5bf3f37f72 net: usb: lan78xx: Connect PHY before registering MAC
    07c62fc7bf28 net: bcmgenet: reset 40nm EPHY on energy detect
    6d3ccc2a5b19 net: phy: bcm7xxx: define soft_reset for 40nm EPHY
    97cc6827f418 net: bcmgenet: don't set phydev->link from MAC
    57e286f67554 net: dsa: b53: Do not clear existing mirrored port mask
    db91be8e27c8 net/mlx5e: Fix ethtool self test: link speed
    5eb1967bfde3 r8169: fix wrong PHY ID issue with RTL8168dp
    9e7c4fa275cf net/mlx5e: Fix handling of compressed CQEs in case of low NAPI budget
    0c3355cc8e19 selftests: fib_tests: add more tests for metric update
    b166e8838a97 ipv4: fix route update on metric change.
    cd3bcb44ee3b net: add READ_ONCE() annotation in __skb_wait_for_more_packets()
    4f3df7f1eaa7 net: use skb_queue_empty_lockless() in busy poll contexts
    eaf548feaa17 net: use skb_queue_empty_lockless() in poll() handlers
    afa1f5e98c11 udp: use skb_queue_empty_lockless()
    d5ac4232c376 net: add skb_queue_empty_lockless()
    83532eb48049 vxlan: check tun_info options_len properly
    a8a5adbbf779 udp: fix data-race in udp_set_dev_scratch()
    12fab1634ab1 selftests: net: reuseport_dualstack: fix uninitalized parameter
    321c99155f4b net: Zeroing the structure ethtool_wolinfo in ethtool_get_wol()
    9da271c1cdc1 net: usb: lan78xx: Disable interrupts before calling generic_handle_irq()
    40400fdd312a netns: fix GFP flags in rtnl_net_notifyid()
    1d72dbb4ca2f net/mlx4_core: Dynamically set guaranteed amount of counters per VF
    f05975d9f393 net: hisilicon: Fix ping latency when deal with high throughput
    1d5cb12a2539 net: fix sk_page_frag() recursion from memory reclaim
    189982d111c0 net: ethernet: ftgmac100: Fix DMA coherency issue with SW checksum
    5536fc891221 net: dsa: bcm_sf2: Fix IMP setup for port different than 8
    2c50a36d0b78 net: annotate lockless accesses to sk->sk_napi_id
    0cfaf03c5d58 net: annotate accesses to sk->sk_incoming_cpu
    07de738901d6 inet: stop leaking jiffies on the wire
    163901dc945b erspan: fix the tun_info options_len check for erspan
    96df1ec22b97 dccp: do not leak jiffies on the wire
    f291613ff140 cxgb4: fix panic when attaching to ULD fail
    1f032ca298dd nbd: handle racing with error'ed out commands
    82b7c99ee141 nbd: protect cmd->status with cmd->lock
    80b42f4381c2 cifs: Fix cifsInodeInfo lock_sem deadlock when reconnect occurs
    a7448991fa3e i2c: stm32f7: remove warning when compiling with W=1
    86fd9e339ab4 i2c: stm32f7: fix a race in slave mode with arbitration loss irq
    d746ce649556 i2c: stm32f7: fix first byte to send in slave mode
    18e7fae372a1 irqchip/gic-v3-its: Use the exact ITSList for VMOVP
    39637aafa173 MIPS: bmips: mark exception vectors as char arrays
    fcc3f7c810c3 of: unittest: fix memory leak in unittest_data_add
    c56b9da70d09 ARM: 8926/1: v7m: remove register save to stack before svc
    fa18f803d1f7 tracing: Fix "gfp_t" format for synthetic events
    63571a1f375e scsi: target: core: Do not overwrite CDB byte 1
    1df8da335d40 drm/amdgpu: fix potential VM faults
    3cd2b6492cde ARM: davinci: dm365: Fix McBSP dma_slave_map entry
    e18bf407ea3f perf kmem: Fix memory leak in compact_gfp_flags()
    05dd6283b8fc 8250-men-mcb: fix error checking when get_num_ports returns -ENODEV
    81809424cad7 perf c2c: Fix memory leak in build_cl_output()
    7a79420034e0 ARM: dts: imx7s: Correct GPT's ipg clock source
    e601e103cfed scsi: fix kconfig dependency warning related to 53C700_LE_ON_BE
    3dd0be3eeeb0 scsi: sni_53c710: fix compilation error
    cf372c60ed13 scsi: scsi_dh_alua: handle RTPG sense code correctly during state transitions
    3ee6a8bdae81 scsi: qla2xxx: fix a potential NULL pointer dereference
    9d27ba401eca ARM: mm: fix alignment handler faults under memory pressure
    f0eabc9e9acb pinctrl: ns2: Fix off by one bugs in ns2_pinmux_enable()
    9a5d5ffb3245 ARM: dts: logicpd-torpedo-som: Remove twl_keypad
    d7e2a8e271aa ASoc: rockchip: i2s: Fix RPM imbalance
    513474f59001 ASoC: wm_adsp: Don't generate kcontrols without READ flags
    bab5c14b5c89 regulator: pfuze100-regulator: Variable "val" in pfuze100_regulator_probe() could be uninitialized
    6ef17b446081 ASoC: rt5682: add NULL handler to set_jack function
    772c18df9f3d regulator: ti-abb: Fix timeout in ti_abb_wait_txdone/ti_abb_clear_all_txdone
    c4c0e64deb9a arm64: dts: Fix gpio to pinmux mapping
    0d3aef1ea7e8 arm64: dts: allwinner: a64: sopine-baseboard: Add PHY regulator delay
    a3a208ac4608 arm64: dts: allwinner: a64: pine64-plus: Add PHY regulator delay
    dc24ac36f304 ASoC: wm8994: Do not register inapplicable controls for WM1811
    0f037d0a62b0 regulator: of: fix suspend-min/max-voltage parsing
    b17eae5a0e16 kbuild: add -fcf-protection=none when using retpoline flags
    5ee93551c703 Linux 4.19.82
    914a7d429da5 Revert "ALSA: hda: Flush interrupts on disabling"
    8f5603029223 powerpc/powernv: Fix CPU idle to be called with IRQs disabled
    92930e922399 ALSA: usb-audio: Add DSD support for Gustard U16/X26 USB Interface
    c08182dbf057 ALSA: usb-audio: Update DSD support quirks for Oppo and Rotel
    d8808d2e79b5 ALSA: usb-audio: DSD auto-detection for Playback Designs
    831317430693 ALSA: timer: Fix mutex deadlock at releasing card
    145fadf6d99a ALSA: timer: Simplify error path in snd_timer_open()
    a6c91087f5d5 sch_netem: fix rcu splat in netem_enqueue()
    3ecf8529d52a net: usb: sr9800: fix uninitialized local variable
    14a703ef2dc4 bonding: fix potential NULL deref in bond_update_slave_arr
    24aaf7f4528f NFC: pn533: fix use-after-free and memleaks
    8d9c4a9b8677 rxrpc: Fix trace-after-put looking at the put peer record
    e8e51ce79c15 rxrpc: rxrpc_peer needs to hold a ref on the rxrpc_local record
    570ab0dd35f9 rxrpc: Fix call ref leak
    d634bd01b3a0 llc: fix sk_buff leak in llc_conn_service()
    3f3f7409f028 llc: fix sk_buff leak in llc_sap_state_process()
    948e8eba656f batman-adv: Avoid free/alloc race when handling OGM buffer
    74001646d47c NFS: Fix an RCU lock leak in nfs4_refresh_delegation_stateid()
    fd9a708c7bde drm/amdgpu/powerplay/vega10: allow undervolting in p7
    3e285a5c1401 dmaengine: cppi41: Fix cppi41_dma_prep_slave_sg() when idle
    a0e406be17e5 dmaengine: qcom: bam_dma: Fix resource leak
    64efcbc7a5a3 rtlwifi: Fix potential overflow on P2P code
    a81669161528 arm64: Ensure VM_WRITE|VM_SHARED ptes are clean by default
    8dd6066066a2 s390/idle: fix cpu idle time calculation
    ced8cb0230d0 s390/cmm: fix information leak in cmm_timeout_handler()
    be87ee689106 nl80211: fix validation of mesh path nexthop
    14e0dd84db60 HID: fix error message in hid_open_report()
    8a01c4b908cf HID: Fix assumption that devices have inputs
    cf143d65c556 HID: i2c-hid: add Trekstor Primebook C11B to descriptor override
    6608702bec70 scsi: target: cxgbit: Fix cxgbit_fw4_ack()
    45e7acdff38e USB: serial: whiteheat: fix line-speed endianness
    b7ad5aa67058 USB: serial: whiteheat: fix potential slab corruption
    36e02e1fba89 usb: xhci: fix __le32/__le64 accessors in debugfs code
    8e2cccd6c5d1 USB: ldusb: fix control-message timeout
    3f1a7d903b8d USB: ldusb: fix ring-buffer locking
    f1b94b60bb1c usb-storage: Revert commit 747668dbc061 ("usb-storage: Set virt_boundary_mask to avoid SG overflows")
    d1c188d330ca USB: gadget: Reject endpoints with 0 maxpacket value
    ceb6b658f0bd UAS: Revert commit 3ae62a42090f ("UAS: fix alignment of scatter/gather segments")
    a58cdc35d3a0 ALSA: hda/realtek - Add support for ALC623
    101bb262ba43 ALSA: hda/realtek - Fix 2 front mics of codec 0x623
    3ae205d7a0a2 ALSA: bebob: Fix prototype of helper function to return negative value
    62e42369de37 fuse: truncate pending writes on O_TRUNC
    72c913fdde9d fuse: flush dirty data/metadata before non-truncate setattr
    696da0225946 ath6kl: fix a NULL-ptr-deref bug in ath6kl_usb_alloc_urb_from_pipe()
    1a124f16b594 thunderbolt: Use 32-bit writes when writing ring producer/consumer
    f2cc221b6515 USB: legousbtower: fix a signedness bug in tower_probe()
    083322455c67 nbd: verify socket is supported during setup
    e0064f8de3f5 iwlwifi: exclude GEO SAR support for 3168
    5a445f805afc ALSA: hda/realtek: Reduce the Headphone static noise on XPS 9350/9360
    ce005e5d6e9f ARM: 8914/1: NOMMU: Fix exc_ret for XIP
    394c90d9ce13 tracing: Initialize iter->seq after zeroing in tracing_read_pipe()
    12e132664f92 s390/uaccess: avoid (false positive) compiler warnings
    da24be886ff6 NFSv4: Fix leak of clp->cl_acceptor string
    cad4448dfc9c nbd: fix possible sysfs duplicate warning
    c2ea451f22f1 virt: vbox: fix memory leak in hgcm_call_preprocess_linaddr
    5865397db6c3 MIPS: fw: sni: Fix out of bounds init of o32 stack
    317b6f68abb1 MIPS: include: Mark __xchg as __always_inline
    4a4206a83fc6 iio: imu: adis16400: release allocated memory on failure
    f2824a020746 drm/amdgpu: fix memory leak
    a1112c465593 perf/x86/amd: Change/fix NMI latency mitigation to use a timestamp
    2cd003a820fe sched/vtime: Fix guest/system mis-accounting on task switch
    58d33d4a4a1d x86/cpu: Add Comet Lake to the Intel CPU models header
    6258745b311b arm64: armv8_deprecated: Checking return value for memory allocation
    c3689876f5b9 fs: ocfs2: fix a possible null-pointer dereference in ocfs2_info_scan_inode_alloc()
    4de544b42c7a fs: ocfs2: fix a possible null-pointer dereference in ocfs2_write_end_nolock()
    c18d86047622 fs: ocfs2: fix possible null-pointer dereferences in ocfs2_xa_prepare_entry()
    2141f777e6e1 ocfs2: clear zero in unaligned direct IO
    af140367ae66 x86/xen: Return from panic notifier
    0169198631e7 MIPS: include: Mark __cmpxchg as __always_inline
    9b7591cf6cf6 efi/x86: Do not clean dummy variable in kexec path
    318885aa154d efi/cper: Fix endianness of PCIe class code
    02c1fb11b6a0 serial: mctrl_gpio: Check for NULL pointer
    497fd98a50b2 fs: cifs: mute -Wunused-const-variable message
    579249a08348 gpio: max77620: Use correct unit for debounce times
    7f3306a3b2df tty: n_hdlc: fix build on SPARC
    14a4689f8847 tty: serial: owl: Fix the link time qualifier of 'owl_uart_exit()'
    d21a5d4a7339 arm64: ftrace: Ensure synchronisation in PLT setup for Neoverse-N1 #1542419
    ca2cc4b47d01 nfs: Fix nfsi->nrequests count error on nfs_inode_remove_request
    aeb242943505 HID: hyperv: Use in-place iterator API in the channel callback
    9c75c230ded2 RDMA/iwcm: Fix a lock inversion issue
    962cff4f3f89 RDMA/hfi1: Prevent memory leak in sdma_init
    dfc1daba843b staging: rtl8188eu: fix null dereference when kzalloc fails
    3545c018d0c3 perf annotate: Return appropriate error code for allocation failures
    f8304a9310c3 perf annotate: Propagate the symbol__annotate() error return
    4e2ca0c9143c perf annotate: Fix the signedness of failure returns
    ec783e28e72d perf annotate: Propagate perf_env__arch() error
    f0ba7ab26bfc perf tools: Propagate get_cpuid() error
    c022c7f6171e perf jevents: Fix period for Intel fixed counters
    5ecf35ed5d17 perf script brstackinsn: Fix recovery from LBR/binary mismatch
    262ed71096ba perf map: Fix overlapped map handling
    d975e5970965 perf tests: Avoid raising SEGV using an obvious NULL dereference
    e3dc77d662ca libsubcmd: Make _FORTIFY_SOURCE defines dependent on the feature
    915eb63dac7b iio: fix center temperature of bmc150-accel-core
    78e6415d4f9a iio: adc: meson_saradc: Fix memory allocation order
    1b6901f3c600 power: supply: max14656: fix potential use-after-free
    a0d8a590d983 drm/amd/display: fix odm combine pipe reset
    a897f54e921c PCI/PME: Fix possible use-after-free on remove
    0e23eeb0fc58 net: dsa: mv88e6xxx: Release lock while requesting IRQ
    646e5c77b418 exec: load_script: Do not exec truncated interpreter path
    f251c83d6c08 ext4: disallow files with EXT4_JOURNAL_DATA_FL from EXT4_IOC_SWAP_BOOT
    cc4d8283f6e9 media: vimc: Remove unused but set variables
    c629fed0347e ALSA: hda/realtek - Apply ALC294 hp init also for S4 resume
    b73132b74d25 cifs: add credits from unmatched responses/messages
    ee4d28a716e8 CIFS: Respect SMB2 hdr preamble size in read responses
    2a2022688a91 scsi: lpfc: Correct localport timeout duration error
    1df87fc5e468 mlxsw: spectrum: Set LAG port collector only when active
    e32271519bb9 arm64: kpti: Whitelist HiSilicon Taishan v110 CPUs
    6021dd86ca38 arm64: Add MIDR encoding for HiSilicon Taishan CPUs
    9190141529fb rtc: pcf8523: set xtal load capacitance from DT
    961ba81d08d8 usb: handle warm-reset port requests on hub resume
    3a77562e18bf ALSA: usb-audio: Cleanup DSD whitelist
    a0608eec296d usb: dwc3: gadget: clear DWC3_EP_TRANSFER_STARTED on cmd complete
    d0e8b35e915e usb: dwc3: gadget: early giveback if End Transfer already completed
    335d4f818246 samples: bpf: fix: seg fault with NULL pointer arg
    c41f30e8d233 HID: steam: fix deadlock with input devices.
    4c8ae7221bcc HID: steam: fix boot loop with bluetooth firmware
    ce05beb3b402 NFSv4: Ensure that the state manager exits the loop on SIGKILL
    952b0285826e HID: Add ASUS T100CHI keyboard dock battery quirks
    24ec7c1b9b17 staging: mt7621-pinctrl: use pinconf-generic for 'dt_node_to_map' and 'dt_free_map'
    b064e272023c scripts/setlocalversion: Improve -dirty check with git-status --no-optional-locks
    9aafa2996921 clk: boston: unregister clks on failure in clk_boston_setup()
    1ba6488775f1 ath10k: assign 'n_cipher_suites = 11' for WCN3990 to enable WPA3
    a6af54d4ad0d platform/x86: Fix config space access for intel_atomisp2_pm
    8694ceba9338 platform/x86: Add the VLV ISP PCI ID to atomisp2_pm
    8c1b1d3c7593 HID: i2c-hid: Add Odys Winbook 13 to descriptor override
    3db3961160f6 HID: i2c-hid: Ignore input report if there's no data present on Elan touchpanels
    e0bcac994ad8 HID: i2c-hid: Disable runtime PM for LG touchscreen
    d8187ff32b23 netfilter: ipset: Make invalid MAC address checks consistent
    cb38a17cc880 Btrfs: fix deadlock on tree root leaf when finding free extent
    33970cf511c8 PCI: Fix Switchtec DMA aliasing quirk dmesg noise
    437de04184bc bcache: fix input overflow to writeback_rate_minimum
    be488566ef2f drm/msm/dpu: handle failures while initializing displays
    b5b3bb03c372 x86/cpu: Add Atom Tremont (Jacobsville)
    ab0888699734 tools/power turbostat: fix goldmont C-state limit decoding
    4da8b5f8a71d usb: dwc2: fix unbalanced use of external vbus-supply
    649ee6f0c677 HID: i2c-hid: add Direkt-Tek DTLAPY133-1 to descriptor override
    ce43554395a3 f2fs: fix to recover inode->i_flags of inode block during POR
    b619de076f9c f2fs: fix to recover inode's i_gc_failures during POR
    23848022460f powerpc/powernv: hold device_hotplug_lock when calling memtrace_offline_pages()
    bff91a961a05 sc16is7xx: Fix for "Unexpected interrupt: 8"
    157c391babd7 scsi: lpfc: Fix a duplicate 0711 log message number.
    6b2fbfacd74b f2fs: flush quota blocks after turnning it off
    e5641f02dc9e wil6210: fix freeing of rx buffers in EDMA mode
    d8ab4185ea55 btrfs: tracepoints: Fix wrong parameter order for qgroup events
    6bcbe35027e2 btrfs: qgroup: Always free PREALLOC META reserve in btrfs_delalloc_release_extents()
    96b9b94647b0 Btrfs: fix memory leak due to concurrent append writes with fiemap
    692aa7d55ff8 Btrfs: fix inode cache block reserve leak on failure to allocate data space
    a8afda7774a3 dm snapshot: rework COW throttling to fix deadlock
    223f1af69da8 dm snapshot: introduce account_start_copy() and account_end_copy()
    0ca37291020e zram: fix race between backing_dev_show and backing_dev_store
    ef244c308885 Linux 4.19.81
    27414f90ff6e RDMA/cxgb4: Do not dma memory off of the stack
    054441182b51 blk-rq-qos: fix first node deletion of rq_qos_del()
    2ada40308a0d PCI: PM: Fix pci_power_up()
    ccb02adf3293 xen/netback: fix error path of xenvif_connect_data()
    89ab39da1452 cpufreq: Avoid cpufreq_suspend() deadlock on system shutdown
    5f19cbb3ab3f memstick: jmb38x_ms: Fix an error handling path in 'jmb38x_ms_probe()'
    0b95aaae783f btrfs: tracepoints: Fix bad entry members of qgroup events
    1b921b5bc47f Btrfs: check for the full sync flag while holding the inode lock during fsync
    ac6bae2b524d Btrfs: add missing extents release on file extent cluster relocation error
    6cd5be9832eb btrfs: block-group: Fix a memory leak due to missing btrfs_put_block_group()
    a5a10f7800ed pinctrl: armada-37xx: swap polarity on LED group
    e0e489aa5bd0 pinctrl: armada-37xx: fix control of pins 32 and up
    5e9d71802ddc pinctrl: cherryview: restore Strago DMI workaround for all versions
    4dedaa73c4c4 x86/apic/x2apic: Fix a NULL pointer deref when handling a dying cpu
    1709917289cd x86/boot/64: Make level2_kernel_pgt pages invalid outside kernel area
    e49c84c51c3a dm cache: fix bugs when a GFP_NOWAIT allocation fails
    5ce7528c4d4a tracing: Fix race in perf_trace_buf initialization
    96202569b9fe perf/aux: Fix AUX output stopping
    01332b037066 CIFS: Fix use after free of file info structures
    71cf88165ff0 CIFS: avoid using MID 0xFFFF
    4292745536d2 arm64: Enable workaround for Cavium TX2 erratum 219 when running SMT
    d97e4a6d2b2f EDAC/ghes: Fix Use after free in ghes_edac remove path
    ca65fe21981b parisc: Fix vmap memory leak in ioremap()/iounmap()
    19e2ed7bfabe xtensa: drop EXPORT_SYMBOL for outs*/ins*
    30cff8ab6ed7 mm/memory-failure: poison read receives SIGKILL instead of SIGBUS if mmaped more than once
    91eec7692b94 hugetlbfs: don't access uninitialized memmaps in pfn_range_valid_gigantic()
    f712e3066f75 mm/page_owner: don't access uninitialized memmaps when reading /proc/pagetypeinfo
    bb6932c5a473 mm/slub: fix a deadlock in show_slab_objects()
    9792afbd630b mm/memory-failure.c: don't access uninitialized memmaps in memory_failure()
    01a44055a48a mmc: cqhci: Commit descriptors before setting the doorbell
    6ea856efef9f fs/proc/page.c: don't access uninitialized memmaps in fs/proc/page.c
    43a2a6c2f0fb drivers/base/memory.c: don't access uninitialized memmaps in soft_offline_page_store()
    4d5307c099af drm/amdgpu: Bail earlier when amdgpu.cik_/si_support is not set to 1
    11377c3e997e drm/ttm: Restore ttm prefaulting
    33af2a8ee304 drm/edid: Add 6 bpc quirk for SDC panel in Lenovo G50
    24ca62892032 mac80211: Reject malformed SSID elements
    73c066a9552a cfg80211: wext: avoid copying malformed SSIDs
    83dc16707f6d ACPI: CPPC: Set pcc_data[pcc_ss_id] to NULL in acpi_cppc_processor_exit()
    8e367b029e61 ASoC: rsnd: Reinitialize bit clock inversion flag for every format setting
    b0dd6a24255e Input: synaptics-rmi4 - avoid processing unknown IRQs
    aa9402c14df6 Input: da9063 - fix capability and drop KEY_SLEEP
    e254d4359259 scsi: ch: Make it possible to open a ch device multiple times again
    0c6905197c5b scsi: core: try to get module before removing device
    2a675e73dfec scsi: core: save/restore command resid for error handling
    0cea86f270e9 scsi: sd: Ignore a failure to sync cache due to lack of authorization
    3638ccda1009 scsi: zfcp: fix reaction on bit error threshold notification
    d07c028d2bc9 staging: wlan-ng: fix exit return when sme->key_idx >= NUM_WEPKEYS
    4034a5030589 MIPS: tlbex: Fix build_restore_pagemask KScratch restore
    9f7e157464cd USB: ldusb: fix read info leaks
    3b73a0e453bd USB: usblp: fix use-after-free on disconnect
    28ab2c5f5899 USB: ldusb: fix memleak on disconnect
    edd3e9c71cc8 USB: serial: ti_usb_3410_5052: fix port-close races
    068fcbe895cd usb: udc: lpc32xx: fix bad bit shift operation
    7ed43d2eb0ec ALSA: hda - Force runtime PM on Nvidia HDMI codecs
    7dda74810c9a ALSA: usb-audio: Disable quirks for BOSS Katana amplifiers
    6c8a9a46ec57 ALSA: hda/realtek - Enable headset mic on Asus MJ401TA
    30a83eb0a09d ALSA: hda/realtek - Add support for ALC711
    5366778bf0ed USB: legousbtower: fix memleak on disconnect
    99b45e7a1ba1 memfd: Fix locking when tagging pins
    2770f80afde7 sctp: change sctp_prot .no_autobind with true
    cd8c21ca7022 net: stmmac: disable/enable ptp_ref_clk in suspend/resume flow
    da4f0aed87d5 net: ipv6: fix listify ip6_rcv_finish in case of forwarding
    cc2d858b3f73 net/ibmvnic: Fix EOI when running in XIVE mode.
    3f9d4e3c2954 net: i82596: fix dma_alloc_attr for sni_82596
    da0baae9a725 net: bcmgenet: Set phydev->dev_flags only for internal PHYs
    c0f5839a483f net: bcmgenet: Fix RGMII_MODE_EN value for GENET v1/2/3
    16d67acad815 net: avoid potential infinite loop in tc_ctl_action()
    2fa80e64de33 ipv4: Return -ENETUNREACH if we can't create route but saddr is valid
    2ec0df4e3fee ipv4: fix race condition between route lookup and invalidation
    0d3ad773b445 ocfs2: fix panic due to ocfs2_wq is null
    0933b0db7fb2 Revert "drm/radeon: Fix EEH during kexec"
    9457994a53d1 md/raid0: fix warning message for parameter default_layout
    51f0c10890aa libata/ahci: Fix PCS quirk application
    9bc5a4db9aa9 namespace: fix namespace.pl script to support relative paths
    6acbcd1429f1 r8152: Set macpassthru in reset_resume callback
    0cb5c7b06a0a lib: textsearch: fix escapes in example code
    50699af3609c net: hisilicon: Fix usage of uninitialized variable in function mdio_sc_cfg_reg_write()
    db1e664e2d80 mips: Loongson: Fix the link time qualifier of 'serial_exit()'
    b43bf6b10344 net: dsa: rtl8366rb: add missing of_node_put after calling of_get_child_by_name
    a16a9c10b2b0 netfilter: nft_connlimit: disable bh on garbage collection
    13104599d07f mac80211: fix txq null pointer dereference
    09c5a5bb0f26 nl80211: fix null pointer dereference
    90a886b68faa xen/efi: Set nonblocking callbacks
    5d880444955e MIPS: dts: ar9331: fix interrupt-controller size
    6d0da953bd8e net: dsa: qca8k: Use up to 7 ports for all operations
    1cd24f5edab8 ARM: dts: am4372: Set memory bandwidth limit for DISPC
    960019214539 ieee802154: ca8210: prevent memory leak
    ec3817c62ede ARM: OMAP2+: Fix warnings with broken omap2_set_init_voltage()
    a23cd06c2cd2 ARM: OMAP2+: Fix missing reset done flag for am3 and am43
    fcff55e25593 scsi: qla2xxx: Fix unbound sleep in fcport delete path.
    c3d475c7d9b9 scsi: megaraid: disable device when probe failed after enabled device
    c6d91bd3fa35 scsi: ufs: skip shutdown if hba is not powered
    db783e05df55 nvme-pci: Fix a race in controller removal
    c3038e718a19 Linux 4.19.80
    0603d82bcae4 perf/hw_breakpoint: Fix arch_hw_breakpoint use-before-initialization
    91849adc9f90 PCI: vmd: Fix config addressing when using bus offsets
    cd4b60e57a7a x86/asm: Fix MWAITX C-state hint value
    99ada52ce213 hwmon: Fix HWMON_P_MIN_ALARM mask
    b9040fab5f36 tracing: Get trace_array reference for available_tracers files
    a6c9fb2c2ce4 ftrace: Get a reference counter for the trace_array on filter files
    b7f758631d69 tracing/hwlat: Don't ignore outer-loop duration when calculating max_latency
    6271cbff9309 tracing/hwlat: Report total time spent in all NMIs during the sample
    3766c9d9c47c arm64/sve: Fix wrong free for task->thread.sve_state
    6f64aa703c0c media: stkwebcam: fix runtime PM after driver unbind
    664ec2db3b1f Fix the locking in dcache_readdir() and friends
    a64241ba496c arm64: topology: Use PPTT to determine if PE is a thread
    b098a4cd99ff ACPI/PPTT: Add support for ACPI 6.3 thread flag
    a73306414fcd ACPICA: ACPI 6.3: PPTT add additional fields in Processor Structure Flags
    34ab38cd8098 MIPS: elf_hwcap: Export userspace ASEs
    aaa81d9e6523 MIPS: Disable Loongson MMI instructions for kernel build
    e9360f393d7b NFS: Fix O_DIRECT accounting of number of bytes read/written
    e0805d7f7f1b btrfs: fix uninitialized ret in ref-verify
    f7313de46e46 btrfs: fix incorrect updating of log root tree
    a8de7090805d cifs: use cifsInodeInfo->open_file_lock while iterating to avoid a panic
    f6c715708fb8 iio: adc: stm32-adc: fix a race when using several adcs with dma and irq
    a9968a4d6399 iio: adc: stm32-adc: move registers definitions
    410ab742a503 gpiolib: don't clear FLAG_IS_OUT when emulating open-drain/open-source
    b41013b51870 firmware: google: increment VPD key_len properly
    491a39dcee44 mm/vmpressure.c: fix a signedness bug in vmpressure_register_event()
    7bbe6eefdbb3 kernel/sysctl.c: do not override max_threads provided by userspace
    230b339a7c75 CIFS: Force reval dentry if LOOKUP_REVAL flag is set
    0bc78de461b4 CIFS: Force revalidate inode when dentry is stale
    d72c2115108f CIFS: Gracefully handle QueryInfo errors during open
    345c03a0defb blk-wbt: fix performance regression in wbt scale_up/scale_down
    d855a5f2dec7 perf inject jit: Fix JIT_CODE_MOVE filename
    47a4e4decddd perf llvm: Don't access out-of-scope array
    ee7ee6cfc3af efivar/ssdt: Don't iterate over EFI vars if no SSDT override was specified
    c9a182ddf2d4 iio: light: opt3001: fix mutex unlock race
    811616a6400d iio: adc: axp288: Override TS pin bias current for some models
    99757b1d9c17 iio: adc: ad799x: fix probe error handling
    2cb6f0417ee1 iio: adc: hx711: fix bug in sampling of data
    2f9a82e2d2e6 staging: vt6655: Fix memory leak in vt6655_probe
    df455ed36901 Staging: fbtft: fix memory leak in fbtft_framebuffer_alloc
    d58d477c5852 gpio: eic: sprd: Fix the incorrect EIC offset when toggling
    ce20fd3e1530 mei: avoid FW version request on Ibex Peak and earlier
    d7e57796b6c0 mei: me: add comet point (lake) LP device ids
    f931791751d3 USB: legousbtower: fix use-after-free on release
    e3f445666f51 USB: legousbtower: fix open after failed reset request
    99c0c615ff98 USB: legousbtower: fix potential NULL-deref on disconnect
    fe471bf16720 USB: legousbtower: fix deadlock on disconnect
    4fde6c982393 USB: legousbtower: fix slab info leak at probe
    dff3bc5edcf6 usb: renesas_usbhs: gadget: Fix usb_ep_set_{halt,wedge}() behavior
    55efffb294d2 usb: renesas_usbhs: gadget: Do not discard queues in usb_ep_set_{halt,wedge}()
    3b089cef3cc1 USB: dummy-hcd: fix power budget for SuperSpeed mode
    ab8d87d14d82 USB: microtek: fix info-leak at probe
    0f14e44ebc0e USB: usblcd: fix I/O after disconnect
    58c2b4c5610d USB: serial: fix runtime PM after driver unbind
    8dcda04939fd USB: serial: option: add support for Cinterion CLS8 devices
    f7ab1c54c1a4 USB: serial: option: add Telit FN980 compositions
    13b0420eb2ea USB: serial: ftdi_sio: add device IDs for Sienna and Echelon PL-20
    a463d20a5772 USB: serial: keyspan: fix NULL-derefs on open() and write()
    21917fcb05d1 serial: uartlite: fix exit path null pointer
    0c999b4b00db USB: ldusb: fix NULL-derefs on driver unbind
    39fe586c4069 USB: chaoskey: fix use-after-free on release
    2f2b039530ea USB: usblp: fix runtime PM after driver unbind
    2095532522d1 USB: iowarrior: fix use-after-free after driver unbind
    7f93c8c89541 USB: iowarrior: fix use-after-free on release
    2fdcf7e19bde USB: iowarrior: fix use-after-free on disconnect
    ab162d331cc1 USB: adutux: fix use-after-free on release
    ca9c18c00a95 USB: adutux: fix NULL-derefs on disconnect
    316f51d77597 USB: adutux: fix use-after-free on disconnect
    ea7255663398 xhci: Increase STS_SAVE timeout in xhci_suspend()
    cbc5abaa6f30 xhci: Prevent deadlock when xhci adapter breaks during init
    fde058a17c18 usb: xhci: wait for CNR controller not ready bit in xhci resume
    13e793da4f70 xhci: Fix USB 3.1 capability detection on early xHCI 1.1 spec based hosts
    d6bdd4686ffc xhci: Check all endpoints for LPM timeout
    faa0502a5be5 xhci: Prevent device initiated U1/U2 link pm if exit latency is too long
    077855ba2df2 xhci: Fix false warning message about wrong bounce buffer write length
    31604075ceb4 USB: usb-skeleton: fix NULL-deref on disconnect
    dcabc48fe0ac USB: usb-skeleton: fix runtime PM after driver unbind
    571a14063619 USB: yurex: fix NULL-derefs on disconnect
    a8fe336f20b9 USB: yurex: Don't retry on unexpected errors
    86575b7f636f USB: rio500: Remove Rio 500 kernel driver
    95bcc0d980ae f2fs: use EINVAL for superblock with invalid magic
    7d1688c6731b panic: ensure preemption is disabled during panic()
    dafd634415a7 Linux 4.19.79
    1bd17a737c9e nl80211: validate beacon head
    527ba5d7634b cfg80211: Use const more consistently in for_each_element macros
    ad180cace853 cfg80211: add and use strongly typed element iteration macros
    3dab5ba6d7ae staging: erofs: detect potential multiref due to corrupted images
    8b4341f9b80b staging: erofs: add two missing erofs_workgroup_put for corrupted images
    596bbc4e0edf staging: erofs: some compressed cluster should be submitted for corrupted images
    e7c44410387c staging: erofs: fix an error handling in erofs_readdir()
    1b94c1e80ca8 coresight: etm4x: Use explicit barriers on enable/disable
    effad578c23f vfs: Fix EOVERFLOW testing in put_compat_statfs64
    d976344d27f7 arm64/speculation: Support 'mitigations=' cmdline option
    af33d746286c arm64: Use firmware to detect CPUs that are not affected by Spectre-v2
    17d1acc4c61d arm64: Force SSBS on context switch
    fe22ea561ce0 arm64: ssbs: Don't treat CPUs with SSBS as unaffected by SSB
    dada3a4abb43 arm64: add sysfs vulnerability show for speculative store bypass
    f41df38898ec arm64: add sysfs vulnerability show for spectre-v2
    9d1bb39cdd96 arm64: Always enable spectre-v2 vulnerability detection
    b1a33cfd8034 arm64: Advertise mitigation of Spectre-v2, or lack thereof
    59a6dc262c85 arm64: Provide a command line to disable spectre_v2 mitigation
    c131623b1e9d arm64: Always enable ssb vulnerability detection
    47a11f2eafcc arm64: enable generic CPU vulnerabilites support
    512158d0c67e arm64: add sysfs vulnerability show for meltdown
    047aac35fd1a arm64: Add sysfs vulnerability show for spectre-v1
    edfc026626d6 arm64: fix SSBS sanitization
    09c22781dd2c arm64: docs: Document SSBS HWCAP
    a59d42ac50a1 KVM: arm64: Set SCTLR_EL2.DSSBS if SSBD is forcefully disabled and !vhe
    1eaff33e2441 arm64: ssbd: Add support for PSTATE.SSBS rather than trapping to EL3
    d286a37471b6 riscv: Avoid interrupts being erroneously enabled in handle_exception()
    5b67a4721ddd perf stat: Reset previous counts on repeat with interval
    15c57bf9dcf8 perf tools: Fix segfault in cpu_cache_level__read()
    e5331c37c08b tick: broadcast-hrtimer: Fix a race in bc_set_next
    140acbb09384 tools lib traceevent: Do not free tep->cmdlines in add_new_comm() on failure
    d1e4b4cc3bba powerpc/book3s64/radix: Rename CPU_FTR_P9_TLBIE_BUG feature flag
    f5f31a6ea558 powerpc/pseries: Fix cpu_hotplug_lock acquisition in resize_hpt()
    c688982ffaeb nbd: fix crash when the blksize is zero
    63bb8b76ed62 KVM: nVMX: Fix consistency check on injected exception error code
    34b13ff69668 KVM: PPC: Book3S HV: XIVE: Free escalation interrupts before disabling the VP
    1b155b4fe8b4 drm/radeon: Bail earlier when radeon.cik_/si_support=0 is passed
    04e0c84f137d nfp: flower: fix memory leak in nfp_flower_spawn_vnic_reprs
    575a5bb3d372 perf unwind: Fix libunwind build failure on i386 systems
    b0aaf65bb16a kernel/elfcore.c: include proper prototypes
    bab46480e6f9 perf build: Add detection of java-11-openjdk-devel package
    46ff0e2f869f sched/core: Fix migration to invalid CPU in __set_cpus_allowed_ptr()
    6cb7aa1b4f94 sched/membarrier: Fix private expedited registration check
    e250f2b6aa9e sched/membarrier: Call sync_core only before usermode for same mm
    9f33b178cbb2 libnvdimm/nfit_test: Fix acpi_handle redefinition
    7b4f541fcd1c fuse: fix memleak in cuse_channel_open
    2e93d24ac75e libnvdimm/region: Initialize bad block for volatile namespaces
    9025adf37ee8 thermal_hwmon: Sanitize thermal_zone type
    c01a9dbec18a thermal: Fix use-after-free when unregistering thermal zone device
    55ebeb4e865d ntb: point to right memory window index
    9dabade5c197 x86/purgatory: Disable the stackleak GCC plugin for the purgatory
    65348659535d pwm: stm32-lp: Add check in case requested period cannot be achieved
    19b1c70e911c pNFS: Ensure we do clear the return-on-close layout stateid on fatal errors
    1c70ae6a91f9 drm/amdgpu: Check for valid number of registers to read
    e0af3b19ad77 drm/amdgpu: Fix KFD-related kernel oops on Hawaii
    f7ace7f25214 netfilter: nf_tables: allow lookups in dynamic sets
    f217883bbc92 watchdog: aspeed: Add support for AST2600
    520c2a64fc78 ceph: reconnect connection if session hang in opening state
    0275113fc09a ceph: fix directories inode i_blkbits initialization
    2bc2a90a083a xen/pci: reserve MCFG areas earlier
    18dd2b05f349 9p: avoid attaching writeback_fid on mmap with type PRIVATE
    07f3596ce344 9p: Transport error uninitialized
    448deb13ab9e fs: nfs: Fix possible null-pointer dereferences in encode_attrs()
    4753e7a824cb ima: fix freeing ongoing ahash_request
    b69c3085fcc6 ima: always return negative code for error
    6df3c66de09d arm64: cpufeature: Detect SSBS and advertise to userspace
    3a0e673305e2 cfg80211: initialize on-stack chandefs
    16c75eb13a72 s390/cio: avoid calling strlen on null pointer
    3f41e88f4bd4 ieee802154: atusb: fix use-after-free at disconnect
    975859bb69b2 xen/xenbus: fix self-deadlock after killing user process
    e409b81d9ddb Revert "locking/pvqspinlock: Don't wait if vCPU is preempted"
    7ed2867ceb41 mmc: sdhci-of-esdhc: set DMA snooping based on DMA coherence
    4509a19d5082 mmc: sdhci: improve ADMA error reporting
    873f49d6a4e8 drm/i915/gvt: update vgpu workload head pointer correctly
    198bc7040c48 drm/nouveau/kms/nv50-: Don't create MSTMs for eDP connectors
    7a85c8673551 drm/msm/dsi: Fix return value check for clk_get_parent
    0e45633f49ef drm/omap: fix max fclk divider for omap36xx
    90ac4028739c perf stat: Fix a segmentation fault when using repeat forever
    22f28afd3d77 watchdog: imx2_wdt: fix min() calculation in imx2_wdt_set_timeout
    e7cf8cc79f93 PCI: Restore Resizable BAR size bits correctly for 1MB BARs
    956ce989c41f PCI: vmd: Fix shadow offsets to reflect spec changes
    06f250215beb timer: Read jiffies once when forwarding base clk
    12c6c4a50f66 usercopy: Avoid HIGHMEM pfn warning
    e010c9835183 tracing: Make sure variable reference alias has correct var_ref_idx
    022ca58f109e power: supply: sbs-battery: only return health when battery present
    5cb6dd823127 power: supply: sbs-battery: use correct flags field
    fb93ccde081e MIPS: Treat Loongson Extensions as ASEs
    a0dc60ac6bef crypto: ccree - use the full crypt length value
    f5c087a0d9a0 crypto: ccree - account for TEE not ready to report
    561bf9309209 crypto: caam - fix concurrency issue in givencrypt descriptor
    3683dd7074dc crypto: cavium/zip - Add missing single_release()
    cd8e0a5d94fb crypto: skcipher - Unmap pages after an external error
    9349108ae499 crypto: qat - Silence smp_processor_id() warning
    532920b26678 tools lib traceevent: Fix "robust" test of do_generate_dynamic_list_file
    4aaea17d3c31 can: mcp251x: mcp251x_hw_reset(): allow more time after a reset
    9124eac41a67 powerpc/book3s64/mm: Don't do tlbie fixup for some hardware revisions
    19c12f12093e powerpc/powernv/ioda: Fix race in TCE level allocation
    032ce7d766a9 powerpc/powernv: Restrict OPAL symbol map to only be readable by root
    ba3ca9fcb0e7 powerpc/mce: Schedule work from irq_work
    ee6eeeb88e79 powerpc/mce: Fix MCE handling for huge pages
    1284f2073415 ASoC: sgtl5000: Improve VAG power and mute control
    50090b75fa89 ASoC: Define a set of DAPM pre/post-up events
    42b888f63333 PM / devfreq: tegra: Fix kHz to Hz conversion
    9f0f39c92e4f nbd: fix max number of supported devs
    eff3a54aae68 KVM: nVMX: handle page fault in vmread fix
    21874027e1de KVM: X86: Fix userspace set invalid CR4
    30fbe0d380aa KVM: PPC: Book3S HV: Don't lose pending doorbell request on migration on P9
    4faa7f05af75 KVM: PPC: Book3S HV: Check for MMU ready on piggybacked virtual cores
    577a5119d7af KVM: PPC: Book3S HV: Fix race in re-enabling XIVE escalation interrupts
    46cb14a57088 s390/cio: exclude subchannels with no parent from pseudo check
    9aa823b3c0a6 s390/topology: avoid firing events before kobjs are created
    ddfef75f877b KVM: s390: Test for bad access register and size at the start of S390_MEM_OP
    8b41a30f91db s390/process: avoid potential reading of freed stack

(From OE-Core rev: 8a36666265002805134cc3786c0e81bc709d8d10)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
(cherry picked from commit e23a86fa40be2e1dfe50baeebe787e98f793cc5b)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:21 +00:00
Bruce Ashfield
65f6271bf5 linux-yocto/5.2: update to v5.2.23
Updating linux-yocto/5.2 to the latest korg -stable release that comprises
the following commits:

    6e5893ab1fe2 Linux 5.2.23
    86ac741509b1 kvm: x86: mmu: Recovery of shattered NX large pages
    c553a0a399c9 kvm: Add helper function for creating VM worker threads
    f2bf2c447af6 kvm: mmu: ITLB_MULTIHIT mitigation
    f06ad290c8f0 KVM: x86: make FNAME(fetch) and __direct_map more similar
    18b180d7a0f1 kvm: x86, powerpc: do not allow clearing largepages debugfs entry
    ff893d92a664 Documentation: Add ITLB_MULTIHIT documentation
    f9adaf5c4457 cpu/speculation: Uninline and export CPU mitigations helpers
    0b2c4ab2b97c x86/cpu: Add Tremont to the cpu vulnerability whitelist
    eaa0b155027e x86/bugs: Add ITLB_MULTIHIT bug infrastructure
    dccf9a56da2e x86/speculation/taa: Fix printing of TAA_MSG_SMT on IBRS_ALL CPUs
    32bd35cc9e6c x86/tsx: Add config options to set tsx=on|off|auto
    c4ed63015b6a x86/speculation/taa: Add documentation for TSX Async Abort
    43e4f038964c x86/tsx: Add "auto" option to the tsx= cmdline parameter
    995c701aa712 kvm/x86: Export MDS_NO=0 to guests when TSX is enabled
    085db27a9d8a x86/speculation/taa: Add sysfs reporting for TSX Async Abort
    0d7366963e51 x86/speculation/taa: Add mitigation for TSX Async Abort
    10d64704b2e6 x86/cpu: Add a "tsx=" cmdline option with TSX disabled by default
    e97aa6c96e2e x86/cpu: Add a helper function x86_read_arch_cap_msr()
    817956f7cd90 x86/msr: Add the IA32_TSX_CTRL MSR
    4ad18dc35ed7 x86/cpu: Move arch_smt_update() to a neutral place

(From OE-Core rev: 9049ff4d12ac0f356edd4c755498a016c85dd7ca)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
(cherry picked from commit 441e9dc823fdf4fd9da2332ec63afcf6098773af)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:21 +00:00
Bruce Ashfield
2d65f82bc8 linux-yocto/5.2: update to v5.2.22
Updating linux-yocto/5.2 to the latest korg -stable release that comprises
the following commits:

    0bea818b6e18 Linux 5.2.22
    5f1126e23315 nbd: verify socket is supported during setup
    4888496abcfe USB: usblp: fix use-after-free on disconnect
    0ba545e8fda8 USB: legousbtower: fix a signedness bug in tower_probe()
    4c6f2341bb9f CIFS: Fix use after free of file info structures
    f9c400068647 scsi: mpt3sas_ctl: fix double-fetch bug in _ctl_ioctl_main()
    14c5cace4634 wcd9335: fix a incorrect use of kstrndup()
    da7b0f2312c9 clk-sunxi: fix a missing-check bug in sunxi_divs_clk_setup()
    ee72fe755500 cfg80211: wext: avoid copying malformed SSIDs
    fc86526a556d rtlwifi: Fix potential overflow on P2P code
    0ebeef211891 io_uring: only flush workqueues on fileset removal
    e6a26dac8182 x86/asm: Fix MWAITX C-state hint value
    65113f3d3937 mtd: rawnand: au1550nd: Fix au_read_buf16() prototype
    31012d874e0c hwmon: Fix HWMON_P_MIN_ALARM mask
    3abf2667e95a tracing: Get trace_array reference for available_tracers files
    be0e6c911005 ftrace: Get a reference counter for the trace_array on filter files
    a2a980deef30 tracing/hwlat: Don't ignore outer-loop duration when calculating max_latency
    225fca30418d tracing/hwlat: Report total time spent in all NMIs during the sample
    19b6d82baabe arm64/sve: Fix wrong free for task->thread.sve_state
    2473b968eecb media: stkwebcam: fix runtime PM after driver unbind
    eecc5223277d drm/i915: Mark contents as dirty on a write fault
    04887f273e41 drm/i915: Whitelist COMMON_SLICE_CHICKEN2
    60624198d203 Fix the locking in dcache_readdir() and friends
    c5325876ceb9 arm64: topology: Use PPTT to determine if PE is a thread
    393cf2726151 ACPI/PPTT: Add support for ACPI 6.3 thread flag
    daa13a4b0635 RDMA/vmw_pvrdma: Free SRQ only once
    6243ecc8cab6 MIPS: elf_hwcap: Export userspace ASEs
    ae0799a4da1b MIPS: Disable Loongson MMI instructions for kernel build
    f0f81c9999ab NFS: Fix O_DIRECT accounting of number of bytes read/written
    7a80e6581ea9 btrfs: fix uninitialized ret in ref-verify
    ddf6cef435f0 btrfs: fix incorrect updating of log root tree
    1296b41cc1d3 Btrfs: fix memory leak due to concurrent append writes with fiemap
    810f5770978a btrfs: fix balance convert to single on 32-bit host CPUs
    7816678e3934 btrfs: allocate new inode in NOFS context
    74ec5aa2c30a btrfs: relocation: fix use-after-free on dead relocation roots
    bc1f6ac176a6 firmware: google: increment VPD key_len properly
    9fc11ae5dee9 IB/core: Fix wrong iterating on ports
    fee3c62537ff mm/vmpressure.c: fix a signedness bug in vmpressure_register_event()
    e3a378783419 mm/page_alloc.c: fix a crash in free_pages_prepare()
    e4891ccaef9e mm/z3fold.c: claim page in the beginning of free
    7831f5a6c097 kernel/sysctl.c: do not override max_threads provided by userspace
    44481a12c9bf cifs: use cifsInodeInfo->open_file_lock while iterating to avoid a panic
    16ae17c41281 CIFS: Force reval dentry if LOOKUP_REVAL flag is set
    2c272ff0cbd5 CIFS: Force revalidate inode when dentry is stale
    43273ccd3283 CIFS: Gracefully handle QueryInfo errors during open
    ca814325c659 selinux: fix context string corruption in convert_context()
    ad8d7e2a7a26 blk-wbt: fix performance regression in wbt scale_up/scale_down
    1b64f52e03de perf inject jit: Fix JIT_CODE_MOVE filename
    5cc59bf53d49 perf llvm: Don't access out-of-scope array
    7f9ed4c203f0 efivar/ssdt: Don't iterate over EFI vars if no SSDT override was specified
    5ef016833bac iio: accel: adxl372: Perform a reset at start up
    9f77cc5a7309 iio: accel: adxl372: Fix push to buffers lost samples
    d3db274a52ef iio: accel: adxl372: Fix/remove limitation for FIFO samples
    a9ab504bfa61 iio: adc: stm32-adc: fix a race when using several adcs with dma and irq
    29166478ab00 iio: adc: stm32-adc: move registers definitions
    05505674fad5 iio: adc: axp288: Override TS pin bias current for some models
    f418fb5e545d iio: adc: ad799x: fix probe error handling
    dc9b7ddfd0e5 iio: adc: hx711: fix bug in sampling of data
    5f711a67527d staging: vt6655: Fix memory leak in vt6655_probe
    e72f973d2600 staging: rtl8188eu: fix HighestRate check in odm_ARFBRefresh_8188E()
    34a95338fd57 Staging: fbtft: fix memory leak in fbtft_framebuffer_alloc
    b83f3fd3dc3c staging: bcm2835-audio: Fix draining behavior regression
    fe77671d3437 staging/fbtft: Depend on OF
    597abe928ec2 gpio: eic: sprd: Fix the incorrect EIC offset when toggling
    5e7c238cfafe mei: avoid FW version request on Ibex Peak and earlier
    4e68c8ad0d11 mei: me: add comet point (lake) LP device ids
    74a2ab15fa03 USB: legousbtower: fix use-after-free on release
    d5a37b79b977 USB: legousbtower: fix open after failed reset request
    470d1d920d61 USB: legousbtower: fix potential NULL-deref on disconnect
    b1c95308efbb USB: legousbtower: fix deadlock on disconnect
    0d7afcc3e67d USB: legousbtower: fix slab info leak at probe
    2164d586fe13 usb: typec: ucsi: displayport: Fix for the mode entering routine
    ed9dc2e12645 usb: typec: tcpm: usb: typec: tcpm: Fix a signedness bug in tcpm_fw_get_caps()
    ae07c4d583f0 usb: renesas_usbhs: gadget: Fix usb_ep_set_{halt,wedge}() behavior
    59f9a556d12c usb: renesas_usbhs: gadget: Do not discard queues in usb_ep_set_{halt,wedge}()
    c73e4656e029 USB: dummy-hcd: fix power budget for SuperSpeed mode
    8604ad319705 USB: microtek: fix info-leak at probe
    942d159f33d5 USB: usblcd: fix I/O after disconnect
    45e6742b3543 USB: serial: fix runtime PM after driver unbind
    f07e614a1eae USB: serial: option: add support for Cinterion CLS8 devices
    60efccd42001 USB: serial: option: add Telit FN980 compositions
    96464fe403ed USB: serial: ftdi_sio: add device IDs for Sienna and Echelon PL-20
    e05502d06a6e USB: serial: keyspan: fix NULL-derefs on open() and write()
    eb98769b935a serial: uartps: Fix uartps_major handling
    7dba6bf5f7d8 serial: uartlite: fix exit path null pointer
    46f1bfcd1c4e USB: ldusb: fix NULL-derefs on driver unbind
    536e1ab01853 USB: chaoskey: fix use-after-free on release
    2443d5a06e95 USB: usblp: fix runtime PM after driver unbind
    78941115be20 USB: iowarrior: fix use-after-free after driver unbind
    52f1bf2513ae USB: iowarrior: fix use-after-free on release
    259a1454a1c4 USB: iowarrior: fix use-after-free on disconnect
    63ee1fedd6de USB: adutux: fix use-after-free on release
    b6c09eee2d43 USB: adutux: fix NULL-derefs on disconnect
    0c72bbbe474a USB: adutux: fix use-after-free on disconnect
    a12a9cd6c351 xhci: Increase STS_SAVE timeout in xhci_suspend()
    a260279b7617 xhci: Prevent deadlock when xhci adapter breaks during init
    c8d9f36aa6b1 usb: xhci: wait for CNR controller not ready bit in xhci resume
    6885498721be xhci: Fix USB 3.1 capability detection on early xHCI 1.1 spec based hosts
    137c690e919a xhci: Check all endpoints for LPM timeout
    2cef9b4aef68 xhci: Prevent device initiated U1/U2 link pm if exit latency is too long
    fc87747823b9 xhci: Fix false warning message about wrong bounce buffer write length
    861e3b12fed9 USB: usb-skeleton: fix NULL-deref on disconnect
    9f4070d847cf USB: usb-skeleton: fix runtime PM after driver unbind
    968a3ec8e2de USB: yurex: fix NULL-derefs on disconnect
    f2f71a47512c USB: yurex: Don't retry on unexpected errors
    f12a275ccbf6 panic: ensure preemption is disabled during panic()
    f80586c5fc9e coresight: etm4x: Use explicit barriers on enable/disable
    f38e48b51908 vfs: Fix EOVERFLOW testing in put_compat_statfs64
    a74f766b8f43 riscv: Avoid interrupts being erroneously enabled in handle_exception()
    185f61b3655a perf stat: Reset previous counts on repeat with interval
    1479778a1947 tick: broadcast-hrtimer: Fix a race in bc_set_next
    a41c9cac2d45 KVM: nVMX: Fix consistency check on injected exception error code
    b52c034939de Btrfs: fix selftests failure due to uninitialized i_mode in test inodes
    a125322d48ac drm/radeon: Bail earlier when radeon.cik_/si_support=0 is passed
    ea9d6a619d30 nfp: abm: fix memory leak in nfp_abm_u32_knode_replace
    1f9e6c30c7ef mlxsw: spectrum_flower: Fail in case user specifies multiple mirror actions
    cd2fdf60a063 perf unwind: Fix libunwind build failure on i386 systems
    161dda893af0 i2c: qcom-geni: Disable DMA processing on the Lenovo Yoga C630
    86b33efd649a bpf: Fix bpf_event_output re-entry issue
    aaa8c1b8daa9 blk-mq: move lockdep_assert_held() into elevator_exit
    fc1b4d3e8239 kernel/elfcore.c: include proper prototypes
    6b2721b403ee include/trace/events/writeback.h: fix -Wstringop-truncation warnings
    cee4aad767a2 perf build: Add detection of java-11-openjdk-devel package
    043372e0afa3 sched/core: Fix migration to invalid CPU in __set_cpus_allowed_ptr()
    adf80f2feec5 sched/membarrier: Fix private expedited registration check
    61fa5ee7216c sched/membarrier: Call sync_core only before usermode for same mm
    096f6c8487c3 libnvdimm/nfit_test: Fix acpi_handle redefinition
    12a9a49442b2 fuse: fix memleak in cuse_channel_open
    7912cdc163b2 libnvdimm: Fix endian conversion issues 
    4db2cd0d1ce5 libnvdimm/region: Initialize bad block for volatile namespaces
    6fda5a687329 iommu/amd: Fix downgrading default page-sizes in alloc_pte()
    3a019ac29c6b thermal_hwmon: Sanitize thermal_zone type
    5d08f30e96d8 thermal: Fix use-after-free when unregistering thermal zone device
    a429d11015c3 ntb: point to right memory window index
    5aec3da44913 x86/purgatory: Disable the stackleak GCC plugin for the purgatory
    833db2db7272 selftests/seccomp: fix build on older kernels
    407e0ee74d22 pwm: stm32-lp: Add check in case requested period cannot be achieved
    52e5ea59746f SUNRPC: Don't try to parse incomplete RPC messages
    c0636eed33f0 pNFS: Ensure we do clear the return-on-close layout stateid on fatal errors
    18fce724c0ea drm/amdgpu: Check for valid number of registers to read
    aecbaa9bc7af drm/amdgpu: Fix KFD-related kernel oops on Hawaii
    342e564c9b0f netfilter: nf_tables: allow lookups in dynamic sets
    4c53aef11956 watchdog: aspeed: Add support for AST2600
    fa83953efe4b SUNRPC: RPC level errors should always set task->tk_rpc_status
    f835934a6275 ceph: reconnect connection if session hang in opening state
    7403dda16eb9 ceph: fetch cap_gen under spinlock in ceph_add_cap
    5c3e30081baa ceph: fix directories inode i_blkbits initialization
    e821008425d5 fuse: fix request limit
    92549d8ceef5 xen/pci: reserve MCFG areas earlier
    e99fd0070701 9p: avoid attaching writeback_fid on mmap with type PRIVATE
    5f374721b520 9p: Transport error uninitialized
    d9b57935af8d xprtrdma: Send Queue size grows after a reconnect
    d478e5024a78 xprtrdma: Toggle XPRT_CONGESTED in xprtrdma's slot methods
    111e51fcf8b3 fs: nfs: Fix possible null-pointer dereferences in encode_attrs()
    b3703c37a780 ima: fix freeing ongoing ahash_request
    4752354b2b94 ima: always return negative code for error
    9370b48fcb79 drivers: thermal: qcom: tsens: Fix memory leak from qfprom read
    38ab9316e558 cfg80211: initialize on-stack chandefs
    bc518ad5972a cfg80211: validate SSID/MBSSID element ordering assumption
    b1515120bb24 nl80211: validate beacon head
    dc1118edbc7c ieee802154: atusb: fix use-after-free at disconnect
    dd72ec13bbe3 xen/xenbus: fix self-deadlock after killing user process
    ffbd4ae78614 xen/balloon: Set pages PageOffline() in balloon_add_region()
    fb019e226331 DTS: ARM: gta04: introduce legacy spi-cs-high to make display work again
    fd5a2a47f144 libnvdimm/altmap: Track namespace boundaries in altmap
    f6e67e8fdfac Revert "locking/pvqspinlock: Don't wait if vCPU is preempted"
    9898906f5274 mmc: sdhci: Let drivers define their DMA mask
    8968e606a47f mmc: sdhci-of-esdhc: set DMA snooping based on DMA coherence
    56ced5e6024c mmc: sdhci: improve ADMA error reporting
    ba5d052c4e62 mmc: tegra: Implement ->set_dma_mask()
    31565ffd9d5d mac80211: keep BHs disabled while calling drv_tx_wake_queue()
    c5fcd037a2b2 drm/i915/gvt: update vgpu workload head pointer correctly
    359d2cb5c30a drm/nouveau/kms/nv50-: Don't create MSTMs for eDP connectors
    0b1757e6f255 drm/msm/dsi: Fix return value check for clk_get_parent
    00eccaeb55aa drm/omap: fix max fclk divider for omap36xx
    88f34afe2774 drm: mali-dp: Mark expected switch fall-through
    ccc3bc0df68d drm/atomic: Take the atomic toys away from X
    d88c0c23427b drm/atomic: Reject FLIP_ASYNC unconditionally
    6aecce20a2cd perf stat: Fix a segmentation fault when using repeat forever
    1b4371e819e8 perf tools: Fix segfault in cpu_cache_level__read()
    7311201faf48 watchdog: imx2_wdt: fix min() calculation in imx2_wdt_set_timeout
    79f5df7f2f92 selftests/tpm2: Add the missing TEST_FILES assignment
    a895c40ca633 PCI: Restore Resizable BAR size bits correctly for 1MB BARs
    0ea26a3c4336 PCI: vmd: Fix shadow offsets to reflect spec changes
    7dfe1d4b949d PCI: hv: Avoid use of hv_pci_dev->pci_slot after freeing it
    2bd27a041f5b PCI: vmd: Fix config addressing when using bus offsets
    04576078716b timer: Read jiffies once when forwarding base clk
    d964d65c20ae usercopy: Avoid HIGHMEM pfn warning
    37fdb252a315 tracing: Make sure variable reference alias has correct var_ref_idx
    212d21abd0f9 power: supply: sbs-battery: only return health when battery present
    1cee0eb9f606 power: supply: sbs-battery: use correct flags field
    51b90fe021de MIPS: Treat Loongson Extensions as ASEs
    b127de42d3ea crypto: ccree - use the full crypt length value
    f244496b19f2 crypto: ccree - account for TEE not ready to report
    de6922d9ab63 crypto: caam - fix concurrency issue in givencrypt descriptor
    4fd6651142be crypto: caam/qi - fix error handling in ERN handler
    c4b56f7746ff crypto: cavium/zip - Add missing single_release()
    a2edd8487639 crypto: skcipher - Unmap pages after an external error
    85a3e980d873 crypto: qat - Silence smp_processor_id() warning
    f00ae50250a7 tools lib traceevent: Do not free tep->cmdlines in add_new_comm() on failure
    623451aba2cf tools lib traceevent: Fix "robust" test of do_generate_dynamic_list_file
    3dcc2fed6e40 can: mcp251x: mcp251x_hw_reset(): allow more time after a reset
    82262ec35ddb powerpc/mm: Fixup tlbie vs mtpidr/mtlpidr ordering issue on POWER9
    ff2880ac0da2 powerpc/mm: Fix an Oops in kasan_mmu_init()
    5a2987852f46 powerpc/mm: Add a helper to select PAGE_KERNEL_RO or PAGE_READONLY
    45a769de36eb powerpc/book3s64/radix: Rename CPU_FTR_P9_TLBIE_BUG feature flag
    cf2b70b6b656 powerpc/book3s64/mm: Don't do tlbie fixup for some hardware revisions
    2685e06f19a6 powerpc/kasan: Fix shadow area set up for modules.
    5e7044ab7567 powerpc/kasan: Fix parallel loading of modules.
    5e56a0800d67 powerpc/powernv/ioda: Fix race in TCE level allocation
    e0f04cdca674 powerpc/pseries: Fix cpu_hotplug_lock acquisition in resize_hpt()
    e76223f82362 powerpc/powernv: Restrict OPAL symbol map to only be readable by root
    dae12b5175c7 powerpc/ptdump: Fix addresses display on PPC32
    1552ecc37cf8 powerpc/32s: Fix boot failure with DEBUG_PAGEALLOC without KASAN.
    aeea368a2c97 powerpc/603: Fix handling of the DIRTY flag
    838485d94fac powerpc/mce: Schedule work from irq_work
    5a707634e866 powerpc/mce: Fix MCE handling for huge pages
    789e9c0c699d powerpc/xive: Implement get_irqchip_state method for XIVE to fix shutdown race
    f7f281ee8c8d ASoC: sgtl5000: Improve VAG power and mute control
    917b868fc1db ASoC: Define a set of DAPM pre/post-up events
    f153e91caf36 PM / devfreq: tegra: Fix kHz to Hz conversion
    883dbbc1e7ca nbd: fix max number of supported devs
    f3a500b77c59 KVM: X86: Fix userspace set invalid CR4
    15153db63642 KVM: PPC: Book3S HV: Don't lose pending doorbell request on migration on P9
    a0bc470fc62e KVM: PPC: Book3S HV: Check for MMU ready on piggybacked virtual cores
    9772769d3990 KVM: PPC: Book3S HV: Fix race in re-enabling XIVE escalation interrupts
    93fd3eab6a8a KVM: PPC: Book3S HV: Don't push XIVE context when not using XIVE device
    2d09838ea088 KVM: PPC: Book3S HV: XIVE: Free escalation interrupts before disabling the VP
    1da0d7bce2bc KVM: PPC: Book3S: Enable XIVE native capability only if OPAL has required functions
    ed90a05c0b1b KVM: s390: fix __insn32_query() inline assembly
    87a6398ef7b8 s390/cio: exclude subchannels with no parent from pseudo check
    bd54ca01c976 s390/cio: avoid calling strlen on null pointer
    fbba7e0326fe s390/topology: avoid firing events before kobjs are created
    8892a0c67e9a KVM: s390: Test for bad access register and size at the start of S390_MEM_OP
    dac32cc04e95 s390/sclp: Fix bit checked for has_sipl
    d08741d62973 s390/process: avoid potential reading of freed stack

(From OE-Core rev: bbd287c217c8ad0184cdbf13b058aa22858b1138)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
(cherry picked from commit 73c8fc8c9bf4b0fe0e485c12bee9922a64aa1cdd)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:21 +00:00
Bruce Ashfield
2958805097 linux-yocto/5.2: update to v5.2.21
Updating linux-yocto/5.2 to the latest korg -stable release that comprises
the following commits:

    e91ef5bcdeda Linux 5.2.21

(From OE-Core rev: 1cc43cd87f603651e451087d50662cd694030c01)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
(cherry picked from commit 1f51f1505cdeec5cc464bbbc14f5514d7440a426)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:21 +00:00
Martin Jansa
53b981ae2a sstate.bbclass: Fix for consistent whitespace
(From OE-Core rev: a15c05fa17bcce345ce254f02c0d6dcd97f60cb8)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e874d067ace03774132ba3030a898678057c1304)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:21 +00:00
Richard Purdie
be02afefc5 sstate: Ensure mkdir happens before mktemp
This avoids a directory not present error.

Fix a comment typo whilst here.

(From OE-Core rev: c5f285f83ea1e322d5124847904adf488d3e790a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1360d8d7d99b70a80c8cdbc1fc6d9e6752483139)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:21 +00:00
Richard Purdie
17e3fcab7a sstate: Ensure target sstate directory exists if unihash changes
The previous patches meant the mkdir might no longer match the final target
directory. Fix this.

(From OE-Core rev: 7ce42a30a7508e8fcb496ba05cf6967dc04a988e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0af4dae84099e8632a9ea6a4afdbea2f232bb170)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:21 +00:00
Richard Purdie
14823a0bda sstate: Ensure SSTATE_PKG is reloaded when handling siginfo
STATE_PKG may have been changed by sstate_report_unihash so don't
cache the variable's value.

(From OE-Core rev: bfed8be91525478ecdf6b64e6308958b3271c8cc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit be29a25400c4ea285ab3f588c5831f00ba5d4f63)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:21 +00:00
Richard Purdie
5947cc196f sstate: Stop overwriting SSTATE_PKG
Its rather antisocial to overwrite SSTATE_PKG with an expanded form for the variable
and it stops the value of BB_UNIHASH being changed when the package is written out.

Instead of expanding the variable, append to it instead to avoid this rather
hard to figure out behaviour and allow the siggen code to behave as expected.

(From OE-Core rev: fe454e9c7837a903ffcff4c6f8a25070a0f0af82)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 62eca02024b4c44d618ab9bcf87a3166c886dadb)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:21 +00:00
Richard Purdie
8d72948bf4 sstate: Add ability to hide summary output for sstate
Its confusing to keep seeing sstate summary messages when hash equivalency is
active. This adds an option to control it. A default value is given which
maintains compatibility with different bitbake versions.

(From OE-Core rev: a67bd96de2b253c1d4c3bd82120f28dee06a4bf6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 038004866ff6650bcff7bb1bde36de6c0f451d29)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11 11:06:21 +00:00
Quanyang Wang
0dc56663c6 lttng-modules: fix NULL pointer deference error when testing rpc_task_running
This is a backport from upstream https://github.com/lttng/lttng-modules.git stable-2.10
to fix NULL pointer deference error when running kts testcase lttng_syscall_events.

(From OE-Core rev: a522ccff838ba1577255c90e64d98dd75470fb0a)

(From OE-Core rev: 754d0ae5a960056468cdf50e5965a4c22515f8f9)

Signed-off-by: Quanyang Wang <quanyang.wang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-31 10:37:23 +00:00
Slavic Brutalik
07ae996d84 systemd-systemctl: Fix handling of aliased targets
The script scans for services, parses them and makes sure those targets are still
there. The exists file check fails if the target is an alias, such as default.target
so add an additional test.

[YOCTO #13685]

(From OE-Core rev: 10bdbf033e51c97f6408c9114d480372135a2c2e)

(From OE-Core rev: 64d305024e0514b832da05867672f61d1b5b3225)

Signed-off-by: Werner Grift <sky.captin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-31 10:37:23 +00:00
Richard Purdie
ccff952d9c qemu-helper-native/systemtap-native: Ensure sysroots are populated with dependencies
As Alex Kanavin found, dependencies aren't always populated, particularly
with the hash equivalence server enabled locally:

'bitbake core-image-minimal' with gtk+ disabled.
can confirm with: $ tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin/qemu-system-x86_64 -display gtk
qemu-system-x86_64: Display 'gtk' is not available.
Enable gtk in local.conf with: PACKAGECONFIG_append_pn-qemu-system-native = " gtk+"
'bitbake core-image-minimal', without deleting tmp/
$ tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin/qemu-system-x86_64 -display gtk
qemu-system-x86_64: Display 'gtk' is not available.

This change ensures the dependencies are correctly handled as the full
sysroot is always depended upon even if things come from sstate.

(From OE-Core rev: d40853b10dd9f01d6a8dd4edcb941cfa8a544922)

(From OE-Core rev: 309424458c73b14a4a4020cd508c2bf37bf2bcbe)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-31 10:37:23 +00:00
Khem Raj
1699d1d55a nss: Backport clang build fix
(From OE-Core rev: 35bbb1deb4ddab3861dce7ca2ada778094fb353e)

(From OE-Core rev: 6c41308b02b940ab1841c64d73782fd2a5a0f6f6)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-31 10:37:23 +00:00
Adrian Bunk
b67ede4d82 python/python3: Whitelist CVE-2019-18348
This is not exploitable when glibc has CVE-2016-10739 fixed,
which is fixed in the upstream version since warrior.

(From OE-Core rev: a26ac2921a1ad96959364223920402082ccd1d61)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-31 10:37:23 +00:00
Adrian Bunk
28b490f66a openssl: Whitelist CVE-2019-0190
This is only a problem with older Apache versions.

(From OE-Core rev: 492d43296b15514ec72dfb15f37c6d2ab1fbbae3)

(From OE-Core rev: 9c693dbc0107241613f6ff694046592057c9b377)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-31 10:37:23 +00:00
Anuj Mittal
0a9ba3a53b sysstat: fix CVE-2019-19725
(From OE-Core rev: 2bf6fdc460526feb0955b3b789e7be78f6e8ec4a)

(From OE-Core rev: 66c428a676acd4dd2c7c7589ac651faef77c1323)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-31 10:37:23 +00:00
Anuj Mittal
e61dfe872e openssl: fix CVE-2019-1551
(From OE-Core rev: 7a8165e0d833bc64c824fa2aee2ddad21d866675)

(From OE-Core rev: 2187dfb20b12b6de72c5515eca6877319734f752)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-31 10:37:23 +00:00
Anuj Mittal
fd8720a47e git: upgrade 2.23.0 -> 2.23.1
Fixes a bunch of CVEs:
a7312d1a28

(From OE-Core rev: 743eb9a2f10c3796266e47d4b323b8fc20593ee7)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-31 10:37:23 +00:00
Scott Rifenbark
9c0c8e51dd YP 3.0.1 Docs: Fixed manual revision tables.
I had a duplicate "October 2019" release in the dev-manual.
Also, I forgot the year for the "October 2019" release entry.

(From yocto-docs rev: 1d2a6d6c4d0f283dcf2627c9494b204859edd340)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:32:39 +00:00
Scott Rifenbark
651b7448fa poky.ent: Fixed variables for 3.0.1.
They were confused with the 3.0 variable set.

(From yocto-docs rev: 5b5da98ccf5efc1dfc27818016e2583b68b03ec6)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:32:39 +00:00
Niko Mauno
4065420e5b cve-check: Switch to NVD CVE JSON feed version 1.1
Switch to recently released version 1.1 of NVD CVE JSON feed, as in
https://nvd.nist.gov/General/News/JSON-1-1-Vulnerability-Feed-Release
it is mentioned that

  Due to changes required to support CVSS v3.1 scoring, the JSON
  vulnerability feeds must be modified. This will require the consumers
  of this data to update their internal processes. We will be providing
  the JSON 1.1 schema on the data feeds page and the information below
  to prepare for this transition.
  ...
  The JSON 1.1 data feeds will be available on September 9th, 2019. At
  that time the current JSON 1.0 data feeds will no longer available.

This change was tested briefly by issuing 'bitbake core-image-minimal'
with 'cve-check.bbclass' inherited via local.conf, and then comparing
the content between the resulting two
'DEPLOY_DIR_IMAGE/core-image-minimal-qemux86.cve' files, which did not
seem to contain any other change, except total of 167 entries like

  CVSS v3 BASE SCORE: 0.0

were replaced with similar 'CVSS v3 BASE SCORE:' entries which had
scores that were greater than '0.0' (up to '9.8').

(From OE-Core rev: cc20e4d8ff2f3aa52a2658404af9a0ff358cc323)

(From OE-Core rev: c92b8804d6e59b2707332859957f0e6a46db0a73)

Signed-off-by: Niko Mauno <niko.mauno@iki.fi>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:08:52 +00:00
Stefan Müller-Klieser
8673e91f2d recipes: change SRC_URI to use https
Change all recipes to https where we get an http 301 permanent redirect.

(From OE-Core rev: e514acda9e12bccde6d3974e0fd1a37b3837191a)

(From OE-Core rev: e62c39670241136df7f17e5784b3de7b64d8f5d0)

Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:08:52 +00:00
Adrian Bunk
8f8a76d319 python: Whitelist CVE-2017-17522 CVE-2017-18207 CVE-2015-5652
One Windows-only CVE that cannot be fixed, and two CVEs
where upstream agreement is that they are not vulnerabilities.

(From OE-Core rev: 56d5b181f3b119f2bbd310dedd6d3b26e76f5944)

(From OE-Core rev: 13024049625c1705108066b38396ac379aacce84)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:08:52 +00:00
Peter Kjellerstedt
cd46d6826d meson.bbclass: Prevent meson from downloading wrapped projects
Meson has support for downloading subprojects using something called
wraps. This interferes with bitbake's expectations of all downloads
being done by the fetch task. To avoid this, tell meson to not
download any wraps.

Suggested-by: Mattias Jernberg <mattias.jernberg@axis.com>
(From OE-Core rev: b547637ad84bad8f7fe27193bf636541f8588ae8)

(From OE-Core rev: 4170718196ca734e5dd7635fc98b55ea47a74e88)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:08:52 +00:00
Adrian Bunk
ff3e1c5e5c glib: Whitelist CVE-2019-12450
Fixed in 2.60.4, but CPE data is outdated.

(From OE-Core rev: 060e46a73fb08b21c2acc5dddce30168574cd4f1)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:08:51 +00:00
Peter Kjellerstedt
cf8fb1974b Revert "libtirpc: create the symbol link for rpc header files"
This reverts commit 0b9748c655b6f733b504e70288f4b91dca2e4d58.

The headers provided by libtirpc are not drop in replacements for the
RPC header files previously provided by glibc, so do not install them
as if they were. Additionally, they clash with the header files
installed by glibc if an older version of glibc is used.

Any problems related to the lack of the old header files from glibc
should be addressed in the application/library that expects them.

(From OE-Core rev: ec984a5c56277251da847a62d6e64080be070809)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:08:51 +00:00
Mattias Hansson
a2ab2dcf12 base.bbclass: add dependency on pseudo from do_prepare_recipe_sysroot
do_prepare_recipe_sysroot may perform groupadd, which requires pseudo.
However, do_prepare_recipe_sysroot does not depend on pseudo explicitly,
which sometimes causes a build error when building a recipe that adds
groups.

This issue only occurs when executing do_prepare_recipe_sysroot for a
recipe that adds groups before finishing a task that depends on pseudo
for a recipe that doesn't add groups.

(From OE-Core rev: e20a67fe9cc7de042f39f3c39b74de61dc5c6dfe)

Signed-off-by: Mattias Hansson <mattihn@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:08:51 +00:00
Peter Kjellerstedt
46aacaafae libpng: Remove duplicate license information
The LICENSE file contains all the license information so there is no
need to also include it from the png.h file (and additionally some
lines were left out from the latter).

License-Update: Remove duplicate license information
(From OE-Core rev: c2925e2c744fc234950f6a1a8db5ce179fd1bae7)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:08:51 +00:00
Peter Kjellerstedt
dcffd983ac opkg: Trim the text part used for the license file checksum
This avoids including irrelevant information when calculating the
license checksum.

License-Update: Trim the text part used for the license file checksum
(From OE-Core rev: c6bb87e1e9f0ee33e8778da06a64ba9c8755efcc)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:08:51 +00:00
Peter Kjellerstedt
d8a123006b alsa-utils: Trim the text part used for the license file checksum
This avoids including irrelevant information when calculating the
license checksum.

License-Update: Trim the text part used for the license file checksum
(From OE-Core rev: cfdda2ab6f986f811fbddd88573b28c239648a15)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:08:51 +00:00
Peter Kjellerstedt
e72446b9b4 alsa-lib: Trim the text part used for the license file checksum
This avoids including irrelevant information when calculating the
license checksum.

License-Update: Trim the text part used for the license file checksum
(From OE-Core rev: 17cf76a590474d062180bfd979348ec041d8697f)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:08:51 +00:00
Scott Rifenbark
da81542171 YP 3.0.1 Documentation: Set up the 3.0.1 release.
* Updated poky.ent
* Updated mega-manual.sed
* Updated <manual>.xml with release date

(From yocto-docs rev: 6418138ce8d9f2fa1e3d4ef10ec6187584d15f2c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-09 12:03:06 +00:00
Scott Rifenbark
4bc32d5fb5 dev-manual: Removed duplicate paragraph for selecting init manager.
(From yocto-docs rev: de4e65622fb81ed887a392cf0928f18a681c4935)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-09 12:03:06 +00:00
Christopher Larson
a34a5fb3eb dosfstools: fix CP437 error from dosfsck -l
Fix this error seen when using dosfsck -l to list fs contents:

    CP437: Invalid argument

(From OE-Core rev: 8a5fdac3c2d207b2cfac64ec2a2626c3ef154d84)

(From OE-Core rev: a6bd358a27a9346ab364734ca22f35b30f4eb590)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-06 14:49:33 +00:00
Anuj Mittal
6945f565c9 libarchive: fix CVE-2019-19221
Also see:
https://github.com/libarchive/libarchive/issues/1276

(From OE-Core rev: 422bef7a205b9b5d48d5b0e0b2b14ac65484607a)

(From OE-Core rev: f3e7298c32c430dfc955a2023474810ae32926ba)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-06 14:49:33 +00:00
Anuj Mittal
5d1aeb4163 glibc: fix CVE-2019-19126
Backport from 2.30 stable branch and drop NEWS section.

(From OE-Core rev: b4d4f70380c100d8ab06557237d8d5649a885e30)

(From OE-Core rev: 3d790738abd884121372f1e00170f9b42b13b5f1)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-06 14:49:33 +00:00
Anuj Mittal
e9e96e6e61 nasm: fix CVE-2019-14248
See:
https://bugzilla.nasm.us/show_bug.cgi?id=3392576

(From OE-Core rev: 5ac52e78775759d2d06514ac2ae4c98e94190875)

(From OE-Core rev: f1cc582fe1db4d0d4e87316646a7065c4051c906)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-06 14:49:33 +00:00
Anuj Mittal
f5d638a93e ghostscript: fix for CVE-2019-14811 is same as CVE-2019-14813
https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2019-14813
https://www.openwall.com/lists/oss-security/2019/08/28/2

(From OE-Core rev: afef29326b4332fc87c53a5d9d43288cddcdd944)

(From OE-Core rev: 85ae609d789763f9a6400dc603b675cb57bd7654)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-06 14:49:33 +00:00
Ross Burton
4c72d90822 libsoup-2.4: upgrade to 2.66.4
Fixes CVE-2019-17266.

(From OE-Core rev: ffdbcd78955d43d34988991f1d217036f044167d)

(From OE-Core rev: d54d6c994850f4c6994dc0974f905148a024e98f)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Bug fix release:
https://gitlab.gnome.org/GNOME/libsoup/compare/2.66.2...2.66.4]
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-06 14:49:33 +00:00
Hongxu Jia
198870249e go: fix CVE-2019-17596
2017d88dbc

(From OE-Core rev: 581de91fcf73675f638e7b739dd99291baf36f50)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-06 14:49:33 +00:00
Adrian Bunk
ccca64c80a bind: Whitelist CVE-2019-6470
(From OE-Core rev: 016bb19213832409dd5b914d54f8af08037e9c07)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-06 14:49:33 +00:00
Vinay Kumar
473cb322c9 gdb: Fix CVE-2019-1010180
Source: git://sourceware.org/git/binutils-gdb.git
Tracking -- https://sourceware.org/bugzilla/show_bug.cgi?id=23657

Backported upstream commit 950b74950f6020eda38647f22e9077ac7f68ca49 to gdb-8.3.1 sources.

Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=950b74950f6020eda38647f22e9077ac7f68ca49]

(From OE-Core rev: 82a227e54e704ef9237c1613b9d3350fa26fe9dd)

(From OE-Core rev: 0a20e92a02b3ba1687792b3607c0e30a6247b42b)

Signed-off-by: Vinay Kumar <vinay.m.engg@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-06 14:49:33 +00:00
Stefan Ghinea
bb702471b5 ghostscript: CVE-2019-14869
A flaw was found in all versions of ghostscript 9.x before 9.28,
where the `.charkeys` procedure, where it did not properly secure
its privileged calls, enabling scripts to bypass `-dSAFER` restrictions.
An attacker could abuse this flaw by creating a specially crafted
PostScript file that could escalate privileges within the Ghostscript
and access files outside of restricted areas or execute commands.

References:
https://nvd.nist.gov/vuln/detail/CVE-2019-14869

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

(From OE-Core rev: 0bb88ac63b4e1728373c6425477a32f7a6362b2c)

(From OE-Core rev: 9827b7df6f008f4384bbe22beeb0fe6adfeb36d6)

Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-06 14:49:33 +00:00
Kai Kang
5d50b0549e bitbake: runqueue.py: not show warning for deferred multiconfig task
When follow the instructions of multiconfig from Yocto dev manual that
set in core-image-sato recipe:

  do_image[mcdepends] = "multiconfig:x86:arm:core-image-minimal:do_rootfs"

it show too many annoying warnings look like:

| WARNING: Deferring mc:x86:virtual:native:/buildarea6/kkang/poky/meta/recipes-support/libxslt/libxslt_1.1.33.bb:do_populate_sysroot
| after mc:arm: virtual:native:/buildarea6/kkang/poky/meta/recipes-support/libxslt/libxslt_1.1.33.bb:do_populate_sysroot

Treat them as infomations rather than warnings.

(Bitbake rev: cfa307aabf710d79c404a8571b4158b864a94727)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-29 11:26:18 +00:00
Richard Purdie
12a4c177bb build-appliance-image: Update to zeus head revision
(From OE-Core rev: 75a4cabf55e13e6714c0fdb229cd51b5184ddbef)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-27 13:07:39 +00:00
Richard Purdie
cf0cefd53c bitbake: tests/runqueue: Fix to match recent task migration fixes
(Bitbake rev: 8569ccb5e9fbdeaaf96b78bd02a263b26de54059)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-27 11:03:38 +00:00
Richard Purdie
06c6dc9301 build-appliance-image: Update to zeus head revision
(From OE-Core rev: 5a0ccf24fe00728823ee687823f34d843539df68)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-26 22:27:51 +00:00
Richard Purdie
7719a7af93 build-appliance: Use zeus as the branch
(From OE-Core rev: 4a14eb567b51fbdf1f0630b7c63a289bc66f3b80)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-26 22:27:41 +00:00
Richard Purdie
a972597652 build-appliance-image: Update to zeus head revision
(From OE-Core rev: 378b6de44909a383ac002b00ba6da54de77aa61c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-26 21:47:56 +00:00
Richard Purdie
43710d4805 poky.conf: Bump version for 3.0.1 zeus release
(From meta-yocto rev: 1fd5a106ed22e1c932ec25b5bbd977440cdb2232)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-26 21:47:01 +00:00
Carlos Rafael Giani
823a79d873 gstreamer: Change SRC_URI to use HTTPS access instead of HTTP
Some GStreamer recipes like gstreamer1.0-vaapi already use HTTPS instead
of http. Also, access to http:// is simply redirected by the freedesktop
server to https://, and using HTTPS is anyway generally recommended over
plain HTTP for security reasons. So, normalize the URLs to use HTTPS only.

(From OE-Core rev: 7ca54d025168688b1b612c43c9ed4bc0f2ca4d02)

Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:41 +00:00
Carlos Rafael Giani
6c5493908c gst-validate: upgrade to version 1.16.1
(From OE-Core rev: 2dc11f32c6ddfbfc39317ed8ef08a0010b612ea3)

Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:41 +00:00
Carlos Rafael Giani
8222c38b52 gstreamer1.0-rtsp-server: upgrade to version 1.16.1
(From OE-Core rev: 8e80527d545d1e9588e4a3a808a01ccd1f185139)

Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:41 +00:00
Carlos Rafael Giani
9dc42a094a gstreamer1.0-python: upgrade to version 1.16.1
(From OE-Core rev: 0378bc80633c345452abb7d002873cccf402c3f6)

Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:41 +00:00
Carlos Rafael Giani
3277ee2c16 gstreamer1.0-omx: upgrade to version 1.16.1
(From OE-Core rev: a11e9d9cbd7fa6eba887bb9094c841b85bccb2c4)

Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:41 +00:00
Carlos Rafael Giani
adde04efac gstreamer1.0-vaapi: upgrade to version 1.16.1
(From OE-Core rev: 95f10a15a87836cb569f81292c89c7bf159e4e6d)

Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:41 +00:00
Carlos Rafael Giani
d482c10335 gstreamer1.0-libav: upgrade to version 1.16.1
Removed gtkdoc-no-tree.patch since its changes are now included in 1.16.1

(From OE-Core rev: b8b52c405a241a6901b291ff7f6f8319bbd68652)

Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:41 +00:00
Carlos Rafael Giani
3a4712e834 gstreamer1.0-plugins-ugly: upgrade to version 1.16.1
(From OE-Core rev: bed2a8de47534436f811e40bc1b261fa73eb920b)

Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:41 +00:00
Carlos Rafael Giani
8e363fb137 gstreamer1.0-plugins-bad: upgrade to version 1.16.1
(From OE-Core rev: 48f375103a569838ee345716390dc5595cec1e83)

Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:41 +00:00
Carlos Rafael Giani
baf9b40fb2 gstreamer1.0-plugins-good: upgrade to version 1.16.1
* 0001-scaletempo-Advertise-interleaved-layout-in-caps-temp.patch
* headerfix.patch
  Removed since these changes are already included in 1.16.1

(From OE-Core rev: f992741666ddc83ccbf3149f1544b95958150620)

Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:41 +00:00
Carlos Rafael Giani
69da36a0a6 gstreamer1.0-plugins-base: upgrade to version 1.16.1
(From OE-Core rev: 91fb2701cb84959eb35da2aaf605ab815eaa95dc)

Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:41 +00:00
Carlos Rafael Giani
e571c88c44 gstreamer1.0: upgrade to version 1.16.1
(From OE-Core rev: 8946642d425099717d7fc00a01ced9954263517c)

Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
[ Bug fix only update per release notes:
https://gstreamer.freedesktop.org/releases/1.16/#1.16.1]
1.16.1
The first 1.16 bug-fix release (1.16.1) was released on 23 September 2019
This release only contains bugfixes and it should be safe to update from 1.16.0.
]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:40 +00:00
Kai Kang
a8f6e31beb bind: fix CVE-2019-6471 and CVE-2018-5743
Backport patches to fix CVE-2019-6471 and CVE-2018-5743 for bind.
CVE-2019-6471 is fixed by 0001-bind-fix-CVE-2019-6471.patch and the
other 6 patches are for CVE-2018-5743. And backport one more patch to
fix compile error on arm caused by these 6 commits.

(From OE-Core rev: 3c39d4158677b97253df63f23b74c3a9dd5539f6)

(From OE-Core rev: 07a8d013383b622eabfcefec9378c857b5265c05)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:40 +00:00
Zheng Ruoqin
5655adda72 tiff: Refresh patch
Refresh CVE-2019-7663.patch as it can't be applyed when using PATCHTOOL = "patch".

(From OE-Core rev: 9c44ecdb9bd6d70f0dfde2a8f0b52015fb6a1d86)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:40 +00:00
Alexander Kanavin
a629b6ca52 python: update to 2.7.17
Drop backports, rebase a couple of patches.

This is the second last release of py 2.x; upstream support ends on
1 January 2020, there will be one final 2.x afterwards.

Note that the only thing that still needs python 2.x in oe-core is
u-boot; when the next u-boot update arrives, we should find out
where the py3 migration is for that component before merging the
update.

(From OE-Core rev: 184b60eb905bb75ecc7a0c29a175e624d8555fac)

(From OE-Core rev: d8cd909e7c073eb6365732e5c906f52933fe2e66)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:40 +00:00
Alexander Kanavin
e8e3b2ce49 Revert "devtool/standard.py: Not filtering devtool workspace for devtool finish"
This reverts commit 41d225f4a3.

Unfortunately this change broke 'devtool upgrade' functionality,
causing 'devtool finish' to write out an upgraded recipe that no
longer includes the original upstream source in SRC_URI.

(From OE-Core rev: 2d6e55192dba0bf7f6e23e5ab5b3dbc68835bb28)

(From OE-Core rev: 2bb221ee5689f13d44b7452738f5a97baa1815a1)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:40 +00:00
Anuj Mittal
4c8a760115 boost: fix build for x32
Commit: d336110b94 boost: update to 1.67.0

dropped the patch that ensured boost doesn't over-ride the architecture flags
set by us resulting in errors:

| build/tmp/work/x86_64_x32-poky-linux-gnux32/boost/1.69.0-r0/recipe-sysroot/usr/include/bits/long-double.h:44:10: fatal error: bits/long-double-64.h: No such file or directory
| #include <bits/long-double-64.h>
|          ^~~~~~~~~~~~~~~~~~~~~~~
| compilation terminated.

Remove the relevant part from gcc.jam again to ensure we are passing
them correctly again.

Fixes [YOCTO #13598]

(From OE-Core rev: aad28f42b1c8aa1335c040630ebff4a69be07e35)

(From OE-Core rev: ebbfe23acfbc820ad7b71c95539b5af97a8be49d)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:40 +00:00
Ross Burton
c1cbb6fd15 cve-check: fetch CVE data once at a time instead of in a single call
This code used to construct a single SQL statement that fetched the NVD data for
every CVE requested.  For recipes such as the kernel where there are over 2000
CVEs to report this can hit the variable count limit and the query fails with
"sqlite3.OperationalError: too many SQL variables".  The default limit is 999
variables, but some distributions such as Debian set the default to 250000.

As the NVD table has an index on the ID column, whilst requesting the data
CVE-by-CVE is five times slower when working with 2000 CVEs the absolute time
different is insignificant: 0.05s verses 0.01s on my machine.

(From OE-Core rev: 53d0cc1e9b7190fa66d7ff1c59518f91b0128d99)

(From OE-Core rev: 3ded9a64c95ae02df7562fc69e2af08c150d2452)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:40 +00:00
Ross Burton
1f4750c47f cve-check: neaten get_cve_info
Remove obsolete Python 2 code, and use convenience methods for neatness.

(From OE-Core rev: f19253cc9e70c974a8e21a142086c13d7cde04ff)

(From OE-Core rev: 98162c04c877925c737674a1635b08cf998b92f5)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:40 +00:00
Ross Burton
728f969be0 cve-check: rewrite look to fix false negatives
A previous optimisation was premature and resulted in false-negatives in the report.

Rewrite the checking algorithm to first get the list of potential CVEs by
vendor:product, then iterate through every matching CPE for that CVE to
determine if the bounds match or not.  By doing this in two stages we can know
if we've checked every CPE, instead of accidentally breaking out of the scan too
early.

(From OE-Core rev: d61aff9e22704ad69df1f7ab0f8784f4e7cc0c69)

(From OE-Core rev: 0f42a1d4dbb74ab39e81449cf222302bcc04f7db)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:40 +00:00
Ross Burton
7eaa8b0c36 cve-update-db-native: clean up proxy handling
urllib handles adding proxy handlers if the proxies are set in the environment,
so call bb.utils.export_proxies() to do that and remove the manual setup.

(From OE-Core rev: 6b73004668b3b71c9c38814b79fbb58c893ed434)

(From OE-Core rev: 15f6b4b59805db40df4eff6d5a2809f6f05b66c1)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:40 +00:00
Ross Burton
f307a225ad cve-update-db-native: add an index on the CVE ID column
Create an index on the PRODUCTS table which contains a row for each CPE,
drastically increasing the performance of lookups for a specific CVE.

(From OE-Core rev: b4048b05b3a00d85c40d09961f846eadcebd812e)

(From OE-Core rev: 1b4a524da1532d15eb34a96c5bda5ff2af25a953)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:40 +00:00
Ross Burton
1dbea71db4 cve-update-db-native: don't hardcode the database name
Don't hardcode the database filename, there's a variable for this in
cve-check.bbclass.

(From OE-Core rev: 0d188a9dc4ae64c64cd661e9d9c3841e86f226ab)

(From OE-Core rev: 1c10a3189aad5109f04d1fc208d579225bdd1431)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:40 +00:00
Ross Burton
5dd9ef97d3 cve-update-db-native: don't refresh more than once an hour
We already fetch the yearly CVE metadata and check that for updates before
downloading the full data, but we can speed up CVE checking further by only
checking the CVE metadata once an hour.

(From OE-Core rev: 50d898fd360c58fe85460517d965f62b7654771a)

(From OE-Core rev: f9e9107dbe23293eb96e049d7f821d2e33c23f06)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:40 +00:00
Ross Burton
9971e87cad cve-check: we don't actually need to unpack to check
The patch scanner works with patch files in the layer, not in the workdir, so it
doesn't need to unpack.

(From OE-Core rev: 2cba6ada970deb5156e1ba0182f4f372851e3c17)

(From OE-Core rev: 02e6b727bf62858be7dba061879a6d57bd5a725d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:40 +00:00
Ross Burton
7d43cbd293 libsoup: set CVE_PRODUCT
(From OE-Core rev: 424ea81c3b9965b5d5e45c1dc922dcc910fadc05)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:40 +00:00
Adrian Bunk
1f29596ca7 lz4: Whitelist CVE-2014-4715
(From OE-Core rev: 4471cd22dbf13feb79171b098b9ec4eeded54ae7)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:37:40 +00:00
Joshua Watt
f1098122e1 oeqa: reproducible: Add option to capture bad packages
Adds an option that can be used to copy the offending packages to a temp
directory for later evaluation. This is useful on the Autobuilder to
investigate failures.

(From OE-Core rev: 91d657a0c4cbb273e1e74d38bfd6b4b05d9b372e)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:34:50 +00:00
Alexander Kanavin
c84b0dbcd8 selftest: check that 'devtool upgrade' correctly drops backported patches
There was a regression in this functionality that went unnoticed
due to lack of tests.

(From OE-Core rev: da4c28d5fdc6501a7d3b256cb62cba778e81d16e)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:34:50 +00:00
Alexander Kanavin
67e155c209 cairo: the component is dual licensed
Somehow, over the years, no one noticed that cairo does in fact
offer a choice between mpl and lgpl, but the COPYING makes it clear:

https://gitlab.freedesktop.org/cairo/cairo/blob/1.16/COPYING

(From OE-Core rev: fd209dac3f717daa9d2f44ada092ab054ac2ede8)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:34:50 +00:00
Richard Purdie
605f4d4c32 oeqa/selftest/sstatetests: Ensure we don't use hashequiv for sstatesigs tests
(From OE-Core rev: 7f424c32589b94192842f52235c064cb8c19288e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:34:50 +00:00
Richard Purdie
aa72758866 sanity: Add check for tar older than 1.28
Older versions break opkg-build when reproducible builds are enabled.
Rather than trying to be selective based on which features are enabled,
lets just make this a minimum version.

(From OE-Core rev: 96f5c7c2f8dda7d47af5398b3463aa25921f5301)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:34:50 +00:00
Richard Purdie
fbd00df78b core-image-full-cmdline: Add less
Less was coming from busybox in these images, add the full version.

[YOCTO #13630]

(From OE-Core rev: 2880164ca74ac1fd7b860c61017efe3d55fb4038)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:34:50 +00:00
Richard Purdie
1c0a93e1be opkg-utils: Fix silent empty/broken opkg package creation
opkg-build was failing on hosts where tar < 1.28 and reproducibile builds
were enabled but it was doing this silently and generating corrupted
(empty) ipk files. Add a fix for this (submitted upstream).

The fix requires bash but if you're building ipk files this shoudn't be
a problem.

(From OE-Core rev: 5d774331226f967a2d00c9594c4811ee378cd572)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:34:50 +00:00
Richard Purdie
26f62a423d opkg: Add upstream fixes for empty packages
An ipk with a zero size data.tar file caused opkg to crash with a
double free abort. Add the upstream fixes for this.

(From OE-Core rev: ea1ded0b47e85d039dfad2b59580817bfb335739)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:34:50 +00:00
Richard Purdie
f5efafffbc bitbake: runqueue: Ensure failed harddependencies in scenequeue are accounted for in migrations
Setscene hard dependencies were not being correctly handled during task migration.
For example, do_package of recipe X might become valid due to hashequiv yet we're
still rebuilding pseudo-native, a harddep of do_package. This would mean
it would try to execute that setscene task despite pseudo not being present.

Fix this by ignoring tasks with failed harddependencies. This does mean
stlightly more rebuilds than is optimal but it avoids build crashes. Ultimately
the new runqueue model can likely better handle these cases than the older codebase
could but that is for another more invasive patch.

(Bitbake rev: 9a1072060350dc2e0eee14a5cc5af20c900f8a6d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:26:15 +00:00
Richard Purdie
f86baae14d bitbake: runqueue: Improve sstate rehashing output
Bibake is currently too 'chatty' when hash equivalence is enabled. Fix
this by only printing the log output if a rehash happens and it matches
an sstate object.

Also, pass a summary option to the hash checking function. This was
already changed to a mechanism which allows addition of new parameters
so this should be backwards and forwards compatible.

(Bitbake rev: c5c5d786ca968d0e48002fe8acbcc8a63a954b67)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:26:15 +00:00
Richard Purdie
456f5e0d23 bitbake: siggen: Fix hashequiv bug where new hash wasn't referenced correctly
If a hash is reported to the hash server, the stamp written out by the
current task didn't account for any new hash the server may have provided.
Fix this so the correct stamp is written. This means "bitbake X; bitbake X"
no longer rebuilds lots of things when hashequiv is active.

(Bitbake rev: 4299afdd290f9d1c5616598f5fe83c195a64b63c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:26:15 +00:00
Richard Purdie
8e2bb3baf9 bitbake: prserv/serv: Only restart the server if settings change
The server is now restarting when running commands which doesn't make
sense. Only restart if its configuration has changed. This should
potentially fix various memory resident bitbake usages too.

(Bitbake rev: 7c847b01c30fc42cc78244f00fdf5eaa7b5df716)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:26:15 +00:00
Richard Purdie
3e8e6700cc bitbake: runqueue: Fix hash equivalence duplicate tasks running
The key problem is that currently running setscene tasks are not
accounted for when processing task migrations. This means can allow
two of the same task to execute at the same time with unpredictable
effects.

This change allows us to stop doing that and refactor the code slightly
to make it clearer that these conditions don't arrive even with
deferred tasks.

(Bitbake rev: 33ffc2128b1a74fa7179a8341db68cddf402536f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:26:15 +00:00
Richard Purdie
49bc773cd0 bitbake: fetch2/clearcase: Fix warnings from python 3.8
bitbake/lib/bb/fetch2/clearcase.py:148: SyntaxWarning: "is" with a literal. Did you mean "=="?
      if command is 'mkview':
bitbake/lib/bb/fetch2/clearcase.py:155: SyntaxWarning: "is" with a literal. Did you mean "=="?
      elif command is 'rmview':
bitbake/lib/bb/fetch2/clearcase.py:159: SyntaxWarning: "is" with a literal. Did you mean "=="?
      elif command is 'setcs':

Python 3.8 is quite correct and we so mean "==" here, fix it to
avoid the warnings.

(Bitbake rev: 2cccc14304855cb55f339e465f6ba6ed0c69a7ab)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:26:15 +00:00
Ross Burton
0d6c922af9 bitbake: utils: also use mmap for SHA256 and SHA1, for performance
md5_file() uses a mmap() window to improve performance when hashing files, so
refactor the code and do the same for SHA1 and SHA256.

(Bitbake rev: 94ede642dce8cdbf09f566e3f7e9e260d33fda27)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:26:15 +00:00
Ross Burton
59edce3af5 bitbake: tests: add test for the hashing functions
Add a basic test for bb.utils.md5_file() etc.

(Bitbake rev: d535e78b14136e74d6e96ff24d3464d62637459d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:26:15 +00:00
Peter Kjellerstedt
9350b76f27 bitbake: cooker: Remove a left-over comment about expanded_data
This should have been removed together with expanded_data in commit
e3694e73 (cooker/command: Drop expanded_data).

(Bitbake rev: 987996f01d55bc6433aeb7f43c209eb12f6d796b)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:26:15 +00:00
Gavin Li
4010e6a25d bitbake: prserv: fix ResourceWarning due to unclosed socket
With PRSERV_HOST = "localhost:0", this message would occasionally pop up
during the initial cache read:

WARNING: /home/matic/ambayocto/poky/bitbake/lib/bb/cache.py:446: ResourceWarning: unclosed <socket.socket fd=10, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 45655)>
  value = pickled.load()

The file location stated is irrelevant; it just happens to be wherever
CPython decides to run the garbage collector. The issue is that after we
fork off a PRServer, self.socket is also duplicated. The parent side of
it also needs to be closed.

(Bitbake rev: cd970c9efa805ec3e7ba952df1701b347441ec7b)

Signed-off-by: Gavin Li <gavin@matician.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:26:15 +00:00
Volker Vogelhuber
0f408d8a2e bitbake: fetch2/hg: Fix various runtime issues
Fix mercurial fetching after breakage from changes to the core fetcher.
Fix username and password usage and setting moddir needed by setup_revisions.

(Bitbake rev: c61c8356cce4d7307f74147dcf2b2cf103db84a8)

Signed-off-by: Volker Vogelhuber <v.vogelhuber@digitalendoscopy.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:26:15 +00:00
Christopher Larson
0b55d6c27e bitbake: tests/fetch: add test for fetching shallow revs
[YOCTO #13586]

(Bitbake rev: 566a6fe8c217c02f1ba5afc621ae9c3523f35d03)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:26:12 +00:00
Christopher Larson
2d6a3655e9 bitbake: fetch2/git: fetch shallow revs when needed
When bitbake determines if a git clone needs updating, it only checks for the
needed srcrevs, not the revs listed in BB_GIT_SHALLOW_REVS, which will fail if
using shallow and the needed rev was added to the upstream git repo after a
previous fetch. Ensure that we also check for shallow revs.

[YOCTO #13586]

(Bitbake rev: 24e3c7189e7d41bcbb46078a41c3a9daf391202a)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25 21:26:12 +00:00
Adrian Bunk
0275e68b05 iputils: Whitelist CVE-2000-1213 CVE-2000-1214
(From OE-Core rev: 9fea7c3fae30bb1eecb31ec3bf777db981dc1eed)

(From OE-Core rev: 6431e869998baa1ddfe04d2d1fb7a81f60725ed2)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-19 00:24:22 +00:00
Peter Kjellerstedt
b990f0c7dc sysstat: Correct when to use the package provided systemd unit files
There have been a number of changes back and forth as to when and how
to use the systemd unit files provided by the package. The correct
condition is actually that both cron and systemd need to be enabled
for them to be installed.

(From OE-Core rev: d6c975160197f67937dfbe91b08100b0f597c589)

(From OE-Core rev: 18e1c8c967eb4512f226919cd2b6b1fb4795ccb1)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-19 00:24:22 +00:00
Peter Kjellerstedt
c4bd636938 sysstat: Correct our systemd unit file
In commit 8862f21e (sysstat: 12.1.3 -> 12.1.6), sa_lib_dir was changed
from "${libdir}/sa" to "${libexecdir}/sa" to avoid problems with
multilib. However, the systemd unit file was not changed accordingly,
which lead to the following error when trying to start the service:

  systemd[4698]: sysstat.service: Failed at step EXEC spawning
  /usr/lib/sa/sa1: No such file or directory

(From OE-Core rev: 0fd691b9801b5313ff2e2c2cd5ca13fd50063235)

(From OE-Core rev: e5c5ffb048e9ebce333d855254ef88eda2f3bf6b)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-19 00:24:22 +00:00
Chen Qi
e97c2d769f python: fix CVE-2019-16935
(From OE-Core rev: 1a7593bcdaf8a8cf15259aee8a0e2686247f2987)

(From OE-Core rev: c0fcbf327288ef61e30fdbe27453875916ca32ba)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-19 00:24:22 +00:00
Ross Burton
348778f89c wpa-supplicant: fix CVE-2019-16275
(From OE-Core rev: d7b5a2ebdb6e74a21059ac2496b5dbea4597eb87)

(From OE-Core rev: 1c1c70ee26078357c4fe3647581f4adec1a8a97d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-19 00:24:22 +00:00
Trevor Gamblin
85e3e6dfd6 binutils: fix CVE-2019-17451
Backport upstream fix. No upstream release version of
binutils it yet, so backport the fix independently.

(From OE-Core rev: 3693a0a8b9461521b95613a76b7fd79c86a3bf8f)

(From OE-Core rev: 8e2a1cdd7572d051cc23350bf8838a984dfbd2bc)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-19 00:24:22 +00:00
Trevor Gamblin
724eb2e369 binutils: fix CVE-2019-17450
Backport upstream fix. No upstream release version of
binutils it yet, so backport the fix independently.

(From OE-Core rev: a4ead72b958ded4941f96741029f4955930ba758)

(From OE-Core rev: 8b33aeb4122be31b2aed29e40dcac01ea4643b63)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-19 00:24:22 +00:00
Richard Purdie
1fc208bd48 pseudo: Add statx support to fix fedora30 issues
Modern distros (e.g. fedora30) are starting to use the new statx() syscall through
the newly exposed glibc wrapper function in software like coreutils (e.g. the ls
command). Add support to intercept this to pseudo.

(From OE-Core rev: f47017ff7f1ae1731412524768af372791068689)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:16 +00:00
Haris Okanovic
01850c786a initscripts/sysfs.sh: Mount /sys/firmware/efi/efivars when possible
Without this change, efibootmgr is unable to recover BootOrder if lost
during a previous write operation, e.g. exceeded storage capacity. This
is problematic using EFI to manage boot flow from Linux (E.g. via RAUC).

https://www.kernel.org/doc/Documentation/filesystems/efivarfs.txt

(From OE-Core rev: adc0a31169f59d0183c327347b9ab3bcebb1aef2)

Signed-off-by: Haris Okanovic <haris.okanovic@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:16 +00:00
Zhixiong Chi
409b656f74 libtirpc: create the symbol link for rpc header files
Since the Sun RPC is deprecated in glibc, the rpc header files
are not provided any more, but it allows alternative RPC
implementations, such as TIRPC or rpcsvc-proto, to be used.

So we create the symbol link for rpc header files for tirpc to
be more compatible with the glibc version and the application usage.

(From OE-Core rev: 0b9748c655b6f733b504e70288f4b91dca2e4d58)

Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:16 +00:00
Jacob Kroon
4ad64a5cf5 rm_work: Promote do_image_qa stamps to setscene versions
[ YOCTO #13212 ]

Suggested-by: Romuald Jeanne <romuald.jeanne@st.com>
(From OE-Core rev: 624897ee788fe026a04951baaf770daca43e892c)

Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:16 +00:00
Samuli Piippo
1da39077e5 linux-firmware: update packaging for brcm files
Add new package for bcm4366c and include available NVRAM config files
into the corrent bcm* packages.

(From OE-Core rev: 957c3d39b63f57d896ee89d727007ac2ce6672e3)

Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:16 +00:00
Ross Burton
006b110cdb patch: the CVE-2019-13638 fix also handles CVE-2018-20969
(From OE-Core rev: 41b1d53cea0302f1c3954c6ab048366c908cf754)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:16 +00:00
Ross Burton
8d90432a73 recipeutils-test: use a small dependency in the dummy recipe
recipeutils-test has virtual/libx11 as a DEPENDS, but this will cause errors if
the recipe is built in an environment without x11 in DISTRO_FEATURES.

This dependency isn't actually used for anything so we could remove it, but to
save updating the test cases too just swap virtual/libx11 for zlib.

[ YOCTO #13611 ]

(From OE-Core rev: 90b4b7dd19526e8aba79cf469dcc2c05401f36cc)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:16 +00:00
Alexander Kanavin
8775cdf59a selftest: skip virgl test on centos 7 entirely
With the sdl frontend, qemu isn't able to even boot fully,
so let's skip the test early.

(From OE-Core rev: 1344a6a1300007b4fadaf815f6652d30e7834430)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:16 +00:00
Ross Burton
a8580a49b0 cve-check: failure to parse versions should be more visible
(From OE-Core rev: 6b5cadd1a5822641285946f7e2ad56e294658621)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:16 +00:00
Bruce Ashfield
3023bc10ce linux-yocto/5.2: update to v5.2.20
Updating linux-yocto/5.2 to the latest korg -stable release that comprises
the following commits:

    56fd0c9f5473 Linux 5.2.20
    6f375cee0394 vfs: set fs_context::user_ns for reconfigure
    fbad63fcf7f8 9p/cache.c: Fix memory leak in v9fs_cache_session_get_cookie
    23721140761c KVM: hyperv: Fix Direct Synthetic timers assert an interrupt w/o lapic_in_kernel
    f6e1c74f5664 kexec: bail out upon SIGKILL when allocating memory.
    a761ba725477 NFC: fix attrs checks in netlink interface
    08519f370a57 dm raid: fix updating of max_discard_sectors limit
    069a73c93447 smack: use GFP_NOFS while holding inode_smack::smk_lock
    73cf33180fd5 Smack: Don't ignore other bprm->unsafe flags if LSM_UNSAFE_PTRACE is set
    e4875cfb207f soundwire: fix regmap dependencies and align with other serial links
    455807823191 arm: use STACK_TOP when computing mmap base address
    a7d44c89fb47 arm: properly account for stack randomization and stack guard gap
    d474fced6704 mips: properly account for stack randomization and stack guard gap
    5edc5cfcd1ce arm64: consider stack randomization for mmap base only when necessary
    0499bb1b61cd kmemleak: increase DEBUG_KMEMLEAK_EARLY_LOG_SIZE default to 16K
    b71617b36dc6 ocfs2: wait for recovering done after direct unlock request
    5f63ef732675 kbuild: clean compressed initramfs image
    26235380e633 crypto: hisilicon - Fix double free in sec_free_hw_sgl()
    ef1bb2f3c68c hypfs: Fix error number left in struct pointer member
    86fa1c1b3ab1 pktcdvd: remove warning on attempting to register non-passthrough dev
    30ef03cb2c46 fat: work around race with userspace's read via blockdev while mounting
    049e9c72a671 ARM: 8903/1: ensure that usable memory in bank 0 starts from a PMD-aligned address
    68a14319be38 ARM: 8905/1: Emit __gnu_mcount_nc when using Clang 10.0.0 or newer
    b10ee4270915 PCI: Use static const struct, not const static struct
    88b4b5b7e2a8 security: smack: Fix possible null-pointer dereferences in smack_socket_sock_rcv_skb()
    0728352751bb PCI: exynos: Propagate errors for optional PHYs
    6eb7a0a0eb86 PCI: imx6: Propagate errors for optional regulators
    130642ed27a6 PCI: histb: Propagate errors for optional regulators
    dc35055b644f PCI: rockchip: Propagate errors for optional regulators
    06f8fc7effb5 HID: apple: Fix stuck function keys when using FN
    1c8c46bdfcde PCI: Add pci_info_ratelimited() to ratelimit PCI separately
    400a250cc06f selinux: fix residual uses of current_security() for the SELinux blob
    30f8969d6265 rtc: pcf85363/pcf85263: fix regmap error in set_time
    1a5f22226ad0 rtc: snvs: fix possible race condition
    6edfcbdc24be ARM: 8875/1: Kconfig: default to AEABI w/ Clang
    5a58f0bf27ff soundwire: intel: fix channel number reported by hardware
    175f4efcb12a ARM: 8898/1: mm: Don't treat faults reported from cache maintenance as writes
    cf4e9c2472ac mips/atomic: Fix smp_mb__{before,after}_atomic()
    a7ef43bf9064 livepatch: Nullify obj->mod in klp_module_coming()'s error path
    677540cb39e0 PCI: layerscape: Add the bar_fixed_64bit property to the endpoint driver
    97c3d2a3dd8f PCI: pci-hyperv: Fix build errors on non-SYSFS config
    57e4c0e0efce mips/atomic: Fix loongson_llsc_mb() wreckage
    11daaf5c38f2 HID: wacom: Fix several minor compiler warnings
    503aae8dcc18 PCI: tegra: Fix OF node reference leak
    b0a68c638875 mfd: intel-lpss: Remove D3cold delay
    b6cb1efe18cc i2c-cht-wc: Fix lockdep warning
    d1d45f98a6e6 MIPS: tlbex: Explicitly cast _PAGE_NO_EXEC to a boolean
    7bd355196324 MIPS: Don't use bc_false uninitialized in __mm_isBranchInstr
    cac61f5b7d95 MIPS: Ingenic: Disable broken BTB lookup optimization.
    b67fd3bfeec5 ext4: fix potential use after free after remounting with noblock_validity
    ad849db7534b f2fs: fix to drop meta/node pages during umount
    ce7adbbc06e3 dma-buf/sw_sync: Synchronize signal vs syncpt free
    99a2037bec11 scsi: core: Reduce memory required for SCSI logging
    cbd9a87fbdf9 clk: sprd: add missing kfree
    4d5a7f001acc mbox: qcom: add APCS child device for QCS404
    910d8b71530c powerpc: dump kernel log before carrying out fadump or kdump
    04dddb1ca7ad clk: Make clk_bulk_get_all() return a valid "id"
    b6185efcf241 clk: imx: clk-pll14xx: unbypass PLL by default
    d54c3307cac1 clk: imx: pll14xx: avoid glitch when set rate
    9b538d38aa92 clk: at91: select parent if main oscillator or bypass is enabled
    39a3ff30b6ad arm64: fix unreachable code issue with cmpxchg
    15786d677bbc mailbox: mediatek: cmdq: clear the event in cmdq initial flow
    1496f3d15934 pinctrl: meson-gxbb: Fix wrong pinning definition for uart_c
    112f51caf1b6 powerpc/pseries: correctly track irq state in default idle
    f87906966831 clk: qcom: gcc-sdm845: Use floor ops for sdcc clks
    e5169c0043af powerpc/eeh: Clean up EEH PEs after recovery finishes
    c25829e2e7de pstore: fs superblock limits
    b32e4cc264c8 powerpc/64s/exception: machine check use correct cfar for late handler
    f939cc03668f drm/amdgpu/si: fix ASIC tests
    bfbc57ef3481 selftests/powerpc: Retry on host facility unavailable
    73bffb99ddca drm/amd/display: support spdif
    18184bd06a69 clk: renesas: cpg-mssr: Set GENPD_FLAG_ALWAYS_ON for clock domain
    b4b220dfcd36 clk: renesas: mstp: Set GENPD_FLAG_ALWAYS_ON for clock domain
    b5c5e7dfde66 pinctrl: amd: disable spurious-firing GPIO IRQs
    b1a330db3cc3 drm/nouveau/volt: Fix for some cards having 0 maximum voltage
    ecce6020a052 drm/nouveau/kms/tu102-: disable input lut when input is already FP16
    6ad134a33083 vfio_pci: Restore original state on release
    169edc8a1b8b powerpc/eeh: Clear stale EEH_DEV_NO_HANDLER flag
    0b54040780ce pinctrl: tegra: Fix write barrier placement in pmx_writel
    a16c6638d760 powerpc/perf: fix imc allocation failure handling
    4ce5f278af62 powerpc/pseries/mobility: use cond_resched when updating device tree
    714886254f3c powerpc/64s/radix: Fix memory hotplug section page table creation
    de37ad13aca1 powerpc/futex: Fix warning: 'oldval' may be used uninitialized in this function
    f2118bfd0259 powerpc/rtas: use device model APIs and serialization during LPM
    26c32f58d8eb powerpc/xmon: Check for HV mode when dumping XIVE info from OPAL
    fa702b72cbf9 clk: zx296718: Don't reference clk_init_data after registration
    5772dedde987 clk: sprd: Don't reference clk_init_data after registration
    3c384b661818 clk: meson: axg-audio: Don't reference clk_init_data after registration
    8e9a12894cc3 clk: sirf: Don't reference clk_init_data after registration
    5a90971761cd clk: actions: Don't reference clk_init_data after registration
    672ce7241a40 powerpc/powernv/ioda2: Allocate TCE table levels on demand for default DMA window
    97641efe039e drm/amd/display: reprogram VM config when system resume
    075ad48409c1 drm/amd/display: Fix frames_to_insert math
    73de2baa5b3c drm/amd/display: fix issue where 252-255 values are clipped
    98ecf758e63f clk: sunxi-ng: v3s: add missing clock slices for MMC2 module clocks
    60e5b94e4fe6 clk: qoriq: Fix -Wunused-const-variable
    99340b4cad30 ipmi_si: Only schedule continuously in the thread in maintenance mode
    dc8331fb5397 pinctrl: stmfx: update pinconf settings
    49b23a7d976d PCI: rpaphp: Avoid a sometimes-uninitialized warning
    d1deded18c3e clk: imx8mq: Mark AHB clock as critical
    22acd1a64d95 gpu: drm: radeon: Fix a possible null-pointer dereference in radeon_connector_set_property()
    0cb2ddf9a3a0 drm/radeon: Fix EEH during kexec
    a86a8e6ef256 drm/amdgpu: Fix hard hang for S/G display BOs.
    d8847b4b3a24 drm/rockchip: Check for fast link training before enabling psr
    d85e0b4ef1f2 drm/panel: check failure cases in the probe func
    f85634c3ffd2 drm/stm: attach gem fence to atomic state
    0b271676816a drm/tinydrm/Kconfig: drivers: Select BACKLIGHT_CLASS_DEVICE
    21eee05ca2c8 video: ssd1307fb: Start page range at page_offset
    b51bb2f57998 drm/amd/display: add monitor patch to add T7 delay
    d7c8317943b5 drm/panel: simple: fix AUO g185han01 horizontal blanking
    bdcef6cd4c94 drm/vkms: Avoid assigning 0 for possible_crtc
    29079f2260ff drm/bridge: tc358767: Increase AUX transfer length limit
    b66b85d54494 drm/vkms: Fix crc worker races
    c036f925087e net: sched: taprio: Avoid division by zero on invalid link speed
    411184eda7d0 net: sched: cbs: Avoid division by zero when calculating the port rate
    90053e8de295 ptp_qoriq: Initialize the registers' spinlock before calling ptp_qoriq_settime
    4437b0b5d236 xen-netfront: do not use ~0U as error return value for xennet_fill_frags()
    04e6fa02cc6e net/rds: Fix error handling in rds_ib_add_one()
    d6870bbdacd6 udp: only do GSO if # of segs > 1
    da0f508134bb tcp: adjust rto_base in retransmits_timed_out()
    c5994847e736 net: dsa: rtl8366: Check VLAN ID and not ports
    11432777d98b vsock: Fix a lockdep warning in __vsock_release()
    fba0b06b5941 udp: fix gso_segs calculations
    9af774bcc460 tipc: fix unlimited bundling of small messages
    c01fc241d449 sch_dsmark: fix potential NULL deref in dsmark_init()
    392053bb2328 sch_cbq: validate TCA_CBQ_WRROPT to avoid crash
    e752bb81ed39 rxrpc: Fix rxrpc_recvmsg tracepoint
    7fc879a38f81 qmi_wwan: add support for Cinterion CLS8 devices
    600c91857832 nfc: fix memory leak in llcp_sock_bind()
    50b26ba8938f net: Unpublish sk from sk_reuseport_cb before call_rcu
    4e71bbe0fdc8 net: sched: taprio: Fix potential integer overflow in taprio_set_picos_per_byte
    a087259d42ba net: qlogic: Fix memory leak in ql_alloc_large_buffers
    ff917e2d2c8d net: ipv4: avoid mixed n_redirects and rate_tokens usage
    3e586883beb4 ipv6: Handle missing host route in __ipv6_ifa_notify
    a0efe1cbadc4 ipv6: drop incoming packets having a v4mapped source address
    93b1f9364559 hso: fix NULL-deref on tty open
    7edcdec673dc erspan: remove the incorrect mtu limit for erspan
    a203f2d6b4ea cxgb4:Fix out-of-bounds MSI-X info array access
    076d9f965e56 Linux 5.2.19
    8c4f7f403e79 platform/chrome: cros_ec_rpmsg: Fix race with host command when probe failed
    d4ecc0a011cc mt76: mt7615: fix mt7615 firmware path definitions
    7dcd2e608bd3 mt76: mt7615: always release sem in mt7615_load_patch
    c959aebdc313 md/raid0: avoid RAID0 data corruption due to layout confusion.
    cb2daf3e8cef drm/amd/display: Restore backlight brightness after system resume
    5bd1ab51d4c7 CIFS: Fix oplock handling for SMB 2.1+ protocols
    b90f653c964e CIFS: fix max ea value size
    bc3a3e7c695c i2c: riic: Clear NACK in tend isr
    ba86f3d55fc1 hwrng: core - don't wait on add_early_randomness()
    fa0c86d48184 quota: fix wrong condition in is_quota_modification()
    6c8042e92499 ext4: fix punch hole for inline_data file systems
    7c7aff67e841 ext4: fix warning inside ext4_convert_unwritten_extents_endio
    026f900e102a mtd: rawnand: stm32_fmc2: avoid warnings when building with W=1 option
    afe3a71e655d ipmi: move message error checking to avoid deadlock
    b0df636473e5 xfs: Fix stale data exposure when readahead races with hole punch
    b56335c486f7 mm: Handle MADV_WILLNEED through vfs_fadvise()
    a775ad97ce77 fs: Export generic_fadvise()
    f811fce3971f /dev/mem: Bail out upon SIGKILL.
    84a85e7ec32e cfg80211: Purge frame registrations on iftype change
    d1e007a497f6 md: only call set_in_sync() when it is expected to succeed.
    c4ab81dab3b0 md: don't report active array_state until after revalidate_disk() completes.
    801070ab8ad5 md/raid6: Set R5_ReadError when there is read failure on parity disk
    82dd0828253a ACPI / LPSS: Save/restore LPSS private registers also on Lynxpoint
    ca1a7debf461 SUNRPC: Fix buffer handling of GSS MIC without slack
    89c2c6f70602 SUNRPC: Dequeue the request from the receive queue while we're re-encoding
    e5b682d7792f Btrfs: fix race setting up and completing qgroup rescan workers
    8e2074d3c283 btrfs: qgroup: Fix reserved data space leak if we have multiple reserve calls
    f2a4259af36d btrfs: qgroup: Fix the wrong target io_tree when freeing reserved data space
    51bae3f5578c btrfs: adjust dirty_metadata_bytes after writeback failure of extent buffer
    3c6b7c79fe96 btrfs: Relinquish CPUs in btrfs_compare_trees
    620cde3fe214 Btrfs: fix use-after-free when using the tree modification log
    db66429314dd btrfs: fix allocation of free space cache v1 bitmap pages
    0a19609d9a2f ovl: filter of trusted xattr results in audit
    ee080509c14e ovl: Fix dereferencing possible ERR_PTR()
    e2a5e040a63b smb3: fix leak in "open on server" perf counter
    79aeacfeebb5 smb3: allow disabling requesting leases
    a98f553d2b78 block: fix null pointer dereference in blk_mq_rq_timed_out()
    facb691f45d6 block: mq-deadline: Fix queue restart handling
    ab3d89dbec88 i40e: check __I40E_VF_DISABLE bit in i40e_sync_filters_subtask
    00cac3533335 ath10k: fix channel info parsing for non tlv target
    7228bca11c14 rtw88: pci: Use DMA sync instead of remapping in RX ISR
    80e456c82a5c rtw88: pci: Rearrange the memory usage for skb in RX ISR
    a8e0442493bf KEYS: trusted: correctly initialize digests and fix locking issue
    e1ff89ad3dde mt76: round up length on mt76_wr_copy
    d08bb3463d8f lib/lzo/lzo1x_compress.c: fix alignment bug in lzo-rle
    482859563c02 memcg, kmem: do not fail __GFP_NOFAIL charges
    ef54420b0726 memcg, oom: don't require __GFP_FS when invoking memcg OOM killer
    1cbbcacdcdf4 mm/compaction.c: clear total_{migrate,free}_scanned before scanning a new zone
    5377b8767d64 z3fold: fix memory leak in kmem cache
    ed99d2d1af39 z3fold: fix retry mechanism in page reclaim
    9a6b2645aa75 gfs2: clear buf_in_tr when ending a transaction in sweep_bh_for_rgrps
    9b4f0cba4476 efifb: BGRT: Improve efifb_bgrt_sanity_check
    d6acb54716ff regulator: Defer init completion for a while after late_initcall
    f11e0e8942f4 iommu/vt-d: Fix wrong analysis whether devices share the same bus
    f683465f0564 alarmtimer: Use EOPNOTSUPP instead of ENOTSUPP
    5d67ad366f2b iommu/arm-smmu-v3: Disable detection of ATS and PRI
    7fd38df794c2 arm64: dts: rockchip: limit clock rate of MMC controllers for RK3328
    ef2fa63bbe95 arm64: tlb: Ensure we execute an ISB following walk cache invalidation
    516d62914766 ARM: zynq: Use memcpy_toio instead of memcpy on smp bring-up
    b9cbc0df92c3 ARM: samsung: Fix system restart on S3C6410
    f1592b754350 ASoC: Intel: Fix use of potentially uninitialized variable
    6c03deb9baf9 ASoC: Intel: Skylake: Use correct function to access iomem space
    4ccbdceb2e2b ASoC: Intel: NHLT: Fix debug print format
    89beb34d7533 binfmt_elf: Do not move brk for INTERP-less ET_EXEC
    a24d7c499db0 spi: spi-fsl-dspi: Exit the ISR with IRQ_NONE when it's not ours
    f0724e4dc181 spi: ep93xx: Repair SPI CS lookup tables
    215019d6ef10 media: don't drop front-end reference count for ->detach
    11f20198e922 media: sn9c20x: Add MSI MS-1039 laptop to flip_dmi_table
    682dbe2cb5e7 media: videobuf-core.c: poll_wait needs a non-NULL buf pointer
    e1bbf7d2cd21 KVM: x86/mmu: Use fast invalidate mechanism to zap MMIO sptes
    32076032e7db KVM: x86: Disable posted interrupts for non-standard IRQs delivery modes
    fb817d533600 KVM: x86: Manually calculate reserved bits when loading PDPTRS
    c5c761130003 KVM: x86: set ctxt->have_exception in x86_decode_insn()
    8d1e0c157027 KVM: x86: always stop emulation on page fault
    8e422d4af87d platform/x86: intel_int0002_vgpio: Fix wakeups not working on Cherry Trail
    c1b3752b5f25 parisc: Disable HP HSC-PCI Cards to prevent kernel crash
    3a1f5551534d fuse: fix beyond-end-of-page access in fuse_parse_cache()
    99a21e616426 fuse: fix missing unlock_page in fuse_writepage()
    831bd6ec1633 fuse: fix deadlock with aio poll and fuse_iqueue::waitq.lock
    843d38c96532 tpm: Wrap the buffer from the caller to tpm_buf in tpm_send()
    d59609b135ac tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
    43e8e81e357c tpm_tis_core: Turn on the TPM before probing IRQ's
    830afcbc9391 powerpc/imc: Dont create debugfs files for cpu-less nodes
    c9321577cbc9 scsi: implement .cleanup_rq callback
    2492d1d7f34a blk-mq: add callback of .cleanup_rq
    22b97cad6d67 ALSA: hda/realtek - PCI quirk for Medion E4254
    f0028c2bed93 rcu/tree: Fix SCHED_FIFO params
    d567e81a20c0 ARM: dts: am3517-evm: Fix missing video
    5f8095b682d6 randstruct: Check member structs in is_pure_ops_struct()
    03d53cb8acb8 RDMA: Fix double-free in srq creation error flow
    3d97d7d688e7 IB/hfi1: Do not update hcrc for a KDETH packet during fault injection
    040fc3258d95 IB/hfi1: Define variables as unsigned long to fix KASAN warning
    dcbb25d9400b IB/mlx5: Free mpi in mp_slave mode
    44602a8a1406 printk: Do not lose last line in kmsg buffer dump
    9dfb1ce6b615 scsi: qla2xxx: Fix Relogin to prevent modifying scan_state flag
    a16791fccaf6 scsi: scsi_dh_rdac: zero cdb in send_mode_select()
    6e8f051e504d ALSA: firewire-tascam: check intermediate state of clock status and retry
    75c1a117e1f7 ALSA: firewire-tascam: handle error code when getting current source of clock
    77567ebc4060 iwlwifi: fw: don't send GEO_TX_POWER_LIMIT command to FW version 36
    9d9c01542848 ARM: omap2plus_defconfig: Fix missing video
    3d226661238e ARM: dts: logicpd-torpedo-baseboard: Fix missing video
    2e847a842b2b PM / devfreq: passive: fix compiler warning
    8e16bddcc6bd media: omap3isp: Set device on omap3isp subdevs
    d6595ad8ca5d kvm: Nested KVM MMUs need PAE root too
    37099d7a3e66 btrfs: Detect unbalanced tree with empty leaf before crashing btree operations
    3d95c52d789c btrfs: tree-checker: Add ROOT_ITEM check
    9ae8394e41d7 btrfs: extent-tree: Make sure we only allocate extents from block groups with the same type
    7ee67b37a0bf btrfs: delayed-inode: Kill the BUG_ON() in btrfs_delete_delayed_dir_index()
    9e6431c0f2e4 zd1211rw: remove false assertion from zd_mac_clear()
    8e9a39559b73 iommu/amd: Override wrong IVRS IOAPIC on Raven Ridge systems
    d6dfca753d7a ALSA: hda/realtek - Blacklist PC beep for Lenovo ThinkCentre M73/93
    798b010be17b drm: fix module name in edid_firmware log message
    dae45bd9b873 media: ttusb-dec: Fix info-leak in ttusb_dec_send_command()
    06752109ced1 drm/amd/powerplay/smu7: enforce minimal VBITimeout (v2)
    33e91a59bf81 ALSA: hda - Drop unsol event handler for Intel HDMI codecs
    5397eb1a1fb0 ALSA: hda - Add a quirk model for fixing Huawei Matebook X right speaker
    354098b7045d e1000e: add workaround for possible stalled packet
    27a2b39359f8 libertas: Add missing sentinel at end of if_usb.c fw_table
    9eff1ebe2c90 mmc: mtk-sd: Re-store SDIO IRQs mask at system resume
    c5f89ff633d2 raid5: don't increment read_errors on EILSEQ return
    7cb4bc790e12 mmc: dw_mmc: Re-store SDIO IRQs mask at system resume
    6d9a663aca54 mmc: core: Add helper function to indicate if SDIO IRQs is enabled
    d32263d8b9b5 mmc: sdhci: Fix incorrect switch to HS mode
    de6fea9fcf1e sched/psi: Correct overly pessimistic size calculation
    106af0369442 mmc: core: Clarify sdio_irq_pending flag for MMC_CAP2_SDIO_IRQ_NOTHREAD
    f9762c19d883 raid5: don't set STRIPE_HANDLE to stripe which is in batch list
    d54de8cfa4a1 block: make rq sector size accessible for block stats
    6c7b70e220d5 io_uring: fix wrong sequence setting logic
    38b24f688d64 ASoC: dmaengine: Make the pcm->name equal to pcm->id if the name is not set
    a7963f92406d platform/x86: intel_pmc_core: Do not ioremap RAM
    c7e971d4f027 x86/cpu: Add Tiger Lake to Intel family
    6e2056c4424c irqchip/gic-v3-its: Fix LPI release for Multi-MSI devices
    74a94a7e0a01 s390/crypto: xts-aes-s390 fix extra run-time crypto self tests finding
    cf8360a5be18 irqchip/sifive-plic: set max threshold for ignored handlers
    1f57c45eaab5 x86/mm: Fix cpumask_of_node() error condition
    daecd8d05e3d kprobes: Prohibit probing on BUG() and WARN() address
    6265d3c8b96b dmaengine: ti: edma: Do not reset reserved paRAM slots
    18a00f37f418 md/raid1: fail run raid1 array when active disk less than one
    b92d8e39fa70 hwmon: (acpi_power_meter) Change log level for 'unsafe software power cap'
    d57d9213d8b8 hwmon: (k10temp) Add support for AMD family 17h, model 70h CPUs
    94a379db627a closures: fix a race on wakeup from closure_sync
    4b88669aa2f8 ACPI / PCI: fix acpi_pci_irq_enable() memory leak
    70424999fbf1 ACPI: custom_method: fix memory leaks
    997c08a49443 x86/amd_nb: Add PCI device IDs for family 17h, model 70h
    91180767bba9 ARM: dts: exynos: Mark LDO10 as always-on on Peach Pit/Pi Chromebooks
    a6ff82b2cb60 libtraceevent: Change users plugin directory
    4509537c378a iommu/iova: Avoid false sharing on fq_timer_on
    b20a5ef80779 libata/ahci: Drop PCS quirk for Denverton and beyond
    aecef5f0a4fd ASoC: Intel: Haswell: Adjust machine device private context
    a9c3dacf2939 iommu/amd: Silence warnings under memory pressure
    4d3f9cdc0f3e ALSA: firewire-motu: add support for MOTU 4pre
    311abc6a314c nvme-multipath: fix ana log nsid lookup when nsid is not found
    3c971d5dc374 nvmet: fix data units read and written counters in SMART log
    07e66eb2a8c0 x86/mm/pti: Handle unaligned address gracefully in pti_clone_pagetable()
    6198f3954f15 ASoC: fsl_ssi: Fix clock control issue in master mode
    c9e116d055f9 x86/mm/pti: Do not invoke PTI functions when PTI is disabled
    6e46d1f16473 perf evlist: Use unshare(CLONE_FS) in sb threads to let setns(CLONE_NEWNS) work
    b70a9f2ab2fa arm64: kpti: ensure patched kernel text is fetched from PoU
    9093a2e343f2 x86/apic/vector: Warn when vector space exhaustion breaks affinity
    12dae85048f1 sched/cpufreq: Align trace event behavior of fast switching
    92402bba4f32 ACPI / CPPC: do not require the _PSD method
    51f464d8bce7 ASoC: es8316: fix headphone mixer volume table
    57869649b230 leds: lm3532: Fixes for the driver for stability
    ee3251c9e71f media: ov9650: add a sanity check
    826a67380c4a media: aspeed-video: address a protential usage of an unitialized var
    c10ea8447736 perf script: Fix memory leaks in list_scripts()
    8d70572f69cc perf report: Fix --ns time sort key output
    fffe93c89d8b perf trace beauty ioctl: Fix off-by-one error in cmd->string table
    723809bb6d16 media: saa7134: fix terminology around saa7134_i2c_eeprom_md7134_gate()
    1c6a694568db media: cpia2_usb: fix memory leaks
    ecc548676360 media: saa7146: add cleanup in hexium_attach()
    730e14891202 media: cec-notifier: clear cec_adap in cec_notifier_unregister
    b74f2a4c0af2 PM / devfreq: exynos-bus: Correct clock enable sequence
    61496a6956d5 PM / devfreq: passive: Use non-devm notifiers
    6cf8764ed327 ARM: OMAP2+: move platform-specific asm-offset.h to arch/arm/mach-omap2
    7f6346e814ec PM / devfreq: Fix kernel oops on governor module load
    0ac4a7a4562b soc: renesas: Enable ARM_ERRATA_754322 for affected Cortex-A9
    841ee26cb0eb soc: renesas: rmobile-sysc: Set GENPD_FLAG_ALWAYS_ON for always-on domain
    c5a678041db9 ARM: at91: move platform-specific asm-offset.h to arch/arm/mach-at91
    45a550e54f0c EDAC/amd64: Decode syndrome before translating address
    71e85351f2d3 EDAC/amd64: Recognize DRAM device type ECC capability
    e4739ed9e9f4 libperf: Fix alignment trap with xyarray contents in 'perf stat'
    28e3cfd1c820 EDAC/amd64: Support more than two controllers for chip selects handling
    8c17f6f5d0d6 media: dvb-core: fix a memory leak bug
    de23b986dd21 posix-cpu-timers: Sanitize bogus WARNONS
    3df4944a75a3 media: dvb-frontends: use ida for pll number
    328d309f578d media: mceusb: fix (eliminate) TX IR signal length limit
    14944c1cdf66 s390/kasan: provide uninstrumented __strlen
    ad856c85132c arm64: entry: Move ct_user_exit before any other exception
    919bb091f3bb ACPI / APEI: Release resources if gen_pool_add() fails
    8e8821e51180 nbd: add missing config put
    cb00bdfdf4a1 ASoC: mchp-i2s-mcc: Fix unprepare of GCLK
    fd3a27888511 led: triggers: Fix a memory leak bug
    78a5d7570357 ASoC: mchp-i2s-mcc: Wait for RX/TX RDY only if controller is running
    cf37fc6525e6 ASoC: sun4i-i2s: Don't use the oversample to calculate BCLK
    cfc27d524fe8 tools headers: Fixup bitsperlong per arch includes
    0de9cb3ccaf4 powerpc/Makefile: Always pass --synthetic to nm if supported
    b72464b49572 ASoC: uniphier: Fix double reset assersion when transitioning to suspend state
    a6856ba2704a media: hdpvr: add terminating 0 at end of string
    ea9b3fba2de5 media: radio/si470x: kill urb on error
    abec08cc8afd x86/platform/intel/iosf_mbi Rewrite locking
    5ac00c9194ae ARM: dts: imx7-colibri: disable HS400
    d89e114b2f42 ARM: dts: imx7d: cl-som-imx7: make ethernet work again
    a510a16fee76 m68k: Prevent some compiler warnings in Coldfire builds
    751ac20a3913 net: lpc-enet: fix printk format strings
    c3e1334bc47a kasan/arm64: fix CONFIG_KASAN_SW_TAGS && KASAN_INLINE
    3c88b089e592 media: imx: mipi csi-2: Don't fail if initial state times-out
    cab41bda0849 media: omap3isp: Don't set streaming state on random subdevs
    ebe068d7bb79 media: i2c: ov5645: Fix power sequence
    3993c8429927 media: vsp1: fix memory leak of dl on error return path
    91faaa0e282f perf record: Support aarch64 random socket_id assignment
    b8179cfaf017 ARM: xscale: fix multi-cpu compilation
    cb2d2b999afe dmaengine: iop-adma: use correct printk format strings
    50ab41d72d35 media: rc: imon: Allow iMON RC protocol for ffdc 7e device
    b251e979c979 perf unwind: Fix libunwind when tid != pid
    2bc1f53cc46a arm64/efi: Move variable assignments after SECTIONS
    c0282736b94f media: em28xx: modules workqueue not inited for 2nd device
    de122406a437 media: fdp1: Reduce FCP not found message level to debug
    b18c1c75b90a media: i2c: tda1997x: prevent potential NULL pointer access
    f5d115ba1687 media: mtk-mdp: fix reference count on old device tree
    6156280768c3 perf test vfs_getname: Disable ~/.perfconfig to get default output
    a056ef7090e2 perf config: Honour $PERF_CONFIG env var to specify alternate .perfconfig
    b134b502d3b6 media: gspca: zero usb_buf on error
    5e1feedf563e blk-mq: Fix memory leak in blk_mq_init_allocated_queue error handling
    503ac6efb245 idle: Prevent late-arriving interrupts from disrupting offline
    b2ee96a78c9a sched/fair: Use rq_lock/unlock in online_fair_sched_group
    fc31f1c241b0 firmware: arm_scmi: Check if platform has released shmem before using
    a1a19299a6a5 efi: cper: print AER info of PCIe fatal error
    30ff832e9a23 EDAC, pnd2: Fix ioremap() size in dnv_rd_reg()
    cdfe5e064210 perf tools: Fix paths in include statements
    43894a0475c6 loop: Add LOOP_SET_DIRECT_IO to compat ioctl
    bb07be974180 ACPI / processor: don't print errors for processorIDs == 0xff
    fd8bd7dfb04f ASoC: hdac_hda: fix page fault issue by removing race
    338c95ab2187 RAS: Build debugfs.o only when enabled in Kconfig
    ff45dc5d103f media: media/platform: fsl-viu.c: fix build for MICROBLAZE
    c0053b3c6142 md: don't set In_sync if array is frozen
    274971880ff9 md: don't call spare_active in md_reap_sync_thread if all member devices can't work
    a1f4fcb88098 md/raid1: end bio when the device faulty
    998d765255aa arm64/prefetch: fix a -Wtype-limits warning
    912d58f959f1 ASoC: rsnd: don't call clk_get_rate() under atomic context
    5da3a9eb8159 EDAC/altera: Use the proper type for the IRQ status bits
    873aa4af4fdd ia64:unwind: fix double free for mod->arch.init_unw_table
    e89c79710aed ALSA: usb-audio: Skip bSynchAddress endpoint check if it is invalid
    42c6b180a7bf base: soc: Export soc_device_register/unregister APIs
    383466793900 soc: amlogic: meson-clk-measure: protect measure with a mutex
    55b520f85a97 arm64: mm: free the initrd reserved memblock in a aligned manner
    bfae8c471054 cpuidle: teo: Allow tick to be stopped if PM QoS is used
    c02ec6220cf3 media: iguanair: add sanity checks
    db934a6df6d9 EDAC/mc: Fix grain_bits calculation
    7b1c5aa61d98 ALSA: i2c: ak4xxx-adda: Fix a possible null pointer dereference in build_adc_controls()
    0294075e5872 ALSA: hda - Show the fatal CORB/RIRB error more clearly
    9107c9b7bcce x86/apic: Soft disable APIC before initializing it
    be86447601cb rcu/tree: Call setschedule() gp ktread to SCHED_FIFO outside of atomic region
    cc41123523d1 x86/reboot: Always use NMI fallback when shutdown via reboot vector IPI fails
    2965c2e1ec69 sched/deadline: Fix bandwidth accounting at all levels after offline migration
    6c4121115c87 x86/apic: Make apic_pending_intr_clear() more robust
    e75ff42011f1 sched/core: Fix CPU controller for !RT_GROUP_SCHED
    a02f3db8994e sched/fair: Fix imbalance due to CPU affinity
    2af6db20ceae time/tick-broadcast: Fix tick_broadcast_offline() lockdep complaint
    5db042229a8c media: i2c: ov5640: Check for devm_gpiod_get_optional() error
    7c36a65b2ea1 media: hdpvr: Add device num check and handling
    988a38ff1cf0 media: vivid: work around high stack usage with clang
    615883ae490f media: vb2: reorder checks in vb2_poll()
    4610656c129e media: vivid:add sanity check to avoid divide error and set value to 1 if 0.
    7fe87b686cb9 media: exynos4-is: fix leaked of_node references
    1a53850754a9 ASoC: SOF: pci: mark last_busy value at runtime PM init
    f76aa9d803b6 media: mtk-cir: lower de-glitch counter for rc-mm protocol
    5efaf000347a media: dib0700: fix link error for dibx000_i2c_set_speed
    8d68efb7e270 leds: leds-lp5562 allow firmware files up to the maximum length
    3dee582e6190 dmaengine: bcm2835: Print error in case setting DMA mask fails
    5d6d34ade679 firmware: qcom_scm: Use proper types for dma mappings
    8e81af05436c ASoC: sgtl5000: Fix charge pump source assignment
    57868b5cbc50 ASoC: sgtl5000: Fix of unmute outputs on probe
    27879a37f7ad ASoC: tlv320aic31xx: suppress error message for EPROBE_DEFER
    dae532b1a1cc spi: dw-mmio: Clock should be shut when error occurs
    e534295b4c17 regulator: lm363x: Fix off-by-one n_voltages for lm3632 ldo_vpos/ldo_vneg
    8c3a9421b2ef cpufreq: ap806: Add NULL check after kcalloc
    4defe8b0f2f5 ASoC: SOF: Intel: hda: Make hdac_device device-managed
    6646813ee81d ALSA: hda: Flush interrupts on disabling
    a269a7a7632b nfc: enforce CAP_NET_RAW for raw sockets
    f91ee5bc2100 ieee802154: enforce CAP_NET_RAW for raw sockets
    faf60340e231 ax25: enforce CAP_NET_RAW for raw sockets
    ef03ebc40bc8 appletalk: enforce CAP_NET_RAW for raw sockets
    1ca53dc648e8 mISDN: enforce CAP_NET_RAW for raw sockets
    df20d3ce66c5 net/mlx5: Add device ID of upcoming BlueField-2
    38be58c880d9 tcp: better handle TCP_USER_TIMEOUT in SYN_SENT state
    4378493fed94 net: sched: fix possible crash in tcf_action_destroy()
    5f39dd75e078 net/mlx5e: Fix traffic duplication in ethtool steering
    6386577b2927 vrf: Do not attempt to create IPv6 mcast rule if IPv6 is disabled
    229b983d5221 net_sched: add policy validation for action attributes
    629815b9e1eb ipv4: Revert removal of rt_uses_gateway
    d5f1d310bb2b net/sched: cbs: Fix not adding cbs instance to list
    4bbf97f6c114 net: phy: micrel: add Asym Pause workaround for KSZ9021
    3ef1d54a72ca usbnet: sanity checking of packet sizes and device mtu
    b5e57553acde usbnet: ignore endpoints with invalid wMaxPacketSize
    35ad2e82044d tcp_bbr: fix quantization code to not raise cwnd if not probing bandwidth
    afc7190e3847 skge: fix checksum byte order
    0102608d70f0 selftests: Update fib_tests to handle missing ping6
    da0d6e47c20d sch_netem: fix a divide by zero in tabledist()
    9f64c6630929 ppp: Fix memory leak in ppp_write
    bd1df844b1f9 openvswitch: change type of UPCALL_PID attribute to NLA_UNSPEC
    b86bd41b767a nfp: flower: prevent memory leak in nfp_flower_spawn_phy_reprs
    9561c1351232 nfp: flower: fix memory leak in nfp_flower_spawn_vnic_reprs
    ba5f359f2be0 net_sched: add max len check for TCA_KIND
    19bd1045958b net/sched: act_sample: don't push mac header on ip6gre ingress
    ee8c5c7a6f9a net: qrtr: Stop rx_worker before freeing node
    6ee46a2b68fc net/phy: fix DP83865 10 Mbps HDX loopback disable function
    d879091836db macsec: drop skb sk before calling gro_cells_receive
    d37c96675204 ipv6: do not free rt if FIB_LOOKUP_NOREF is set on suppress rule
    98f1a3a21500 cdc_ncm: fix divide-by-zero caused by invalid wMaxPacketSize
    890984f31888 arcnet: provide a buffer big enough to actually receive packets
    0a9d6a58b4ac Linux 5.2.18
    c704eb3aaffa f2fs: use generic EFSBADCRC/EFSCORRUPTED
    673d1167b40e net/rds: Check laddr_check before calling it
    fc5b59770306 net/rds: An rds_sock is added too early to the hash table
    719532b9b832 net_sched: check cops->tcf_block in tc_bind_tclass()
    bd740eacb1d2 Bluetooth: btrtl: Additional Realtek 8822CE Bluetooth devices
    f63432cd1bb2 netfilter: nft_socket: fix erroneous socket assignment
    a2a3638f3e6f xfrm: policy: avoid warning splat when merging nodes
    b442b6d3742b xfs: don't crash on null attr fork xfs_bmapi_read
    baa3902119f5 drm/nouveau/disp/nv50-: fix center/aspect-corrected scaling
    452b129e4876 ACPI: video: Add new hw_changes_brightness quirk, set it on PB Easynote MZ35
    62b72c1f7ba5 Bluetooth: btrtl: HCI reset on close for Realtek BT chip
    f6983a936fbf net: don't warn in inet diag when IPV6 is disabled
    955b7a09bf57 drm/dp: Add DP_DPCD_QUIRK_NO_SINK_COUNT
    a7734a035acf drm: Flush output polling on shutdown
    453bcdd2432b f2fs: fix to do sanity check on segment bitmap of LFS curseg
    d331d4b99fb6 net/ibmvnic: Fix missing { in __ibmvnic_reset
    8defaa56897e dm zoned: fix invalid memory access
    bca9bfa41e3f Revert "f2fs: avoid out-of-range memory access"
    47af17950b03 objtool: Clobber user CFLAGS variable
    0f5df0b76e4f platform/x86: i2c-multi-instantiate: Derive the device name from parent
    811fc53c37be ALSA: hda - Apply AMD controller workaround for Raven platform
    b5215e9269c7 ALSA: hda - Add laptop imic fixup for ASUS M9V laptop
    d51c3b844afb ALSA: dice: fix wrong packet parameter for Alesis iO26
    bf4d30e9950e ALSA: usb-audio: Add DSD support for EVGA NU Audio
    284a30488891 ALSA: usb-audio: Add Hiby device family to quirks for native DSD support
    d17860e1e894 Revert "mm/z3fold.c: fix race between migration and destruction"
    2de3de21bc8a Revert "HID: logitech-hidpp: add USB PID for a few more supported mice"
    807370d02413 clk: imx: imx8mm: fix audio pll setting
    bdbf837b89a9 crypto: talitos - fix missing break in switch statement
    a1e67dae1599 mtd: cfi_cmdset_0002: Use chip_good() to retry in do_write_oneword()
    6c6d88dc737a HID: Add quirk for HP X500 PIXART OEM mouse
    af5676bf7d89 HID: hidraw: Fix invalid read in hidraw_ioctl
    8d88e0d1b3e6 HID: logitech-dj: Fix crash when initial logi_dj_recv_query_paired_devices fails
    55c2b2ac2706 HID: logitech: Fix general protection fault caused by Logitech driver
    a069e96b5280 HID: sony: Fix memory corruption issue on cleanup.
    5f2ba05924ca HID: prodikeys: Fix general protection fault during probe
    df3cc96b2049 Revert "net: hns: fix LED configuration for marvell phy"
    3349449ae730 drm/amd/display: readd -msse2 to prevent Clang from emitting libcalls to undefined SW FP routines
    be3b5f44206e powerpc/xive: Fix bogus error code returned by OPAL
    606f7f9fc442 drm/amd/display: Don't replace the dc_state for fast updates
    0365d15f565a drm/amd/display: Skip determining update type for async updates
    891eae79f7a5 drm/amd/display: Allow cursor async updates for framebuffer swaps
    f6faeecb3659 net/ibmvnic: free reset work of removed device from queue
    cdc112b9cb64 phy: qcom-qmp: Correct ready status, again
    b08d7b36f11d phy: qcom-qmp: Raise qcom_qmp_phy_enable() polling delay
    3da810f95b86 smb3: fix unmount hang in open_shroot
    e6d6a001ed5a Revert "Bluetooth: validate BLE connection interval updates"

(From OE-Core rev: 6017a468d61afbdc6c3e3c406adb16d49ca08fd3)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:16 +00:00
Bruce Ashfield
00c723ea5b linux-yocto/4.19: update to v4.19.78
Updating linux-yocto/4.19 to the latest korg -stable release that comprises
the following commits:

    58fce2064530 Linux 4.19.78
    5b0446c8e0a8 9p/cache.c: Fix memory leak in v9fs_cache_session_get_cookie
    d85bc11a6894 kexec: bail out upon SIGKILL when allocating memory.
    c8a65ec0602a NFC: fix attrs checks in netlink interface
    1b42503211ca smack: use GFP_NOFS while holding inode_smack::smk_lock
    ef9744a0218f Smack: Don't ignore other bprm->unsafe flags if LSM_UNSAFE_PTRACE is set
    4703593498d3 soundwire: fix regmap dependencies and align with other serial links
    322753c78d1d soundwire: Kconfig: fix help format
    74e2a311a226 sch_cbq: validate TCA_CBQ_WRROPT to avoid crash
    ed9420ddce87 tipc: fix unlimited bundling of small messages
    a1afd826e549 xen-netfront: do not use ~0U as error return value for xennet_fill_frags()
    36a4043c4bb8 net/rds: Fix error handling in rds_ib_add_one()
    012363f5ded0 udp: only do GSO if # of segs > 1
    5c08d7e4f1ea net: dsa: rtl8366: Check VLAN ID and not ports
    3c1f0704401c vsock: Fix a lockdep warning in __vsock_release()
    544aee546174 udp: fix gso_segs calculations
    79fd59ae7c2f sch_dsmark: fix potential NULL deref in dsmark_init()
    76b552775d60 rxrpc: Fix rxrpc_recvmsg tracepoint
    7047aae65456 qmi_wwan: add support for Cinterion CLS8 devices
    dd9c580a6d9b nfc: fix memory leak in llcp_sock_bind()
    d5b1db1c7ce4 net: Unpublish sk from sk_reuseport_cb before call_rcu
    9d0995cc268b net: qlogic: Fix memory leak in ql_alloc_large_buffers
    124b64feafa9 net: ipv4: avoid mixed n_redirects and rate_tokens usage
    6f8564edf8c1 ipv6: Handle missing host route in __ipv6_ifa_notify
    658d7ee4da50 ipv6: drop incoming packets having a v4mapped source address
    a495fd19cce2 hso: fix NULL-deref on tty open
    7f30c44b7ca4 erspan: remove the incorrect mtu limit for erspan
    2b8389112292 cxgb4:Fix out-of-bounds MSI-X info array access
    ed568ca73601 bpf: fix use after free in prog symbol exposure
    dbb7339cfddf block: mq-deadline: Fix queue restart handling
    af10ffa69b06 arm: use STACK_TOP when computing mmap base address
    f91a9c6591c0 arm: properly account for stack randomization and stack guard gap
    53ba8d4358eb mips: properly account for stack randomization and stack guard gap
    e1b391abbfce arm64: consider stack randomization for mmap base only when necessary
    30ab799e758e kmemleak: increase DEBUG_KMEMLEAK_EARLY_LOG_SIZE default to 16K
    52132ff52cad ocfs2: wait for recovering done after direct unlock request
    d4a546452dcc kbuild: clean compressed initramfs image
    d983182d4002 crypto: hisilicon - Fix double free in sec_free_hw_sgl()
    22c788ba7a52 hypfs: Fix error number left in struct pointer member
    bbd76d9514c7 pktcdvd: remove warning on attempting to register non-passthrough dev
    0840daeea6cb fat: work around race with userspace's read via blockdev while mounting
    297904ea60a3 ARM: 8903/1: ensure that usable memory in bank 0 starts from a PMD-aligned address
    9a87ab2b4d60 security: smack: Fix possible null-pointer dereferences in smack_socket_sock_rcv_skb()
    69a32a7306dd PCI: exynos: Propagate errors for optional PHYs
    1264d2e7b75b PCI: imx6: Propagate errors for optional regulators
    403d6c9284f1 PCI: histb: Propagate errors for optional regulators
    ac9c0e2ecc49 PCI: rockchip: Propagate errors for optional regulators
    709c4841e51f HID: apple: Fix stuck function keys when using FN
    31e98cba55ed rtc: pcf85363/pcf85263: fix regmap error in set_time
    607f95788fa9 rtc: snvs: fix possible race condition
    078937549f47 ARM: 8875/1: Kconfig: default to AEABI w/ Clang
    3039c788d648 soundwire: intel: fix channel number reported by hardware
    6a684e002561 ARM: 8898/1: mm: Don't treat faults reported from cache maintenance as writes
    0f0ced702d53 livepatch: Nullify obj->mod in klp_module_coming()'s error path
    78a1138672af HID: wacom: Fix several minor compiler warnings
    3b7fbbddeb7a PCI: tegra: Fix OF node reference leak
    c74a801ded7d mfd: intel-lpss: Remove D3cold delay
    70bb4bf9fdfb i2c-cht-wc: Fix lockdep warning
    371077ea2e75 MIPS: tlbex: Explicitly cast _PAGE_NO_EXEC to a boolean
    3ed14a8d2fe7 MIPS: Ingenic: Disable broken BTB lookup optimization.
    5b400fed74df ext4: fix potential use after free after remounting with noblock_validity
    81fbd2327c32 dma-buf/sw_sync: Synchronize signal vs syncpt free
    c76e18970d93 scsi: core: Reduce memory required for SCSI logging
    c6304d4d7458 clk: sprd: add missing kfree
    7cd89b8db60c mbox: qcom: add APCS child device for QCS404
    324b0c9efc77 powerpc: dump kernel log before carrying out fadump or kdump
    72884423e77f clk: at91: select parent if main oscillator or bypass is enabled
    952d1c6d7cf0 arm64: fix unreachable code issue with cmpxchg
    b25bd837a637 pinctrl: meson-gxbb: Fix wrong pinning definition for uart_c
    b717a47dd913 powerpc/pseries: correctly track irq state in default idle
    ae089bf87c57 clk: qcom: gcc-sdm845: Use floor ops for sdcc clks
    2c16f72135fb pstore: fs superblock limits
    0c09b02842b8 powerpc/64s/exception: machine check use correct cfar for late handler
    39b6d05169b2 drm/amdgpu/si: fix ASIC tests
    4dcbca872a84 drm/amd/display: support spdif
    38dfc974f322 clk: renesas: cpg-mssr: Set GENPD_FLAG_ALWAYS_ON for clock domain
    0b5ac607db4b clk: renesas: mstp: Set GENPD_FLAG_ALWAYS_ON for clock domain
    2cfb89832179 pinctrl: amd: disable spurious-firing GPIO IRQs
    274d7acb0b81 drm/nouveau/volt: Fix for some cards having 0 maximum voltage
    9b2d2f2ad003 vfio_pci: Restore original state on release
    c1f7b3fb87cf powerpc/eeh: Clear stale EEH_DEV_NO_HANDLER flag
    b2df456c83e3 pinctrl: tegra: Fix write barrier placement in pmx_writel
    4c91e678d27c powerpc/pseries/mobility: use cond_resched when updating device tree
    6d728a172732 powerpc/futex: Fix warning: 'oldval' may be used uninitialized in this function
    6aa455b0d0a0 powerpc/rtas: use device model APIs and serialization during LPM
    25c501f0f9d9 powerpc/xmon: Check for HV mode when dumping XIVE info from OPAL
    2cca24b2cb9a clk: zx296718: Don't reference clk_init_data after registration
    efa0fe4cde05 clk: sprd: Don't reference clk_init_data after registration
    89dc59fb267d clk: sirf: Don't reference clk_init_data after registration
    bd3a445c2717 clk: actions: Don't reference clk_init_data after registration
    437399ed906a powerpc/powernv/ioda2: Allocate TCE table levels on demand for default DMA window
    782a77f2eb39 drm/amd/display: reprogram VM config when system resume
    24ba84ec0016 drm/amd/display: fix issue where 252-255 values are clipped
    efb0e1e3d0e1 clk: sunxi-ng: v3s: add missing clock slices for MMC2 module clocks
    a2279550f7be clk: qoriq: Fix -Wunused-const-variable
    84038a98b904 ipmi_si: Only schedule continuously in the thread in maintenance mode
    b351726bb5be PCI: rpaphp: Avoid a sometimes-uninitialized warning
    0936c46139cb gpu: drm: radeon: Fix a possible null-pointer dereference in radeon_connector_set_property()
    6e03bca91f8e drm/radeon: Fix EEH during kexec
    441c15582338 drm/rockchip: Check for fast link training before enabling psr
    f3d62177dee3 drm/panel: check failure cases in the probe func
    9cb3698dcc86 drm/stm: attach gem fence to atomic state
    043f0229f442 video: ssd1307fb: Start page range at page_offset
    bd5b6a7c89ef drm/panel: simple: fix AUO g185han01 horizontal blanking
    db472be8b340 drm/bridge: tc358767: Increase AUX transfer length limit
    053d0ec61e33 tpm: Fix TPM 1.2 Shutdown sequence to prevent future TPM operations
    d598712712e4 tpm: use tpm_try_get_ops() in tpm-sysfs.c.
    6cad9d0cf87b Linux 4.19.77
    2c60da90ec44 drm/amd/display: Restore backlight brightness after system resume
    4d8bdf7f3a86 mm/compaction.c: clear total_{migrate,free}_scanned before scanning a new zone
    5bead06b3443 fuse: fix deadlock with aio poll and fuse_iqueue::waitq.lock
    bbe3e2056d27 md/raid0: avoid RAID0 data corruption due to layout confusion.
    4290a9e59323 CIFS: Fix oplock handling for SMB 2.1+ protocols
    a3a150895b6f CIFS: fix max ea value size
    a0f7fd38acf5 i2c: riic: Clear NACK in tend isr
    fec38267a2bf hwrng: core - don't wait on add_early_randomness()
    060986096fea quota: fix wrong condition in is_quota_modification()
    091c754d5ca9 ext4: fix punch hole for inline_data file systems
    775e3e734bd3 ext4: fix warning inside ext4_convert_unwritten_extents_endio
    caa6926d94f1 /dev/mem: Bail out upon SIGKILL.
    bd3a11af1bde cfg80211: Purge frame registrations on iftype change
    5dc86e9574a1 md: only call set_in_sync() when it is expected to succeed.
    598a2cda62d3 md: don't report active array_state until after revalidate_disk() completes.
    e8323e0ddce1 md/raid6: Set R5_ReadError when there is read failure on parity disk
    bacff03bb286 Btrfs: fix race setting up and completing qgroup rescan workers
    b5c42ef09df3 btrfs: qgroup: Fix reserved data space leak if we have multiple reserve calls
    c521bfa8e2dc btrfs: qgroup: Fix the wrong target io_tree when freeing reserved data space
    067f82a05c2f btrfs: Relinquish CPUs in btrfs_compare_trees
    b08344be3546 Btrfs: fix use-after-free when using the tree modification log
    4874c6fe1c9e btrfs: fix allocation of free space cache v1 bitmap pages
    934243a72849 ovl: filter of trusted xattr results in audit
    e7265adc0a3c ovl: Fix dereferencing possible ERR_PTR()
    2e96c9332595 smb3: allow disabling requesting leases
    82652c06f976 block: fix null pointer dereference in blk_mq_rq_timed_out()
    db5b2fe4d33c i40e: check __I40E_VF_DISABLE bit in i40e_sync_filters_subtask
    b4a734a529b8 memcg, kmem: do not fail __GFP_NOFAIL charges
    d40b3eafb52e memcg, oom: don't require __GFP_FS when invoking memcg OOM killer
    e0c1e6e55bca gfs2: clear buf_in_tr when ending a transaction in sweep_bh_for_rgrps
    3620b06b1db0 efifb: BGRT: Improve efifb_bgrt_sanity_check
    c4f65c2fb0f5 regulator: Defer init completion for a while after late_initcall
    3784576fc639 alarmtimer: Use EOPNOTSUPP instead of ENOTSUPP
    174bbcc560cc arm64: dts: rockchip: limit clock rate of MMC controllers for RK3328
    8cfe3b8aa3b6 arm64: tlb: Ensure we execute an ISB following walk cache invalidation
    fc7d6bfdd774 Revert "arm64: Remove unnecessary ISBs from set_{pte,pmd,pud}"
    881edc165b8e ARM: zynq: Use memcpy_toio instead of memcpy on smp bring-up
    2209279439a1 ARM: samsung: Fix system restart on S3C6410
    ad884155fb9c ASoC: Intel: Fix use of potentially uninitialized variable
    7bdab36455f9 ASoC: Intel: Skylake: Use correct function to access iomem space
    3c54f463402f ASoC: Intel: NHLT: Fix debug print format
    29ecf8cae5f4 binfmt_elf: Do not move brk for INTERP-less ET_EXEC
    02ef5c299d15 media: don't drop front-end reference count for ->detach
    589ca8ec4c62 media: sn9c20x: Add MSI MS-1039 laptop to flip_dmi_table
    496cf984a60e KVM: x86: Manually calculate reserved bits when loading PDPTRS
    933e3e2b5070 KVM: x86: set ctxt->have_exception in x86_decode_insn()
    9723e4458604 KVM: x86: always stop emulation on page fault
    8225db4a70b2 parisc: Disable HP HSC-PCI Cards to prevent kernel crash
    ad41162974c6 fuse: fix missing unlock_page in fuse_writepage()
    ecfe4b5f70c8 powerpc/imc: Dont create debugfs files for cpu-less nodes
    e94443fc7b64 scsi: implement .cleanup_rq callback
    4ec3ca2770e7 blk-mq: add callback of .cleanup_rq
    4848fb93243e ALSA: hda/realtek - PCI quirk for Medion E4254
    e9bcaf82dd37 ceph: use ceph_evict_inode to cleanup inode's resource
    72f0fff3c450 Revert "ceph: use ceph_evict_inode to cleanup inode's resource"
    98dc6d958bd9 randstruct: Check member structs in is_pure_ops_struct()
    ad6819cd68be IB/hfi1: Define variables as unsigned long to fix KASAN warning
    a924850c93d4 IB/mlx5: Free mpi in mp_slave mode
    40b071992ca5 printk: Do not lose last line in kmsg buffer dump
    28f142b940af scsi: qla2xxx: Fix Relogin to prevent modifying scan_state flag
    03b75e65ceed scsi: scsi_dh_rdac: zero cdb in send_mode_select()
    2e21e5b225ef ALSA: firewire-tascam: check intermediate state of clock status and retry
    f5779e4449da ALSA: firewire-tascam: handle error code when getting current source of clock
    fdd131eab68f iwlwifi: fw: don't send GEO_TX_POWER_LIMIT command to FW version 36
    6437ec272eda PM / devfreq: passive: fix compiler warning
    814f7fe56ebb media: omap3isp: Set device on omap3isp subdevs
    c5dbd74f8259 btrfs: extent-tree: Make sure we only allocate extents from block groups with the same type
    2aeeb0a4b440 iommu/amd: Override wrong IVRS IOAPIC on Raven Ridge systems
    291da335040c ALSA: hda/realtek - Blacklist PC beep for Lenovo ThinkCentre M73/93
    8630a4d13683 media: ttusb-dec: Fix info-leak in ttusb_dec_send_command()
    d47636913bda drm/amd/powerplay/smu7: enforce minimal VBITimeout (v2)
    5370cf8d90ad ALSA: hda - Drop unsol event handler for Intel HDMI codecs
    ac1d43a20a08 e1000e: add workaround for possible stalled packet
    35b6cba971f5 libertas: Add missing sentinel at end of if_usb.c fw_table
    0a43d5d458d5 raid5: don't increment read_errors on EILSEQ return
    da87dfca25aa mmc: dw_mmc: Re-store SDIO IRQs mask at system resume
    a0dd3d95fb21 mmc: core: Add helper function to indicate if SDIO IRQs is enabled
    8ba99d50cb61 mmc: sdhci: Fix incorrect switch to HS mode
    869122775782 mmc: core: Clarify sdio_irq_pending flag for MMC_CAP2_SDIO_IRQ_NOTHREAD
    a5443cd24063 raid5: don't set STRIPE_HANDLE to stripe which is in batch list
    064fba888e77 ASoC: dmaengine: Make the pcm->name equal to pcm->id if the name is not set
    476eda2539bb platform/x86: intel_pmc_core: Do not ioremap RAM
    e836cd2917c6 x86/cpu: Add Tiger Lake to Intel family
    b21919eeced6 s390/crypto: xts-aes-s390 fix extra run-time crypto self tests finding
    fad90d4bfa8d kprobes: Prohibit probing on BUG() and WARN() address
    213077da3e7c dmaengine: ti: edma: Do not reset reserved paRAM slots
    f1db75622996 md/raid1: fail run raid1 array when active disk less than one
    76cf93f04c3d hwmon: (acpi_power_meter) Change log level for 'unsafe software power cap'
    f0956418d997 closures: fix a race on wakeup from closure_sync
    9fcfdff61f74 ACPI / PCI: fix acpi_pci_irq_enable() memory leak
    e4467fb6ef54 ACPI: custom_method: fix memory leaks
    6fceb241dc76 ARM: dts: exynos: Mark LDO10 as always-on on Peach Pit/Pi Chromebooks
    e4b4280dcd97 libtraceevent: Change users plugin directory
    c55659cd1459 iommu/iova: Avoid false sharing on fq_timer_on
    223b0481ed4b libata/ahci: Drop PCS quirk for Denverton and beyond
    de888e0244cb iommu/amd: Silence warnings under memory pressure
    6241c0ac301e ALSA: firewire-motu: add support for MOTU 4pre
    ad58ce6cacd1 nvme-multipath: fix ana log nsid lookup when nsid is not found
    9edc229b9c90 nvmet: fix data units read and written counters in SMART log
    7bbb7a9dd2c3 x86/mm/pti: Handle unaligned address gracefully in pti_clone_pagetable()
    5201b4ffc324 ASoC: fsl_ssi: Fix clock control issue in master mode
    4b7d9c2a716e x86/mm/pti: Do not invoke PTI functions when PTI is disabled
    eb2485e32f90 arm64: kpti: ensure patched kernel text is fetched from PoU
    b619496540ba x86/apic/vector: Warn when vector space exhaustion breaks affinity
    01e8f487cecb sched/cpufreq: Align trace event behavior of fast switching
    2919fa0398ad ACPI / CPPC: do not require the _PSD method
    b79922133f9c ASoC: es8316: fix headphone mixer volume table
    dd25f76c1f34 media: ov9650: add a sanity check
    342a0bee4d94 perf trace beauty ioctl: Fix off-by-one error in cmd->string table
    57409ea782e7 media: saa7134: fix terminology around saa7134_i2c_eeprom_md7134_gate()
    78550c5cfe6d media: cpia2_usb: fix memory leaks
    d796c6c1aab4 media: saa7146: add cleanup in hexium_attach()
    ab20f38ce522 media: cec-notifier: clear cec_adap in cec_notifier_unregister
    d51268d7574b PM / devfreq: exynos-bus: Correct clock enable sequence
    7e19b7e0d640 PM / devfreq: passive: Use non-devm notifiers
    f9de170eaf7e EDAC/amd64: Decode syndrome before translating address
    6f80e91a66e0 EDAC/amd64: Recognize DRAM device type ECC capability
    adb97f18b4e7 libperf: Fix alignment trap with xyarray contents in 'perf stat'
    4df2427a5148 media: dvb-core: fix a memory leak bug
    8d5fccff7b0c posix-cpu-timers: Sanitize bogus WARNONS
    9df9652b7345 media: dvb-frontends: use ida for pll number
    006a6065c867 media: mceusb: fix (eliminate) TX IR signal length limit
    d093d3183ca2 nbd: add missing config put
    e497ec26cc43 led: triggers: Fix a memory leak bug
    83c2a42b1b84 ASoC: sun4i-i2s: Don't use the oversample to calculate BCLK
    5466c30b11cb tools headers: Fixup bitsperlong per arch includes
    b1f1b83e2583 ASoC: uniphier: Fix double reset assersion when transitioning to suspend state
    e6bc6e2c0d1f media: hdpvr: add terminating 0 at end of string
    4a2cb7600b72 media: radio/si470x: kill urb on error
    dfaf60580191 ARM: dts: imx7-colibri: disable HS400
    c20ee5d906ec ARM: dts: imx7d: cl-som-imx7: make ethernet work again
    21927786df27 m68k: Prevent some compiler warnings in Coldfire builds
    ba8f56ffaebf net: lpc-enet: fix printk format strings
    aa2d05a9de05 media: imx: mipi csi-2: Don't fail if initial state times-out
    1b7df445d881 media: omap3isp: Don't set streaming state on random subdevs
    0c3802174754 media: i2c: ov5645: Fix power sequence
    3dfbac0add22 media: vsp1: fix memory leak of dl on error return path
    c47022e019fe perf record: Support aarch64 random socket_id assignment
    482c1d0a7cc4 dmaengine: iop-adma: use correct printk format strings
    19a1fa140594 media: rc: imon: Allow iMON RC protocol for ffdc 7e device
    a527d3d4b513 media: em28xx: modules workqueue not inited for 2nd device
    6a1c59a7603d media: fdp1: Reduce FCP not found message level to debug
    e3f5f626e17a media: mtk-mdp: fix reference count on old device tree
    066afce8d87d perf test vfs_getname: Disable ~/.perfconfig to get default output
    96b61fe7a5f7 perf config: Honour $PERF_CONFIG env var to specify alternate .perfconfig
    db751f6d5241 media: gspca: zero usb_buf on error
    511110236089 idle: Prevent late-arriving interrupts from disrupting offline
    9addfbd40959 sched/fair: Use rq_lock/unlock in online_fair_sched_group
    6e9d45022d26 firmware: arm_scmi: Check if platform has released shmem before using
    0dbdc1986bb4 efi: cper: print AER info of PCIe fatal error
    4410b8517950 EDAC, pnd2: Fix ioremap() size in dnv_rd_reg()
    cf8f20a1aacf loop: Add LOOP_SET_DIRECT_IO to compat ioctl
    18e5e458c6d8 ACPI / processor: don't print errors for processorIDs == 0xff
    465bc6e80fd2 media: media/platform: fsl-viu.c: fix build for MICROBLAZE
    371538451c21 md: don't set In_sync if array is frozen
    d38aff20c407 md: don't call spare_active in md_reap_sync_thread if all member devices can't work
    1cd972e0a107 md/raid1: end bio when the device faulty
    7d75275fbfb1 arm64/prefetch: fix a -Wtype-limits warning
    829bebdc1ce6 ASoC: rsnd: don't call clk_get_rate() under atomic context
    f5bef62df824 EDAC/altera: Use the proper type for the IRQ status bits
    87bc43e2a775 ia64:unwind: fix double free for mod->arch.init_unw_table
    ca57eca32b3e ALSA: usb-audio: Skip bSynchAddress endpoint check if it is invalid
    d76b5ac5016c base: soc: Export soc_device_register/unregister APIs
    4a75e77ef1b5 media: iguanair: add sanity checks
    fe8fc7d7cb64 EDAC/mc: Fix grain_bits calculation
    55a98e872186 ALSA: i2c: ak4xxx-adda: Fix a possible null pointer dereference in build_adc_controls()
    1af6822f29d6 ALSA: hda - Show the fatal CORB/RIRB error more clearly
    b40c15c20e42 x86/apic: Soft disable APIC before initializing it
    ce7fdd5cd83e x86/reboot: Always use NMI fallback when shutdown via reboot vector IPI fails
    0f30856944d4 sched/deadline: Fix bandwidth accounting at all levels after offline migration
    d29c7b8be599 x86/apic: Make apic_pending_intr_clear() more robust
    f381d3d2c39c sched/core: Fix CPU controller for !RT_GROUP_SCHED
    417cf53b4b85 sched/fair: Fix imbalance due to CPU affinity
    7cebdfa62f22 time/tick-broadcast: Fix tick_broadcast_offline() lockdep complaint
    64f3fb5d751c media: i2c: ov5640: Check for devm_gpiod_get_optional() error
    6cc816dd644e media: hdpvr: Add device num check and handling
    8bc254d3e6b8 media: exynos4-is: fix leaked of_node references
    7ec720763a20 media: mtk-cir: lower de-glitch counter for rc-mm protocol
    920acbff8932 media: dib0700: fix link error for dibx000_i2c_set_speed
    8f9dc49928c2 leds: leds-lp5562 allow firmware files up to the maximum length
    fdcf06a35bc6 dmaengine: bcm2835: Print error in case setting DMA mask fails
    e841313b5731 firmware: qcom_scm: Use proper types for dma mappings
    ec4815460d81 ASoC: sgtl5000: Fix charge pump source assignment
    84bb4024b358 ASoC: sgtl5000: Fix of unmute outputs on probe
    a7ace049bddc ASoC: tlv320aic31xx: suppress error message for EPROBE_DEFER
    3657e58405fb regulator: lm363x: Fix off-by-one n_voltages for lm3632 ldo_vpos/ldo_vneg
    3eec108aa879 ALSA: hda: Flush interrupts on disabling
    5b6c791f494d nfp: flower: prevent memory leak in nfp_flower_spawn_phy_reprs
    33fe1f517e29 nfc: enforce CAP_NET_RAW for raw sockets
    dd651ab7a114 ieee802154: enforce CAP_NET_RAW for raw sockets
    6f0f18e53269 ax25: enforce CAP_NET_RAW for raw sockets
    6fbf86627608 appletalk: enforce CAP_NET_RAW for raw sockets
    50dddec689cb mISDN: enforce CAP_NET_RAW for raw sockets
    f06b0b3e5d76 net/mlx5: Add device ID of upcoming BlueField-2
    3fdcf6a88ded tcp: better handle TCP_USER_TIMEOUT in SYN_SENT state
    a749eea97ac9 net: sched: fix possible crash in tcf_action_destroy()
    831d0fcba1cf usbnet: sanity checking of packet sizes and device mtu
    b7eeccc1c786 usbnet: ignore endpoints with invalid wMaxPacketSize
    ff4419d725c7 skge: fix checksum byte order
    9a623e1b1d03 sch_netem: fix a divide by zero in tabledist()
    1cd663adcece ppp: Fix memory leak in ppp_write
    99952b08537c openvswitch: change type of UPCALL_PID attribute to NLA_UNSPEC
    587df35cbf65 nfp: flower: fix memory leak in nfp_flower_spawn_vnic_reprs
    195a3ea494d2 net_sched: add max len check for TCA_KIND
    c31096dc586e net/sched: act_sample: don't push mac header on ip6gre ingress
    abb04d0a9dea net: qrtr: Stop rx_worker before freeing node
    6ea3bc412506 net/phy: fix DP83865 10 Mbps HDX loopback disable function
    831d082be72c macsec: drop skb sk before calling gro_cells_receive
    fd0034688358 cdc_ncm: fix divide-by-zero caused by invalid wMaxPacketSize
    0bf79588586c arcnet: provide a buffer big enough to actually receive packets
    555161ee1b7a Linux 4.19.76
    59a5cea41dd0 f2fs: use generic EFSBADCRC/EFSCORRUPTED
    fc3d296491f4 net/rds: Check laddr_check before calling it
    3de749d6d7ce net/rds: An rds_sock is added too early to the hash table
    07f7ec87b5f6 net_sched: check cops->tcf_block in tc_bind_tclass()
    90b0761c1b81 Bluetooth: btrtl: Additional Realtek 8822CE Bluetooth devices
    6934809432d2 netfilter: nft_socket: fix erroneous socket assignment
    649836fe946c xfs: don't crash on null attr fork xfs_bmapi_read
    91ae87240166 drm/nouveau/disp/nv50-: fix center/aspect-corrected scaling
    3717f4a49b34 ACPI: video: Add new hw_changes_brightness quirk, set it on PB Easynote MZ35
    46beb6eacef5 Bluetooth: btrtl: HCI reset on close for Realtek BT chip
    8ffd7ba9ffb1 net: don't warn in inet diag when IPV6 is disabled
    ff0fbfacc94f drm: Flush output polling on shutdown
    303f6d6bbc0c f2fs: fix to do sanity check on segment bitmap of LFS curseg
    dec09554eba9 net/ibmvnic: Fix missing { in __ibmvnic_reset
    dc9118feb472 dm zoned: fix invalid memory access
    73d90f57fcc2 Revert "f2fs: avoid out-of-range memory access"
    40cdc71e1111 blk-mq: move cancel of requeue_work to the front of blk_exit_queue
    313efb253d03 blk-mq: change gfp flags to GFP_NOIO in blk_mq_realloc_hw_ctxs
    75448f40b9f6 initramfs: don't free a non-existent initrd
    ad16dfef4a44 bcache: remove redundant LIST_HEAD(journal) from run_cache_set()
    08fdaee2d97b PCI: hv: Avoid use of hv_pci_dev->pci_slot after freeing it
    ef2baa03b7f0 f2fs: check all the data segments against all node ones
    ef06c33dc371 irqchip/gic-v3-its: Fix LPI release for Multi-MSI devices
    52b4947bac50 bpf: libbpf: retry loading program on EAGAIN
    a935d78e54cc Revert "drm/amd/powerplay: Enable/Disable NBPSTATE on On/OFF of UVD"
    288831cba980 scsi: qla2xxx: Return switch command on a timeout
    2b983f212c68 scsi: qla2xxx: Remove all rports if fabric scan retry fails
    6b449e4cf090 scsi: qla2xxx: Turn off IOCB timeout timer on IOCB completion
    9423770eb336 locking/lockdep: Add debug_locks check in __lock_downgrade()
    0c23335a2d81 power: supply: sysfs: ratelimit property read error message
    1456c40aa906 pinctrl: sprd: Use define directive for sprd_pinconf_params values
    037d73a6458e objtool: Clobber user CFLAGS variable
    952844f31eb7 ALSA: hda - Apply AMD controller workaround for Raven platform
    50c9ccffe041 ALSA: hda - Add laptop imic fixup for ASUS M9V laptop
    866a1a7e9f23 ALSA: dice: fix wrong packet parameter for Alesis iO26
    9829fd27501e ALSA: usb-audio: Add DSD support for EVGA NU Audio
    303921276360 ALSA: usb-audio: Add Hiby device family to quirks for native DSD support
    8a845c02e495 ASoC: fsl: Fix of-node refcount unbalance in fsl_ssi_probe_from_dt()
    a5e2c65034f8 ASoC: Intel: cht_bsw_max98090_ti: Enable codec clock once and keep it enabled
    ec2a3681b30c media: tvp5150: fix switch exit in set control handler
    ba6860700d1f iwlwifi: mvm: always init rs_fw with 20MHz bandwidth rates
    ced0676fc9c2 iwlwifi: mvm: send BCAST management frames to the right station
    b3873e34cbf2 net/mlx5e: Rx, Check ip headers sanity
    404f118f2790 net/mlx5e: Rx, Fixup skb checksum for packets with tail padding
    c95ebb394d65 net/mlx5e: XDP, Avoid checksum complete when XDP prog is loaded
    79e972a89cad net/mlx5e: Allow reporting of checksum unnecessary
    8da68f79b3b3 mlx5: fix get_ip_proto()
    44da02576b5d net/mlx5e: don't set CHECKSUM_COMPLETE on SCTP packets
    6debda97411e net/mlx5e: Set ECN for received packets using CQE indication
    e867ef113004 CIFS: fix deadlock in cached root handling
    f3160a1d71f7 crypto: talitos - fix missing break in switch statement
    c1a7fe486647 mtd: cfi_cmdset_0002: Use chip_good() to retry in do_write_oneword()
    5fdefdcb92bb HID: Add quirk for HP X500 PIXART OEM mouse
    3d072c272b88 HID: hidraw: Fix invalid read in hidraw_ioctl
    acc96be807bb HID: logitech: Fix general protection fault caused by Logitech driver
    3e785174fb35 HID: sony: Fix memory corruption issue on cleanup.
    eb77929769e3 HID: prodikeys: Fix general protection fault during probe
    2661d462aaa9 IB/core: Add an unbound WQ type to the new CQ API
    70ec2eecc550 drm/amd/display: readd -msse2 to prevent Clang from emitting libcalls to undefined SW FP routines
    80fc27953e74 powerpc/xive: Fix bogus error code returned by OPAL
    4eb92a114834 RDMA/restrack: Protect from reentry to resource return path
    373f9092df95 net/ibmvnic: free reset work of removed device from queue
    2af977b0d1db Revert "Bluetooth: validate BLE connection interval updates"
    d573e8a79f70 Linux 4.19.75
    b841a9f58d9c media: technisat-usb2: break out of loop at end of buffer
    f35f5a990a07 arm64: kpti: Whitelist Cortex-A CPUs that don't implement the CSV3 field
    c0ccb4da26bc binfmt_elf: move brk out of mmap when doing direct loader exec
    c3817ffb1036 floppy: fix usercopy direction
    9c13e770cca9 ovl: fix regression caused by overlapping layers detection
    5e74396d8beb PCI: kirin: Fix section mismatch warning
    0d50f7b1e8c8 iommu/amd: Fix race in increase_address_space()
    52f32e4aec50 iommu/amd: Flush old domains in kdump kernel
    ca77acdf1ac9 keys: Fix missing null pointer check in request_key_auth_describe()
    d73515a17c14 x86/hyper-v: Fix overflow bug in fill_gva_list()
    371357770c8b x86/uaccess: Don't leak the AC flags into __get_user() argument evaluation
    72c762b01eb0 dmaengine: ti: omap-dma: Add cleanup in omap_dma_probe()
    d04b522a65c0 dmaengine: ti: dma-crossbar: Fix a memory leak bug
    6bc421d5a04a net: seeq: Fix the function used to release some memory in an error handling path
    83360eb798ca net: aquantia: fix out of memory condition on rx side
    30c345bd786a tools/power turbostat: fix buffer overrun
    d485c65853de tools/power x86_energy_perf_policy: Fix argument parsing
    254b9b2971a7 tools/power x86_energy_perf_policy: Fix "uninitialized variable" warnings at -O2
    a85a0d9f3796 amd-xgbe: Fix error path in xgbe_mod_init()
    7ec11cad3fde perf/x86/amd/ibs: Fix sample bias for dispatched micro-ops
    560857de3064 perf/x86/intel: Restrict period on Nehalem
    65ad72ce10e7 i2c: designware: Synchronize IRQs when unregistering slave client
    5a45b14b03f7 sky2: Disable MSI on yet another ASUS boards (P6Xxxx)
    6cce2adae3e1 ibmvnic: Do not process reset during or after device removal
    080ca754f5db ARM: 8901/1: add a criteria for pfn_valid of arm
    c6d779fd8197 usb: host: xhci-tegra: Set DMA mask correctly
    b62946852afa cifs: Use kzfree() to zero out the password
    325fa2a6729b cifs: set domainName when a domain-key is used in multiuser
    9a74f799b99c kallsyms: Don't let kallsyms_lookup_size_offset() fail on retrieving the first symbol
    0f7130177325 NFSv2: Fix write regression
    60f0d449601d NFSv2: Fix eof handling
    6075729f76da netfilter: nf_conntrack_ftp: Fix debug output
    7ac5947f7578 netfilter: xt_physdev: Fix spurious error message in physdev_mt_check
    e997c0730520 x86/apic: Fix arch_dynirq_lower_bound() bug for DT enabled machines
    688fdaa54a3e r8152: Set memory to all 0xFFs on failed reg reads
    d9f79f0ace55 bpf: allow narrow loads of some sk_reuseport_md fields with offset > 0
    7d4201ff9f73 batman-adv: Only read OGM2 tvlv_len after buffer len check
    5b8b66274183 ARM: 8874/1: mm: only adjust sections of valid mm structures
    b870f8afc5a5 qed: Add cleanup in qed_slowpath_start()
    30881d79de31 xdp: unpin xdp umem pages in error path
    55ed0ad50201 Kconfig: Fix the reference to the IDT77105 Phy driver in the description of ATM_NICSTAR_USE_IDT77105
    767877deb25a NFS: Fix initialisation of I/O result struct in nfs_pgio_rpcsetup
    4ac4f4716fba NFSv4: Fix return value in nfs_finish_open()
    d7565d51af18 NFSv4: Fix return values for nfs4_file_open()
    4e5fbcb9a615 netfilter: xt_nfacct: Fix alignment mismatch in xt_nfacct_match_info
    a02c676c0f03 netfilter: nft_flow_offload: missing netlink attribute policy
    a4fa6c68ecc3 netfilter: ebtables: Fix argument order to ADD_COUNTER
    634dd5a48627 fpga: altera-ps-spi: Fix getting of optional confd gpio
    0d393f23f18e tools: bpftool: close prog FD before exit on showing a single program
    c5bb033529f1 selftests/bpf: fix "bind{4, 6} deny specific IP & port" on s390
    48d77ca1497f s390/bpf: use 32-bit index for tail calls
    999f33c2438c bus: ti-sysc: Simplify cleanup upon failures in sysc_probe()
    1a85d5819ade ARM: OMAP1: ams-delta-fiq: Fix missing irq_ack
    a8919f8d352f ARM: dts: dra74x: Fix iodelay configuration for mmc3
    2ff2bd2c5526 ARM: OMAP2+: Fix omap4 errata warning on other SoCs
    73d003274a42 s390/bpf: fix lcgr instruction encoding
    c1e0937ef4d5 bus: ti-sysc: Fix using configured sysc mask value
    0aee9e118eee ARM: OMAP2+: Fix missing SYSC_HAS_RESET_STATUS for dra7 epwmss
    f696ba6b122d ARM: dts: am57xx: Disable voltage switching for SD card
    ac8f26f6a035 ieee802154: hwsim: unregister hw while hwsim_subscribe_all_others fails
    c237a050df3b ieee802154: hwsim: Fix error handle path in hwsim_init_module
    6a10e87ffca1 nl80211: Fix possible Spectre-v1 for CQM RSSI thresholds
    941431c491a6 mwifiex: Fix three heap overflow at parsing element in cfg80211_ap_settings
    770cee245191 tty/serial: atmel: reschedule TX after RX was started
    4c2f60ed8ed8 serial: sprd: correct the wrong sequence of arguments
    2871621518ac firmware: google: check if size is valid when decoding VPD data
    232a6462f43f KVM: coalesced_mmio: add bounds checking
    7a1bad565ceb net_sched: let qdisc_put() accept NULL pointer
    47288968eebd xen-netfront: do not assume sk_buff_head list is empty in error handling
    fdd60d80c429 udp: correct reuseport selection with connected sockets
    97b5f8c95b75 ip6_gre: fix a dst leak in ip6erspan_tunnel_xmit
    4fb95f299504 phy: renesas: rcar-gen3-usb2: Disable clearing VBUS in over-current
    abf389e0795a media: tm6000: double free if usb disconnect while streaming
    77d4e2a05885 USB: usbcore: Fix slab-out-of-bounds bug during device reset
    b01b1eb24c04 powerpc/mm/radix: Use the right page size for vmemmap mapping
    289f3c82b116 Input: elan_i2c - remove Lenovo Legion Y7000 PnpID
    305c3b497662 RDMA/restrack: Release task struct which was hold by CM_ID object
    8993c673d6c4 HID: wacom: generic: read HID_DG_CONTACTMAX from any feature report
    2a0aa8a06aea netfilter: nf_flow_table: set default timeout after successful insertion
    dbc29aff8d04 Linux 4.19.74
    9d587fe2cd70 x86/build: Add -Wnoaddress-of-packed-member to REALMODE_CFLAGS, to silence GCC9 build warning
    96c08711fc66 nvmem: Use the same permissions for eeprom as for nvmem
    3622d621e9be rsi: fix a double free bug in rsi_91x_deinit()
    780f3aadee1e platform/x86: pmc_atom: Add CB4063 Beckhoff Automation board to critclk_systems DMI table
    52bfcc9c8406 modules: fix compile error if don't have strict module rwx
    ae415d7a2707 modules: fix BUG when load module with rodata=n
    0ae0c43abcbf iio: adc: stm32-dfsdm: fix data type
    acf77c411b4e Revert "Bluetooth: btusb: driver to enable the usb-wakeup feature"
    a03ed2891cdb drm/mediatek: mtk_drm_drv.c: Add of_node_put() before goto
    d13a836d787d drm: panel-orientation-quirks: Add extra quirk table entry for GPD MicroPC
    4b30a0698208 firmware: ti_sci: Always request response from firmware
    3dfc787f2f50 crypto: talitos - HMAC SNOOP NO AFEU mode requires SW icv checking.
    e89d4cb6fba3 crypto: talitos - Do not modify req->cryptlen on decryption.
    9aff4077304b crypto: talitos - fix ECB algs ivsize
    c4d7148e2d67 crypto: talitos - check data blocksize in ablkcipher.
    02ebbb4f8df8 crypto: talitos - fix CTR alg blocksize
    39fa02a36bb3 crypto: talitos - check AES key size
    e1666bcbae0c driver core: Fix use-after-free and double free on glue directory
    72cd230b3231 ubifs: Correctly use tnc_next() in search_dh_cookie()
    a65290083b66 gpio: fix line flag validation in lineevent_create
    0f4095f33557 PCI: Always allow probing with driver_override
    70facf939ba2 mtd: rawnand: mtk: Fix wrongly assigned OOB buffer pointer issue
    6da56f8982bb clk: rockchip: Don't yell about bad mmc phases when getting
    a63416f39aaf drm/meson: Add support for XBGR8888 & ABGR8888 formats
    d9e8b4ba0397 powerpc: Add barrier_nospec to raw_copy_in_user()
    eb020b77b646 x86/purgatory: Change compiler flags from -mcmodel=kernel to -mcmodel=large to fix kexec relocation errors
    73c31bd92039 KVM: nVMX: handle page fault in vmread
    6e60900cfa3e KVM: x86: work around leak of uninitialized stack contents
    09a9f894c65b KVM: s390: Do not leak kernel stack data in the KVM_S390_INTERRUPT ioctl
    9f8a2825918c KVM: s390: kvm_s390_vm_start_migration: check dirty_bitmap before using it as target for memset()
    991b3458da56 genirq: Prevent NULL pointer dereference in resend_irqs()
    5b5f14601e0a ixgbe: Prevent u8 wrapping of ITR value to something less than 10us
    7cbd49cf0d62 Btrfs: fix assertion failure during fsync and use of stale transaction
    22ed1d472811 gpio: fix line flag validation in linehandle_create
    705df757e937 gpiolib: acpi: Add gpiolib_acpi_run_edge_events_on_boot option and blacklist
    0f4ceb259493 tun: fix use-after-free when register netdev failed
    9a4598424e99 tipc: add NULL pointer check before calling kfree_rcu
    67fe3b94a833 tcp: fix tcp_ecn_withdraw_cwr() to clear TCP_ECN_QUEUE_CWR
    7c34a29261ee sctp: use transport pf_retrans in sctp_do_8_2_transport_strike
    41b624ff83d2 sctp: Fix the link time qualifier of 'sctp_ctrlsock_exit()'
    a9e91767b921 sch_hhf: ensure quantum and hhf_non_hh_weight are non-zero
    a7f46e18ecfe net: sched: fix reordering issues
    3600a311f83d net: phylink: Fix flow control resolution
    821302dd0c51 net: gso: Fix skb_segment splat when splitting gso_size mangled skb having linear-headed frag_list
    88a46756f016 net: Fix null de-reference of device refcount
    b26f489245b3 ixgbe: Fix secpath usage for IPsec TX offload.
    2354e925e361 isdn/capi: check message length in capi_write()
    ea6ec671c87e ipv6: Fix the link time qualifier of 'ping_v6_proc_exit_net()'
    a20c8e4ae48d cdc_ether: fix rndis support for Mediatek based smartphones
    f57fd58dda42 bridge/mdb: remove wrong use of NLM_F_MULTI
    db2d0b7c1dde Linux 4.19.73
    ba03ee62aed0 vhost: make sure log_num < in_num
    569775bd5364 powerpc/tm: Fix restoring FP/VMX facility incorrectly on interrupts
    052bc385f970 powerpc/tm: Remove msr_tm_active()
    f193e02265aa PCI: Reset both NVIDIA GPU and HDA in ThinkPad P50 workaround
    ff69322509bb ext4: unsigned int compared against zero
    292666d2d868 ext4: fix block validity checks for journal inodes using indirect blocks
    97fbf573460e ext4: don't perform block validity checks on the journal inode
    1e88a1f874ca drm/atomic_helper: Allow DPMS On<->Off changes for unregistered connectors
    b1dd1d06b31d virtio/s390: fix race on airq_areas[]
    057cdb6f0f47 drm/i915: Make sure cdclk is high enough for DP audio on VLV/CHV
    b113f98432ae bcache: fix race in btree_flush_write()
    f73c35d92976 bcache: add comments for mutex_lock(&b->write_lock)
    7989a5026fd1 bcache: only clear BTREE_NODE_dirty bit when it is set
    652993a5aae5 NFSv4: Fix delegation state recovery
    5026932adb1a iio: adc: gyroadc: fix uninitialized return code
    2e7e7c8f9423 mm/migrate.c: initialize pud_entry in migrate_vma()
    b8ad18a10f70 i2c: at91: fix clk_offset for sama5d2
    4c9170b55f3a i2c: at91: disable TXRDY interrupt after sending data
    c9c90711ee88 gpio: don't WARN() on NULL descs if gpiolib is disabled
    a532a120a5cd iommu/iova: Remove stale cached32_node
    c4fc7cb93e0a powerpc/mm: Limit rma_size to 1TB when running without HV mode
    5b9a6ba975c0 ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips
    87c3692172da drm/panel: Add support for Armadeus ST0700 Adapt
    ecf99cdea02d dm thin metadata: check if in fail_io mode when setting needs_check
    5e9a2ce6d3b4 pstore: Fix double-free in pstore_mkfile() failure path
    192b9af8caf0 resource: fix locking in find_next_iomem_res()
    485bcc29a200 resource: Fix find_next_iomem_res() iteration issue
    9a80dfccade1 resource: Include resource end in walk_*() interfaces
    1c13c9c40e31 btrfs: correctly validate compression type
    0ca2688bd7cd RDMA/srp: Accept again source addresses that do not have a port number
    9541604735b2 RDMA/srp: Document srp_parse_in() arguments
    bab0ff2d87db ARM: dts: gemini: Set DIR-685 SPI CS as active low
    3a1b79ade460 KVM: PPC: Book3S HV: Fix CR0 setting in TM emulation
    3ac718069f7c KVM: PPC: Use ccr field in pt_regs struct embedded in vcpu struct
    beeeead95b2f KVM: VMX: check CPUID before allowing read/write of IA32_XSS
    891011ca564d KVM: VMX: Fix handling of #MC that occurs during VM-Entry
    74ce13331db9 KVM: VMX: Always signal #GP on WRMSR to MSR_IA32_CR_PAT with bad value
    74fd8aae19d9 KVM: x86: optimize check for valid PAT value
    812810399999 ceph: use ceph_evict_inode to cleanup inode's resource
    42fa0e35d6e0 ALSA: hda - Don't resume forcibly i915 HDMI/DP codec
    987564c28e8a cifs: Properly handle auto disabling of serverino option
    d85e830d8534 scsi: zfcp: fix request object use-after-free in send path causing wrong traces
    ba8701d2226c staging: wilc1000: fix error path cleanup in wilc_wlan_initialize()
    60b856dc1744 scsi: target/iblock: Fix overrun in WRITE SAME emulation
    ba52842de1ad scsi: target/core: Use the SECTOR_SHIFT constant
    17111037fdf0 apparmor: reset pos on failure to unpack for various functions
    90ca4912e55d IB/hfi1: Avoid hardlockup with flushlist_lock
    fa717fc442ff clk: tegra210: Fix default rates for HDA clocks
    350503c8982b clk: tegra: Fix maximum audio sync clock for Tegra124/210
    acc07941e224 cifs: add spinlock for the openFileList to cifsInodeInfo
    1d0648767ccf Btrfs: fix race between block group removal and block group allocation
    f276beb324cc drm/amdgpu/{uvd,vcn}: fetch ring's read_ptr after alloc
    7abeffff7bc3 drm/amdgpu: fix ring test failure issue during s3 in vce 3.0 (V2)
    d5f6539381c7 kvm: Check irqchip mode before assign irqfd
    90772cf58838 drm/amdkfd: Add missing Polaris10 ID
    cacbc85376b6 ARC: mm: SIGSEGV userspace trying to access kernel virtual memory
    7edfa9c99d21 ARC: mm: fix uninitialised signal code in do_page_fault
    0828438e523e signal/arc: Use force_sig_fault where appropriate
    fcb2f1e2ea68 dm crypt: move detailed message into debug level
    96b44c20e6f0 cifs: smbd: take an array of reqeusts when sending upper layer data
    3f27a14b03d8 PCI: dwc: Use devm_pci_alloc_host_bridge() to simplify code
    842da8fac182 mmc: sdhci-pci: Add support for Intel CML
    e238e6dc222b blk-mq: free hw queue's resource in hctx's release handler
    69409854ba08 dm mpath: fix missing call of path selector type->end_io
    0fe097012b6c PCI: Reset Lenovo ThinkPad P50 nvgpu at boot if necessary
    5659dfca74d0 PCI: Add macro for Switchtec quirk declarations
    e4ba157877db dt-bindings: mmc: Add disable-cqe-dcmd property.
    eb83f9fa10f7 dt-bindings: mmc: Add supports-cqe property
    0a0176f93ea9 ARM: dts: qcom: ipq4019: enlarge PCIe BAR range
    445a78ea3f90 ARM: dts: qcom: ipq4019: Fix MSI IRQ type
    df1216d8bc86 ARM: dts: qcom: ipq4019: fix PCI range
    2fd4629de519 ext4: protect journal inode's blocks using block_validity
    f10a92309b83 media: i2c: tda1997x: select V4L2_FWNODE
    4061e662c8e9 cifs: Fix lease buffer length error
    df5d4ea2d8be KVM: x86: Always use 32-bit SMRAM save state for 32-bit kernels
    7a74d806bdaa x86/kvm: move kvm_load/put_guest_xcr0 into atomic context
    163b24b1a68c kvm: mmu: Fix overflow on kvm mmu page limit calculation
    feced628c068 IB/mlx5: Reset access mask when looping inside page fault handler
    37222eaf7eb7 arm64: dts: stratix10: add the sysmgr-syscon property from the gmac's
    3cfce8b77aad usb: typec: tcpm: Try PD-2.0 if sink does not respond to 3.0 source-caps
    fba4f7c118e4 drm/i915: Sanity check mmap length against object size
    6423a2ad5709 drm/i915: Handle vm_mmap error during I915_GEM_MMAP ioctl with WC set
    778d626c6af3 CIFS: Fix leaking locked VFS cache pages in writeback retry
    fb2dabeabb17 CIFS: Fix error paths in writeback code
    e407b58c3576 drm: add __user attribute to ptr_to_compat()
    e1a12c3b6f87 PCI: qcom: Don't deassert reset GPIO during probe
    be905d0f2330 PCI: qcom: Fix error handling in runtime PM support
    476ecc14cfdb btrfs: init csum_list before possible free
    936690bdd8e6 btrfs: scrub: fix circular locking dependency warning
    ff55333f5c52 btrfs: scrub: move scrub_setup_ctx allocation out of device_list_mutex
    8ba3169dceac btrfs: scrub: pass fs_info to scrub_setup_ctx
    df7329207870 mmc: renesas_sdhi: Fix card initialization failure in high speed mode
    915c9d0a1d68 powerpc/kvm: Save and restore host AMR/IAMR/UAMOR
    b3f864b88256 spi: spi-gpio: fix SPI_CS_HIGH capability
    1d60902a5448 x86/kvmclock: set offset for kvm unstable clock
    716b0cfa88a5 iwlwifi: add new card for 9260 series
    213566a9b0de iwlwifi: fix devices with PCI Device ID 0x34F0 and 11ac RF modules
    2b76fcb6ba62 drm/nouveau: Don't WARN_ON VCPI allocation failures
    173b6557fcbc mt76: fix corrupted software generated tx CCMP PN
    0d7f329e2431 iio: adc: exynos-adc: Use proper number of channels for Exynos4x12
    4e516b721a50 dt-bindings: iio: adc: exynos-adc: Add S5PV210 variant
    7f588a7262b3 iio: adc: exynos-adc: Add S5PV210 variant
    cd490d44150d KVM: VMX: Compare only a single byte for VMCS' "launched" in vCPU-run
    687e470e9123 bcache: treat stale && dirty keys as bad keys
    d1cec665de2c bcache: replace hard coded number with BUCKET_GC_GEN_MAX
    ee30121fbd78 tpm: Fix some name collisions with drivers/char/tpm.h
    c207ac66848e mfd: Kconfig: Fix I2C_DESIGNWARE_PLATFORM dependencies
    6fd5e50add36 drm/i915/ilk: Fix warning when reading emon_status with no output
    2b4f567912ad drm/vblank: Allow dynamic per-crtc max_vblank_count
    71f719105462 crypto: ccree - add missing inline qualifier
    72eec6b303f4 crypto: ccree - fix resume race condition on init
    f0e286550af8 IB/uverbs: Fix OOPs upon device disassociation
    8c6fb55abf2c ARC: mm: do_page_fault fixes #1: relinquish mmap_sem if signal arrives while handle_mm_fault
    96af7d92d8d2 ARC: show_regs: lockdep: re-enable preemption
    424b75b79994 media: vim2m: only cancel work if it is for right context
    be77686f0369 btrfs: Use real device structure to verify dev extent
    a2790b9939ae btrfs: volumes: Make sure no dev extent is beyond device boundary
    cfbf227e0591 powerpc/pkeys: Fix handling of pkey state across fork()
    2ad95be18995 scsi: megaraid_sas: Use 63-bit DMA addressing
    3263f78640cc scsi: megaraid_sas: Add check for reset adapter bit
    dc4e3ec9d226 scsi: megaraid_sas: Fix combined reply queue mode detection
    eb124aaa2e85 btrfs: Fix error handling in btrfs_cleanup_ordered_extents
    1669d1d2e696 btrfs: Remove extent_io_ops::fill_delalloc
    338a528b7922 Btrfs: fix deadlock with memory reclaim during scrub
    fac803479f60 Btrfs: clean up scrub is_dev_replace parameter
    d3984e80d7f2 KVM: PPC: Book3S HV: Fix race between kvm_unmap_hva_range and MMU mode switch
    d88b01d04c6a drm/i915: Cleanup gt powerstate from gem
    b185bde520d5 drm/i915: Restore sane defaults for KMS on GEM error load
    f999485109d1 media: vim2m: use cancel_delayed_work_sync instead of flush_schedule_work
    a7b6f95f3ca6 media: vim2m: use workqueue
    e432a58d7a0d s390/zcrypt: reinit ap queue state machine during device probe
    a4f404af3ca8 ARM: davinci: dm644x: define gpio interrupts as separate resources
    8d6b2b24ca85 ARM: davinci: dm355: define gpio interrupts as separate resources
    d31f2b61e7f9 ARM: davinci: dm646x: define gpio interrupts as separate resources
    4883e9e66f76 ARM: davinci: dm365: define gpio interrupts as separate resources
    0a6c3bdae2c9 ARM: davinci: da8xx: define gpio interrupts as separate resources
    016218ef6bb0 drm/amd/dm: Understand why attaching path/tile properties are needed
    853dc0759586 drm/amd/pp: Fix truncated clock value when set watermark
    5faabd22ed64 powerplay: Respect units on max dcfclk watermark
    11bedb2e77a0 Drivers: hv: kvp: Fix the recent regression caused by incorrect clean-up
    74ff258346e4 Drivers: hv: kvp: Fix the indentation of some "break" statements
    e352d8eb9394 drm/atomic_helper: Disallow new modesets on unregistered connectors
    cff9e1e33151 drm/i915/gen9+: Fix initial readout for Y tiled framebuffers
    8ccbb1d24c26 drm/i915: Rename PLANE_CTL_DECOMPRESSION_ENABLE
    4b2dfc0e2d44 drm/i915: Fix intel_dp_mst_best_encoder()
    796469e361ed x86/kvm/lapic: preserve gfn_to_hva_cache len on cache reinit
    cdad0f65050e KVM: hyperv: define VP assist page helpers
    b0d9043bdbe6 KVM: x86: hyperv: keep track of mismatched VP indexes
    f031fd03e22e KVM: x86: hyperv: consistently use 'hv_vcpu' for 'struct kvm_vcpu_hv' variables
    0b535f7b95af KVM: x86: hyperv: enforce vp_index < KVM_MAX_VCPUS
    8e91cc7f7f91 drm/amdgpu: Update gc_9_0 golden settings.
    bcc3bd761ab5 drm/amdgpu/gfx9: Update gfx9 golden settings.
    2c2cf2245ff6 remoteproc: qcom: q6v5-mss: add SCM probe dependency
    4d9707586ec7 x86, hibernate: Fix nosave_regions setup for hibernation
    805e0e46eb54 Drivers: hv: kvp: Fix two "this statement may fall through" warnings
    3f3beae22842 keys: Fix the use of the C++ keyword "private" in uapi/linux/keyctl.h
    bac1c4edb5c4 scsi: qla2xxx: Move log messages before issuing command to firmware
    6e087eae89df media: cec: remove cec-edid.c
    851308450a8f media: cec/v4l2: move V4L2 specific CEC functions to V4L2
    c09d675f294b drm/i915: Re-apply "Perform link quality check, unconditionally during long pulse"
    3015291b2fb5 kernel/module: Fix mem leak in module_add_modinfo_attrs
    9c49f7811f82 modules: always page-align module section allocations
    84ba9ae18fbb remoteproc: qcom: q6v5: shore up resource probe handling
    56944c0b9774 clk: s2mps11: Add used attribute to s2mps11_dt_match
    480101a4aea2 nvme-fc: use separate work queue to avoid warning
    5f147150b753 riscv: remove unused variable in ftrace
    8d23872c7539 scripts/decode_stacktrace: match basepath using shell prefix operator, not regex
    6c550a5db18f arm64: dts: rockchip: enable usb-host regulators at boot on rk3328-rock64
    573370113b24 media: stm32-dcmi: fix irq = 0 case
    7f8b23600779 powerpc/64: mark start_here_multiplatform as __ref
    85a24825b2e6 x86/ftrace: Fix warning and considate ftrace_jmp_replace() and ftrace_call_replace()
    b93aed78eb78 selftests: fib_rule_tests: use pre-defined DEV_ADDR
    68829256e1f9 timekeeping: Use proper ktime_add when adding nsecs in coarse offset
    1aa38eceb6c0 {nl,mac}80211: fix interface combinations on crypto controlled devices
    178d1337a527 blk-iolatency: fix STS_AGAIN handling
    5f33e81250a6 Blk-iolatency: warn on negative inflight IO counter
    91a71a61da8c hv_sock: Fix hang when a connection is closed
    86d5ae21d6b8 batman-adv: Only read OGM tvlv_len after buffer len check
    4b5fee457723 batman-adv: fix uninit-value in batadv_netlink_get_ifindex()
    47a0f70d7d9a powerpc/tm: Fix FP/VMX unavailable exceptions inside a transaction
    6e7040d65a71 vhost/test: fix build for vhost test - again
    4f45483faadf vhost/test: fix build for vhost test
    dcd22e14780a drm/vmwgfx: Fix double free in vmw_recv_msg()
    38d38d1e0cc5 sched/fair: Don't assign runtime for throttled cfs_rq
    044ab4715585 ALSA: hda/realtek - Fix the problem of two front mics on a ThinkCentre
    849f85bfdf12 ALSA: hda/realtek - Enable internal speaker & headset mic of ASUS UX431FL
    a956998ac1c2 ALSA: hda/realtek - Add quirk for HP Pavilion 15
    d11ca2d79334 ALSA: hda/realtek - Fix overridden device-specific initialization
    2c4d2ce8b799 ALSA: hda - Fix potential endless loop at applying quirks

(From OE-Core rev: 611c7d62d67016942323d2fa4f108774c85dce09)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:16 +00:00
Ross Burton
90769125ee qemu-helper-native: pass compiler flags
Pass all of the compiler and linker flags so the build is correctly configured.

(From OE-Core rev: b5f8274d75cb61beaf7dab3420bda206e45697ae)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:16 +00:00
Ross Burton
c1fbd56f01 qemu-helper-native: showing help shouldn't be an error
Displaying a help message if help was requested isn't an error.

(From OE-Core rev: a1d9cfef7f247d616cd6ca482916ad0469e4fc58)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:16 +00:00
Ross Burton
6c50928df6 qemu-helper-native: add missing option to getopt() call
Noticed by -Wall.

(From OE-Core rev: 7ae318fb4eaa8595c30af68c9df0d6c09116dc4d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:16 +00:00
Ross Burton
faf0ebf337 cve-check: ensure all known CVEs are in the report
CVEs that are whitelisted or were not vulnerable when there are version
comparisons were not included in the report, so alter the logic to ensure that
all relevant CVEs are in the report for completeness.

(From OE-Core rev: 29d926802e7f8b4614a2dafa0af4c923912e1811)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:16 +00:00
He Zhe
9c38686e17 ltp: Fix overcommit_memory failure
Backport a patch from upstream to fix the following runtime failure.

mem.c:814: INFO: set overcommit_memory to 0
overcommit_memory.c:213: FAIL: alloc passed, expected to fail

(From OE-Core rev: 869f46863e218c2d18ae7b4c0b28775fa07ba8b8)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:16 +00:00
Changqing Li
2a6773b376 mdadm: fix do_package failed when changed local.conf but not cleaned
reproduce steps:
1. add DISTRO_FEATURE_append = 'usrmerge' in local.conf
2. bitbake mdadm --success
3. remove DISTRO_FEATURE_append = 'usrmerge' from local.conf
4. bitbake mdadm  -- failed when do_package

it is not proper to change source Makefile during do_install by sed,
fix by pass correct config to EXTRA_OEMAKE

[YOCTO #13493]

(From OE-Core rev: d0f285bd7d066e752b93e57b7f5468819016586f)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:15 +00:00
Ferry Toth
db8e206970 sudo: Fix fetching sources
It looks like https://www.sudo.ws/download.html changed certificate
and directory structure. This breaks fetching sources.

(From OE-Core rev: f02e9f46ce54fed3c7ddfad7d1003a2fb7ba3a67)

Signed-off-by: Ferry Toth <ftoth@exalondelft.nl>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:15 +00:00
Ross Burton
cc9836f601 file: run test suite when building natively
As we apply the same patches to native and target builds of file, we can verify
that the patches are not breaking by executing the test suite during the build
of file-native.

(From OE-Core rev: 4668ac8c2600fe5698f030ed1e8cba69c0989a2c)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:15 +00:00
Ross Burton
495005ae3c file: fix CVE-2019-18218
(From OE-Core rev: 2435c38e109cac68476ee672eca09b4cd6237ed4)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:15 +00:00
Richard Purdie
cf1117859e pseudo: Drop static linking to sqlite3
Back in 2010[1] we made pseudo statically link against sqlite3. Since then
the world has changed, pseudo now has separate processes for the database
in the server and the client and they have separate linking commands.

Also, whilst there were concerns about needing specific versions of sqlite3,
in the OE environment, this is always the case.

[1] http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=ad0ac0ecd38fc77daf42485489fccc10a5e1e3e7

The static sqlite3-native is causing us problems, in particular:

tmp/work/x86_64-linux/pseudo-native/1.9.0+gitAUTOINC+060058bb29-r0/recipe-sysroot-native/usr/lib/libsqlite3.a(sqlite3.o):(.data.rel+0xb0): undefined reference to `fcntl64'

which occurs if sqlite3-native was built on a machine with glibc 2.28 or later
and pseudo-native is being built on glibc before that. With dyanmical linking,
libc is backwards compatible and works but with static linking it does not.

There appears to be no easy way to avoid this other than adding a copy of
sqlite3 into the pseudo recipe. Given the static linking doesn't seem to
be required any longer due to the separate processes, drop that to fix
those issues.

(From OE-Core rev: 664c8f9837db7b20ff540d5f6373e4ae0f2b4b02)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:15 +00:00
Anuj Mittal
3f9476d8dd libsdl2: fix race when building in parallel
(From OE-Core rev: 4e3e8d8270f318e6384c3d9bb5f6c7503f41d736)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:15 +00:00
Trevor Gamblin
f3ba167c21 libgcrypt: fix CVE-2019-13627
Backport two fixes for CVE-2019-13627 from upstream
to zeus.

(From OE-Core rev: 3361760dbb46cca2e00f053286404b5df39590b3)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:15 +00:00
Ross Burton
6949ba6d41 libpam: set CVE_PRODUCT
(From OE-Core rev: d764ed9515d10db636ef63e0d05ac66f2a454ad4)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:15 +00:00
Ross Burton
d75c717c7f libsndfile1: whitelist CVE-2018-13419
This is a memory leak that nobody else can replicate and has been rejected by
upstream.

(From OE-Core rev: 541ec2f0590ab1f2c0667bf36df7c4c1bb0b6a25)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:15 +00:00
Ross Burton
d95f3a8277 procps: whitelist CVE-2018-1121
This CVE is about race conditions in 'ps' which make it unsuitable for security
audits.  As these race conditions are unavoidable ps shouldn't be used for
security auditing, so this isn't a valid CVE.

(From OE-Core rev: 16b98e759a33d9f20e5b40aa1cff5b1c27dbee9d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:15 +00:00
Ross Burton
25fb823284 libpng: whitelist CVE-2019-17371
This is actually a memory leak in gif2png 2.x, so whitelist it in the libpng
recipe.

(From OE-Core rev: a10b6e0e8d4e6b5778b5ca4db60e96ea025ea475)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:15 +00:00
Adrian Bunk
f2c963a930 python3: Upgrade 3.7.4 -> 3.7.5
Backported patch removed.

3.7.5 also includes the fix for CVE-2019-16935.

(From OE-Core rev: efc4236112d599a3a39376f5a5898072061efc8d)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:15 +00:00
Joe Slater
5c73cd2707 libxslt: fix CVE-2019-18197
Use patch from upstream after 1.1.33 release.

(From OE-Core rev: 27969c5987d974ff10e5d0f00415b8a8576143e0)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:15 +00:00
Joe Slater
6c5b31e7a6 libtiff: fix CVE-2019-17546
Apply unmodified patch from upstream.

(From OE-Core rev: 6dc3813bda9aaf8eed5a5a3f74b27b6a32c9cb42)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:15 +00:00
Changqing Li
2d43b1e2f1 e2fsprogs: fix CVE-2019-5094
(From OE-Core rev: 56f38b042d68528009283491b9d40c75f13b8f16)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:02:15 +00:00
Richard Purdie
f9d4afbb06 bitbake: fetch2: Ensure cached url data is matched to a datastore
There was a weird error in OE-Core where "devtool modify virtual/kernel"
was showing basehash mismatch errors. This was due to SRCPV sometimes being:
AUTOINC+b867b78b50_47b80ef7bd and sometimes AUTOINC+b867b78b50_255a750d28.

The latter hash comes from KBRANCH and meant sometimes the correct branch
was seen, sometimes it was not. The issue was complicated by the execution
using a remote datastore over tinfoil.

The problem turns out to be a fetcher caching error. If the datastore
changes, the cached url data may not be valid.

We therefore ensure we match cached url data against the datastore that
generated it, which appears to fix this issue.

(Bitbake rev: 1a79651c518abc35b99005c137ab7e82a99c75b0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:00:22 +00:00
Scott Rifenbark
17c1e5fc07 mega-manual: Updated mega-manual Bitbake manual search path
using ../.. instead of ../../..

Fixes [YOCTO #13553]

(From yocto-docs rev: fc5a20a8c40d900a54eaaddfca482526338193dd)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-10 14:07:08 +00:00
Scott Rifenbark
35a556a732 ref-manual: Added 3.0 migration section.
(From yocto-docs rev: c247f87e657cb63c8fd6a79b38ad66affe8c52a7)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-10 14:07:08 +00:00
Ivan Efimov
2404633259 bitbake: bitbake-worker child process create group before registering SIGTERM handler
The bitbake-worker child on the SIGTERM signal handling send the SIGTERM to all
processes in it's process group. In cases when the bitbake-worker child got
SIGTERM after registering own SIGTERM handler and before the os.setsid() call
it can send SIGTERM to unwanted processes.

In the worst case during SIGTERM processing the bitbake-worker child can be in
the group of the process that started BitBake itself. As a result it can kill
processes that not related to BitBake at all.

(Bitbake rev: 4d7017a48c17e9b64d5824c77abe94cc3ab0f579)

Signed-off-by: Ivan Efimov <i.efimov@inango-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-07 19:46:51 +00:00
André Draszik
72e9458dba connman: mark connman-wait-online as SYSTEMD_PACKAGE
The connman-wait-online package currently isn't marked as
systemd-enabled package. This means it is impossible to
auto-enable the service during image creation or package
installation, as no preset files and no pkg_postinst()
snippet is being created.

This change should have been done as part of the
upgrade to v1.31

Note:
connman-wait-online is needed when connman is in use
in more complex network/interface setups for systemd's
network-online.target to report success.
systemd-networkd's systemd-networkd-wait-online.service
alone doesn't work in such scenarios and simply times
out, as it know nothing about the expected network/
interface configuration, meaning the target doesn't
boot successfully (systemctl list-units --failed),
and long delays are seen, caused by waiting for the
systemd-networkd-wait-online.service timeout.

(From OE-Core rev: 5607d38af39294bf97a878b414a0212278b66b2c)

Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1a8d18eeee6dc188d8becc778bfa933031490781)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:18 +00:00
Chee Yang Lee
b3d7793ccd wic/engine: use 'linux-swap' for swap file system
[YOCTO #13312]
see https://bugzilla.yoctoproject.org/show_bug.cgi?id=13312

wic/engine.Disk._get_part_image was looking at variable fstypes for
supported fstype which is 'swap' but image build with 'linux-swap'.
supported fstype should be 'linux-swap'.

(From OE-Core rev: 759a37e315d72e462a617f1cda326b8f198e3d4e)

Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7e6da22fe4faf841bcec02e55f376b4dae04d6a8)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:18 +00:00
Liwei Song
4094715887 util-linux: fix PKNAME name is NULL when use lsblk [LIN1019-2963]
PKNAME is NULL when run "lsblk -o+PKNAME /dev/sda1"
backport an upstream patch to fix it.

(From OE-Core rev: dba4cc01463c2edad29f6f8c854b298255cc7562)

Signed-off-by: Liwei Song <liwei.song@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a5a987ff5e5e333e28be44a12e729907272ea3cb)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:18 +00:00
Chen Qi
811c957332 go: fix CVE-2019-16276
(From OE-Core rev: bedeecf57ebf013aa24535eaf1345c53ba22a494)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e31f87e289dfd3bbca961e927447a9c7ba816d3f)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:18 +00:00
Changqing Li
645d114f72 sudo: fix CVE-2019-14287
In Sudo before 1.8.28, an attacker with access to a Runas ALL sudoer
account can bypass certain policy blacklists and session PAM modules,
and can cause incorrect logging, by invoking sudo with a crafted user
ID. For example, this allows bypass of !root configuration, and USER=
logging, for a "sudo -u \#$((0xffffffff))" command.

(From OE-Core rev: b7b6d39565f8fad61f2347a3fe31c9ee77a4da15)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4e11cd561f2bdaa6807cf02ee7c9870881826308)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:18 +00:00
Tom Benn
db4b5fd686 dbus: update dbus-1.init to reflect new PID file
The PID file referenced in dbus-1.init script was out of date and no longer existed. This meant that dbus could not be restarted via init.d without force removing the old PID file.

(From OE-Core rev: a9d3cae5668fbcae7145b8cdba786caa30b5b3d3)

Signed-off-by: fridgecow <fridgecow@fb.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 2ed6f06f30cb54b9c70f1a92d93c920ec4d01ffe)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:18 +00:00
Yi Zhao
149ad2c3e2 libgcrypt: fix CVE-2019-12904
In Libgcrypt 1.8.4, the C implementation of AES is vulnerable to a
flush-and-reload side-channel attack because physical addresses are
available to other processes. (The C implementation is used on platforms
where an assembly-language implementation is unavailable.)

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2019-12904

Patches from:
1374254c29
daedbbb554
a4c561aab1

(From OE-Core rev: 757f2d50d7cd194e5f734a24e68d8f0da98b38f8)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 37e390ff05b6a4509019db358ed496731d80cc51)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:18 +00:00
Changqing Li
6b86b7fd57 python: Fix CVE-2019-10160
(From OE-Core rev: 50ba17abdcc6579ce0629cf1755d45308facb768)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit b4240b585d7fcac2fdbf33a8e72d48cb732eb696)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:18 +00:00
Douglas Royds via Openembedded-core
bfd2ab3d67 icecc: Export ICECC_CC and friends via wrapper-script
By exporting ICECC_CC, ICECC_CXX, and ICECC_VERSION in a wrapper-script,
and putting this wrapper-script in the PATH, the Makefiles generated by CMake or
the autotools are able to function correctly outside of bitbake.
This provides a convenient developer workflow in which the
modify-compile-unittest cycle can happen directly in the ${B} directory.

The `rm -f $ICE_PATH/$compiler` line is transitional,
and can go at some later date (October 2020 or later, perhaps).

(From OE-Core rev: 0f47d4ef50d6b0732ac40f7ede31f554a757864c)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 40d74cb1d0ddce930267e49764cacb263b244091)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:18 +00:00
George McCollister
26d04d5b11 openssl: make OPENSSL_ENGINES match install path
Set OPENSSL_ENGINES to the path where engines are actually installed.

(From OE-Core rev: 4aa5d551af3d0eb800c1640c98cbd591224726f8)

Signed-off-by: George McCollister <george.mccollister@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 59565fec0b3f3e24eb01c03b671913599cd3134d)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:18 +00:00
Changqing Li
70ccceb33a qemu: Fix CVE-2019-12068
(From OE-Core rev: 82c4fb091199b737722a60d517b694860b6e6ba8)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 81b375ac7851088a671317468a8e2eed69d4a827)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:17 +00:00
Ross Burton
56ce08a9ed python3: -dev should depend on distutils
python3-config uses distutils:

Traceback (most recent call last):
  File "/usr/bin/python3-config", line 9, in <module>
    from distutils import sysconfig
ModuleNotFoundError: No module named 'distutils'

Add the dependency so that distutils is always present.

[ YOCTO #13592 ]

(From OE-Core rev: 5fae2306184023165e21a87d1cca3016ba105d5f)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 04136dbac48986dce5b2b872b2c0b46c673c44f2)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:17 +00:00
Ricardo Ribalda Delgado
fbb38be2c1 i2c-tools: Add missing RDEPEND
Fixes:
 # decode-dimms
Can't locate Carp.pm in @INC (you may need to install the Carp module) (@INC contains: /usr/lib/perl5/site_perl/5.28.1/x86_64-linux /usr/lib/perl5/site_perl/5.28.1 /usr/lib/perl5/vendor_perl/5.28.1/x86_64-linux /usr/lib/perl5/vendor_perl/5.28.1 /usr/lib/perl5/5.28.1/x86_64-linux /usr/lib/perl5/5.28.1 .) at /usr/lib/perl5/5.28.1/Tie/Hash.pm line 190.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.28.1/Tie/Hash.pm line 190.
Compilation failed in require at /usr/lib/perl5/5.28.1/x86_64-linux/POSIX.pm line 505.
Compilation failed in require at /usr/bin/decode-dimms line 41.
BEGIN failed--compilation aborted at /usr/bin/decode-dimms line 41.
root@qt5222:~# apt-get install perl-module-carp

(From OE-Core rev: 60ee826ec6f07b270ae77e24be0088269a93081e)

Signed-off-by: Ricardo Ribalda Delgado <ricardo@ribalda.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c73d2a2c0ecc99f0d6d7e6a1861ecce7a2312a57)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:17 +00:00
Ross Burton
0b10203499 file: explicitly disable seccomp
file will automatically enable seccomp if the seccomp headers are available, but
the build will fail on Opensuse Tumbleweed because the include paths are wrong.

Enabling seccomp is a bad idea because it interacts badly with pseudo (causing
build failures), so explicitly and globally disable seccomp.

(From OE-Core rev: cbbbee1dce84d6ff62fb72282088f839cb642857)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a752faa152df031df5acaa40491299ac115109a4)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:17 +00:00
Eugene Smirnov
6fb5afb65d wic/rawcopy: Support files in sub-directories
If the source file is located in a subdirectory of DEPLOY_DIR
rawcopy will currently fail in sparse_copy function on
open(dst_fname, 'wb'), as the parent directory for destination
file does not exist.

This patch helps to avoid that by recursively creating
parent directories.

(From OE-Core rev: 03796926046e5b5b57349d66de6bb009a34d2cb2)

Signed-off-by: Eugene Smirnov <evgenii.smirnov@here.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 073c435644091c2801e45c6d02afa917de575082)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:17 +00:00
Hongxu Jia
13a3b14503 openssh: fix CVE-2019-16905
Backport a patch from upstream to fix CVE-2019-16905
a546b17bba

(From OE-Core rev: e8f39536d2616ea0bb8bab459da29af63e3ee336)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8bd4b87071c073a0e4d265bc00df34684a355eff)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:17 +00:00
Stefan Agner
ad9606f877 uninative: check .done file instead of tarball
In case multiple builds share UNINATIVE_DLDIR's location, one build
might be in the process of downloading the tarball while another is
just checking whether the tarball exists. Check for the done file
instead and rely on the fetchers lockfile mechanism in case two
builds are running.

(From OE-Core rev: 956ae2c2a72914c7e9a1d59e5906c7fc75670a39)

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a1c95580549cb4f77601e62c7f026b19c752d853)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:17 +00:00
Ross Burton
c07d45d20c sanity: check the format of SDK_VENDOR
If SDK_VENDOR isn't formatted as -foosdk and is instead for example -foo-sdk
then the triple that are constructed are not in fact triples, which results in
mysterious compile errors.

Check in sanity.bbclass so this failure is detected early.

[ YOCTO #13573 ]

(From OE-Core rev: 95d3ca54453cdb0662fae2a2cf7e8173611c86f4)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b0efd8d4d0dbc30e6505b42f5603f18fa764d732)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:17 +00:00
Yi Zhao
cd24be7c47 libsdl2: fix CVE-2019-13616
Reference:
https://nvd.nist.gov/vuln/detail/CVE-2019-13616

Patch from:
https://hg.libsdl.org/SDL/rev/e7ba650a643a

(From OE-Core rev: 691f04965faf58d9d6323898478916ae306d046c)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 70b9cdf86b9c5ed14937500619387a890a57ef20)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:17 +00:00
Wenlin Kang
78e173090b sysstat: fix CVE-2019-16167
This commit is another part of CVE-2019-16167, please see
https://github.com/sysstat/sysstat/issues/232.

(From OE-Core rev: 5c11937348debf57e3a87c7c6a6c0429fd756eca)

Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 586c045eb81b79200b46bf743f5d3fdb5f68c12d)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:17 +00:00
Trevor Gamblin
ed29b7291d ncurses: fix CVE-2019-17594, CVE-2019-17595
Backport changes to tinfo/comp_hash.c, tinfo/parse_entry.c,
and progs/dump_entry.c from upstream to fix CVEs.

(From OE-Core rev: 7ec70aeb0c6f6080523efa0f983fa36b92cb5558)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:17 +00:00
Joerg Vehlow
5fb336e957 runqemu: Remove disabling of high resolution timer
The option 'highres=off' sneaked itself into the runqemu script for all
configurations, where the root filesystem type is not 'cpio' or 'cpio.gz'.
See: https://bugzilla.yoctoproject.org/show_bug.cgi?id=13590

(From OE-Core rev: f71b1a96529d658d1c6c7dc04dca1957ea647e4e)

Signed-off-by: Joerg Vehlow <joerg.vehlow@aox-tech.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:17 +00:00
Alexander Kanavin
527456a57a runqemu: unset another environment variable for 'egl-headless'
Some host distributions (opensuse for example) are using 'pkgconf',
which, unlike the original pkg-config, appends PKG_CONFIG_SYSROOT_DIR
to every directory from the .pc file.

(From OE-Core rev: 5f51c9303940423b05ba8cfeaa1c9c2b24e36a53)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:17 +00:00
Chen Qi
895a9d0ef7 python3: CVE-2019-16056
(From OE-Core rev: b80c0a4b6821da55d2882b60d5d3e7b21d43a383)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:17 +00:00
Chen Qi
93a2a3c64a python: CVE-2019-16056
(From OE-Core rev: 27be9cf71a6fe906a23e81b56f1cc18a6fc9ef97)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:17 +00:00
Trevor Gamblin
6da9997056 aspell: fix CVE-2019-17544
Backport CVE-2019-17544 fix to zeus.

(From OE-Core rev: 7ed241ff1f93c623a3b3030249c09f7c3c429a46)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:17 +00:00
Qi.Chen@windriver.com
4f5919d899 sqlite3: fix CVE-2019-16168
(From OE-Core rev: 948b0dd6d91eeed529c6983141ab80327fa4ae9c)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-29 09:08:17 +00:00
Scott Rifenbark
4cecfe6e9d ref-manual, dev-manual: Added CMake toolchain files.
Fixes [YOCTO #12760]

Updated the cmake.bbclass description to tell what directory
to insall custom CMake toolchain files into.  Also, updated
the two areas in the "Writing a New Recipe" section that
mention CMake.  Placed a couple notes there concerning the
same directory stuff.

(From yocto-docs rev: a65cd2c4c062d4ae388191b9d6708b4fadffaa3f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-23 17:32:45 +01:00
Scott Rifenbark
728ad848a8 ref-manual: Updated the BUSYBOX_SPLIT_SUID variable.
Fixes [YOCTO #13596]

(From yocto-docs rev: 015991b26ed091385cfb94f13e00c6a964c20160)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-23 17:32:45 +01:00
Scott Rifenbark
5d4879def3 ref-manual, dev-manual: Clean up of a commit
Alejandro Enedino Hernandez Samaniego <aehs29@gmail.com>
commited a change to these manuals (see
9e79e96cad66316c1b4ee608723edfa763f0f9ef) and did not
use YP documentation standards for the content.  I cleaned
up the text and tabbing.

(From yocto-docs rev: 9c95799322e1830a5faae0980384ab10b6504007)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-23 17:32:45 +01:00
Scott Rifenbark
5789bb4985 ref-manual: Removed deprecated link to ref-classes-bluetooth
This was in a moving to YP version 1.8 migration section.

(From yocto-docs rev: b87f0882c39524747004fafc4d1caf58b3344c3a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-23 17:32:45 +01:00
Scott Rifenbark
eb6c765b24 documenation: Changed "2.8" to "3.0".
I was using "2.8" throughout the manual set instead
of "3.0".  Updated all aspects to "3.0".

(From yocto-docs rev: db19937e98c59d4d2a9ce89877be3c8e0b05991a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-23 17:32:45 +01:00
Scott Rifenbark
8221ea3602 ref-manual: 2nd pass 3.0 migration
Turned "2.8" into "3.0".  Nobody told me about skipping
2.8 and 2.9.

(From yocto-docs rev: 13819f0651c48adae9d1a8d6d19341ba5ee44978)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-23 17:32:45 +01:00
Scott Rifenbark
b22c6f673f dev-manual: Added info to "Selecting an Initialization Manager"
(From yocto-docs rev: c402ebcb51b6400d79c62ff44aeae57db982565e)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-23 17:32:45 +01:00
Scott Rifenbark
ea55d874e8 poky.ent: Updated the release date to October 2019
(From yocto-docs rev: 21042fd8ad463c996e554f52359a599ee7d35c12)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-23 17:32:45 +01:00
Scott Rifenbark
e398bd4cd0 ref-manual: First pass of 2.8 migration changes (WIP)
(From yocto-docs rev: 2c0f6cd921132caa4f49c34ac592db68be27761a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-23 17:32:45 +01:00
Ross Burton
a3ece7d5d8 kernel-dev: don't use _append +=
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-23 17:32:45 +01:00
3464 changed files with 250201 additions and 346175 deletions

1
.gitignore vendored
View File

@@ -8,7 +8,6 @@ pstage/
scripts/oe-git-proxy-socks
sources/
meta-*/
buildtools/
!meta-skeleton
!meta-selftest
hob-image-*.bb

View File

@@ -1,5 +0,0 @@
Some project contributors who are sadly no longer with us:
Greg Gilbert (treke) - Ahead of his time with licensing
Thomas Wood (thos) - Creator of the original sato
Scott Rifenbark (scottrif) - Our long standing techwriter whose words live on

View File

@@ -1,35 +0,0 @@
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build
DESTDIR = final
ifeq ($(shell if which $(SPHINXBUILD) >/dev/null 2>&1; then echo 1; else echo 0; fi),0)
$(error "The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed")
endif
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile.sphinx clean publish
publish: Makefile.sphinx html singlehtml
rm -rf $(BUILDDIR)/$(DESTDIR)/
mkdir -p $(BUILDDIR)/$(DESTDIR)/
cp -r $(BUILDDIR)/html/* $(BUILDDIR)/$(DESTDIR)/
cp $(BUILDDIR)/singlehtml/index.html $(BUILDDIR)/$(DESTDIR)/singleindex.html
sed -i -e 's@index.html#@singleindex.html#@g' $(BUILDDIR)/$(DESTDIR)/singleindex.html
clean:
@rm -rf $(BUILDDIR)
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile.sphinx
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

View File

@@ -26,7 +26,7 @@ from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException
if sys.getfilesystemencoding() != "utf-8":
sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.")
__version__ = "1.48.0"
__version__ = "1.44.0"
if __name__ == "__main__":
if __version__ != bb.__version__:

View File

@@ -14,6 +14,7 @@ import logging
import os
import sys
import argparse
import signal
bindir = os.path.dirname(__file__)
topdir = os.path.dirname(bindir)
@@ -25,6 +26,7 @@ import bb.msg
logger = bb.msg.logger_create('bitbake-layers', sys.stdout)
def main():
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
parser = argparse.ArgumentParser(
description="BitBake layers utility",
epilog="Use %(prog)s <subcommand> --help to get help on a specific command",
@@ -50,9 +52,7 @@ def main():
# Need to re-run logger_create with color argument
# (will be the same logger since it has the same name)
bb.msg.logger_create('bitbake-layers', output=sys.stdout,
color=global_args.color,
level=logger.getEffectiveLevel())
bb.msg.logger_create('bitbake-layers', output=sys.stdout, color=global_args.color)
plugins = []
tinfoil = bb.tinfoil.Tinfoil(tracking=True)

View File

@@ -18,7 +18,6 @@ except RuntimeError as exc:
sys.exit(str(exc))
tests = ["bb.tests.codeparser",
"bb.tests.color",
"bb.tests.cooker",
"bb.tests.cow",
"bb.tests.data",
@@ -27,7 +26,6 @@ tests = ["bb.tests.codeparser",
"bb.tests.parse",
"bb.tests.persist_data",
"bb.tests.runqueue",
"bb.tests.siggen",
"bb.tests.utils",
"hashserv.tests",
"layerindexlib.tests.layerindexobj",

View File

@@ -1,54 +0,0 @@
#!/usr/bin/env python3
#
# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2020 Richard Purdie
#
import os
import sys
import warnings
import logging
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
if sys.getfilesystemencoding() != "utf-8":
sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.")
# Users shouldn't be running this code directly
if len(sys.argv) != 10 or not sys.argv[1].startswith("decafbad"):
print("bitbake-server is meant for internal execution by bitbake itself, please don't use it standalone.")
sys.exit(1)
import bb.server.process
lockfd = int(sys.argv[2])
readypipeinfd = int(sys.argv[3])
logfile = sys.argv[4]
lockname = sys.argv[5]
sockname = sys.argv[6]
timeout = float(sys.argv[7])
xmlrpcinterface = (sys.argv[8], int(sys.argv[9]))
if xmlrpcinterface[0] == "None":
xmlrpcinterface = (None, xmlrpcinterface[1])
if timeout == "None":
timeout = None
# Replace standard fds with our own
with open('/dev/null', 'r') as si:
os.dup2(si.fileno(), sys.stdin.fileno())
so = open(logfile, 'a+')
os.dup2(so.fileno(), sys.stdout.fileno())
os.dup2(so.fileno(), sys.stderr.fileno())
# Have stdout and stderr be the same so log output matches chronologically
# and there aren't two seperate buffers
sys.stderr = sys.stdout
logger = logging.getLogger("BitBake")
# Ensure logging messages get sent to the UI as events
handler = bb.event.LogHandler()
logger.addHandler(handler)
bb.server.process.execServer(lockfd, readypipeinfd, lockname, sockname, timeout, xmlrpcinterface)

View File

@@ -65,6 +65,7 @@ if 0:
format_str = "%(levelname)s: %(message)s"
conlogformat = bb.msg.BBLogFormatter(format_str)
consolelog = logging.FileHandler(logfilename)
bb.msg.addDefaultlogFilter(consolelog)
consolelog.setFormatter(conlogformat)
logger.addHandler(consolelog)
@@ -413,9 +414,9 @@ class BitbakeWorker(object):
def handle_workerdata(self, data):
self.workerdata = pickle.loads(data)
bb.build.verboseShellLogging = self.workerdata["build_verbose_shell"]
bb.build.verboseStdoutLogging = self.workerdata["build_verbose_stdout"]
bb.msg.loggerDefaultLogLevel = self.workerdata["logdefaultlevel"]
bb.msg.loggerDefaultDebugLevel = self.workerdata["logdefaultdebug"]
bb.msg.loggerDefaultVerbose = self.workerdata["logdefaultverbose"]
bb.msg.loggerVerboseLogs = self.workerdata["logdefaultverboselogs"]
bb.msg.loggerDefaultDomains = self.workerdata["logdefaultdomain"]
for mc in self.databuilder.mcdata:
self.databuilder.mcdata[mc].setVar("PRSERV_HOST", self.workerdata["prhost"])

519
bitbake/bin/bitdoc Executable file
View File

@@ -0,0 +1,519 @@
#!/usr/bin/env python3
#
# Copyright (C) 2005 Holger Hans Peter Freyther
#
# SPDX-License-Identifier: GPL-2.0-only
#
import optparse, os, sys
# bitbake
sys.path.append(os.path.join(os.path.dirname(os.path.dirname(__file__), 'lib'))
import bb
import bb.parse
from string import split, join
__version__ = "0.0.2"
class HTMLFormatter:
"""
Simple class to help to generate some sort of HTML files. It is
quite inferior solution compared to docbook, gtkdoc, doxygen but it
should work for now.
We've a global introduction site (index.html) and then one site for
the list of keys (alphabetical sorted) and one for the list of groups,
one site for each key with links to the relations and groups.
index.html
all_keys.html
all_groups.html
groupNAME.html
keyNAME.html
"""
def replace(self, text, *pairs):
"""
From pydoc... almost identical at least
"""
while pairs:
(a, b) = pairs[0]
text = join(split(text, a), b)
pairs = pairs[1:]
return text
def escape(self, text):
"""
Escape string to be conform HTML
"""
return self.replace(text,
('&', '&amp;'),
('<', '&lt;' ),
('>', '&gt;' ) )
def createNavigator(self):
"""
Create the navgiator
"""
return """<table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="g" href="index.html">Home</a></td>
<td><a accesskey="n" href="all_groups.html">Groups</a></td>
<td><a accesskey="u" href="all_keys.html">Keys</a></td>
</tr></table>
"""
def relatedKeys(self, item):
"""
Create HTML to link to foreign keys
"""
if len(item.related()) == 0:
return ""
txt = "<p><b>See also:</b><br>"
txts = []
for it in item.related():
txts.append("""<a href="key%(it)s.html">%(it)s</a>""" % vars() )
return txt + ",".join(txts)
def groups(self, item):
"""
Create HTML to link to related groups
"""
if len(item.groups()) == 0:
return ""
txt = "<p><b>See also:</b><br>"
txts = []
for group in item.groups():
txts.append( """<a href="group%s.html">%s</a> """ % (group, group) )
return txt + ",".join(txts)
def createKeySite(self, item):
"""
Create a site for a key. It contains the header/navigator, a heading,
the description, links to related keys and to the groups.
"""
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Key %s</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
<h2><span class="refentrytitle">%s</span></h2>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<p>
%s
</p>
</div>
<div class="refsynopsisdiv">
<h2>Related Keys</h2>
<p>
%s
</p>
</div>
<div class="refsynopsisdiv">
<h2>Groups</h2>
<p>
%s
</p>
</div>
</body>
""" % (item.name(), self.createNavigator(), item.name(),
self.escape(item.description()), self.relatedKeys(item), self.groups(item))
def createGroupsSite(self, doc):
"""
Create the Group Overview site
"""
groups = ""
sorted_groups = sorted(doc.groups())
for group in sorted_groups:
groups += """<a href="group%s.html">%s</a><br>""" % (group, group)
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Group overview</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
<h2>Available Groups</h2>
%s
</body>
""" % (self.createNavigator(), groups)
def createIndex(self):
"""
Create the index file
"""
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Bitbake Documentation</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
<h2>Documentation Entrance</h2>
<a href="all_groups.html">All available groups</a><br>
<a href="all_keys.html">All available keys</a><br>
</body>
""" % self.createNavigator()
def createKeysSite(self, doc):
"""
Create Overview of all avilable keys
"""
keys = ""
sorted_keys = sorted(doc.doc_keys())
for key in sorted_keys:
keys += """<a href="key%s.html">%s</a><br>""" % (key, key)
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Key overview</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
<h2>Available Keys</h2>
%s
</body>
""" % (self.createNavigator(), keys)
def createGroupSite(self, gr, items, _description = None):
"""
Create a site for a group:
Group the name of the group, items contain the name of the keys
inside this group
"""
groups = ""
description = ""
# create a section with the group descriptions
if _description:
description += "<h2 Description of Grozp %s</h2>" % gr
description += _description
items.sort(lambda x, y:cmp(x.name(), y.name()))
for group in items:
groups += """<a href="key%s.html">%s</a><br>""" % (group.name(), group.name())
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Group %s</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
%s
<div class="refsynopsisdiv">
<h2>Keys in Group %s</h2>
<pre class="synopsis">
%s
</pre>
</div>
</body>
""" % (gr, self.createNavigator(), description, gr, groups)
def createCSS(self):
"""
Create the CSS file
"""
return """.synopsis, .classsynopsis
{
background: #eeeeee;
border: solid 1px #aaaaaa;
padding: 0.5em;
}
.programlisting
{
background: #eeeeff;
border: solid 1px #aaaaff;
padding: 0.5em;
}
.variablelist
{
padding: 4px;
margin-left: 3em;
}
.variablelist td:first-child
{
vertical-align: top;
}
table.navigation
{
background: #ffeeee;
border: solid 1px #ffaaaa;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.navigation a
{
color: #770000;
}
.navigation a:visited
{
color: #550000;
}
.navigation .title
{
font-size: 200%;
}
div.refnamediv
{
margin-top: 2em;
}
div.gallery-float
{
float: left;
padding: 10px;
}
div.gallery-float img
{
border-style: none;
}
div.gallery-spacer
{
clear: both;
}
a
{
text-decoration: none;
}
a:hover
{
text-decoration: underline;
color: #FF0000;
}
"""
class DocumentationItem:
"""
A class to hold information about a configuration
item. It contains the key name, description, a list of related names,
and the group this item is contained in.
"""
def __init__(self):
self._groups = []
self._related = []
self._name = ""
self._desc = ""
def groups(self):
return self._groups
def name(self):
return self._name
def description(self):
return self._desc
def related(self):
return self._related
def setName(self, name):
self._name = name
def setDescription(self, desc):
self._desc = desc
def addGroup(self, group):
self._groups.append(group)
def addRelation(self, relation):
self._related.append(relation)
def sort(self):
self._related.sort()
self._groups.sort()
class Documentation:
"""
Holds the documentation... with mappings from key to items...
"""
def __init__(self):
self.__keys = {}
self.__groups = {}
def insert_doc_item(self, item):
"""
Insert the Doc Item into the internal list
of representation
"""
item.sort()
self.__keys[item.name()] = item
for group in item.groups():
if not group in self.__groups:
self.__groups[group] = []
self.__groups[group].append(item)
self.__groups[group].sort()
def doc_item(self, key):
"""
Return the DocumentationInstance describing the key
"""
try:
return self.__keys[key]
except KeyError:
return None
def doc_keys(self):
"""
Return the documented KEYS (names)
"""
return self.__keys.keys()
def groups(self):
"""
Return the names of available groups
"""
return self.__groups.keys()
def group_content(self, group_name):
"""
Return a list of keys/names that are in a specefic
group or the empty list
"""
try:
return self.__groups[group_name]
except KeyError:
return []
def parse_cmdline(args):
"""
Parse the CMD line and return the result as a n-tuple
"""
parser = optparse.OptionParser( version = "Bitbake Documentation Tool Core version %s, %%prog version %s" % (bb.__version__, __version__))
usage = """%prog [options]
Create a set of html pages (documentation) for a bitbake.conf....
"""
# Add the needed options
parser.add_option( "-c", "--config", help = "Use the specified configuration file as source",
action = "store", dest = "config", default = os.path.join("conf", "documentation.conf") )
parser.add_option( "-o", "--output", help = "Output directory for html files",
action = "store", dest = "output", default = "html/" )
parser.add_option( "-D", "--debug", help = "Increase the debug level",
action = "count", dest = "debug", default = 0 )
parser.add_option( "-v", "--verbose", help = "output more chit-char to the terminal",
action = "store_true", dest = "verbose", default = False )
options, args = parser.parse_args( sys.argv )
bb.msg.init_msgconfig(options.verbose, options.debug)
return options.config, options.output
def main():
"""
The main Method
"""
(config_file, output_dir) = parse_cmdline( sys.argv )
# right to let us load the file now
try:
documentation = bb.parse.handle( config_file, bb.data.init() )
except IOError:
bb.fatal( "Unable to open %s" % config_file )
except bb.parse.ParseError:
bb.fatal( "Unable to parse %s" % config_file )
if isinstance(documentation, dict):
documentation = documentation[""]
# Assuming we've the file loaded now, we will initialize the 'tree'
doc = Documentation()
# defined states
state_begin = 0
state_see = 1
state_group = 2
for key in bb.data.keys(documentation):
data = documentation.getVarFlag(key, "doc", False)
if not data:
continue
# The Documentation now starts
doc_ins = DocumentationItem()
doc_ins.setName(key)
tokens = data.split(' ')
state = state_begin
string= ""
for token in tokens:
token = token.strip(',')
if not state == state_see and token == "@see":
state = state_see
continue
elif not state == state_group and token == "@group":
state = state_group
continue
if state == state_begin:
string += " %s" % token
elif state == state_see:
doc_ins.addRelation(token)
elif state == state_group:
doc_ins.addGroup(token)
# set the description
doc_ins.setDescription(string)
doc.insert_doc_item(doc_ins)
# let us create the HTML now
bb.utils.mkdirhier(output_dir)
os.chdir(output_dir)
# Let us create the sites now. We do it in the following order
# Start with the index.html. It will point to sites explaining all
# keys and groups
html_slave = HTMLFormatter()
f = file('style.css', 'w')
print >> f, html_slave.createCSS()
f = file('index.html', 'w')
print >> f, html_slave.createIndex()
f = file('all_groups.html', 'w')
print >> f, html_slave.createGroupsSite(doc)
f = file('all_keys.html', 'w')
print >> f, html_slave.createKeysSite(doc)
# now for each group create the site
for group in doc.groups():
f = file('group%s.html' % group, 'w')
print >> f, html_slave.createGroupSite(group, doc.group_content(group))
# now for the keys
for key in doc.doc_keys():
f = file('key%s.html' % doc.doc_item(key).name(), 'w')
print >> f, html_slave.createKeySite(doc.doc_item(key))
if __name__ == "__main__":
main()

View File

@@ -8,13 +8,12 @@
#
HELP="
Usage 1: source toaster start|stop [webport=<address:port>] [noweb] [nobuild] [toasterdir]
Usage: source toaster start|stop [webport=<address:port>] [noweb] [nobuild] [toasterdir]
Optional arguments:
[nobuild] Setup the environment for capturing builds with toaster but disable managed builds
[noweb] Setup the environment for capturing builds with toaster but don't start the web server
[webport] Set the development server (default: localhost:8000)
[toasterdir] Set absolute path to be used as TOASTER_DIR (default: BUILDDIR/../)
Usage 2: source toaster manage [createsuperuser|lsupdates|migrate|makemigrations|checksettings|collectstatic|...]
"
custom_extention()
@@ -209,21 +208,13 @@ for param in $*; do
toasterdir=*)
TOASTERDIR="${param#*=}"
;;
manage )
CMD=$param
manage_cmd=""
;;
--help)
echo "$HELP"
return 0
;;
*)
if [ "manage" == "$CMD" ] ; then
manage_cmd="$manage_cmd $param"
else
echo "$HELP"
exit 1
fi
echo "$HELP"
return 1
;;
esac
@@ -315,10 +306,6 @@ case $CMD in
stop_system
echo "Successful ${CMD}."
;;
manage )
cd $BBBASEDIR/lib/toaster
$MANAGE $manage_cmd
;;
esac
custom_extention toaster_postpend $CMD $ADDR_PORT

View File

@@ -1,13 +0,0 @@
{
"version": 1,
"loggers": {
"BitBake.SigGen.HashEquiv": {
"level": "VERBOSE",
"handlers": ["BitBake.verbconsole"]
},
"BitBake.RunQueue.HashEquiv": {
"level": "VERBOSE",
"handlers": ["BitBake.verbconsole"]
}
}
}

View File

@@ -1,89 +0,0 @@
#! /usr/bin/env python3
#
# Copyright (C) 2020 Joshua Watt <JPEWhacker@gmail.com>
#
# SPDX-License-Identifier: MIT
import argparse
import os
import random
import shutil
import signal
import subprocess
import sys
import time
def try_unlink(path):
try:
os.unlink(path)
except:
pass
def main():
def cleanup():
shutil.rmtree("tmp/cache", ignore_errors=True)
try_unlink("bitbake-cookerdaemon.log")
try_unlink("bitbake.sock")
try_unlink("bitbake.lock")
parser = argparse.ArgumentParser(
description="Bitbake parser torture test",
epilog="""
A torture test for bitbake's parser. Repeatedly interrupts parsing until
bitbake decides to deadlock.
""",
)
args = parser.parse_args()
if not "BUILDDIR" in os.environ:
print(
"'BUILDDIR' not found in the environment. Did you initialize the build environment?"
)
return 1
os.chdir(os.environ["BUILDDIR"])
run_num = 0
while True:
if run_num % 100 == 0:
print("Calibrating wait time...")
cleanup()
start_time = time.monotonic()
r = subprocess.run(["bitbake", "-p"])
max_wait_time = time.monotonic() - start_time
if r.returncode != 0:
print("Calibration run exited with %d" % r.returncode)
return 1
print("Maximum wait time is %f seconds" % max_wait_time)
run_num += 1
wait_time = random.random() * max_wait_time
print("Run #%d" % run_num)
print("Will sleep for %f seconds" % wait_time)
cleanup()
with subprocess.Popen(["bitbake", "-p"]) as proc:
time.sleep(wait_time)
proc.send_signal(signal.SIGINT)
try:
proc.wait(45)
except subprocess.TimeoutExpired:
print("Run #%d: Waited too long. Possible deadlock!" % run_num)
proc.wait()
return 1
if proc.returncode == 0:
print("Exited successfully. Timeout too long?")
else:
print("Exited with %d" % proc.returncode)
if __name__ == "__main__":
sys.exit(main())

View File

@@ -1,18 +0,0 @@
The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -6,12 +6,12 @@
"
" This sets up the syntax highlighting for BitBake files, like .bb, .bbclass and .inc
if &compatible || version < 600 || exists("b:loaded_bitbake_plugin")
if &compatible || version < 600
finish
endif
" .bb, .bbappend and .bbclass
au BufNewFile,BufRead *.{bb,bbappend,bbclass} set filetype=bitbake
au BufNewFile,BufRead *.{bb,bbappend,bbclass} set filetype=bitbake
" .inc
au BufNewFile,BufRead *.inc set filetype=bitbake

View File

@@ -1,13 +1,2 @@
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
" Don't load another plugin for this buffer
let b:did_ftplugin = 1
let b:undo_ftplugin = "setl cms< sts< sw< et< sua<"
setlocal commentstring=#\ %s
setlocal softtabstop=4 shiftwidth=4 expandtab
setlocal suffixesadd+=.bb,.bbclass
set sts=4 sw=4 et
set cms=#%s

View File

@@ -1,343 +0,0 @@
" Vim indent file
" Language: BitBake
" Copyright: Copyright (C) 2019 Agilent Technologies, Inc.
" Maintainer: Chris Laplante <chris.laplante@agilent.com>
" License: You may redistribute this under the same terms as Vim itself
if exists("b:did_indent")
finish
endif
if exists("*BitbakeIndent")
finish
endif
runtime! indent/sh.vim
unlet b:did_indent
setlocal indentexpr=BitbakeIndent(v:lnum)
setlocal autoindent nolisp
function s:is_bb_python_func_def(lnum)
let stack = synstack(a:lnum, 1)
if len(stack) == 0
return 0
endif
let top = synIDattr(stack[0], "name")
echo top
return synIDattr(stack[0], "name") == "bbPyFuncDef"
endfunction
"""" begin modified from indent/python.vim, upstream commit 7a9bd7c1e0ce1baf5a02daf36eeae3638aa315c7
"""" This copied code is licensed the same as Vim itself.
setlocal indentkeys+=<:>,=elif,=except
let s:keepcpo= &cpo
set cpo&vim
let s:maxoff = 50 " maximum number of lines to look backwards for ()
function GetPythonIndent(lnum)
" If this line is explicitly joined: If the previous line was also joined,
" line it up with that one, otherwise add two 'shiftwidth'
if getline(a:lnum - 1) =~ '\\$'
if a:lnum > 1 && getline(a:lnum - 2) =~ '\\$'
return indent(a:lnum - 1)
endif
return indent(a:lnum - 1) + (exists("g:pyindent_continue") ? eval(g:pyindent_continue) : (shiftwidth() * 2))
endif
" If the start of the line is in a string don't change the indent.
if has('syntax_items')
\ && synIDattr(synID(a:lnum, 1, 1), "name") =~ "String$"
return -1
endif
" Search backwards for the previous non-empty line.
let plnum = prevnonblank(v:lnum - 1)
if plnum == 0
" This is the first non-empty line, use zero indent.
return 0
endif
call cursor(plnum, 1)
" Identing inside parentheses can be very slow, regardless of the searchpair()
" timeout, so let the user disable this feature if he doesn't need it
let disable_parentheses_indenting = get(g:, "pyindent_disable_parentheses_indenting", 0)
if disable_parentheses_indenting == 1
let plindent = indent(plnum)
let plnumstart = plnum
else
" searchpair() can be slow sometimes, limit the time to 150 msec or what is
" put in g:pyindent_searchpair_timeout
let searchpair_stopline = 0
let searchpair_timeout = get(g:, 'pyindent_searchpair_timeout', 150)
" If the previous line is inside parenthesis, use the indent of the starting
" line.
" Trick: use the non-existing "dummy" variable to break out of the loop when
" going too far back.
let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW',
\ "line('.') < " . (plnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if parlnum > 0
" We may have found the opening brace of a BitBake Python task, e.g. 'python do_task {'
" If so, ignore it here - it will be handled later.
if s:is_bb_python_func_def(parlnum)
let parlnum = 0
let plindent = indent(plnum)
let plnumstart = plnum
else
let plindent = indent(parlnum)
let plnumstart = parlnum
endif
else
let plindent = indent(plnum)
let plnumstart = plnum
endif
" When inside parenthesis: If at the first line below the parenthesis add
" two 'shiftwidth', otherwise same as previous line.
" i = (a
" + b
" + c)
call cursor(a:lnum, 1)
let p = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if p > 0
if s:is_bb_python_func_def(p)
" Handle first non-empty line inside a BB Python task
if p == plnum
return shiftwidth()
endif
" Handle the user actually trying to close a BitBake Python task
let line = getline(a:lnum)
if line =~ '^\s*}'
return -2
endif
" Otherwise ignore the brace
let p = 0
else
if p == plnum
" When the start is inside parenthesis, only indent one 'shiftwidth'.
let pp = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if pp > 0
return indent(plnum) + (exists("g:pyindent_nested_paren") ? eval(g:pyindent_nested_paren) : shiftwidth())
endif
return indent(plnum) + (exists("g:pyindent_open_paren") ? eval(g:pyindent_open_paren) : (shiftwidth() * 2))
endif
if plnumstart == p
return indent(plnum)
endif
return plindent
endif
endif
endif
" Get the line and remove a trailing comment.
" Use syntax highlighting attributes when possible.
let pline = getline(plnum)
let pline_len = strlen(pline)
if has('syntax_items')
" If the last character in the line is a comment, do a binary search for
" the start of the comment. synID() is slow, a linear search would take
" too long on a long line.
if synIDattr(synID(plnum, pline_len, 1), "name") =~ "\\(Comment\\|Todo\\)$"
let min = 1
let max = pline_len
while min < max
let col = (min + max) / 2
if synIDattr(synID(plnum, col, 1), "name") =~ "\\(Comment\\|Todo\\)$"
let max = col
else
let min = col + 1
endif
endwhile
let pline = strpart(pline, 0, min - 1)
endif
else
let col = 0
while col < pline_len
if pline[col] == '#'
let pline = strpart(pline, 0, col)
break
endif
let col = col + 1
endwhile
endif
" If the previous line ended with a colon, indent this line
if pline =~ ':\s*$'
return plindent + shiftwidth()
endif
" If the previous line was a stop-execution statement...
" TODO: utilize this logic to deindent when ending a bbPyDefRegion
if getline(plnum) =~ '^\s*\(break\|continue\|raise\|return\|pass\|bb\.fatal\)\>'
" See if the user has already dedented
if indent(a:lnum) > indent(plnum) - shiftwidth()
" If not, recommend one dedent
return indent(plnum) - shiftwidth()
endif
" Otherwise, trust the user
return -1
endif
" If the current line begins with a keyword that lines up with "try"
if getline(a:lnum) =~ '^\s*\(except\|finally\)\>'
let lnum = a:lnum - 1
while lnum >= 1
if getline(lnum) =~ '^\s*\(try\|except\)\>'
let ind = indent(lnum)
if ind >= indent(a:lnum)
return -1 " indent is already less than this
endif
return ind " line up with previous try or except
endif
let lnum = lnum - 1
endwhile
return -1 " no matching "try"!
endif
" If the current line begins with a header keyword, dedent
if getline(a:lnum) =~ '^\s*\(elif\|else\)\>'
" Unless the previous line was a one-liner
if getline(plnumstart) =~ '^\s*\(for\|if\|try\)\>'
return plindent
endif
" Or the user has already dedented
if indent(a:lnum) <= plindent - shiftwidth()
return -1
endif
return plindent - shiftwidth()
endif
" When after a () construct we probably want to go back to the start line.
" a = (b
" + c)
" here
if parlnum > 0
return plindent
endif
return -1
endfunction
let &cpo = s:keepcpo
unlet s:keepcpo
""" end of stuff from indent/python.vim
let b:did_indent = 1
setlocal indentkeys+=0\"
function BitbakeIndent(lnum)
if !has('syntax_items')
return -1
endif
let stack = synstack(a:lnum, 1)
if len(stack) == 0
return -1
endif
let name = synIDattr(stack[0], "name")
" TODO: support different styles of indentation for assignments. For now,
" we only support like this:
" VAR = " \
" value1 \
" value2 \
" "
"
" i.e. each value indented by shiftwidth(), with the final quote " completely unindented.
if name == "bbVarValue"
" Quote handling is tricky. kernel.bbclass has this line for instance:
" EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" " HOSTCPP="${BUILD_CPP}""
" Instead of trying to handle crazy cases like that, just assume that a
" double-quote on a line by itself (following an assignment) means the
" user is closing the assignment, and de-dent.
if getline(a:lnum) =~ '^\s*"$'
return 0
endif
let prevstack = synstack(a:lnum - 1, 1)
if len(prevstack) == 0
return -1
endif
let prevname = synIDattr(prevstack[0], "name")
" Only indent if there was actually a continuation character on
" the previous line, to avoid misleading indentation.
let prevlinelastchar = synIDattr(synID(a:lnum - 1, col([a:lnum - 1, "$"]) - 1, 1), "name")
let prev_continued = prevlinelastchar == "bbContinue"
" Did the previous line introduce an assignment?
if index(["bbVarDef", "bbVarFlagDef"], prevname) != -1
if prev_continued
return shiftwidth()
endif
endif
if !prev_continued
return 0
endif
" Autoindent can take it from here
return -1
endif
if index(["bbPyDefRegion", "bbPyFuncRegion"], name) != -1
let ret = GetPythonIndent(a:lnum)
" Should normally always be indented by at least one shiftwidth; but allow
" return of -1 (defer to autoindent) or -2 (force indent to 0)
if ret == 0
return shiftwidth()
elseif ret == -2
return 0
endif
return ret
endif
" TODO: GetShIndent doesn't detect tasks prepended with 'fakeroot'
" Need to submit a patch upstream to Vim to provide an extension point.
" Unlike the Python indenter, the Sh indenter is way too large to copy and
" modify here.
if name == "bbShFuncRegion"
return GetShIndent()
endif
" TODO:
" + heuristics for de-denting out of a bbPyDefRegion? e.g. when the user
" types an obvious BB keyword like addhandler or addtask, or starts
" writing a shell task. Maybe too hard to implement...
return -1
endfunction

14
bitbake/contrib/vim/plugin/newbb.vim Normal file → Executable file
View File

@@ -10,7 +10,7 @@
"
" Will try to use git to find the user name and email
if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin")
if &compatible || v:version < 600
finish
endif
@@ -25,7 +25,7 @@ endfun
fun! <SID>GetUserEmail()
let l:user_email = system("git config --get user.email")
if v:shell_error
return "unknown@user.org"
return "unknow@user.org"
else
return substitute(l:user_email, "\n", "", "")
endfun
@@ -41,10 +41,6 @@ fun! BBHeader()
endfun
fun! NewBBTemplate()
if line2byte(line('$') + 1) != -1
return
endif
let l:paste = &paste
set nopaste
@@ -52,7 +48,7 @@ fun! NewBBTemplate()
call BBHeader()
" New the bb template
put ='SUMMARY = \"\"'
put ='DESCRIPTION = \"\"'
put ='HOMEPAGE = \"\"'
put ='LICENSE = \"\"'
put ='SECTION = \"\"'
@@ -62,7 +58,7 @@ fun! NewBBTemplate()
" Go to the first place to edit
0
/^SUMMARY =/
/^DESCRIPTION =/
exec "normal 2f\""
if paste == 1
@@ -80,7 +76,7 @@ if v:progname =~ "vimdiff"
endif
augroup NewBB
au BufNewFile,BufReadPost *.bb
au BufNewFile *.bb
\ if g:bb_create_on_empty |
\ call NewBBTemplate() |
\ endif

View File

@@ -1,46 +0,0 @@
" Vim plugin file
" Purpose: Create a template for new bbappend file
" Author: Joshua Watt <JPEWhacker@gmail.com>
" Copyright: Copyright (C) 2017 Joshua Watt <JPEWhacker@gmail.com>
"
" This file is licensed under the MIT license, see COPYING.MIT in
" this source distribution for the terms.
"
if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin")
finish
endif
fun! NewBBAppendTemplate()
if line2byte(line('$') + 1) != -1
return
endif
let l:paste = &paste
set nopaste
" New bbappend template
0 put ='FILESEXTRAPATHS_prepend := \"${THISDIR}/${PN}:\"'
2
if paste == 1
set paste
endif
endfun
if !exists("g:bb_create_on_empty")
let g:bb_create_on_empty = 1
endif
" disable in case of vimdiff
if v:progname =~ "vimdiff"
let g:bb_create_on_empty = 0
endif
augroup NewBBAppend
au BufNewFile,BufReadPost *.bbappend
\ if g:bb_create_on_empty |
\ call NewBBAppendTemplate() |
\ endif
augroup END

View File

@@ -12,7 +12,7 @@
"
" It's an entirely new type, just has specific syntax in shell and python code
if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin")
if &compatible || v:version < 600
finish
endif
if exists("b:current_syntax")
@@ -58,8 +58,8 @@ syn match bbVarValue ".*$" contained contains=bbString,bbVarDeref,bbV
syn region bbVarPyValue start=+${@+ skip=+\\$+ end=+}+ contained contains=@python
" Vars metadata flags
syn match bbVarFlagDef "^\([a-zA-Z0-9\-_\.]\+\)\(\[[a-zA-Z0-9\-_\.+]\+\]\)\@=" contains=bbIdentifier nextgroup=bbVarFlagFlag
syn region bbVarFlagFlag matchgroup=bbArrayBrackets start="\[" end="\]\s*\(:=\|=\|.=\|=.|+=\|=+\|?=\)\@=" contained contains=bbIdentifier nextgroup=bbVarEq
syn match bbVarFlagDef "^\([a-zA-Z0-9\-_\.]\+\)\(\[[a-zA-Z0-9\-_\.]\+\]\)\@=" contains=bbIdentifier nextgroup=bbVarFlagFlag
syn region bbVarFlagFlag matchgroup=bbArrayBrackets start="\[" end="\]\s*\(=\|+=\|=+\|?=\)\@=" contained contains=bbIdentifier nextgroup=bbVarEq
" Includes and requires
syn keyword bbInclude inherit include require contained
@@ -67,15 +67,15 @@ syn match bbIncludeRest ".*$" contained contains=bbString,bbVarDeref
syn match bbIncludeLine "^\(inherit\|include\|require\)\s\+" contains=bbInclude nextgroup=bbIncludeRest
" Add taks and similar
syn keyword bbStatement addtask deltask addhandler after before EXPORT_FUNCTIONS contained
syn keyword bbStatement addtask addhandler after before EXPORT_FUNCTIONS contained
syn match bbStatementRest ".*$" skipwhite contained contains=bbStatement
syn match bbStatementLine "^\(addtask\|deltask\|addhandler\|after\|before\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest
syn match bbStatementLine "^\(addtask\|addhandler\|after\|before\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest
" OE Important Functions
syn keyword bbOEFunctions do_fetch do_unpack do_patch do_configure do_compile do_stage do_install do_package contained
" Generic Functions
syn match bbFunction "\h[0-9A-Za-z_\-\.]*" display contained contains=bbOEFunctions
syn match bbFunction "\h[0-9A-Za-z_-]*" display contained contains=bbOEFunctions
" BitBake shell metadata
syn include @shell syntax/sh.vim
@@ -83,7 +83,7 @@ if exists("b:current_syntax")
unlet b:current_syntax
endif
syn keyword bbShFakeRootFlag fakeroot contained
syn match bbShFuncDef "^\(fakeroot\s*\)\?\([\.0-9A-Za-z_${}\-\.]\+\)\(python\)\@<!\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbFunction,bbVarDeref,bbDelimiter nextgroup=bbShFuncRegion skipwhite
syn match bbShFuncDef "^\(fakeroot\s*\)\?\([0-9A-Za-z_${}-]\+\)\(python\)\@<!\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbFunction,bbVarDeref,bbDelimiter nextgroup=bbShFuncRegion skipwhite
syn region bbShFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" contained contains=@shell
" Python value inside shell functions
@@ -91,7 +91,7 @@ syn region shDeref start=+${@+ skip=+\\$+ excludenl end=+}+ contained co
" BitBake python metadata
syn keyword bbPyFlag python contained
syn match bbPyFuncDef "^\(fakeroot\s*\)\?\(python\)\(\s\+[0-9A-Za-z_${}\-\.]\+\)\?\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbPyFlag,bbFunction,bbVarDeref,bbDelimiter nextgroup=bbPyFuncRegion skipwhite
syn match bbPyFuncDef "^\(python\s\+\)\([0-9A-Za-z_${}-]\+\)\?\(\s*()\s*\)\({\)\@=" contains=bbPyFlag,bbFunction,bbVarDeref,bbDelimiter nextgroup=bbPyFuncRegion skipwhite
syn region bbPyFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" contained contains=@python
" BitBake 'def'd python functions

View File

@@ -1 +0,0 @@
_build/

View File

@@ -1,35 +1,91 @@
# Minimal makefile for Sphinx documentation
# This is a single Makefile to handle all generated BitBake documents.
# The Makefile needs to live in the documentation directory and all figures used
# in any manuals must be .PNG files and live in the individual book's figures
# directory.
#
# The Makefile has these targets:
#
# pdf: generates a PDF version of a manual.
# html: generates an HTML version of a manual.
# tarball: creates a tarball for the doc files.
# validate: validates
# clean: removes files
#
# The Makefile generates an HTML version of every document. The
# variable DOC indicates the folder name for a given manual.
#
# To build a manual, you must invoke 'make' with the DOC argument.
#
# Examples:
#
# make DOC=bitbake-user-manual
# make pdf DOC=bitbake-user-manual
#
# The first example generates the HTML version of the User Manual.
# The second example generates the PDF version of the User Manual.
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build
DESTDIR = final
ifeq ($(DOC),bitbake-user-manual)
XSLTOPTS = --stringparam html.stylesheet bitbake-user-manual-style.css \
--stringparam chapter.autolabel 1 \
--stringparam section.autolabel 1 \
--stringparam section.label.includes.component.label 1 \
--xinclude
ALLPREQ = html tarball
TARFILES = bitbake-user-manual-style.css bitbake-user-manual.html figures/bitbake-title.png
MANUALS = $(DOC)/$(DOC).html
FIGURES = figures
STYLESHEET = $(DOC)/*.css
ifeq ($(shell if which $(SPHINXBUILD) >/dev/null 2>&1; then echo 1; else echo 0; fi),0)
$(error "The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed")
endif
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
##
# These URI should be rewritten by your distribution's xml catalog to
# match your localy installed XSL stylesheets.
XSL_BASE_URI = http://docbook.sourceforge.net/release/xsl/current
XSL_XHTML_URI = $(XSL_BASE_URI)/xhtml/docbook.xsl
.PHONY: help Makefile clean publish
all: $(ALLPREQ)
publish: Makefile html singlehtml
rm -rf $(BUILDDIR)/$(DESTDIR)/
mkdir -p $(BUILDDIR)/$(DESTDIR)/
cp -r $(BUILDDIR)/html/* $(BUILDDIR)/$(DESTDIR)/
cp $(BUILDDIR)/singlehtml/index.html $(BUILDDIR)/$(DESTDIR)/singleindex.html
sed -i -e 's@index.html#@singleindex.html#@g' $(BUILDDIR)/$(DESTDIR)/singleindex.html
pdf:
ifeq ($(DOC),bitbake-user-manual)
@echo " "
@echo "********** Building."$(DOC)
@echo " "
cd $(DOC); ../tools/docbook-to-pdf $(DOC).xml ../template; cd ..
endif
html:
ifeq ($(DOC),bitbake-user-manual)
# See http://www.sagehill.net/docbookxsl/HtmlOutput.html
@echo " "
@echo "******** Building "$(DOC)
@echo " "
cd $(DOC); xsltproc $(XSLTOPTS) -o $(DOC).html $(DOC)-customization.xsl $(DOC).xml; cd ..
endif
tarball: html
@echo " "
@echo "******** Creating Tarball of document files"
@echo " "
cd $(DOC); tar -cvzf $(DOC).tgz $(TARFILES); cd ..
validate:
cd $(DOC); xmllint --postvalid --xinclude --noout $(DOC).xml; cd ..
publish:
@if test -f $(DOC)/$(DOC).html; \
then \
echo " "; \
echo "******** Publishing "$(DOC)".html"; \
echo " "; \
scp -r $(MANUALS) $(STYLESHEET) docs.yp:/var/www/www.yoctoproject.org-docs/$(VER)/$(DOC); \
cd $(DOC); scp -r $(FIGURES) docs.yp:/var/www/www.yoctoproject.org-docs/$(VER)/$(DOC); \
else \
echo " "; \
echo $(DOC)".html missing. Generate the file first then try again."; \
echo " "; \
fi
clean:
@rm -rf $(BUILDDIR)
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
rm -rf $(MANUALS); rm $(DOC)/$(DOC).tgz;

View File

@@ -15,41 +15,25 @@ Each folder is self-contained regarding content and figures.
If you want to find HTML versions of the BitBake manuals on the web,
go to http://www.openembedded.org/wiki/Documentation.
Sphinx
======
Makefile
========
The BitBake documentation was migrated from the original DocBook
format to Sphinx based documentation for the Yocto Project 3.2
release.
The Makefile processes manual directories to create HTML, PDF,
tarballs, etc. Details on how the Makefile work are documented
inside the Makefile. See that file for more information.
Additional information related to the Sphinx migration, and guidelines
for developers willing to contribute to the BitBake documentation can
be found in the Yocto Project Documentation README file:
To build a manual, you run the make command and pass it the name
of the folder containing the manual's contents.
For example, the following command run from the documentation directory
creates an HTML and a PDF version of the BitBake User Manual.
The DOC variable specifies the manual you are making:
https://git.yoctoproject.org/cgit/cgit.cgi/yocto-docs/tree/documentation/README
$ make DOC=bitbake-user-manual
How to build the Yocto Project documentation
============================================
template
========
Contains various templates, fonts, and some old PNG files.
Sphinx is written in Python. While it might work with Python2, for
obvious reasons, we will only support building the BitBake
documentation with Python3.
Sphinx might be available in your Linux distro packages repositories,
however it is not recommend using distro packages, as they might be
old versions, especially if you are using an LTS version of your
distro. The recommended method to install Sphinx and all required
dependencies is to use the Python Package Index (pip).
To install all required packages run:
$ pip3 install sphinx sphinx_rtd_theme pyyaml
To build the documentation locally, run:
$ cd documentation
$ make -f Makefile.sphinx html
The resulting HTML index page will be _build/html/index.html, and you
can browse your own copy of the locally generated documentation with
your browser.
tools
=====
Contains a tool to convert the DocBook files to PDF format.

View File

@@ -1,14 +0,0 @@
{% extends "!breadcrumbs.html" %}
{% block breadcrumbs %}
<li>
<span class="doctype_switcher_placeholder">{{ doctype or 'single' }}</span>
<span class="version_switcher_placeholder">{{ release }}</span>
</li>
<li> &raquo;</li>
{% for doc in parents %}
<li><a href="{{ doc.link|e }}">{{ doc.title }}</a> &raquo;</li>
{% endfor %}
<li>{{ title }}</li>
{% endblock %}

View File

@@ -1,7 +0,0 @@
{% extends "!layout.html" %}
{% block extrabody %}
<div id="outdated-warning" style="text-align: center; background-color: #FFBABA; color: #6A0E0E;">
</div>
{% endblock %}

View File

@@ -0,0 +1,29 @@
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
<xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
<!--
<xsl:import href="../template/1.76.1/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
<xsl:import href="http://docbook.sourceforge.net/release/xsl/1.76.1/xhtml/docbook.xsl" />
-->
<xsl:include href="../template/permalinks.xsl"/>
<xsl:include href="../template/section.title.xsl"/>
<xsl:include href="../template/component.title.xsl"/>
<xsl:include href="../template/division.title.xsl"/>
<xsl:include href="../template/formal.object.heading.xsl"/>
<xsl:include href="../template/gloss-permalinks.xsl"/>
<xsl:param name="html.stylesheet" select="'user-manual-style.css'" />
<xsl:param name="chapter.autolabel" select="1" />
<xsl:param name="section.autolabel" select="1" />
<xsl:param name="section.label.includes.component.label" select="1" />
<xsl:param name="appendix.autolabel">A</xsl:param>
<!-- <xsl:param name="generate.toc" select="'article nop'"></xsl:param> -->
</xsl:stylesheet>

View File

@@ -1,733 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
=========
Execution
=========
|
The primary purpose for running BitBake is to produce some kind of
output such as a single installable package, a kernel, a software
development kit, or even a full, board-specific bootable Linux image,
complete with bootloader, kernel, and root filesystem. Of course, you
can execute the ``bitbake`` command with options that cause it to
execute single tasks, compile single recipe files, capture or clear
data, or simply return information about the execution environment.
This chapter describes BitBake's execution process from start to finish
when you use it to create an image. The execution process is launched
using the following command form: ::
$ bitbake target
For information on
the BitBake command and its options, see ":ref:`The BitBake Command
<bitbake-user-manual-command>`" section.
.. note::
Prior to executing BitBake, you should take advantage of available
parallel thread execution on your build host by setting the
:term:`BB_NUMBER_THREADS` variable in
your project's ``local.conf`` configuration file.
A common method to determine this value for your build host is to run
the following: ::
$ grep processor /proc/cpuinfo
This command returns
the number of processors, which takes into account hyper-threading.
Thus, a quad-core build host with hyper-threading most likely shows
eight processors, which is the value you would then assign to
``BB_NUMBER_THREADS``.
A possibly simpler solution is that some Linux distributions (e.g.
Debian and Ubuntu) provide the ``ncpus`` command.
Parsing the Base Configuration Metadata
=======================================
The first thing BitBake does is parse base configuration metadata. Base
configuration metadata consists of your project's ``bblayers.conf`` file
to determine what layers BitBake needs to recognize, all necessary
``layer.conf`` files (one from each layer), and ``bitbake.conf``. The
data itself is of various types:
- **Recipes:** Details about particular pieces of software.
- **Class Data:** An abstraction of common build information (e.g. how to
build a Linux kernel).
- **Configuration Data:** Machine-specific settings, policy decisions,
and so forth. Configuration data acts as the glue to bind everything
together.
The ``layer.conf`` files are used to construct key variables such as
:term:`BBPATH` and :term:`BBFILES`.
``BBPATH`` is used to search for configuration and class files under the
``conf`` and ``classes`` directories, respectively. ``BBFILES`` is used
to locate both recipe and recipe append files (``.bb`` and
``.bbappend``). If there is no ``bblayers.conf`` file, it is assumed the
user has set the ``BBPATH`` and ``BBFILES`` directly in the environment.
Next, the ``bitbake.conf`` file is located using the ``BBPATH`` variable
that was just constructed. The ``bitbake.conf`` file may also include
other configuration files using the ``include`` or ``require``
directives.
Prior to parsing configuration files, BitBake looks at certain
variables, including:
- :term:`BB_ENV_WHITELIST`
- :term:`BB_ENV_EXTRAWHITE`
- :term:`BB_PRESERVE_ENV`
- :term:`BB_ORIGENV`
- :term:`BITBAKE_UI`
The first four variables in this list relate to how BitBake treats shell
environment variables during task execution. By default, BitBake cleans
the environment variables and provides tight control over the shell
execution environment. However, through the use of these first four
variables, you can apply your control regarding the environment
variables allowed to be used by BitBake in the shell during execution of
tasks. See the
":ref:`bitbake-user-manual/bitbake-user-manual-metadata:Passing Information Into the Build Task Environment`"
section and the information about these variables in the variable
glossary for more information on how they work and on how to use them.
The base configuration metadata is global and therefore affects all
recipes and tasks that are executed.
BitBake first searches the current working directory for an optional
``conf/bblayers.conf`` configuration file. This file is expected to
contain a :term:`BBLAYERS` variable that is a
space-delimited list of 'layer' directories. Recall that if BitBake
cannot find a ``bblayers.conf`` file, then it is assumed the user has
set the ``BBPATH`` and ``BBFILES`` variables directly in the
environment.
For each directory (layer) in this list, a ``conf/layer.conf`` file is
located and parsed with the :term:`LAYERDIR` variable
being set to the directory where the layer was found. The idea is these
files automatically set up :term:`BBPATH` and other
variables correctly for a given build directory.
BitBake then expects to find the ``conf/bitbake.conf`` file somewhere in
the user-specified ``BBPATH``. That configuration file generally has
include directives to pull in any other metadata such as files specific
to the architecture, the machine, the local environment, and so forth.
Only variable definitions and include directives are allowed in BitBake
``.conf`` files. Some variables directly influence BitBake's behavior.
These variables might have been set from the environment depending on
the environment variables previously mentioned or set in the
configuration files. The ":ref:`bitbake-user-manual/bitbake-user-manual-ref-variables:Variables Glossary`"
chapter presents a full list of
variables.
After parsing configuration files, BitBake uses its rudimentary
inheritance mechanism, which is through class files, to inherit some
standard classes. BitBake parses a class when the inherit directive
responsible for getting that class is encountered.
The ``base.bbclass`` file is always included. Other classes that are
specified in the configuration using the
:term:`INHERIT` variable are also included. BitBake
searches for class files in a ``classes`` subdirectory under the paths
in ``BBPATH`` in the same way as configuration files.
A good way to get an idea of the configuration files and the class files
used in your execution environment is to run the following BitBake
command: ::
$ bitbake -e > mybb.log
Examining the top of the ``mybb.log``
shows you the many configuration files and class files used in your
execution environment.
.. note::
You need to be aware of how BitBake parses curly braces. If a recipe
uses a closing curly brace within the function and the character has
no leading spaces, BitBake produces a parsing error. If you use a
pair of curly braces in a shell function, the closing curly brace
must not be located at the start of the line without leading spaces.
Here is an example that causes BitBake to produce a parsing error: ::
fakeroot create_shar() {
cat << "EOF" > ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
usage()
{
echo "test"
###### The following "}" at the start of the line causes a parsing error ######
}
EOF
}
Writing the recipe this way avoids the error:
fakeroot create_shar() {
cat << "EOF" > ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
usage()
{
echo "test"
###### The following "}" with a leading space at the start of the line avoids the error ######
}
EOF
}
Locating and Parsing Recipes
============================
During the configuration phase, BitBake will have set
:term:`BBFILES`. BitBake now uses it to construct a
list of recipes to parse, along with any append files (``.bbappend``) to
apply. ``BBFILES`` is a space-separated list of available files and
supports wildcards. An example would be: ::
BBFILES = "/path/to/bbfiles/*.bb /path/to/appends/*.bbappend"
BitBake parses each
recipe and append file located with ``BBFILES`` and stores the values of
various variables into the datastore.
.. note::
Append files are applied in the order they are encountered in BBFILES.
For each file, a fresh copy of the base configuration is made, then the
recipe is parsed line by line. Any inherit statements cause BitBake to
find and then parse class files (``.bbclass``) using
:term:`BBPATH` as the search path. Finally, BitBake
parses in order any append files found in ``BBFILES``.
One common convention is to use the recipe filename to define pieces of
metadata. For example, in ``bitbake.conf`` the recipe name and version
are used to set the variables :term:`PN` and
:term:`PV`: ::
PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"
In this example, a recipe called "something_1.2.3.bb" would set
``PN`` to "something" and ``PV`` to "1.2.3".
By the time parsing is complete for a recipe, BitBake has a list of
tasks that the recipe defines and a set of data consisting of keys and
values as well as dependency information about the tasks.
BitBake does not need all of this information. It only needs a small
subset of the information to make decisions about the recipe.
Consequently, BitBake caches the values in which it is interested and
does not store the rest of the information. Experience has shown it is
faster to re-parse the metadata than to try and write it out to the disk
and then reload it.
Where possible, subsequent BitBake commands reuse this cache of recipe
information. The validity of this cache is determined by first computing
a checksum of the base configuration data (see
:term:`BB_HASHCONFIG_WHITELIST`) and
then checking if the checksum matches. If that checksum matches what is
in the cache and the recipe and class files have not changed, BitBake is
able to use the cache. BitBake then reloads the cached information about
the recipe instead of reparsing it from scratch.
Recipe file collections exist to allow the user to have multiple
repositories of ``.bb`` files that contain the same exact package. For
example, one could easily use them to make one's own local copy of an
upstream repository, but with custom modifications that one does not
want upstream. Here is an example: ::
BBFILES = "/stuff/openembedded/*/*.bb /stuff/openembedded.modified/*/*.bb"
BBFILE_COLLECTIONS = "upstream local"
BBFILE_PATTERN_upstream = "^/stuff/openembedded/"
BBFILE_PATTERN_local = "^/stuff/openembedded.modified/"
BBFILE_PRIORITY_upstream = "5" BBFILE_PRIORITY_local = "10"
.. note::
The layers mechanism is now the preferred method of collecting code.
While the collections code remains, its main use is to set layer
priorities and to deal with overlap (conflicts) between layers.
.. _bb-bitbake-providers:
Providers
=========
Assuming BitBake has been instructed to execute a target and that all
the recipe files have been parsed, BitBake starts to figure out how to
build the target. BitBake looks through the ``PROVIDES`` list for each
of the recipes. A ``PROVIDES`` list is the list of names by which the
recipe can be known. Each recipe's ``PROVIDES`` list is created
implicitly through the recipe's :term:`PN` variable and
explicitly through the recipe's :term:`PROVIDES`
variable, which is optional.
When a recipe uses ``PROVIDES``, that recipe's functionality can be
found under an alternative name or names other than the implicit ``PN``
name. As an example, suppose a recipe named ``keyboard_1.0.bb``
contained the following: ::
PROVIDES += "fullkeyboard"
The ``PROVIDES``
list for this recipe becomes "keyboard", which is implicit, and
"fullkeyboard", which is explicit. Consequently, the functionality found
in ``keyboard_1.0.bb`` can be found under two different names.
.. _bb-bitbake-preferences:
Preferences
===========
The ``PROVIDES`` list is only part of the solution for figuring out a
target's recipes. Because targets might have multiple providers, BitBake
needs to prioritize providers by determining provider preferences.
A common example in which a target has multiple providers is
"virtual/kernel", which is on the ``PROVIDES`` list for each kernel
recipe. Each machine often selects the best kernel provider by using a
line similar to the following in the machine configuration file: ::
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
The default :term:`PREFERRED_PROVIDER` is the provider
with the same name as the target. BitBake iterates through each target
it needs to build and resolves them and their dependencies using this
process.
Understanding how providers are chosen is made complicated by the fact
that multiple versions might exist for a given provider. BitBake
defaults to the highest version of a provider. Version comparisons are
made using the same method as Debian. You can use the
:term:`PREFERRED_VERSION` variable to
specify a particular version. You can influence the order by using the
:term:`DEFAULT_PREFERENCE` variable.
By default, files have a preference of "0". Setting
``DEFAULT_PREFERENCE`` to "-1" makes the recipe unlikely to be used
unless it is explicitly referenced. Setting ``DEFAULT_PREFERENCE`` to
"1" makes it likely the recipe is used. ``PREFERRED_VERSION`` overrides
any ``DEFAULT_PREFERENCE`` setting. ``DEFAULT_PREFERENCE`` is often used
to mark newer and more experimental recipe versions until they have
undergone sufficient testing to be considered stable.
When there are multiple "versions" of a given recipe, BitBake defaults
to selecting the most recent version, unless otherwise specified. If the
recipe in question has a
:term:`DEFAULT_PREFERENCE` set lower than
the other recipes (default is 0), then it will not be selected. This
allows the person or persons maintaining the repository of recipe files
to specify their preference for the default selected version.
Additionally, the user can specify their preferred version.
If the first recipe is named ``a_1.1.bb``, then the
:term:`PN` variable will be set to "a", and the
:term:`PV` variable will be set to 1.1.
Thus, if a recipe named ``a_1.2.bb`` exists, BitBake will choose 1.2 by
default. However, if you define the following variable in a ``.conf``
file that BitBake parses, you can change that preference: ::
PREFERRED_VERSION_a = "1.1"
.. note::
It is common for a recipe to provide two versions -- a stable,
numbered (and preferred) version, and a version that is automatically
checked out from a source code repository that is considered more
"bleeding edge" but can be selected only explicitly.
For example, in the OpenEmbedded codebase, there is a standard,
versioned recipe file for BusyBox, ``busybox_1.22.1.bb``, but there
is also a Git-based version, ``busybox_git.bb``, which explicitly
contains the line ::
DEFAULT_PREFERENCE = "-1"
to ensure that the
numbered, stable version is always preferred unless the developer
selects otherwise.
.. _bb-bitbake-dependencies:
Dependencies
============
Each target BitBake builds consists of multiple tasks such as ``fetch``,
``unpack``, ``patch``, ``configure``, and ``compile``. For best
performance on multi-core systems, BitBake considers each task as an
independent entity with its own set of dependencies.
Dependencies are defined through several variables. You can find
information about variables BitBake uses in the
:doc:`bitbake-user-manual-ref-variables` near the end of this manual. At a
basic level, it is sufficient to know that BitBake uses the
:term:`DEPENDS` and
:term:`RDEPENDS` variables when calculating
dependencies.
For more information on how BitBake handles dependencies, see the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:Dependencies`
section.
.. _ref-bitbake-tasklist:
The Task List
=============
Based on the generated list of providers and the dependency information,
BitBake can now calculate exactly what tasks it needs to run and in what
order it needs to run them. The
:ref:`bitbake-user-manual/bitbake-user-manual-execution:executing tasks`
section has more information on how BitBake chooses which task to
execute next.
The build now starts with BitBake forking off threads up to the limit
set in the :term:`BB_NUMBER_THREADS`
variable. BitBake continues to fork threads as long as there are tasks
ready to run, those tasks have all their dependencies met, and the
thread threshold has not been exceeded.
It is worth noting that you can greatly speed up the build time by
properly setting the ``BB_NUMBER_THREADS`` variable.
As each task completes, a timestamp is written to the directory
specified by the :term:`STAMP` variable. On subsequent
runs, BitBake looks in the build directory within ``tmp/stamps`` and
does not rerun tasks that are already completed unless a timestamp is
found to be invalid. Currently, invalid timestamps are only considered
on a per recipe file basis. So, for example, if the configure stamp has
a timestamp greater than the compile timestamp for a given target, then
the compile task would rerun. Running the compile task again, however,
has no effect on other providers that depend on that target.
The exact format of the stamps is partly configurable. In modern
versions of BitBake, a hash is appended to the stamp so that if the
configuration changes, the stamp becomes invalid and the task is
automatically rerun. This hash, or signature used, is governed by the
signature policy that is configured (see the
:ref:`bitbake-user-manual/bitbake-user-manual-execution:checksums (signatures)`
section for information). It is also
possible to append extra metadata to the stamp using the
``[stamp-extra-info]`` task flag. For example, OpenEmbedded uses this
flag to make some tasks machine-specific.
.. note::
Some tasks are marked as "nostamp" tasks. No timestamp file is
created when these tasks are run. Consequently, "nostamp" tasks are
always rerun.
For more information on tasks, see the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:tasks` section.
Executing Tasks
===============
Tasks can be either a shell task or a Python task. For shell tasks,
BitBake writes a shell script to
``${``\ :term:`T`\ ``}/run.do_taskname.pid`` and then
executes the script. The generated shell script contains all the
exported variables, and the shell functions with all variables expanded.
Output from the shell script goes to the file
``${T}/log.do_taskname.pid``. Looking at the expanded shell functions in
the run file and the output in the log files is a useful debugging
technique.
For Python tasks, BitBake executes the task internally and logs
information to the controlling terminal. Future versions of BitBake will
write the functions to files similar to the way shell tasks are handled.
Logging will be handled in a way similar to shell tasks as well.
The order in which BitBake runs the tasks is controlled by its task
scheduler. It is possible to configure the scheduler and define custom
implementations for specific use cases. For more information, see these
variables that control the behavior:
- :term:`BB_SCHEDULER`
- :term:`BB_SCHEDULERS`
It is possible to have functions run before and after a task's main
function. This is done using the ``[prefuncs]`` and ``[postfuncs]``
flags of the task that lists the functions to run.
.. _checksums:
Checksums (Signatures)
======================
A checksum is a unique signature of a task's inputs. The signature of a
task can be used to determine if a task needs to be run. Because it is a
change in a task's inputs that triggers running the task, BitBake needs
to detect all the inputs to a given task. For shell tasks, this turns
out to be fairly easy because BitBake generates a "run" shell script for
each task and it is possible to create a checksum that gives you a good
idea of when the task's data changes.
To complicate the problem, some things should not be included in the
checksum. First, there is the actual specific build path of a given task
- the working directory. It does not matter if the working directory
changes because it should not affect the output for target packages. The
simplistic approach for excluding the working directory is to set it to
some fixed value and create the checksum for the "run" script. BitBake
goes one step better and uses the
:term:`BB_HASHBASE_WHITELIST` variable
to define a list of variables that should never be included when
generating the signatures.
Another problem results from the "run" scripts containing functions that
might or might not get called. The incremental build solution contains
code that figures out dependencies between shell functions. This code is
used to prune the "run" scripts down to the minimum set, thereby
alleviating this problem and making the "run" scripts much more readable
as a bonus.
So far we have solutions for shell scripts. What about Python tasks? The
same approach applies even though these tasks are more difficult. The
process needs to figure out what variables a Python function accesses
and what functions it calls. Again, the incremental build solution
contains code that first figures out the variable and function
dependencies, and then creates a checksum for the data used as the input
to the task.
Like the working directory case, situations exist where dependencies
should be ignored. For these cases, you can instruct the build process
to ignore a dependency by using a line like the following: ::
PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
This example ensures that the
``PACKAGE_ARCHS`` variable does not depend on the value of ``MACHINE``,
even if it does reference it.
Equally, there are cases where we need to add dependencies BitBake is
not able to find. You can accomplish this by using a line like the
following: ::
PACKAGE_ARCHS[vardeps] = "MACHINE"
This example explicitly
adds the ``MACHINE`` variable as a dependency for ``PACKAGE_ARCHS``.
Consider a case with in-line Python, for example, where BitBake is not
able to figure out dependencies. When running in debug mode (i.e. using
``-DDD``), BitBake produces output when it discovers something for which
it cannot figure out dependencies.
Thus far, this section has limited discussion to the direct inputs into
a task. Information based on direct inputs is referred to as the
"basehash" in the code. However, there is still the question of a task's
indirect inputs - the things that were already built and present in the
build directory. The checksum (or signature) for a particular task needs
to add the hashes of all the tasks on which the particular task depends.
Choosing which dependencies to add is a policy decision. However, the
effect is to generate a master checksum that combines the basehash and
the hashes of the task's dependencies.
At the code level, there are a variety of ways both the basehash and the
dependent task hashes can be influenced. Within the BitBake
configuration file, we can give BitBake some extra information to help
it construct the basehash. The following statement effectively results
in a list of global variable dependency excludes - variables never
included in any checksum. This example uses variables from OpenEmbedded
to help illustrate the concept: ::
BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \
SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL \
USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \
PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \
CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX"
The previous example excludes the work directory, which is part of
``TMPDIR``.
The rules for deciding which hashes of dependent tasks to include
through dependency chains are more complex and are generally
accomplished with a Python function. The code in
``meta/lib/oe/sstatesig.py`` shows two examples of this and also
illustrates how you can insert your own policy into the system if so
desired. This file defines the two basic signature generators
OpenEmbedded-Core uses: "OEBasic" and "OEBasicHash". By default, there
is a dummy "noop" signature handler enabled in BitBake. This means that
behavior is unchanged from previous versions. ``OE-Core`` uses the
"OEBasicHash" signature handler by default through this setting in the
``bitbake.conf`` file: ::
BB_SIGNATURE_HANDLER ?= "OEBasicHash"
The "OEBasicHash" ``BB_SIGNATURE_HANDLER`` is the same as the "OEBasic"
version but adds the task hash to the stamp files. This results in any
metadata change that changes the task hash, automatically causing the
task to be run again. This removes the need to bump
:term:`PR` values, and changes to metadata automatically
ripple across the build.
It is also worth noting that the end result of these signature
generators is to make some dependency and hash information available to
the build. This information includes:
- ``BB_BASEHASH_task-``\ *taskname*: The base hashes for each task in the
recipe.
- ``BB_BASEHASH_``\ *filename:taskname*: The base hashes for each
dependent task.
- ``BBHASHDEPS_``\ *filename:taskname*: The task dependencies for
each task.
- ``BB_TASKHASH``: The hash of the currently running task.
It is worth noting that BitBake's "-S" option lets you debug BitBake's
processing of signatures. The options passed to -S allow different
debugging modes to be used, either using BitBake's own debug functions
or possibly those defined in the metadata/signature handler itself. The
simplest parameter to pass is "none", which causes a set of signature
information to be written out into ``STAMPS_DIR`` corresponding to the
targets specified. The other currently available parameter is
"printdiff", which causes BitBake to try to establish the closest
signature match it can (e.g. in the sstate cache) and then run
``bitbake-diffsigs`` over the matches to determine the stamps and delta
where these two stamp trees diverge.
.. note::
It is likely that future versions of BitBake will provide other
signature handlers triggered through additional "-S" parameters.
You can find more information on checksum metadata in the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:task checksums and setscene`
section.
Setscene
========
The setscene process enables BitBake to handle "pre-built" artifacts.
The ability to handle and reuse these artifacts allows BitBake the
luxury of not having to build something from scratch every time.
Instead, BitBake can use, when possible, existing build artifacts.
BitBake needs to have reliable data indicating whether or not an
artifact is compatible. Signatures, described in the previous section,
provide an ideal way of representing whether an artifact is compatible.
If a signature is the same, an object can be reused.
If an object can be reused, the problem then becomes how to replace a
given task or set of tasks with the pre-built artifact. BitBake solves
the problem with the "setscene" process.
When BitBake is asked to build a given target, before building anything,
it first asks whether cached information is available for any of the
targets it's building, or any of the intermediate targets. If cached
information is available, BitBake uses this information instead of
running the main tasks.
BitBake first calls the function defined by the
:term:`BB_HASHCHECK_FUNCTION` variable
with a list of tasks and corresponding hashes it wants to build. This
function is designed to be fast and returns a list of the tasks for
which it believes in can obtain artifacts.
Next, for each of the tasks that were returned as possibilities, BitBake
executes a setscene version of the task that the possible artifact
covers. Setscene versions of a task have the string "_setscene" appended
to the task name. So, for example, the task with the name ``xxx`` has a
setscene task named ``xxx_setscene``. The setscene version of the task
executes and provides the necessary artifacts returning either success
or failure.
As previously mentioned, an artifact can cover more than one task. For
example, it is pointless to obtain a compiler if you already have the
compiled binary. To handle this, BitBake calls the
:term:`BB_SETSCENE_DEPVALID` function for
each successful setscene task to know whether or not it needs to obtain
the dependencies of that task.
Finally, after all the setscene tasks have executed, BitBake calls the
function listed in
:term:`BB_SETSCENE_VERIFY_FUNCTION2`
with the list of tasks BitBake thinks has been "covered". The metadata
can then ensure that this list is correct and can inform BitBake that it
wants specific tasks to be run regardless of the setscene result.
You can find more information on setscene metadata in the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:task checksums and setscene`
section.
Logging
=======
In addition to the standard command line option to control how verbose
builds are when execute, bitbake also supports user defined
configuration of the `Python
logging <https://docs.python.org/3/library/logging.html>`__ facilities
through the :term:`BB_LOGCONFIG` variable. This
variable defines a json or yaml `logging
configuration <https://docs.python.org/3/library/logging.config.html>`__
that will be intelligently merged into the default configuration. The
logging configuration is merged using the following rules:
- The user defined configuration will completely replace the default
configuration if top level key ``bitbake_merge`` is set to the value
``False``. In this case, all other rules are ignored.
- The user configuration must have a top level ``version`` which must
match the value of the default configuration.
- Any keys defined in the ``handlers``, ``formatters``, or ``filters``,
will be merged into the same section in the default configuration,
with the user specified keys taking replacing a default one if there
is a conflict. In practice, this means that if both the default
configuration and user configuration specify a handler named
``myhandler``, the user defined one will replace the default. To
prevent the user from inadvertently replacing a default handler,
formatter, or filter, all of the default ones are named with a prefix
of "``BitBake.``"
- If a logger is defined by the user with the key ``bitbake_merge`` set
to ``False``, that logger will be completely replaced by user
configuration. In this case, no other rules will apply to that
logger.
- All user defined ``filter`` and ``handlers`` properties for a given
logger will be merged with corresponding properties from the default
logger. For example, if the user configuration adds a filter called
``myFilter`` to the ``BitBake.SigGen``, and the default configuration
adds a filter called ``BitBake.defaultFilter``, both filters will be
applied to the logger
As an example, consider the following user logging configuration file
which logs all Hash Equivalence related messages of VERBOSE or higher to
a file called ``hashequiv.log`` ::
{
"version": 1,
"handlers": {
"autobuilderlog": {
"class": "logging.FileHandler",
"formatter": "logfileFormatter",
"level": "DEBUG",
"filename": "hashequiv.log",
"mode": "w"
}
},
"formatters": {
"logfileFormatter": {
"format": "%(name)s: %(levelname)s: %(message)s"
}
},
"loggers": {
"BitBake.SigGen.HashEquiv": {
"level": "VERBOSE",
"handlers": ["autobuilderlog"]
},
"BitBake.RunQueue.HashEquiv": {
"level": "VERBOSE",
"handlers": ["autobuilderlog"]
}
}
}

View File

@@ -0,0 +1,932 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<chapter id="bitbake-user-manual-execution">
<title>Execution</title>
<para>
The primary purpose for running BitBake is to produce some kind
of output such as a single installable package, a kernel, a software
development kit, or even a full, board-specific bootable Linux image,
complete with bootloader, kernel, and root filesystem.
Of course, you can execute the <filename>bitbake</filename>
command with options that cause it to execute single tasks,
compile single recipe files, capture or clear data, or simply
return information about the execution environment.
</para>
<para>
This chapter describes BitBake's execution process from start
to finish when you use it to create an image.
The execution process is launched using the following command
form:
<literallayout class='monospaced'>
$ bitbake <replaceable>target</replaceable>
</literallayout>
For information on the BitBake command and its options,
see
"<link linkend='bitbake-user-manual-command'>The BitBake Command</link>"
section.
<note>
<para>
Prior to executing BitBake, you should take advantage of available
parallel thread execution on your build host by setting the
<link linkend='var-bb-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></link>
variable in your project's <filename>local.conf</filename>
configuration file.
</para>
<para>
A common method to determine this value for your build host is to run
the following:
<literallayout class='monospaced'>
$ grep processor /proc/cpuinfo
</literallayout>
This command returns the number of processors, which takes into
account hyper-threading.
Thus, a quad-core build host with hyper-threading most likely
shows eight processors, which is the value you would then assign to
<filename>BB_NUMBER_THREADS</filename>.
</para>
<para>
A possibly simpler solution is that some Linux distributions
(e.g. Debian and Ubuntu) provide the <filename>ncpus</filename> command.
</para>
</note>
</para>
<section id='parsing-the-base-configuration-metadata'>
<title>Parsing the Base Configuration Metadata</title>
<para>
The first thing BitBake does is parse base configuration
metadata.
Base configuration metadata consists of your project's
<filename>bblayers.conf</filename> file to determine what
layers BitBake needs to recognize, all necessary
<filename>layer.conf</filename> files (one from each layer),
and <filename>bitbake.conf</filename>.
The data itself is of various types:
<itemizedlist>
<listitem><para><emphasis>Recipes:</emphasis>
Details about particular pieces of software.
</para></listitem>
<listitem><para><emphasis>Class Data:</emphasis>
An abstraction of common build information
(e.g. how to build a Linux kernel).
</para></listitem>
<listitem><para><emphasis>Configuration Data:</emphasis>
Machine-specific settings, policy decisions,
and so forth.
Configuration data acts as the glue to bind everything
together.</para></listitem>
</itemizedlist>
</para>
<para>
The <filename>layer.conf</filename> files are used to
construct key variables such as
<link linkend='var-bb-BBPATH'><filename>BBPATH</filename></link>
and
<link linkend='var-bb-BBFILES'><filename>BBFILES</filename></link>.
<filename>BBPATH</filename> is used to search for
configuration and class files under the
<filename>conf</filename> and <filename>classes</filename>
directories, respectively.
<filename>BBFILES</filename> is used to locate both recipe
and recipe append files
(<filename>.bb</filename> and <filename>.bbappend</filename>).
If there is no <filename>bblayers.conf</filename> file,
it is assumed the user has set the <filename>BBPATH</filename>
and <filename>BBFILES</filename> directly in the environment.
</para>
<para>
Next, the <filename>bitbake.conf</filename> file is located
using the <filename>BBPATH</filename> variable that was
just constructed.
The <filename>bitbake.conf</filename> file may also include other
configuration files using the
<filename>include</filename> or
<filename>require</filename> directives.
</para>
<para>
Prior to parsing configuration files, Bitbake looks
at certain variables, including:
<itemizedlist>
<listitem><para>
<link linkend='var-bb-BB_ENV_WHITELIST'><filename>BB_ENV_WHITELIST</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-bb-BB_ENV_EXTRAWHITE'><filename>BB_ENV_EXTRAWHITE</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-bb-BB_PRESERVE_ENV'><filename>BB_PRESERVE_ENV</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-bb-BB_ORIGENV'><filename>BB_ORIGENV</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-bb-BITBAKE_UI'><filename>BITBAKE_UI</filename></link>
</para></listitem>
</itemizedlist>
The first four variables in this list relate to how BitBake treats shell
environment variables during task execution.
By default, BitBake cleans the environment variables and provides tight
control over the shell execution environment.
However, through the use of these first four variables, you can
apply your control regarding the
environment variables allowed to be used by BitBake in the shell
during execution of tasks.
See the
"<link linkend='passing-information-into-the-build-task-environment'>Passing Information Into the Build Task Environment</link>"
section and the information about these variables in the
variable glossary for more information on how they work and
on how to use them.
</para>
<para>
The base configuration metadata is global
and therefore affects all recipes and tasks that are executed.
</para>
<para>
BitBake first searches the current working directory for an
optional <filename>conf/bblayers.conf</filename> configuration file.
This file is expected to contain a
<link linkend='var-bb-BBLAYERS'><filename>BBLAYERS</filename></link>
variable that is a space-delimited list of 'layer' directories.
Recall that if BitBake cannot find a <filename>bblayers.conf</filename>
file, then it is assumed the user has set the <filename>BBPATH</filename>
and <filename>BBFILES</filename> variables directly in the environment.
</para>
<para>
For each directory (layer) in this list, a <filename>conf/layer.conf</filename>
file is located and parsed with the
<link linkend='var-bb-LAYERDIR'><filename>LAYERDIR</filename></link>
variable being set to the directory where the layer was found.
The idea is these files automatically set up
<link linkend='var-bb-BBPATH'><filename>BBPATH</filename></link>
and other variables correctly for a given build directory.
</para>
<para>
BitBake then expects to find the <filename>conf/bitbake.conf</filename>
file somewhere in the user-specified <filename>BBPATH</filename>.
That configuration file generally has include directives to pull
in any other metadata such as files specific to the architecture,
the machine, the local environment, and so forth.
</para>
<para>
Only variable definitions and include directives are allowed
in BitBake <filename>.conf</filename> files.
Some variables directly influence BitBake's behavior.
These variables might have been set from the environment
depending on the environment variables previously
mentioned or set in the configuration files.
The
"<link linkend='ref-bb-variables-glos'>Variables Glossary</link>"
chapter presents a full list of variables.
</para>
<para>
After parsing configuration files, BitBake uses its rudimentary
inheritance mechanism, which is through class files, to inherit
some standard classes.
BitBake parses a class when the inherit directive responsible
for getting that class is encountered.
</para>
<para>
The <filename>base.bbclass</filename> file is always included.
Other classes that are specified in the configuration using the
<link linkend='var-bb-INHERIT'><filename>INHERIT</filename></link>
variable are also included.
BitBake searches for class files in a
<filename>classes</filename> subdirectory under
the paths in <filename>BBPATH</filename> in the same way as
configuration files.
</para>
<para>
A good way to get an idea of the configuration files and
the class files used in your execution environment is to
run the following BitBake command:
<literallayout class='monospaced'>
$ bitbake -e > mybb.log
</literallayout>
Examining the top of the <filename>mybb.log</filename>
shows you the many configuration files and class files
used in your execution environment.
</para>
<note>
<para>
You need to be aware of how BitBake parses curly braces.
If a recipe uses a closing curly brace within the function and
the character has no leading spaces, BitBake produces a parsing
error.
If you use a pair of curly braces in a shell function, the
closing curly brace must not be located at the start of the line
without leading spaces.
</para>
<para>
Here is an example that causes BitBake to produce a parsing
error:
<literallayout class='monospaced'>
fakeroot create_shar() {
cat &lt;&lt; "EOF" &gt; ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
usage()
{
echo "test"
###### The following "}" at the start of the line causes a parsing error ######
}
EOF
}
</literallayout>
Writing the recipe this way avoids the error:
<literallayout class='monospaced'>
fakeroot create_shar() {
cat &lt;&lt; "EOF" &gt; ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
usage()
{
echo "test"
######The following "}" with a leading space at the start of the line avoids the error ######
}
EOF
}
</literallayout>
</para>
</note>
</section>
<section id='locating-and-parsing-recipes'>
<title>Locating and Parsing Recipes</title>
<para>
During the configuration phase, BitBake will have set
<link linkend='var-bb-BBFILES'><filename>BBFILES</filename></link>.
BitBake now uses it to construct a list of recipes to parse,
along with any append files (<filename>.bbappend</filename>)
to apply.
<filename>BBFILES</filename> is a space-separated list of
available files and supports wildcards.
An example would be:
<literallayout class='monospaced'>
BBFILES = "/path/to/bbfiles/*.bb /path/to/appends/*.bbappend"
</literallayout>
BitBake parses each recipe and append file located
with <filename>BBFILES</filename> and stores the values of
various variables into the datastore.
<note>
Append files are applied in the order they are encountered in
<filename>BBFILES</filename>.
</note>
For each file, a fresh copy of the base configuration is
made, then the recipe is parsed line by line.
Any inherit statements cause BitBake to find and
then parse class files (<filename>.bbclass</filename>)
using
<link linkend='var-bb-BBPATH'><filename>BBPATH</filename></link>
as the search path.
Finally, BitBake parses in order any append files found in
<filename>BBFILES</filename>.
</para>
<para>
One common convention is to use the recipe filename to define
pieces of metadata.
For example, in <filename>bitbake.conf</filename> the recipe
name and version are used to set the variables
<link linkend='var-bb-PN'><filename>PN</filename></link> and
<link linkend='var-bb-PV'><filename>PV</filename></link>:
<literallayout class='monospaced'>
PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"
</literallayout>
In this example, a recipe called "something_1.2.3.bb" would set
<filename>PN</filename> to "something" and
<filename>PV</filename> to "1.2.3".
</para>
<para>
By the time parsing is complete for a recipe, BitBake
has a list of tasks that the recipe defines and a set of
data consisting of keys and values as well as
dependency information about the tasks.
</para>
<para>
BitBake does not need all of this information.
It only needs a small subset of the information to make
decisions about the recipe.
Consequently, BitBake caches the values in which it is
interested and does not store the rest of the information.
Experience has shown it is faster to re-parse the metadata than to
try and write it out to the disk and then reload it.
</para>
<para>
Where possible, subsequent BitBake commands reuse this cache of
recipe information.
The validity of this cache is determined by first computing a
checksum of the base configuration data (see
<link linkend='var-bb-BB_HASHCONFIG_WHITELIST'><filename>BB_HASHCONFIG_WHITELIST</filename></link>)
and then checking if the checksum matches.
If that checksum matches what is in the cache and the recipe
and class files have not changed, Bitbake is able to use
the cache.
BitBake then reloads the cached information about the recipe
instead of reparsing it from scratch.
</para>
<para>
Recipe file collections exist to allow the user to
have multiple repositories of
<filename>.bb</filename> files that contain the same
exact package.
For example, one could easily use them to make one's
own local copy of an upstream repository, but with
custom modifications that one does not want upstream.
Here is an example:
<literallayout class='monospaced'>
BBFILES = "/stuff/openembedded/*/*.bb /stuff/openembedded.modified/*/*.bb"
BBFILE_COLLECTIONS = "upstream local"
BBFILE_PATTERN_upstream = "^/stuff/openembedded/"
BBFILE_PATTERN_local = "^/stuff/openembedded.modified/"
BBFILE_PRIORITY_upstream = "5"
BBFILE_PRIORITY_local = "10"
</literallayout>
<note>
The layers mechanism is now the preferred method of collecting
code.
While the collections code remains, its main use is to set layer
priorities and to deal with overlap (conflicts) between layers.
</note>
</para>
</section>
<section id='bb-bitbake-providers'>
<title>Providers</title>
<para>
Assuming BitBake has been instructed to execute a target
and that all the recipe files have been parsed, BitBake
starts to figure out how to build the target.
BitBake looks through the <filename>PROVIDES</filename> list
for each of the recipes.
A <filename>PROVIDES</filename> list is the list of names by which
the recipe can be known.
Each recipe's <filename>PROVIDES</filename> list is created
implicitly through the recipe's
<link linkend='var-bb-PN'><filename>PN</filename></link> variable
and explicitly through the recipe's
<link linkend='var-bb-PROVIDES'><filename>PROVIDES</filename></link>
variable, which is optional.
</para>
<para>
When a recipe uses <filename>PROVIDES</filename>, that recipe's
functionality can be found under an alternative name or names other
than the implicit <filename>PN</filename> name.
As an example, suppose a recipe named <filename>keyboard_1.0.bb</filename>
contained the following:
<literallayout class='monospaced'>
PROVIDES += "fullkeyboard"
</literallayout>
The <filename>PROVIDES</filename> list for this recipe becomes
"keyboard", which is implicit, and "fullkeyboard", which is explicit.
Consequently, the functionality found in
<filename>keyboard_1.0.bb</filename> can be found under two
different names.
</para>
</section>
<section id='bb-bitbake-preferences'>
<title>Preferences</title>
<para>
The <filename>PROVIDES</filename> list is only part of the solution
for figuring out a target's recipes.
Because targets might have multiple providers, BitBake needs
to prioritize providers by determining provider preferences.
</para>
<para>
A common example in which a target has multiple providers
is "virtual/kernel", which is on the
<filename>PROVIDES</filename> list for each kernel recipe.
Each machine often selects the best kernel provider by using a
line similar to the following in the machine configuration file:
<literallayout class='monospaced'>
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
</literallayout>
The default
<link linkend='var-bb-PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></link>
is the provider with the same name as the target.
Bitbake iterates through each target it needs to build and
resolves them and their dependencies using this process.
</para>
<para>
Understanding how providers are chosen is made complicated by the fact
that multiple versions might exist for a given provider.
BitBake defaults to the highest version of a provider.
Version comparisons are made using the same method as Debian.
You can use the
<link linkend='var-bb-PREFERRED_VERSION'><filename>PREFERRED_VERSION</filename></link>
variable to specify a particular version.
You can influence the order by using the
<link linkend='var-bb-DEFAULT_PREFERENCE'><filename>DEFAULT_PREFERENCE</filename></link>
variable.
</para>
<para>
By default, files have a preference of "0".
Setting <filename>DEFAULT_PREFERENCE</filename> to "-1" makes the
recipe unlikely to be used unless it is explicitly referenced.
Setting <filename>DEFAULT_PREFERENCE</filename> to "1" makes it
likely the recipe is used.
<filename>PREFERRED_VERSION</filename> overrides any
<filename>DEFAULT_PREFERENCE</filename> setting.
<filename>DEFAULT_PREFERENCE</filename> is often used to mark newer
and more experimental recipe versions until they have undergone
sufficient testing to be considered stable.
</para>
<para>
When there are multiple “versions” of a given recipe,
BitBake defaults to selecting the most recent
version, unless otherwise specified.
If the recipe in question has a
<link linkend='var-bb-DEFAULT_PREFERENCE'><filename>DEFAULT_PREFERENCE</filename></link>
set lower than the other recipes (default is 0), then
it will not be selected.
This allows the person or persons maintaining
the repository of recipe files to specify
their preference for the default selected version.
Additionally, the user can specify their preferred version.
</para>
<para>
If the first recipe is named <filename>a_1.1.bb</filename>, then the
<link linkend='var-bb-PN'><filename>PN</filename></link> variable
will be set to “a”, and the
<link linkend='var-bb-PV'><filename>PV</filename></link>
variable will be set to 1.1.
</para>
<para>
Thus, if a recipe named <filename>a_1.2.bb</filename> exists, BitBake
will choose 1.2 by default.
However, if you define the following variable in a
<filename>.conf</filename> file that BitBake parses, you
can change that preference:
<literallayout class='monospaced'>
PREFERRED_VERSION_a = "1.1"
</literallayout>
</para>
<note>
<para>
It is common for a recipe to provide two versions -- a stable,
numbered (and preferred) version, and a version that is
automatically checked out from a source code repository that
is considered more "bleeding edge" but can be selected only
explicitly.
</para>
<para>
For example, in the OpenEmbedded codebase, there is a standard,
versioned recipe file for BusyBox,
<filename>busybox_1.22.1.bb</filename>,
but there is also a Git-based version,
<filename>busybox_git.bb</filename>, which explicitly contains the line
<literallayout class='monospaced'>
DEFAULT_PREFERENCE = "-1"
</literallayout>
to ensure that the numbered, stable version is always preferred
unless the developer selects otherwise.
</para>
</note>
</section>
<section id='bb-bitbake-dependencies'>
<title>Dependencies</title>
<para>
Each target BitBake builds consists of multiple tasks such as
<filename>fetch</filename>, <filename>unpack</filename>,
<filename>patch</filename>, <filename>configure</filename>,
and <filename>compile</filename>.
For best performance on multi-core systems, BitBake considers each
task as an independent
entity with its own set of dependencies.
</para>
<para>
Dependencies are defined through several variables.
You can find information about variables BitBake uses in
the <link linkend='ref-bb-variables-glos'>Variables Glossary</link>
near the end of this manual.
At a basic level, it is sufficient to know that BitBake uses the
<link linkend='var-bb-DEPENDS'><filename>DEPENDS</filename></link> and
<link linkend='var-bb-RDEPENDS'><filename>RDEPENDS</filename></link> variables when
calculating dependencies.
</para>
<para>
For more information on how BitBake handles dependencies, see the
"<link linkend='dependencies'>Dependencies</link>" section.
</para>
</section>
<section id='ref-bitbake-tasklist'>
<title>The Task List</title>
<para>
Based on the generated list of providers and the dependency information,
BitBake can now calculate exactly what tasks it needs to run and in what
order it needs to run them.
The
"<link linkend='executing-tasks'>Executing Tasks</link>" section has more
information on how BitBake chooses which task to execute next.
</para>
<para>
The build now starts with BitBake forking off threads up to the limit set in the
<link linkend='var-bb-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></link>
variable.
BitBake continues to fork threads as long as there are tasks ready to run,
those tasks have all their dependencies met, and the thread threshold has not been
exceeded.
</para>
<para>
It is worth noting that you can greatly speed up the build time by properly setting
the <filename>BB_NUMBER_THREADS</filename> variable.
</para>
<para>
As each task completes, a timestamp is written to the directory specified by the
<link linkend='var-bb-STAMP'><filename>STAMP</filename></link> variable.
On subsequent runs, BitBake looks in the build directory within
<filename>tmp/stamps</filename> and does not rerun
tasks that are already completed unless a timestamp is found to be invalid.
Currently, invalid timestamps are only considered on a per
recipe file basis.
So, for example, if the configure stamp has a timestamp greater than the
compile timestamp for a given target, then the compile task would rerun.
Running the compile task again, however, has no effect on other providers
that depend on that target.
</para>
<para>
The exact format of the stamps is partly configurable.
In modern versions of BitBake, a hash is appended to the
stamp so that if the configuration changes, the stamp becomes
invalid and the task is automatically rerun.
This hash, or signature used, is governed by the signature policy
that is configured (see the
"<link linkend='checksums'>Checksums (Signatures)</link>"
section for information).
It is also possible to append extra metadata to the stamp using
the <filename>[stamp-extra-info]</filename> task flag.
For example, OpenEmbedded uses this flag to make some tasks machine-specific.
</para>
<note>
Some tasks are marked as "nostamp" tasks.
No timestamp file is created when these tasks are run.
Consequently, "nostamp" tasks are always rerun.
</note>
<para>
For more information on tasks, see the
"<link linkend='tasks'>Tasks</link>" section.
</para>
</section>
<section id='executing-tasks'>
<title>Executing Tasks</title>
<para>
Tasks can be either a shell task or a Python task.
For shell tasks, BitBake writes a shell script to
<filename>${</filename><link linkend='var-bb-T'><filename>T</filename></link><filename>}/run.do_taskname.pid</filename>
and then executes the script.
The generated shell script contains all the exported variables,
and the shell functions with all variables expanded.
Output from the shell script goes to the file
<filename>${T}/log.do_taskname.pid</filename>.
Looking at the expanded shell functions in the run file and
the output in the log files is a useful debugging technique.
</para>
<para>
For Python tasks, BitBake executes the task internally and logs
information to the controlling terminal.
Future versions of BitBake will write the functions to files
similar to the way shell tasks are handled.
Logging will be handled in a way similar to shell tasks as well.
</para>
<para>
The order in which BitBake runs the tasks is controlled by its
task scheduler.
It is possible to configure the scheduler and define custom
implementations for specific use cases.
For more information, see these variables that control the
behavior:
<itemizedlist>
<listitem><para>
<link linkend='var-bb-BB_SCHEDULER'><filename>BB_SCHEDULER</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-bb-BB_SCHEDULERS'><filename>BB_SCHEDULERS</filename></link>
</para></listitem>
</itemizedlist>
It is possible to have functions run before and after a task's main
function.
This is done using the <filename>[prefuncs]</filename>
and <filename>[postfuncs]</filename> flags of the task
that lists the functions to run.
</para>
</section>
<section id='checksums'>
<title>Checksums (Signatures)</title>
<para>
A checksum is a unique signature of a task's inputs.
The signature of a task can be used to determine if a task
needs to be run.
Because it is a change in a task's inputs that triggers running
the task, BitBake needs to detect all the inputs to a given task.
For shell tasks, this turns out to be fairly easy because
BitBake generates a "run" shell script for each task and
it is possible to create a checksum that gives you a good idea of when
the task's data changes.
</para>
<para>
To complicate the problem, some things should not be included in
the checksum.
First, there is the actual specific build path of a given task -
the working directory.
It does not matter if the working directory changes because it should not
affect the output for target packages.
The simplistic approach for excluding the working directory is to set
it to some fixed value and create the checksum for the "run" script.
BitBake goes one step better and uses the
<link linkend='var-bb-BB_HASHBASE_WHITELIST'><filename>BB_HASHBASE_WHITELIST</filename></link>
variable to define a list of variables that should never be included
when generating the signatures.
</para>
<para>
Another problem results from the "run" scripts containing functions that
might or might not get called.
The incremental build solution contains code that figures out dependencies
between shell functions.
This code is used to prune the "run" scripts down to the minimum set,
thereby alleviating this problem and making the "run" scripts much more
readable as a bonus.
</para>
<para>
So far we have solutions for shell scripts.
What about Python tasks?
The same approach applies even though these tasks are more difficult.
The process needs to figure out what variables a Python function accesses
and what functions it calls.
Again, the incremental build solution contains code that first figures out
the variable and function dependencies, and then creates a checksum for the data
used as the input to the task.
</para>
<para>
Like the working directory case, situations exist where dependencies
should be ignored.
For these cases, you can instruct the build process to ignore a dependency
by using a line like the following:
<literallayout class='monospaced'>
PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
</literallayout>
This example ensures that the <filename>PACKAGE_ARCHS</filename> variable does not
depend on the value of <filename>MACHINE</filename>, even if it does reference it.
</para>
<para>
Equally, there are cases where we need to add dependencies BitBake
is not able to find.
You can accomplish this by using a line like the following:
<literallayout class='monospaced'>
PACKAGE_ARCHS[vardeps] = "MACHINE"
</literallayout>
This example explicitly adds the <filename>MACHINE</filename> variable as a
dependency for <filename>PACKAGE_ARCHS</filename>.
</para>
<para>
Consider a case with in-line Python, for example, where BitBake is not
able to figure out dependencies.
When running in debug mode (i.e. using <filename>-DDD</filename>), BitBake
produces output when it discovers something for which it cannot figure out
dependencies.
</para>
<para>
Thus far, this section has limited discussion to the direct inputs into a task.
Information based on direct inputs is referred to as the "basehash" in the
code.
However, there is still the question of a task's indirect inputs - the
things that were already built and present in the build directory.
The checksum (or signature) for a particular task needs to add the hashes
of all the tasks on which the particular task depends.
Choosing which dependencies to add is a policy decision.
However, the effect is to generate a master checksum that combines the basehash
and the hashes of the task's dependencies.
</para>
<para>
At the code level, there are a variety of ways both the basehash and the
dependent task hashes can be influenced.
Within the BitBake configuration file, we can give BitBake some extra information
to help it construct the basehash.
The following statement effectively results in a list of global variable
dependency excludes - variables never included in any checksum.
This example uses variables from OpenEmbedded to help illustrate
the concept:
<literallayout class='monospaced'>
BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \
SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM \
USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \
PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \
CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX"
</literallayout>
The previous example excludes the work directory, which is part of
<filename>TMPDIR</filename>.
</para>
<para>
The rules for deciding which hashes of dependent tasks to include through
dependency chains are more complex and are generally accomplished with a
Python function.
The code in <filename>meta/lib/oe/sstatesig.py</filename> shows two examples
of this and also illustrates how you can insert your own policy into the system
if so desired.
This file defines the two basic signature generators OpenEmbedded-Core
uses: "OEBasic" and "OEBasicHash".
By default, there is a dummy "noop" signature handler enabled in BitBake.
This means that behavior is unchanged from previous versions.
<filename>OE-Core</filename> uses the "OEBasicHash" signature handler by default
through this setting in the <filename>bitbake.conf</filename> file:
<literallayout class='monospaced'>
BB_SIGNATURE_HANDLER ?= "OEBasicHash"
</literallayout>
The "OEBasicHash" <filename>BB_SIGNATURE_HANDLER</filename> is the same as the
"OEBasic" version but adds the task hash to the stamp files.
This results in any metadata change that changes the task hash, automatically
causing the task to be run again.
This removes the need to bump
<link linkend='var-bb-PR'><filename>PR</filename></link>
values, and changes to metadata automatically ripple across the build.
</para>
<para>
It is also worth noting that the end result of these signature generators is to
make some dependency and hash information available to the build.
This information includes:
<itemizedlist>
<listitem><para><filename>BB_BASEHASH_task-</filename><replaceable>taskname</replaceable>:
The base hashes for each task in the recipe.
</para></listitem>
<listitem><para><filename>BB_BASEHASH_</filename><replaceable>filename</replaceable><filename>:</filename><replaceable>taskname</replaceable>:
The base hashes for each dependent task.
</para></listitem>
<listitem><para><filename>BBHASHDEPS_</filename><replaceable>filename</replaceable><filename>:</filename><replaceable>taskname</replaceable>:
The task dependencies for each task.
</para></listitem>
<listitem><para><filename>BB_TASKHASH</filename>:
The hash of the currently running task.
</para></listitem>
</itemizedlist>
</para>
<para>
It is worth noting that BitBake's "-S" option lets you
debug Bitbake's processing of signatures.
The options passed to -S allow different debugging modes
to be used, either using BitBake's own debug functions
or possibly those defined in the metadata/signature handler
itself.
The simplest parameter to pass is "none", which causes a
set of signature information to be written out into
<filename>STAMPS_DIR</filename>
corresponding to the targets specified.
The other currently available parameter is "printdiff",
which causes BitBake to try to establish the closest
signature match it can (e.g. in the sstate cache) and then
run <filename>bitbake-diffsigs</filename> over the matches
to determine the stamps and delta where these two
stamp trees diverge.
<note>
It is likely that future versions of BitBake will
provide other signature handlers triggered through
additional "-S" parameters.
</note>
</para>
<para>
You can find more information on checksum metadata in the
"<link linkend='task-checksums-and-setscene'>Task Checksums and Setscene</link>"
section.
</para>
</section>
<section id='setscene'>
<title>Setscene</title>
<para>
The setscene process enables BitBake to handle "pre-built" artifacts.
The ability to handle and reuse these artifacts allows BitBake
the luxury of not having to build something from scratch every time.
Instead, BitBake can use, when possible, existing build artifacts.
</para>
<para>
BitBake needs to have reliable data indicating whether or not an
artifact is compatible.
Signatures, described in the previous section, provide an ideal
way of representing whether an artifact is compatible.
If a signature is the same, an object can be reused.
</para>
<para>
If an object can be reused, the problem then becomes how to
replace a given task or set of tasks with the pre-built artifact.
BitBake solves the problem with the "setscene" process.
</para>
<para>
When BitBake is asked to build a given target, before building anything,
it first asks whether cached information is available for any of the
targets it's building, or any of the intermediate targets.
If cached information is available, BitBake uses this information instead of
running the main tasks.
</para>
<para>
BitBake first calls the function defined by the
<link linkend='var-bb-BB_HASHCHECK_FUNCTION'><filename>BB_HASHCHECK_FUNCTION</filename></link>
variable with a list of tasks and corresponding
hashes it wants to build.
This function is designed to be fast and returns a list
of the tasks for which it believes in can obtain artifacts.
</para>
<para>
Next, for each of the tasks that were returned as possibilities,
BitBake executes a setscene version of the task that the possible
artifact covers.
Setscene versions of a task have the string "_setscene" appended to the
task name.
So, for example, the task with the name <filename>xxx</filename> has
a setscene task named <filename>xxx_setscene</filename>.
The setscene version of the task executes and provides the necessary
artifacts returning either success or failure.
</para>
<para>
As previously mentioned, an artifact can cover more than one task.
For example, it is pointless to obtain a compiler if you
already have the compiled binary.
To handle this, BitBake calls the
<link linkend='var-bb-BB_SETSCENE_DEPVALID'><filename>BB_SETSCENE_DEPVALID</filename></link>
function for each successful setscene task to know whether or not it needs
to obtain the dependencies of that task.
</para>
<para>
Finally, after all the setscene tasks have executed, BitBake calls the
function listed in
<link linkend='var-bb-BB_SETSCENE_VERIFY_FUNCTION2'><filename>BB_SETSCENE_VERIFY_FUNCTION2</filename></link>
with the list of tasks BitBake thinks has been "covered".
The metadata can then ensure that this list is correct and can
inform BitBake that it wants specific tasks to be run regardless
of the setscene result.
</para>
<para>
You can find more information on setscene metadata in the
"<link linkend='task-checksums-and-setscene'>Task Checksums and Setscene</link>"
section.
</para>
</section>
</chapter>

View File

@@ -1,652 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
=====================
File Download Support
=====================
|
BitBake's fetch module is a standalone piece of library code that deals
with the intricacies of downloading source code and files from remote
systems. Fetching source code is one of the cornerstones of building
software. As such, this module forms an important part of BitBake.
The current fetch module is called "fetch2" and refers to the fact that
it is the second major version of the API. The original version is
obsolete and has been removed from the codebase. Thus, in all cases,
"fetch" refers to "fetch2" in this manual.
The Download (Fetch)
====================
BitBake takes several steps when fetching source code or files. The
fetcher codebase deals with two distinct processes in order: obtaining
the files from somewhere (cached or otherwise) and then unpacking those
files into a specific location and perhaps in a specific way. Getting
and unpacking the files is often optionally followed by patching.
Patching, however, is not covered by this module.
The code to execute the first part of this process, a fetch, looks
something like the following: ::
src_uri = (d.getVar('SRC_URI') or "").split()
fetcher = bb.fetch2.Fetch(src_uri, d)
fetcher.download()
This code sets up an instance of the fetch class. The instance uses a
space-separated list of URLs from the :term:`SRC_URI`
variable and then calls the ``download`` method to download the files.
The instantiation of the fetch class is usually followed by: ::
rootdir = l.getVar('WORKDIR')
fetcher.unpack(rootdir)
This code unpacks the downloaded files to the specified by ``WORKDIR``.
.. note::
For convenience, the naming in these examples matches the variables
used by OpenEmbedded. If you want to see the above code in action,
examine the OpenEmbedded class file ``base.bbclass``
.
The ``SRC_URI`` and ``WORKDIR`` variables are not hardcoded into the
fetcher, since those fetcher methods can be (and are) called with
different variable names. In OpenEmbedded for example, the shared state
(sstate) code uses the fetch module to fetch the sstate files.
When the ``download()`` method is called, BitBake tries to resolve the
URLs by looking for source files in a specific search order:
- *Pre-mirror Sites:* BitBake first uses pre-mirrors to try and find
source files. These locations are defined using the
:term:`PREMIRRORS` variable.
- *Source URI:* If pre-mirrors fail, BitBake uses the original URL (e.g
from ``SRC_URI``).
- *Mirror Sites:* If fetch failures occur, BitBake next uses mirror
locations as defined by the :term:`MIRRORS` variable.
For each URL passed to the fetcher, the fetcher calls the submodule that
handles that particular URL type. This behavior can be the source of
some confusion when you are providing URLs for the ``SRC_URI`` variable.
Consider the following two URLs: ::
http://git.yoctoproject.org/git/poky;protocol=git
git://git.yoctoproject.org/git/poky;protocol=http
In the former case, the URL is passed to the ``wget`` fetcher, which does not
understand "git". Therefore, the latter case is the correct form since the Git
fetcher does know how to use HTTP as a transport.
Here are some examples that show commonly used mirror definitions: ::
PREMIRRORS ?= "\
bzr://.*/.\* http://somemirror.org/sources/ \\n \
cvs://.*/.\* http://somemirror.org/sources/ \\n \
git://.*/.\* http://somemirror.org/sources/ \\n \
hg://.*/.\* http://somemirror.org/sources/ \\n \
osc://.*/.\* http://somemirror.org/sources/ \\n \
p4://.*/.\* http://somemirror.org/sources/ \\n \
svn://.*/.\* http://somemirror.org/sources/ \\n"
MIRRORS =+ "\
ftp://.*/.\* http://somemirror.org/sources/ \\n \
http://.*/.\* http://somemirror.org/sources/ \\n \
https://.*/.\* http://somemirror.org/sources/ \\n"
It is useful to note that BitBake
supports cross-URLs. It is possible to mirror a Git repository on an
HTTP server as a tarball. This is what the ``git://`` mapping in the
previous example does.
Since network accesses are slow, BitBake maintains a cache of files
downloaded from the network. Any source files that are not local (i.e.
downloaded from the Internet) are placed into the download directory,
which is specified by the :term:`DL_DIR` variable.
File integrity is of key importance for reproducing builds. For
non-local archive downloads, the fetcher code can verify SHA-256 and MD5
checksums to ensure the archives have been downloaded correctly. You can
specify these checksums by using the ``SRC_URI`` variable with the
appropriate varflags as follows: ::
SRC_URI[md5sum] = "value"
SRC_URI[sha256sum] = "value"
You can also specify the checksums as
parameters on the ``SRC_URI`` as shown below: ::
SRC_URI = "http://example.com/foobar.tar.bz2;md5sum=4a8e0f237e961fd7785d19d07fdb994d"
If multiple URIs exist, you can specify the checksums either directly as
in the previous example, or you can name the URLs. The following syntax
shows how you name the URIs: ::
SRC_URI = "http://example.com/foobar.tar.bz2;name=foo"
SRC_URI[foo.md5sum] = 4a8e0f237e961fd7785d19d07fdb994d
After a file has been downloaded and
has had its checksum checked, a ".done" stamp is placed in ``DL_DIR``.
BitBake uses this stamp during subsequent builds to avoid downloading or
comparing a checksum for the file again.
.. note::
It is assumed that local storage is safe from data corruption. If
this were not the case, there would be bigger issues to worry about.
If :term:`BB_STRICT_CHECKSUM` is set, any
download without a checksum triggers an error message. The
:term:`BB_NO_NETWORK` variable can be used to
make any attempted network access a fatal error, which is useful for
checking that mirrors are complete as well as other things.
.. _bb-the-unpack:
The Unpack
==========
The unpack process usually immediately follows the download. For all
URLs except Git URLs, BitBake uses the common ``unpack`` method.
A number of parameters exist that you can specify within the URL to
govern the behavior of the unpack stage:
- *unpack:* Controls whether the URL components are unpacked. If set to
"1", which is the default, the components are unpacked. If set to
"0", the unpack stage leaves the file alone. This parameter is useful
when you want an archive to be copied in and not be unpacked.
- *dos:* Applies to ``.zip`` and ``.jar`` files and specifies whether
to use DOS line ending conversion on text files.
- *basepath:* Instructs the unpack stage to strip the specified
directories from the source path when unpacking.
- *subdir:* Unpacks the specific URL to the specified subdirectory
within the root directory.
The unpack call automatically decompresses and extracts files with ".Z",
".z", ".gz", ".xz", ".zip", ".jar", ".ipk", ".rpm". ".srpm", ".deb" and
".bz2" extensions as well as various combinations of tarball extensions.
As mentioned, the Git fetcher has its own unpack method that is
optimized to work with Git trees. Basically, this method works by
cloning the tree into the final directory. The process is completed
using references so that there is only one central copy of the Git
metadata needed.
.. _bb-fetchers:
Fetchers
========
As mentioned earlier, the URL prefix determines which fetcher submodule
BitBake uses. Each submodule can support different URL parameters, which
are described in the following sections.
.. _local-file-fetcher:
Local file fetcher (``file://``)
--------------------------------
This submodule handles URLs that begin with ``file://``. The filename
you specify within the URL can be either an absolute or relative path to
a file. If the filename is relative, the contents of the
:term:`FILESPATH` variable is used in the same way
``PATH`` is used to find executables. If the file cannot be found, it is
assumed that it is available in :term:`DL_DIR` by the
time the ``download()`` method is called.
If you specify a directory, the entire directory is unpacked.
Here are a couple of example URLs, the first relative and the second
absolute: ::
SRC_URI = "file://relativefile.patch"
SRC_URI = "file:///Users/ich/very_important_software"
.. _http-ftp-fetcher:
HTTP/FTP wget fetcher (``http://``, ``ftp://``, ``https://``)
-------------------------------------------------------------
This fetcher obtains files from web and FTP servers. Internally, the
fetcher uses the wget utility.
The executable and parameters used are specified by the
``FETCHCMD_wget`` variable, which defaults to sensible values. The
fetcher supports a parameter "downloadfilename" that allows the name of
the downloaded file to be specified. Specifying the name of the
downloaded file is useful for avoiding collisions in
:term:`DL_DIR` when dealing with multiple files that
have the same name.
Some example URLs are as follows: ::
SRC_URI = "http://oe.handhelds.org/not_there.aac"
SRC_URI = "ftp://oe.handhelds.org/not_there_as_well.aac"
SRC_URI = "ftp://you@oe.handhelds.org/home/you/secret.plan"
.. note::
Because URL parameters are delimited by semi-colons, this can
introduce ambiguity when parsing URLs that also contain semi-colons,
for example:
::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git;a=snapshot;h=a5dd47"
Such URLs should should be modified by replacing semi-colons with '&'
characters:
::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&a=snapshot&h=a5dd47"
In most cases this should work. Treating semi-colons and '&' in
queries identically is recommended by the World Wide Web Consortium
(W3C). Note that due to the nature of the URL, you may have to
specify the name of the downloaded file as well:
::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&a=snapshot&h=a5dd47;downloadfilename=myfile.bz2"
.. _cvs-fetcher:
CVS fetcher (``(cvs://``)
-------------------------
This submodule handles checking out files from the CVS version control
system. You can configure it using a number of different variables:
- :term:`FETCHCMD_cvs <FETCHCMD>`: The name of the executable to use when running
the ``cvs`` command. This name is usually "cvs".
- :term:`SRCDATE`: The date to use when fetching the CVS source code. A
special value of "now" causes the checkout to be updated on every
build.
- :term:`CVSDIR`: Specifies where a temporary
checkout is saved. The location is often ``DL_DIR/cvs``.
- CVS_PROXY_HOST: The name to use as a "proxy=" parameter to the
``cvs`` command.
- CVS_PROXY_PORT: The port number to use as a "proxyport="
parameter to the ``cvs`` command.
As well as the standard username and password URL syntax, you can also
configure the fetcher with various URL parameters:
The supported parameters are as follows:
- *"method":* The protocol over which to communicate with the CVS
server. By default, this protocol is "pserver". If "method" is set to
"ext", BitBake examines the "rsh" parameter and sets ``CVS_RSH``. You
can use "dir" for local directories.
- *"module":* Specifies the module to check out. You must supply this
parameter.
- *"tag":* Describes which CVS TAG should be used for the checkout. By
default, the TAG is empty.
- *"date":* Specifies a date. If no "date" is specified, the
:term:`SRCDATE` of the configuration is used to
checkout a specific date. The special value of "now" causes the
checkout to be updated on every build.
- *"localdir":* Used to rename the module. Effectively, you are
renaming the output directory to which the module is unpacked. You
are forcing the module into a special directory relative to
:term:`CVSDIR`.
- *"rsh":* Used in conjunction with the "method" parameter.
- *"scmdata":* Causes the CVS metadata to be maintained in the tarball
the fetcher creates when set to "keep". The tarball is expanded into
the work directory. By default, the CVS metadata is removed.
- *"fullpath":* Controls whether the resulting checkout is at the
module level, which is the default, or is at deeper paths.
- *"norecurse":* Causes the fetcher to only checkout the specified
directory with no recurse into any subdirectories.
- *"port":* The port to which the CVS server connects.
Some example URLs are as follows: ::
SRC_URI = "cvs://CVSROOT;module=mymodule;tag=some-version;method=ext"
SRC_URI = "cvs://CVSROOT;module=mymodule;date=20060126;localdir=usethat"
.. _svn-fetcher:
Subversion (SVN) Fetcher (``svn://``)
-------------------------------------
This fetcher submodule fetches code from the Subversion source control
system. The executable used is specified by ``FETCHCMD_svn``, which
defaults to "svn". The fetcher's temporary working directory is set by
:term:`SVNDIR`, which is usually ``DL_DIR/svn``.
The supported parameters are as follows:
- *"module":* The name of the svn module to checkout. You must provide
this parameter. You can think of this parameter as the top-level
directory of the repository data you want.
- *"path_spec":* A specific directory in which to checkout the
specified svn module.
- *"protocol":* The protocol to use, which defaults to "svn". If
"protocol" is set to "svn+ssh", the "ssh" parameter is also used.
- *"rev":* The revision of the source code to checkout.
- *"scmdata":* Causes the ".svn" directories to be available during
compile-time when set to "keep". By default, these directories are
removed.
- *"ssh":* An optional parameter used when "protocol" is set to
"svn+ssh". You can use this parameter to specify the ssh program used
by svn.
- *"transportuser":* When required, sets the username for the
transport. By default, this parameter is empty. The transport
username is different than the username used in the main URL, which
is passed to the subversion command.
Following are three examples using svn: ::
SRC_URI = "svn://myrepos/proj1;module=vip;protocol=http;rev=667"
SRC_URI = "svn://myrepos/proj1;module=opie;protocol=svn+ssh"
SRC_URI = "svn://myrepos/proj1;module=trunk;protocol=http;path_spec=${MY_DIR}/proj1"
.. _git-fetcher:
Git Fetcher (``git://``)
------------------------
This fetcher submodule fetches code from the Git source control system.
The fetcher works by creating a bare clone of the remote into
:term:`GITDIR`, which is usually ``DL_DIR/git2``. This
bare clone is then cloned into the work directory during the unpack
stage when a specific tree is checked out. This is done using alternates
and by reference to minimize the amount of duplicate data on the disk
and make the unpack process fast. The executable used can be set with
``FETCHCMD_git``.
This fetcher supports the following parameters:
- *"protocol":* The protocol used to fetch the files. The default is
"git" when a hostname is set. If a hostname is not set, the Git
protocol is "file". You can also use "http", "https", "ssh" and
"rsync".
- *"nocheckout":* Tells the fetcher to not checkout source code when
unpacking when set to "1". Set this option for the URL where there is
a custom routine to checkout code. The default is "0".
- *"rebaseable":* Indicates that the upstream Git repository can be
rebased. You should set this parameter to "1" if revisions can become
detached from branches. In this case, the source mirror tarball is
done per revision, which has a loss of efficiency. Rebasing the
upstream Git repository could cause the current revision to disappear
from the upstream repository. This option reminds the fetcher to
preserve the local cache carefully for future use. The default value
for this parameter is "0".
- *"nobranch":* Tells the fetcher to not check the SHA validation for
the branch when set to "1". The default is "0". Set this option for
the recipe that refers to the commit that is valid for a tag instead
of the branch.
- *"bareclone":* Tells the fetcher to clone a bare clone into the
destination directory without checking out a working tree. Only the
raw Git metadata is provided. This parameter implies the "nocheckout"
parameter as well.
- *"branch":* The branch(es) of the Git tree to clone. If unset, this
is assumed to be "master". The number of branch parameters much match
the number of name parameters.
- *"rev":* The revision to use for the checkout. The default is
"master".
- *"tag":* Specifies a tag to use for the checkout. To correctly
resolve tags, BitBake must access the network. For that reason, tags
are often not used. As far as Git is concerned, the "tag" parameter
behaves effectively the same as the "rev" parameter.
- *"subpath":* Limits the checkout to a specific subpath of the tree.
By default, the whole tree is checked out.
- *"destsuffix":* The name of the path in which to place the checkout.
By default, the path is ``git/``.
- *"usehead":* Enables local ``git://`` URLs to use the current branch
HEAD as the revision for use with ``AUTOREV``. The "usehead"
parameter implies no branch and only works when the transfer protocol
is ``file://``.
Here are some example URLs: ::
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;tag=version-1"
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;protocol=http"
.. _gitsm-fetcher:
Git Submodule Fetcher (``gitsm://``)
------------------------------------
This fetcher submodule inherits from the :ref:`Git
fetcher<bitbake-user-manual/bitbake-user-manual-fetching:git fetcher
(\`\`git://\`\`)>` and extends that fetcher's behavior by fetching a
repository's submodules. :term:`SRC_URI` is passed to the Git fetcher as
described in the :ref:`bitbake-user-manual/bitbake-user-manual-fetching:git
fetcher (\`\`git://\`\`)` section.
.. note::
You must clean a recipe when switching between '``git://``' and
'``gitsm://``' URLs.
The Git Submodules fetcher is not a complete fetcher implementation.
The fetcher has known issues where it does not use the normal source
mirroring infrastructure properly. Further, the submodule sources it
fetches are not visible to the licensing and source archiving
infrastructures.
.. _clearcase-fetcher:
ClearCase Fetcher (``ccrc://``)
-------------------------------
This fetcher submodule fetches code from a
`ClearCase <http://en.wikipedia.org/wiki/Rational_ClearCase>`__
repository.
To use this fetcher, make sure your recipe has proper
:term:`SRC_URI`, :term:`SRCREV`, and
:term:`PV` settings. Here is an example: ::
SRC_URI = "ccrc://cc.example.org/ccrc;vob=/example_vob;module=/example_module"
SRCREV = "EXAMPLE_CLEARCASE_TAG"
PV = "${@d.getVar("SRCREV", False).replace("/", "+")}"
The fetcher uses the ``rcleartool`` or
``cleartool`` remote client, depending on which one is available.
Following are options for the ``SRC_URI`` statement:
- *vob*: The name, which must include the prepending "/" character,
of the ClearCase VOB. This option is required.
- *module*: The module, which must include the prepending "/"
character, in the selected VOB.
.. note::
The module and vob options are combined to create the load rule in the
view config spec. As an example, consider the vob and module values from
the SRC_URI statement at the start of this section. Combining those values
results in the following: ::
load /example_vob/example_module
- *proto*: The protocol, which can be either ``http`` or ``https``.
By default, the fetcher creates a configuration specification. If you
want this specification written to an area other than the default, use
the ``CCASE_CUSTOM_CONFIG_SPEC`` variable in your recipe to define where
the specification is written.
.. note::
the SRCREV loses its functionality if you specify this variable. However,
SRCREV is still used to label the archive after a fetch even though it does
not define what is fetched.
Here are a couple of other behaviors worth mentioning:
- When using ``cleartool``, the login of ``cleartool`` is handled by
the system. The login require no special steps.
- In order to use ``rcleartool`` with authenticated users, an
"rcleartool login" is necessary before using the fetcher.
.. _perforce-fetcher:
Perforce Fetcher (``p4://``)
----------------------------
This fetcher submodule fetches code from the
`Perforce <https://www.perforce.com/>`__ source control system. The
executable used is specified by ``FETCHCMD_p4``, which defaults to "p4".
The fetcher's temporary working directory is set by
:term:`P4DIR`, which defaults to "DL_DIR/p4".
The fetcher does not make use of a perforce client, instead it
relies on ``p4 files`` to retrieve a list of
files and ``p4 print`` to transfer the content
of those files locally.
To use this fetcher, make sure your recipe has proper
:term:`SRC_URI`, :term:`SRCREV`, and
:term:`PV` values. The p4 executable is able to use the
config file defined by your system's ``P4CONFIG`` environment variable
in order to define the Perforce server URL and port, username, and
password if you do not wish to keep those values in a recipe itself. If
you choose not to use ``P4CONFIG``, or to explicitly set variables that
``P4CONFIG`` can contain, you can specify the ``P4PORT`` value, which is
the server's URL and port number, and you can specify a username and
password directly in your recipe within ``SRC_URI``.
Here is an example that relies on ``P4CONFIG`` to specify the server URL
and port, username, and password, and fetches the Head Revision: ::
SRC_URI = "p4://example-depot/main/source/..."
SRCREV = "${AUTOREV}"
PV = "p4-${SRCPV}"
S = "${WORKDIR}/p4"
Here is an example that specifies the server URL and port, username, and
password, and fetches a Revision based on a Label: ::
P4PORT = "tcp:p4server.example.net:1666"
SRC_URI = "p4://user:passwd@example-depot/main/source/..."
SRCREV = "release-1.0"
PV = "p4-${SRCPV}"
S = "${WORKDIR}/p4"
.. note::
You should always set S to "${WORKDIR}/p4" in your recipe.
By default, the fetcher strips the depot location from the local file paths. In
the above example, the content of ``example-depot/main/source/`` will be placed
in ``${WORKDIR}/p4``. For situations where preserving parts of the remote depot
paths locally is desirable, the fetcher supports two parameters:
- *"module":*
The top-level depot location or directory to fetch. The value of this
parameter can also point to a single file within the depot, in which case
the local file path will include the module path.
- *"remotepath":*
When used with the value "``keep``", the fetcher will mirror the full depot
paths locally for the specified location, even in combination with the
``module`` parameter.
Here is an example use of the the ``module`` parameter: ::
SRC_URI = "p4://user:passwd@example-depot/main;module=source/..."
In this case, the content of the top-level directory ``source/`` will be fetched
to ``${P4DIR}``, including the directory itself. The top-level directory will
be accesible at ``${P4DIR}/source/``.
Here is an example use of the the ``remotepath`` parameter: ::
SRC_URI = "p4://user:passwd@example-depot/main;module=source/...;remotepath=keep"
In this case, the content of the top-level directory ``source/`` will be fetched
to ``${P4DIR}``, but the complete depot paths will be mirrored locally. The
top-level directory will be accessible at
``${P4DIR}/example-depot/main/source/``.
.. _repo-fetcher:
Repo Fetcher (``repo://``)
--------------------------
This fetcher submodule fetches code from ``google-repo`` source control
system. The fetcher works by initiating and syncing sources of the
repository into :term:`REPODIR`, which is usually
``${DL_DIR}/repo``.
This fetcher supports the following parameters:
- *"protocol":* Protocol to fetch the repository manifest (default:
git).
- *"branch":* Branch or tag of repository to get (default: master).
- *"manifest":* Name of the manifest file (default: ``default.xml``).
Here are some example URLs: ::
SRC_URI = "repo://REPOROOT;protocol=git;branch=some_branch;manifest=my_manifest.xml"
SRC_URI = "repo://REPOROOT;protocol=file;branch=some_branch;manifest=my_manifest.xml"
Other Fetchers
--------------
Fetch submodules also exist for the following:
- Bazaar (``bzr://``)
- Mercurial (``hg://``)
- npm (``npm://``)
- OSC (``osc://``)
- Secure FTP (``sftp://``)
- Secure Shell (``ssh://``)
- Trees using Git Annex (``gitannex://``)
No documentation currently exists for these lesser used fetcher
submodules. However, you might find the code helpful and readable.
Auto Revisions
==============
We need to document ``AUTOREV`` and ``SRCREV_FORMAT`` here.

View File

@@ -0,0 +1,868 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<chapter>
<title>File Download Support</title>
<para>
BitBake's fetch module is a standalone piece of library code
that deals with the intricacies of downloading source code
and files from remote systems.
Fetching source code is one of the cornerstones of building software.
As such, this module forms an important part of BitBake.
</para>
<para>
The current fetch module is called "fetch2" and refers to the
fact that it is the second major version of the API.
The original version is obsolete and has been removed from the codebase.
Thus, in all cases, "fetch" refers to "fetch2" in this
manual.
</para>
<section id='the-download-fetch'>
<title>The Download (Fetch)</title>
<para>
BitBake takes several steps when fetching source code or files.
The fetcher codebase deals with two distinct processes in order:
obtaining the files from somewhere (cached or otherwise)
and then unpacking those files into a specific location and
perhaps in a specific way.
Getting and unpacking the files is often optionally followed
by patching.
Patching, however, is not covered by this module.
</para>
<para>
The code to execute the first part of this process, a fetch,
looks something like the following:
<literallayout class='monospaced'>
src_uri = (d.getVar('SRC_URI') or "").split()
fetcher = bb.fetch2.Fetch(src_uri, d)
fetcher.download()
</literallayout>
This code sets up an instance of the fetch class.
The instance uses a space-separated list of URLs from the
<link linkend='var-bb-SRC_URI'><filename>SRC_URI</filename></link>
variable and then calls the <filename>download</filename>
method to download the files.
</para>
<para>
The instantiation of the fetch class is usually followed by:
<literallayout class='monospaced'>
rootdir = l.getVar('WORKDIR')
fetcher.unpack(rootdir)
</literallayout>
This code unpacks the downloaded files to the
specified by <filename>WORKDIR</filename>.
<note>
For convenience, the naming in these examples matches
the variables used by OpenEmbedded.
If you want to see the above code in action, examine
the OpenEmbedded class file <filename>base.bbclass</filename>.
</note>
The <filename>SRC_URI</filename> and <filename>WORKDIR</filename>
variables are not hardcoded into the fetcher, since those fetcher
methods can be (and are) called with different variable names.
In OpenEmbedded for example, the shared state (sstate) code uses
the fetch module to fetch the sstate files.
</para>
<para>
When the <filename>download()</filename> method is called,
BitBake tries to resolve the URLs by looking for source files
in a specific search order:
<itemizedlist>
<listitem><para><emphasis>Pre-mirror Sites:</emphasis>
BitBake first uses pre-mirrors to try and find source files.
These locations are defined using the
<link linkend='var-bb-PREMIRRORS'><filename>PREMIRRORS</filename></link>
variable.
</para></listitem>
<listitem><para><emphasis>Source URI:</emphasis>
If pre-mirrors fail, BitBake uses the original URL (e.g from
<filename>SRC_URI</filename>).
</para></listitem>
<listitem><para><emphasis>Mirror Sites:</emphasis>
If fetch failures occur, BitBake next uses mirror locations as
defined by the
<link linkend='var-bb-MIRRORS'><filename>MIRRORS</filename></link>
variable.
</para></listitem>
</itemizedlist>
</para>
<para>
For each URL passed to the fetcher, the fetcher
calls the submodule that handles that particular URL type.
This behavior can be the source of some confusion when you
are providing URLs for the <filename>SRC_URI</filename>
variable.
Consider the following two URLs:
<literallayout class='monospaced'>
http://git.yoctoproject.org/git/poky;protocol=git
git://git.yoctoproject.org/git/poky;protocol=http
</literallayout>
In the former case, the URL is passed to the
<filename>wget</filename> fetcher, which does not
understand "git".
Therefore, the latter case is the correct form since the
Git fetcher does know how to use HTTP as a transport.
</para>
<para>
Here are some examples that show commonly used mirror
definitions:
<literallayout class='monospaced'>
PREMIRRORS ?= "\
bzr://.*/.* http://somemirror.org/sources/ \n \
cvs://.*/.* http://somemirror.org/sources/ \n \
git://.*/.* http://somemirror.org/sources/ \n \
hg://.*/.* http://somemirror.org/sources/ \n \
osc://.*/.* http://somemirror.org/sources/ \n \
p4://.*/.* http://somemirror.org/sources/ \n \
svn://.*/.* http://somemirror.org/sources/ \n"
MIRRORS =+ "\
ftp://.*/.* http://somemirror.org/sources/ \n \
http://.*/.* http://somemirror.org/sources/ \n \
https://.*/.* http://somemirror.org/sources/ \n"
</literallayout>
It is useful to note that BitBake supports
cross-URLs.
It is possible to mirror a Git repository on an HTTP
server as a tarball.
This is what the <filename>git://</filename> mapping in
the previous example does.
</para>
<para>
Since network accesses are slow, Bitbake maintains a
cache of files downloaded from the network.
Any source files that are not local (i.e.
downloaded from the Internet) are placed into the download
directory, which is specified by the
<link linkend='var-bb-DL_DIR'><filename>DL_DIR</filename></link>
variable.
</para>
<para>
File integrity is of key importance for reproducing builds.
For non-local archive downloads, the fetcher code can verify
SHA-256 and MD5 checksums to ensure the archives have been
downloaded correctly.
You can specify these checksums by using the
<filename>SRC_URI</filename> variable with the appropriate
varflags as follows:
<literallayout class='monospaced'>
SRC_URI[md5sum] = "<replaceable>value</replaceable>"
SRC_URI[sha256sum] = "<replaceable>value</replaceable>"
</literallayout>
You can also specify the checksums as parameters on the
<filename>SRC_URI</filename> as shown below:
<literallayout class='monospaced'>
SRC_URI = "http://example.com/foobar.tar.bz2;md5sum=4a8e0f237e961fd7785d19d07fdb994d"
</literallayout>
If multiple URIs exist, you can specify the checksums either
directly as in the previous example, or you can name the URLs.
The following syntax shows how you name the URIs:
<literallayout class='monospaced'>
SRC_URI = "http://example.com/foobar.tar.bz2;name=foo"
SRC_URI[foo.md5sum] = 4a8e0f237e961fd7785d19d07fdb994d
</literallayout>
After a file has been downloaded and has had its checksum checked,
a ".done" stamp is placed in <filename>DL_DIR</filename>.
BitBake uses this stamp during subsequent builds to avoid
downloading or comparing a checksum for the file again.
<note>
It is assumed that local storage is safe from data corruption.
If this were not the case, there would be bigger issues to worry about.
</note>
</para>
<para>
If
<link linkend='var-bb-BB_STRICT_CHECKSUM'><filename>BB_STRICT_CHECKSUM</filename></link>
is set, any download without a checksum triggers an
error message.
The
<link linkend='var-bb-BB_NO_NETWORK'><filename>BB_NO_NETWORK</filename></link>
variable can be used to make any attempted network access a fatal
error, which is useful for checking that mirrors are complete
as well as other things.
</para>
</section>
<section id='bb-the-unpack'>
<title>The Unpack</title>
<para>
The unpack process usually immediately follows the download.
For all URLs except Git URLs, BitBake uses the common
<filename>unpack</filename> method.
</para>
<para>
A number of parameters exist that you can specify within the
URL to govern the behavior of the unpack stage:
<itemizedlist>
<listitem><para><emphasis>unpack:</emphasis>
Controls whether the URL components are unpacked.
If set to "1", which is the default, the components
are unpacked.
If set to "0", the unpack stage leaves the file alone.
This parameter is useful when you want an archive to be
copied in and not be unpacked.
</para></listitem>
<listitem><para><emphasis>dos:</emphasis>
Applies to <filename>.zip</filename> and
<filename>.jar</filename> files and specifies whether to
use DOS line ending conversion on text files.
</para></listitem>
<listitem><para><emphasis>basepath:</emphasis>
Instructs the unpack stage to strip the specified
directories from the source path when unpacking.
</para></listitem>
<listitem><para><emphasis>subdir:</emphasis>
Unpacks the specific URL to the specified subdirectory
within the root directory.
</para></listitem>
</itemizedlist>
The unpack call automatically decompresses and extracts files
with ".Z", ".z", ".gz", ".xz", ".zip", ".jar", ".ipk", ".rpm".
".srpm", ".deb" and ".bz2" extensions as well as various combinations
of tarball extensions.
</para>
<para>
As mentioned, the Git fetcher has its own unpack method that
is optimized to work with Git trees.
Basically, this method works by cloning the tree into the final
directory.
The process is completed using references so that there is
only one central copy of the Git metadata needed.
</para>
</section>
<section id='bb-fetchers'>
<title>Fetchers</title>
<para>
As mentioned earlier, the URL prefix determines which
fetcher submodule BitBake uses.
Each submodule can support different URL parameters,
which are described in the following sections.
</para>
<section id='local-file-fetcher'>
<title>Local file fetcher (<filename>file://</filename>)</title>
<para>
This submodule handles URLs that begin with
<filename>file://</filename>.
The filename you specify within the URL can be
either an absolute or relative path to a file.
If the filename is relative, the contents of the
<link linkend='var-bb-FILESPATH'><filename>FILESPATH</filename></link>
variable is used in the same way
<filename>PATH</filename> is used to find executables.
If the file cannot be found, it is assumed that it is available in
<link linkend='var-bb-DL_DIR'><filename>DL_DIR</filename></link>
by the time the <filename>download()</filename> method is called.
</para>
<para>
If you specify a directory, the entire directory is
unpacked.
</para>
<para>
Here are a couple of example URLs, the first relative and
the second absolute:
<literallayout class='monospaced'>
SRC_URI = "file://relativefile.patch"
SRC_URI = "file:///Users/ich/very_important_software"
</literallayout>
</para>
</section>
<section id='http-ftp-fetcher'>
<title>HTTP/FTP wget fetcher (<filename>http://</filename>, <filename>ftp://</filename>, <filename>https://</filename>)</title>
<para>
This fetcher obtains files from web and FTP servers.
Internally, the fetcher uses the wget utility.
</para>
<para>
The executable and parameters used are specified by the
<filename>FETCHCMD_wget</filename> variable, which defaults
to sensible values.
The fetcher supports a parameter "downloadfilename" that
allows the name of the downloaded file to be specified.
Specifying the name of the downloaded file is useful
for avoiding collisions in
<link linkend='var-bb-DL_DIR'><filename>DL_DIR</filename></link>
when dealing with multiple files that have the same name.
</para>
<para>
Some example URLs are as follows:
<literallayout class='monospaced'>
SRC_URI = "http://oe.handhelds.org/not_there.aac"
SRC_URI = "ftp://oe.handhelds.org/not_there_as_well.aac"
SRC_URI = "ftp://you@oe.handhelds.org/home/you/secret.plan"
</literallayout>
</para>
<note>
Because URL parameters are delimited by semi-colons, this can
introduce ambiguity when parsing URLs that also contain semi-colons,
for example:
<literallayout class='monospaced'>
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git;a=snapshot;h=a5dd47"
</literallayout>
Such URLs should should be modified by replacing semi-colons with '&amp;' characters:
<literallayout class='monospaced'>
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&amp;a=snapshot&amp;h=a5dd47"
</literallayout>
In most cases this should work. Treating semi-colons and '&amp;' in queries
identically is recommended by the World Wide Web Consortium (W3C).
Note that due to the nature of the URL, you may have to specify the name
of the downloaded file as well:
<literallayout class='monospaced'>
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&amp;a=snapshot&amp;h=a5dd47;downloadfilename=myfile.bz2"
</literallayout>
</note>
</section>
<section id='cvs-fetcher'>
<title>CVS fetcher (<filename>(cvs://</filename>)</title>
<para>
This submodule handles checking out files from the
CVS version control system.
You can configure it using a number of different variables:
<itemizedlist>
<listitem><para><emphasis><filename>FETCHCMD_cvs</filename>:</emphasis>
The name of the executable to use when running
the <filename>cvs</filename> command.
This name is usually "cvs".
</para></listitem>
<listitem><para><emphasis><filename>SRCDATE</filename>:</emphasis>
The date to use when fetching the CVS source code.
A special value of "now" causes the checkout to
be updated on every build.
</para></listitem>
<listitem><para><emphasis><link linkend='var-bb-CVSDIR'><filename>CVSDIR</filename></link>:</emphasis>
Specifies where a temporary checkout is saved.
The location is often <filename>DL_DIR/cvs</filename>.
</para></listitem>
<listitem><para><emphasis><filename>CVS_PROXY_HOST</filename>:</emphasis>
The name to use as a "proxy=" parameter to the
<filename>cvs</filename> command.
</para></listitem>
<listitem><para><emphasis><filename>CVS_PROXY_PORT</filename>:</emphasis>
The port number to use as a "proxyport=" parameter to
the <filename>cvs</filename> command.
</para></listitem>
</itemizedlist>
As well as the standard username and password URL syntax,
you can also configure the fetcher with various URL parameters:
</para>
<para>
The supported parameters are as follows:
<itemizedlist>
<listitem><para><emphasis>"method":</emphasis>
The protocol over which to communicate with the CVS
server.
By default, this protocol is "pserver".
If "method" is set to "ext", BitBake examines the
"rsh" parameter and sets <filename>CVS_RSH</filename>.
You can use "dir" for local directories.
</para></listitem>
<listitem><para><emphasis>"module":</emphasis>
Specifies the module to check out.
You must supply this parameter.
</para></listitem>
<listitem><para><emphasis>"tag":</emphasis>
Describes which CVS TAG should be used for
the checkout.
By default, the TAG is empty.
</para></listitem>
<listitem><para><emphasis>"date":</emphasis>
Specifies a date.
If no "date" is specified, the
<link linkend='var-bb-SRCDATE'><filename>SRCDATE</filename></link>
of the configuration is used to checkout a specific date.
The special value of "now" causes the checkout to be
updated on every build.
</para></listitem>
<listitem><para><emphasis>"localdir":</emphasis>
Used to rename the module.
Effectively, you are renaming the output directory
to which the module is unpacked.
You are forcing the module into a special
directory relative to
<link linkend='var-bb-CVSDIR'><filename>CVSDIR</filename></link>.
</para></listitem>
<listitem><para><emphasis>"rsh"</emphasis>
Used in conjunction with the "method" parameter.
</para></listitem>
<listitem><para><emphasis>"scmdata":</emphasis>
Causes the CVS metadata to be maintained in the tarball
the fetcher creates when set to "keep".
The tarball is expanded into the work directory.
By default, the CVS metadata is removed.
</para></listitem>
<listitem><para><emphasis>"fullpath":</emphasis>
Controls whether the resulting checkout is at the
module level, which is the default, or is at deeper
paths.
</para></listitem>
<listitem><para><emphasis>"norecurse":</emphasis>
Causes the fetcher to only checkout the specified
directory with no recurse into any subdirectories.
</para></listitem>
<listitem><para><emphasis>"port":</emphasis>
The port to which the CVS server connects.
</para></listitem>
</itemizedlist>
Some example URLs are as follows:
<literallayout class='monospaced'>
SRC_URI = "cvs://CVSROOT;module=mymodule;tag=some-version;method=ext"
SRC_URI = "cvs://CVSROOT;module=mymodule;date=20060126;localdir=usethat"
</literallayout>
</para>
</section>
<section id='svn-fetcher'>
<title>Subversion (SVN) Fetcher (<filename>svn://</filename>)</title>
<para>
This fetcher submodule fetches code from the
Subversion source control system.
The executable used is specified by
<filename>FETCHCMD_svn</filename>, which defaults
to "svn".
The fetcher's temporary working directory is set by
<link linkend='var-bb-SVNDIR'><filename>SVNDIR</filename></link>,
which is usually <filename>DL_DIR/svn</filename>.
</para>
<para>
The supported parameters are as follows:
<itemizedlist>
<listitem><para><emphasis>"module":</emphasis>
The name of the svn module to checkout.
You must provide this parameter.
You can think of this parameter as the top-level
directory of the repository data you want.
</para></listitem>
<listitem><para><emphasis>"path_spec":</emphasis>
A specific directory in which to checkout the
specified svn module.
</para></listitem>
<listitem><para><emphasis>"protocol":</emphasis>
The protocol to use, which defaults to "svn".
If "protocol" is set to "svn+ssh", the "ssh"
parameter is also used.
</para></listitem>
<listitem><para><emphasis>"rev":</emphasis>
The revision of the source code to checkout.
</para></listitem>
<listitem><para><emphasis>"scmdata":</emphasis>
Causes the “.svn” directories to be available during
compile-time when set to "keep".
By default, these directories are removed.
</para></listitem>
<listitem><para><emphasis>"ssh":</emphasis>
An optional parameter used when "protocol" is set
to "svn+ssh".
You can use this parameter to specify the ssh
program used by svn.
</para></listitem>
<listitem><para><emphasis>"transportuser":</emphasis>
When required, sets the username for the transport.
By default, this parameter is empty.
The transport username is different than the username
used in the main URL, which is passed to the subversion
command.
</para></listitem>
</itemizedlist>
Following are three examples using svn:
<literallayout class='monospaced'>
SRC_URI = "svn://myrepos/proj1;module=vip;protocol=http;rev=667"
SRC_URI = "svn://myrepos/proj1;module=opie;protocol=svn+ssh"
SRC_URI = "svn://myrepos/proj1;module=trunk;protocol=http;path_spec=${MY_DIR}/proj1"
</literallayout>
</para>
</section>
<section id='git-fetcher'>
<title>Git Fetcher (<filename>git://</filename>)</title>
<para>
This fetcher submodule fetches code from the Git
source control system.
The fetcher works by creating a bare clone of the
remote into
<link linkend='var-bb-GITDIR'><filename>GITDIR</filename></link>,
which is usually <filename>DL_DIR/git2</filename>.
This bare clone is then cloned into the work directory during the
unpack stage when a specific tree is checked out.
This is done using alternates and by reference to
minimize the amount of duplicate data on the disk and
make the unpack process fast.
The executable used can be set with
<filename>FETCHCMD_git</filename>.
</para>
<para>
This fetcher supports the following parameters:
<itemizedlist>
<listitem><para><emphasis>"protocol":</emphasis>
The protocol used to fetch the files.
The default is "git" when a hostname is set.
If a hostname is not set, the Git protocol is "file".
You can also use "http", "https", "ssh" and "rsync".
</para></listitem>
<listitem><para><emphasis>"nocheckout":</emphasis>
Tells the fetcher to not checkout source code when
unpacking when set to "1".
Set this option for the URL where there is a custom
routine to checkout code.
The default is "0".
</para></listitem>
<listitem><para><emphasis>"rebaseable":</emphasis>
Indicates that the upstream Git repository can be rebased.
You should set this parameter to "1" if
revisions can become detached from branches.
In this case, the source mirror tarball is done per
revision, which has a loss of efficiency.
Rebasing the upstream Git repository could cause the
current revision to disappear from the upstream repository.
This option reminds the fetcher to preserve the local cache
carefully for future use.
The default value for this parameter is "0".
</para></listitem>
<listitem><para><emphasis>"nobranch":</emphasis>
Tells the fetcher to not check the SHA validation
for the branch when set to "1".
The default is "0".
Set this option for the recipe that refers to
the commit that is valid for a tag instead of
the branch.
</para></listitem>
<listitem><para><emphasis>"bareclone":</emphasis>
Tells the fetcher to clone a bare clone into the
destination directory without checking out a working tree.
Only the raw Git metadata is provided.
This parameter implies the "nocheckout" parameter as well.
</para></listitem>
<listitem><para><emphasis>"branch":</emphasis>
The branch(es) of the Git tree to clone.
If unset, this is assumed to be "master".
The number of branch parameters much match the number of
name parameters.
</para></listitem>
<listitem><para><emphasis>"rev":</emphasis>
The revision to use for the checkout.
The default is "master".
</para></listitem>
<listitem><para><emphasis>"tag":</emphasis>
Specifies a tag to use for the checkout.
To correctly resolve tags, BitBake must access the
network.
For that reason, tags are often not used.
As far as Git is concerned, the "tag" parameter behaves
effectively the same as the "rev" parameter.
</para></listitem>
<listitem><para><emphasis>"subpath":</emphasis>
Limits the checkout to a specific subpath of the tree.
By default, the whole tree is checked out.
</para></listitem>
<listitem><para><emphasis>"destsuffix":</emphasis>
The name of the path in which to place the checkout.
By default, the path is <filename>git/</filename>.
</para></listitem>
<listitem><para><emphasis>"usehead":</emphasis>
Enables local <filename>git://</filename> URLs to use the
current branch HEAD as the revision for use with
<filename>AUTOREV</filename>.
The "usehead" parameter implies no branch and only works
when the transfer protocol is
<filename>file://</filename>.
</para></listitem>
</itemizedlist>
Here are some example URLs:
<literallayout class='monospaced'>
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;tag=version-1"
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;protocol=http"
</literallayout>
</para>
</section>
<section id='gitsm-fetcher'>
<title>Git Submodule Fetcher (<filename>gitsm://</filename>)</title>
<para>
This fetcher submodule inherits from the
<link linkend='git-fetcher'>Git fetcher</link> and extends
that fetcher's behavior by fetching a repository's submodules.
<link linkend='var-bb-SRC_URI'><filename>SRC_URI</filename></link>
is passed to the Git fetcher as described in the
"<link linkend='git-fetcher'>Git Fetcher (<filename>git://</filename>)</link>"
section.
<note>
<title>Notes and Warnings</title>
<para>
You must clean a recipe when switching between
'<filename>git://</filename>' and
'<filename>gitsm://</filename>' URLs.
</para>
<para>
The Git Submodules fetcher is not a complete fetcher
implementation.
The fetcher has known issues where it does not use the
normal source mirroring infrastructure properly. Further,
the submodule sources it fetches are not visible to the
licensing and source archiving infrastructures.
</para>
</note>
</para>
</section>
<section id='clearcase-fetcher'>
<title>ClearCase Fetcher (<filename>ccrc://</filename>)</title>
<para>
This fetcher submodule fetches code from a
<ulink url='http://en.wikipedia.org/wiki/Rational_ClearCase'>ClearCase</ulink>
repository.
</para>
<para>
To use this fetcher, make sure your recipe has proper
<link linkend='var-bb-SRC_URI'><filename>SRC_URI</filename></link>,
<link linkend='var-bb-SRCREV'><filename>SRCREV</filename></link>, and
<link linkend='var-bb-PV'><filename>PV</filename></link> settings.
Here is an example:
<literallayout class='monospaced'>
SRC_URI = "ccrc://cc.example.org/ccrc;vob=/example_vob;module=/example_module"
SRCREV = "EXAMPLE_CLEARCASE_TAG"
PV = "${@d.getVar("SRCREV", False).replace("/", "+")}"
</literallayout>
The fetcher uses the <filename>rcleartool</filename> or
<filename>cleartool</filename> remote client, depending on
which one is available.
</para>
<para>
Following are options for the <filename>SRC_URI</filename>
statement:
<itemizedlist>
<listitem><para><emphasis><filename>vob</filename></emphasis>:
The name, which must include the
prepending "/" character, of the ClearCase VOB.
This option is required.
</para></listitem>
<listitem><para><emphasis><filename>module</filename></emphasis>:
The module, which must include the
prepending "/" character, in the selected VOB.
<note>
The <filename>module</filename> and <filename>vob</filename>
options are combined to create the <filename>load</filename> rule in
the view config spec.
As an example, consider the <filename>vob</filename> and
<filename>module</filename> values from the
<filename>SRC_URI</filename> statement at the start of this section.
Combining those values results in the following:
<literallayout class='monospaced'>
load /example_vob/example_module
</literallayout>
</note>
</para></listitem>
<listitem><para><emphasis><filename>proto</filename></emphasis>:
The protocol, which can be either <filename>http</filename> or
<filename>https</filename>.
</para></listitem>
</itemizedlist>
</para>
<para>
By default, the fetcher creates a configuration specification.
If you want this specification written to an area other than the default,
use the <filename>CCASE_CUSTOM_CONFIG_SPEC</filename> variable
in your recipe to define where the specification is written.
<note>
the <filename>SRCREV</filename> loses its functionality if you
specify this variable.
However, <filename>SRCREV</filename> is still used to label the
archive after a fetch even though it does not define what is
fetched.
</note>
</para>
<para>
Here are a couple of other behaviors worth mentioning:
<itemizedlist>
<listitem><para>
When using <filename>cleartool</filename>, the login of
<filename>cleartool</filename> is handled by the system.
The login require no special steps.
</para></listitem>
<listitem><para>
In order to use <filename>rcleartool</filename> with authenticated
users, an "rcleartool login" is necessary before using the fetcher.
</para></listitem>
</itemizedlist>
</para>
</section>
<section id='perforce-fetcher'>
<title>Perforce Fetcher (<filename>p4://</filename>)</title>
<para>
This fetcher submodule fetches code from the
<ulink url='https://www.perforce.com/'>Perforce</ulink>
source control system.
The executable used is specified by
<filename>FETCHCMD_p4</filename>, which defaults
to "p4".
The fetcher's temporary working directory is set by
<link linkend='var-bb-P4DIR'><filename>P4DIR</filename></link>,
which defaults to "DL_DIR/p4".
</para>
<para>
To use this fetcher, make sure your recipe has proper
<link linkend='var-bb-SRC_URI'><filename>SRC_URI</filename></link>,
<link linkend='var-bb-SRCREV'><filename>SRCREV</filename></link>, and
<link linkend='var-bb-PV'><filename>PV</filename></link> values.
The p4 executable is able to use the config file defined by your
system's <filename>P4CONFIG</filename> environment variable in
order to define the Perforce server URL and port, username, and
password if you do not wish to keep those values in a recipe
itself.
If you choose not to use <filename>P4CONFIG</filename>,
or to explicitly set variables that <filename>P4CONFIG</filename>
can contain, you can specify the <filename>P4PORT</filename> value,
which is the server's URL and port number, and you can
specify a username and password directly in your recipe within
<filename>SRC_URI</filename>.
</para>
<para>
Here is an example that relies on <filename>P4CONFIG</filename>
to specify the server URL and port, username, and password, and
fetches the Head Revision:
<literallayout class='monospaced'>
SRC_URI = "p4://example-depot/main/source/..."
SRCREV = "${AUTOREV}"
PV = "p4-${SRCPV}"
S = "${WORKDIR}/p4"
</literallayout>
</para>
<para>
Here is an example that specifies the server URL and port,
username, and password, and fetches a Revision based on a Label:
<literallayout class='monospaced'>
P4PORT = "tcp:p4server.example.net:1666"
SRC_URI = "p4://user:passwd@example-depot/main/source/..."
SRCREV = "release-1.0"
PV = "p4-${SRCPV}"
S = "${WORKDIR}/p4"
</literallayout>
<note>
You should always set <filename>S</filename>
to <filename>"${WORKDIR}/p4"</filename> in your recipe.
</note>
</para>
</section>
<section id='repo-fetcher'>
<title>Repo Fetcher (<filename>repo://</filename>)</title>
<para>
This fetcher submodule fetches code from
<filename>google-repo</filename> source control system.
The fetcher works by initiating and syncing sources of the
repository into
<link linkend='var-bb-REPODIR'><filename>REPODIR</filename></link>,
which is usually
<link linkend='var-bb-DL_DIR'><filename>DL_DIR</filename></link><filename>/repo</filename>.
</para>
<para>
This fetcher supports the following parameters:
<itemizedlist>
<listitem><para>
<emphasis>"protocol":</emphasis>
Protocol to fetch the repository manifest (default: git).
</para></listitem>
<listitem><para>
<emphasis>"branch":</emphasis>
Branch or tag of repository to get (default: master).
</para></listitem>
<listitem><para>
<emphasis>"manifest":</emphasis>
Name of the manifest file (default: <filename>default.xml</filename>).
</para></listitem>
</itemizedlist>
Here are some example URLs:
<literallayout class='monospaced'>
SRC_URI = "repo://REPOROOT;protocol=git;branch=some_branch;manifest=my_manifest.xml"
SRC_URI = "repo://REPOROOT;protocol=file;branch=some_branch;manifest=my_manifest.xml"
</literallayout>
</para>
</section>
<section id='other-fetchers'>
<title>Other Fetchers</title>
<para>
Fetch submodules also exist for the following:
<itemizedlist>
<listitem><para>
Bazaar (<filename>bzr://</filename>)
</para></listitem>
<listitem><para>
Mercurial (<filename>hg://</filename>)
</para></listitem>
<listitem><para>
npm (<filename>npm://</filename>)
</para></listitem>
<listitem><para>
OSC (<filename>osc://</filename>)
</para></listitem>
<listitem><para>
Secure FTP (<filename>sftp://</filename>)
</para></listitem>
<listitem><para>
Secure Shell (<filename>ssh://</filename>)
</para></listitem>
<listitem><para>
Trees using Git Annex (<filename>gitannex://</filename>)
</para></listitem>
</itemizedlist>
No documentation currently exists for these lesser used
fetcher submodules.
However, you might find the code helpful and readable.
</para>
</section>
</section>
<section id='auto-revisions'>
<title>Auto Revisions</title>
<para>
We need to document <filename>AUTOREV</filename> and
<filename>SRCREV_FORMAT</filename> here.
</para>
</section>
</chapter>

View File

@@ -1,415 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
===================
Hello World Example
===================
BitBake Hello World
===================
The simplest example commonly used to demonstrate any new programming
language or tool is the "`Hello
World <http://en.wikipedia.org/wiki/Hello_world_program>`__" example.
This appendix demonstrates, in tutorial form, Hello World within the
context of BitBake. The tutorial describes how to create a new project
and the applicable metadata files necessary to allow BitBake to build
it.
Obtaining BitBake
=================
See the :ref:`bitbake-user-manual/bitbake-user-manual-hello:obtaining bitbake` section for
information on how to obtain BitBake. Once you have the source code on
your machine, the BitBake directory appears as follows: ::
$ ls -al
total 100
drwxrwxr-x. 9 wmat wmat 4096 Jan 31 13:44 .
drwxrwxr-x. 3 wmat wmat 4096 Feb 4 10:45 ..
-rw-rw-r--. 1 wmat wmat 365 Nov 26 04:55 AUTHORS
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 bin
drwxrwxr-x. 4 wmat wmat 4096 Jan 31 13:44 build
-rw-rw-r--. 1 wmat wmat 16501 Nov 26 04:55 ChangeLog
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 classes
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 conf
drwxrwxr-x. 3 wmat wmat 4096 Nov 26 04:55 contrib
-rw-rw-r--. 1 wmat wmat 17987 Nov 26 04:55 COPYING
drwxrwxr-x. 3 wmat wmat 4096 Nov 26 04:55 doc
-rw-rw-r--. 1 wmat wmat 69 Nov 26 04:55 .gitignore
-rw-rw-r--. 1 wmat wmat 849 Nov 26 04:55 HEADER
drwxrwxr-x. 5 wmat wmat 4096 Jan 31 13:44 lib
-rw-rw-r--. 1 wmat wmat 195 Nov 26 04:55 MANIFEST.in
-rw-rw-r--. 1 wmat wmat 2887 Nov 26 04:55 TODO
At this point, you should have BitBake cloned to a directory that
matches the previous listing except for dates and user names.
Setting Up the BitBake Environment
==================================
First, you need to be sure that you can run BitBake. Set your working
directory to where your local BitBake files are and run the following
command: ::
$ ./bin/bitbake --version
BitBake Build Tool Core version 1.23.0, bitbake version 1.23.0
The console output tells you what version
you are running.
The recommended method to run BitBake is from a directory of your
choice. To be able to run BitBake from any directory, you need to add
the executable binary to your binary to your shell's environment
``PATH`` variable. First, look at your current ``PATH`` variable by
entering the following: ::
$ echo $PATH
Next, add the directory location
for the BitBake binary to the ``PATH``. Here is an example that adds the
``/home/scott-lenovo/bitbake/bin`` directory to the front of the
``PATH`` variable: ::
$ export PATH=/home/scott-lenovo/bitbake/bin:$PATH
You should now be able to enter the ``bitbake`` command from the command
line while working from any directory.
The Hello World Example
=======================
The overall goal of this exercise is to build a complete "Hello World"
example utilizing task and layer concepts. Because this is how modern
projects such as OpenEmbedded and the Yocto Project utilize BitBake, the
example provides an excellent starting point for understanding BitBake.
To help you understand how to use BitBake to build targets, the example
starts with nothing but the ``bitbake`` command, which causes BitBake to
fail and report problems. The example progresses by adding pieces to the
build to eventually conclude with a working, minimal "Hello World"
example.
While every attempt is made to explain what is happening during the
example, the descriptions cannot cover everything. You can find further
information throughout this manual. Also, you can actively participate
in the :oe_lists:`/g/bitbake-devel`
discussion mailing list about the BitBake build tool.
.. note::
This example was inspired by and drew heavily from
`Mailing List post - The BitBake equivalent of "Hello, World!"
<http://www.mail-archive.com/yocto@yoctoproject.org/msg09379.html>`_.
As stated earlier, the goal of this example is to eventually compile
"Hello World". However, it is unknown what BitBake needs and what you
have to provide in order to achieve that goal. Recall that BitBake
utilizes three types of metadata files:
:ref:`bitbake-user-manual/bitbake-user-manual-intro:configuration files`,
:ref:`bitbake-user-manual/bitbake-user-manual-intro:classes`, and
:ref:`bitbake-user-manual/bitbake-user-manual-intro:recipes`.
But where do they go? How does BitBake find
them? BitBake's error messaging helps you answer these types of
questions and helps you better understand exactly what is going on.
Following is the complete "Hello World" example.
#. **Create a Project Directory:** First, set up a directory for the
"Hello World" project. Here is how you can do so in your home
directory: ::
$ mkdir ~/hello
$ cd ~/hello
This is the directory that
BitBake will use to do all of its work. You can use this directory
to keep all the metafiles needed by BitBake. Having a project
directory is a good way to isolate your project.
#. **Run BitBake:** At this point, you have nothing but a project
directory. Run the ``bitbake`` command and see what it does: ::
$ bitbake
The BBPATH variable is not set and bitbake did not
find a conf/bblayers.conf file in the expected location.
Maybe you accidentally invoked bitbake from the wrong directory?
DEBUG: Removed the following variables from the environment:
GNOME_DESKTOP_SESSION_ID, XDG_CURRENT_DESKTOP,
GNOME_KEYRING_CONTROL, DISPLAY, SSH_AGENT_PID, LANG, no_proxy,
XDG_SESSION_PATH, XAUTHORITY, SESSION_MANAGER, SHLVL,
MANDATORY_PATH, COMPIZ_CONFIG_PROFILE, WINDOWID, EDITOR,
GPG_AGENT_INFO, SSH_AUTH_SOCK, GDMSESSION, GNOME_KEYRING_PID,
XDG_SEAT_PATH, XDG_CONFIG_DIRS, LESSOPEN, DBUS_SESSION_BUS_ADDRESS,
_, XDG_SESSION_COOKIE, DESKTOP_SESSION, LESSCLOSE, DEFAULTS_PATH,
UBUNTU_MENUPROXY, OLDPWD, XDG_DATA_DIRS, COLORTERM, LS_COLORS
The majority of this output is specific to environment variables that
are not directly relevant to BitBake. However, the very first
message regarding the ``BBPATH`` variable and the
``conf/bblayers.conf`` file is relevant.
When you run BitBake, it begins looking for metadata files. The
:term:`BBPATH` variable is what tells BitBake where
to look for those files. ``BBPATH`` is not set and you need to set
it. Without ``BBPATH``, BitBake cannot find any configuration files
(``.conf``) or recipe files (``.bb``) at all. BitBake also cannot
find the ``bitbake.conf`` file.
#. **Setting BBPATH:** For this example, you can set ``BBPATH`` in
the same manner that you set ``PATH`` earlier in the appendix. You
should realize, though, that it is much more flexible to set the
``BBPATH`` variable up in a configuration file for each project.
From your shell, enter the following commands to set and export the
``BBPATH`` variable: ::
$ BBPATH="projectdirectory"
$ export BBPATH
Use your actual project directory in the command. BitBake uses that
directory to find the metadata it needs for your project.
.. note::
When specifying your project directory, do not use the tilde
("~") character as BitBake does not expand that character as the
shell would.
#. **Run BitBake:** Now that you have ``BBPATH`` defined, run the
``bitbake`` command again: ::
$ bitbake
ERROR: Traceback (most recent call last):
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 163, in wrapped
return func(fn, *args)
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 173, in parse_config_file
return bb.parse.handle(fn, data, include)
File "/home/scott-lenovo/bitbake/lib/bb/parse/__init__.py", line 99, in handle
return h['handle'](fn, data, include)
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 120, in handle
abs_fn = resolve_file(fn, data)
File "/home/scott-lenovo/bitbake/lib/bb/parse/__init__.py", line 117, in resolve_file
raise IOError("file %s not found in %s" % (fn, bbpath))
IOError: file conf/bitbake.conf not found in /home/scott-lenovo/hello
ERROR: Unable to parse conf/bitbake.conf: file conf/bitbake.conf not found in /home/scott-lenovo/hello
This sample output shows that BitBake could not find the
``conf/bitbake.conf`` file in the project directory. This file is
the first thing BitBake must find in order to build a target. And,
since the project directory for this example is empty, you need to
provide a ``conf/bitbake.conf`` file.
#. **Creating conf/bitbake.conf:** The ``conf/bitbake.conf`` includes
a number of configuration variables BitBake uses for metadata and
recipe files. For this example, you need to create the file in your
project directory and define some key BitBake variables. For more
information on the ``bitbake.conf`` file, see
http://git.openembedded.org/bitbake/tree/conf/bitbake.conf.
Use the following commands to create the ``conf`` directory in the
project directory: ::
$ mkdir conf
From within the ``conf`` directory,
use some editor to create the ``bitbake.conf`` so that it contains
the following: ::
PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
TMPDIR = "${TOPDIR}/tmp"
CACHE = "${TMPDIR}/cache"
STAMP = "${TMPDIR}/${PN}/stamps"
T = "${TMPDIR}/${PN}/work"
B = "${TMPDIR}/${PN}"
.. note::
Without a value for PN , the variables STAMP , T , and B , prevent more
than one recipe from working. You can fix this by either setting PN to
have a value similar to what OpenEmbedded and BitBake use in the default
bitbake.conf file (see previous example). Or, by manually updating each
recipe to set PN . You will also need to include PN as part of the STAMP
, T , and B variable definitions in the local.conf file.
The ``TMPDIR`` variable establishes a directory that BitBake uses
for build output and intermediate files other than the cached
information used by the
:ref:`bitbake-user-manual/bitbake-user-manual-execution:setscene`
process. Here, the ``TMPDIR`` directory is set to ``hello/tmp``.
.. tip::
You can always safely delete the tmp directory in order to rebuild a
BitBake target. The build process creates the directory for you when you
run BitBake.
For information about each of the other variables defined in this
example, check :term:`PN`, :term:`TOPDIR`, :term:`CACHE`, :term:`STAMP`,
:term:`T` or :term:`B` to take you to the definitions in the
glossary.
#. **Run BitBake:** After making sure that the ``conf/bitbake.conf`` file
exists, you can run the ``bitbake`` command again: ::
$ bitbake
ERROR: Traceback (most recent call last):
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 163, in wrapped
return func(fn, *args)
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 177, in _inherit
bb.parse.BBHandler.inherit(bbclass, "configuration INHERITs", 0, data)
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/BBHandler.py", line 92, in inherit
include(fn, file, lineno, d, "inherit")
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 100, in include
raise ParseError("Could not %(error_out)s file %(fn)s" % vars(), oldfn, lineno)
ParseError: ParseError in configuration INHERITs: Could not inherit file classes/base.bbclass
ERROR: Unable to parse base: ParseError in configuration INHERITs: Could not inherit file classes/base.bbclass
In the sample output,
BitBake could not find the ``classes/base.bbclass`` file. You need
to create that file next.
#. **Creating classes/base.bbclass:** BitBake uses class files to
provide common code and functionality. The minimally required class
for BitBake is the ``classes/base.bbclass`` file. The ``base`` class
is implicitly inherited by every recipe. BitBake looks for the class
in the ``classes`` directory of the project (i.e ``hello/classes``
in this example).
Create the ``classes`` directory as follows: ::
$ cd $HOME/hello
$ mkdir classes
Move to the ``classes`` directory and then create the
``base.bbclass`` file by inserting this single line: addtask build
The minimal task that BitBake runs is the ``do_build`` task. This is
all the example needs in order to build the project. Of course, the
``base.bbclass`` can have much more depending on which build
environments BitBake is supporting.
#. **Run BitBake:** After making sure that the ``classes/base.bbclass``
file exists, you can run the ``bitbake`` command again: ::
$ bitbake
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.
BitBake is finally reporting
no errors. However, you can see that it really does not have
anything to do. You need to create a recipe that gives BitBake
something to do.
#. **Creating a Layer:** While it is not really necessary for such a
small example, it is good practice to create a layer in which to
keep your code separate from the general metadata used by BitBake.
Thus, this example creates and uses a layer called "mylayer".
.. note::
You can find additional information on layers in the
":ref:`bitbake-user-manual/bitbake-user-manual-intro:Layers`" section.
Minimally, you need a recipe file and a layer configuration file in
your layer. The configuration file needs to be in the ``conf``
directory inside the layer. Use these commands to set up the layer
and the ``conf`` directory: ::
$ cd $HOME
$ mkdir mylayer
$ cd mylayer
$ mkdir conf
Move to the ``conf`` directory and create a ``layer.conf`` file that has the
following: ::
BBPATH .= ":${LAYERDIR}"
BBFILES += "${LAYERDIR}/\*.bb"
BBFILE_COLLECTIONS += "mylayer"
`BBFILE_PATTERN_mylayer := "^${LAYERDIR_RE}/"
For information on these variables, click on :term:`BBFILES`,
:term:`LAYERDIR`, :term:`BBFILE_COLLECTIONS` or :term:`BBFILE_PATTERN_mylayer <BBFILE_PATTERN>`
to go to the definitions in the glossary.
You need to create the recipe file next. Inside your layer at the
top-level, use an editor and create a recipe file named
``printhello.bb`` that has the following: ::
DESCRIPTION = "Prints Hello World"
PN = 'printhello'
PV = '1'
python do_build() {
bb.plain("********************");
bb.plain("* *");
bb.plain("* Hello, World! *");
bb.plain("* *");
bb.plain("********************");
}
The recipe file simply provides
a description of the recipe, the name, version, and the ``do_build``
task, which prints out "Hello World" to the console. For more
information on :term:`DESCRIPTION`, :term:`PN` or :term:`PV`
follow the links to the glossary.
#. **Run BitBake With a Target:** Now that a BitBake target exists, run
the command and provide that target: ::
$ cd $HOME/hello
$ bitbake printhello
ERROR: no recipe files to build, check your BBPATH and BBFILES?
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
We have created the layer with the recipe and
the layer configuration file but it still seems that BitBake cannot
find the recipe. BitBake needs a ``conf/bblayers.conf`` that lists
the layers for the project. Without this file, BitBake cannot find
the recipe.
#. **Creating conf/bblayers.conf:** BitBake uses the
``conf/bblayers.conf`` file to locate layers needed for the project.
This file must reside in the ``conf`` directory of the project (i.e.
``hello/conf`` for this example).
Set your working directory to the ``hello/conf`` directory and then
create the ``bblayers.conf`` file so that it contains the following: ::
BBLAYERS ?= " \
/home/<you>/mylayer \
"
You need to provide your own information for ``you`` in the file.
#. **Run BitBake With a Target:** Now that you have supplied the
``bblayers.conf`` file, run the ``bitbake`` command and provide the
target: ::
$ bitbake printhello
Parsing recipes: 100% |##################################################################################|
Time: 00:00:00
Parsing of 1 .bb files complete (0 cached, 1 parsed). 1 targets, 0 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
NOTE: Preparing RunQueue
NOTE: Executing RunQueue Tasks
********************
* *
* Hello, World! *
* *
********************
NOTE: Tasks Summary: Attempted 1 tasks of which 0 didn't need to be rerun and all succeeded.
.. note::
After the first execution, re-running bitbake printhello again will not
result in a BitBake run that prints the same console output. The reason
for this is that the first time the printhello.bb recipe's do_build task
executes successfully, BitBake writes a stamp file for the task. Thus,
the next time you attempt to run the task using that same bitbake
command, BitBake notices the stamp and therefore determines that the task
does not need to be re-run. If you delete the tmp directory or run
bitbake -c clean printhello and then re-run the build, the "Hello,
World!" message will be printed again.

View File

@@ -0,0 +1,513 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<appendix id='hello-world-example'>
<title>Hello World Example</title>
<section id='bitbake-hello-world'>
<title>BitBake Hello World</title>
<para>
The simplest example commonly used to demonstrate any new
programming language or tool is the
"<ulink url="http://en.wikipedia.org/wiki/Hello_world_program">Hello World</ulink>"
example.
This appendix demonstrates, in tutorial form, Hello
World within the context of BitBake.
The tutorial describes how to create a new project
and the applicable metadata files necessary to allow
BitBake to build it.
</para>
</section>
<section id='example-obtaining-bitbake'>
<title>Obtaining BitBake</title>
<para>
See the
"<link linkend='obtaining-bitbake'>Obtaining BitBake</link>"
section for information on how to obtain BitBake.
Once you have the source code on your machine, the BitBake directory
appears as follows:
<literallayout class='monospaced'>
$ ls -al
total 100
drwxrwxr-x. 9 wmat wmat 4096 Jan 31 13:44 .
drwxrwxr-x. 3 wmat wmat 4096 Feb 4 10:45 ..
-rw-rw-r--. 1 wmat wmat 365 Nov 26 04:55 AUTHORS
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 bin
drwxrwxr-x. 4 wmat wmat 4096 Jan 31 13:44 build
-rw-rw-r--. 1 wmat wmat 16501 Nov 26 04:55 ChangeLog
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 classes
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 conf
drwxrwxr-x. 3 wmat wmat 4096 Nov 26 04:55 contrib
-rw-rw-r--. 1 wmat wmat 17987 Nov 26 04:55 COPYING
drwxrwxr-x. 3 wmat wmat 4096 Nov 26 04:55 doc
-rw-rw-r--. 1 wmat wmat 69 Nov 26 04:55 .gitignore
-rw-rw-r--. 1 wmat wmat 849 Nov 26 04:55 HEADER
drwxrwxr-x. 5 wmat wmat 4096 Jan 31 13:44 lib
-rw-rw-r--. 1 wmat wmat 195 Nov 26 04:55 MANIFEST.in
-rw-rw-r--. 1 wmat wmat 2887 Nov 26 04:55 TODO
</literallayout>
</para>
<para>
At this point, you should have BitBake cloned to
a directory that matches the previous listing except for
dates and user names.
</para>
</section>
<section id='setting-up-the-bitbake-environment'>
<title>Setting Up the BitBake Environment</title>
<para>
First, you need to be sure that you can run BitBake.
Set your working directory to where your local BitBake
files are and run the following command:
<literallayout class='monospaced'>
$ ./bin/bitbake --version
BitBake Build Tool Core version 1.23.0, bitbake version 1.23.0
</literallayout>
The console output tells you what version you are running.
</para>
<para>
The recommended method to run BitBake is from a directory of your
choice.
To be able to run BitBake from any directory, you need to add the
executable binary to your binary to your shell's environment
<filename>PATH</filename> variable.
First, look at your current <filename>PATH</filename> variable
by entering the following:
<literallayout class='monospaced'>
$ echo $PATH
</literallayout>
Next, add the directory location for the BitBake binary to the
<filename>PATH</filename>.
Here is an example that adds the
<filename>/home/scott-lenovo/bitbake/bin</filename> directory
to the front of the <filename>PATH</filename> variable:
<literallayout class='monospaced'>
$ export PATH=/home/scott-lenovo/bitbake/bin:$PATH
</literallayout>
You should now be able to enter the <filename>bitbake</filename>
command from the command line while working from any directory.
</para>
</section>
<section id='the-hello-world-example'>
<title>The Hello World Example</title>
<para>
The overall goal of this exercise is to build a
complete "Hello World" example utilizing task and layer
concepts.
Because this is how modern projects such as OpenEmbedded and
the Yocto Project utilize BitBake, the example
provides an excellent starting point for understanding
BitBake.
</para>
<para>
To help you understand how to use BitBake to build targets,
the example starts with nothing but the <filename>bitbake</filename>
command, which causes BitBake to fail and report problems.
The example progresses by adding pieces to the build to
eventually conclude with a working, minimal "Hello World"
example.
</para>
<para>
While every attempt is made to explain what is happening during
the example, the descriptions cannot cover everything.
You can find further information throughout this manual.
Also, you can actively participate in the
<ulink url='http://lists.openembedded.org/mailman/listinfo/bitbake-devel'></ulink>
discussion mailing list about the BitBake build tool.
</para>
<note>
This example was inspired by and drew heavily from
<ulink url="http://www.mail-archive.com/yocto@yoctoproject.org/msg09379.html">Mailing List post - The BitBake equivalent of "Hello, World!"</ulink>.
</note>
<para>
As stated earlier, the goal of this example
is to eventually compile "Hello World".
However, it is unknown what BitBake needs and what you have
to provide in order to achieve that goal.
Recall that BitBake utilizes three types of metadata files:
<link linkend='configuration-files'>Configuration Files</link>,
<link linkend='classes'>Classes</link>, and
<link linkend='recipes'>Recipes</link>.
But where do they go?
How does BitBake find them?
BitBake's error messaging helps you answer these types of questions
and helps you better understand exactly what is going on.
</para>
<para>
Following is the complete "Hello World" example.
</para>
<orderedlist>
<listitem><para><emphasis>Create a Project Directory:</emphasis>
First, set up a directory for the "Hello World" project.
Here is how you can do so in your home directory:
<literallayout class='monospaced'>
$ mkdir ~/hello
$ cd ~/hello
</literallayout>
This is the directory that BitBake will use to do all of
its work.
You can use this directory to keep all the metafiles needed
by BitBake.
Having a project directory is a good way to isolate your
project.
</para></listitem>
<listitem><para><emphasis>Run Bitbake:</emphasis>
At this point, you have nothing but a project directory.
Run the <filename>bitbake</filename> command and see what
it does:
<literallayout class='monospaced'>
$ bitbake
The BBPATH variable is not set and bitbake did not
find a conf/bblayers.conf file in the expected location.
Maybe you accidentally invoked bitbake from the wrong directory?
DEBUG: Removed the following variables from the environment:
GNOME_DESKTOP_SESSION_ID, XDG_CURRENT_DESKTOP,
GNOME_KEYRING_CONTROL, DISPLAY, SSH_AGENT_PID, LANG, no_proxy,
XDG_SESSION_PATH, XAUTHORITY, SESSION_MANAGER, SHLVL,
MANDATORY_PATH, COMPIZ_CONFIG_PROFILE, WINDOWID, EDITOR,
GPG_AGENT_INFO, SSH_AUTH_SOCK, GDMSESSION, GNOME_KEYRING_PID,
XDG_SEAT_PATH, XDG_CONFIG_DIRS, LESSOPEN, DBUS_SESSION_BUS_ADDRESS,
_, XDG_SESSION_COOKIE, DESKTOP_SESSION, LESSCLOSE, DEFAULTS_PATH,
UBUNTU_MENUPROXY, OLDPWD, XDG_DATA_DIRS, COLORTERM, LS_COLORS
</literallayout>
The majority of this output is specific to environment variables
that are not directly relevant to BitBake.
However, the very first message regarding the
<filename>BBPATH</filename> variable and the
<filename>conf/bblayers.conf</filename> file
is relevant.</para>
<para>
When you run BitBake, it begins looking for metadata files.
The
<link linkend='var-bb-BBPATH'><filename>BBPATH</filename></link>
variable is what tells BitBake where to look for those files.
<filename>BBPATH</filename> is not set and you need to set it.
Without <filename>BBPATH</filename>, Bitbake cannot
find any configuration files (<filename>.conf</filename>)
or recipe files (<filename>.bb</filename>) at all.
BitBake also cannot find the <filename>bitbake.conf</filename>
file.
</para></listitem>
<listitem><para><emphasis>Setting <filename>BBPATH</filename>:</emphasis>
For this example, you can set <filename>BBPATH</filename>
in the same manner that you set <filename>PATH</filename>
earlier in the appendix.
You should realize, though, that it is much more flexible to set the
<filename>BBPATH</filename> variable up in a configuration
file for each project.</para>
<para>From your shell, enter the following commands to set and
export the <filename>BBPATH</filename> variable:
<literallayout class='monospaced'>
$ BBPATH="<replaceable>projectdirectory</replaceable>"
$ export BBPATH
</literallayout>
Use your actual project directory in the command.
BitBake uses that directory to find the metadata it needs for
your project.
<note>
When specifying your project directory, do not use the
tilde ("~") character as BitBake does not expand that character
as the shell would.
</note>
</para></listitem>
<listitem><para><emphasis>Run Bitbake:</emphasis>
Now that you have <filename>BBPATH</filename> defined, run
the <filename>bitbake</filename> command again:
<literallayout class='monospaced'>
$ bitbake
ERROR: Traceback (most recent call last):
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 163, in wrapped
return func(fn, *args)
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 173, in parse_config_file
return bb.parse.handle(fn, data, include)
File "/home/scott-lenovo/bitbake/lib/bb/parse/__init__.py", line 99, in handle
return h['handle'](fn, data, include)
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 120, in handle
abs_fn = resolve_file(fn, data)
File "/home/scott-lenovo/bitbake/lib/bb/parse/__init__.py", line 117, in resolve_file
raise IOError("file %s not found in %s" % (fn, bbpath))
IOError: file conf/bitbake.conf not found in /home/scott-lenovo/hello
ERROR: Unable to parse conf/bitbake.conf: file conf/bitbake.conf not found in /home/scott-lenovo/hello
</literallayout>
This sample output shows that BitBake could not find the
<filename>conf/bitbake.conf</filename> file in the project
directory.
This file is the first thing BitBake must find in order
to build a target.
And, since the project directory for this example is
empty, you need to provide a <filename>conf/bitbake.conf</filename>
file.
</para></listitem>
<listitem><para><emphasis>Creating <filename>conf/bitbake.conf</filename>:</emphasis>
The <filename>conf/bitbake.conf</filename> includes a number of
configuration variables BitBake uses for metadata and recipe
files.
For this example, you need to create the file in your project directory
and define some key BitBake variables.
For more information on the <filename>bitbake.conf</filename> file,
see
<ulink url='http://git.openembedded.org/bitbake/tree/conf/bitbake.conf'></ulink>.
</para>
<para>Use the following commands to create the <filename>conf</filename>
directory in the project directory:
<literallayout class='monospaced'>
$ mkdir conf
</literallayout>
From within the <filename>conf</filename> directory, use
some editor to create the <filename>bitbake.conf</filename>
so that it contains the following:
<literallayout class='monospaced'>
<link linkend='var-bb-PN'>PN</link> = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
</literallayout>
<literallayout class='monospaced'>
TMPDIR = "${<link linkend='var-bb-TOPDIR'>TOPDIR</link>}/tmp"
<link linkend='var-bb-CACHE'>CACHE</link> = "${TMPDIR}/cache"
<link linkend='var-bb-STAMP'>STAMP</link> = "${TMPDIR}/${PN}/stamps"
<link linkend='var-bb-T'>T</link> = "${TMPDIR}/${PN}/work"
<link linkend='var-bb-B'>B</link> = "${TMPDIR}/${PN}"
</literallayout>
<note>
Without a value for <filename>PN</filename>, the
variables <filename>STAMP</filename>,
<filename>T</filename>, and <filename>B</filename>,
prevent more than one recipe from working. You can fix
this by either setting <filename>PN</filename> to have
a value similar to what OpenEmbedded and BitBake use
in the default <filename>bitbake.conf</filename> file
(see previous example). Or, by manually updating each
recipe to set <filename>PN</filename>. You will also
need to include <filename>PN</filename> as part of the
<filename>STAMP</filename>, <filename>T</filename>, and
<filename>B</filename> variable definitions in the
<filename>local.conf</filename> file.
</note>
The <filename>TMPDIR</filename> variable establishes a directory
that BitBake uses for build output and intermediate files other
than the cached information used by the
<link linkend='setscene'>Setscene</link> process.
Here, the <filename>TMPDIR</filename> directory is set to
<filename>hello/tmp</filename>.
<note><title>Tip</title>
You can always safely delete the <filename>tmp</filename>
directory in order to rebuild a BitBake target.
The build process creates the directory for you
when you run BitBake.
</note></para>
<para>For information about each of the other variables defined in this
example, click on the links to take you to the definitions in
the glossary.
</para></listitem>
<listitem><para><emphasis>Run Bitbake:</emphasis>
After making sure that the <filename>conf/bitbake.conf</filename>
file exists, you can run the <filename>bitbake</filename>
command again:
<literallayout class='monospaced'>
$ bitbake
ERROR: Traceback (most recent call last):
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 163, in wrapped
return func(fn, *args)
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 177, in _inherit
bb.parse.BBHandler.inherit(bbclass, "configuration INHERITs", 0, data)
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/BBHandler.py", line 92, in inherit
include(fn, file, lineno, d, "inherit")
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 100, in include
raise ParseError("Could not %(error_out)s file %(fn)s" % vars(), oldfn, lineno)
ParseError: ParseError in configuration INHERITs: Could not inherit file classes/base.bbclass
ERROR: Unable to parse base: ParseError in configuration INHERITs: Could not inherit file classes/base.bbclass
</literallayout>
In the sample output, BitBake could not find the
<filename>classes/base.bbclass</filename> file.
You need to create that file next.
</para></listitem>
<listitem><para><emphasis>Creating <filename>classes/base.bbclass</filename>:</emphasis>
BitBake uses class files to provide common code and functionality.
The minimally required class for BitBake is the
<filename>classes/base.bbclass</filename> file.
The <filename>base</filename> class is implicitly inherited by
every recipe.
BitBake looks for the class in the <filename>classes</filename>
directory of the project (i.e <filename>hello/classes</filename>
in this example).
</para>
<para>Create the <filename>classes</filename> directory as follows:
<literallayout class='monospaced'>
$ cd $HOME/hello
$ mkdir classes
</literallayout>
Move to the <filename>classes</filename> directory and then
create the <filename>base.bbclass</filename> file by inserting
this single line:
<literallayout class='monospaced'>
addtask build
</literallayout>
The minimal task that BitBake runs is the
<filename>do_build</filename> task.
This is all the example needs in order to build the project.
Of course, the <filename>base.bbclass</filename> can have much
more depending on which build environments BitBake is
supporting.
</para></listitem>
<listitem><para><emphasis>Run Bitbake:</emphasis>
After making sure that the <filename>classes/base.bbclass</filename>
file exists, you can run the <filename>bitbake</filename>
command again:
<literallayout class='monospaced'>
$ bitbake
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.
</literallayout>
BitBake is finally reporting no errors.
However, you can see that it really does not have anything
to do.
You need to create a recipe that gives BitBake something to do.
</para></listitem>
<listitem><para><emphasis>Creating a Layer:</emphasis>
While it is not really necessary for such a small example,
it is good practice to create a layer in which to keep your
code separate from the general metadata used by BitBake.
Thus, this example creates and uses a layer called "mylayer".
<note>
You can find additional information on layers in the
"<link linkend='layers'>Layers</link>" section.
</note></para>
<para>Minimally, you need a recipe file and a layer configuration
file in your layer.
The configuration file needs to be in the <filename>conf</filename>
directory inside the layer.
Use these commands to set up the layer and the <filename>conf</filename>
directory:
<literallayout class='monospaced'>
$ cd $HOME
$ mkdir mylayer
$ cd mylayer
$ mkdir conf
</literallayout>
Move to the <filename>conf</filename> directory and create a
<filename>layer.conf</filename> file that has the following:
<literallayout class='monospaced'>
BBPATH .= ":${<link linkend='var-bb-LAYERDIR'>LAYERDIR</link>}"
<link linkend='var-bb-BBFILES'>BBFILES</link> += "${LAYERDIR}/*.bb"
<link linkend='var-bb-BBFILE_COLLECTIONS'>BBFILE_COLLECTIONS</link> += "mylayer"
<link linkend='var-bb-BBFILE_PATTERN'>BBFILE_PATTERN_mylayer</link> := "^${LAYERDIR_RE}/"
</literallayout>
For information on these variables, click the links
to go to the definitions in the glossary.</para>
<para>You need to create the recipe file next.
Inside your layer at the top-level, use an editor and create
a recipe file named <filename>printhello.bb</filename> that
has the following:
<literallayout class='monospaced'>
<link linkend='var-bb-DESCRIPTION'>DESCRIPTION</link> = "Prints Hello World"
<link linkend='var-bb-PN'>PN</link> = 'printhello'
<link linkend='var-bb-PV'>PV</link> = '1'
python do_build() {
bb.plain("********************");
bb.plain("* *");
bb.plain("* Hello, World! *");
bb.plain("* *");
bb.plain("********************");
}
</literallayout>
The recipe file simply provides a description of the
recipe, the name, version, and the <filename>do_build</filename>
task, which prints out "Hello World" to the console.
For more information on these variables, follow the links
to the glossary.
</para></listitem>
<listitem><para><emphasis>Run Bitbake With a Target:</emphasis>
Now that a BitBake target exists, run the command and provide
that target:
<literallayout class='monospaced'>
$ cd $HOME/hello
$ bitbake printhello
ERROR: no recipe files to build, check your BBPATH and BBFILES?
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
</literallayout>
We have created the layer with the recipe and the layer
configuration file but it still seems that BitBake cannot
find the recipe.
BitBake needs a <filename>conf/bblayers.conf</filename> that
lists the layers for the project.
Without this file, BitBake cannot find the recipe.
</para></listitem>
<listitem><para><emphasis>Creating <filename>conf/bblayers.conf</filename>:</emphasis>
BitBake uses the <filename>conf/bblayers.conf</filename> file
to locate layers needed for the project.
This file must reside in the <filename>conf</filename> directory
of the project (i.e. <filename>hello/conf</filename> for this
example).</para>
<para>Set your working directory to the <filename>hello/conf</filename>
directory and then create the <filename>bblayers.conf</filename>
file so that it contains the following:
<literallayout class='monospaced'>
BBLAYERS ?= " \
/home/&lt;you&gt;/mylayer \
"
</literallayout>
You need to provide your own information for
<filename>you</filename> in the file.
</para></listitem>
<listitem><para><emphasis>Run Bitbake With a Target:</emphasis>
Now that you have supplied the <filename>bblayers.conf</filename>
file, run the <filename>bitbake</filename> command and provide
the target:
<literallayout class='monospaced'>
$ bitbake printhello
Parsing recipes: 100% |##################################################################################|
Time: 00:00:00
Parsing of 1 .bb files complete (0 cached, 1 parsed). 1 targets, 0 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
NOTE: Preparing RunQueue
NOTE: Executing RunQueue Tasks
********************
* *
* Hello, World! *
* *
********************
NOTE: Tasks Summary: Attempted 1 tasks of which 0 didn't need to be rerun and all succeeded.
</literallayout>
BitBake finds the <filename>printhello</filename> recipe and
successfully runs the task.
<note>
After the first execution, re-running
<filename>bitbake printhello</filename> again will not
result in a BitBake run that prints the same console
output.
The reason for this is that the first time the
<filename>printhello.bb</filename> recipe's
<filename>do_build</filename> task executes
successfully, BitBake writes a stamp file for the task.
Thus, the next time you attempt to run the task
using that same <filename>bitbake</filename> command,
BitBake notices the stamp and therefore determines
that the task does not need to be re-run.
If you delete the <filename>tmp</filename> directory
or run <filename>bitbake -c clean printhello</filename>
and then re-run the build, the "Hello, World!" message will
be printed again.
</note>
</para></listitem>
</orderedlist>
</section>
</appendix>

View File

@@ -1,651 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
========
Overview
========
|
Welcome to the BitBake User Manual. This manual provides information on
the BitBake tool. The information attempts to be as independent as
possible regarding systems that use BitBake, such as OpenEmbedded and
the Yocto Project. In some cases, scenarios or examples within the
context of a build system are used in the manual to help with
understanding. For these cases, the manual clearly states the context.
.. _intro:
Introduction
============
Fundamentally, BitBake is a generic task execution engine that allows
shell and Python tasks to be run efficiently and in parallel while
working within complex inter-task dependency constraints. One of
BitBake's main users, OpenEmbedded, takes this core and builds embedded
Linux software stacks using a task-oriented approach.
Conceptually, BitBake is similar to GNU Make in some regards but has
significant differences:
- BitBake executes tasks according to provided metadata that builds up
the tasks. Metadata is stored in recipe (``.bb``) and related recipe
"append" (``.bbappend``) files, configuration (``.conf``) and
underlying include (``.inc``) files, and in class (``.bbclass``)
files. The metadata provides BitBake with instructions on what tasks
to run and the dependencies between those tasks.
- BitBake includes a fetcher library for obtaining source code from
various places such as local files, source control systems, or
websites.
- The instructions for each unit to be built (e.g. a piece of software)
are known as "recipe" files and contain all the information about the
unit (dependencies, source file locations, checksums, description and
so on).
- BitBake includes a client/server abstraction and can be used from a
command line or used as a service over XML-RPC and has several
different user interfaces.
History and Goals
=================
BitBake was originally a part of the OpenEmbedded project. It was
inspired by the Portage package management system used by the Gentoo
Linux distribution. On December 7, 2004, OpenEmbedded project team
member Chris Larson split the project into two distinct pieces:
- BitBake, a generic task executor
- OpenEmbedded, a metadata set utilized by BitBake
Today, BitBake is the primary basis of the
`OpenEmbedded <http://www.openembedded.org/>`__ project, which is being
used to build and maintain Linux distributions such as the `Angstrom
Distribution <http://www.angstrom-distribution.org/>`__, and which is
also being used as the build tool for Linux projects such as the `Yocto
Project <http://www.yoctoproject.org>`__.
Prior to BitBake, no other build tool adequately met the needs of an
aspiring embedded Linux distribution. All of the build systems used by
traditional desktop Linux distributions lacked important functionality,
and none of the ad hoc Buildroot-based systems, prevalent in the
embedded space, were scalable or maintainable.
Some important original goals for BitBake were:
- Handle cross-compilation.
- Handle inter-package dependencies (build time on target architecture,
build time on native architecture, and runtime).
- Support running any number of tasks within a given package,
including, but not limited to, fetching upstream sources, unpacking
them, patching them, configuring them, and so forth.
- Be Linux distribution agnostic for both build and target systems.
- Be architecture agnostic.
- Support multiple build and target operating systems (e.g. Cygwin, the
BSDs, and so forth).
- Be self-contained, rather than tightly integrated into the build
machine's root filesystem.
- Handle conditional metadata on the target architecture, operating
system, distribution, and machine.
- Be easy to use the tools to supply local metadata and packages
against which to operate.
- Be easy to use BitBake to collaborate between multiple projects for
their builds.
- Provide an inheritance mechanism to share common metadata between
many packages.
Over time it became apparent that some further requirements were
necessary:
- Handle variants of a base recipe (e.g. native, sdk, and multilib).
- Split metadata into layers and allow layers to enhance or override
other layers.
- Allow representation of a given set of input variables to a task as a
checksum. Based on that checksum, allow acceleration of builds with
prebuilt components.
BitBake satisfies all the original requirements and many more with
extensions being made to the basic functionality to reflect the
additional requirements. Flexibility and power have always been the
priorities. BitBake is highly extensible and supports embedded Python
code and execution of any arbitrary tasks.
.. _Concepts:
Concepts
========
BitBake is a program written in the Python language. At the highest
level, BitBake interprets metadata, decides what tasks are required to
run, and executes those tasks. Similar to GNU Make, BitBake controls how
software is built. GNU Make achieves its control through "makefiles",
while BitBake uses "recipes".
BitBake extends the capabilities of a simple tool like GNU Make by
allowing for the definition of much more complex tasks, such as
assembling entire embedded Linux distributions.
The remainder of this section introduces several concepts that should be
understood in order to better leverage the power of BitBake.
Recipes
-------
BitBake Recipes, which are denoted by the file extension ``.bb``, are
the most basic metadata files. These recipe files provide BitBake with
the following:
- Descriptive information about the package (author, homepage, license,
and so on)
- The version of the recipe
- Existing dependencies (both build and runtime dependencies)
- Where the source code resides and how to fetch it
- Whether the source code requires any patches, where to find them, and
how to apply them
- How to configure and compile the source code
- How to assemble the generated artifacts into one or more installable
packages
- Where on the target machine to install the package or packages
created
Within the context of BitBake, or any project utilizing BitBake as its
build system, files with the ``.bb`` extension are referred to as
recipes.
.. note::
The term "package" is also commonly used to describe recipes.
However, since the same word is used to describe packaged output from
a project, it is best to maintain a single descriptive term -
"recipes". Put another way, a single "recipe" file is quite capable
of generating a number of related but separately installable
"packages". In fact, that ability is fairly common.
Configuration Files
-------------------
Configuration files, which are denoted by the ``.conf`` extension,
define various configuration variables that govern the project's build
process. These files fall into several areas that define machine
configuration, distribution configuration, possible compiler tuning,
general common configuration, and user configuration. The main
configuration file is the sample ``bitbake.conf`` file, which is located
within the BitBake source tree ``conf`` directory.
Classes
-------
Class files, which are denoted by the ``.bbclass`` extension, contain
information that is useful to share between metadata files. The BitBake
source tree currently comes with one class metadata file called
``base.bbclass``. You can find this file in the ``classes`` directory.
The ``base.bbclass`` class files is special since it is always included
automatically for all recipes and classes. This class contains
definitions for standard basic tasks such as fetching, unpacking,
configuring (empty by default), compiling (runs any Makefile present),
installing (empty by default) and packaging (empty by default). These
tasks are often overridden or extended by other classes added during the
project development process.
Layers
------
Layers allow you to isolate different types of customizations from each
other. While you might find it tempting to keep everything in one layer
when working on a single project, the more modular your metadata, the
easier it is to cope with future changes.
To illustrate how you can use layers to keep things modular, consider
customizations you might make to support a specific target machine.
These types of customizations typically reside in a special layer,
rather than a general layer, called a Board Support Package (BSP) layer.
Furthermore, the machine customizations should be isolated from recipes
and metadata that support a new GUI environment, for example. This
situation gives you a couple of layers: one for the machine
configurations and one for the GUI environment. It is important to
understand, however, that the BSP layer can still make machine-specific
additions to recipes within the GUI environment layer without polluting
the GUI layer itself with those machine-specific changes. You can
accomplish this through a recipe that is a BitBake append
(``.bbappend``) file.
.. _append-bbappend-files:
Append Files
------------
Append files, which are files that have the ``.bbappend`` file
extension, extend or override information in an existing recipe file.
BitBake expects every append file to have a corresponding recipe file.
Furthermore, the append file and corresponding recipe file must use the
same root filename. The filenames can differ only in the file type
suffix used (e.g. ``formfactor_0.0.bb`` and
``formfactor_0.0.bbappend``).
Information in append files extends or overrides the information in the
underlying, similarly-named recipe files.
When you name an append file, you can use the "``%``" wildcard character
to allow for matching recipe names. For example, suppose you have an
append file named as follows: ::
busybox_1.21.%.bbappend
That append file
would match any ``busybox_1.21.``\ x\ ``.bb`` version of the recipe. So,
the append file would match the following recipe names: ::
busybox_1.21.1.bb
busybox_1.21.2.bb
busybox_1.21.3.bb
.. note::
The use of the " % " character is limited in that it only works directly in
front of the .bbappend portion of the append file's name. You cannot use the
wildcard character in any other location of the name.
If the ``busybox`` recipe was updated to ``busybox_1.3.0.bb``, the
append name would not match. However, if you named the append file
``busybox_1.%.bbappend``, then you would have a match.
In the most general case, you could name the append file something as
simple as ``busybox_%.bbappend`` to be entirely version independent.
Obtaining BitBake
=================
You can obtain BitBake several different ways:
- **Cloning BitBake:** Using Git to clone the BitBake source code
repository is the recommended method for obtaining BitBake. Cloning
the repository makes it easy to get bug fixes and have access to
stable branches and the master branch. Once you have cloned BitBake,
you should use the latest stable branch for development since the
master branch is for BitBake development and might contain less
stable changes.
You usually need a version of BitBake that matches the metadata you
are using. The metadata is generally backwards compatible but not
forward compatible.
Here is an example that clones the BitBake repository: ::
$ git clone git://git.openembedded.org/bitbake
This command clones the BitBake
Git repository into a directory called ``bitbake``. Alternatively,
you can designate a directory after the ``git clone`` command if you
want to call the new directory something other than ``bitbake``. Here
is an example that names the directory ``bbdev``: ::
$ git clone git://git.openembedded.org/bitbake bbdev
- **Installation using your Distribution Package Management System:**
This method is not recommended because the BitBake version that is
provided by your distribution, in most cases, is several releases
behind a snapshot of the BitBake repository.
- **Taking a snapshot of BitBake:** Downloading a snapshot of BitBake
from the source code repository gives you access to a known branch or
release of BitBake.
.. note::
Cloning the Git repository, as described earlier, is the preferred
method for getting BitBake. Cloning the repository makes it easier
to update as patches are added to the stable branches.
The following example downloads a snapshot of BitBake version 1.17.0: ::
$ wget http://git.openembedded.org/bitbake/snapshot/bitbake-1.17.0.tar.gz
$ tar zxpvf bitbake-1.17.0.tar.gz
After extraction of the tarball using
the tar utility, you have a directory entitled ``bitbake-1.17.0``.
- **Using the BitBake that Comes With Your Build Checkout:** A final
possibility for getting a copy of BitBake is that it already comes
with your checkout of a larger BitBake-based build system, such as
Poky. Rather than manually checking out individual layers and gluing
them together yourself, you can check out an entire build system. The
checkout will already include a version of BitBake that has been
thoroughly tested for compatibility with the other components. For
information on how to check out a particular BitBake-based build
system, consult that build system's supporting documentation.
.. _bitbake-user-manual-command:
The BitBake Command
===================
The ``bitbake`` command is the primary interface to the BitBake tool.
This section presents the BitBake command syntax and provides several
execution examples.
Usage and syntax
----------------
Following is the usage and syntax for BitBake: ::
$ bitbake -h
Usage: bitbake [options] [recipename/target recipe:do_task ...]
Executes the specified task (default is 'build') for a given set of target recipes (.bb files).
It is assumed there is a conf/bblayers.conf available in cwd or in BBPATH which
will provide the layer, BBFILES and other configuration information.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-b BUILDFILE, --buildfile=BUILDFILE
Execute tasks from a specific .bb recipe directly.
WARNING: Does not handle any dependencies from other
recipes.
-k, --continue Continue as much as possible after an error. While the
target that failed and anything depending on it cannot
be built, as much as possible will be built before
stopping.
-f, --force Force the specified targets/task to run (invalidating
any existing stamp file).
-c CMD, --cmd=CMD Specify the task to execute. The exact options
available depend on the metadata. Some examples might
be 'compile' or 'populate_sysroot' or 'listtasks' may
give a list of the tasks available.
-C INVALIDATE_STAMP, --clear-stamp=INVALIDATE_STAMP
Invalidate the stamp for the specified task such as
'compile' and then run the default task for the
specified target(s).
-r PREFILE, --read=PREFILE
Read the specified file before bitbake.conf.
-R POSTFILE, --postread=POSTFILE
Read the specified file after bitbake.conf.
-v, --verbose Enable tracing of shell tasks (with 'set -x'). Also
print bb.note(...) messages to stdout (in addition to
writing them to ${T}/log.do_&lt;task&gt;).
-D, --debug Increase the debug level. You can specify this more
than once. -D sets the debug level to 1, where only
bb.debug(1, ...) messages are printed to stdout; -DD
sets the debug level to 2, where both bb.debug(1, ...)
and bb.debug(2, ...) messages are printed; etc.
Without -D, no debug messages are printed. Note that
-D only affects output to stdout. All debug messages
are written to ${T}/log.do_taskname, regardless of the
debug level.
-q, --quiet Output less log message data to the terminal. You can
specify this more than once.
-n, --dry-run Don't execute, just go through the motions.
-S SIGNATURE_HANDLER, --dump-signatures=SIGNATURE_HANDLER
Dump out the signature construction information, with
no task execution. The SIGNATURE_HANDLER parameter is
passed to the handler. Two common values are none and
printdiff but the handler may define more/less. none
means only dump the signature, printdiff means compare
the dumped signature with the cached one.
-p, --parse-only Quit after parsing the BB recipes.
-s, --show-versions Show current and preferred versions of all recipes.
-e, --environment Show the global or per-recipe environment complete
with information about where variables were
set/changed.
-g, --graphviz Save dependency tree information for the specified
targets in the dot syntax.
-I EXTRA_ASSUME_PROVIDED, --ignore-deps=EXTRA_ASSUME_PROVIDED
Assume these dependencies don't exist and are already
provided (equivalent to ASSUME_PROVIDED). Useful to
make dependency graphs more appealing
-l DEBUG_DOMAINS, --log-domains=DEBUG_DOMAINS
Show debug logging for the specified logging domains
-P, --profile Profile the command and save reports.
-u UI, --ui=UI The user interface to use (knotty, ncurses or taskexp
- default knotty).
--token=XMLRPCTOKEN Specify the connection token to be used when
connecting to a remote server.
--revisions-changed Set the exit code depending on whether upstream
floating revisions have changed or not.
--server-only Run bitbake without a UI, only starting a server
(cooker) process.
-B BIND, --bind=BIND The name/address for the bitbake xmlrpc server to bind
to.
-T SERVER_TIMEOUT, --idle-timeout=SERVER_TIMEOUT
Set timeout to unload bitbake server due to
inactivity, set to -1 means no unload, default:
Environment variable BB_SERVER_TIMEOUT.
--no-setscene Do not run any setscene tasks. sstate will be ignored
and everything needed, built.
--setscene-only Only run setscene tasks, don't run any real tasks.
--remote-server=REMOTE_SERVER
Connect to the specified server.
-m, --kill-server Terminate any running bitbake server.
--observe-only Connect to a server as an observing-only client.
--status-only Check the status of the remote bitbake server.
-w WRITEEVENTLOG, --write-log=WRITEEVENTLOG
Writes the event log of the build to a bitbake event
json file. Use '' (empty string) to assign the name
automatically.
--runall=RUNALL Run the specified task for any recipe in the taskgraph
of the specified target (even if it wouldn't otherwise
have run).
--runonly=RUNONLY Run only the specified task within the taskgraph of
the specified targets (and any task dependencies those
tasks may have).
.. _bitbake-examples:
Examples
--------
This section presents some examples showing how to use BitBake.
.. _example-executing-a-task-against-a-single-recipe:
Executing a Task Against a Single Recipe
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Executing tasks for a single recipe file is relatively simple. You
specify the file in question, and BitBake parses it and executes the
specified task. If you do not specify a task, BitBake executes the
default task, which is "build". BitBake obeys inter-task dependencies
when doing so.
The following command runs the build task, which is the default task, on
the ``foo_1.0.bb`` recipe file: ::
$ bitbake -b foo_1.0.bb
The following command runs the clean task on the ``foo.bb`` recipe file: ::
$ bitbake -b foo.bb -c clean
.. note::
The "-b" option explicitly does not handle recipe dependencies. Other
than for debugging purposes, it is instead recommended that you use
the syntax presented in the next section.
Executing Tasks Against a Set of Recipe Files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
There are a number of additional complexities introduced when one wants
to manage multiple ``.bb`` files. Clearly there needs to be a way to
tell BitBake what files are available and, of those, which you want to
execute. There also needs to be a way for each recipe to express its
dependencies, both for build-time and runtime. There must be a way for
you to express recipe preferences when multiple recipes provide the same
functionality, or when there are multiple versions of a recipe.
The ``bitbake`` command, when not using "--buildfile" or "-b" only
accepts a "PROVIDES". You cannot provide anything else. By default, a
recipe file generally "PROVIDES" its "packagename" as shown in the
following example: ::
$ bitbake foo
This next example "PROVIDES" the
package name and also uses the "-c" option to tell BitBake to just
execute the ``do_clean`` task: ::
$ bitbake -c clean foo
Executing a List of Task and Recipe Combinations
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The BitBake command line supports specifying different tasks for
individual targets when you specify multiple targets. For example,
suppose you had two targets (or recipes) ``myfirstrecipe`` and
``mysecondrecipe`` and you needed BitBake to run ``taskA`` for the first
recipe and ``taskB`` for the second recipe: ::
$ bitbake myfirstrecipe:do_taskA mysecondrecipe:do_taskB
Generating Dependency Graphs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BitBake is able to generate dependency graphs using the ``dot`` syntax.
You can convert these graphs into images using the ``dot`` tool from
`Graphviz <http://www.graphviz.org>`__.
When you generate a dependency graph, BitBake writes two files to the
current working directory:
- ``task-depends.dot``: Shows dependencies between tasks. These
dependencies match BitBake's internal task execution list.
- ``pn-buildlist``: Shows a simple list of targets that are to be
built.
To stop depending on common depends, use the "-I" depend option and
BitBake omits them from the graph. Leaving this information out can
produce more readable graphs. This way, you can remove from the graph
``DEPENDS`` from inherited classes such as ``base.bbclass``.
Here are two examples that create dependency graphs. The second example
omits depends common in OpenEmbedded from the graph: ::
$ bitbake -g foo
$ bitbake -g -I virtual/kernel -I eglibc foo
Executing a Multiple Configuration Build
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BitBake is able to build multiple images or packages using a single
command where the different targets require different configurations
(multiple configuration builds). Each target, in this scenario, is
referred to as a "multiconfig".
To accomplish a multiple configuration build, you must define each
target's configuration separately using a parallel configuration file in
the build directory. The location for these multiconfig configuration
files is specific. They must reside in the current build directory in a
sub-directory of ``conf`` named ``multiconfig``. Following is an example
for two separate targets:
.. image:: figures/bb_multiconfig_files.png
:align: center
The reason for this required file hierarchy is because the ``BBPATH``
variable is not constructed until the layers are parsed. Consequently,
using the configuration file as a pre-configuration file is not possible
unless it is located in the current working directory.
Minimally, each configuration file must define the machine and the
temporary directory BitBake uses for the build. Suggested practice
dictates that you do not overlap the temporary directories used during
the builds.
Aside from separate configuration files for each target, you must also
enable BitBake to perform multiple configuration builds. Enabling is
accomplished by setting the
:term:`BBMULTICONFIG` variable in the
``local.conf`` configuration file. As an example, suppose you had
configuration files for ``target1`` and ``target2`` defined in the build
directory. The following statement in the ``local.conf`` file both
enables BitBake to perform multiple configuration builds and specifies
the two extra multiconfigs: ::
BBMULTICONFIG = "target1 target2"
Once the target configuration files are in place and BitBake has been
enabled to perform multiple configuration builds, use the following
command form to start the builds: ::
$ bitbake [mc:multiconfigname:]target [[[mc:multiconfigname:]target] ... ]
Here is an example for two extra multiconfigs: ``target1`` and ``target2``: ::
$ bitbake mc::target mc:target1:target mc:target2:target
.. _bb-enabling-multiple-configuration-build-dependencies:
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 an image for a particular architecture, the root filesystem of
another build for a different architecture needs to exist. In other
words, the image for the first multiconfig depends on the root
filesystem of the second multiconfig. This dependency is essentially
that the task in the recipe that builds one multiconfig is dependent on
the completion of the task in the recipe that builds another
multiconfig.
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 an example with two
multiconfigs: ``target1`` and ``target2``: ::
image_task[mcdepends] = "mc:target1:target2:image2:rootfs_task"
In this example, the
``from_multiconfig`` is "target1" and the ``to_multiconfig`` is "target2". The
task on which the image whose recipe contains image_task depends on the
completion of the rootfs_task used to build out image2, which is
associated with the "target2" multiconfig.
Once you set up this dependency, you can build the "target1" multiconfig
using a BitBake command as follows: ::
$ bitbake mc:target1:image1
This command executes all the tasks needed to create ``image1`` for the "target1"
multiconfig. Because of the dependency, BitBake also executes through
the ``rootfs_task`` for the "target2" 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 image1
recipe: ::
image_task[mcdepends] = "mc:target1:target2:image2:image_task"
In this case, BitBake must create ``image2`` for the "target2" build since
the "target1" build depends on it.
Because "target1" and "target2" are enabled for multiple configuration
builds and have separate configuration files, BitBake places the
artifacts for each build in the respective temporary build directories.

View File

@@ -0,0 +1,894 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<chapter id="bitbake-user-manual-intro">
<title>Overview</title>
<para>
Welcome to the BitBake User Manual.
This manual provides information on the BitBake tool.
The information attempts to be as independent as possible regarding
systems that use BitBake, such as OpenEmbedded and the
Yocto Project.
In some cases, scenarios or examples within the context of
a build system are used in the manual to help with understanding.
For these cases, the manual clearly states the context.
</para>
<section id="intro">
<title>Introduction</title>
<para>
Fundamentally, BitBake is a generic task execution
engine that allows shell and Python tasks to be run
efficiently and in parallel while working within
complex inter-task dependency constraints.
One of BitBake's main users, OpenEmbedded, takes this core
and builds embedded Linux software stacks using
a task-oriented approach.
</para>
<para>
Conceptually, BitBake is similar to GNU Make in
some regards but has significant differences:
<itemizedlist>
<listitem><para>
BitBake executes tasks according to provided
metadata that builds up the tasks.
Metadata is stored in recipe (<filename>.bb</filename>)
and related recipe "append" (<filename>.bbappend</filename>)
files, configuration (<filename>.conf</filename>) and
underlying include (<filename>.inc</filename>) files, and
in class (<filename>.bbclass</filename>) files.
The metadata provides
BitBake with instructions on what tasks to run and
the dependencies between those tasks.
</para></listitem>
<listitem><para>
BitBake includes a fetcher library for obtaining source
code from various places such as local files, source control
systems, or websites.
</para></listitem>
<listitem><para>
The instructions for each unit to be built (e.g. a piece
of software) are known as "recipe" files and
contain all the information about the unit
(dependencies, source file locations, checksums, description
and so on).
</para></listitem>
<listitem><para>
BitBake includes a client/server abstraction and can
be used from a command line or used as a service over
XML-RPC and has several different user interfaces.
</para></listitem>
</itemizedlist>
</para>
</section>
<section id="history-and-goals">
<title>History and Goals</title>
<para>
BitBake was originally a part of the OpenEmbedded project.
It was inspired by the Portage package management system
used by the Gentoo Linux distribution.
On December 7, 2004, OpenEmbedded project team member
Chris Larson split the project into two distinct pieces:
<itemizedlist>
<listitem><para>BitBake, a generic task executor</para></listitem>
<listitem><para>OpenEmbedded, a metadata set utilized by
BitBake</para></listitem>
</itemizedlist>
Today, BitBake is the primary basis of the
<ulink url="http://www.openembedded.org/">OpenEmbedded</ulink>
project, which is being used to build and maintain Linux
distributions such as the
<ulink url='http://www.angstrom-distribution.org/'>Angstrom Distribution</ulink>,
and which is also being used as the build tool for Linux projects
such as the
<ulink url='http://www.yoctoproject.org'>Yocto Project</ulink>.
</para>
<para>
Prior to BitBake, no other build tool adequately met the needs of
an aspiring embedded Linux distribution.
All of the build systems used by traditional desktop Linux
distributions lacked important functionality, and none of the
ad hoc Buildroot-based systems, prevalent in the
embedded space, were scalable or maintainable.
</para>
<para>
Some important original goals for BitBake were:
<itemizedlist>
<listitem><para>
Handle cross-compilation.
</para></listitem>
<listitem><para>
Handle inter-package dependencies (build time on
target architecture, build time on native
architecture, and runtime).
</para></listitem>
<listitem><para>
Support running any number of tasks within a given
package, including, but not limited to, fetching
upstream sources, unpacking them, patching them,
configuring them, and so forth.
</para></listitem>
<listitem><para>
Be Linux distribution agnostic for both build and
target systems.
</para></listitem>
<listitem><para>
Be architecture agnostic.
</para></listitem>
<listitem><para>
Support multiple build and target operating systems
(e.g. Cygwin, the BSDs, and so forth).
</para></listitem>
<listitem><para>
Be self contained, rather than tightly
integrated into the build machine's root
filesystem.
</para></listitem>
<listitem><para>
Handle conditional metadata on the target architecture,
operating system, distribution, and machine.
</para></listitem>
<listitem><para>
Be easy to use the tools to supply local metadata and packages
against which to operate.
</para></listitem>
<listitem><para>
Be easy to use BitBake to collaborate between multiple
projects for their builds.
</para></listitem>
<listitem><para>
Provide an inheritance mechanism to share
common metadata between many packages.
</para></listitem>
</itemizedlist>
Over time it became apparent that some further requirements
were necessary:
<itemizedlist>
<listitem><para>
Handle variants of a base recipe (e.g. native, sdk,
and multilib).
</para></listitem>
<listitem><para>
Split metadata into layers and allow layers
to enhance or override other layers.
</para></listitem>
<listitem><para>
Allow representation of a given set of input variables
to a task as a checksum.
Based on that checksum, allow acceleration of builds
with prebuilt components.
</para></listitem>
</itemizedlist>
BitBake satisfies all the original requirements and many more
with extensions being made to the basic functionality to
reflect the additional requirements.
Flexibility and power have always been the priorities.
BitBake is highly extensible and supports embedded Python code and
execution of any arbitrary tasks.
</para>
</section>
<section id="Concepts">
<title>Concepts</title>
<para>
BitBake is a program written in the Python language.
At the highest level, BitBake interprets metadata, decides
what tasks are required to run, and executes those tasks.
Similar to GNU Make, BitBake controls how software is
built.
GNU Make achieves its control through "makefiles", while
BitBake uses "recipes".
</para>
<para>
BitBake extends the capabilities of a simple
tool like GNU Make by allowing for the definition of much more
complex tasks, such as assembling entire embedded Linux
distributions.
</para>
<para>
The remainder of this section introduces several concepts
that should be understood in order to better leverage
the power of BitBake.
</para>
<section id='recipes'>
<title>Recipes</title>
<para>
BitBake Recipes, which are denoted by the file extension
<filename>.bb</filename>, are the most basic metadata files.
These recipe files provide BitBake with the following:
<itemizedlist>
<listitem><para>Descriptive information about the
package (author, homepage, license, and so on)</para></listitem>
<listitem><para>The version of the recipe</para></listitem>
<listitem><para>Existing dependencies (both build
and runtime dependencies)</para></listitem>
<listitem><para>Where the source code resides and
how to fetch it</para></listitem>
<listitem><para>Whether the source code requires
any patches, where to find them, and how to apply
them</para></listitem>
<listitem><para>How to configure and compile the
source code</para></listitem>
<listitem><para>Where on the target machine to install the
package or packages created</para></listitem>
</itemizedlist>
</para>
<para>
Within the context of BitBake, or any project utilizing BitBake
as its build system, files with the <filename>.bb</filename>
extension are referred to as recipes.
<note>
The term "package" is also commonly used to describe recipes.
However, since the same word is used to describe packaged
output from a project, it is best to maintain a single
descriptive term - "recipes".
Put another way, a single "recipe" file is quite capable
of generating a number of related but separately installable
"packages".
In fact, that ability is fairly common.
</note>
</para>
</section>
<section id='configuration-files'>
<title>Configuration Files</title>
<para>
Configuration files, which are denoted by the
<filename>.conf</filename> extension, define
various configuration variables that govern the project's build
process.
These files fall into several areas that define
machine configuration options, distribution configuration
options, compiler tuning options, general common
configuration options, and user configuration options.
The main configuration file is the sample
<filename>bitbake.conf</filename> file, which is
located within the BitBake source tree
<filename>conf</filename> directory.
</para>
</section>
<section id='classes'>
<title>Classes</title>
<para>
Class files, which are denoted by the
<filename>.bbclass</filename> extension, contain
information that is useful to share between metadata files.
The BitBake source tree currently comes with one class metadata file
called <filename>base.bbclass</filename>.
You can find this file in the
<filename>classes</filename> directory.
The <filename>base.bbclass</filename> class files is special since it
is always included automatically for all recipes
and classes.
This class contains definitions for standard basic tasks such
as fetching, unpacking, configuring (empty by default),
compiling (runs any Makefile present), installing (empty by
default) and packaging (empty by default).
These tasks are often overridden or extended by other classes
added during the project development process.
</para>
</section>
<section id='layers'>
<title>Layers</title>
<para>
Layers allow you to isolate different types of
customizations from each other.
While you might find it tempting to keep everything in one layer
when working on a single project, the more modular you organize
your metadata, the easier it is to cope with future changes.
</para>
<para>
To illustrate how you can use layers to keep things modular,
consider customizations you might make to support a specific target machine.
These types of customizations typically reside in a special layer,
rather than a general layer, called a Board Support Package (BSP)
Layer.
Furthermore, the machine customizations should be isolated from
recipes and metadata that support a new GUI environment, for
example.
This situation gives you a couple of layers: one for the machine
configurations and one for the GUI environment.
It is important to understand, however, that the BSP layer can still
make machine-specific additions to recipes within
the GUI environment layer without polluting the GUI layer itself
with those machine-specific changes.
You can accomplish this through a recipe that is a BitBake append
(<filename>.bbappend</filename>) file.
</para>
</section>
<section id='append-bbappend-files'>
<title>Append Files</title>
<para>
Append files, which are files that have the
<filename>.bbappend</filename> file extension, extend or
override information in an existing recipe file.
</para>
<para>
BitBake expects every append file to have a corresponding recipe file.
Furthermore, the append file and corresponding recipe file
must use the same root filename.
The filenames can differ only in the file type suffix used
(e.g. <filename>formfactor_0.0.bb</filename> and
<filename>formfactor_0.0.bbappend</filename>).
</para>
<para>
Information in append files extends or
overrides the information in the underlying,
similarly-named recipe files.
</para>
<para>
When you name an append file, you can use the
"<filename>%</filename>" wildcard character to allow for matching
recipe names.
For example, suppose you have an append file named
as follows:
<literallayout class='monospaced'>
busybox_1.21.%.bbappend
</literallayout>
That append file would match any <filename>busybox_1.21.</filename><replaceable>x</replaceable><filename>.bb</filename>
version of the recipe.
So, the append file would match the following recipe names:
<literallayout class='monospaced'>
busybox_1.21.1.bb
busybox_1.21.2.bb
busybox_1.21.3.bb
</literallayout>
<note><title>Important</title>
The use of the "<filename>%</filename>" character
is limited in that it only works directly in front of the
<filename>.bbappend</filename> portion of the append file's
name.
You cannot use the wildcard character in any other
location of the name.
</note>
If the <filename>busybox</filename> recipe was updated to
<filename>busybox_1.3.0.bb</filename>, the append name would not
match.
However, if you named the append file
<filename>busybox_1.%.bbappend</filename>, then you would have a match.
</para>
<para>
In the most general case, you could name the append file something as
simple as <filename>busybox_%.bbappend</filename> to be entirely
version independent.
</para>
</section>
</section>
<section id='obtaining-bitbake'>
<title>Obtaining BitBake</title>
<para>
You can obtain BitBake several different ways:
<itemizedlist>
<listitem><para><emphasis>Cloning BitBake:</emphasis>
Using Git to clone the BitBake source code repository
is the recommended method for obtaining BitBake.
Cloning the repository makes it easy to get bug fixes
and have access to stable branches and the master
branch.
Once you have cloned BitBake, you should use
the latest stable
branch for development since the master branch is for
BitBake development and might contain less stable changes.
</para>
<para>You usually need a version of BitBake
that matches the metadata you are using.
The metadata is generally backwards compatible but
not forward compatible.</para>
<para>Here is an example that clones the BitBake repository:
<literallayout class='monospaced'>
$ git clone git://git.openembedded.org/bitbake
</literallayout>
This command clones the BitBake Git repository into a
directory called <filename>bitbake</filename>.
Alternatively, you can
designate a directory after the
<filename>git clone</filename> command
if you want to call the new directory something
other than <filename>bitbake</filename>.
Here is an example that names the directory
<filename>bbdev</filename>:
<literallayout class='monospaced'>
$ git clone git://git.openembedded.org/bitbake bbdev
</literallayout></para></listitem>
<listitem><para><emphasis>Installation using your Distribution
Package Management System:</emphasis>
This method is not
recommended because the BitBake version that is
provided by your distribution, in most cases,
is several
releases behind a snapshot of the BitBake repository.
</para></listitem>
<listitem><para><emphasis>Taking a snapshot of BitBake:</emphasis>
Downloading a snapshot of BitBake from the
source code repository gives you access to a known
branch or release of BitBake.
<note>
Cloning the Git repository, as described earlier,
is the preferred method for getting BitBake.
Cloning the repository makes it easier to update as
patches are added to the stable branches.
</note></para>
<para>The following example downloads a snapshot of
BitBake version 1.17.0:
<literallayout class='monospaced'>
$ wget http://git.openembedded.org/bitbake/snapshot/bitbake-1.17.0.tar.gz
$ tar zxpvf bitbake-1.17.0.tar.gz
</literallayout>
After extraction of the tarball using the tar utility,
you have a directory entitled
<filename>bitbake-1.17.0</filename>.
</para></listitem>
<listitem><para><emphasis>Using the BitBake that Comes With Your
Build Checkout:</emphasis>
A final possibility for getting a copy of BitBake is that it
already comes with your checkout of a larger Bitbake-based build
system, such as Poky.
Rather than manually checking out individual layers and
gluing them together yourself, you can check
out an entire build system.
The checkout will already include a version of BitBake that
has been thoroughly tested for compatibility with the other
components.
For information on how to check out a particular BitBake-based
build system, consult that build system's supporting documentation.
</para></listitem>
</itemizedlist>
</para>
</section>
<section id="bitbake-user-manual-command">
<title>The BitBake Command</title>
<para>
The <filename>bitbake</filename> command is the primary interface
to the BitBake tool.
This section presents the BitBake command syntax and provides
several execution examples.
</para>
<section id='usage-and-syntax'>
<title>Usage and syntax</title>
<para>
Following is the usage and syntax for BitBake:
<literallayout class='monospaced'>
$ bitbake -h
Usage: bitbake [options] [recipename/target recipe:do_task ...]
Executes the specified task (default is 'build') for a given set of target recipes (.bb files).
It is assumed there is a conf/bblayers.conf available in cwd or in BBPATH which
will provide the layer, BBFILES and other configuration information.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-b BUILDFILE, --buildfile=BUILDFILE
Execute tasks from a specific .bb recipe directly.
WARNING: Does not handle any dependencies from other
recipes.
-k, --continue Continue as much as possible after an error. While the
target that failed and anything depending on it cannot
be built, as much as possible will be built before
stopping.
-f, --force Force the specified targets/task to run (invalidating
any existing stamp file).
-c CMD, --cmd=CMD Specify the task to execute. The exact options
available depend on the metadata. Some examples might
be 'compile' or 'populate_sysroot' or 'listtasks' may
give a list of the tasks available.
-C INVALIDATE_STAMP, --clear-stamp=INVALIDATE_STAMP
Invalidate the stamp for the specified task such as
'compile' and then run the default task for the
specified target(s).
-r PREFILE, --read=PREFILE
Read the specified file before bitbake.conf.
-R POSTFILE, --postread=POSTFILE
Read the specified file after bitbake.conf.
-v, --verbose Enable tracing of shell tasks (with 'set -x'). Also
print bb.note(...) messages to stdout (in addition to
writing them to ${T}/log.do_&lt;task&gt;).
-D, --debug Increase the debug level. You can specify this more
than once. -D sets the debug level to 1, where only
bb.debug(1, ...) messages are printed to stdout; -DD
sets the debug level to 2, where both bb.debug(1, ...)
and bb.debug(2, ...) messages are printed; etc.
Without -D, no debug messages are printed. Note that
-D only affects output to stdout. All debug messages
are written to ${T}/log.do_taskname, regardless of the
debug level.
-q, --quiet Output less log message data to the terminal. You can
specify this more than once.
-n, --dry-run Don't execute, just go through the motions.
-S SIGNATURE_HANDLER, --dump-signatures=SIGNATURE_HANDLER
Dump out the signature construction information, with
no task execution. The SIGNATURE_HANDLER parameter is
passed to the handler. Two common values are none and
printdiff but the handler may define more/less. none
means only dump the signature, printdiff means compare
the dumped signature with the cached one.
-p, --parse-only Quit after parsing the BB recipes.
-s, --show-versions Show current and preferred versions of all recipes.
-e, --environment Show the global or per-recipe environment complete
with information about where variables were
set/changed.
-g, --graphviz Save dependency tree information for the specified
targets in the dot syntax.
-I EXTRA_ASSUME_PROVIDED, --ignore-deps=EXTRA_ASSUME_PROVIDED
Assume these dependencies don't exist and are already
provided (equivalent to ASSUME_PROVIDED). Useful to
make dependency graphs more appealing
-l DEBUG_DOMAINS, --log-domains=DEBUG_DOMAINS
Show debug logging for the specified logging domains
-P, --profile Profile the command and save reports.
-u UI, --ui=UI The user interface to use (knotty, ncurses or taskexp
- default knotty).
--token=XMLRPCTOKEN Specify the connection token to be used when
connecting to a remote server.
--revisions-changed Set the exit code depending on whether upstream
floating revisions have changed or not.
--server-only Run bitbake without a UI, only starting a server
(cooker) process.
-B BIND, --bind=BIND The name/address for the bitbake xmlrpc server to bind
to.
-T SERVER_TIMEOUT, --idle-timeout=SERVER_TIMEOUT
Set timeout to unload bitbake server due to
inactivity, set to -1 means no unload, default:
Environment variable BB_SERVER_TIMEOUT.
--no-setscene Do not run any setscene tasks. sstate will be ignored
and everything needed, built.
--setscene-only Only run setscene tasks, don't run any real tasks.
--remote-server=REMOTE_SERVER
Connect to the specified server.
-m, --kill-server Terminate any running bitbake server.
--observe-only Connect to a server as an observing-only client.
--status-only Check the status of the remote bitbake server.
-w WRITEEVENTLOG, --write-log=WRITEEVENTLOG
Writes the event log of the build to a bitbake event
json file. Use '' (empty string) to assign the name
automatically.
--runall=RUNALL Run the specified task for any recipe in the taskgraph
of the specified target (even if it wouldn't otherwise
have run).
--runonly=RUNONLY Run only the specified task within the taskgraph of
the specified targets (and any task dependencies those
tasks may have).
</literallayout>
</para>
</section>
<section id='bitbake-examples'>
<title>Examples</title>
<para>
This section presents some examples showing how to use BitBake.
</para>
<section id='example-executing-a-task-against-a-single-recipe'>
<title>Executing a Task Against a Single Recipe</title>
<para>
Executing tasks for a single recipe file is relatively simple.
You specify the file in question, and BitBake parses
it and executes the specified task.
If you do not specify a task, BitBake executes the default
task, which is "build”.
BitBake obeys inter-task dependencies when doing
so.
</para>
<para>
The following command runs the build task, which is
the default task, on the <filename>foo_1.0.bb</filename>
recipe file:
<literallayout class='monospaced'>
$ bitbake -b foo_1.0.bb
</literallayout>
The following command runs the clean task on the
<filename>foo.bb</filename> recipe file:
<literallayout class='monospaced'>
$ bitbake -b foo.bb -c clean
</literallayout>
<note>
The "-b" option explicitly does not handle recipe
dependencies.
Other than for debugging purposes, it is instead
recommended that you use the syntax presented in the
next section.
</note>
</para>
</section>
<section id='executing-tasks-against-a-set-of-recipe-files'>
<title>Executing Tasks Against a Set of Recipe Files</title>
<para>
There are a number of additional complexities introduced
when one wants to manage multiple <filename>.bb</filename>
files.
Clearly there needs to be a way to tell BitBake what
files are available and, of those, which you
want to execute.
There also needs to be a way for each recipe
to express its dependencies, both for build-time and
runtime.
There must be a way for you to express recipe preferences
when multiple recipes provide the same functionality, or when
there are multiple versions of a recipe.
</para>
<para>
The <filename>bitbake</filename> command, when not using
"--buildfile" or "-b" only accepts a "PROVIDES".
You cannot provide anything else.
By default, a recipe file generally "PROVIDES" its
"packagename" as shown in the following example:
<literallayout class='monospaced'>
$ bitbake foo
</literallayout>
This next example "PROVIDES" the package name and also uses
the "-c" option to tell BitBake to just execute the
<filename>do_clean</filename> task:
<literallayout class='monospaced'>
$ bitbake -c clean foo
</literallayout>
</para>
</section>
<section id='executing-a-list-of-task-and-recipe-combinations'>
<title>Executing a List of Task and Recipe Combinations</title>
<para>
The BitBake command line supports specifying different
tasks for individual targets when you specify multiple
targets.
For example, suppose you had two targets (or recipes)
<filename>myfirstrecipe</filename> and
<filename>mysecondrecipe</filename> and you needed
BitBake to run <filename>taskA</filename> for the first
recipe and <filename>taskB</filename> for the second
recipe:
<literallayout class='monospaced'>
$ bitbake myfirstrecipe:do_taskA mysecondrecipe:do_taskB
</literallayout>
</para>
</section>
<section id='generating-dependency-graphs'>
<title>Generating Dependency Graphs</title>
<para>
BitBake is able to generate dependency graphs using
the <filename>dot</filename> syntax.
You can convert these graphs into images using the
<filename>dot</filename> tool from
<ulink url='http://www.graphviz.org'>Graphviz</ulink>.
</para>
<para>
When you generate a dependency graph, BitBake writes three files
to the current working directory:
<itemizedlist>
<listitem><para>
<emphasis><filename>recipe-depends.dot</filename>:</emphasis>
Shows dependencies between recipes (i.e. a collapsed version of
<filename>task-depends.dot</filename>).
</para></listitem>
<listitem><para>
<emphasis><filename>task-depends.dot</filename>:</emphasis>
Shows dependencies between tasks.
These dependencies match BitBake's internal task execution list.
</para></listitem>
<listitem><para>
<emphasis><filename>pn-buildlist</filename>:</emphasis>
Shows a simple list of targets that are to be built.
</para></listitem>
</itemizedlist>
</para>
<para>
To stop depending on common depends, use the "-I" depend
option and BitBake omits them from the graph.
Leaving this information out can produce more readable graphs.
This way, you can remove from the graph
<filename>DEPENDS</filename> from inherited classes
such as <filename>base.bbclass</filename>.
</para>
<para>
Here are two examples that create dependency graphs.
The second example omits depends common in OpenEmbedded from
the graph:
<literallayout class='monospaced'>
$ bitbake -g foo
$ bitbake -g -I virtual/kernel -I eglibc foo
</literallayout>
</para>
</section>
<section id='executing-a-multiple-configuration-build'>
<title>Executing a Multiple Configuration Build</title>
<para>
BitBake is able to build multiple images or packages
using a single command where the different targets
require different configurations (multiple configuration
builds).
Each target, in this scenario, is referred to as a
"multiconfig".
</para>
<para>
To accomplish a multiple configuration build, you must
define each target's configuration separately using
a parallel configuration file in the build directory.
The location for these multiconfig configuration files
is specific.
They must reside in the current build directory in
a sub-directory of <filename>conf</filename> named
<filename>multiconfig</filename>.
Following is an example for two separate targets:
<imagedata fileref="figures/bb_multiconfig_files.png" align="center" width="4in" depth="3in" />
</para>
<para>
The reason for this required file hierarchy
is because the <filename>BBPATH</filename> variable
is not constructed until the layers are parsed.
Consequently, using the configuration file as a
pre-configuration file is not possible unless it is
located in the current working directory.
</para>
<para>
Minimally, each configuration file must define the
machine and the temporary directory BitBake uses
for the build.
Suggested practice dictates that you do not
overlap the temporary directories used during the
builds.
</para>
<para>
Aside from separate configuration files for each
target, you must also enable BitBake to perform multiple
configuration builds.
Enabling is accomplished by setting the
<link linkend='var-bb-BBMULTICONFIG'><filename>BBMULTICONFIG</filename></link>
variable in the <filename>local.conf</filename>
configuration file.
As an example, suppose you had configuration files
for <filename>target1</filename> and
<filename>target2</filename> defined in the build
directory.
The following statement in the
<filename>local.conf</filename> file both enables
BitBake to perform multiple configuration builds and
specifies the two extra multiconfigs:
<literallayout class='monospaced'>
BBMULTICONFIG = "target1 target2"
</literallayout>
</para>
<para>
Once the target configuration files are in place and
BitBake has been enabled to perform multiple configuration
builds, use the following command form to start the
builds:
<literallayout class='monospaced'>
$ bitbake [mc:<replaceable>multiconfigname</replaceable>:]<replaceable>target</replaceable> [[[mc:<replaceable>multiconfigname</replaceable>:]<replaceable>target</replaceable>] ... ]
</literallayout>
Here is an example for two extra multiconfigs:
<filename>target1</filename> and
<filename>target2</filename>:
<literallayout class='monospaced'>
$ bitbake mc::<replaceable>target</replaceable> mc:target1:<replaceable>target</replaceable> mc:target2:<replaceable>target</replaceable>
</literallayout>
</para>
</section>
<section id='bb-enabling-multiple-configuration-build-dependencies'>
<title>Enabling Multiple Configuration Build Dependencies</title>
<para>
Sometimes dependencies can exist between targets
(multiconfigs) in a multiple configuration build.
For example, suppose that in order to build an image
for a particular architecture, the root filesystem of
another build for a different architecture needs to
exist.
In other words, the image for the first multiconfig depends
on the root filesystem of the second multiconfig.
This dependency is essentially that the task in the recipe
that builds one multiconfig is dependent on the
completion of the task in the recipe that builds
another multiconfig.
</para>
<para>
To enable dependencies in a multiple configuration
build, you must declare the dependencies in the recipe
using the following statement form:
<literallayout class='monospaced'>
<replaceable>task_or_package</replaceable>[mcdepends] = "mc:<replaceable>from_multiconfig</replaceable>:<replaceable>to_multiconfig</replaceable>:<replaceable>recipe_name</replaceable>:<replaceable>task_on_which_to_depend</replaceable>"
</literallayout>
To better show how to use this statement, consider an
example with two multiconfigs: <filename>target1</filename>
and <filename>target2</filename>:
<literallayout class='monospaced'>
<replaceable>image_task</replaceable>[mcdepends] = "mc:target1:target2:<replaceable>image2</replaceable>:<replaceable>rootfs_task</replaceable>"
</literallayout>
In this example, the
<replaceable>from_multiconfig</replaceable> is "target1" and
the <replaceable>to_multiconfig</replaceable> is "target2".
The task on which the image whose recipe contains
<replaceable>image_task</replaceable> depends on the
completion of the <replaceable>rootfs_task</replaceable>
used to build out <replaceable>image2</replaceable>, which
is associated with the "target2" multiconfig.
</para>
<para>
Once you set up this dependency, you can build the
"target1" multiconfig using a BitBake command as follows:
<literallayout class='monospaced'>
$ bitbake mc:target1:<replaceable>image1</replaceable>
</literallayout>
This command executes all the tasks needed to create
<replaceable>image1</replaceable> for the "target1"
multiconfig.
Because of the dependency, BitBake also executes through
the <replaceable>rootfs_task</replaceable> for the "target2"
multiconfig build.
</para>
<para>
Having a recipe depend on the root filesystem of another
build might not seem that useful.
Consider this change to the statement in the
<replaceable>image1</replaceable> recipe:
<literallayout class='monospaced'>
<replaceable>image_task</replaceable>[mcdepends] = "mc:target1:target2:<replaceable>image2</replaceable>:<replaceable>image_task</replaceable>"
</literallayout>
In this case, BitBake must create
<replaceable>image2</replaceable> for the "target2"
build since the "target1" build depends on it.
</para>
<para>
Because "target1" and "target2" are enabled for multiple
configuration builds and have separate configuration
files, BitBake places the artifacts for each build in the
respective temporary build directories.
</para>
</section>
</section>
</section>
</chapter>

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,984 @@
/*
Generic XHTML / DocBook XHTML CSS Stylesheet.
Browser wrangling and typographic design by
Oyvind Kolas / pippin@gimp.org
Customised for Poky by
Matthew Allum / mallum@o-hand.com
Thanks to:
Liam R. E. Quin
William Skaggs
Jakub Steiner
Structure
---------
The stylesheet is divided into the following sections:
Positioning
Margins, paddings, width, font-size, clearing.
Decorations
Borders, style
Colors
Colors
Graphics
Graphical backgrounds
Nasty IE tweaks
Workarounds needed to make it work in internet explorer,
currently makes the stylesheet non validating, but up until
this point it is validating.
Mozilla extensions
Transparency for footer
Rounded corners on boxes
*/
/*************** /
/ Positioning /
/ ***************/
body {
font-family: Verdana, Sans, sans-serif;
min-width: 640px;
width: 80%;
margin: 0em auto;
padding: 2em 5em 5em 5em;
color: #333;
}
h1,h2,h3,h4,h5,h6,h7 {
font-family: Arial, Sans;
color: #00557D;
clear: both;
}
h1 {
font-size: 2em;
text-align: left;
padding: 0em 0em 0em 0em;
margin: 2em 0em 0em 0em;
}
h2.subtitle {
margin: 0.10em 0em 3.0em 0em;
padding: 0em 0em 0em 0em;
font-size: 1.8em;
padding-left: 20%;
font-weight: normal;
font-style: italic;
}
h2 {
margin: 2em 0em 0.66em 0em;
padding: 0.5em 0em 0em 0em;
font-size: 1.5em;
font-weight: bold;
}
h3.subtitle {
margin: 0em 0em 1em 0em;
padding: 0em 0em 0em 0em;
font-size: 142.14%;
text-align: right;
}
h3 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 140%;
font-weight: bold;
}
h4 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 120%;
font-weight: bold;
}
h5 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 110%;
font-weight: bold;
}
h6 {
margin: 1em 0em 0em 0em;
padding: 1em 0em 0em 0em;
font-size: 110%;
font-weight: bold;
}
.authorgroup {
background-color: transparent;
background-repeat: no-repeat;
padding-top: 256px;
background-image: url("figures/bitbake-title.png");
background-position: left top;
margin-top: -256px;
padding-right: 50px;
margin-left: 0px;
text-align: right;
width: 740px;
}
h3.author {
margin: 0em 0me 0em 0em;
padding: 0em 0em 0em 0em;
font-weight: normal;
font-size: 100%;
color: #333;
clear: both;
}
.author tt.email {
font-size: 66%;
}
.titlepage hr {
width: 0em;
clear: both;
}
.revhistory {
padding-top: 2em;
clear: both;
}
.toc,
.list-of-tables,
.list-of-examples,
.list-of-figures {
padding: 1.33em 0em 2.5em 0em;
color: #00557D;
}
.toc p,
.list-of-tables p,
.list-of-figures p,
.list-of-examples p {
padding: 0em 0em 0em 0em;
padding: 0em 0em 0.3em;
margin: 1.5em 0em 0em 0em;
}
.toc p b,
.list-of-tables p b,
.list-of-figures p b,
.list-of-examples p b{
font-size: 100.0%;
font-weight: bold;
}
.toc dl,
.list-of-tables dl,
.list-of-figures dl,
.list-of-examples dl {
margin: 0em 0em 0.5em 0em;
padding: 0em 0em 0em 0em;
}
.toc dt {
margin: 0em 0em 0em 0em;
padding: 0em 0em 0em 0em;
}
.toc dd {
margin: 0em 0em 0em 2.6em;
padding: 0em 0em 0em 0em;
}
div.glossary dl,
div.variablelist dl {
}
.glossary dl dt,
.variablelist dl dt,
.variablelist dl dt span.term {
font-weight: normal;
width: 20em;
text-align: right;
}
.variablelist dl dt {
margin-top: 0.5em;
}
.glossary dl dd,
.variablelist dl dd {
margin-top: -1em;
margin-left: 25.5em;
}
.glossary dd p,
.variablelist dd p {
margin-top: 0em;
margin-bottom: 1em;
}
div.calloutlist table td {
padding: 0em 0em 0em 0em;
margin: 0em 0em 0em 0em;
}
div.calloutlist table td p {
margin-top: 0em;
margin-bottom: 1em;
}
div p.copyright {
text-align: left;
}
div.legalnotice p.legalnotice-title {
margin-bottom: 0em;
}
p {
line-height: 1.5em;
margin-top: 0em;
}
dl {
padding-top: 0em;
}
hr {
border: solid 1px;
}
.mediaobject,
.mediaobjectco {
text-align: center;
}
img {
border: none;
}
ul {
padding: 0em 0em 0em 1.5em;
}
ul li {
padding: 0em 0em 0em 0em;
}
ul li p {
text-align: left;
}
table {
width :100%;
}
th {
padding: 0.25em;
text-align: left;
font-weight: normal;
vertical-align: top;
}
td {
padding: 0.25em;
vertical-align: top;
}
p a[id] {
margin: 0px;
padding: 0px;
display: inline;
background-image: none;
}
a {
text-decoration: underline;
color: #444;
}
pre {
overflow: auto;
}
a:hover {
text-decoration: underline;
/*font-weight: bold;*/
}
/* This style defines how the permalink character
appears by itself and when hovered over with
the mouse. */
[alt='Permalink'] { color: #eee; }
[alt='Permalink']:hover { color: black; }
div.informalfigure,
div.informalexample,
div.informaltable,
div.figure,
div.table,
div.example {
margin: 1em 0em;
padding: 1em;
page-break-inside: avoid;
}
div.informalfigure p.title b,
div.informalexample p.title b,
div.informaltable p.title b,
div.figure p.title b,
div.example p.title b,
div.table p.title b{
padding-top: 0em;
margin-top: 0em;
font-size: 100%;
font-weight: normal;
}
.mediaobject .caption,
.mediaobject .caption p {
text-align: center;
font-size: 80%;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
.epigraph {
padding-left: 55%;
margin-bottom: 1em;
}
.epigraph p {
text-align: left;
}
.epigraph .quote {
font-style: italic;
}
.epigraph .attribution {
font-style: normal;
text-align: right;
}
span.application {
font-style: italic;
}
.programlisting {
font-family: monospace;
font-size: 80%;
white-space: pre;
margin: 1.33em 0em;
padding: 1.33em;
}
.tip,
.warning,
.caution,
.note {
margin-top: 1em;
margin-bottom: 1em;
}
/* force full width of table within div */
.tip table,
.warning table,
.caution table,
.note table {
border: none;
width: 100%;
}
.tip table th,
.warning table th,
.caution table th,
.note table th {
padding: 0.8em 0.0em 0.0em 0.0em;
margin : 0em 0em 0em 0em;
}
.tip p,
.warning p,
.caution p,
.note p {
margin-top: 0.5em;
margin-bottom: 0.5em;
padding-right: 1em;
text-align: left;
}
.acronym {
text-transform: uppercase;
}
b.keycap,
.keycap {
padding: 0.09em 0.3em;
margin: 0em;
}
.itemizedlist li {
clear: none;
}
.filename {
font-size: medium;
font-family: Courier, monospace;
}
div.navheader, div.heading{
position: absolute;
left: 0em;
top: 0em;
width: 100%;
background-color: #cdf;
width: 100%;
}
div.navfooter, div.footing{
position: fixed;
left: 0em;
bottom: 0em;
background-color: #eee;
width: 100%;
}
div.navheader td,
div.navfooter td {
font-size: 66%;
}
div.navheader table th {
/*font-family: Georgia, Times, serif;*/
/*font-size: x-large;*/
font-size: 80%;
}
div.navheader table {
border-left: 0em;
border-right: 0em;
border-top: 0em;
width: 100%;
}
div.navfooter table {
border-left: 0em;
border-right: 0em;
border-bottom: 0em;
width: 100%;
}
div.navheader table td a,
div.navfooter table td a {
color: #777;
text-decoration: none;
}
/* normal text in the footer */
div.navfooter table td {
color: black;
}
div.navheader table td a:visited,
div.navfooter table td a:visited {
color: #444;
}
/* links in header and footer */
div.navheader table td a:hover,
div.navfooter table td a:hover {
text-decoration: underline;
background-color: transparent;
color: #33a;
}
div.navheader hr,
div.navfooter hr {
display: none;
}
.qandaset tr.question td p {
margin: 0em 0em 1em 0em;
padding: 0em 0em 0em 0em;
}
.qandaset tr.answer td p {
margin: 0em 0em 1em 0em;
padding: 0em 0em 0em 0em;
}
.answer td {
padding-bottom: 1.5em;
}
.emphasis {
font-weight: bold;
}
/************* /
/ decorations /
/ *************/
.titlepage {
}
.part .title {
}
.subtitle {
border: none;
}
/*
h1 {
border: none;
}
h2 {
border-top: solid 0.2em;
border-bottom: solid 0.06em;
}
h3 {
border-top: 0em;
border-bottom: solid 0.06em;
}
h4 {
border: 0em;
border-bottom: solid 0.06em;
}
h5 {
border: 0em;
}
*/
.programlisting {
border: solid 1px;
}
div.figure,
div.table,
div.informalfigure,
div.informaltable,
div.informalexample,
div.example {
border: 1px solid;
}
.tip,
.warning,
.caution,
.note {
border: 1px solid;
}
.tip table th,
.warning table th,
.caution table th,
.note table th {
border-bottom: 1px solid;
}
.question td {
border-top: 1px solid black;
}
.answer {
}
b.keycap,
.keycap {
border: 1px solid;
}
div.navheader, div.heading{
border-bottom: 1px solid;
}
div.navfooter, div.footing{
border-top: 1px solid;
}
/********* /
/ colors /
/ *********/
body {
color: #333;
background: white;
}
a {
background: transparent;
}
a:hover {
background-color: #dedede;
}
h1,
h2,
h3,
h4,
h5,
h6,
h7,
h8 {
background-color: transparent;
}
hr {
border-color: #aaa;
}
.tip, .warning, .caution, .note {
border-color: #fff;
}
.tip table th,
.warning table th,
.caution table th,
.note table th {
border-bottom-color: #fff;
}
.warning {
background-color: #f0f0f2;
}
.caution {
background-color: #f0f0f2;
}
.tip {
background-color: #f0f0f2;
}
.note {
background-color: #f0f0f2;
}
.glossary dl dt,
.variablelist dl dt,
.variablelist dl dt span.term {
color: #044;
}
div.figure,
div.table,
div.example,
div.informalfigure,
div.informaltable,
div.informalexample {
border-color: #aaa;
}
pre.programlisting {
color: black;
background-color: #fff;
border-color: #aaa;
border-width: 2px;
}
.guimenu,
.guilabel,
.guimenuitem {
background-color: #eee;
}
b.keycap,
.keycap {
background-color: #eee;
border-color: #999;
}
div.navheader {
border-color: black;
}
div.navfooter {
border-color: black;
}
/*********** /
/ graphics /
/ ***********/
/*
body {
background-image: url("images/body_bg.jpg");
background-attachment: fixed;
}
.navheader,
.note,
.tip {
background-image: url("images/note_bg.jpg");
background-attachment: fixed;
}
.warning,
.caution {
background-image: url("images/warning_bg.jpg");
background-attachment: fixed;
}
.figure,
.informalfigure,
.example,
.informalexample,
.table,
.informaltable {
background-image: url("images/figure_bg.jpg");
background-attachment: fixed;
}
*/
h1,
h2,
h3,
h4,
h5,
h6,
h7{
}
/*
Example of how to stick an image as part of the title.
div.article .titlepage .title
{
background-image: url("figures/white-on-black.png");
background-position: center;
background-repeat: repeat-x;
}
*/
div.preface .titlepage .title,
div.colophon .title,
div.chapter .titlepage .title,
div.article .titlepage .title
{
}
div.section div.section .titlepage .title,
div.sect2 .titlepage .title {
background: none;
}
h1.title {
background-color: transparent;
background-repeat: no-repeat;
height: 256px;
text-indent: -9000px;
overflow:hidden;
}
h2.subtitle {
background-color: transparent;
text-indent: -9000px;
overflow:hidden;
width: 0px;
display: none;
}
/*************************************** /
/ pippin.gimp.org specific alterations /
/ ***************************************/
/*
div.heading, div.navheader {
color: #777;
font-size: 80%;
padding: 0;
margin: 0;
text-align: left;
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 50px;
background: url('/gfx/heading_bg.png') transparent;
background-repeat: repeat-x;
background-attachment: fixed;
border: none;
}
div.heading a {
color: #444;
}
div.footing, div.navfooter {
border: none;
color: #ddd;
font-size: 80%;
text-align:right;
width: 100%;
padding-top: 10px;
position: absolute;
bottom: 0px;
left: 0px;
background: url('/gfx/footing_bg.png') transparent;
}
*/
/****************** /
/ nasty ie tweaks /
/ ******************/
/*
div.heading, div.navheader {
width:expression(document.body.clientWidth + "px");
}
div.footing, div.navfooter {
width:expression(document.body.clientWidth + "px");
margin-left:expression("-5em");
}
body {
padding:expression("4em 5em 0em 5em");
}
*/
/**************************************** /
/ mozilla vendor specific css extensions /
/ ****************************************/
/*
div.navfooter, div.footing{
-moz-opacity: 0.8em;
}
div.figure,
div.table,
div.informalfigure,
div.informaltable,
div.informalexample,
div.example,
.tip,
.warning,
.caution,
.note {
-moz-border-radius: 0.5em;
}
b.keycap,
.keycap {
-moz-border-radius: 0.3em;
}
*/
table tr td table tr td {
display: none;
}
hr {
display: none;
}
table {
border: 0em;
}
.photo {
float: right;
margin-left: 1.5em;
margin-bottom: 1.5em;
margin-top: 0em;
max-width: 17em;
border: 1px solid gray;
padding: 3px;
background: white;
}
.seperator {
padding-top: 2em;
clear: both;
}
#validators {
margin-top: 5em;
text-align: right;
color: #777;
}
@media print {
body {
font-size: 8pt;
}
.noprint {
display: none;
}
}
.tip,
.note {
background: #f0f0f2;
color: #333;
padding: 20px;
margin: 20px;
}
.tip h3,
.note h3 {
padding: 0em;
margin: 0em;
font-size: 2em;
font-weight: bold;
color: #333;
}
.tip a,
.note a {
color: #333;
text-decoration: underline;
}
.footnote {
font-size: small;
color: #333;
}
/* Changes the announcement text */
.tip h3,
.warning h3,
.caution h3,
.note h3 {
font-size:large;
color: #00557D;
}

View File

@@ -0,0 +1,88 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<book id='bitbake-user-manual' lang='en'
xmlns:xi="http://www.w3.org/2003/XInclude"
xmlns="http://docbook.org/ns/docbook"
>
<bookinfo>
<mediaobject>
<imageobject>
<imagedata fileref='figures/bitbake-title.png'
format='SVG'
align='left' scalefit='1' width='100%'/>
</imageobject>
</mediaobject>
<title>
BitBake User Manual
</title>
<authorgroup>
<author>
<firstname>Richard Purdie, Chris Larson, and </firstname> <surname>Phil Blundell</surname>
<affiliation>
<orgname>BitBake Community</orgname>
</affiliation>
<email>bitbake-devel@lists.openembedded.org</email>
</author>
</authorgroup>
<!--
# Add in some revision history if we want it here.
<revhistory>
<revision>
<revnumber>x.x</revnumber>
<date>dd month year</date>
<revremark>Some relevent comment</revremark>
</revision>
<revision>
<revnumber>x.x</revnumber>
<date>dd month year</date>
<revremark>Some relevent comment</revremark>
</revision>
<revision>
<revnumber>x.x</revnumber>
<date>dd month year</date>
<revremark>Some relevent comment</revremark>
</revision>
<revision>
<revnumber>x.x</revnumber>
<date>dd month year</date>
<revremark>Some relevent comment</revremark>
</revision>
</revhistory>
-->
<copyright>
<year>2004-2018</year>
<holder>Richard Purdie</holder>
<holder>Chris Larson</holder>
<holder>and Phil Blundell</holder>
</copyright>
<legalnotice>
<para>
This work is licensed under the Creative Commons Attribution License.
To view a copy of this license, visit
<ulink url="http://creativecommons.org/licenses/by/2.5/">http://creativecommons.org/licenses/by/2.5/</ulink>
or send a letter to Creative Commons, 444 Castro Street,
Suite 900, Mountain View, California 94041, USA.
</para>
</legalnotice>
</bookinfo>
<xi:include href="bitbake-user-manual-intro.xml"/>
<xi:include href="bitbake-user-manual-execution.xml"/>
<xi:include href="bitbake-user-manual-metadata.xml"/>
<xi:include href="bitbake-user-manual-fetching.xml"/>
<xi:include href="bitbake-user-manual-ref-variables.xml"/>
<xi:include href="bitbake-user-manual-hello.xml"/>
</book>

View File

@@ -0,0 +1,281 @@
/* Feuille de style DocBook du projet Traduc.org */
/* DocBook CSS stylesheet of the Traduc.org project */
/* (c) Jean-Philippe Gu<47>rard - 14 ao<61>t 2004 */
/* (c) Jean-Philippe Gu<47>rard - 14 August 2004 */
/* Cette feuille de style est libre, vous pouvez la */
/* redistribuer et la modifier selon les termes de la Licence */
/* Art Libre. Vous trouverez un exemplaire de cette Licence sur */
/* http://tigreraye.org/Petit-guide-du-traducteur.html#licence-art-libre */
/* This work of art is free, you can redistribute it and/or */
/* modify it according to terms of the Free Art license. You */
/* will find a specimen of this license on the Copyleft */
/* Attitude web site: http://artlibre.org as well as on other */
/* sites. */
/* Please note that the French version of this licence as shown */
/* on http://tigreraye.org/Petit-guide-du-traducteur.html#licence-art-libre */
/* is only official licence of this document. The English */
/* is only provided to help you understand this licence. */
/* La derni<6E>re version de cette feuille de style est toujours */
/* disponible sur<75>: http://tigreraye.org/style.css */
/* Elle est <20>galement disponible sur<75>: */
/* http://www.traduc.org/docs/HOWTO/lecture/style.css */
/* The latest version of this stylesheet is available from: */
/* http://tigreraye.org/style.css */
/* It is also available on: */
/* http://www.traduc.org/docs/HOWTO/lecture/style.css */
/* N'h<>sitez pas <20> envoyer vos commentaires et corrections <20> */
/* Jean-Philippe Gu<47>rard <jean-philippe.guerard@tigreraye.org> */
/* Please send feedback and bug reports to */
/* Jean-Philippe Gu<47>rard <jean-philippe.guerard@tigreraye.org> */
/* $Id: style.css,v 1.14 2004/09/10 20:12:09 fevrier Exp fevrier $ */
/* Pr<50>sentation g<>n<EFBFBD>rale du document */
/* Overall document presentation */
body {
/*
font-family: Apolline, "URW Palladio L", Garamond, jGaramond,
"Bitstream Cyberbit", "Palatino Linotype", serif;
*/
margin: 7%;
background-color: white;
}
/* Taille du texte */
/* Text size */
* { font-size: 100%; }
/* Gestion des textes mis en relief imbriqu<71>s */
/* Embedded emphasis */
em { font-style: italic; }
em em { font-style: normal; }
em em em { font-style: italic; }
/* Titres */
/* Titles */
h1 { font-size: 200%; font-weight: 900; }
h2 { font-size: 160%; font-weight: 900; }
h3 { font-size: 130%; font-weight: bold; }
h4 { font-size: 115%; font-weight: bold; }
h5 { font-size: 108%; font-weight: bold; }
h6 { font-weight: bold; }
/* Nom de famille en petites majuscules (uniquement en fran<61>ais) */
/* Last names in small caps (for French only) */
*[class~="surname"]:lang(fr) { font-variant: small-caps; }
/* Blocs de citation */
/* Quotation blocs */
div[class~="blockquote"] {
border: solid 2px #AAA;
padding: 5px;
margin: 5px;
}
div[class~="blockquote"] > table {
border: none;
}
/* Blocs lit<69>raux<75>: fond gris clair */
/* Literal blocs: light gray background */
*[class~="literallayout"] {
background: #f0f0f0;
padding: 5px;
margin: 5px;
}
/* Programmes et captures texte<74>: fond bleu clair */
/* Listing and text screen snapshots: light blue background */
*[class~="programlisting"], *[class~="screen"] {
background: #f0f0ff;
padding: 5px;
margin: 5px;
}
/* Les textes <20> remplacer sont surlign<67>s en vert p<>le */
/* Replaceable text in highlighted in pale green */
*[class~="replaceable"] {
background-color: #98fb98;
font-style: normal; }
/* Tables<65>: fonds gris clair & bords simples */
/* Tables: light gray background and solid borders */
*[class~="table"] *[class~="title"] { width:100%; border: 0px; }
table {
border: 1px solid #aaa;
border-collapse: collapse;
padding: 2px;
margin: 5px;
}
/* Listes simples en style table */
/* Simples lists in table presentation */
table[class~="simplelist"] {
background-color: #F0F0F0;
margin: 5px;
border: solid 1px #AAA;
}
table[class~="simplelist"] td {
border: solid 1px #AAA;
}
/* Les tables */
/* Tables */
*[class~="table"] table {
background-color: #F0F0F0;
border: solid 1px #AAA;
}
*[class~="informaltable"] table { background-color: #F0F0F0; }
th,td {
vertical-align: baseline;
text-align: left;
padding: 0.1em 0.3em;
empty-cells: show;
}
/* Alignement des colonnes */
/* Colunms alignment */
td[align=center] , th[align=center] { text-align: center; }
td[align=right] , th[align=right] { text-align: right; }
td[align=left] , th[align=left] { text-align: left; }
td[align=justify] , th[align=justify] { text-align: justify; }
/* Pas de marge autour des images */
/* No inside margins for images */
img { border: 0; }
/* Les liens ne sont pas soulign<67>s */
/* No underlines for links */
:link , :visited , :active { text-decoration: none; }
/* Prudence<63>: cadre jaune et fond jaune clair */
/* Caution: yellow border and light yellow background */
*[class~="caution"] {
border: solid 2px yellow;
background-color: #ffffe0;
padding: 1em 6px 1em ;
margin: 5px;
}
*[class~="caution"] th {
vertical-align: middle
}
*[class~="caution"] table {
background-color: #ffffe0;
border: none;
}
/* Note importante<74>: cadre jaune et fond jaune clair */
/* Important: yellow border and light yellow background */
*[class~="important"] {
border: solid 2px yellow;
background-color: #ffffe0;
padding: 1em 6px 1em;
margin: 5px;
}
*[class~="important"] th {
vertical-align: middle
}
*[class~="important"] table {
background-color: #ffffe0;
border: none;
}
/* Mise en <20>vidence<63>: texte l<>g<EFBFBD>rement plus grand */
/* Highlights: slightly larger texts */
*[class~="highlights"] {
font-size: 110%;
}
/* Note<74>: cadre bleu et fond bleu clair */
/* Notes: blue border and light blue background */
*[class~="note"] {
border: solid 2px #7099C5;
background-color: #f0f0ff;
padding: 1em 6px 1em ;
margin: 5px;
}
*[class~="note"] th {
vertical-align: middle
}
*[class~="note"] table {
background-color: #f0f0ff;
border: none;
}
/* Astuce<63>: cadre vert et fond vert clair */
/* Tip: green border and light green background */
*[class~="tip"] {
border: solid 2px #00ff00;
background-color: #f0ffff;
padding: 1em 6px 1em ;
margin: 5px;
}
*[class~="tip"] th {
vertical-align: middle;
}
*[class~="tip"] table {
background-color: #f0ffff;
border: none;
}
/* Avertissement<6E>: cadre rouge et fond rouge clair */
/* Warning: red border and light red background */
*[class~="warning"] {
border: solid 2px #ff0000;
background-color: #fff0f0;
padding: 1em 6px 1em ;
margin: 5px;
}
*[class~="warning"] th {
vertical-align: middle;
}
*[class~="warning"] table {
background-color: #fff0f0;
border: none;
}
/* Fin */
/* The End */

View File

@@ -1,100 +0,0 @@
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
import datetime
current_version = "dev"
# String used in sidebar
version = 'Version: ' + current_version
if current_version == 'dev':
version = 'Version: Current Development'
# Version seen in documentation_options.js and hence in js switchers code
release = current_version
# -- Project information -----------------------------------------------------
project = 'Bitbake'
copyright = '2004-%s, Richard Purdie, Chris Larson, and Phil Blundell' \
% datetime.datetime.now().year
author = 'Richard Purdie, Chris Larson, and Phil Blundell'
# external links and substitutions
extlinks = {
'yocto_docs': ('https://docs.yoctoproject.org%s', None),
'oe_lists': ('https://lists.openembedded.org%s', None),
}
# -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autosectionlabel',
'sphinx.ext.extlinks',
]
autosectionlabel_prefix_document = True
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# master document name. The default changed from contents to index. so better
# set it ourselves.
master_doc = 'index'
# create substitution for project configuration variables
rst_prolog = """
.. |project_name| replace:: %s
.. |copyright| replace:: %s
.. |author| replace:: %s
""" % (project, copyright, author)
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
try:
import sphinx_rtd_theme
html_theme = 'sphinx_rtd_theme'
except ImportError:
sys.stderr.write("The Sphinx sphinx_rtd_theme HTML theme was not found.\
\nPlease make sure to install the sphinx_rtd_theme python package.\n")
sys.exit(1)
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['sphinx-static']
# Add customm CSS and JS files
html_css_files = ['theme_overrides.css']
html_js_files = ['switchers.js']
# Hide 'Created using Sphinx' text
html_show_sphinx = False
# Add 'Last updated' on each page
html_last_updated_fmt = '%b %d, %Y'
# Remove the trailing 'dot' in section numbers
html_secnumber_suffix = " "

View File

@@ -1,3 +0,0 @@
=====
Index
=====

View File

@@ -1,38 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
===================
BitBake User Manual
===================
|
.. toctree::
:caption: Table of Contents
:numbered:
bitbake-user-manual/bitbake-user-manual-intro
bitbake-user-manual/bitbake-user-manual-execution
bitbake-user-manual/bitbake-user-manual-metadata
bitbake-user-manual/bitbake-user-manual-fetching
bitbake-user-manual/bitbake-user-manual-ref-variables
bitbake-user-manual/bitbake-user-manual-hello
.. toctree::
:maxdepth: 1
:hidden:
genindex
releases
----
.. include:: <xhtml1-lat1.txt>
| BitBake Community
| Copyright |copy| |copyright|
| <bitbake-devel@lists.openembedded.org>
This work is licensed under the Creative Commons Attribution License. To view a
copy of this license, visit http://creativecommons.org/licenses/by/2.5/ or send
a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View,
California 94041, USA.

51
bitbake/doc/poky.ent Normal file
View File

@@ -0,0 +1,51 @@
<!ENTITY DISTRO "1.4">
<!ENTITY DISTRO_NAME "tbd">
<!ENTITY YOCTO_DOC_VERSION "1.4">
<!ENTITY POKYVERSION "8.0">
<!ENTITY YOCTO_POKY "poky-&DISTRO_NAME;-&POKYVERSION;">
<!ENTITY COPYRIGHT_YEAR "2010-2013">
<!ENTITY YOCTO_DL_URL "http://downloads.yoctoproject.org">
<!ENTITY YOCTO_HOME_URL "http://www.yoctoproject.org">
<!ENTITY YOCTO_LISTS_URL "http://lists.yoctoproject.org">
<!ENTITY YOCTO_BUGZILLA_URL "http://bugzilla.yoctoproject.org">
<!ENTITY YOCTO_WIKI_URL "https://wiki.yoctoproject.org">
<!ENTITY YOCTO_AB_URL "http://autobuilder.yoctoproject.org">
<!ENTITY YOCTO_GIT_URL "http://git.yoctoproject.org">
<!ENTITY YOCTO_ADTREPO_URL "http://adtrepo.yoctoproject.org">
<!ENTITY OE_HOME_URL "http://www.openembedded.org">
<!ENTITY OE_LISTS_URL "http://lists.linuxtogo.org/cgi-bin/mailman">
<!ENTITY OE_DOCS_URL "http://docs.openembedded.org">
<!ENTITY OH_HOME_URL "http://o-hand.com">
<!ENTITY BITBAKE_HOME_URL "http://developer.berlios.de/projects/bitbake/">
<!ENTITY YOCTO_DOCS_URL "&YOCTO_HOME_URL;/docs">
<!ENTITY YOCTO_SOURCES_URL "&YOCTO_HOME_URL;/sources/">
<!ENTITY YOCTO_AB_PORT_URL "&YOCTO_AB_URL;:8010">
<!ENTITY YOCTO_AB_NIGHTLY_URL "&YOCTO_AB_URL;/nightly/">
<!ENTITY YOCTO_POKY_URL "&YOCTO_DL_URL;/releases/poky/">
<!ENTITY YOCTO_RELEASE_DL_URL "&YOCTO_DL_URL;/releases/yocto/yocto-&DISTRO;">
<!ENTITY YOCTO_TOOLCHAIN_DL_URL "&YOCTO_RELEASE_DL_URL;/toolchain/">
<!ENTITY YOCTO_ADTINSTALLER_DL_URL "&YOCTO_RELEASE_DL_URL;/adt_installer">
<!ENTITY YOCTO_POKY_DL_URL "&YOCTO_RELEASE_DL_URL;/&YOCTO_POKY;.tar.bz2">
<!ENTITY YOCTO_MACHINES_DL_URL "&YOCTO_RELEASE_DL_URL;/machines">
<!ENTITY YOCTO_QEMU_DL_URL "&YOCTO_MACHINES_DL_URL;/qemu">
<!ENTITY YOCTO_PYTHON-i686_DL_URL "&YOCTO_DL_URL;/releases/miscsupport/python-nativesdk-standalone-i686.tar.bz2">
<!ENTITY YOCTO_PYTHON-x86_64_DL_URL "&YOCTO_DL_URL;/releases/miscsupport/python-nativesdk-standalone-x86_64.tar.bz2">
<!ENTITY YOCTO_DOCS_QS_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/yocto-project-qs/yocto-project-qs.html">
<!ENTITY YOCTO_DOCS_ADT_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/adt-manual/adt-manual.html">
<!ENTITY YOCTO_DOCS_REF_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/ref-manual/ref-manual.html">
<!ENTITY YOCTO_DOCS_BSP_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/bsp-guide/bsp-guide.html">
<!ENTITY YOCTO_DOCS_DEV_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/dev-manual/dev-manual.html">
<!ENTITY YOCTO_DOCS_KERNEL_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/kernel-manual/kernel-manual.html">
<!ENTITY YOCTO_ADTPATH_DIR "/opt/poky/&DISTRO;">
<!ENTITY YOCTO_POKY_TARBALL "&YOCTO_POKY;.tar.bz2">
<!ENTITY OE_INIT_PATH "&YOCTO_POKY;/oe-init-build-env">
<!ENTITY OE_INIT_FILE "oe-init-build-env">
<!ENTITY UBUNTU_HOST_PACKAGES_ESSENTIAL "gawk wget git-core diffstat unzip texinfo \
build-essential chrpath">
<!ENTITY FEDORA_HOST_PACKAGES_ESSENTIAL "gawk make wget tar bzip2 gzip python unzip perl patch \
diffutils diffstat git cpp gcc gcc-c++ eglibc-devel texinfo chrpath \
ccache">
<!ENTITY OPENSUSE_HOST_PACKAGES_ESSENTIAL "python gcc gcc-c++ git chrpath make wget python-xml \
diffstat texinfo python-curses">
<!ENTITY CENTOS_HOST_PACKAGES_ESSENTIAL "gawk make wget tar bzip2 gzip python unzip perl patch \
diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath">

View File

@@ -1,130 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
=========================
Current Release Manuals
=========================
****************************
3.1 'dunfell' Release Series
****************************
- :yocto_docs:`3.1 BitBake User Manual </3.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.1.1 BitBake User Manual </3.1.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.1.2 BitBake User Manual </3.1.2/bitbake-user-manual/bitbake-user-manual.html>`
==========================
Previous Release Manuals
==========================
*************************
3.0 'zeus' Release Series
*************************
- :yocto_docs:`3.0 BitBake User Manual </3.0/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.0.1 BitBake User Manual </3.0.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.0.2 BitBake User Manual </3.0.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.0.3 BitBake User Manual </3.0.3/bitbake-user-manual/bitbake-user-manual.html>`
****************************
2.7 'warrior' Release Series
****************************
- :yocto_docs:`2.7 BitBake User Manual </2.7/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.7.1 BitBake User Manual </2.7.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.7.2 BitBake User Manual </2.7.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.7.3 BitBake User Manual </2.7.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.7.4 BitBake User Manual </2.7.4/bitbake-user-manual/bitbake-user-manual.html>`
*************************
2.6 'thud' Release Series
*************************
- :yocto_docs:`2.6 BitBake User Manual </2.6/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.6.1 BitBake User Manual </2.6.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.6.2 BitBake User Manual </2.6.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.6.3 BitBake User Manual </2.6.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.6.4 BitBake User Manual </2.6.4/bitbake-user-manual/bitbake-user-manual.html>`
*************************
2.5 'sumo' Release Series
*************************
- :yocto_docs:`2.5 BitBake User Manual </2.5/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.5.1 BitBake User Manual </2.5.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.5.2 BitBake User Manual </2.5.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.5.3 BitBake User Manual </2.5.3/bitbake-user-manual/bitbake-user-manual.html>`
**************************
2.4 'rocko' Release Series
**************************
- :yocto_docs:`2.4 BitBake User Manual </2.4/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.4.1 BitBake User Manual </2.4.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.4.2 BitBake User Manual </2.4.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.4.3 BitBake User Manual </2.4.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.4.4 BitBake User Manual </2.4.4/bitbake-user-manual/bitbake-user-manual.html>`
*************************
2.3 'pyro' Release Series
*************************
- :yocto_docs:`2.3 BitBake User Manual </2.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.3.1 BitBake User Manual </2.3.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.3.2 BitBake User Manual </2.3.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.3.3 BitBake User Manual </2.3.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.3.4 BitBake User Manual </2.3.4/bitbake-user-manual/bitbake-user-manual.html>`
**************************
2.2 'morty' Release Series
**************************
- :yocto_docs:`2.2 BitBake User Manual </2.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.2.1 BitBake User Manual </2.2.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.2.2 BitBake User Manual </2.2.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.2.3 BitBake User Manual </2.2.3/bitbake-user-manual/bitbake-user-manual.html>`
****************************
2.1 'krogoth' Release Series
****************************
- :yocto_docs:`2.1 BitBake User Manual </2.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.1.1 BitBake User Manual </2.1.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.1.2 BitBake User Manual </2.1.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.1.3 BitBake User Manual </2.1.3/bitbake-user-manual/bitbake-user-manual.html>`
***************************
2.0 'jethro' Release Series
***************************
- :yocto_docs:`1.9 BitBake User Manual </1.9/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.0 BitBake User Manual </2.0/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.0.1 BitBake User Manual </2.0.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.0.2 BitBake User Manual </2.0.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.0.3 BitBake User Manual </2.0.3/bitbake-user-manual/bitbake-user-manual.html>`
*************************
1.8 'fido' Release Series
*************************
- :yocto_docs:`1.8 BitBake User Manual </1.8/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.8.1 BitBake User Manual </1.8.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.8.2 BitBake User Manual </1.8.2/bitbake-user-manual/bitbake-user-manual.html>`
**************************
1.7 'dizzy' Release Series
**************************
- :yocto_docs:`1.7 BitBake User Manual </1.7/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.7.1 BitBake User Manual </1.7.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.7.2 BitBake User Manual </1.7.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.7.3 BitBake User Manual </1.7.3/bitbake-user-manual/bitbake-user-manual.html>`
**************************
1.6 'daisy' Release Series
**************************
- :yocto_docs:`1.6 BitBake User Manual </1.6/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.6.1 BitBake User Manual </1.6.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.6.2 BitBake User Manual </1.6.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.6.3 BitBake User Manual </1.6.3/bitbake-user-manual/bitbake-user-manual.html>`

View File

@@ -1,233 +0,0 @@
(function() {
'use strict';
var all_versions = {
'dev': 'dev (3.2)',
'3.1.2': '3.1.2',
'3.0.3': '3.0.3',
'2.7.4': '2.7.4',
};
var all_doctypes = {
'single': 'Individual Webpages',
'mega': "All-in-one 'Mega' Manual",
};
// Simple version comparision
// Return 1 if a > b
// Return -1 if a < b
// Return 0 if a == b
function ver_compare(a, b) {
if (a == "dev") {
return 1;
}
if (a === b) {
return 0;
}
var a_components = a.split(".");
var b_components = b.split(".");
var len = Math.min(a_components.length, b_components.length);
// loop while the components are equal
for (var i = 0; i < len; i++) {
// A bigger than B
if (parseInt(a_components[i]) > parseInt(b_components[i])) {
return 1;
}
// B bigger than A
if (parseInt(a_components[i]) < parseInt(b_components[i])) {
return -1;
}
}
// If one's a prefix of the other, the longer one is greater.
if (a_components.length > b_components.length) {
return 1;
}
if (a_components.length < b_components.length) {
return -1;
}
// Otherwise they are the same.
return 0;
}
function build_version_select(current_series, current_version) {
var buf = ['<select>'];
$.each(all_versions, function(version, title) {
var series = version.substr(0, 3);
if (series == current_series) {
if (version == current_version)
buf.push('<option value="' + version + '" selected="selected">' + title + '</option>');
else
buf.push('<option value="' + version + '">' + title + '</option>');
if (version != current_version)
buf.push('<option value="' + current_version + '" selected="selected">' + current_version + '</option>');
} else {
buf.push('<option value="' + version + '">' + title + '</option>');
}
});
buf.push('</select>');
return buf.join('');
}
function build_doctype_select(current_doctype) {
var buf = ['<select>'];
$.each(all_doctypes, function(doctype, title) {
if (doctype == current_doctype)
buf.push('<option value="' + doctype + '" selected="selected">' +
all_doctypes[current_doctype] + '</option>');
else
buf.push('<option value="' + doctype + '">' + title + '</option>');
});
if (!(current_doctype in all_doctypes)) {
// In case we're browsing a doctype that is not yet in all_doctypes.
buf.push('<option value="' + current_doctype + '" selected="selected">' +
current_doctype + '</option>');
all_doctypes[current_doctype] = current_doctype;
}
buf.push('</select>');
return buf.join('');
}
function navigate_to_first_existing(urls) {
// Navigate to the first existing URL in urls.
var url = urls.shift();
// Web browsers won't redirect file:// urls to file urls using ajax but
// its useful for local testing
if (url.startsWith("file://")) {
window.location.href = url;
return;
}
if (urls.length == 0) {
window.location.href = url;
return;
}
$.ajax({
url: url,
success: function() {
window.location.href = url;
},
error: function() {
navigate_to_first_existing(urls);
}
});
}
function get_docroot_url() {
var url = window.location.href;
var root = DOCUMENTATION_OPTIONS.URL_ROOT;
var urlarray = url.split('/');
// Trim off anything after '/'
urlarray.pop();
var depth = (root.match(/\.\.\//g) || []).length;
for (var i = 0; i < depth; i++) {
urlarray.pop();
}
return urlarray.join('/') + '/';
}
function on_version_switch() {
var selected_version = $(this).children('option:selected').attr('value');
var url = window.location.href;
var current_version = DOCUMENTATION_OPTIONS.VERSION;
var docroot = get_docroot_url()
var new_versionpath = selected_version + '/';
if (selected_version == "dev")
new_versionpath = '';
// dev versions have no version prefix
if (current_version == "dev") {
var new_url = docroot + new_versionpath + url.replace(docroot, "");
var fallback_url = docroot + new_versionpath;
} else {
var new_url = url.replace('/' + current_version + '/', '/' + new_versionpath);
var fallback_url = new_url.replace(url.replace(docroot, ""), "");
}
console.log(get_docroot_url())
console.log(url + " to url " + new_url);
console.log(url + " to fallback " + fallback_url);
if (new_url != url) {
navigate_to_first_existing([
new_url,
fallback_url,
'https://www.yoctoproject.org/docs/',
]);
}
}
function on_doctype_switch() {
var selected_doctype = $(this).children('option:selected').attr('value');
var url = window.location.href;
if (selected_doctype == 'mega') {
var docroot = get_docroot_url()
var current_version = DOCUMENTATION_OPTIONS.VERSION;
// Assume manuals before 3.2 are using old docbook mega-manual
if (ver_compare(current_version, "3.2") < 0) {
var new_url = docroot + "mega-manual/mega-manual.html";
} else {
var new_url = docroot + "singleindex.html";
}
} else {
var new_url = url.replace("singleindex.html", "index.html")
}
if (new_url != url) {
navigate_to_first_existing([
new_url,
'https://www.yoctoproject.org/docs/',
]);
}
}
// Returns the current doctype based upon the url
function doctype_segment_from_url(url) {
if (url.includes("singleindex") || url.includes("mega-manual"))
return "mega";
return "single";
}
$(document).ready(function() {
var release = DOCUMENTATION_OPTIONS.VERSION;
var current_doctype = doctype_segment_from_url(window.location.href);
var current_series = release.substr(0, 3);
var version_select = build_version_select(current_series, release);
$('.version_switcher_placeholder').html(version_select);
$('.version_switcher_placeholder select').bind('change', on_version_switch);
var doctype_select = build_doctype_select(current_doctype);
$('.doctype_switcher_placeholder').html(doctype_select);
$('.doctype_switcher_placeholder select').bind('change', on_doctype_switch);
if (ver_compare(release, "3.1") < 0) {
$('#outdated-warning').html('Version ' + release + ' of the project is now considered obsolete, please select and use a more recent version');
$('#outdated-warning').css('padding', '.5em');
} else if (release != "dev") {
$.each(all_versions, function(version, title) {
var series = version.substr(0, 3);
if (series == current_series && version != release) {
$('#outdated-warning').html('This document is for outdated version ' + release + ', you should select the latest release version in this series, ' + version + '.');
$('#outdated-warning').css('padding', '.5em');
}
});
}
});
})();

View File

@@ -1,162 +0,0 @@
/*
SPDX-License-Identifier: CC-BY-2.0-UK
*/
body {
font-family: Verdana, Sans, sans-serif;
margin: 0em auto;
color: #333;
}
h1,h2,h3,h4,h5,h6,h7 {
font-family: Arial, Sans;
color: #00557D;
clear: both;
}
h1 {
font-size: 2em;
text-align: left;
padding: 0em 0em 0em 0em;
margin: 2em 0em 0em 0em;
}
h2.subtitle {
margin: 0.10em 0em 3.0em 0em;
padding: 0em 0em 0em 0em;
font-size: 1.8em;
padding-left: 20%;
font-weight: normal;
font-style: italic;
}
h2 {
margin: 2em 0em 0.66em 0em;
padding: 0.5em 0em 0em 0em;
font-size: 1.5em;
font-weight: bold;
}
h3.subtitle {
margin: 0em 0em 1em 0em;
padding: 0em 0em 0em 0em;
font-size: 142.14%;
text-align: right;
}
h3 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 140%;
font-weight: bold;
}
h4 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 120%;
font-weight: bold;
}
h5 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 110%;
font-weight: bold;
}
h6 {
margin: 1em 0em 0em 0em;
padding: 1em 0em 0em 0em;
font-size: 110%;
font-weight: bold;
}
em {
font-weight: bold;
}
.pre {
font-size: medium;
font-family: Courier, monospace;
}
.wy-nav-content a {
text-decoration: underline;
color: #444;
background: transparent;
}
.wy-nav-content a:hover {
text-decoration: underline;
background-color: #dedede;
}
.wy-nav-content a:visited {
color: #444;
}
[alt='Permalink'] { color: #eee; }
[alt='Permalink']:hover { color: black; }
@media screen {
/* content column
*
* RTD theme's default is 800px as max width for the content, but we have
* tables with tons of columns, which need the full width of the view-port.
*/
.wy-nav-content{max-width: none; }
/* inline literal: drop the borderbox, padding and red color */
code, .rst-content tt, .rst-content code {
color: inherit;
border: none;
padding: unset;
background: inherit;
font-size: 85%;
}
.rst-content tt.literal,.rst-content tt.literal,.rst-content code.literal {
color: inherit;
}
/* Admonition should be gray, not blue or green */
.rst-content .note .admonition-title,
.rst-content .tip .admonition-title,
.rst-content .warning .admonition-title,
.rst-content .caution .admonition-title,
.rst-content .important .admonition-title {
background: #f0f0f2;
color: #00557D;
}
.rst-content .note,
.rst-content .tip,
.rst-content .important,
.rst-content .warning,
.rst-content .caution {
background: #f0f0f2;
}
/* Remove the icon in front of note/tip element, and before the logo */
.icon-home:before, .rst-content .admonition-title:before {
display: none
}
/* a custom informalexample container is used in some doc */
.informalexample {
border: 1px solid;
border-color: #aaa;
margin: 1em 0em;
padding: 1em;
page-break-inside: avoid;
}
/* Remove the blue background in the top left corner, around the logo */
.wy-side-nav-search {
background: inherit;
}
}

1
bitbake/doc/template/Vera.xml vendored Normal file

File diff suppressed because one or more lines are too long

1
bitbake/doc/template/VeraMoBd.xml vendored Normal file

File diff suppressed because one or more lines are too long

1
bitbake/doc/template/VeraMono.xml vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,39 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d="http://docbook.org/ns/docbook"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="d">
<xsl:template name="component.title">
<xsl:param name="node" select="."/>
<xsl:variable name="level">
<xsl:choose>
<xsl:when test="ancestor::d:section">
<xsl:value-of select="count(ancestor::d:section)+1"/>
</xsl:when>
<xsl:when test="ancestor::d:sect5">6</xsl:when>
<xsl:when test="ancestor::d:sect4">5</xsl:when>
<xsl:when test="ancestor::d:sect3">4</xsl:when>
<xsl:when test="ancestor::d:sect2">3</xsl:when>
<xsl:when test="ancestor::d:sect1">2</xsl:when>
<xsl:otherwise>1</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:element name="h{$level+1}" namespace="http://www.w3.org/1999/xhtml">
<xsl:attribute name="class">title</xsl:attribute>
<xsl:if test="$generate.id.attributes = 0">
<xsl:call-template name="anchor">
<xsl:with-param name="node" select="$node"/>
<xsl:with-param name="conditional" select="0"/>
</xsl:call-template>
</xsl:if>
<xsl:apply-templates select="$node" mode="object.title.markup">
<xsl:with-param name="allow-anchors" select="1"/>
</xsl:apply-templates>
<xsl:call-template name="permalink">
<xsl:with-param name="node" select="$node"/>
</xsl:call-template>
</xsl:element>
</xsl:template>
</xsl:stylesheet>

64
bitbake/doc/template/db-pdf.xsl vendored Normal file
View File

@@ -0,0 +1,64 @@
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl" />
<!-- check project-plan.sh for how this is generated, needed to tweak
the cover page
-->
<xsl:include href="/tmp/titlepage.xsl"/>
<!-- To force a page break in document, i.e per section add a
<?hard-pagebreak?> tag.
-->
<xsl:template match="processing-instruction('hard-pagebreak')">
<fo:block break-before='page' />
</xsl:template>
<!--Fix for defualt indent getting TOC all wierd..
See http://sources.redhat.com/ml/docbook-apps/2005-q1/msg00455.html
FIXME: must be a better fix
-->
<xsl:param name="body.start.indent" select="'0'"/>
<!--<xsl:param name="title.margin.left" select="'0'"/>-->
<!-- stop long-ish header titles getting wrapped -->
<xsl:param name="header.column.widths">1 10 1</xsl:param>
<!-- customise headers and footers a little -->
<xsl:template name="head.sep.rule">
<xsl:if test="$header.rule != 0">
<xsl:attribute name="border-bottom-width">0.5pt</xsl:attribute>
<xsl:attribute name="border-bottom-style">solid</xsl:attribute>
<xsl:attribute name="border-bottom-color">#cccccc</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template name="foot.sep.rule">
<xsl:if test="$footer.rule != 0">
<xsl:attribute name="border-top-width">0.5pt</xsl:attribute>
<xsl:attribute name="border-top-style">solid</xsl:attribute>
<xsl:attribute name="border-top-color">#cccccc</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:attribute-set name="header.content.properties">
<xsl:attribute name="color">#cccccc</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="footer.content.properties">
<xsl:attribute name="color">#cccccc</xsl:attribute>
</xsl:attribute-set>
<!-- general settings -->
<xsl:param name="fop1.extensions" select="1"></xsl:param>
<xsl:param name="paper.type" select="'A4'"></xsl:param>
<xsl:param name="section.autolabel" select="1"></xsl:param>
<xsl:param name="body.font.family" select="'verasans'"></xsl:param>
<xsl:param name="title.font.family" select="'verasans'"></xsl:param>
<xsl:param name="monospace.font.family" select="'veramono'"></xsl:param>
</xsl:stylesheet>

25
bitbake/doc/template/division.title.xsl vendored Normal file
View File

@@ -0,0 +1,25 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d="http://docbook.org/ns/docbook"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="d">
<xsl:template name="division.title">
<xsl:param name="node" select="."/>
<h1>
<xsl:attribute name="class">title</xsl:attribute>
<xsl:call-template name="anchor">
<xsl:with-param name="node" select="$node"/>
<xsl:with-param name="conditional" select="0"/>
</xsl:call-template>
<xsl:apply-templates select="$node" mode="object.title.markup">
<xsl:with-param name="allow-anchors" select="1"/>
</xsl:apply-templates>
<xsl:call-template name="permalink">
<xsl:with-param name="node" select="$node"/>
</xsl:call-template>
</h1>
</xsl:template>
</xsl:stylesheet>

58
bitbake/doc/template/fop-config.xml vendored Normal file
View File

@@ -0,0 +1,58 @@
<fop version="1.0">
<!-- Strict user configuration -->
<strict-configuration>true</strict-configuration>
<!-- Strict FO validation -->
<strict-validation>true</strict-validation>
<!--
Set the baseDir so common/openedhand.svg references in plans still
work ok. Note, relative file references to current dir should still work.
-->
<base>../template</base>
<font-base>../template</font-base>
<!-- Source resolution in dpi (dots/pixels per inch) for determining the
size of pixels in SVG and bitmap images, default: 72dpi -->
<!-- <source-resolution>72</source-resolution> -->
<!-- Target resolution in dpi (dots/pixels per inch) for specifying the
target resolution for generated bitmaps, default: 72dpi -->
<!-- <target-resolution>72</target-resolution> -->
<!-- default page-height and page-width, in case
value is specified as auto -->
<default-page-settings height="11in" width="8.26in"/>
<!-- <use-cache>false</use-cache> -->
<renderers>
<renderer mime="application/pdf">
<fonts>
<font metrics-file="VeraMono.xml"
kerning="yes"
embed-url="VeraMono.ttf">
<font-triplet name="veramono" style="normal" weight="normal"/>
</font>
<font metrics-file="VeraMoBd.xml"
kerning="yes"
embed-url="VeraMoBd.ttf">
<font-triplet name="veramono" style="normal" weight="bold"/>
</font>
<font metrics-file="Vera.xml"
kerning="yes"
embed-url="Vera.ttf">
<font-triplet name="verasans" style="normal" weight="normal"/>
<font-triplet name="verasans" style="normal" weight="bold"/>
<font-triplet name="verasans" style="italic" weight="normal"/>
<font-triplet name="verasans" style="italic" weight="bold"/>
</font>
<auto-detect/>
</fonts>
</renderer>
</renderers>
</fop>

View File

@@ -0,0 +1,21 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d="http://docbook.org/ns/docbook"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="d">
<xsl:template name="formal.object.heading">
<xsl:param name="object" select="."/>
<xsl:param name="title">
<xsl:apply-templates select="$object" mode="object.title.markup">
<xsl:with-param name="allow-anchors" select="1"/>
</xsl:apply-templates>
</xsl:param>
<p class="title">
<b><xsl:copy-of select="$title"/></b>
<xsl:call-template name="permalink">
<xsl:with-param name="node" select="$object"/>
</xsl:call-template>
</p>
</xsl:template>
</xsl:stylesheet>

View File

@@ -0,0 +1,14 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d="http://docbook.org/ns/docbook"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:template match="glossentry/glossterm">
<xsl:apply-imports/>
<xsl:if test="$generate.permalink != 0">
<xsl:call-template name="permalink">
<xsl:with-param name="node" select=".."/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

25
bitbake/doc/template/permalinks.xsl vendored Normal file
View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="generate.permalink" select="1"/>
<xsl:param name="permalink.text"></xsl:param>
<xsl:template name="permalink">
<xsl:param name="node"/>
<xsl:if test="$generate.permalink != '0'">
<span class="permalink">
<a alt="Permalink" title="Permalink">
<xsl:attribute name="href">
<xsl:call-template name="href.target">
<xsl:with-param name="object" select="$node"/>
</xsl:call-template>
</xsl:attribute>
<xsl:copy-of select="$permalink.text"/>
</a>
</span>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

55
bitbake/doc/template/section.title.xsl vendored Normal file
View File

@@ -0,0 +1,55 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d="http://docbook.org/ns/docbook"
xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="d">
<xsl:template name="section.title">
<xsl:variable name="section"
select="(ancestor::section |
ancestor::simplesect|
ancestor::sect1|
ancestor::sect2|
ancestor::sect3|
ancestor::sect4|
ancestor::sect5)[last()]"/>
<xsl:variable name="renderas">
<xsl:choose>
<xsl:when test="$section/@renderas = 'sect1'">1</xsl:when>
<xsl:when test="$section/@renderas = 'sect2'">2</xsl:when>
<xsl:when test="$section/@renderas = 'sect3'">3</xsl:when>
<xsl:when test="$section/@renderas = 'sect4'">4</xsl:when>
<xsl:when test="$section/@renderas = 'sect5'">5</xsl:when>
<xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="level">
<xsl:choose>
<xsl:when test="$renderas != ''">
<xsl:value-of select="$renderas"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="section.level">
<xsl:with-param name="node" select="$section"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="section.heading">
<xsl:with-param name="section" select="$section"/>
<xsl:with-param name="level" select="$level"/>
<xsl:with-param name="title">
<xsl:apply-templates select="$section" mode="object.title.markup">
<xsl:with-param name="allow-anchors" select="1"/>
</xsl:apply-templates>
<xsl:if test="$level &gt; 0">
<xsl:call-template name="permalink">
<xsl:with-param name="node" select="$section"/>
</xsl:call-template>
</xsl:if>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
</xsl:stylesheet>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,51 @@
#!/bin/sh
if [ -z "$1" -o -z "$2" ]; then
echo "usage: [-v] $0 <docbook file> <templatedir>"
echo
echo "*NOTE* you need xsltproc, fop and nwalsh docbook stylesheets"
echo " installed for this to work!"
echo
exit 0
fi
FO=`echo $1 | sed s/.xml/.fo/` || exit 1
PDF=`echo $1 | sed s/.xml/.pdf/` || exit 1
TEMPLATEDIR=$2
##
# These URI should be rewritten by your distribution's xml catalog to
# match your localy installed XSL stylesheets.
XSL_BASE_URI="http://docbook.sourceforge.net/release/xsl/current"
# Creates a temporary XSL stylesheet based on titlepage.xsl
xsltproc -o /tmp/titlepage.xsl \
--xinclude \
$XSL_BASE_URI/template/titlepage.xsl \
$TEMPLATEDIR/titlepage.templates.xml || exit 1
# Creates the file needed for FOP
xsltproc --xinclude \
--stringparam hyphenate false \
--stringparam formal.title.placement "figure after" \
--stringparam ulink.show 1 \
--stringparam body.font.master 9 \
--stringparam title.font.master 11 \
--stringparam draft.watermark.image "$TEMPLATEDIR/draft.png" \
--stringparam chapter.autolabel 1 \
--stringparam appendix.autolabel A \
--stringparam section.autolabel 1 \
--stringparam section.label.includes.component.label 1 \
--output $FO \
$TEMPLATEDIR/db-pdf.xsl \
$1 || exit 1
# Invokes the Java version of FOP. Uses the additional configuration file common/fop-config.xml
fop -c $TEMPLATEDIR/fop-config.xml -fo $FO -pdf $PDF || exit 1
rm -f $FO
rm -f /tmp/titlepage.xsl
echo
echo " #### Success! $PDF ready. ####"
echo

View File

@@ -3,14 +3,14 @@
#
# Copyright (C) 2006 Tim Ansell
#
# Please Note:
#Please Note:
# Be careful when using mutable types (ie Dict and Lists) - operations involving these are SLOW.
# Assign a file to __warn__ to get warnings about slow operations.
#
import copy
import types
ImmutableTypes = (
bool,
complex,
@@ -23,11 +23,9 @@ ImmutableTypes = (
MUTABLE = "__mutable__"
class COWMeta(type):
pass
class COWDictMeta(COWMeta):
__warn__ = False
__hasmutable__ = False
@@ -36,15 +34,12 @@ class COWDictMeta(COWMeta):
def __str__(cls):
# FIXME: I have magic numbers!
return "<COWDict Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) - 3)
__repr__ = __str__
def cow(cls):
class C(cls):
__count__ = cls.__count__ + 1
return C
copy = cow
__call__ = cow
@@ -76,9 +71,8 @@ class COWDictMeta(COWMeta):
return value
__getmarker__ = []
def __getreadonly__(cls, key, default=__getmarker__):
"""
"""\
Get a value (even if mutable) which you promise not to change.
"""
return cls.__getitem__(key, default, True)
@@ -145,29 +139,24 @@ class COWDictMeta(COWMeta):
def iterkeys(cls):
return cls.iter("keys")
def itervalues(cls, readonly=False):
if not cls.__warn__ is False and cls.__hasmutable__ and readonly is False:
print("Warning: If you aren't going to change any of the values call with True.", file=cls.__warn__)
print("Warning: If you arn't going to change any of the values call with True.", file=cls.__warn__)
return cls.iter("values", readonly)
def iteritems(cls, readonly=False):
if not cls.__warn__ is False and cls.__hasmutable__ and readonly is False:
print("Warning: If you aren't going to change any of the values call with True.", file=cls.__warn__)
print("Warning: If you arn't going to change any of the values call with True.", file=cls.__warn__)
return cls.iter("items", readonly)
class COWSetMeta(COWDictMeta):
def __str__(cls):
# FIXME: I have magic numbers!
return "<COWSet Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) - 3)
return "<COWSet Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) -3)
__repr__ = __str__
def cow(cls):
class C(cls):
__count__ = cls.__count__ + 1
return C
def add(cls, value):
@@ -185,11 +174,131 @@ class COWSetMeta(COWDictMeta):
def iteritems(cls):
raise TypeError("sets don't have 'items'")
# These are the actual classes you use!
class COWDictBase(metaclass=COWDictMeta):
class COWDictBase(object, metaclass = COWDictMeta):
__count__ = 0
class COWSetBase(metaclass=COWSetMeta):
class COWSetBase(object, metaclass = COWSetMeta):
__count__ = 0
if __name__ == "__main__":
import sys
COWDictBase.__warn__ = sys.stderr
a = COWDictBase()
print("a", a)
a['a'] = 'a'
a['b'] = 'b'
a['dict'] = {}
b = a.copy()
print("b", b)
b['c'] = 'b'
print()
print("a", a)
for x in a.iteritems():
print(x)
print("--")
print("b", b)
for x in b.iteritems():
print(x)
print()
b['dict']['a'] = 'b'
b['a'] = 'c'
print("a", a)
for x in a.iteritems():
print(x)
print("--")
print("b", b)
for x in b.iteritems():
print(x)
print()
try:
b['dict2']
except KeyError as e:
print("Okay!")
a['set'] = COWSetBase()
a['set'].add("o1")
a['set'].add("o1")
a['set'].add("o2")
print("a", a)
for x in a['set'].itervalues():
print(x)
print("--")
print("b", b)
for x in b['set'].itervalues():
print(x)
print()
b['set'].add('o3')
print("a", a)
for x in a['set'].itervalues():
print(x)
print("--")
print("b", b)
for x in b['set'].itervalues():
print(x)
print()
a['set2'] = set()
a['set2'].add("o1")
a['set2'].add("o1")
a['set2'].add("o2")
print("a", a)
for x in a.iteritems():
print(x)
print("--")
print("b", b)
for x in b.iteritems(readonly=True):
print(x)
print()
del b['b']
try:
print(b['b'])
except KeyError:
print("Yay! deleted key raises error")
if 'b' in b:
print("Boo!")
else:
print("Yay - has_key with delete works!")
print("a", a)
for x in a.iteritems():
print(x)
print("--")
print("b", b)
for x in b.iteritems(readonly=True):
print(x)
print()
b.__revertitem__('b')
print("a", a)
for x in a.iteritems():
print(x)
print("--")
print("b", b)
for x in b.iteritems(readonly=True):
print(x)
print()
b.__revertitem__('dict')
print("a", a)
for x in a.iteritems():
print(x)
print("--")
print("b", b)
for x in b.iteritems(readonly=True):
print(x)
print()

View File

@@ -9,11 +9,11 @@
# SPDX-License-Identifier: GPL-2.0-only
#
__version__ = "1.48.0"
__version__ = "1.44.0"
import sys
if sys.version_info < (3, 5, 0):
raise RuntimeError("Sorry, python 3.5.0 or later is required for this version of bitbake")
if sys.version_info < (3, 4, 0):
raise RuntimeError("Sorry, python 3.4.0 or later is required for this version of bitbake")
class BBHandledException(Exception):
@@ -35,23 +35,20 @@ class NullHandler(logging.Handler):
def emit(self, record):
pass
class BBLoggerMixin(object):
def __init__(self, *args, **kwargs):
# Does nothing to allow calling super() from derived classes
pass
def setup_bblogger(self, name):
Logger = logging.getLoggerClass()
class BBLogger(Logger):
def __init__(self, name):
if name.split(".")[0] == "BitBake":
self.debug = self.bbdebug
Logger.__init__(self, name)
def bbdebug(self, level, msg, *args, **kwargs):
loglevel = logging.DEBUG - level + 1
if not bb.event.worker_pid:
if self.name in bb.msg.loggerDefaultDomains and loglevel > (bb.msg.loggerDefaultDomains[self.name]):
if self.name in bb.msg.loggerDefaultDomains and level > (bb.msg.loggerDefaultDomains[self.name]):
return
if loglevel < bb.msg.loggerDefaultLogLevel:
if level > (bb.msg.loggerDefaultDebugLevel):
return
return self.log(loglevel, msg, *args, **kwargs)
return self.log(logging.DEBUG - level + 1, msg, *args, **kwargs)
def plain(self, msg, *args, **kwargs):
return self.log(logging.INFO + 1, msg, *args, **kwargs)
@@ -62,56 +59,16 @@ class BBLoggerMixin(object):
def verbnote(self, msg, *args, **kwargs):
return self.log(logging.INFO + 2, msg, *args, **kwargs)
Logger = logging.getLoggerClass()
class BBLogger(Logger, BBLoggerMixin):
def __init__(self, name, *args, **kwargs):
self.setup_bblogger(name)
super().__init__(name, *args, **kwargs)
logging.raiseExceptions = False
logging.setLoggerClass(BBLogger)
class BBLoggerAdapter(logging.LoggerAdapter, BBLoggerMixin):
def __init__(self, logger, *args, **kwargs):
self.setup_bblogger(logger.name)
super().__init__(logger, *args, **kwargs)
if sys.version_info < (3, 6):
# These properties were added in Python 3.6. Add them in older versions
# for compatibility
@property
def manager(self):
return self.logger.manager
@manager.setter
def manager(self, value):
self.logger.manager = value
@property
def name(self):
return self.logger.name
def __repr__(self):
logger = self.logger
level = logger.getLevelName(logger.getEffectiveLevel())
return '<%s %s (%s)>' % (self.__class__.__name__, logger.name, level)
logging.LoggerAdapter = BBLoggerAdapter
logger = logging.getLogger("BitBake")
logger.addHandler(NullHandler())
logger.setLevel(logging.DEBUG - 2)
mainlogger = logging.getLogger("BitBake.Main")
class PrefixLoggerAdapter(logging.LoggerAdapter):
def __init__(self, prefix, logger):
super().__init__(logger, {})
self.__msg_prefix = prefix
def process(self, msg, kwargs):
return "%s%s" %(self.__msg_prefix, msg), kwargs
# This has to be imported after the setLoggerClass, as the import of bb.msg
# can result in construction of the various loggers.
import bb.msg

View File

@@ -15,10 +15,9 @@
import os
import sys
import logging
import shlex
import glob
import itertools
import time
import re
import stat
import bb
import bb.msg
@@ -29,9 +28,6 @@ from bb import data, event, utils
bblogger = logging.getLogger('BitBake')
logger = logging.getLogger('BitBake.Build')
verboseShellLogging = False
verboseStdoutLogging = False
__mtime_cache = {}
def cached_mtime_noerror(f):
@@ -70,8 +66,6 @@ class TaskBase(event.Event):
self.taskname = self._task
self.logfile = logfile
self.time = time.time()
self.pn = d.getVar("PN")
self.pv = d.getVar("PV")
event.Event.__init__(self)
self._message = "recipe %s: task %s: %s" % (d.getVar("PF"), t, self.getDisplayName())
@@ -308,60 +302,20 @@ def exec_func_python(func, d, runfile, cwd=None):
def shell_trap_code():
return '''#!/bin/sh\n
__BITBAKE_LAST_LINE=0
# Emit a useful diagnostic if something fails:
bb_sh_exit_handler() {
bb_exit_handler() {
ret=$?
if [ "$ret" != 0 ]; then
echo "WARNING: exit code $ret from a shell command."
fi
exit $ret
case $ret in
0) ;;
*) case $BASH_VERSION in
"") echo "WARNING: exit code $ret from a shell command.";;
*) echo "WARNING: ${BASH_SOURCE[0]}:${BASH_LINENO[0]} exit $ret from '$BASH_COMMAND'";;
esac
exit $ret
esac
}
bb_bash_exit_handler() {
ret=$?
{ set +x; } > /dev/null
trap "" DEBUG
if [ "$ret" != 0 ]; then
echo "WARNING: ${BASH_SOURCE[0]}:${__BITBAKE_LAST_LINE} exit $ret from '$1'"
echo "WARNING: Backtrace (BB generated script): "
for i in $(seq 1 $((${#FUNCNAME[@]} - 1))); do
if [ "$i" -eq 1 ]; then
echo -e "\t#$((i)): ${FUNCNAME[$i]}, ${BASH_SOURCE[$((i-1))]}, line ${__BITBAKE_LAST_LINE}"
else
echo -e "\t#$((i)): ${FUNCNAME[$i]}, ${BASH_SOURCE[$((i-1))]}, line ${BASH_LINENO[$((i-1))]}"
fi
done
fi
exit $ret
}
bb_bash_debug_handler() {
local line=${BASH_LINENO[0]}
# For some reason the DEBUG trap trips with lineno=1 when scripts exit; ignore it
if [ "$line" -eq 1 ]; then
return
fi
# Track the line number of commands as they execute. This is so we can have access to the failing line number
# in the EXIT trap. See http://gnu-bash.2382.n7.nabble.com/trap-echo-quot-trap-exit-on-LINENO-quot-EXIT-gt-wrong-linenumber-td3666.html
if [ "${FUNCNAME[1]}" != "bb_bash_exit_handler" ]; then
__BITBAKE_LAST_LINE=$line
fi
}
case $BASH_VERSION in
"") trap 'bb_sh_exit_handler' 0
set -e
;;
*) trap 'bb_bash_exit_handler "$BASH_COMMAND"' 0
trap '{ bb_bash_debug_handler; } 2>/dev/null' DEBUG
set -e
shopt -s extdebug
;;
esac
trap 'bb_exit_handler' 0
set -e
'''
def create_progress_handler(func, progress, logfile, d):
@@ -391,7 +345,7 @@ def create_progress_handler(func, progress, logfile, d):
cls_obj = functools.reduce(resolve, cls.split("."), bb.utils._context)
if not cls_obj:
# Fall-back on __builtins__
cls_obj = functools.reduce(resolve, cls.split("."), __builtins__)
cls_obj = functools.reduce(lambda x, y: x.get(y), cls.split("."), __builtins__)
if cls_obj:
return cls_obj(d, outfile=logfile, otherargs=otherargs)
bb.warn('%s: unknown custom progress handler in task progress varflag value "%s", ignoring' % (func, cls))
@@ -416,7 +370,7 @@ def exec_func_shell(func, d, runfile, cwd=None):
bb.data.emit_func(func, script, d)
if verboseShellLogging or bb.utils.to_boolean(d.getVar("BB_VERBOSE_LOGS", False)):
if bb.msg.loggerVerboseLogs:
script.write("set -x\n")
if cwd:
script.write("cd '%s'\n" % cwd)
@@ -436,20 +390,14 @@ exit $ret
if fakerootcmd:
cmd = [fakerootcmd, runfile]
if verboseStdoutLogging:
if bb.msg.loggerDefaultVerbose:
logfile = LogTee(logger, StdoutNoopContextManager())
else:
logfile = StdoutNoopContextManager()
progress = d.getVarFlag(func, 'progress')
if progress:
try:
logfile = create_progress_handler(func, progress, logfile, d)
except:
from traceback import format_exc
logger.error("Failed to create progress handler")
logger.error(format_exc())
raise
logfile = create_progress_handler(func, progress, logfile, d)
fifobuffer = bytearray()
def readfifo(data):
@@ -501,62 +449,6 @@ exit $ret
bb.debug(2, "Executing shell function %s" % func)
with open(os.devnull, 'r+') as stdin, logfile:
bb.process.run(cmd, shell=False, stdin=stdin, log=logfile, extrafiles=[(fifo,readfifo)])
except bb.process.ExecutionError as exe:
# Find the backtrace that the shell trap generated
backtrace_marker_regex = re.compile(r"WARNING: Backtrace \(BB generated script\)")
stdout_lines = (exe.stdout or "").split("\n")
backtrace_start_line = None
for i, line in enumerate(reversed(stdout_lines)):
if backtrace_marker_regex.search(line):
backtrace_start_line = len(stdout_lines) - i
break
# Read the backtrace frames, starting at the location we just found
backtrace_entry_regex = re.compile(r"#(?P<frameno>\d+): (?P<funcname>[^\s]+), (?P<file>.+?), line ("
r"?P<lineno>\d+)")
backtrace_frames = []
if backtrace_start_line:
for line in itertools.islice(stdout_lines, backtrace_start_line, None):
match = backtrace_entry_regex.search(line)
if match:
backtrace_frames.append(match.groupdict())
with open(runfile, "r") as script:
script_lines = [line.rstrip() for line in script.readlines()]
# For each backtrace frame, search backwards in the script (from the line number called out by the frame),
# to find the comment that emit_vars injected when it wrote the script. This will give us the metadata
# filename (e.g. .bb or .bbclass) and line number where the shell function was originally defined.
script_metadata_comment_regex = re.compile(r"# line: (?P<lineno>\d+), file: (?P<file>.+)")
better_frames = []
# Skip the very last frame since it's just the call to the shell task in the body of the script
for frame in backtrace_frames[:-1]:
# Check whether the frame corresponds to a function defined in the script vs external script.
if os.path.samefile(frame["file"], runfile):
# Search backwards from the frame lineno to locate the comment that BB injected
i = int(frame["lineno"]) - 1
while i >= 0:
match = script_metadata_comment_regex.match(script_lines[i])
if match:
# Calculate the relative line in the function itself
relative_line_in_function = int(frame["lineno"]) - i - 2
# Calculate line in the function as declared in the metadata
metadata_function_line = relative_line_in_function + int(match["lineno"])
better_frames.append("#{frameno}: {funcname}, {file}, line {lineno}".format(
frameno=frame["frameno"],
funcname=frame["funcname"],
file=match["file"],
lineno=metadata_function_line
))
break
i -= 1
else:
better_frames.append("#{frameno}: {funcname}, {file}, line {lineno}".format(**frame))
if better_frames:
better_frames = ("\t{0}".format(frame) for frame in better_frames)
exe.extra_message = "\nBacktrace (metadata-relative locations):\n{0}".format("\n".join(better_frames))
raise
finally:
os.unlink(fifopath)

View File

@@ -17,22 +17,18 @@
#
import os
import sys
import logging
import pickle
from collections import defaultdict, Mapping
from collections import defaultdict
import bb.utils
from bb import PrefixLoggerAdapter
import re
logger = logging.getLogger("BitBake.Cache")
__cache_version__ = "154"
__cache_version__ = "152"
def getCacheFile(path, filename, mc, data_hash):
mcspec = ''
if mc:
mcspec = ".%s" % mc
return os.path.join(path, filename + mcspec + "." + data_hash)
def getCacheFile(path, filename, data_hash):
return os.path.join(path, filename + "." + data_hash)
# RecipeInfoCommon defines common data retrieving methods
# from meta data for caches. CoreRecipeInfo as well as other
@@ -94,7 +90,6 @@ class CoreRecipeInfo(RecipeInfoCommon):
if not self.packages:
self.packages.append(self.pn)
self.packages_dynamic = self.listvar('PACKAGES_DYNAMIC', metadata)
self.rprovides_pkg = self.pkgvar('RPROVIDES', self.packages, metadata)
self.skipreason = self.getvar('__SKIPPED', metadata)
if self.skipreason:
@@ -121,6 +116,7 @@ class CoreRecipeInfo(RecipeInfoCommon):
self.depends = self.depvar('DEPENDS', metadata)
self.rdepends = self.depvar('RDEPENDS', metadata)
self.rrecommends = self.depvar('RRECOMMENDS', metadata)
self.rprovides_pkg = self.pkgvar('RPROVIDES', self.packages, metadata)
self.rdepends_pkg = self.pkgvar('RDEPENDS', self.packages, metadata)
self.rrecommends_pkg = self.pkgvar('RRECOMMENDS', self.packages, metadata)
self.inherits = self.getvar('__inherit_cache', metadata, expand=False)
@@ -328,7 +324,7 @@ class NoCache(object):
bb_data = self.load_bbfile(virtualfn, appends, virtonly=True)
return bb_data[virtual]
def load_bbfile(self, bbfile, appends, virtonly = False, mc=None):
def load_bbfile(self, bbfile, appends, virtonly = False):
"""
Load and parse one .bb build file
Return the data and whether parsing resulted in the file being skipped
@@ -341,10 +337,6 @@ class NoCache(object):
datastores = parse_recipe(bb_data, bbfile, appends, mc)
return datastores
if mc is not None:
bb_data = self.databuilder.mcdata[mc].createCopy()
return parse_recipe(bb_data, bbfile, appends, mc)
bb_data = self.data.createCopy()
datastores = parse_recipe(bb_data, bbfile, appends)
@@ -362,15 +354,14 @@ class Cache(NoCache):
"""
BitBake Cache implementation
"""
def __init__(self, databuilder, mc, data_hash, caches_array):
def __init__(self, databuilder, data_hash, caches_array):
super().__init__(databuilder)
data = databuilder.data
# Pass caches_array information into Cache Constructor
# It will be used later for deciding whether we
# need extra cache file dump/load support
self.mc = mc
self.logger = PrefixLoggerAdapter("Cache: %s: " % (mc if mc else "default"), logger)
self.caches_array = caches_array
self.cachedir = data.getVar("CACHE")
self.clean = set()
@@ -379,51 +370,34 @@ class Cache(NoCache):
self.data_fn = None
self.cacheclean = True
self.data_hash = data_hash
self.filelist_regex = re.compile(r'(?:(?<=:True)|(?<=:False))\s+')
if self.cachedir in [None, '']:
self.has_cache = False
self.logger.info("Not using a cache. "
"Set CACHE = <directory> to enable.")
logger.info("Not using a cache. "
"Set CACHE = <directory> to enable.")
return
self.has_cache = True
self.cachefile = getCacheFile(self.cachedir, "bb_cache.dat", self.data_hash)
def getCacheFile(self, cachefile):
return getCacheFile(self.cachedir, cachefile, self.mc, self.data_hash)
def prepare_cache(self, progress):
if not self.has_cache:
return 0
loaded = 0
self.cachefile = self.getCacheFile("bb_cache.dat")
self.logger.debug(1, "Cache dir: %s", self.cachedir)
logger.debug(1, "Cache dir: %s", self.cachedir)
bb.utils.mkdirhier(self.cachedir)
cache_ok = True
if self.caches_array:
for cache_class in self.caches_array:
cachefile = self.getCacheFile(cache_class.cachefile)
cache_exists = os.path.exists(cachefile)
self.logger.debug(2, "Checking if %s exists: %r", cachefile, cache_exists)
cache_ok = cache_ok and cache_exists
cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
cache_ok = cache_ok and os.path.exists(cachefile)
cache_class.init_cacheData(self)
if cache_ok:
loaded = self.load_cachefile(progress)
self.load_cachefile()
elif os.path.isfile(self.cachefile):
self.logger.info("Out of date cache found, rebuilding...")
logger.info("Out of date cache found, rebuilding...")
else:
self.logger.debug(1, "Cache file %s not found, building..." % self.cachefile)
logger.debug(1, "Cache file %s not found, building..." % self.cachefile)
# We don't use the symlink, its just for debugging convinience
if self.mc:
symlink = os.path.join(self.cachedir, "bb_cache.dat.%s" % self.mc)
else:
symlink = os.path.join(self.cachedir, "bb_cache.dat")
symlink = os.path.join(self.cachedir, "bb_cache.dat")
if os.path.exists(symlink):
bb.utils.remove(symlink)
try:
@@ -431,31 +405,22 @@ class Cache(NoCache):
except OSError:
pass
return loaded
def cachesize(self):
if not self.has_cache:
return 0
def load_cachefile(self):
cachesize = 0
for cache_class in self.caches_array:
cachefile = self.getCacheFile(cache_class.cachefile)
try:
with open(cachefile, "rb") as cachefile:
cachesize += os.fstat(cachefile.fileno()).st_size
except FileNotFoundError:
pass
return cachesize
def load_cachefile(self, progress):
cachesize = self.cachesize()
previous_progress = 0
previous_percent = 0
# Calculate the correct cachesize of all those cache files
for cache_class in self.caches_array:
cachefile = self.getCacheFile(cache_class.cachefile)
self.logger.debug(1, 'Loading cache file: %s' % cachefile)
cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
with open(cachefile, "rb") as cachefile:
cachesize += os.fstat(cachefile.fileno()).st_size
bb.event.fire(bb.event.CacheLoadStarted(cachesize), self.data)
for cache_class in self.caches_array:
cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
logger.debug(1, 'Loading cache file: %s' % cachefile)
with open(cachefile, "rb") as cachefile:
pickled = pickle.Unpickler(cachefile)
# Check cache version information
@@ -463,15 +428,15 @@ class Cache(NoCache):
cache_ver = pickled.load()
bitbake_ver = pickled.load()
except Exception:
self.logger.info('Invalid cache, rebuilding...')
return 0
logger.info('Invalid cache, rebuilding...')
return
if cache_ver != __cache_version__:
self.logger.info('Cache version mismatch, rebuilding...')
return 0
logger.info('Cache version mismatch, rebuilding...')
return
elif bitbake_ver != bb.__version__:
self.logger.info('Bitbake version mismatch, rebuilding...')
return 0
logger.info('Bitbake version mismatch, rebuilding...')
return
# Load the rest of the cache file
current_progress = 0
@@ -494,17 +459,29 @@ class Cache(NoCache):
self.depends_cache[key] = [value]
# only fire events on even percentage boundaries
current_progress = cachefile.tell() + previous_progress
progress(cachefile.tell() + previous_progress)
if current_progress > cachesize:
# we might have calculated incorrect total size because a file
# might've been written out just after we checked its size
cachesize = current_progress
current_percent = 100 * current_progress / cachesize
if current_percent > previous_percent:
previous_percent = current_percent
bb.event.fire(bb.event.CacheLoadProgress(current_progress, cachesize),
self.data)
previous_progress += current_progress
return len(self.depends_cache)
# Note: depends cache number is corresponding to the parsing file numbers.
# The same file has several caches, still regarded as one item in the cache
bb.event.fire(bb.event.CacheLoadCompleted(cachesize,
len(self.depends_cache)),
self.data)
def parse(self, filename, appends):
"""Parse the specified filename, returning the recipe information"""
self.logger.debug(1, "Parsing %s", filename)
logger.debug(1, "Parsing %s", filename)
infos = []
datastores = self.load_bbfile(filename, appends, mc=self.mc)
datastores = self.load_bbfile(filename, appends)
depends = []
variants = []
# Process the "real" fn last so we can store variants list
@@ -556,7 +533,7 @@ class Cache(NoCache):
cached, infos = self.load(fn, appends)
for virtualfn, info_array in infos:
if info_array[0].skipped:
self.logger.debug(1, "Skipping %s: %s", virtualfn, info_array[0].skipreason)
logger.debug(1, "Skipping %s: %s", virtualfn, info_array[0].skipreason)
skipped += 1
else:
self.add_info(virtualfn, info_array, cacheData, not cached)
@@ -592,21 +569,21 @@ class Cache(NoCache):
# File isn't in depends_cache
if not fn in self.depends_cache:
self.logger.debug(2, "%s is not cached", fn)
logger.debug(2, "Cache: %s is not cached", fn)
return False
mtime = bb.parse.cached_mtime_noerror(fn)
# Check file still exists
if mtime == 0:
self.logger.debug(2, "%s no longer exists", fn)
logger.debug(2, "Cache: %s no longer exists", fn)
self.remove(fn)
return False
info_array = self.depends_cache[fn]
# Check the file's timestamp
if mtime != info_array[0].timestamp:
self.logger.debug(2, "%s changed", fn)
logger.debug(2, "Cache: %s changed", fn)
self.remove(fn)
return False
@@ -617,37 +594,45 @@ class Cache(NoCache):
fmtime = bb.parse.cached_mtime_noerror(f)
# Check if file still exists
if old_mtime != 0 and fmtime == 0:
self.logger.debug(2, "%s's dependency %s was removed",
fn, f)
logger.debug(2, "Cache: %s's dependency %s was removed",
fn, f)
self.remove(fn)
return False
if (fmtime != old_mtime):
self.logger.debug(2, "%s's dependency %s changed",
fn, f)
logger.debug(2, "Cache: %s's dependency %s changed",
fn, f)
self.remove(fn)
return False
if hasattr(info_array[0], 'file_checksums'):
for _, fl in info_array[0].file_checksums.items():
fl = fl.strip()
if not fl:
continue
# Have to be careful about spaces and colons in filenames
flist = self.filelist_regex.split(fl)
for f in flist:
if not f:
while fl:
# A .split() would be simpler but means spaces or colons in filenames would break
a = fl.find(":True")
b = fl.find(":False")
if ((a < 0) and b) or ((b > 0) and (b < a)):
f = fl[:b+6]
fl = fl[b+7:]
elif ((b < 0) and a) or ((a > 0) and (a < b)):
f = fl[:a+5]
fl = fl[a+6:]
else:
break
fl = fl.strip()
if "*" in f:
continue
f, exist = f.split(":")
if (exist == "True" and not os.path.exists(f)) or (exist == "False" and os.path.exists(f)):
self.logger.debug(2, "%s's file checksum list file %s changed",
fn, f)
logger.debug(2, "Cache: %s's file checksum list file %s changed",
fn, f)
self.remove(fn)
return False
if tuple(appends) != tuple(info_array[0].appends):
self.logger.debug(2, "appends for %s changed", fn)
self.logger.debug(2, "%s to %s" % (str(appends), str(info_array[0].appends)))
if appends != info_array[0].appends:
logger.debug(2, "Cache: appends for %s changed", fn)
logger.debug(2, "%s to %s" % (str(appends), str(info_array[0].appends)))
self.remove(fn)
return False
@@ -656,10 +641,10 @@ class Cache(NoCache):
virtualfn = variant2virtual(fn, cls)
self.clean.add(virtualfn)
if virtualfn not in self.depends_cache:
self.logger.debug(2, "%s is not cached", virtualfn)
logger.debug(2, "Cache: %s is not cached", virtualfn)
invalid = True
elif len(self.depends_cache[virtualfn]) != len(self.caches_array):
self.logger.debug(2, "Extra caches missing for %s?" % virtualfn)
logger.debug(2, "Cache: Extra caches missing for %s?" % virtualfn)
invalid = True
# If any one of the variants is not present, mark as invalid for all
@@ -667,10 +652,10 @@ class Cache(NoCache):
for cls in info_array[0].variants:
virtualfn = variant2virtual(fn, cls)
if virtualfn in self.clean:
self.logger.debug(2, "Removing %s from cache", virtualfn)
logger.debug(2, "Cache: Removing %s from cache", virtualfn)
self.clean.remove(virtualfn)
if fn in self.clean:
self.logger.debug(2, "Marking %s as not clean", fn)
logger.debug(2, "Cache: Marking %s as not clean", fn)
self.clean.remove(fn)
return False
@@ -683,10 +668,10 @@ class Cache(NoCache):
Called from the parser in error cases
"""
if fn in self.depends_cache:
self.logger.debug(1, "Removing %s from cache", fn)
logger.debug(1, "Removing %s from cache", fn)
del self.depends_cache[fn]
if fn in self.clean:
self.logger.debug(1, "Marking %s as unclean", fn)
logger.debug(1, "Marking %s as unclean", fn)
self.clean.remove(fn)
def sync(self):
@@ -699,13 +684,12 @@ class Cache(NoCache):
return
if self.cacheclean:
self.logger.debug(2, "Cache is clean, not saving.")
logger.debug(2, "Cache is clean, not saving.")
return
for cache_class in self.caches_array:
cache_class_name = cache_class.__name__
cachefile = self.getCacheFile(cache_class.cachefile)
self.logger.debug(2, "Writing %s", cachefile)
cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
with open(cachefile, "wb") as f:
p = pickle.Pickler(f, pickle.HIGHEST_PROTOCOL)
p.dump(__cache_version__)
@@ -724,18 +708,8 @@ class Cache(NoCache):
return bb.parse.cached_mtime_noerror(cachefile)
def add_info(self, filename, info_array, cacheData, parsed=None, watcher=None):
if self.mc is not None:
(fn, cls, mc) = virtualfn2realfn(filename)
if mc:
self.logger.error("Unexpected multiconfig %s", filename)
return
vfn = realfn2virtual(fn, cls, self.mc)
else:
vfn = filename
if isinstance(info_array[0], CoreRecipeInfo) and (not info_array[0].skipped):
cacheData.add_from_recipeinfo(vfn, info_array)
cacheData.add_from_recipeinfo(filename, info_array)
if watcher:
watcher(info_array[0].file_depends)
@@ -760,65 +734,6 @@ class Cache(NoCache):
info_array.append(cache_class(realfn, data))
self.add_info(file_name, info_array, cacheData, parsed)
class MulticonfigCache(Mapping):
def __init__(self, databuilder, data_hash, caches_array):
def progress(p):
nonlocal current_progress
nonlocal previous_progress
nonlocal previous_percent
nonlocal cachesize
current_progress = previous_progress + p
if current_progress > cachesize:
# we might have calculated incorrect total size because a file
# might've been written out just after we checked its size
cachesize = current_progress
current_percent = 100 * current_progress / cachesize
if current_percent > previous_percent:
previous_percent = current_percent
bb.event.fire(bb.event.CacheLoadProgress(current_progress, cachesize),
databuilder.data)
cachesize = 0
current_progress = 0
previous_progress = 0
previous_percent = 0
self.__caches = {}
for mc, mcdata in databuilder.mcdata.items():
self.__caches[mc] = Cache(databuilder, mc, data_hash, caches_array)
cachesize += self.__caches[mc].cachesize()
bb.event.fire(bb.event.CacheLoadStarted(cachesize), databuilder.data)
loaded = 0
for c in self.__caches.values():
loaded += c.prepare_cache(progress)
previous_progress = current_progress
# Note: depends cache number is corresponding to the parsing file numbers.
# The same file has several caches, still regarded as one item in the cache
bb.event.fire(bb.event.CacheLoadCompleted(cachesize, loaded), databuilder.data)
def __len__(self):
return len(self.__caches)
def __getitem__(self, key):
return self.__caches[key]
def __contains__(self, key):
return key in self.__caches
def __iter__(self):
for k in self.__caches:
yield k
def keys(self):
return self.__caches[key]
def init(cooker):
"""

View File

@@ -9,6 +9,7 @@ import glob
import operator
import os
import stat
import pickle
import bb.utils
import logging
from bb.cache import MultiProcessCache

View File

@@ -25,11 +25,13 @@ import ast
import sys
import codegen
import logging
import pickle
import bb.pysh as pysh
import os.path
import bb.utils, bb.data
import hashlib
from itertools import chain
from bb.pysh import pyshyacc, pyshlex
from bb.pysh import pyshyacc, pyshlex, sherrors
from bb.cache import MultiProcessCache
logger = logging.getLogger('BitBake.CodeParser')
@@ -56,10 +58,30 @@ def check_indent(codestr):
return codestr
# Basically pickle, in python 2.7.3 at least, does badly with data duplication
# upon pickling and unpickling. Combine this with duplicate objects and things
# are a mess.
#
# When the sets are originally created, python calls intern() on the set keys
# which significantly improves memory usage. Sadly the pickle/unpickle process
# doesn't call intern() on the keys and results in the same strings being duplicated
# in memory. This also means pickle will save the same string multiple times in
# the cache file.
#
# By having shell and python cacheline objects with setstate/getstate, we force
# the object creation through our own routine where we can call intern (via internSet).
#
# We also use hashable frozensets and ensure we use references to these so that
# duplicates can be removed, both in memory and in the resulting pickled data.
#
# By playing these games, the size of the cache file shrinks dramatically
# meaning faster load times and the reloaded cache files also consume much less
# memory. Smaller cache files, faster load times and lower memory usage is good.
#
# A custom getstate/setstate using tuples is actually worth 15% cachesize by
# avoiding duplication of the attribute names!
class SetCache(object):
def __init__(self):
self.setcache = {}

View File

@@ -54,25 +54,18 @@ class Command:
self.cooker = cooker
self.cmds_sync = CommandsSync()
self.cmds_async = CommandsAsync()
self.remotedatastores = None
self.remotedatastores = bb.remotedata.RemoteDatastores(cooker)
# FIXME Add lock for this
self.currentAsyncCommand = None
def runCommand(self, commandline, ro_only = False):
command = commandline.pop(0)
# Ensure cooker is ready for commands
if command != "updateConfig" and command != "setFeatures":
self.cooker.init_configdata()
if not self.remotedatastores:
self.remotedatastores = bb.remotedata.RemoteDatastores(self.cooker)
if hasattr(CommandsSync, command):
# Can run synchronous commands straight away
command_method = getattr(self.cmds_sync, command)
if ro_only:
if not hasattr(command_method, 'readonly') or not getattr(command_method, 'readonly'):
if not hasattr(command_method, 'readonly') or False == getattr(command_method, 'readonly'):
return None, "Not able to execute not readonly commands in readonly mode"
try:
self.cooker.process_inotify_updates()
@@ -81,12 +74,8 @@ class Command:
result = command_method(self, commandline)
except CommandError as exc:
return None, exc.args[0]
except (Exception, SystemExit) as exc:
except (Exception, SystemExit):
import traceback
if isinstance(exc, bb.BBHandledException):
# We need to start returning real exceptions here. Until we do, we can't
# tell if an exception is an instance of bb.BBHandledException
return None, "bb.BBHandledException()\n" + traceback.format_exc()
return None, traceback.format_exc()
else:
return result, None
@@ -95,7 +84,7 @@ class Command:
if command not in CommandsAsync.__dict__:
return None, "No such command"
self.currentAsyncCommand = (command, commandline)
self.cooker.idleCallBackRegister(self.cooker.runCommands, self.cooker)
self.cooker.configuration.server_register_idlecallback(self.cooker.runCommands, self.cooker)
return True, None
def runAsyncCommand(self):
@@ -147,8 +136,13 @@ class Command:
self.cooker.finishcommand()
def reset(self):
if self.remotedatastores:
self.remotedatastores = bb.remotedata.RemoteDatastores(self.cooker)
self.remotedatastores = bb.remotedata.RemoteDatastores(self.cooker)
def split_mc_pn(pn):
if pn.startswith("multiconfig:"):
_, mc, pn = pn.split(":", 2)
return (mc, pn)
return ('', pn)
class CommandsSync:
"""
@@ -238,11 +232,7 @@ class CommandsSync:
def matchFile(self, command, params):
fMatch = params[0]
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.matchFile(fMatch, mc)
return command.cooker.matchFile(fMatch)
matchFile.needconfig = False
def getUIHandlerNum(self, command, params):
@@ -405,50 +395,30 @@ class CommandsSync:
def getSkippedRecipes(self, command, params):
# Return list sorted by reverse priority order
import bb.cache
def sortkey(x):
vfn, _ = x
realfn, _, mc = bb.cache.virtualfn2realfn(vfn)
return (-command.cooker.collections[mc].calc_bbfile_priority(realfn)[0], vfn)
skipdict = OrderedDict(sorted(command.cooker.skiplist.items(), key=sortkey))
skipdict = OrderedDict(sorted(command.cooker.skiplist.items(),
key=lambda x: (-command.cooker.collection.calc_bbfile_priority(bb.cache.virtualfn2realfn(x[0])[0]), x[0])))
return list(skipdict.items())
getSkippedRecipes.readonly = True
def getOverlayedRecipes(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return list(command.cooker.collections[mc].overlayed.items())
return list(command.cooker.collection.overlayed.items())
getOverlayedRecipes.readonly = True
def getFileAppends(self, command, params):
fn = params[0]
try:
mc = params[1]
except IndexError:
mc = ''
return command.cooker.collections[mc].get_file_appends(fn)
return command.cooker.collection.get_file_appends(fn)
getFileAppends.readonly = True
def getAllAppends(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.collections[mc].bbappends
return command.cooker.collection.bbappends
getAllAppends.readonly = True
def findProviders(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.findProviders(mc)
return command.cooker.findProviders()
findProviders.readonly = True
def findBestProvider(self, command, params):
(mc, pn) = bb.runqueue.split_mc(params[0])
(mc, pn) = split_mc_pn(params[0])
return command.cooker.findBestProvider(pn, mc)
findBestProvider.readonly = True
@@ -476,38 +446,54 @@ class CommandsSync:
return all_p, best
getRuntimeProviders.readonly = True
def dataStoreConnectorCmd(self, command, params):
def dataStoreConnectorFindVar(self, command, params):
dsindex = params[0]
method = params[1]
args = params[2]
kwargs = params[3]
name = params[1]
datastore = command.remotedatastores[dsindex]
value, overridedata = datastore._findVar(name)
d = command.remotedatastores[dsindex]
ret = getattr(d, method)(*args, **kwargs)
if value:
content = value.get('_content', None)
if isinstance(content, bb.data_smart.DataSmart):
# Value is a datastore (e.g. BB_ORIGENV) - need to handle this carefully
idx = command.remotedatastores.check_store(content, True)
return {'_content': DataStoreConnectionHandle(idx),
'_connector_origtype': 'DataStoreConnectionHandle',
'_connector_overrides': overridedata}
elif isinstance(content, set):
return {'_content': list(content),
'_connector_origtype': 'set',
'_connector_overrides': overridedata}
else:
value['_connector_overrides'] = overridedata
else:
value = {}
value['_connector_overrides'] = overridedata
return value
dataStoreConnectorFindVar.readonly = True
if isinstance(ret, bb.data_smart.DataSmart):
idx = command.remotedatastores.store(ret)
return DataStoreConnectionHandle(idx)
return ret
def dataStoreConnectorVarHistCmd(self, command, params):
def dataStoreConnectorGetKeys(self, command, params):
dsindex = params[0]
method = params[1]
args = params[2]
kwargs = params[3]
datastore = command.remotedatastores[dsindex]
return list(datastore.keys())
dataStoreConnectorGetKeys.readonly = True
d = command.remotedatastores[dsindex].varhistory
return getattr(d, method)(*args, **kwargs)
def dataStoreConnectorIncHistCmd(self, command, params):
def dataStoreConnectorGetVarHistory(self, command, params):
dsindex = params[0]
method = params[1]
args = params[2]
kwargs = params[3]
name = params[1]
datastore = command.remotedatastores[dsindex]
return datastore.varhistory.variable(name)
dataStoreConnectorGetVarHistory.readonly = True
d = command.remotedatastores[dsindex].inchistory
return getattr(d, method)(*args, **kwargs)
def dataStoreConnectorExpandPythonRef(self, command, params):
config_data_dict = params[0]
varname = params[1]
expr = params[2]
config_data = command.remotedatastores.receive_datastore(config_data_dict)
varparse = bb.data_smart.VariableParse(varname, config_data)
return varparse.python_sub(expr)
def dataStoreConnectorRelease(self, command, params):
dsindex = params[0]
@@ -515,6 +501,31 @@ class CommandsSync:
raise CommandError('dataStoreConnectorRelease: invalid index %d' % dsindex)
command.remotedatastores.release(dsindex)
def dataStoreConnectorSetVarFlag(self, command, params):
dsindex = params[0]
name = params[1]
flag = params[2]
value = params[3]
datastore = command.remotedatastores[dsindex]
datastore.setVarFlag(name, flag, value)
def dataStoreConnectorDelVar(self, command, params):
dsindex = params[0]
name = params[1]
datastore = command.remotedatastores[dsindex]
if len(params) > 2:
flag = params[2]
datastore.delVarFlag(name, flag)
else:
datastore.delVar(name)
def dataStoreConnectorRenameVar(self, command, params):
dsindex = params[0]
name = params[1]
newname = params[2]
datastore = command.remotedatastores[dsindex]
datastore.renameVar(name, newname)
def parseRecipeFile(self, command, params):
"""
Parse the specified recipe file (with or without bbappends)
@@ -522,11 +533,11 @@ class CommandsSync:
for the recipe.
"""
fn = params[0]
mc = bb.runqueue.mc_from_tid(fn)
appends = params[1]
appendlist = params[2]
if len(params) > 3:
config_data = command.remotedatastores[params[3]]
config_data_dict = params[3]
config_data = command.remotedatastores.receive_datastore(config_data_dict)
else:
config_data = None
@@ -534,7 +545,7 @@ class CommandsSync:
if appendlist is not None:
appendfiles = appendlist
else:
appendfiles = command.cooker.collections[mc].get_file_appends(fn)
appendfiles = command.cooker.collection.get_file_appends(fn)
else:
appendfiles = []
# We are calling bb.cache locally here rather than on the server,
@@ -544,7 +555,7 @@ class CommandsSync:
if config_data:
# We have to use a different function here if we're passing in a datastore
# NOTE: we took a copy above, so we don't do it here again
envdata = bb.cache.parse_recipe(config_data, fn, appendfiles, mc)['']
envdata = bb.cache.parse_recipe(config_data, fn, appendfiles)['']
else:
# Use the standard path
parser = bb.cache.NoCache(command.cooker.databuilder)
@@ -735,10 +746,10 @@ class CommandsAsync:
"""
Find signature info files via the signature generator
"""
(mc, pn) = bb.runqueue.split_mc(params[0])
pn = params[0]
taskname = params[1]
sigs = params[2]
res = bb.siggen.find_siginfo(pn, taskname, sigs, command.cooker.databuilder.mcdata[mc])
bb.event.fire(bb.event.FindSigInfoResult(res), command.cooker.databuilder.mcdata[mc])
res = bb.siggen.find_siginfo(pn, taskname, sigs, command.cooker.data)
bb.event.fire(bb.event.FindSigInfoResult(res), command.cooker.data)
command.finishAsyncCommand()
findSigInfo.needcache = False

10
bitbake/lib/bb/compat.py Normal file
View File

@@ -0,0 +1,10 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
"""Code pulled from future python versions, here for compatibility"""
from collections import MutableMapping, KeysView, ValuesView, ItemsView, OrderedDict
from functools import total_ordering

View File

@@ -10,6 +10,7 @@
#
import sys, os, glob, os.path, re, time
import atexit
import itertools
import logging
import multiprocessing
@@ -17,11 +18,14 @@ import sre_constants
import threading
from io import StringIO, UnsupportedOperation
from contextlib import closing
from functools import wraps
from collections import defaultdict, namedtuple
import bb, bb.exceptions, bb.command
from bb import utils, data, parse, event, cache, providers, taskdata, runqueue, build
import queue
import signal
import subprocess
import errno
import prserv.serv
import pyinotify
import json
@@ -73,9 +77,7 @@ class SkippedPackage:
self.pn = info.pn
self.skipreason = info.skipreason
self.provides = info.provides
self.rprovides = info.packages + info.rprovides
for package in info.packages:
self.rprovides += info.rprovides_pkg[package]
self.rprovides = info.rprovides
elif reason:
self.skipreason = reason
@@ -150,18 +152,15 @@ class BBCooker:
Manages one bitbake build run
"""
def __init__(self, featureSet=None, idleCallBackRegister=None):
def __init__(self, configuration, featureSet=None):
self.recipecaches = None
self.eventlog = None
self.skiplist = {}
self.featureset = CookerFeatures()
if featureSet:
for f in featureSet:
self.featureset.setFeature(f)
self.configuration = bb.cookerdata.CookerConfiguration()
self.idleCallBackRegister = idleCallBackRegister
self.configuration = configuration
bb.debug(1, "BBCooker starting %s" % time.time())
sys.stdout.flush()
@@ -197,13 +196,25 @@ class BBCooker:
self.hashserv = None
self.hashservaddr = None
self.initConfigurationData()
bb.debug(1, "BBCooker parsed base configuration %s" % time.time())
sys.stdout.flush()
# we log all events to a file if so directed
if self.configuration.writeeventlog:
# register the log file writer as UI Handler
writer = EventWriter(self, self.configuration.writeeventlog)
EventLogWriteHandler = namedtuple('EventLogWriteHandler', ['event'])
bb.event.register_UIHhandler(EventLogWriteHandler(writer))
self.inotify_modified_files = []
def _process_inotify_updates(server, cooker, abort):
cooker.process_inotify_updates()
return 1.0
self.idleCallBackRegister(_process_inotify_updates, self)
self.configuration.server_register_idlecallback(_process_inotify_updates, self)
# TOSTOP must not be set or our children will hang when they output
try:
@@ -230,13 +241,6 @@ class BBCooker:
bb.debug(1, "BBCooker startup complete %s" % time.time())
sys.stdout.flush()
def init_configdata(self):
if not hasattr(self, "data"):
self.initConfigurationData()
bb.debug(1, "BBCooker parsed base configuration %s" % time.time())
sys.stdout.flush()
self.handlePRServ()
def process_inotify_updates(self):
for n in [self.confignotifier, self.notifier]:
if n.check_events(timeout=0):
@@ -322,7 +326,7 @@ class BBCooker:
for feature in features:
self.featureset.setFeature(feature)
bb.debug(1, "Features set %s (was %s)" % (original_featureset, list(self.featureset)))
if (original_featureset != list(self.featureset)) and self.state != state.error and hasattr(self, "data"):
if (original_featureset != list(self.featureset)) and self.state != state.error:
self.reset()
def initConfigurationData(self):
@@ -354,7 +358,7 @@ class BBCooker:
self.caches_array.append(getattr(module, cache_name))
except ImportError as exc:
logger.critical("Unable to import extra RecipeInfo '%s' from '%s': %s" % (cache_name, module_name, exc))
raise bb.BBHandledException()
sys.exit("FATAL: Failed to import extra cache class '%s'." % cache_name)
self.databuilder = bb.cookerdata.CookerDataBuilder(self.configuration, False)
self.databuilder.parseBaseConfiguration()
@@ -411,6 +415,11 @@ class BBCooker:
self.data.disableTracking()
def parseConfiguration(self):
# Set log file verbosity
verboselogs = bb.utils.to_boolean(self.data.getVar("BB_VERBOSE_LOGS", False))
if verboselogs:
bb.msg.loggerVerboseLogs = True
# Change nice level if we're asked to
nice = self.data.getVar("BB_NICE_LEVEL")
if nice:
@@ -444,28 +453,7 @@ class BBCooker:
logger.debug(1, "Marking as dirty due to '%s' option change to '%s'" % (o, options[o]))
print("Marking as dirty due to '%s' option change to '%s'" % (o, options[o]))
clean = False
if hasattr(self.configuration, o):
setattr(self.configuration, o, options[o])
if self.configuration.writeeventlog:
if self.eventlog and self.eventlog[0] != self.configuration.writeeventlog:
bb.event.unregister_UIHhandler(self.eventlog[1])
if not self.eventlog or self.eventlog[0] != self.configuration.writeeventlog:
# we log all events to a file if so directed
# register the log file writer as UI Handler
writer = EventWriter(self, self.configuration.writeeventlog)
EventLogWriteHandler = namedtuple('EventLogWriteHandler', ['event'])
self.eventlog = (self.configuration.writeeventlog, bb.event.register_UIHhandler(EventLogWriteHandler(writer)))
bb.msg.loggerDefaultLogLevel = self.configuration.default_loglevel
bb.msg.loggerDefaultDomains = self.configuration.debug_domains
if hasattr(self, "data"):
origenv = bb.data.init()
for k in environment:
origenv.setVar(k, environment[k])
self.data.setVar("BB_ORIGENV", origenv)
setattr(self.configuration, o, options[o])
for k in bb.utils.approved_variables():
if k in environment and k not in self.configuration.env:
logger.debug(1, "Updating new environment variable %s to %s" % (k, environment[k]))
@@ -481,10 +469,6 @@ class BBCooker:
logger.debug(1, "Updating environment variable %s from %s to %s" % (k, self.configuration.env[k], environment[k]))
self.configuration.env[k] = environment[k]
clean = False
# Now update all the variables not in the datastore to match
self.configuration.env = environment
if not clean:
logger.debug(1, "Base environment change, triggering reparse")
self.reset()
@@ -545,7 +529,7 @@ class BBCooker:
self.parseConfiguration()
fn, cls, mc = bb.cache.virtualfn2realfn(buildfile)
fn = self.matchFile(fn, mc)
fn = self.matchFile(fn)
fn = bb.cache.realfn2virtual(fn, cls, mc)
elif len(pkgs_to_build) == 1:
mc = mc_base(pkgs_to_build[0])
@@ -561,8 +545,8 @@ class BBCooker:
if fn:
try:
bb_caches = bb.cache.MulticonfigCache(self.databuilder, self.data_hash, self.caches_array)
envdata = bb_caches[mc].loadDataFull(fn, self.collections[mc].get_file_appends(fn))
bb_cache = bb.cache.Cache(self.databuilder, self.data_hash, self.caches_array)
envdata = bb_cache.loadDataFull(fn, self.collection.get_file_appends(fn))
except Exception as e:
parselog.exception("Unable to read %s", fn)
raise
@@ -646,7 +630,6 @@ class BBCooker:
current = 0
runlist = []
for k in fulltargetlist:
origk = k
mc = ""
if k.startswith("mc:"):
mc = k.split(":")[1]
@@ -656,10 +639,6 @@ class BBCooker:
k2 = k.split(":do_")
k = k2[0]
ktask = k2[1]
if mc not in self.multiconfigs:
bb.fatal("Multiconfig dependency %s depends on nonexistent multiconfig configuration named %s" % (origk, mc))
taskdata[mc].add_provider(localdata[mc], self.recipecaches[mc], k)
current += 1
if not ktask.startswith("do_"):
@@ -695,7 +674,7 @@ class BBCooker:
l = k.split(':')
depmc = l[2]
if depmc not in self.multiconfigs:
bb.fatal("Multiconfig dependency %s depends on nonexistent multiconfig configuration named configuration %s" % (k,depmc))
bb.fatal("Multiconfig dependency %s depends on nonexistent mc configuration %s" % (k,depmc))
else:
logger.debug(1, "Adding providers for multiconfig dependency %s" % l[3])
taskdata[depmc].add_provider(localdata[depmc], self.recipecaches[depmc], l[3])
@@ -954,33 +933,26 @@ class BBCooker:
logger.info("Task dependencies saved to 'task-depends.dot'")
def show_appends_with_no_recipes(self):
appends_without_recipes = {}
# Determine which bbappends haven't been applied
for mc in self.multiconfigs:
# First get list of recipes, including skipped
recipefns = list(self.recipecaches[mc].pkg_fn.keys())
recipefns.extend(self.skiplist.keys())
# Work out list of bbappends that have been applied
applied_appends = []
for fn in recipefns:
applied_appends.extend(self.collections[mc].get_file_appends(fn))
# First get list of recipes, including skipped
recipefns = list(self.recipecaches[''].pkg_fn.keys())
recipefns.extend(self.skiplist.keys())
appends_without_recipes[mc] = []
for _, appendfn in self.collections[mc].bbappends:
if not appendfn in applied_appends:
appends_without_recipes[mc].append(appendfn)
# Work out list of bbappends that have been applied
applied_appends = []
for fn in recipefns:
applied_appends.extend(self.collection.get_file_appends(fn))
msgs = []
for mc in sorted(appends_without_recipes.keys()):
if appends_without_recipes[mc]:
msgs.append('No recipes in %s available for:\n %s' % (mc if mc else 'default',
'\n '.join(appends_without_recipes[mc])))
appends_without_recipes = []
for _, appendfn in self.collection.bbappends:
if not appendfn in applied_appends:
appends_without_recipes.append(appendfn)
if msgs:
msg = "\n".join(msgs)
warn_only = self.databuilder.mcdata[mc].getVar("BB_DANGLINGAPPENDS_WARNONLY", \
False) or "no"
if appends_without_recipes:
msg = 'No recipes available for:\n %s' % '\n '.join(appends_without_recipes)
warn_only = self.data.getVar("BB_DANGLINGAPPENDS_WARNONLY", \
False) or "no"
if warn_only.lower() in ("1", "yes", "true"):
bb.warn(msg)
else:
@@ -1055,16 +1027,16 @@ class BBCooker:
bb.event.fire(bb.event.FilesMatchingFound(filepattern, matches), self.data)
def findProviders(self, mc=''):
return bb.providers.findProviders(self.databuilder.mcdata[mc], self.recipecaches[mc], self.recipecaches[mc].pkg_pn)
return bb.providers.findProviders(self.data, self.recipecaches[mc], self.recipecaches[mc].pkg_pn)
def findBestProvider(self, pn, mc=''):
if pn in self.recipecaches[mc].providers:
filenames = self.recipecaches[mc].providers[pn]
eligible, foundUnique = bb.providers.filterProviders(filenames, pn, self.databuilder.mcdata[mc], self.recipecaches[mc])
eligible, foundUnique = bb.providers.filterProviders(filenames, pn, self.data, self.recipecaches[mc])
filename = eligible[0]
return None, None, None, filename
elif pn in self.recipecaches[mc].pkg_pn:
return bb.providers.findBestProvider(pn, self.databuilder.mcdata[mc], self.recipecaches[mc], self.recipecaches[mc].pkg_pn)
return bb.providers.findBestProvider(pn, self.data, self.recipecaches[mc], self.recipecaches[mc].pkg_pn)
else:
return None, None, None, None
@@ -1129,7 +1101,7 @@ class BBCooker:
from bb import shell
except ImportError:
parselog.exception("Interactive mode not available")
raise bb.BBHandledException()
sys.exit(1)
else:
shell.start( self )
@@ -1236,7 +1208,7 @@ class BBCooker:
for c in collection_list:
calc_layer_priority(c)
regex = self.data.getVar("BBFILE_PATTERN_%s" % c)
if regex is None:
if regex == None:
parselog.error("BBFILE_PATTERN_%s not defined" % c)
errors = True
continue
@@ -1281,15 +1253,15 @@ class BBCooker:
if siggen_cache:
bb.parse.siggen.checksum_cache.mtime_cache.clear()
def matchFiles(self, bf, mc=''):
def matchFiles(self, bf):
"""
Find the .bb files which match the expression in 'buildfile'.
"""
if bf.startswith("/") or bf.startswith("../"):
bf = os.path.abspath(bf)
self.collections = {mc: CookerCollectFiles(self.bbfile_config_priorities, mc)}
filelist, masked, searchdirs = self.collections[mc].collect_bbfiles(self.databuilder.mcdata[mc], self.databuilder.mcdata[mc])
self.collection = CookerCollectFiles(self.bbfile_config_priorities)
filelist, masked, searchdirs = self.collection.collect_bbfiles(self.data, self.data)
try:
os.stat(bf)
bf = os.path.abspath(bf)
@@ -1302,12 +1274,12 @@ class BBCooker:
matches.append(f)
return matches
def matchFile(self, buildfile, mc=''):
def matchFile(self, buildfile):
"""
Find the .bb file which matches the expression in 'buildfile'.
Raise an error if multiple files
"""
matches = self.matchFiles(buildfile, mc)
matches = self.matchFiles(buildfile)
if len(matches) != 1:
if matches:
msg = "Unable to match '%s' to a specific recipe file - %s matches found:" % (buildfile, len(matches))
@@ -1342,20 +1314,20 @@ class BBCooker:
self.parseConfiguration()
# If we are told to do the None task then query the default task
if task is None:
if (task == None):
task = self.configuration.cmd
if not task.startswith("do_"):
task = "do_%s" % task
fn, cls, mc = bb.cache.virtualfn2realfn(buildfile)
fn = self.matchFile(fn, mc)
fn = self.matchFile(fn)
self.buildSetVars()
self.reset_mtime_caches()
bb_caches = bb.cache.MulticonfigCache(self.databuilder, self.data_hash, self.caches_array)
bb_cache = bb.cache.Cache(self.databuilder, self.data_hash, self.caches_array)
infos = bb_caches[mc].parse(fn, self.collections[mc].get_file_appends(fn))
infos = bb_cache.parse(fn, self.collection.get_file_appends(fn))
infos = dict(infos)
fn = bb.cache.realfn2virtual(fn, cls, mc)
@@ -1443,7 +1415,7 @@ class BBCooker:
return True
return retval
self.idleCallBackRegister(buildFileIdle, rq)
self.configuration.server_register_idlecallback(buildFileIdle, rq)
def buildTargets(self, targets, task):
"""
@@ -1486,7 +1458,7 @@ class BBCooker:
self.buildSetVars()
# If we are told to do the None task then query the default task
if task is None:
if (task == None):
task = self.configuration.cmd
if not task.startswith("do_"):
@@ -1514,7 +1486,7 @@ class BBCooker:
if 'universe' in targets:
rq.rqdata.warn_multi_bb = True
self.idleCallBackRegister(buildTargetsIdle, rq)
self.configuration.server_register_idlecallback(buildTargetsIdle, rq)
def getAllKeysWithFlags(self, flaglist):
@@ -1565,7 +1537,6 @@ class BBCooker:
if self.state in (state.shutdown, state.forceshutdown, state.error):
if hasattr(self.parser, 'shutdown'):
self.parser.shutdown(clean=False, force = True)
self.parser.final_cleanup()
raise bb.BBHandledException()
if self.state != state.parsing:
@@ -1585,24 +1556,14 @@ class BBCooker:
for dep in self.configuration.extra_assume_provided:
self.recipecaches[mc].ignored_dependencies.add(dep)
self.collections = {}
mcfilelist = {}
total_masked = 0
searchdirs = set()
for mc in self.multiconfigs:
self.collections[mc] = CookerCollectFiles(self.bbfile_config_priorities, mc)
(filelist, masked, search) = self.collections[mc].collect_bbfiles(self.databuilder.mcdata[mc], self.databuilder.mcdata[mc])
mcfilelist[mc] = filelist
total_masked += masked
searchdirs |= set(search)
self.collection = CookerCollectFiles(self.bbfile_config_priorities)
(filelist, masked, searchdirs) = self.collection.collect_bbfiles(self.data, self.data)
# Add inotify watches for directories searched for bb/bbappend files
for dirent in searchdirs:
self.add_filewatch([[dirent]], dirs=True)
self.parser = CookerParser(self, mcfilelist, total_masked)
self.parser = CookerParser(self, filelist, masked)
self.parsecache_valid = True
self.state = state.parsing
@@ -1614,7 +1575,7 @@ class BBCooker:
self.show_appends_with_no_recipes()
self.handlePrefProviders()
for mc in self.multiconfigs:
self.recipecaches[mc].bbfile_priority = self.collections[mc].collection_priorities(self.recipecaches[mc].pkg_fn, self.parser.mcfilelist[mc], self.data)
self.recipecaches[mc].bbfile_priority = self.collection.collection_priorities(self.recipecaches[mc].pkg_fn, self.data)
self.state = state.running
# Send an event listing all stamps reachable after parsing
@@ -1635,7 +1596,7 @@ class BBCooker:
raise NothingToBuild
ignore = (self.data.getVar("ASSUME_PROVIDED") or "").split()
for pkg in pkgs_to_build.copy():
for pkg in pkgs_to_build:
if pkg in ignore:
parselog.warning("Explicit target \"%s\" is in ASSUME_PROVIDED, ignoring" % pkg)
if pkg.startswith("multiconfig:"):
@@ -1673,16 +1634,17 @@ class BBCooker:
return pkgs_to_build
def pre_serve(self):
# We now are in our own process so we can call this here.
# PRServ exits if its parent process exits
self.handlePRServ()
return
def post_serve(self):
self.shutdown(force=True)
prserv.serv.auto_shutdown()
if self.hashserv:
self.hashserv.process.terminate()
self.hashserv.process.join()
if hasattr(self, "data"):
bb.event.fire(CookerExit(), self.data)
bb.event.fire(CookerExit(), self.data)
def shutdown(self, force = False):
if force:
@@ -1692,7 +1654,6 @@ class BBCooker:
if self.parser:
self.parser.shutdown(clean=not force, force=force)
self.parser.final_cleanup()
def finishcommand(self):
self.state = state.initial
@@ -1706,11 +1667,8 @@ class BBCooker:
self.finishcommand()
self.extraconfigdata = {}
self.command.reset()
if hasattr(self, "data"):
self.databuilder.reset()
self.data = self.databuilder.data
self.parsecache_valid = False
self.baseconfig_valid = False
self.databuilder.reset()
self.data = self.databuilder.data
class CookerExit(bb.event.Event):
@@ -1723,19 +1681,21 @@ class CookerExit(bb.event.Event):
class CookerCollectFiles(object):
def __init__(self, priorities, mc=''):
self.mc = mc
def __init__(self, priorities):
self.bbappends = []
# Priorities is a list of tupples, with the second element as the pattern.
# We need to sort the list with the longest pattern first, and so on to
# the shortest. This allows nested layers to be properly evaluated.
self.bbfile_config_priorities = sorted(priorities, key=lambda tup: tup[1], reverse=True)
def calc_bbfile_priority(self, filename):
def calc_bbfile_priority( self, filename, matched = None ):
for _, _, regex, pri in self.bbfile_config_priorities:
if regex.match(filename):
return pri, regex
return 0, None
if matched != None:
if not regex in matched:
matched.add(regex)
return pri
return 0
def get_bbfiles(self):
"""Get list of default .bb files by reading out the current directory"""
@@ -1765,10 +1725,10 @@ class CookerCollectFiles(object):
collectlog.debug(1, "collecting .bb files")
files = (config.getVar( "BBFILES") or "").split()
config.setVar("BBFILES", " ".join(files))
# Sort files by priority
files.sort( key=lambda fileitem: self.calc_bbfile_priority(fileitem)[0] )
config.setVar("BBFILES_PRIORITIZED", " ".join(files))
files.sort( key=lambda fileitem: self.calc_bbfile_priority(fileitem) )
if not len(files):
files = self.get_bbfiles()
@@ -1888,67 +1848,43 @@ class CookerCollectFiles(object):
(bbappend, filename) = b
if (bbappend == f) or ('%' in bbappend and bbappend.startswith(f[:bbappend.index('%')])):
filelist.append(filename)
return tuple(filelist)
return filelist
def collection_priorities(self, pkgfns, fns, d):
# Return the priorities of the entries in pkgfns
# Also check that all the regexes in self.bbfile_config_priorities are used
# (but to do that we need to ensure skipped recipes aren't counted, nor
# collections in BBFILE_PATTERN_IGNORE_EMPTY)
def collection_priorities(self, pkgfns, d):
priorities = {}
seen = set()
matched = set()
matched_regex = set()
unmatched_regex = set()
for _, _, regex, _ in self.bbfile_config_priorities:
unmatched_regex.add(regex)
# Calculate priorities for each file
matched = set()
for p in pkgfns:
realfn, cls, mc = bb.cache.virtualfn2realfn(p)
priorities[p], regex = self.calc_bbfile_priority(realfn)
if regex in unmatched_regex:
matched_regex.add(regex)
unmatched_regex.remove(regex)
seen.add(realfn)
if regex:
matched.add(realfn)
priorities[p] = self.calc_bbfile_priority(realfn, matched)
if unmatched_regex:
# Account for bbappend files
unmatched = set()
for _, _, regex, pri in self.bbfile_config_priorities:
if not regex in matched:
unmatched.add(regex)
# Don't show the warning if the BBFILE_PATTERN did match .bbappend files
def find_bbappend_match(regex):
for b in self.bbappends:
(bbfile, append) = b
seen.add(append)
if regex.match(append):
# If the bbappend is matched by already "matched set", return False
for matched_regex in matched:
if matched_regex.match(append):
return False
return True
return False
# Account for skipped recipes
seen.update(fns)
seen.difference_update(matched)
def already_matched(fn):
for regex in matched_regex:
if regex.match(fn):
return True
return False
for unmatch in unmatched_regex.copy():
for fn in seen:
if unmatch.match(fn):
# If the bbappend or file was already matched by another regex, skip it
# e.g. for a layer within a layer, the outer regex could match, the inner
# regex may match nothing and we should warn about that
if already_matched(fn):
continue
unmatched_regex.remove(unmatch)
break
for unmatch in unmatched.copy():
if find_bbappend_match(unmatch):
unmatched.remove(unmatch)
for collection, pattern, regex, _ in self.bbfile_config_priorities:
if regex in unmatched_regex:
if regex in unmatched:
if d.getVar('BBFILE_PATTERN_IGNORE_EMPTY_%s' % collection) != '1':
collectlog.warning("No bb files in %s matched BBFILE_PATTERN_%s '%s'" % (self.mc if self.mc else 'default',
collection, pattern))
collectlog.warning("No bb files matched BBFILE_PATTERN_%s '%s'" % (collection, pattern))
return priorities
@@ -1997,8 +1933,7 @@ class Parser(multiprocessing.Process):
except queue.Empty:
pass
else:
self.results.close()
self.results.join_thread()
self.results.cancel_join_thread()
break
if pending:
@@ -2007,8 +1942,6 @@ class Parser(multiprocessing.Process):
try:
job = self.jobs.pop()
except IndexError:
self.results.close()
self.results.join_thread()
break
result = self.parse(*job)
# Clear the siggen cache after parsing to control memory usage, its huge
@@ -2018,9 +1951,8 @@ class Parser(multiprocessing.Process):
except queue.Full:
pending.append(result)
def parse(self, mc, cache, filename, appends):
def parse(self, filename, appends):
try:
origfilter = bb.event.LogHandler.filter
# Record the filename we're parsing into any events generated
def parse_filter(self, record):
record.taskpid = bb.event.worker_pid
@@ -2032,7 +1964,7 @@ class Parser(multiprocessing.Process):
bb.event.set_class_handlers(self.handlers.copy())
bb.event.LogHandler.filter = parse_filter
return True, mc, cache.parse(filename, appends)
return True, self.bb_cache.parse(filename, appends)
except Exception as exc:
tb = sys.exc_info()[2]
exc.recipe = filename
@@ -2043,12 +1975,10 @@ class Parser(multiprocessing.Process):
# a SystemExit event for example.
except BaseException as exc:
return True, ParsingFailure(exc, filename)
finally:
bb.event.LogHandler.filter = origfilter
class CookerParser(object):
def __init__(self, cooker, mcfilelist, masked):
self.mcfilelist = mcfilelist
def __init__(self, cooker, filelist, masked):
self.filelist = filelist
self.cooker = cooker
self.cfgdata = cooker.data
self.cfghash = cooker.data_hash
@@ -2062,31 +1992,28 @@ class CookerParser(object):
self.skipped = 0
self.virtuals = 0
self.total = len(filelist)
self.current = 0
self.process_names = []
self.bb_caches = bb.cache.MulticonfigCache(self.cfgbuilder, self.cfghash, cooker.caches_array)
self.fromcache = set()
self.willparse = set()
for mc in self.cooker.multiconfigs:
for filename in self.mcfilelist[mc]:
appends = self.cooker.collections[mc].get_file_appends(filename)
if not self.bb_caches[mc].cacheValid(filename, appends):
self.willparse.add((mc, self.bb_caches[mc], filename, appends))
else:
self.fromcache.add((mc, self.bb_caches[mc], filename, appends))
self.total = len(self.fromcache) + len(self.willparse)
self.toparse = len(self.willparse)
self.bb_cache = bb.cache.Cache(self.cfgbuilder, self.cfghash, cooker.caches_array)
self.fromcache = []
self.willparse = []
for filename in self.filelist:
appends = self.cooker.collection.get_file_appends(filename)
if not self.bb_cache.cacheValid(filename, appends):
self.willparse.append((filename, appends))
else:
self.fromcache.append((filename, appends))
self.toparse = self.total - len(self.fromcache)
self.progress_chunk = int(max(self.toparse / 100, 1))
self.num_processes = min(int(self.cfgdata.getVar("BB_NUMBER_PARSE_THREADS") or
multiprocessing.cpu_count()), self.toparse)
multiprocessing.cpu_count()), len(self.willparse))
self.start()
self.haveshutdown = False
self.syncthread = None
def start(self):
self.results = self.load_cached()
@@ -2094,9 +2021,7 @@ class CookerParser(object):
if self.toparse:
bb.event.fire(bb.event.ParseStarted(self.toparse), self.cfgdata)
def init():
signal.signal(signal.SIGTERM, signal.SIG_DFL)
signal.signal(signal.SIGHUP, signal.SIG_DFL)
signal.signal(signal.SIGINT, signal.SIG_IGN)
Parser.bb_cache = self.bb_cache
bb.utils.set_process_name(multiprocessing.current_process().name)
multiprocessing.util.Finalize(None, bb.codeparser.parser_cache_save, exitpriority=1)
multiprocessing.util.Finalize(None, bb.fetch.fetcher_parse_save, exitpriority=1)
@@ -2106,7 +2031,7 @@ class CookerParser(object):
def chunkify(lst,n):
return [lst[i::n] for i in range(n)]
self.jobs = chunkify(list(self.willparse), self.num_processes)
self.jobs = chunkify(self.willparse, self.num_processes)
for i in range(0, self.num_processes):
parser = Parser(self.jobs[i], self.result_queue, self.parser_quit, init, self.cooker.configuration.profile)
@@ -2130,9 +2055,12 @@ class CookerParser(object):
self.total)
bb.event.fire(event, self.cfgdata)
for process in self.processes:
self.parser_quit.put(None)
for process in self.processes:
self.parser_quit.put(None)
else:
self.parser_quit.cancel_join_thread()
for process in self.processes:
self.parser_quit.put(None)
# Cleanup the queue before call process.join(), otherwise there might be
# deadlocks.
@@ -2149,17 +2077,9 @@ class CookerParser(object):
else:
process.join()
self.parser_quit.close()
# Allow data left in the cancel queue to be discarded
self.parser_quit.cancel_join_thread()
def sync_caches():
for c in self.bb_caches.values():
c.sync()
sync = threading.Thread(target=sync_caches, name="SyncThread")
self.syncthread = sync
sync = threading.Thread(target=self.bb_cache.sync)
sync.start()
multiprocessing.util.Finalize(None, sync.join, exitpriority=-100)
bb.codeparser.parser_cache_savemerge()
bb.fetch.fetcher_parse_done()
if self.cooker.configuration.profile:
@@ -2173,14 +2093,10 @@ class CookerParser(object):
bb.utils.process_profilelog(profiles, pout = pout)
print("Processed parsing statistics saved to %s" % (pout))
def final_cleanup(self):
if self.syncthread:
self.syncthread.join()
def load_cached(self):
for mc, cache, filename, appends in self.fromcache:
cached, infos = cache.load(filename, appends)
yield not cached, mc, infos
for filename, appends in self.fromcache:
cached, infos = self.bb_cache.load(filename, appends)
yield not cached, infos
def parse_generator(self):
while True:
@@ -2202,25 +2118,25 @@ class CookerParser(object):
result = []
parsed = None
try:
parsed, mc, result = next(self.results)
parsed, result = next(self.results)
except StopIteration:
self.shutdown()
return False
except bb.BBHandledException as exc:
self.error += 1
logger.error('Failed to parse recipe: %s' % exc.recipe)
self.shutdown(clean=False, force=True)
self.shutdown(clean=False)
return False
except ParsingFailure as exc:
self.error += 1
logger.error('Unable to parse %s: %s' %
(exc.recipe, bb.exceptions.to_string(exc.realexception)))
self.shutdown(clean=False, force=True)
self.shutdown(clean=False)
return False
except bb.parse.ParseError as exc:
self.error += 1
logger.error(str(exc))
self.shutdown(clean=False, force=True)
self.shutdown(clean=False)
return False
except bb.data_smart.ExpansionError as exc:
self.error += 1
@@ -2229,7 +2145,7 @@ class CookerParser(object):
tb = list(itertools.dropwhile(lambda e: e.filename.startswith(bbdir), exc.traceback))
logger.error('ExpansionError during parsing %s', value.recipe,
exc_info=(etype, value, tb))
self.shutdown(clean=False, force=True)
self.shutdown(clean=False)
return False
except Exception as exc:
self.error += 1
@@ -2241,7 +2157,7 @@ class CookerParser(object):
# Most likely, an exception occurred during raising an exception
import traceback
logger.error('Exception during parse: %s' % traceback.format_exc())
self.shutdown(clean=False, force=True)
self.shutdown(clean=False)
return False
self.current += 1
@@ -2258,16 +2174,13 @@ class CookerParser(object):
if info_array[0].skipped:
self.skipped += 1
self.cooker.skiplist[virtualfn] = SkippedPackage(info_array[0])
self.bb_caches[mc].add_info(virtualfn, info_array, self.cooker.recipecaches[mc],
(fn, cls, mc) = bb.cache.virtualfn2realfn(virtualfn)
self.bb_cache.add_info(virtualfn, info_array, self.cooker.recipecaches[mc],
parsed=parsed, watcher = self.cooker.add_filewatch)
return True
def reparse(self, filename):
to_reparse = set()
for mc in self.cooker.multiconfigs:
to_reparse.add((mc, filename, self.cooker.collections[mc].get_file_appends(filename)))
for mc, filename, appends in to_reparse:
infos = self.bb_caches[mc].parse(filename, appends)
for vfn, info_array in infos:
self.cooker.recipecaches[mc].add_from_recipeinfo(vfn, info_array)
infos = self.bb_cache.parse(filename, self.cooker.collection.get_file_appends(filename))
for vfn, info_array in infos:
(fn, cls, mc) = bb.cache.virtualfn2realfn(vfn)
self.cooker.recipecaches[mc].add_from_recipeinfo(vfn, info_array)

View File

@@ -58,18 +58,11 @@ class ConfigParameters(object):
def updateToServer(self, server, environment):
options = {}
for o in ["abort", "force", "invalidate_stamp",
"dry_run", "dump_signatures",
"extra_assume_provided", "profile",
"prefile", "postfile", "server_timeout",
"nosetscene", "setsceneonly", "skipsetscene",
"runall", "runonly", "writeeventlog"]:
"verbose", "debug", "dry_run", "dump_signatures",
"debug_domains", "extra_assume_provided", "profile",
"prefile", "postfile", "server_timeout"]:
options[o] = getattr(self.options, o)
options['build_verbose_shell'] = self.options.verbose
options['build_verbose_stdout'] = self.options.verbose
options['default_loglevel'] = bb.msg.loggerDefaultLogLevel
options['debug_domains'] = bb.msg.loggerDefaultDomains
ret, error = server.runCommand(["updateConfig", options, environment, sys.argv])
if error:
raise Exception("Unable to update the server configuration with local parameters: %s" % error)
@@ -118,11 +111,11 @@ class CookerConfiguration(object):
"""
def __init__(self):
self.debug_domains = bb.msg.loggerDefaultDomains
self.default_loglevel = bb.msg.loggerDefaultLogLevel
self.debug_domains = []
self.extra_assume_provided = []
self.prefile = []
self.postfile = []
self.debug = 0
self.cmd = None
self.abort = True
self.force = False
@@ -132,21 +125,34 @@ class CookerConfiguration(object):
self.skipsetscene = False
self.invalidate_stamp = False
self.dump_signatures = []
self.build_verbose_shell = False
self.build_verbose_stdout = False
self.dry_run = False
self.tracking = False
self.xmlrpcinterface = []
self.server_timeout = None
self.writeeventlog = False
self.server_only = False
self.limited_deps = False
self.runall = []
self.runonly = []
self.env = {}
def setConfigParameters(self, parameters):
for key in self.__dict__.keys():
if key in parameters.options.__dict__:
setattr(self, key, parameters.options.__dict__[key])
self.env = parameters.environment.copy()
def setServerRegIdleCallback(self, srcb):
self.server_register_idlecallback = srcb
def __getstate__(self):
state = {}
for key in self.__dict__.keys():
state[key] = getattr(self, key)
if key == "server_register_idlecallback":
state[key] = None
else:
state[key] = getattr(self, key)
return state
def __setstate__(self,state):
@@ -164,7 +170,7 @@ def catch_parse_error(func):
import traceback
parselog.critical(traceback.format_exc())
parselog.critical("Unable to parse %s: %s" % (fn, exc))
raise bb.BBHandledException()
sys.exit(1)
except bb.data_smart.ExpansionError as exc:
import traceback
@@ -176,10 +182,10 @@ def catch_parse_error(func):
if not fn.startswith(bbdir):
break
parselog.critical("Unable to parse %s" % fn, exc_info=(exc_class, exc, tb))
raise bb.BBHandledException()
sys.exit(1)
except bb.parse.ParseError as exc:
parselog.critical(str(exc))
raise bb.BBHandledException()
sys.exit(1)
return wrapped
@catch_parse_error
@@ -300,13 +306,13 @@ class CookerDataBuilder(object):
self.data_hash = data_hash.hexdigest()
except (SyntaxError, bb.BBHandledException):
raise bb.BBHandledException()
raise bb.BBHandledException
except bb.data_smart.ExpansionError as e:
logger.error(str(e))
raise bb.BBHandledException()
raise bb.BBHandledException
except Exception:
logger.exception("Error parsing configuration files")
raise bb.BBHandledException()
raise bb.BBHandledException
# Create a copy so we can reset at a later date when UIs disconnect
self.origdata = self.data
@@ -355,7 +361,7 @@ class CookerDataBuilder(object):
for layer in broken_layers:
parselog.critical(" %s", layer)
parselog.critical("Please check BBLAYERS in %s" % (layerconf))
raise bb.BBHandledException()
sys.exit(1)
for layer in layers:
parselog.debug(2, "Adding layer %s", layer)
@@ -381,13 +387,10 @@ class CookerDataBuilder(object):
invalid.append(entry)
continue
l, f = parts
invert = l[0] == "!"
if invert:
l = l[1:]
if (l in collections and not invert) or (l not in collections and invert):
if l in collections:
data.appendVar("BBFILES", " " + f)
if invalid:
bb.fatal("BBFILES_DYNAMIC entries must be of the form {!}<collection name>:<filename pattern>, not:\n %s" % "\n ".join(invalid))
bb.fatal("BBFILES_DYNAMIC entries must be of the form <collection name>:<filename pattern>, not:\n %s" % "\n ".join(invalid))
layerseries = set((data.getVar("LAYERSERIES_CORENAMES") or "").split())
collections_tmp = collections[:]
@@ -427,7 +430,7 @@ class CookerDataBuilder(object):
handlerfn = data.getVarFlag(var, "filename", False)
if not handlerfn:
parselog.critical("Undefined event handler function '%s'" % var)
raise bb.BBHandledException()
sys.exit(1)
handlerln = int(data.getVarFlag(var, "lineno", False))
bb.event.register(var, data.getVar(var, False), (data.getVarFlag(var, "eventmask") or "").split(), handlerfn, handlerln)

View File

@@ -14,8 +14,6 @@ import sys
import io
import traceback
import bb
def createDaemon(function, logfile):
"""
Detach a process from the controlling terminal and run it in the

View File

@@ -79,7 +79,7 @@ def expand(s, d, varname = None):
return d.expand(s, varname)
def expandKeys(alterdata, readdata = None):
if readdata is None:
if readdata == None:
readdata = alterdata
todolist = {}
@@ -161,12 +161,6 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False):
return True
if func:
# Write a comment indicating where the shell function came from (line number and filename) to make it easier
# for the user to diagnose task failures. This comment is also used by build.py to determine the metadata
# location of shell functions.
o.write("# line: {0}, file: {1}\n".format(
d.getVarFlag(var, "lineno", False),
d.getVarFlag(var, "filename", False)))
# NOTE: should probably check for unbalanced {} within the var
val = val.rstrip('\n')
o.write("%s() {\n%s\n}\n" % (varExpanded, val))
@@ -371,7 +365,7 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
#bb.note("Variable %s references %s and calls %s" % (key, str(deps), str(execs)))
#d.setVarFlag(key, "vardeps", deps)
def generate_dependencies(d, whitelist):
def generate_dependencies(d):
keys = set(key for key in d if not key.startswith("__"))
shelldeps = set(key for key in d.getVar("__exportlist", False) if d.getVarFlag(key, "export", False) and not d.getVarFlag(key, "unexport", False))
@@ -386,7 +380,7 @@ def generate_dependencies(d, whitelist):
newdeps = deps[task]
seen = set()
while newdeps:
nextdeps = newdeps - whitelist
nextdeps = newdeps
seen |= nextdeps
newdeps = set()
for dep in nextdeps:

View File

@@ -28,7 +28,7 @@ logger = logging.getLogger("BitBake.Data")
__setvar_keyword__ = ["_append", "_prepend", "_remove"]
__setvar_regexp__ = re.compile(r'(?P<base>.*?)(?P<keyword>_append|_prepend|_remove)(_(?P<add>[^A-Z]*))?$')
__expand_var_regexp__ = re.compile(r"\${[a-zA-Z0-9\-_+./~:]+?}")
__expand_var_regexp__ = re.compile(r"\${[a-zA-Z0-9\-_+./~]+?}")
__expand_python_regexp__ = re.compile(r"\${@.+?}")
__whitespace_split__ = re.compile(r'(\s)')
__override_regexp__ = re.compile(r'[a-z0-9]+')
@@ -107,6 +107,10 @@ class VariableParse:
else:
code = match.group()[3:-1]
if "_remote_data" in self.d:
connector = self.d["_remote_data"]
return connector.expandPythonRef(self.varname, code, self.d)
if self.varname:
varname = 'Var <%s>' % self.varname
else:
@@ -189,7 +193,7 @@ class IncludeHistory(object):
if self.current.parent:
self.current = self.current.parent
else:
bb.warn("Include log: Tried to finish '%s' at top level." % self.filename)
bb.warn("Include log: Tried to finish '%s' at top level." % filename)
return False
def emit(self, o, level = 0):
@@ -264,7 +268,12 @@ class VariableHistory(object):
self.variables[newvar].append(i.copy())
def variable(self, var):
varhistory = []
remote_connector = self.dataroot.getVar('_remote_data', False)
if remote_connector:
varhistory = remote_connector.getVarHistory(var)
else:
varhistory = []
if var in self.variables:
varhistory.extend(self.variables[var])
return varhistory
@@ -329,12 +338,11 @@ class VariableHistory(object):
lines.append(line)
return lines
def get_variable_items_files(self, var):
def get_variable_items_files(self, var, d):
"""
Use variable history to map items added to a list variable and
the files in which they were added.
"""
d = self.dataroot
history = self.variable(var)
finalitems = (d.getVar(var) or '').split()
filemap = {}
@@ -462,6 +470,10 @@ class DataSmart(MutableMapping):
if var in dest:
return dest[var], self.overridedata.get(var, None)
if "_remote_data" in dest:
connector = dest["_remote_data"]["_content"]
return connector.getVar(var)
if "_data" not in dest:
break
dest = dest["_data"]
@@ -481,12 +493,17 @@ class DataSmart(MutableMapping):
def setVar(self, var, value, **loginfo):
#print("var=" + str(var) + " val=" + str(value))
var = var.replace(":", "_")
self.expand_cache = {}
parsing=False
if 'parsing' in loginfo:
parsing=True
if '_remote_data' in self.dict:
connector = self.dict["_remote_data"]["_content"]
res = connector.setVar(var, value)
if not res:
return
if 'op' not in loginfo:
loginfo['op'] = "set"
@@ -590,11 +607,11 @@ class DataSmart(MutableMapping):
"""
Rename the variable key to newkey
"""
key = key.replace(":", "_")
newkey = newkey.replace(":", "_")
if key == newkey:
bb.warn("Calling renameVar with equivalent keys (%s) is invalid" % key)
return
if '_remote_data' in self.dict:
connector = self.dict["_remote_data"]["_content"]
res = connector.renameVar(key, newkey)
if not res:
return
val = self.getVar(key, 0, parsing=True)
if val is not None:
@@ -640,8 +657,12 @@ class DataSmart(MutableMapping):
self.setVar(var + "_prepend", value, ignore=True, parsing=True)
def delVar(self, var, **loginfo):
var = var.replace(":", "_")
self.expand_cache = {}
if '_remote_data' in self.dict:
connector = self.dict["_remote_data"]["_content"]
res = connector.delVar(var)
if not res:
return
loginfo['detail'] = ""
loginfo['op'] = 'del'
@@ -668,8 +689,12 @@ class DataSmart(MutableMapping):
override = None
def setVarFlag(self, var, flag, value, **loginfo):
var = var.replace(":", "_")
self.expand_cache = {}
if '_remote_data' in self.dict:
connector = self.dict["_remote_data"]["_content"]
res = connector.setVarFlag(var, flag, value)
if not res:
return
if 'op' not in loginfo:
loginfo['op'] = "set"
@@ -692,7 +717,6 @@ class DataSmart(MutableMapping):
self.dict["__exportlist"]["_content"].add(var)
def getVarFlag(self, var, flag, expand=True, noweakdefault=False, parsing=False, retparser=False):
var = var.replace(":", "_")
if flag == "_content":
cachename = var
else:
@@ -820,8 +844,12 @@ class DataSmart(MutableMapping):
return value
def delVarFlag(self, var, flag, **loginfo):
var = var.replace(":", "_")
self.expand_cache = {}
if '_remote_data' in self.dict:
connector = self.dict["_remote_data"]["_content"]
res = connector.delVarFlag(var, flag)
if not res:
return
local_var, _ = self._findVar(var)
if not local_var:
@@ -838,7 +866,6 @@ class DataSmart(MutableMapping):
del self.dict[var][flag]
def appendVarFlag(self, var, flag, value, **loginfo):
var = var.replace(":", "_")
loginfo['op'] = 'append'
loginfo['flag'] = flag
self.varhistory.record(**loginfo)
@@ -846,7 +873,6 @@ class DataSmart(MutableMapping):
self.setVarFlag(var, flag, newvalue, ignore=True)
def prependVarFlag(self, var, flag, value, **loginfo):
var = var.replace(":", "_")
loginfo['op'] = 'prepend'
loginfo['flag'] = flag
self.varhistory.record(**loginfo)
@@ -854,7 +880,6 @@ class DataSmart(MutableMapping):
self.setVarFlag(var, flag, newvalue, ignore=True)
def setVarFlags(self, var, flags, **loginfo):
var = var.replace(":", "_")
self.expand_cache = {}
infer_caller_details(loginfo)
if not var in self.dict:
@@ -869,7 +894,6 @@ class DataSmart(MutableMapping):
self.dict[var][i] = flags[i]
def getVarFlags(self, var, expand = False, internalflags=False):
var = var.replace(":", "_")
local_var, _ = self._findVar(var)
flags = {}
@@ -886,7 +910,6 @@ class DataSmart(MutableMapping):
def delVarFlags(self, var, **loginfo):
var = var.replace(":", "_")
self.expand_cache = {}
if not var in self.dict:
self._makeShadowCopy(var)
@@ -944,7 +967,7 @@ class DataSmart(MutableMapping):
def localkeys(self):
for key in self.dict:
if key not in ['_data']:
if key not in ['_data', '_remote_data']:
yield key
def __iter__(self):
@@ -953,7 +976,7 @@ class DataSmart(MutableMapping):
def keylist(d):
klist = set()
for key in d:
if key in ["_data"]:
if key in ["_data", "_remote_data"]:
continue
if key in deleted:
continue
@@ -967,6 +990,13 @@ class DataSmart(MutableMapping):
if "_data" in d:
klist |= keylist(d["_data"])
if "_remote_data" in d:
connector = d["_remote_data"]["_content"]
for key in connector.getKeys():
if key in deleted:
continue
klist.add(key)
return klist
self.need_overrides()
@@ -1012,12 +1042,9 @@ class DataSmart(MutableMapping):
continue
value = d.getVar(key, False) or ""
if type(value) is type(self):
data.update({key:value.get_hash()})
else:
data.update({key:value})
data.update({key:value})
varflags = d.getVarFlags(key, internalflags = True, expand=["vardepvalue"])
varflags = d.getVarFlags(key, internalflags = True)
if not varflags:
continue
for f in varflags:

View File

@@ -10,17 +10,18 @@ BitBake build tools.
# SPDX-License-Identifier: GPL-2.0-only
#
import ast
import atexit
import collections
import logging
import os, sys
import warnings
import pickle
import sys
import threading
import logging
import atexit
import traceback
import ast
import threading
import bb.exceptions
import bb.utils
import bb.compat
import bb.exceptions
# This is the pid for which we should generate the event. This is set when
# the runqueue forks off.
@@ -56,7 +57,7 @@ def set_class_handlers(h):
_handlers = h
def clean_class_handlers():
return collections.OrderedDict()
return bb.compat.OrderedDict()
# Internal
_handlers = clean_class_handlers()
@@ -346,7 +347,7 @@ def set_UIHmask(handlerNum, level, debug_domains, mask):
def getName(e):
"""Returns the name of a class or class instance"""
if getattr(e, "__name__", None) is None:
if getattr(e, "__name__", None) == None:
return e.__class__.__name__
else:
return e.__name__
@@ -389,10 +390,6 @@ class RecipeEvent(Event):
class RecipePreFinalise(RecipeEvent):
""" Recipe Parsing Complete but not yet finalised"""
class RecipePostKeyExpansion(RecipeEvent):
""" Recipe Parsing Complete but not yet finalised"""
class RecipeTaskPreProcess(RecipeEvent):
"""
Recipe Tasks about to be finalised
@@ -512,7 +509,7 @@ class NoProvider(Event):
extra = ''
if not self._reasons:
if self._close_matches:
extra = ". Close matches:\n %s" % '\n '.join(sorted(set(self._close_matches)))
extra = ". Close matches:\n %s" % '\n '.join(self._close_matches)
if self._dependees:
msg = "Nothing %sPROVIDES '%s' (but %s %sDEPENDS on or otherwise requires it)%s" % (r, self._item, ", ".join(self._dependees), r, extra)

View File

@@ -33,9 +33,6 @@ _checksum_cache = bb.checksum.FileChecksumCache()
logger = logging.getLogger("BitBake.Fetcher")
CHECKSUM_LIST = [ "md5", "sha256", "sha1", "sha384", "sha512" ]
SHOWN_CHECKSUM_LIST = ["sha256"]
class BBFetchException(Exception):
"""Class all fetch exceptions inherit from"""
def __init__(self, message):
@@ -134,9 +131,10 @@ class NonLocalMethod(Exception):
Exception.__init__(self)
class MissingChecksumEvent(bb.event.Event):
def __init__(self, url, **checksums):
def __init__(self, url, md5sum, sha256sum):
self.url = url
self.checksums = checksums
self.checksums = {'md5sum': md5sum,
'sha256sum': sha256sum}
bb.event.Event.__init__(self)
@@ -486,22 +484,17 @@ def fetcher_init(d):
Called to initialize the fetchers once the configuration data is known.
Calls before this must not hit the cache.
"""
revs = bb.persist_data.persist('BB_URI_HEADREVS', d)
try:
# fetcher_init is called multiple times, so make sure we only save the
# revs the first time it is called.
if not bb.fetch2.saved_headrevs:
bb.fetch2.saved_headrevs = dict(revs)
except:
pass
# When to drop SCM head revisions controlled by user policy
srcrev_policy = d.getVar('BB_SRCREV_POLICY') or "clear"
if srcrev_policy == "cache":
logger.debug(1, "Keeping SRCREV cache due to cache policy of: %s", srcrev_policy)
elif srcrev_policy == "clear":
logger.debug(1, "Clearing SRCREV cache due to cache policy of: %s", srcrev_policy)
revs = bb.persist_data.persist('BB_URI_HEADREVS', d)
try:
bb.fetch2.saved_headrevs = revs.items()
except:
pass
revs.clear()
else:
raise FetchError("Invalid SRCREV cache policy of: %s" % srcrev_policy)
@@ -520,12 +513,22 @@ def fetcher_parse_done():
def fetcher_compare_revisions(d):
"""
Compare the revisions in the persistent cache with the saved values from
when bitbake was started and return true if they have changed.
Compare the revisions in the persistant cache with current values and
return true/false on whether they've changed.
"""
headrevs = dict(bb.persist_data.persist('BB_URI_HEADREVS', d))
return headrevs != bb.fetch2.saved_headrevs
data = bb.persist_data.persist('BB_URI_HEADREVS', d).items()
data2 = bb.fetch2.saved_headrevs
changed = False
for key in data:
if key not in data2 or data2[key] != data[key]:
logger.debug(1, "%s changed", key)
changed = True
return True
else:
logger.debug(2, "%s did not change", key)
return False
def mirror_from_string(data):
mirrors = (data or "").replace('\\n',' ').split()
@@ -549,84 +552,71 @@ def verify_checksum(ud, d, precomputed={}):
downloading. See https://bugzilla.yoctoproject.org/show_bug.cgi?id=5571.
"""
_MD5_KEY = "md5"
_SHA256_KEY = "sha256"
if ud.ignore_checksums or not ud.method.supports_checksum(ud):
return {}
def compute_checksum_info(checksum_id):
checksum_name = getattr(ud, "%s_name" % checksum_id)
if _MD5_KEY in precomputed:
md5data = precomputed[_MD5_KEY]
else:
md5data = bb.utils.md5_file(ud.localpath)
if checksum_id in precomputed:
checksum_data = precomputed[checksum_id]
else:
checksum_data = getattr(bb.utils, "%s_file" % checksum_id)(ud.localpath)
checksum_expected = getattr(ud, "%s_expected" % checksum_id)
return {
"id": checksum_id,
"name": checksum_name,
"data": checksum_data,
"expected": checksum_expected
}
checksum_infos = []
for checksum_id in CHECKSUM_LIST:
checksum_infos.append(compute_checksum_info(checksum_id))
checksum_dict = {ci["id"] : ci["data"] for ci in checksum_infos}
checksum_event = {"%ssum" % ci["id"] : ci["data"] for ci in checksum_infos}
for ci in checksum_infos:
if ci["id"] in SHOWN_CHECKSUM_LIST:
checksum_lines = ["SRC_URI[%s] = \"%s\"" % (ci["name"], ci["data"])]
# If no checksum has been provided
if ud.method.recommends_checksum(ud) and all(ci["expected"] is None for ci in checksum_infos):
messages = []
strict = d.getVar("BB_STRICT_CHECKSUM") or "0"
if _SHA256_KEY in precomputed:
sha256data = precomputed[_SHA256_KEY]
else:
sha256data = bb.utils.sha256_file(ud.localpath)
if ud.method.recommends_checksum(ud) and not ud.md5_expected and not ud.sha256_expected:
# If strict checking enabled and neither sum defined, raise error
strict = d.getVar("BB_STRICT_CHECKSUM") or "0"
if strict == "1":
messages.append("No checksum specified for '%s', please add at " \
"least one to the recipe:" % ud.localpath)
messages.extend(checksum_lines)
logger.error("\n".join(messages))
raise NoChecksumError("Missing SRC_URI checksum", ud.url)
logger.error('No checksum specified for %s, please add at least one to the recipe:\n'
'SRC_URI[%s] = "%s"\nSRC_URI[%s] = "%s"' %
(ud.localpath, ud.md5_name, md5data,
ud.sha256_name, sha256data))
raise NoChecksumError('Missing SRC_URI checksum', ud.url)
bb.event.fire(MissingChecksumEvent(ud.url, **checksum_event), d)
bb.event.fire(MissingChecksumEvent(ud.url, md5data, sha256data), d)
if strict == "ignore":
return checksum_dict
return {
_MD5_KEY: md5data,
_SHA256_KEY: sha256data
}
# Log missing sums so user can more easily add them
messages.append("Missing checksum for '%s', consider adding at " \
"least one to the recipe:" % ud.localpath)
messages.extend(checksum_lines)
logger.warning("\n".join(messages))
logger.warning('Missing md5 SRC_URI checksum for %s, consider adding to the recipe:\n'
'SRC_URI[%s] = "%s"',
ud.localpath, ud.md5_name, md5data)
logger.warning('Missing sha256 SRC_URI checksum for %s, consider adding to the recipe:\n'
'SRC_URI[%s] = "%s"',
ud.localpath, ud.sha256_name, sha256data)
# We want to alert the user if a checksum is defined in the recipe but
# it does not match.
messages = []
messages.append("Checksum mismatch!")
bad_checksum = None
msg = ""
mismatch = False
if ud.md5_expected and ud.md5_expected != md5data:
msg = msg + "\nFile: '%s' has %s checksum %s when %s was expected" % (ud.localpath, 'md5', md5data, ud.md5_expected)
mismatch = True;
for ci in checksum_infos:
if ci["expected"] and ci["expected"] != ci["data"]:
messages.append("File: '%s' has %s checksum %s when %s was " \
"expected" % (ud.localpath, ci["id"], ci["data"], ci["expected"]))
bad_checksum = ci["data"]
if ud.sha256_expected and ud.sha256_expected != sha256data:
msg = msg + "\nFile: '%s' has %s checksum %s when %s was expected" % (ud.localpath, 'sha256', sha256data, ud.sha256_expected)
mismatch = True;
if bad_checksum:
messages.append("If this change is expected (e.g. you have upgraded " \
"to a new version without updating the checksums) " \
"then you can use these lines within the recipe:")
messages.extend(checksum_lines)
messages.append("Otherwise you should retry the download and/or " \
"check with upstream to determine if the file has " \
"become corrupted or otherwise unexpectedly modified.")
raise ChecksumError("\n".join(messages), ud.url, bad_checksum)
if mismatch:
msg = msg + '\nIf this change is expected (e.g. you have upgraded to a new version without updating the checksums) then you can use these lines within the recipe:\nSRC_URI[%s] = "%s"\nSRC_URI[%s] = "%s"\nOtherwise you should retry the download and/or check with upstream to determine if the file has become corrupted or otherwise unexpectedly modified.\n' % (ud.md5_name, md5data, ud.sha256_name, sha256data)
if len(msg):
raise ChecksumError('Checksum mismatch!%s' % msg, ud.url, md5data)
return {
_MD5_KEY: md5data,
_SHA256_KEY: sha256data
}
return checksum_dict
def verify_donestamp(ud, d, origud=None):
"""
@@ -853,6 +843,11 @@ def runfetchcmd(cmd, d, quiet=False, cleanup=None, log=None, workdir=None):
if val:
cmd = 'export ' + var + '=\"%s\"; %s' % (val, cmd)
# Ensure that a _PYTHON_SYSCONFIGDATA_NAME value set by a recipe
# (for example via python3native.bbclass since warrior) is not set for
# host Python (otherwise tools like git-make-shallow will fail)
cmd = 'unset _PYTHON_SYSCONFIGDATA_NAME; ' + cmd
# Disable pseudo as it may affect ssh, potentially causing it to hang.
cmd = 'export PSEUDO_DISABLED=1; ' + cmd
@@ -1086,7 +1081,7 @@ def try_mirrors(fetch, d, origud, mirrors, check = False):
for index, uri in enumerate(uris):
ret = try_mirror_url(fetch, origud, uds[index], ld, check)
if ret:
if ret != False:
return ret
return None
@@ -1190,6 +1185,8 @@ def get_checksum_file_list(d):
paths = ud.method.localpaths(ud, d)
for f in paths:
pth = ud.decodedurl
if '*' in pth:
f = os.path.join(os.path.abspath(f), pth)
if f.startswith(dl_dir):
# The local fetcher's behaviour is to return a path under DL_DIR if it couldn't find the file anywhere else
if os.path.exists(f):
@@ -1233,26 +1230,24 @@ class FetchData(object):
self.pswd = self.parm["pswd"]
self.setup = False
def configure_checksum(checksum_id):
if "name" in self.parm:
checksum_name = "%s.%ssum" % (self.parm["name"], checksum_id)
else:
checksum_name = "%ssum" % checksum_id
setattr(self, "%s_name" % checksum_id, checksum_name)
if checksum_name in self.parm:
checksum_expected = self.parm[checksum_name]
elif self.type not in ["http", "https", "ftp", "ftps", "sftp", "s3"]:
checksum_expected = None
else:
checksum_expected = d.getVarFlag("SRC_URI", checksum_name)
setattr(self, "%s_expected" % checksum_id, checksum_expected)
for checksum_id in CHECKSUM_LIST:
configure_checksum(checksum_id)
if "name" in self.parm:
self.md5_name = "%s.md5sum" % self.parm["name"]
self.sha256_name = "%s.sha256sum" % self.parm["name"]
else:
self.md5_name = "md5sum"
self.sha256_name = "sha256sum"
if self.md5_name in self.parm:
self.md5_expected = self.parm[self.md5_name]
elif self.type not in ["http", "https", "ftp", "ftps", "sftp", "s3"]:
self.md5_expected = None
else:
self.md5_expected = d.getVarFlag("SRC_URI", self.md5_name)
if self.sha256_name in self.parm:
self.sha256_expected = self.parm[self.sha256_name]
elif self.type not in ["http", "https", "ftp", "ftps", "sftp", "s3"]:
self.sha256_expected = None
else:
self.sha256_expected = d.getVarFlag("SRC_URI", self.sha256_name)
self.ignore_checksums = False
self.names = self.parm.get("name",'default').split(',')
@@ -1356,8 +1351,11 @@ class FetchMethod(object):
"""
# We cannot compute checksums for directories
if os.path.isdir(urldata.localpath):
if os.path.isdir(urldata.localpath) == True:
return False
if urldata.localpath.find("*") != -1:
return False
return True
def recommends_checksum(self, urldata):
@@ -1367,18 +1365,6 @@ class FetchMethod(object):
"""
return False
def verify_donestamp(self, ud, d):
"""
Verify the donestamp file
"""
return verify_donestamp(ud, d)
def update_donestamp(self, ud, d):
"""
Update the donestamp file
"""
update_stamp(ud, d)
def _strip_leading_slashes(self, relpath):
"""
Remove leading slash as os.path.join can't cope
@@ -1420,6 +1406,11 @@ class FetchMethod(object):
iterate = False
file = urldata.localpath
# Localpath can't deal with 'dir/*' entries, so it converts them to '.',
# but it must be corrected back for local files copying
if urldata.basename == '*' and file.endswith('/.'):
file = '%s/%s' % (file.rstrip('/.'), urldata.path)
try:
unpack = bb.utils.to_boolean(urldata.parm.get('unpack'), True)
except ValueError as exc:
@@ -1515,7 +1506,7 @@ class FetchMethod(object):
if urlpath.find("/") != -1:
destdir = urlpath.rsplit("/", 1)[0] + '/'
bb.utils.mkdirhier("%s/%s" % (unpackdir, destdir))
cmd = 'cp -fpPRH "%s" "%s"' % (file, destdir)
cmd = 'cp -fpPRH %s %s' % (file, destdir)
if not cmd:
return
@@ -1548,12 +1539,6 @@ class FetchMethod(object):
"""
return True
def try_mirrors(self, fetch, urldata, d, mirrors, check=False):
"""
Try to use a mirror
"""
return bool(try_mirrors(fetch, d, urldata, mirrors, check))
def checkstatus(self, fetch, urldata, d):
"""
Check the status of a URL
@@ -1592,21 +1577,6 @@ class FetchMethod(object):
"""
return ('', '')
def done(self, ud, d):
"""
Is the download done ?
"""
if os.path.exists(ud.localpath):
return True
return False
def implicit_urldata(self, ud, d):
"""
Get a list of FetchData objects for any implicit URLs that will also
be downloaded when we fetch the given URL.
"""
return []
class Fetch(object):
def __init__(self, urls, d, cache = True, localonly = False, connection_cache = None):
if localonly and cache:
@@ -1621,11 +1591,8 @@ class Fetch(object):
fn = d.getVar('FILE')
mc = d.getVar('__BBMULTICONFIG') or ""
key = None
if cache and fn:
key = mc + fn + str(id(d))
if key in urldata_cache:
self.ud = urldata_cache[key]
if cache and fn and mc + fn in urldata_cache:
self.ud = urldata_cache[mc + fn + str(id(d))]
for url in urls:
if url not in self.ud:
@@ -1636,8 +1603,8 @@ class Fetch(object):
self.ud[url] = None
pass
if key:
urldata_cache[key] = self.ud
if fn and cache:
urldata_cache[mc + fn + str(id(d))] = self.ud
def localpath(self, url):
if url not in self.urls:
@@ -1673,7 +1640,7 @@ class Fetch(object):
ud = self.ud[u]
ud.setup_localpath(self.d)
m = ud.method
done = False
localpath = ""
if ud.lockfile:
lf = bb.utils.lockfile(ud.lockfile)
@@ -1681,28 +1648,28 @@ class Fetch(object):
try:
self.d.setVar("BB_NO_NETWORK", network)
if m.verify_donestamp(ud, self.d) and not m.need_update(ud, self.d):
done = True
if verify_donestamp(ud, self.d) and not m.need_update(ud, self.d):
localpath = ud.localpath
elif m.try_premirror(ud, self.d):
logger.debug(1, "Trying PREMIRRORS")
mirrors = mirror_from_string(self.d.getVar('PREMIRRORS'))
done = m.try_mirrors(self, ud, self.d, mirrors)
if done:
localpath = try_mirrors(self, self.d, ud, mirrors, False)
if localpath:
try:
# early checksum verification so that if the checksum of the premirror
# contents mismatch the fetcher can still try upstream and mirrors
m.update_donestamp(ud, self.d)
update_stamp(ud, self.d)
except ChecksumError as e:
logger.warning("Checksum failure encountered with premirror download of %s - will attempt other sources." % u)
logger.debug(1, str(e))
done = False
localpath = ""
if premirroronly:
self.d.setVar("BB_NO_NETWORK", "1")
firsterr = None
verified_stamp = m.verify_donestamp(ud, self.d)
if not done and (not verified_stamp or m.need_update(ud, self.d)):
verified_stamp = verify_donestamp(ud, self.d)
if not localpath and (not verified_stamp or m.need_update(ud, self.d)):
try:
if not trusted_network(self.d, ud.url):
raise UntrustedUrl(ud.url)
@@ -1710,10 +1677,10 @@ class Fetch(object):
m.download(ud, self.d)
if hasattr(m, "build_mirror_data"):
m.build_mirror_data(ud, self.d)
done = True
localpath = ud.localpath
# early checksum verify, so that if checksum mismatched,
# fetcher still have chance to fetch from mirror
m.update_donestamp(ud, self.d)
update_stamp(ud, self.d)
except bb.fetch2.NetworkAccess:
raise
@@ -1735,14 +1702,14 @@ class Fetch(object):
m.clean(ud, self.d)
logger.debug(1, "Trying MIRRORS")
mirrors = mirror_from_string(self.d.getVar('MIRRORS'))
done = m.try_mirrors(self, ud, self.d, mirrors)
localpath = try_mirrors(self, self.d, ud, mirrors)
if not done or not m.done(ud, self.d):
if not localpath or ((not os.path.exists(localpath)) and localpath.find("*") == -1):
if firsterr:
logger.error(str(firsterr))
raise FetchError("Unable to fetch URL from any source.", u)
m.update_donestamp(ud, self.d)
update_stamp(ud, self.d)
except IOError as e:
if e.errno in [errno.ESTALE]:
@@ -1773,14 +1740,14 @@ class Fetch(object):
logger.debug(1, "Testing URL %s", u)
# First try checking uri, u, from PREMIRRORS
mirrors = mirror_from_string(self.d.getVar('PREMIRRORS'))
ret = m.try_mirrors(self, ud, self.d, mirrors, True)
ret = try_mirrors(self, self.d, ud, mirrors, True)
if not ret:
# Next try checking from the original uri, u
ret = m.checkstatus(self, ud, self.d)
if not ret:
# Finally, try checking uri, u, from MIRRORS
mirrors = mirror_from_string(self.d.getVar('MIRRORS'))
ret = m.try_mirrors(self, ud, self.d, mirrors, True)
ret = try_mirrors(self, self.d, ud, mirrors, True)
if not ret:
raise FetchError("URL %s doesn't work" % u, u)
@@ -1832,24 +1799,6 @@ class Fetch(object):
if ud.lockfile:
bb.utils.unlockfile(lf)
def expanded_urldata(self, urls=None):
"""
Get an expanded list of FetchData objects covering both the given
URLS and any additional implicit URLs that are added automatically by
the appropriate FetchMethod.
"""
if not urls:
urls = self.urls
urldata = []
for url in urls:
ud = self.ud[url]
urldata.append(ud)
urldata += ud.method.implicit_urldata(ud, self.d)
return urldata
class FetchConnectionCache(object):
"""
A class which represents an container for socket connections.
@@ -1903,7 +1852,6 @@ from . import osc
from . import repo
from . import clearcase
from . import npm
from . import npmsw
methods.append(local.Local())
methods.append(wget.Wget())
@@ -1922,4 +1870,3 @@ methods.append(osc.Osc())
methods.append(repo.Repo())
methods.append(clearcase.ClearCase())
methods.append(npm.Npm())
methods.append(npmsw.NpmShrinkWrap())

View File

@@ -14,6 +14,8 @@ BitBake 'Fetch' implementation for bzr.
#
import os
import sys
import logging
import bb
from bb.fetch2 import FetchMethod
from bb.fetch2 import FetchError

View File

@@ -49,6 +49,7 @@ User credentials:
#
import os
import sys
import shutil
import bb
from bb.fetch2 import FetchMethod
@@ -237,7 +238,7 @@ class ClearCase(FetchMethod):
# Clean clearcase meta-data before tar
runfetchcmd('tar -czf "%s" .' % (ud.localpath), d, cleanup = [ud.localpath], workdir = ud.viewdir)
runfetchcmd('tar -czf "%s" .' % (ud.localpath), d, cleanup = [ud.localpath])
# Clean up so we can create a new view next time
self.clean(ud, d);

View File

@@ -14,6 +14,7 @@ BitBake build tools.
#
import os
import logging
import bb
from bb.fetch2 import FetchMethod, FetchError, MissingParameterError, logger
from bb.fetch2 import runfetchcmd
@@ -51,10 +52,6 @@ class Cvs(FetchMethod):
ud.localfile = d.expand('%s_%s_%s_%s%s%s.tar.gz' % (ud.module.replace('/', '.'), ud.host, ud.tag, ud.date, norecurse, fullpath))
pkg = d.getVar('PN')
cvsdir = d.getVar("CVSDIR") or (d.getVar("DL_DIR") + "/cvs")
ud.pkgdir = os.path.join(cvsdir, pkg)
def need_update(self, ud, d):
if (ud.date == "now"):
return True
@@ -110,7 +107,10 @@ class Cvs(FetchMethod):
# create module directory
logger.debug(2, "Fetch: checking for module directory")
moddir = os.path.join(ud.pkgdir, localdir)
pkg = d.getVar('PN')
cvsdir = d.getVar("CVSDIR") or (d.getVar("DL_DIR") + "/cvs")
pkgdir = os.path.join(cvsdir, pkg)
moddir = os.path.join(pkgdir, localdir)
workdir = None
if os.access(os.path.join(moddir, 'CVS'), os.R_OK):
logger.info("Update " + ud.url)
@@ -121,8 +121,8 @@ class Cvs(FetchMethod):
else:
logger.info("Fetch " + ud.url)
# check out sources there
bb.utils.mkdirhier(ud.pkgdir)
workdir = ud.pkgdir
bb.utils.mkdirhier(pkgdir)
workdir = pkgdir
logger.debug(1, "Running %s", cvscmd)
bb.fetch2.check_network_access(d, cvscmd, ud.url)
cmd = cvscmd
@@ -141,7 +141,7 @@ class Cvs(FetchMethod):
# tar them up to a defined filename
workdir = None
if 'fullpath' in ud.parm:
workdir = ud.pkgdir
workdir = pkgdir
cmd = "tar %s -czf %s %s" % (tar_flags, ud.localpath, localdir)
else:
workdir = os.path.dirname(os.path.realpath(moddir))
@@ -152,6 +152,9 @@ class Cvs(FetchMethod):
def clean(self, ud, d):
""" Clean CVS Files and tarballs """
bb.utils.remove(ud.pkgdir, True)
pkg = d.getVar('PN')
pkgdir = os.path.join(d.getVar("CVSDIR"), pkg)
bb.utils.remove(pkgdir, True)
bb.utils.remove(ud.localpath)

View File

@@ -63,7 +63,6 @@ import errno
import fnmatch
import os
import re
import shlex
import subprocess
import tempfile
import bb
@@ -241,7 +240,7 @@ class Git(FetchMethod):
ud.unresolvedrev[name] = ud.revisions[name]
ud.revisions[name] = self.latest_revision(ud, d, name)
gitsrcname = '%s%s' % (ud.host.replace(':', '.'), ud.path.replace('/', '.').replace('*', '.').replace(' ','_'))
gitsrcname = '%s%s' % (ud.host.replace(':', '.'), ud.path.replace('/', '.').replace('*', '.'))
if gitsrcname.startswith('.'):
gitsrcname = gitsrcname[1:]
@@ -347,7 +346,7 @@ class Git(FetchMethod):
# We do this since git will use a "-l" option automatically for local urls where possible
if repourl.startswith("file://"):
repourl = repourl[7:]
clone_cmd = "LANG=C %s clone --bare --mirror %s %s --progress" % (ud.basecmd, shlex.quote(repourl), ud.clonedir)
clone_cmd = "LANG=C %s clone --bare --mirror %s %s --progress" % (ud.basecmd, repourl, ud.clonedir)
if ud.proto.lower() != 'file':
bb.fetch2.check_network_access(d, clone_cmd, ud.url)
progresshandler = GitProgressHandler(d)
@@ -359,8 +358,8 @@ class Git(FetchMethod):
if "origin" in output:
runfetchcmd("%s remote rm origin" % ud.basecmd, d, workdir=ud.clonedir)
runfetchcmd("%s remote add --mirror=fetch origin %s" % (ud.basecmd, shlex.quote(repourl)), d, workdir=ud.clonedir)
fetch_cmd = "LANG=C %s fetch -f --progress %s refs/*:refs/*" % (ud.basecmd, shlex.quote(repourl))
runfetchcmd("%s remote add --mirror=fetch origin %s" % (ud.basecmd, repourl), d, workdir=ud.clonedir)
fetch_cmd = "LANG=C %s fetch -f --progress %s refs/*:refs/*" % (ud.basecmd, repourl)
if ud.proto.lower() != 'file':
bb.fetch2.check_network_access(d, fetch_cmd, ud.url)
progresshandler = GitProgressHandler(d)
@@ -383,35 +382,6 @@ class Git(FetchMethod):
if missing_rev:
raise bb.fetch2.FetchError("Unable to find revision %s even from upstream" % missing_rev)
if self._contains_lfs(ud, d, ud.clonedir) and self._need_lfs(ud):
# Unpack temporary working copy, use it to run 'git checkout' to force pre-fetching
# of all LFS blobs needed at the the srcrev.
#
# It would be nice to just do this inline here by running 'git-lfs fetch'
# on the bare clonedir, but that operation requires a working copy on some
# releases of Git LFS.
tmpdir = tempfile.mkdtemp(dir=d.getVar('DL_DIR'))
try:
# Do the checkout. This implicitly involves a Git LFS fetch.
Git.unpack(self, ud, tmpdir, d)
# Scoop up a copy of any stuff that Git LFS downloaded. Merge them into
# the bare clonedir.
#
# As this procedure is invoked repeatedly on incremental fetches as
# a recipe's SRCREV is bumped throughout its lifetime, this will
# result in a gradual accumulation of LFS blobs in <ud.clonedir>/lfs
# corresponding to all the blobs reachable from the different revs
# fetched across time.
#
# Only do this if the unpack resulted in a .git/lfs directory being
# created; this only happens if at least one blob needed to be
# downloaded.
if os.path.exists(os.path.join(tmpdir, "git", ".git", "lfs")):
runfetchcmd("tar -cf - lfs | tar -xf - -C %s" % ud.clonedir, d, workdir="%s/git/.git" % tmpdir)
finally:
bb.utils.remove(tmpdir, recurse=True)
def build_mirror_data(self, ud, d):
if ud.shallow and ud.write_shallow_tarballs:
if not os.path.exists(ud.fullshallow):
@@ -507,10 +477,7 @@ class Git(FetchMethod):
if os.path.exists(destdir):
bb.utils.prunedir(destdir)
need_lfs = self._need_lfs(ud)
if not need_lfs:
ud.basecmd = "GIT_LFS_SKIP_SMUDGE=1 " + ud.basecmd
need_lfs = ud.parm.get("lfs", "1") == "1"
source_found = False
source_error = []
@@ -538,12 +505,12 @@ class Git(FetchMethod):
raise bb.fetch2.UnpackError("No up to date source found: " + "; ".join(source_error), ud.url)
repourl = self._get_repo_url(ud)
runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, shlex.quote(repourl)), d, workdir=destdir)
runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, repourl), d, workdir=destdir)
if self._contains_lfs(ud, d, destdir):
if need_lfs and not self._find_git_lfs(d):
raise bb.fetch2.FetchError("Repository %s has LFS content, install git-lfs on host to download (or set lfs=0 to ignore it)" % (repourl))
elif not need_lfs:
else:
bb.note("Repository %s has LFS content but it is not being fetched" % (repourl))
if not ud.nocheckout:
@@ -596,28 +563,12 @@ class Git(FetchMethod):
raise bb.fetch2.FetchError("The command '%s' gave output with more then 1 line unexpectedly, output: '%s'" % (cmd, output))
return output.split()[0] != "0"
def _need_lfs(self, ud):
return ud.parm.get("lfs", "1") == "1"
def _contains_lfs(self, ud, d, wd):
"""
Check if the repository has 'lfs' (large file) content
"""
if not ud.nobranch:
branchname = ud.branches[ud.names[0]]
else:
branchname = "master"
# The bare clonedir doesn't use the remote names; it has the branch immediately.
if wd == ud.clonedir:
refname = ud.branches[ud.names[0]]
else:
refname = "origin/%s" % ud.branches[ud.names[0]]
cmd = "%s grep lfs %s:.gitattributes | wc -l" % (
ud.basecmd, refname)
cmd = "%s grep lfs HEAD:.gitattributes | wc -l" % (
ud.basecmd)
try:
output = runfetchcmd(cmd, d, quiet=True, workdir=wd)
if int(output) > 0:
@@ -667,7 +618,7 @@ class Git(FetchMethod):
try:
repourl = self._get_repo_url(ud)
cmd = "%s ls-remote %s %s" % \
(ud.basecmd, shlex.quote(repourl), search)
(ud.basecmd, repourl, search)
if ud.proto.lower() != 'file':
bb.fetch2.check_network_access(d, cmd, repourl)
output = runfetchcmd(cmd, d, True)
@@ -726,7 +677,7 @@ class Git(FetchMethod):
# search for version in the line
tag = tagregex.search(tag_head)
if tag is None:
if tag == None:
continue
tag = tag.group('pver')

View File

@@ -8,9 +8,11 @@ BitBake 'Fetch' git annex implementation
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import bb
from bb.fetch2.git import Git
from bb.fetch2 import runfetchcmd
from bb.fetch2 import logger
class GitANNEX(Git):
def supports(self, ud, d):

View File

@@ -20,12 +20,11 @@ NOTE: Switching a SRC_URI from "git://" to "gitsm://" requires a clean of your r
import os
import bb
import copy
import shutil
import tempfile
from bb.fetch2.git import Git
from bb.fetch2 import runfetchcmd
from bb.fetch2 import logger
from bb.fetch2 import Fetch
from bb.fetch2 import BBFetchException
class GitSM(Git):
def supports(self, ud, d):
@@ -132,7 +131,7 @@ class GitSM(Git):
ld.setVar('SRCPV', d.getVar('SRCPV'))
ld.setVar('SRCREV_FORMAT', module)
function(ud, url, module, paths[module], workdir, ld)
function(ud, url, module, paths[module], ld)
return submodules != []
@@ -143,49 +142,18 @@ class GitSM(Git):
try:
# Check for the nugget dropped by the download operation
known_srcrevs = runfetchcmd("%s config --get-all bitbake.srcrev" % \
(ud.basecmd), d, workdir=ud.clonedir)
(ud.basecmd), d, workdir=ud.clonedir)
if ud.revisions[ud.names[0]] in known_srcrevs.split():
return False
if ud.revisions[ud.names[0]] not in known_srcrevs.split():
return True
except bb.fetch2.FetchError:
pass
need_update_list = []
def need_update_submodule(ud, url, module, modpath, workdir, d):
url += ";bareclone=1;nobranch=1"
try:
newfetch = Fetch([url], d, cache=False)
new_ud = newfetch.ud[url]
if new_ud.method.need_update(new_ud, d):
need_update_list.append(modpath)
except Exception as e:
logger.error('gitsm: submodule update check failed: %s %s' % (type(e).__name__, str(e)))
need_update_result = True
# If we're using a shallow mirror tarball it needs to be unpacked
# temporarily so that we can examine the .gitmodules file
if ud.shallow and os.path.exists(ud.fullshallow) and not os.path.exists(ud.clonedir):
tmpdir = tempfile.mkdtemp(dir=d.getVar("DL_DIR"))
runfetchcmd("tar -xzf %s" % ud.fullshallow, d, workdir=tmpdir)
self.process_submodules(ud, tmpdir, need_update_submodule, d)
shutil.rmtree(tmpdir)
else:
self.process_submodules(ud, ud.clonedir, need_update_submodule, d)
if len(need_update_list) == 0:
# We already have the required commits of all submodules. Drop
# a nugget so we don't need to check again.
runfetchcmd("%s config --add bitbake.srcrev %s" % \
(ud.basecmd, ud.revisions[ud.names[0]]), d, workdir=ud.clonedir)
if len(need_update_list) > 0:
logger.debug(1, 'gitsm: Submodules requiring update: %s' % (' '.join(need_update_list)))
# No srcrev nuggets, so this is new and needs to be updated
return True
return False
def download(self, ud, d):
def download_submodule(ud, url, module, modpath, workdir, d):
def download_submodule(ud, url, module, modpath, d):
url += ";bareclone=1;nobranch=1"
# Is the following still needed?
@@ -194,27 +162,18 @@ class GitSM(Git):
try:
newfetch = Fetch([url], d, cache=False)
newfetch.download()
# Drop a nugget to add each of the srcrevs we've fetched (used by need_update)
runfetchcmd("%s config --add bitbake.srcrev %s" % \
(ud.basecmd, ud.revisions[ud.names[0]]), d, workdir=ud.clonedir)
except Exception as e:
logger.error('gitsm: submodule download failed: %s %s' % (type(e).__name__, str(e)))
raise
Git.download(self, ud, d)
# If we're using a shallow mirror tarball it needs to be unpacked
# temporarily so that we can examine the .gitmodules file
if ud.shallow and os.path.exists(ud.fullshallow) and self.need_update(ud, d):
tmpdir = tempfile.mkdtemp(dir=d.getVar("DL_DIR"))
runfetchcmd("tar -xzf %s" % ud.fullshallow, d, workdir=tmpdir)
self.process_submodules(ud, tmpdir, download_submodule, d)
shutil.rmtree(tmpdir)
else:
self.process_submodules(ud, ud.clonedir, download_submodule, d)
# Drop a nugget for the srcrev we've fetched (used by need_update)
runfetchcmd("%s config --add bitbake.srcrev %s" % \
(ud.basecmd, ud.revisions[ud.names[0]]), d, workdir=ud.clonedir)
self.process_submodules(ud, ud.clonedir, download_submodule, d)
def unpack(self, ud, destdir, d):
def unpack_submodules(ud, url, module, modpath, workdir, d):
def unpack_submodules(ud, url, module, modpath, d):
url += ";bareclone=1;nobranch=1"
# Figure out where we clone over the bare submodules...
@@ -254,24 +213,3 @@ class GitSM(Git):
# up the configuration and checks out the files. The main project config should remain
# unmodified, and no download from the internet should occur.
runfetchcmd("%s submodule update --recursive --no-fetch" % (ud.basecmd), d, quiet=True, workdir=ud.destdir)
def implicit_urldata(self, ud, d):
import shutil, subprocess, tempfile
urldata = []
def add_submodule(ud, url, module, modpath, workdir, d):
url += ";bareclone=1;nobranch=1"
newfetch = Fetch([url], d, cache=False)
urldata.extend(newfetch.expanded_urldata())
# If we're using a shallow mirror tarball it needs to be unpacked
# temporarily so that we can examine the .gitmodules file
if ud.shallow and os.path.exists(ud.fullshallow) and ud.method.need_update(ud, d):
tmpdir = tempfile.mkdtemp(dir=d.getVar("DL_DIR"))
subprocess.check_call("tar -xzf %s" % ud.fullshallow, cwd=tmpdir, shell=True)
self.process_submodules(ud, tmpdir, add_submodule, d)
shutil.rmtree(tmpdir)
else:
self.process_submodules(ud, ud.clonedir, add_submodule, d)
return urldata

View File

@@ -13,6 +13,8 @@ BitBake 'Fetch' implementation for mercurial DRCS (hg).
#
import os
import sys
import logging
import bb
import errno
from bb.fetch2 import FetchMethod

View File

@@ -17,7 +17,7 @@ import os
import urllib.request, urllib.parse, urllib.error
import bb
import bb.utils
from bb.fetch2 import FetchMethod, FetchError, ParameterError
from bb.fetch2 import FetchMethod, FetchError
from bb.fetch2 import logger
class Local(FetchMethod):
@@ -33,8 +33,6 @@ class Local(FetchMethod):
ud.basename = os.path.basename(ud.decodedurl)
ud.basepath = ud.decodedurl
ud.needdonestamp = False
if "*" in ud.decodedurl:
raise bb.fetch2.ParameterError("file:// urls using globbing are no longer supported. Please place the files in a directory and reference that instead.", ud.url)
return
def localpath(self, urldata, d):
@@ -57,6 +55,12 @@ class Local(FetchMethod):
logger.debug(2, "Searching for %s in paths:\n %s" % (path, "\n ".join(filespath.split(":"))))
newpath, hist = bb.utils.which(filespath, path, history=True)
searched.extend(hist)
if (not newpath or not os.path.exists(newpath)) and path.find("*") != -1:
# For expressions using '*', best we can do is take the first directory in FILESPATH that exists
newpath, hist = bb.utils.which(filespath, ".", history=True)
searched.extend(hist)
logger.debug(2, "Searching for %s in path: %s" % (path, newpath))
return searched
if not os.path.exists(newpath):
dldirfile = os.path.join(d.getVar("DL_DIR"), path)
logger.debug(2, "Defaulting to %s for %s" % (dldirfile, path))
@@ -66,6 +70,8 @@ class Local(FetchMethod):
return searched
def need_update(self, ud, d):
if ud.url.find("*") != -1:
return False
if os.path.exists(ud.localpath):
return False
return True
@@ -89,6 +95,9 @@ class Local(FetchMethod):
"""
Check the status of the url
"""
if urldata.localpath.find("*") != -1:
logger.info("URL %s looks like a glob and was therefore not checked.", urldata.url)
return True
if os.path.exists(urldata.localpath):
return True
return False

View File

@@ -1,296 +1,301 @@
# Copyright (C) 2020 Savoir-Faire Linux
#
# SPDX-License-Identifier: GPL-2.0-only
#
"""
BitBake 'Fetch' npm implementation
BitBake 'Fetch' NPM implementation
npm fetcher support the SRC_URI with format of:
SRC_URI = "npm://some.registry.url;OptionA=xxx;OptionB=xxx;..."
The NPM fetcher is used to retrieve files from the npmjs repository
Supported SRC_URI options are:
Usage in the recipe:
- package
The npm package name. This is a mandatory parameter.
SRC_URI = "npm://registry.npmjs.org/;name=${PN};version=${PV}"
Suported SRC_URI options are:
- version
The npm package version. This is a mandatory parameter.
- name
- version
- downloadfilename
Specifies the filename used when storing the downloaded file.
npm://registry.npmjs.org/${PN}/-/${PN}-${PV}.tgz would become npm://registry.npmjs.org;name=${PN};version=${PV}
The fetcher all triggers off the existence of ud.localpath. If that exists and has the ".done" stamp, its assumed the fetch is good/done
- destsuffix
Specifies the directory to use to unpack the package (default: npm).
"""
import base64
import json
import os
import re
import shlex
import tempfile
import sys
import urllib.request, urllib.parse, urllib.error
import json
import subprocess
import signal
import bb
from bb.fetch2 import Fetch
from bb.fetch2 import FetchError
from bb.fetch2 import FetchMethod
from bb.fetch2 import MissingParameterError
from bb.fetch2 import ParameterError
from bb.fetch2 import URI
from bb.fetch2 import check_network_access
from bb.fetch2 import runfetchcmd
from bb.utils import is_semver
from bb.fetch2 import FetchMethod
from bb.fetch2 import FetchError
from bb.fetch2 import ChecksumError
from bb.fetch2 import runfetchcmd
from bb.fetch2 import logger
from bb.fetch2 import UnpackError
from bb.fetch2 import ParameterError
def npm_package(package):
"""Convert the npm package name to remove unsupported character"""
# Scoped package names (with the @) use the same naming convention
# as the 'npm pack' command.
if package.startswith("@"):
return re.sub("/", "-", package[1:])
return package
def npm_filename(package, version):
"""Get the filename of a npm package"""
return npm_package(package) + "-" + version + ".tgz"
def npm_localfile(package, version):
"""Get the local filename of a npm package"""
return os.path.join("npm2", npm_filename(package, version))
def npm_integrity(integrity):
"""
Get the checksum name and expected value from the subresource integrity
https://www.w3.org/TR/SRI/
"""
algo, value = integrity.split("-", maxsplit=1)
return "%ssum" % algo, base64.b64decode(value).hex()
def npm_unpack(tarball, destdir, d):
"""Unpack a npm tarball"""
bb.utils.mkdirhier(destdir)
cmd = "tar --extract --gzip --file=%s" % shlex.quote(tarball)
cmd += " --no-same-owner"
cmd += " --strip-components=1"
runfetchcmd(cmd, d, workdir=destdir)
class NpmEnvironment(object):
"""
Using a npm config file seems more reliable than using cli arguments.
This class allows to create a controlled environment for npm commands.
"""
def __init__(self, d, configs=None):
self.d = d
self.configs = configs
def run(self, cmd, args=None, configs=None, workdir=None):
"""Run npm command in a controlled environment"""
with tempfile.TemporaryDirectory() as tmpdir:
d = bb.data.createCopy(self.d)
d.setVar("HOME", tmpdir)
cfgfile = os.path.join(tmpdir, "npmrc")
if not workdir:
workdir = tmpdir
def _run(cmd):
cmd = "NPM_CONFIG_USERCONFIG=%s " % cfgfile + cmd
cmd = "NPM_CONFIG_GLOBALCONFIG=%s " % cfgfile + cmd
return runfetchcmd(cmd, d, workdir=workdir)
if self.configs:
for key, value in self.configs:
_run("npm config set %s %s" % (key, shlex.quote(value)))
if configs:
for key, value in configs:
_run("npm config set %s %s" % (key, shlex.quote(value)))
if args:
for key, value in args:
cmd += " --%s=%s" % (key, shlex.quote(value))
return _run(cmd)
def subprocess_setup():
# Python installs a SIGPIPE handler by default. This is usually not what
# non-Python subprocesses expect.
# SIGPIPE errors are known issues with gzip/bash
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
class Npm(FetchMethod):
"""Class to fetch a package from a npm registry"""
"""Class to fetch urls via 'npm'"""
def init(self, d):
pass
def supports(self, ud, d):
"""Check if a given url can be fetched with npm"""
return ud.type in ["npm"]
"""
Check to see if a given url can be fetched with npm
"""
return ud.type in ['npm']
def debug(self, msg):
logger.debug(1, "NpmFetch: %s", msg)
def clean(self, ud, d):
logger.debug(2, "Calling cleanup %s" % ud.pkgname)
bb.utils.remove(ud.localpath, False)
bb.utils.remove(ud.pkgdatadir, True)
bb.utils.remove(ud.fullmirror, False)
def urldata_init(self, ud, d):
"""Init npm specific variables within url data"""
ud.package = None
ud.version = None
ud.registry = None
# Get the 'package' parameter
if "package" in ud.parm:
ud.package = ud.parm.get("package")
if not ud.package:
raise MissingParameterError("Parameter 'package' required", ud.url)
# Get the 'version' parameter
if "version" in ud.parm:
ud.version = ud.parm.get("version")
if not ud.version:
raise MissingParameterError("Parameter 'version' required", ud.url)
if not is_semver(ud.version) and not ud.version == "latest":
raise ParameterError("Invalid 'version' parameter", ud.url)
# Extract the 'registry' part of the url
ud.registry = re.sub(r"^npm://", "http://", ud.url.split(";")[0])
# Using the 'downloadfilename' parameter as local filename
# or the npm package name.
if "downloadfilename" in ud.parm:
ud.localfile = d.expand(ud.parm["downloadfilename"])
"""
init NPM specific variable within url data
"""
if 'downloadfilename' in ud.parm:
ud.basename = ud.parm['downloadfilename']
else:
ud.localfile = npm_localfile(ud.package, ud.version)
ud.basename = os.path.basename(ud.path)
# Get the base 'npm' command
ud.basecmd = d.getVar("FETCHCMD_npm") or "npm"
# can't call it ud.name otherwise fetcher base class will start doing sha1stuff
# TODO: find a way to get an sha1/sha256 manifest of pkg & all deps
ud.pkgname = ud.parm.get("name", None)
if not ud.pkgname:
raise ParameterError("NPM fetcher requires a name parameter", ud.url)
ud.version = ud.parm.get("version", None)
if not ud.version:
raise ParameterError("NPM fetcher requires a version parameter", ud.url)
ud.bbnpmmanifest = "%s-%s.deps.json" % (ud.pkgname, ud.version)
ud.bbnpmmanifest = ud.bbnpmmanifest.replace('/', '-')
ud.registry = "http://%s" % (ud.url.replace('npm://', '', 1).split(';'))[0]
prefixdir = "npm/%s" % ud.pkgname
ud.pkgdatadir = d.expand("${DL_DIR}/%s" % prefixdir)
if not os.path.exists(ud.pkgdatadir):
bb.utils.mkdirhier(ud.pkgdatadir)
ud.localpath = d.expand("${DL_DIR}/npm/%s" % ud.bbnpmmanifest)
# This fetcher resolves a URI from a npm package name and version and
# then forwards it to a proxy fetcher. A resolve file containing the
# resolved URI is created to avoid unwanted network access (if the file
# already exists). The management of the donestamp file, the lockfile
# and the checksums are forwarded to the proxy fetcher.
ud.proxy = None
ud.needdonestamp = False
ud.resolvefile = self.localpath(ud, d) + ".resolved"
self.basecmd = d.getVar("FETCHCMD_wget") or "/usr/bin/env wget -O -t 2 -T 30 -nv --passive-ftp --no-check-certificate "
ud.prefixdir = prefixdir
def _resolve_proxy_url(self, ud, d):
def _npm_view():
configs = []
configs.append(("json", "true"))
configs.append(("registry", ud.registry))
pkgver = shlex.quote(ud.package + "@" + ud.version)
cmd = ud.basecmd + " view %s" % pkgver
env = NpmEnvironment(d)
check_network_access(d, cmd, ud.registry)
view_string = env.run(cmd, configs=configs)
if not view_string:
raise FetchError("Unavailable package %s" % pkgver, ud.url)
try:
view = json.loads(view_string)
error = view.get("error")
if error is not None:
raise FetchError(error.get("summary"), ud.url)
if ud.version == "latest":
bb.warn("The npm package %s is using the latest " \
"version available. This could lead to " \
"non-reproducible builds." % pkgver)
elif ud.version != view.get("version"):
raise ParameterError("Invalid 'version' parameter", ud.url)
return view
except Exception as e:
raise FetchError("Invalid view from npm: %s" % str(e), ud.url)
def _get_url(view):
tarball_url = view.get("dist", {}).get("tarball")
if tarball_url is None:
raise FetchError("Invalid 'dist.tarball' in view", ud.url)
uri = URI(tarball_url)
uri.params["downloadfilename"] = ud.localfile
integrity = view.get("dist", {}).get("integrity")
shasum = view.get("dist", {}).get("shasum")
if integrity is not None:
checksum_name, checksum_expected = npm_integrity(integrity)
uri.params[checksum_name] = checksum_expected
elif shasum is not None:
uri.params["sha1sum"] = shasum
else:
raise FetchError("Invalid 'dist.integrity' in view", ud.url)
return str(uri)
url = _get_url(_npm_view())
bb.utils.mkdirhier(os.path.dirname(ud.resolvefile))
with open(ud.resolvefile, "w") as f:
f.write(url)
def _setup_proxy(self, ud, d):
if ud.proxy is None:
if not os.path.exists(ud.resolvefile):
self._resolve_proxy_url(ud, d)
with open(ud.resolvefile, "r") as f:
url = f.read()
# Avoid conflicts between the environment data and:
# - the proxy url checksum
data = bb.data.createCopy(d)
data.delVarFlags("SRC_URI")
ud.proxy = Fetch([url], data)
def _get_proxy_method(self, ud, d):
self._setup_proxy(ud, d)
proxy_url = ud.proxy.urls[0]
proxy_ud = ud.proxy.ud[proxy_url]
proxy_d = ud.proxy.d
proxy_ud.setup_localpath(proxy_d)
return proxy_ud.method, proxy_ud, proxy_d
def verify_donestamp(self, ud, d):
"""Verify the donestamp file"""
proxy_m, proxy_ud, proxy_d = self._get_proxy_method(ud, d)
return proxy_m.verify_donestamp(proxy_ud, proxy_d)
def update_donestamp(self, ud, d):
"""Update the donestamp file"""
proxy_m, proxy_ud, proxy_d = self._get_proxy_method(ud, d)
proxy_m.update_donestamp(proxy_ud, proxy_d)
ud.write_tarballs = ((d.getVar("BB_GENERATE_MIRROR_TARBALLS") or "0") != "0")
mirrortarball = 'npm_%s-%s.tar.xz' % (ud.pkgname, ud.version)
mirrortarball = mirrortarball.replace('/', '-')
ud.fullmirror = os.path.join(d.getVar("DL_DIR"), mirrortarball)
ud.mirrortarballs = [mirrortarball]
def need_update(self, ud, d):
"""Force a fetch, even if localpath exists ?"""
if not os.path.exists(ud.resolvefile):
return True
if ud.version == "latest":
return True
proxy_m, proxy_ud, proxy_d = self._get_proxy_method(ud, d)
return proxy_m.need_update(proxy_ud, proxy_d)
if os.path.exists(ud.localpath):
return False
return True
def try_mirrors(self, fetch, ud, d, mirrors):
"""Try to use a mirror"""
proxy_m, proxy_ud, proxy_d = self._get_proxy_method(ud, d)
return proxy_m.try_mirrors(fetch, proxy_ud, proxy_d, mirrors)
def _runpack(self, ud, d, pkgfullname: str, quiet=False) -> str:
"""
Runs npm pack on a full package name.
Returns the filename of the downloaded package
"""
bb.fetch2.check_network_access(d, pkgfullname, ud.registry)
dldir = d.getVar("DL_DIR")
dldir = os.path.join(dldir, ud.prefixdir)
command = "npm pack {} --registry {}".format(pkgfullname, ud.registry)
logger.debug(2, "Fetching {} using command '{}' in {}".format(pkgfullname, command, dldir))
filename = runfetchcmd(command, d, quiet, workdir=dldir)
return filename.rstrip()
def _unpackdep(self, ud, pkg, data, destdir, dldir, d):
file = data[pkg]['tgz']
logger.debug(2, "file to extract is %s" % file)
if file.endswith('.tgz') or file.endswith('.tar.gz') or file.endswith('.tar.Z'):
cmd = 'tar xz --strip 1 --no-same-owner --warning=no-unknown-keyword -f %s/%s' % (dldir, file)
else:
bb.fatal("NPM package %s downloaded not a tarball!" % file)
# Change to subdir before executing command
if not os.path.exists(destdir):
os.makedirs(destdir)
path = d.getVar('PATH')
if path:
cmd = "PATH=\"%s\" %s" % (path, cmd)
bb.note("Unpacking %s to %s/" % (file, destdir))
ret = subprocess.call(cmd, preexec_fn=subprocess_setup, shell=True, cwd=destdir)
if ret != 0:
raise UnpackError("Unpack command %s failed with return value %s" % (cmd, ret), ud.url)
if 'deps' not in data[pkg]:
return
for dep in data[pkg]['deps']:
self._unpackdep(ud, dep, data[pkg]['deps'], "%s/node_modules/%s" % (destdir, dep), dldir, d)
def unpack(self, ud, destdir, d):
dldir = d.getVar("DL_DIR")
with open("%s/npm/%s" % (dldir, ud.bbnpmmanifest)) as datafile:
workobj = json.load(datafile)
dldir = "%s/%s" % (os.path.dirname(ud.localpath), ud.pkgname)
if 'subdir' in ud.parm:
unpackdir = '%s/%s' % (destdir, ud.parm.get('subdir'))
else:
unpackdir = '%s/npmpkg' % destdir
self._unpackdep(ud, ud.pkgname, workobj, unpackdir, dldir, d)
def _parse_view(self, output):
'''
Parse the output of npm view --json; the last JSON result
is assumed to be the one that we're interested in.
'''
pdata = json.loads(output);
try:
return pdata[-1]
except:
return pdata
def _getdependencies(self, pkg, data, version, d, ud, optional=False, fetchedlist=None):
if fetchedlist is None:
fetchedlist = []
pkgfullname = pkg
if version != '*' and not '/' in version:
pkgfullname += "@'%s'" % version
if pkgfullname in fetchedlist:
return
logger.debug(2, "Calling getdeps on %s" % pkg)
fetchcmd = "npm view %s --json --registry %s" % (pkgfullname, ud.registry)
output = runfetchcmd(fetchcmd, d, True)
pdata = self._parse_view(output)
if not pdata:
raise FetchError("The command '%s' returned no output" % fetchcmd)
if optional:
pkg_os = pdata.get('os', None)
if pkg_os:
if not isinstance(pkg_os, list):
pkg_os = [pkg_os]
blacklist = False
for item in pkg_os:
if item.startswith('!'):
blacklist = True
break
if (not blacklist and 'linux' not in pkg_os) or '!linux' in pkg_os:
logger.debug(2, "Skipping %s since it's incompatible with Linux" % pkg)
return
filename = self._runpack(ud, d, pkgfullname)
data[pkg] = {}
data[pkg]['tgz'] = filename
fetchedlist.append(pkgfullname)
dependencies = pdata.get('dependencies', {})
optionalDependencies = pdata.get('optionalDependencies', {})
dependencies.update(optionalDependencies)
depsfound = {}
optdepsfound = {}
data[pkg]['deps'] = {}
for dep in dependencies:
if dep in optionalDependencies:
optdepsfound[dep] = dependencies[dep]
else:
depsfound[dep] = dependencies[dep]
for dep, version in optdepsfound.items():
self._getdependencies(dep, data[pkg]['deps'], version, d, ud, optional=True, fetchedlist=fetchedlist)
for dep, version in depsfound.items():
self._getdependencies(dep, data[pkg]['deps'], version, d, ud, fetchedlist=fetchedlist)
def _getshrinkeddependencies(self, pkg, data, version, d, ud, lockdown, manifest, toplevel=True):
logger.debug(2, "NPM shrinkwrap file is %s" % data)
if toplevel:
name = data.get('name', None)
if name and name != pkg:
for obj in data.get('dependencies', []):
if obj == pkg:
self._getshrinkeddependencies(obj, data['dependencies'][obj], data['dependencies'][obj]['version'], d, ud, lockdown, manifest, False)
return
pkgnameWithVersion = "{}@{}".format(pkg, version)
logger.debug(2, "Get dependencies for {}".format(pkgnameWithVersion))
filename = self._runpack(ud, d, pkgnameWithVersion)
manifest[pkg] = {}
manifest[pkg]['tgz'] = filename
manifest[pkg]['deps'] = {}
if pkg in lockdown:
sha1_expected = lockdown[pkg][version]
sha1_data = bb.utils.sha1_file("npm/%s/%s" % (ud.pkgname, manifest[pkg]['tgz']))
if sha1_expected != sha1_data:
msg = "\nFile: '%s' has %s checksum %s when %s was expected" % (manifest[pkg]['tgz'], 'sha1', sha1_data, sha1_expected)
raise ChecksumError('Checksum mismatch!%s' % msg)
else:
logger.debug(2, "No lockdown data for %s@%s" % (pkg, version))
if 'dependencies' in data:
for obj in data['dependencies']:
logger.debug(2, "Found dep is %s" % str(obj))
self._getshrinkeddependencies(obj, data['dependencies'][obj], data['dependencies'][obj]['version'], d, ud, lockdown, manifest[pkg]['deps'], False)
def download(self, ud, d):
"""Fetch url"""
self._setup_proxy(ud, d)
ud.proxy.download()
jsondepobj = {}
shrinkobj = {}
lockdown = {}
def unpack(self, ud, rootdir, d):
"""Unpack the downloaded archive"""
destsuffix = ud.parm.get("destsuffix", "npm")
destdir = os.path.join(rootdir, destsuffix)
npm_unpack(ud.localpath, destdir, d)
if not os.listdir(ud.pkgdatadir) and os.path.exists(ud.fullmirror):
dest = d.getVar("DL_DIR")
bb.utils.mkdirhier(dest)
runfetchcmd("tar -xJf %s" % (ud.fullmirror), d, workdir=dest)
return
def clean(self, ud, d):
"""Clean any existing full or partial download"""
if os.path.exists(ud.resolvefile):
self._setup_proxy(ud, d)
ud.proxy.clean()
bb.utils.remove(ud.resolvefile)
if ud.parm.get("noverify", None) != '1':
shwrf = d.getVar('NPM_SHRINKWRAP')
logger.debug(2, "NPM shrinkwrap file is %s" % shwrf)
if shwrf:
try:
with open(shwrf) as datafile:
shrinkobj = json.load(datafile)
except Exception as e:
raise FetchError('Error loading NPM_SHRINKWRAP file "%s" for %s: %s' % (shwrf, ud.pkgname, str(e)))
elif not ud.ignore_checksums:
logger.warning('Missing shrinkwrap file in NPM_SHRINKWRAP for %s, this will lead to unreliable builds!' % ud.pkgname)
lckdf = d.getVar('NPM_LOCKDOWN')
logger.debug(2, "NPM lockdown file is %s" % lckdf)
if lckdf:
try:
with open(lckdf) as datafile:
lockdown = json.load(datafile)
except Exception as e:
raise FetchError('Error loading NPM_LOCKDOWN file "%s" for %s: %s' % (lckdf, ud.pkgname, str(e)))
elif not ud.ignore_checksums:
logger.warning('Missing lockdown file in NPM_LOCKDOWN for %s, this will lead to unreproducible builds!' % ud.pkgname)
def done(self, ud, d):
"""Is the download done ?"""
if not os.path.exists(ud.resolvefile):
return False
proxy_m, proxy_ud, proxy_d = self._get_proxy_method(ud, d)
return proxy_m.done(proxy_ud, proxy_d)
if ('name' not in shrinkobj):
self._getdependencies(ud.pkgname, jsondepobj, ud.version, d, ud)
else:
self._getshrinkeddependencies(ud.pkgname, shrinkobj, ud.version, d, ud, lockdown, jsondepobj)
with open(ud.localpath, 'w') as outfile:
json.dump(jsondepobj, outfile)
def build_mirror_data(self, ud, d):
# Generate a mirror tarball if needed
if ud.write_tarballs and not os.path.exists(ud.fullmirror):
# it's possible that this symlink points to read-only filesystem with PREMIRROR
if os.path.islink(ud.fullmirror):
os.unlink(ud.fullmirror)
dldir = d.getVar("DL_DIR")
logger.info("Creating tarball of npm data")
runfetchcmd("tar -cJf %s npm/%s npm/%s" % (ud.fullmirror, ud.bbnpmmanifest, ud.pkgname), d,
workdir=dldir)
runfetchcmd("touch %s.done" % (ud.fullmirror), d, workdir=dldir)

View File

@@ -1,255 +0,0 @@
# Copyright (C) 2020 Savoir-Faire Linux
#
# SPDX-License-Identifier: GPL-2.0-only
#
"""
BitBake 'Fetch' npm shrinkwrap implementation
npm fetcher support the SRC_URI with format of:
SRC_URI = "npmsw://some.registry.url;OptionA=xxx;OptionB=xxx;..."
Supported SRC_URI options are:
- dev
Set to 1 to also install devDependencies.
- destsuffix
Specifies the directory to use to unpack the dependencies (default: ${S}).
"""
import json
import os
import re
import bb
from bb.fetch2 import Fetch
from bb.fetch2 import FetchMethod
from bb.fetch2 import ParameterError
from bb.fetch2 import URI
from bb.fetch2.npm import npm_integrity
from bb.fetch2.npm import npm_localfile
from bb.fetch2.npm import npm_unpack
from bb.utils import is_semver
def foreach_dependencies(shrinkwrap, callback=None, dev=False):
"""
Run a callback for each dependencies of a shrinkwrap file.
The callback is using the format:
callback(name, params, deptree)
with:
name = the package name (string)
params = the package parameters (dictionary)
deptree = the package dependency tree (array of strings)
"""
def _walk_deps(deps, deptree):
for name in deps:
subtree = [*deptree, name]
_walk_deps(deps[name].get("dependencies", {}), subtree)
if callback is not None:
if deps[name].get("dev", False) and not dev:
continue
elif deps[name].get("bundled", False):
continue
callback(name, deps[name], subtree)
_walk_deps(shrinkwrap.get("dependencies", {}), [])
class NpmShrinkWrap(FetchMethod):
"""Class to fetch all package from a shrinkwrap file"""
def supports(self, ud, d):
"""Check if a given url can be fetched with npmsw"""
return ud.type in ["npmsw"]
def urldata_init(self, ud, d):
"""Init npmsw specific variables within url data"""
# Get the 'shrinkwrap' parameter
ud.shrinkwrap_file = re.sub(r"^npmsw://", "", ud.url.split(";")[0])
# Get the 'dev' parameter
ud.dev = bb.utils.to_boolean(ud.parm.get("dev"), False)
# Resolve the dependencies
ud.deps = []
def _resolve_dependency(name, params, deptree):
url = None
localpath = None
extrapaths = []
destsubdirs = [os.path.join("node_modules", dep) for dep in deptree]
destsuffix = os.path.join(*destsubdirs)
integrity = params.get("integrity", None)
resolved = params.get("resolved", None)
version = params.get("version", None)
# Handle registry sources
if is_semver(version) and resolved and integrity:
localfile = npm_localfile(name, version)
uri = URI(resolved)
uri.params["downloadfilename"] = localfile
checksum_name, checksum_expected = npm_integrity(integrity)
uri.params[checksum_name] = checksum_expected
url = str(uri)
localpath = os.path.join(d.getVar("DL_DIR"), localfile)
# Create a resolve file to mimic the npm fetcher and allow
# re-usability of the downloaded file.
resolvefile = localpath + ".resolved"
bb.utils.mkdirhier(os.path.dirname(resolvefile))
with open(resolvefile, "w") as f:
f.write(url)
extrapaths.append(resolvefile)
# Handle http tarball sources
elif version.startswith("http") and integrity:
localfile = os.path.join("npm2", os.path.basename(version))
uri = URI(version)
uri.params["downloadfilename"] = localfile
checksum_name, checksum_expected = npm_integrity(integrity)
uri.params[checksum_name] = checksum_expected
url = str(uri)
localpath = os.path.join(d.getVar("DL_DIR"), localfile)
# Handle git sources
elif version.startswith("git"):
regex = re.compile(r"""
^
git\+
(?P<protocol>[a-z]+)
://
(?P<url>[^#]+)
\#
(?P<rev>[0-9a-f]+)
$
""", re.VERBOSE)
match = regex.match(version)
if not match:
raise ParameterError("Invalid git url: %s" % version, ud.url)
groups = match.groupdict()
uri = URI("git://" + str(groups["url"]))
uri.params["protocol"] = str(groups["protocol"])
uri.params["rev"] = str(groups["rev"])
uri.params["destsuffix"] = destsuffix
url = str(uri)
# local tarball sources and local link sources are unsupported
else:
raise ParameterError("Unsupported dependency: %s" % name, ud.url)
ud.deps.append({
"url": url,
"localpath": localpath,
"extrapaths": extrapaths,
"destsuffix": destsuffix,
})
try:
with open(ud.shrinkwrap_file, "r") as f:
shrinkwrap = json.load(f)
except Exception as e:
raise ParameterError("Invalid shrinkwrap file: %s" % str(e), ud.url)
foreach_dependencies(shrinkwrap, _resolve_dependency, ud.dev)
# Avoid conflicts between the environment data and:
# - the proxy url revision
# - the proxy url checksum
data = bb.data.createCopy(d)
data.delVar("SRCREV")
data.delVarFlags("SRC_URI")
# This fetcher resolves multiple URIs from a shrinkwrap file and then
# forwards it to a proxy fetcher. The management of the donestamp file,
# the lockfile and the checksums are forwarded to the proxy fetcher.
ud.proxy = Fetch([dep["url"] for dep in ud.deps], data)
ud.needdonestamp = False
@staticmethod
def _foreach_proxy_method(ud, handle):
returns = []
for proxy_url in ud.proxy.urls:
proxy_ud = ud.proxy.ud[proxy_url]
proxy_d = ud.proxy.d
proxy_ud.setup_localpath(proxy_d)
returns.append(handle(proxy_ud.method, proxy_ud, proxy_d))
return returns
def verify_donestamp(self, ud, d):
"""Verify the donestamp file"""
def _handle(m, ud, d):
return m.verify_donestamp(ud, d)
return all(self._foreach_proxy_method(ud, _handle))
def update_donestamp(self, ud, d):
"""Update the donestamp file"""
def _handle(m, ud, d):
m.update_donestamp(ud, d)
self._foreach_proxy_method(ud, _handle)
def need_update(self, ud, d):
"""Force a fetch, even if localpath exists ?"""
def _handle(m, ud, d):
return m.need_update(ud, d)
return all(self._foreach_proxy_method(ud, _handle))
def try_mirrors(self, fetch, ud, d, mirrors):
"""Try to use a mirror"""
def _handle(m, ud, d):
return m.try_mirrors(fetch, ud, d, mirrors)
return all(self._foreach_proxy_method(ud, _handle))
def download(self, ud, d):
"""Fetch url"""
ud.proxy.download()
def unpack(self, ud, rootdir, d):
"""Unpack the downloaded dependencies"""
destdir = d.getVar("S")
destsuffix = ud.parm.get("destsuffix")
if destsuffix:
destdir = os.path.join(rootdir, destsuffix)
bb.utils.mkdirhier(destdir)
bb.utils.copyfile(ud.shrinkwrap_file,
os.path.join(destdir, "npm-shrinkwrap.json"))
auto = [dep["url"] for dep in ud.deps if not dep["localpath"]]
manual = [dep for dep in ud.deps if dep["localpath"]]
if auto:
ud.proxy.unpack(destdir, auto)
for dep in manual:
depdestdir = os.path.join(destdir, dep["destsuffix"])
npm_unpack(dep["localpath"], depdestdir, d)
def clean(self, ud, d):
"""Clean any existing full or partial download"""
ud.proxy.clean()
# Clean extra files
for dep in ud.deps:
for path in dep["extrapaths"]:
bb.utils.remove(path)
def done(self, ud, d):
"""Is the download done ?"""
def _handle(m, ud, d):
return m.done(ud, d)
return all(self._foreach_proxy_method(ud, _handle))

View File

@@ -7,16 +7,15 @@ Based on the svn "Fetch" implementation.
"""
import os
import sys
import logging
import os
import bb
from bb.fetch2 import FetchMethod
from bb.fetch2 import FetchError
from bb.fetch2 import MissingParameterError
from bb.fetch2 import runfetchcmd
logger = logging.getLogger(__name__)
class Osc(FetchMethod):
"""Class to fetch a module or modules from Opensuse build server
repositories."""
@@ -44,7 +43,7 @@ class Osc(FetchMethod):
else:
pv = d.getVar("PV", False)
rev = bb.fetch2.srcrev_internal_helper(ud, d)
if rev:
if rev and rev != True:
ud.revision = rev
else:
ud.revision = ""

View File

@@ -1,20 +1,6 @@
"""
BitBake 'Fetch' implementation for perforce
Supported SRC_URI options are:
- module
The top-level location to fetch while preserving the remote paths
The value of module can point to either a directory or a file. The result,
in both cases, is that the fetcher will preserve all file paths starting
from the module path. That is, the top-level directory in the module value
will also be the top-level directory in P4DIR.
- remotepath
If the value "keep" is given, the full depot location of each file is
preserved in P4DIR. This option overrides the effect of the module option.
"""
# Copyright (C) 2003, 2004 Chris Larson
@@ -25,42 +11,13 @@ Supported SRC_URI options are:
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os
import logging
import bb
from bb.fetch2 import FetchMethod
from bb.fetch2 import FetchError
from bb.fetch2 import logger
from bb.fetch2 import runfetchcmd
class PerforceProgressHandler (bb.progress.BasicProgressHandler):
"""
Implements basic progress information for perforce, based on the number of
files to be downloaded.
The p4 print command will print one line per file, therefore it can be used
to "count" the number of files already completed and give an indication of
the progress.
"""
def __init__(self, d, num_files):
self._num_files = num_files
self._count = 0
super(PerforceProgressHandler, self).__init__(d)
# Send an initial progress event so the bar gets shown
self._fire_progress(-1)
def write(self, string):
self._count = self._count + 1
percent = int(100.0 * float(self._count) / float(self._num_files))
# In case something goes wrong, we try to preserve our sanity
if percent > 100:
percent = 100
self.update(percent)
super(PerforceProgressHandler, self).write(string)
class Perforce(FetchMethod):
""" Class to fetch from perforce repositories """
def supports(self, ud, d):
@@ -102,33 +59,14 @@ class Perforce(FetchMethod):
logger.debug(1, 'Determined P4PORT to be: %s' % ud.host)
if not ud.host:
raise FetchError('Could not determine P4PORT from P4CONFIG')
# Fetcher options
ud.module = ud.parm.get('module')
ud.keepremotepath = (ud.parm.get('remotepath', '') == 'keep')
if ud.path.find('/...') >= 0:
ud.pathisdir = True
else:
ud.pathisdir = False
# Avoid using the "/..." syntax in SRC_URI when a module value is given
if ud.pathisdir and ud.module:
raise FetchError('SRC_URI depot path cannot not end in /... when a module value is given')
cleanedpath = ud.path.replace('/...', '').replace('/', '.')
cleanedhost = ud.host.replace(':', '.')
# Merge the path and module into the final depot location
if ud.module:
if ud.module.find('/') == 0:
raise FetchError('module cannot begin with /')
ud.path = os.path.join(ud.path, ud.module)
# Append the module path to the local pkg name
cleanedmodule = ud.module.replace('/...', '').replace('/', '.')
cleanedpath += '--%s' % cleanedmodule
ud.pkgdir = os.path.join(ud.dldir, cleanedhost, cleanedpath)
ud.setup_revisions(d)
@@ -158,26 +96,16 @@ class Perforce(FetchMethod):
pathnrev = '%s' % (ud.path)
if depot_filename:
if ud.keepremotepath:
# preserve everything, remove the leading //
filename = depot_filename.lstrip('/')
elif ud.module:
# remove everything up to the module path
modulepath = ud.module.rstrip('/...')
filename = depot_filename[depot_filename.rfind(modulepath):]
elif ud.pathisdir:
# Remove leading (visible) path to obtain the filepath
if ud.pathisdir: # Remove leading path to obtain filename
filename = depot_filename[len(ud.path)-1:]
else:
# Remove everything, except the filename
filename = depot_filename[depot_filename.rfind('/'):]
filename = filename[:filename.find('#')] # Remove trailing '#rev'
if command == 'changes':
p4cmd = '%s%s changes -m 1 //%s' % (ud.basecmd, p4opt, pathnrev)
elif command == 'print':
if depot_filename is not None:
if depot_filename != None:
p4cmd = '%s%s print -o "p4/%s" "%s"' % (ud.basecmd, p4opt, filename, depot_filename)
else:
raise FetchError('No depot file name provided to p4 %s' % command, ud.url)
@@ -223,12 +151,10 @@ class Perforce(FetchMethod):
bb.utils.remove(ud.pkgdir, True)
bb.utils.mkdirhier(ud.pkgdir)
progresshandler = PerforceProgressHandler(d, len(filelist))
for afile in filelist:
p4fetchcmd = self._buildp4command(ud, d, 'print', afile)
bb.fetch2.check_network_access(d, p4fetchcmd, ud.url)
runfetchcmd(p4fetchcmd, d, workdir=ud.pkgdir, log=progresshandler)
runfetchcmd(p4fetchcmd, d, workdir=ud.pkgdir)
runfetchcmd('tar -czf %s p4' % (ud.localpath), d, cleanup=[ud.localpath], workdir=ud.pkgdir)

View File

@@ -31,7 +31,10 @@ IETF secsh internet draft:
#
import re, os
from bb.fetch2 import check_network_access, FetchMethod, ParameterError, runfetchcmd
from bb.fetch2 import FetchMethod
from bb.fetch2 import FetchError
from bb.fetch2 import logger
from bb.fetch2 import runfetchcmd
__pattern__ = re.compile(r'''
@@ -57,14 +60,14 @@ class SSH(FetchMethod):
'''Class to fetch a module or modules via Secure Shell'''
def supports(self, urldata, d):
return __pattern__.match(urldata.url) is not None
return __pattern__.match(urldata.url) != None
def supports_checksum(self, urldata):
return False
def urldata_init(self, urldata, d):
if 'protocol' in urldata.parm and urldata.parm['protocol'] == 'git':
raise ParameterError(
raise bb.fetch2.ParameterError(
"Invalid protocol - if you wish to fetch from a git " +
"repository using ssh, you need to use " +
"git:// prefix with protocol=ssh", urldata.url)
@@ -104,7 +107,7 @@ class SSH(FetchMethod):
dldir
)
check_network_access(d, cmd, urldata.url)
bb.fetch2.check_network_access(d, cmd, urldata.url)
runfetchcmd(cmd, d)

View File

@@ -11,6 +11,8 @@ BitBake 'Fetch' implementation for svn.
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os
import sys
import logging
import bb
import re
from bb.fetch2 import FetchMethod
@@ -47,7 +49,7 @@ class Svn(FetchMethod):
svndir = d.getVar("SVNDIR") or (d.getVar("DL_DIR") + "/svn")
relpath = self._strip_leading_slashes(ud.path)
ud.pkgdir = os.path.join(svndir, ud.host, relpath)
ud.moddir = os.path.join(ud.pkgdir, ud.path_spec)
ud.moddir = os.path.join(ud.pkgdir, ud.module)
# Protects the repository from concurrent updates, e.g. from two
# recipes fetching different revisions at the same time
ud.svnlock = os.path.join(ud.pkgdir, "svn.lock")
@@ -122,30 +124,30 @@ class Svn(FetchMethod):
try:
if os.access(os.path.join(ud.moddir, '.svn'), os.R_OK):
svncmd = self._buildsvncommand(ud, d, "update")
svnupdatecmd = self._buildsvncommand(ud, d, "update")
logger.info("Update " + ud.url)
# We need to attempt to run svn upgrade first in case its an older working format
try:
runfetchcmd(ud.basecmd + " upgrade", d, workdir=ud.moddir)
except FetchError:
pass
logger.debug(1, "Running %s", svncmd)
bb.fetch2.check_network_access(d, svncmd, ud.url)
runfetchcmd(svncmd, d, workdir=ud.moddir)
logger.debug(1, "Running %s", svnupdatecmd)
bb.fetch2.check_network_access(d, svnupdatecmd, ud.url)
runfetchcmd(svnupdatecmd, d, workdir=ud.moddir)
else:
svncmd = self._buildsvncommand(ud, d, "fetch")
svnfetchcmd = self._buildsvncommand(ud, d, "fetch")
logger.info("Fetch " + ud.url)
# check out sources there
bb.utils.mkdirhier(ud.pkgdir)
logger.debug(1, "Running %s", svncmd)
bb.fetch2.check_network_access(d, svncmd, ud.url)
runfetchcmd(svncmd, d, workdir=ud.pkgdir)
logger.debug(1, "Running %s", svnfetchcmd)
bb.fetch2.check_network_access(d, svnfetchcmd, ud.url)
runfetchcmd(svnfetchcmd, d, workdir=ud.pkgdir)
if not ("externals" in ud.parm and ud.parm["externals"] == "nowarn"):
# Warn the user if this had externals (won't catch them all)
output = runfetchcmd("svn propget svn:externals || true", d, workdir=ud.moddir)
if output:
if "--ignore-externals" in svncmd.split():
if "--ignore-externals" in svnfetchcmd.split():
bb.warn("%s contains svn:externals." % ud.url)
bb.warn("These should be added to the recipe SRC_URI as necessary.")
bb.warn("svn fetch has ignored externals:\n%s" % output)

View File

@@ -12,10 +12,11 @@ BitBake build tools.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import shlex
import re
import tempfile
import subprocess
import os
import logging
import errno
import bb
import bb.progress
@@ -26,6 +27,7 @@ from bb.fetch2 import FetchMethod
from bb.fetch2 import FetchError
from bb.fetch2 import logger
from bb.fetch2 import runfetchcmd
from bb.fetch2 import FetchConnectionCache
from bb.utils import export_proxies
from bs4 import BeautifulSoup
from bs4 import SoupStrainer
@@ -92,9 +94,9 @@ class Wget(FetchMethod):
fetchcmd = self.basecmd
if 'downloadfilename' in ud.parm:
localpath = os.path.join(d.getVar("DL_DIR"), ud.localfile)
bb.utils.mkdirhier(os.path.dirname(localpath))
fetchcmd += " -O %s" % shlex.quote(localpath)
dldir = d.getVar("DL_DIR")
bb.utils.mkdirhier(os.path.dirname(dldir + os.sep + ud.localfile))
fetchcmd += " -O " + dldir + os.sep + ud.localfile
if ud.user and ud.pswd:
fetchcmd += " --user=%s --password=%s --auth-no-challenge" % (ud.user, ud.pswd)
@@ -208,7 +210,10 @@ class Wget(FetchMethod):
fetch.connection_cache.remove_connection(h.host, h.port)
raise urllib.error.URLError(err)
else:
r = h.getresponse()
try:
r = h.getresponse(buffering=True)
except TypeError: # buffering kw not supported
r = h.getresponse()
# Pick apart the HTTPResponse object to get the addinfourl
# object initialized properly.
@@ -297,7 +302,6 @@ class Wget(FetchMethod):
# Some servers (FusionForge, as used on Alioth) require that the
# optional Accept header is set.
r.add_header("Accept", "*/*")
r.add_header("User-Agent", "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.12) Gecko/20101027 Ubuntu/9.10 (karmic) Firefox/3.6.12")
def add_basic_auth(login_str, request):
'''Adds Basic auth to http request, pass in login:password as string'''
import base64
@@ -316,7 +320,7 @@ class Wget(FetchMethod):
except (TypeError, ImportError, IOError, netrc.NetrcParseError):
pass
with opener.open(r, timeout=30) as response:
with opener.open(r) as response:
pass
except urllib.error.URLError as e:
if try_again:

View File

@@ -344,6 +344,8 @@ def bitbake_main(configParams, configuration):
except:
pass
configuration.setConfigParameters(configParams)
if configParams.server_only and configParams.remote_server:
raise BBMainException("FATAL: The '--server-only' option conflicts with %s.\n" %
("the BBSERVER environment variable" if "BBSERVER" in os.environ \
@@ -355,13 +357,13 @@ def bitbake_main(configParams, configuration):
if "BBDEBUG" in os.environ:
level = int(os.environ["BBDEBUG"])
if level > configParams.debug:
configParams.debug = level
if level > configuration.debug:
configuration.debug = level
bb.msg.init_msgconfig(configParams.verbose, configParams.debug,
configParams.debug_domains)
bb.msg.init_msgconfig(configParams.verbose, configuration.debug,
configuration.debug_domains)
server_connection, ui_module = setup_bitbake(configParams)
server_connection, ui_module = setup_bitbake(configParams, configuration)
# No server connection
if server_connection is None:
if configParams.status_only:
@@ -388,7 +390,7 @@ def bitbake_main(configParams, configuration):
return 1
def setup_bitbake(configParams, extrafeatures=None):
def setup_bitbake(configParams, configuration, extrafeatures=None):
# Ensure logging messages get sent to the UI as events
handler = bb.event.LogHandler()
if not configParams.status_only:
@@ -429,11 +431,11 @@ def setup_bitbake(configParams, extrafeatures=None):
logger.info("bitbake server is not running.")
lock.close()
return None, None
# we start a server with a given featureset
# we start a server with a given configuration
logger.info("Starting bitbake server...")
# Clear the event queue since we already displayed messages
bb.event.ui_queue = []
server = bb.server.process.BitBakeServer(lock, sockname, featureset, configParams.server_timeout, configParams.xmlrpcinterface)
server = bb.server.process.BitBakeServer(lock, sockname, configuration, featureset)
else:
logger.info("Reconnecting to bitbake server...")
@@ -456,17 +458,15 @@ def setup_bitbake(configParams, extrafeatures=None):
break
except BBMainFatal:
raise
except (Exception, bb.server.process.ProcessTimeout, SystemExit) as e:
# SystemExit does not inherit from the Exception class, needs to be included explicitly
except (Exception, bb.server.process.ProcessTimeout) as e:
if not retries:
raise
retries -= 1
tryno = 8 - retries
if isinstance(e, (bb.server.process.ProcessTimeout, BrokenPipeError, EOFError, SystemExit)):
if isinstance(e, (bb.server.process.ProcessTimeout, BrokenPipeError, EOFError)):
logger.info("Retrying server connection (#%d)..." % tryno)
else:
logger.info("Retrying server connection (#%d)... (%s)" % (tryno, traceback.format_exc()))
if not retries:
bb.fatal("Unable to connect to bitbake server, or start one (server startup failures would be in bitbake-cookerdaemon.log).")
bb.event.print_ui_queue()

View File

@@ -4,7 +4,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
import os, logging, re
import os, logging, re, sys
import bb
logger = logging.getLogger("BitBake.Monitor")

View File

@@ -13,9 +13,9 @@ Message handling infrastructure for bitbake
import sys
import copy
import logging
import logging.config
import os
import collections
from itertools import groupby
import warnings
import bb
import bb.event
@@ -100,9 +100,6 @@ class BBLogFormatter(logging.Formatter):
def enable_color(self):
self.color_enabled = True
def __repr__(self):
return "%s fmt='%s' color=%s" % (self.__class__.__name__, self._fmt, "True" if self.color_enabled else "False")
class BBLogFilter(object):
def __init__(self, handler, level, debug_domains):
self.stdlevel = level
@@ -121,53 +118,60 @@ class BBLogFilter(object):
return True
return False
class LogFilterGEQLevel(logging.Filter):
def __init__(self, level):
self.strlevel = str(level)
self.level = stringToLevel(level)
def __repr__(self):
return "%s level >= %s (%d)" % (self.__class__.__name__, self.strlevel, self.level)
class BBLogFilterStdErr(BBLogFilter):
def filter(self, record):
return (record.levelno >= self.level)
class LogFilterLTLevel(logging.Filter):
def __init__(self, level):
self.strlevel = str(level)
self.level = stringToLevel(level)
def __repr__(self):
return "%s level < %s (%d)" % (self.__class__.__name__, self.strlevel, self.level)
if not BBLogFilter.filter(self, record):
return False
if record.levelno >= logging.ERROR:
return True
return False
class BBLogFilterStdOut(BBLogFilter):
def filter(self, record):
return (record.levelno < self.level)
if not BBLogFilter.filter(self, record):
return False
if record.levelno < logging.ERROR:
return True
return False
# Message control functions
#
loggerDefaultLogLevel = BBLogFormatter.NOTE
loggerDefaultDomains = {}
loggerDefaultDebugLevel = 0
loggerDefaultVerbose = False
loggerVerboseLogs = False
loggerDefaultDomains = []
def init_msgconfig(verbose, debug, debug_domains=None):
"""
Set default verbosity and debug levels config the logger
"""
if debug:
bb.msg.loggerDefaultLogLevel = BBLogFormatter.DEBUG - debug + 1
elif verbose:
bb.msg.loggerDefaultLogLevel = BBLogFormatter.VERBOSE
else:
bb.msg.loggerDefaultLogLevel = BBLogFormatter.NOTE
bb.msg.loggerDefaultDomains = {}
bb.msg.loggerDefaultDebugLevel = debug
bb.msg.loggerDefaultVerbose = verbose
if verbose:
bb.msg.loggerVerboseLogs = True
if debug_domains:
for (domainarg, iterator) in groupby(debug_domains):
dlevel = len(tuple(iterator))
bb.msg.loggerDefaultDomains["BitBake.%s" % domainarg] = logging.DEBUG - dlevel + 1
bb.msg.loggerDefaultDomains = debug_domains
else:
bb.msg.loggerDefaultDomains = []
def constructLogOptions():
return loggerDefaultLogLevel, loggerDefaultDomains
debug = loggerDefaultDebugLevel
verbose = loggerDefaultVerbose
domains = loggerDefaultDomains
if debug:
level = BBLogFormatter.DEBUG - debug + 1
elif verbose:
level = BBLogFormatter.VERBOSE
else:
level = BBLogFormatter.NOTE
debug_domains = {}
for (domainarg, iterator) in groupby(domains):
dlevel = len(tuple(iterator))
debug_domains["BitBake.%s" % domainarg] = logging.DEBUG - dlevel + 1
return level, debug_domains
def addDefaultlogFilter(handler, cls = BBLogFilter, forcelevel=None):
level, debug_domains = constructLogOptions()
@@ -177,19 +181,6 @@ def addDefaultlogFilter(handler, cls = BBLogFilter, forcelevel=None):
cls(handler, level, debug_domains)
def stringToLevel(level):
try:
return int(level)
except ValueError:
pass
try:
return getattr(logging, level)
except AttributeError:
pass
return getattr(BBLogFormatter, level)
#
# Message handling functions
#
@@ -223,105 +214,3 @@ def has_console_handler(logger):
if handler.stream in [sys.stderr, sys.stdout]:
return True
return False
def mergeLoggingConfig(logconfig, userconfig):
logconfig = copy.deepcopy(logconfig)
userconfig = copy.deepcopy(userconfig)
# Merge config with the default config
if userconfig.get('version') != logconfig['version']:
raise BaseException("Bad user configuration version. Expected %r, got %r" % (logconfig['version'], userconfig.get('version')))
# Set some defaults to make merging easier
userconfig.setdefault("loggers", {})
# If a handler, formatter, or filter is defined in the user
# config, it will replace an existing one in the default config
for k in ("handlers", "formatters", "filters"):
logconfig.setdefault(k, {}).update(userconfig.get(k, {}))
seen_loggers = set()
for name, l in logconfig["loggers"].items():
# If the merge option is set, merge the handlers and
# filters. Otherwise, if it is False, this logger won't get
# add to the set of seen loggers and will replace the
# existing one
if l.get('bitbake_merge', True):
ulogger = userconfig["loggers"].setdefault(name, {})
ulogger.setdefault("handlers", [])
ulogger.setdefault("filters", [])
# Merge lists
l.setdefault("handlers", []).extend(ulogger["handlers"])
l.setdefault("filters", []).extend(ulogger["filters"])
# Replace other properties if present
if "level" in ulogger:
l["level"] = ulogger["level"]
if "propagate" in ulogger:
l["propagate"] = ulogger["propagate"]
seen_loggers.add(name)
# Add all loggers present in the user config, but not any that
# have already been processed
for name in set(userconfig["loggers"].keys()) - seen_loggers:
logconfig["loggers"][name] = userconfig["loggers"][name]
return logconfig
def setLoggingConfig(defaultconfig, userconfigfile=None):
logconfig = copy.deepcopy(defaultconfig)
if userconfigfile:
with open(os.path.normpath(userconfigfile), 'r') as f:
if userconfigfile.endswith('.yml') or userconfigfile.endswith('.yaml'):
import yaml
userconfig = yaml.load(f)
elif userconfigfile.endswith('.json') or userconfigfile.endswith('.cfg'):
import json
userconfig = json.load(f)
else:
raise BaseException("Unrecognized file format: %s" % userconfigfile)
if userconfig.get('bitbake_merge', True):
logconfig = mergeLoggingConfig(logconfig, userconfig)
else:
# Replace the entire default config
logconfig = userconfig
# Convert all level parameters to integers in case users want to use the
# bitbake defined level names
for h in logconfig["handlers"].values():
if "level" in h:
h["level"] = bb.msg.stringToLevel(h["level"])
for l in logconfig["loggers"].values():
if "level" in l:
l["level"] = bb.msg.stringToLevel(l["level"])
conf = logging.config.dictConfigClass(logconfig)
conf.configure()
# The user may have specified logging domains they want at a higher debug
# level than the standard.
for name, l in logconfig["loggers"].items():
if not name.startswith("BitBake."):
continue
if not "level" in l:
continue
curlevel = bb.msg.loggerDefaultDomains.get(name)
# Note: level parameter should already be a int because of conversion
# above
newlevel = int(l["level"])
if curlevel is None or newlevel < curlevel:
bb.msg.loggerDefaultDomains[name] = newlevel
# TODO: I don't think that setting the global log level should be necessary
#if newlevel < bb.msg.loggerDefaultLogLevel:
# bb.msg.loggerDefaultLogLevel = newlevel
return conf

View File

@@ -61,9 +61,17 @@ class _NamedTupleABCMeta(ABCMeta):
return ABCMeta.__new__(mcls, name, bases, namespace)
class _NamedTupleABC(metaclass=_NamedTupleABCMeta):
'''The abstract base class + mix-in for named tuples.'''
_fields = abstractproperty()
exec(
# Python 2.x metaclass declaration syntax
"""class _NamedTupleABC(object):
'''The abstract base class + mix-in for named tuples.'''
__metaclass__ = _NamedTupleABCMeta
_fields = abstractproperty()""" if version_info[0] < 3 else
# Python 3.x metaclass declaration syntax
"""class _NamedTupleABC(metaclass=_NamedTupleABCMeta):
'''The abstract base class + mix-in for named tuples.'''
_fields = abstractproperty()"""
)
_namedtuple.abc = _NamedTupleABC

View File

@@ -9,7 +9,11 @@
# SPDX-License-Identifier: GPL-2.0-only
#
import re
import string
import logging
import bb
import itertools
from bb import methodpool
from bb.parse import logger
@@ -89,7 +93,7 @@ class DataNode(AstNode):
self.groupd = groupd
def getFunc(self, key, data):
if 'flag' in self.groupd and self.groupd['flag'] is not None:
if 'flag' in self.groupd and self.groupd['flag'] != None:
return data.getVarFlag(key, self.groupd['flag'], expand=False, noweakdefault=True)
else:
return data.getVar(key, False, noweakdefault=True, parsing=True)
@@ -97,42 +101,41 @@ class DataNode(AstNode):
def eval(self, data):
groupd = self.groupd
key = groupd["var"]
key = key.replace(":", "_")
loginfo = {
'variable': key,
'file': self.filename,
'line': self.lineno,
}
if "exp" in groupd and groupd["exp"] is not None:
if "exp" in groupd and groupd["exp"] != None:
data.setVarFlag(key, "export", 1, op = 'exported', **loginfo)
op = "set"
if "ques" in groupd and groupd["ques"] is not None:
if "ques" in groupd and groupd["ques"] != None:
val = self.getFunc(key, data)
op = "set?"
if val is None:
if val == None:
val = groupd["value"]
elif "colon" in groupd and groupd["colon"] is not None:
elif "colon" in groupd and groupd["colon"] != None:
e = data.createCopy()
op = "immediate"
val = e.expand(groupd["value"], key + "[:=]")
elif "append" in groupd and groupd["append"] is not None:
elif "append" in groupd and groupd["append"] != None:
op = "append"
val = "%s %s" % ((self.getFunc(key, data) or ""), groupd["value"])
elif "prepend" in groupd and groupd["prepend"] is not None:
elif "prepend" in groupd and groupd["prepend"] != None:
op = "prepend"
val = "%s %s" % (groupd["value"], (self.getFunc(key, data) or ""))
elif "postdot" in groupd and groupd["postdot"] is not None:
elif "postdot" in groupd and groupd["postdot"] != None:
op = "postdot"
val = "%s%s" % ((self.getFunc(key, data) or ""), groupd["value"])
elif "predot" in groupd and groupd["predot"] is not None:
elif "predot" in groupd and groupd["predot"] != None:
op = "predot"
val = "%s%s" % (groupd["value"], (self.getFunc(key, data) or ""))
else:
val = groupd["value"]
flag = None
if 'flag' in groupd and groupd['flag'] is not None:
if 'flag' in groupd and groupd['flag'] != None:
flag = groupd['flag']
elif groupd["lazyques"]:
flag = "_defaultval"
@@ -208,7 +211,6 @@ class ExportFuncsNode(AstNode):
def eval(self, data):
for func in self.n:
func = func.replace(":", "_")
calledfunc = self.classname + "_" + func
if data.getVar(func, False) and not data.getVarFlag(func, 'export_func', False):
@@ -246,14 +248,12 @@ class AddTaskNode(AstNode):
bb.build.addtask(self.func, self.before, self.after, data)
class DelTaskNode(AstNode):
def __init__(self, filename, lineno, tasks):
def __init__(self, filename, lineno, func):
AstNode.__init__(self, filename, lineno)
self.tasks = tasks
self.func = func
def eval(self, data):
tasks = data.expand(self.tasks).split()
for task in tasks:
bb.build.deltask(task, data)
bb.build.deltask(self.func, data)
class BBHandlerNode(AstNode):
def __init__(self, filename, lineno, fns):
@@ -309,7 +309,7 @@ def handleAddTask(statements, filename, lineno, m):
statements.append(AddTaskNode(filename, lineno, func, before, after))
def handleDelTask(statements, filename, lineno, m):
func = m.group(1)
func = m.group("func")
if func is None:
return
@@ -342,9 +342,6 @@ def finalize(fn, d, variant = None):
bb.event.fire(bb.event.RecipePreFinalise(fn), d)
bb.data.expandKeys(d)
bb.event.fire(bb.event.RecipePostKeyExpansion(fn), d)
runAnonFuncs(d)
tasklist = d.getVar('__BBTASKS', False) or []

View File

@@ -13,7 +13,9 @@
#
import re, bb, os
import logging
import bb.build, bb.utils
from bb import data
from . import ConfHandler
from .. import resolve_file, ast, logger, ParseError
@@ -22,11 +24,11 @@ from .ConfHandler import include, init
# For compatibility
bb.deprecate_import(__name__, "bb.parse", ["vars_from_file"])
__func_start_regexp__ = re.compile(r"(((?P<py>python(?=(\s|\()))|(?P<fr>fakeroot(?=\s)))\s*)*(?P<func>[\w\.\-\+\{\}\$:]+)?\s*\(\s*\)\s*{$" )
__func_start_regexp__ = re.compile(r"(((?P<py>python)|(?P<fr>fakeroot))\s*)*(?P<func>[\w\.\-\+\{\}\$]+)?\s*\(\s*\)\s*{$" )
__inherit_regexp__ = re.compile(r"inherit\s+(.+)" )
__export_func_regexp__ = re.compile(r"EXPORT_FUNCTIONS\s+(.+)" )
__addtask_regexp__ = re.compile(r"addtask\s+(?P<func>\w+)\s*((before\s*(?P<before>((.*(?=after))|(.*))))|(after\s*(?P<after>((.*(?=before))|(.*)))))*")
__deltask_regexp__ = re.compile(r"deltask\s+(.+)")
__deltask_regexp__ = re.compile(r"deltask\s+(?P<func>\w+)(?P<ignores>.*)")
__addhandler_regexp__ = re.compile(r"addhandler\s+(.+)" )
__def_regexp__ = re.compile(r"def\s+(\w+).*:" )
__python_func_regexp__ = re.compile(r"(\s+.*)|(^$)|(^#)" )
@@ -238,6 +240,9 @@ def feeder(lineno, s, fn, root, statements, eof=False):
m = __deltask_regexp__.match(s)
if m:
# Check and warn "for deltask task1 task2"
if m.group('ignores'):
logger.warning('deltask ignored: "%s"' % m.group('ignores'))
ast.handleDelTask(statements, fn, lineno, m)
return

View File

@@ -20,7 +20,7 @@ from bb.parse import ParseError, resolve_file, ast, logger, handle
__config_regexp__ = re.compile( r"""
^
(?P<exp>export\s+)?
(?P<var>[a-zA-Z0-9\-_+.${}/~:]+?)
(?P<var>[a-zA-Z0-9\-_+.${}/~]+?)
(\[(?P<flag>[a-zA-Z0-9\-_+.]+)\])?
\s* (
@@ -119,30 +119,30 @@ def handle(fn, data, include):
oldfile = data.getVar('FILE', False)
abs_fn = resolve_file(fn, data)
with open(abs_fn, 'r') as f:
f = open(abs_fn, 'r')
statements = ast.StatementGroup()
lineno = 0
while True:
statements = ast.StatementGroup()
lineno = 0
while True:
lineno = lineno + 1
s = f.readline()
if not s:
break
w = s.strip()
# skip empty lines
if not w:
continue
s = s.rstrip()
while s[-1] == '\\':
s2 = f.readline().rstrip()
lineno = lineno + 1
s = f.readline()
if not s:
break
w = s.strip()
# skip empty lines
if not w:
continue
s = s.rstrip()
while s[-1] == '\\':
s2 = f.readline().rstrip()
lineno = lineno + 1
if (not s2 or s2 and s2[0] != "#") and s[0] == "#" :
bb.fatal("There is a confusing multiline, partially commented expression on line %s of file %s (%s).\nPlease clarify whether this is all a comment or should be parsed." % (lineno, fn, s))
s = s[:-1] + s2
# skip comments
if s[0] == '#':
continue
feeder(lineno, s, abs_fn, statements)
if (not s2 or s2 and s2[0] != "#") and s[0] == "#" :
bb.fatal("There is a confusing multiline, partially commented expression on line %s of file %s (%s).\nPlease clarify whether this is all a comment or should be parsed." % (lineno, fn, s))
s = s[:-1] + s2
# skip comments
if s[0] == '#':
continue
feeder(lineno, s, abs_fn, statements)
# DONE WITH PARSING... time to evaluate
data.setVar('FILE', abs_fn)

View File

@@ -12,14 +12,14 @@ currently, providing a key/value store accessed by 'domain'.
#
import collections
import contextlib
import functools
import logging
import os.path
import sqlite3
import sys
import warnings
from bb.compat import total_ordering
from collections import Mapping
import sqlite3
import contextlib
sqlversion = sqlite3.sqlite_version_info
if sqlversion[0] < 3 or (sqlversion[0] == 3 and sqlversion[1] < 3):
@@ -28,7 +28,7 @@ if sqlversion[0] < 3 or (sqlversion[0] == 3 and sqlversion[1] < 3):
logger = logging.getLogger("BitBake.PersistData")
@functools.total_ordering
@total_ordering
class SQLTable(collections.MutableMapping):
class _Decorators(object):
@staticmethod

View File

@@ -7,7 +7,6 @@ import signal
import subprocess
import errno
import select
import bb
logger = logging.getLogger('BitBake.Process')
@@ -42,7 +41,6 @@ class ExecutionError(CmdError):
self.exitcode = exitcode
self.stdout = stdout
self.stderr = stderr
self.extra_message = None
def __str__(self):
message = ""
@@ -53,7 +51,7 @@ class ExecutionError(CmdError):
if message:
message = ":\n" + message
return (CmdError.__str__(self) +
" with exit code %s" % self.exitcode + message + (self.extra_message or ""))
" with exit code %s" % self.exitcode + message)
class Popen(subprocess.Popen):
defaults = {

View File

@@ -7,6 +7,7 @@ BitBake progress handling code
# SPDX-License-Identifier: GPL-2.0-only
#
import sys
import re
import time
import inspect
@@ -14,27 +15,7 @@ import bb.event
import bb.build
from bb.build import StdoutNoopContextManager
# from https://stackoverflow.com/a/14693789/221061
ANSI_ESCAPE_REGEX = re.compile(r'\x1B\[[0-?]*[ -/]*[@-~]')
def filter_color(string):
"""
Filter ANSI escape codes out of |string|, return new string
"""
return ANSI_ESCAPE_REGEX.sub('', string)
def filter_color_n(string):
"""
Filter ANSI escape codes out of |string|, returns tuple of
(new string, # of ANSI codes removed)
"""
return ANSI_ESCAPE_REGEX.subn('', string)
class ProgressHandler:
class ProgressHandler(object):
"""
Base class that can pretend to be a file object well enough to be
used to build objects to intercept console output and determine the
@@ -75,7 +56,6 @@ class ProgressHandler:
self._lastevent = ts
self._progress = progress
class LineFilterProgressHandler(ProgressHandler):
"""
A ProgressHandler variant that provides the ability to filter out
@@ -87,7 +67,7 @@ class LineFilterProgressHandler(ProgressHandler):
"""
def __init__(self, d, outfile=None):
self._linebuffer = ''
super().__init__(d, outfile)
super(LineFilterProgressHandler, self).__init__(d, outfile)
def write(self, string):
self._linebuffer += string
@@ -101,44 +81,41 @@ class LineFilterProgressHandler(ProgressHandler):
lbreakpos = line.rfind('\r') + 1
if lbreakpos:
line = line[lbreakpos:]
if self.writeline(filter_color(line)):
super().write(line)
if self.writeline(line):
super(LineFilterProgressHandler, self).write(line)
def writeline(self, line):
return True
class BasicProgressHandler(ProgressHandler):
def __init__(self, d, regex=r'(\d+)%', outfile=None):
super().__init__(d, outfile)
super(BasicProgressHandler, self).__init__(d, outfile)
self._regex = re.compile(regex)
# Send an initial progress event so the bar gets shown
self._fire_progress(0)
def write(self, string):
percs = self._regex.findall(filter_color(string))
percs = self._regex.findall(string)
if percs:
progress = int(percs[-1])
self.update(progress)
super().write(string)
super(BasicProgressHandler, self).write(string)
class OutOfProgressHandler(ProgressHandler):
def __init__(self, d, regex, outfile=None):
super().__init__(d, outfile)
super(OutOfProgressHandler, self).__init__(d, outfile)
self._regex = re.compile(regex)
# Send an initial progress event so the bar gets shown
self._fire_progress(0)
def write(self, string):
nums = self._regex.findall(filter_color(string))
nums = self._regex.findall(string)
if nums:
progress = (float(nums[-1][0]) / float(nums[-1][1])) * 100
self.update(progress)
super().write(string)
super(OutOfProgressHandler, self).write(string)
class MultiStageProgressReporter:
class MultiStageProgressReporter(object):
"""
Class which allows reporting progress without the caller
having to know where they are in the overall sequence. Useful
@@ -223,7 +200,6 @@ class MultiStageProgressReporter:
value is considered to be out of stage_total, otherwise it should
be a percentage value from 0 to 100.
"""
progress = None
if self._stage_total:
stage_progress = (float(stage_progress) / self._stage_total) * 100
if self._stage < 0:
@@ -232,10 +208,9 @@ class MultiStageProgressReporter:
progress = self._base_progress + (stage_progress * self._stage_weights[self._stage])
else:
progress = self._base_progress
if progress:
if progress > 100:
progress = 100
self._fire_progress(progress)
if progress > 100:
progress = 100
self._fire_progress(progress)
def finish(self):
if self._finished:
@@ -256,7 +231,6 @@ class MultiStageProgressReporter:
out.append('Up to finish: %d' % stage_weight)
bb.warn('Stage times:\n %s' % '\n '.join(out))
class MultiStageProcessProgressReporter(MultiStageProgressReporter):
"""
Version of MultiStageProgressReporter intended for use with
@@ -265,7 +239,7 @@ class MultiStageProcessProgressReporter(MultiStageProgressReporter):
def __init__(self, d, processname, stage_weights, debug=False):
self._processname = processname
self._started = False
super().__init__(d, stage_weights, debug)
MultiStageProgressReporter.__init__(self, d, stage_weights, debug)
def start(self):
if not self._started:
@@ -282,14 +256,13 @@ class MultiStageProcessProgressReporter(MultiStageProgressReporter):
MultiStageProgressReporter.finish(self)
bb.event.fire(bb.event.ProcessFinished(self._processname), self._data)
class DummyMultiStageProcessProgressReporter(MultiStageProgressReporter):
"""
MultiStageProcessProgressReporter that takes the calls and does nothing
with them (to avoid a bunch of "if progress_reporter:" checks)
"""
def __init__(self):
super().__init__(None, [])
MultiStageProcessProgressReporter.__init__(self, "", None, [])
def _fire_progress(self, taskprogress, rate=None):
pass

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