Compare commits

..

642 Commits
5.2_M2 ... thud

Author SHA1 Message Date
Richard Purdie
6c5a847a45 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: 964958b8b11dc69fb289fc6c97c1dbc8d76ad0f8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-03 11:31:58 +00:00
Richard Purdie
2faacaf8f4 bitbake: fetch2: Fix os.errno references
os.errno used to happen to work but is invalid. Correct to use errno.

[YOCTO #13068]

(Bitbake rev: b3fc65289d33274cd5dace4d4ffe55be11c991f4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-01-31 11:28:39 +00:00
Khem Raj
e52122a3e6 qemu: Replace stime() API with clock_settime
(From OE-Core rev: 2cca75155baec8358939e2aae822e256bed4cfe0)

(From OE-Core rev: 1351f9be973cfbd043f9b10d218e3cecaa0ab372)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:10 +01:00
Jaewon Lee
e7e1b9a43d Adding back wrapper and using OEPYTHON3HOME variable for python3
Adding back the python wrapper and adding a patch to use OEPYTHON3HOME
instead of PYTHONHOME if set, for python3.

If we add back the wrapper as is, we would see the following error that
we also see in Thud:

ImportError: No module named site
OpenEmbedded requires 'python' to be python v2 (>= 2.7.3), not python
v3.
Please upgrade your python v2

This is because python3 would've set PYTHONHOME to use nativesdk
python3 libraries but when the oe-buildenv-internal script tries to call
python2 for the py_v27_check, there will be no python2 libraries in the
PYTHONHOME directory.
In other words, bitbake needs host python2 and the env variable set from
the wrapper contaminates the env and host python2 won't be able to find
its libraries

Creating another variable OEPYTHON3HOME and using this in the python3
wrapper to allow for a way to set a different paths for python3 and
python2

[YOCTO #13208]

(From OE-Core rev: 75d2a85e24ef9a2bf0e218521944523f0ff281e0)

(From OE-Core rev: b29e87376fdd49ce07749b87c3000033fa96e43f)

Signed-off-by: Jaewon Lee <jaewon.lee@xilinx.com>
Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:10 +01:00
Hongxu Jia
904e05f467 iso-codes: switch upstream branch master -> main
(From OE-Core rev: a6e098e2e5932781b9c1012825bc86bc08382931)

(From OE-Core rev: 54690c51765d3071406ef1bfd81c9d9db9552108)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6e16ef0c2e0ec2bbb862231cd84e7650bd5789af)
Signed-off-by: Jeremy A. Puhlman <jpuhlman@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:10 +01:00
Konrad Weihmann
bc319fd044 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: 77f119baf6f4b85194a9b26d8442ddc7fb3bb97c)

(From OE-Core rev: 4cee5c4bc74edde48fe19ec11c78f6c598cf08b6)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:10 +01:00
Richard Purdie
0d061fc545 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: be07d93a4f59d4563f2d064be1997b39f05e9f0e)

(From OE-Core rev: 7a46226288179df565b7c21c3316672d2e2a1ac0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:10 +01:00
Richard Purdie
422d55320a maintainers: Add entry for buildtools-extended-tarball
(From OE-Core rev: 4281342a04078990bb0a110760ff2dc053eccc93)

(From OE-Core rev: 665ef4274e0261bb8351c8d4fd2c8496a2dc27e7)

(From OE-Core rev: 848af99b4e6afda0658db44128a6921217653e95)

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-09-16 13:35:09 +01:00
Richard Purdie
000ae7db61 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: ee82e3c24fe5727ce81e972cadedca431d6086c5)

(From OE-Core rev: be4470c9590183b388d9ff176331d0c50984dec8)

(From OE-Core rev: e15ff4775aef99a13acb98501454d1b99c923969)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Richard Purdie
e1499a0481 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: 6043b9a2ea879f8960897b11eb947801508a94da)

(From OE-Core rev: f06861bbe402fff3f370687585e43c0270609d00)

(From OE-Core rev: 77bfdb505c8483416fbd4e78cf42ad09923c401b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Khem Raj
5592bfe79c uninative: Upgrade to 2.9
This supports glibc upto 2.32 which is now rolling into distributions

(From OE-Core rev: 622371678ddb013fc456eaf75def26fc4e142d15)

(From OE-Core rev: 4543eeacd65eebe74ff3a44182915a732ba26e47)

(From OE-Core rev: ab3c7e09c347a2c57d894ba5e04f38fc9adfad59)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Jeremy Puhlman
5158b599a9 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)

(From OE-Core rev: 6f6d7278358b042aca3e911aefd0d6128480f32d)

(From OE-Core rev: e1b5cab5cf65df4310b63826690a12ea7083e192)

Signed-off-by: Jeremy A. Puhlman <jpuhlman@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Richard Purdie
47724b354a 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)

(From OE-Core rev: c9e8b7a40b2628331c7cb564aa3f3d9e1822fe36)

(From OE-Core rev: a41c008eb12004ec8938c03dbc495e07c77d45a6)

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

(From OE-Core rev: 848c61a07f691638fa529bbe0f0ff1dfded4a967)

(From OE-Core rev: afa4cacff186f28d6a4c4246d1e5caf0aa6938e9)

Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Steve Sakoman
4f3b564ce4 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)

(From OE-Core rev: 0cb479a5e99289b75e89b2ed5058f33605f15936)

(From OE-Core rev: f96a3082a0822106dfed73d55117552ccff5734f)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Liwei Song
ceef407f00 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)

(From OE-Core rev: e733a5f3b0e3c3b8a830db5ae99b3fc6b7e56921)

(From OE-Core rev: 22dd23e3d6c4ee2066198fb91554bbe00a582db0)

Signed-off-by: Liwei Song <liwei.song@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Jeremy Puhlman
0e3bb6019d 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)

(From OE-Core rev: 5e3664e5f9a0dde07b0f8a56cdce1321456abaa5)

(From OE-Core rev: 2cbc936110f1a5d9532b47439b6da1b12caa307b)

Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Tim Orling
9fbf615baa 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)

(From OE-Core rev: ed9d60fb5d471b4ec472088cc9307fd8575b187a)

(From OE-Core rev: 1276b895008919f510f609d8da4a157d47f09c48)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Richard Purdie
6b8c4f7cdf 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)

(From OE-Core rev: 3562a6848aa3e866ad8e2d3caed3211971817234)

(From OE-Core rev: 76227185faedc0946f2b69a8cfe4286f6e5355d9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Richard Purdie
47ba4c7dec 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)

(From OE-Core rev: aa37b5fe0620122e47f36165f5c7a07d3328dba3)

(From OE-Core rev: 6540c5bb9241d5729a0e56f5cf24e1d1d1d4a4cc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Richard Purdie
9055290590 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)

(From OE-Core rev: 8de0aee6befc0541fa40563f63dfe1cc36f064fe)

(From OE-Core rev: d7894d3578d9e97185b4a326c346a3fbb6936ab6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Tim Orling
d6c572cd48 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)

(From OE-Core rev: f492e172e133a4b52dbe818d806cab783204e575)

(From OE-Core rev: 4b23c235bdf29cc45ab084e6fdce8cba3ce7fce2)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Richard Purdie
c08f2dc635 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)

(From OE-Core rev: d0b7811b0e8654cf83d1b0f8256c7941fc3d9c41)

(From OE-Core rev: 669b73c9f469642085c6ad11b55a9065c889ddbd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Changqing Li
030b0223aa runqemu: add lockfile for port used when slirp enabled
There is race condition when multi qemu starting with slirp,
add lockfile for each port to avoid problem like:

runqemu - ERROR - Failed to run qemu: qemu-system-x86_64: Could not set up host forwarding rule 'tcp::2323-:23'

[YOCTO #13364]

(From OE-Core rev: ceb3555a40ba06e58914465376aaf41392c12a7c)

(From OE-Core rev: 9f9657683df90c18c1dfc7e65715b134a44a9d5a)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Richard Purdie
8117b6b195 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: cd935db103312f6caec2832de80e49e3ed7d1ed8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Richard Purdie
0e4f4f860d populate_sdk_ext: Fix to use python3, not python
We should be using python3 here, it was missed in the conversion. Spotted on
autobuilder tests failing on systems with python missing.

(From OE-Core rev: db07b09196022078346aadd565760240b7da6a71)

(From OE-Core rev: 2ce4dd53443e86c707280716bfe23572eff58abb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Richard Purdie
08216625d0 populate_sdk_ext: We now require python3, not python
We no longer expect a "python" binary in PATH so update the eSDK's
expectations to match. This was the only failure on autobuilder test
systems with python missing.

(From OE-Core rev: 946ce21b10dcad506edcaadb4e4242c049e4c316)

(From OE-Core rev: 775336424bcc7c083e2ac6ccd3db0b16e87dc29a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Richard Purdie
24f57d0379 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: 2cb99a44c650db7fd6fbd269f5788e4ebfd523fc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Richard Purdie
32d7c4b179 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: 611d3947054dad764aeded4c6a050415f7ca4991)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Michael Halstead
2e1f7a335a 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: ccb374c279b260b1fd3460f6bfd1567240816055)

(From OE-Core rev: 0e12f41848fd2fdbc0f70f568ce13baeb3263d03)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Charles-Antoine Couret
08c3882891 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: 1d6f50a5e58f46f8af6e83c4e288d93a717187ea)

(From OE-Core rev: e73228e6b039bd972d36774bfb360a638a03d821)

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: Jeremy A. Puhlman <jpuhlman@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 13:35:09 +01:00
Richard Purdie
7b515c6df5 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: a21671e8a483ba8a6986d961987eda2d36ec61ca)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-09 09:44:53 +01:00
Richard Purdie
04eaedb804 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: 12d8cc3fecd550c4aadf0519e80711d755ee75ba)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-08 14:46:13 +01:00
Richard Purdie
3315b9f4a5 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: f4e60b29df88393302957c5bbdbe24ca38c4633c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-10 21:10:54 +01:00
Jefro
958427e9d2 Adding memoriam to scottrif
Added a few comment lines in Makefile to commemorate Scott's
contributions

(From yocto-docs rev: 421a80308c36c3da98d5fb6f6100ee3fab6abd0e)

Signed-off-by: Jefro <jefro@jefro.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-31 08:03:28 +00:00
Armpit
f3dfec8aae linux-yocto/4.14: update Yocto Bsps to 4.14.154
(From meta-yocto rev: bf00cab7a55e2038e09a307378af5aec04c99380)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-02 13:33:33 +00:00
Armin Kuster
390f760d17 linux-yocto/4.14: update to 4.14.154
(From OE-Core rev: e68991ceb5933f7d03b96697e8a0ba0829feb320)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:11:10 +00:00
Ross Burton
3de2aeb687 glibc: finish incomplete fix for CVE-2016-10739
Somehow the patch for this CVE only included one of the four required patches.

(From OE-Core rev: e7ed139e48b683ebe3e6863886e712998aaa239c)

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-12-16 23:11:10 +00:00
Ross Burton
962cbc60d7 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: b52d6340acdad27d41caf057b78f181297a9a75e)

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-12-16 23:11:10 +00:00
Ross Burton
51553d9da2 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: 1f3863bc31e03207856f55591cbf17543e188587)

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-12-16 23:11:10 +00:00
Ross Burton
1a09e2a3cf 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: 541dc24d974d3e22c45a650c34298eebc45121e8)

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-12-16 23:11:10 +00:00
Ross Burton
3091533130 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: aa197b91e1770925ae1a31ee7334b593bfcdc9e3)

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-12-16 23:11:10 +00:00
Ross Burton
7da85f3a88 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: 27ee95bd1ec2076509cfc2230eadb876fb35d6c2)

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-12-16 23:11:10 +00:00
Ross Burton
bc70e97a88 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: 29cc2b5cd4bcce1c9e93395a1640014877486d7a)

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-12-16 23:11:10 +00:00
Ross Burton
d5ef4072e8 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: 091a35cfbd2f3e82a7783ba9c8fd5586433ba59f)

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-12-16 23:11:10 +00:00
Ross Burton
e60099368b 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: cbb5d26d88465c95a4a879f8635253259e8df0f0)

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-12-16 23:11:10 +00:00
Ross Burton
f9b5a31a65 cve-check: failure to parse versions should be more visible
(From OE-Core rev: 72f44bef3867295f73f8b91e17294b2876447c89)

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-12-16 23:11:10 +00:00
Ross Burton
1675f9638a 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: 98256ff05fcfe9d5ccad360582c36eafb577c264)

(From OE-Core rev: 9d01a64844998d98fcfcebbe8580422094cd2dde)

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-12-16 23:11:10 +00:00
Ross Burton
593fe7e352 cve-check: backport rewrite from master
As detailed at [1] the XML feeds provided by NIST are being discontinued on
October 9th 2019.  As cve-check-tool uses these feeds, cve-check.bbclass will be
inoperable after this date.

To ensure that cve-check continues working, backport the following commits from
master to move away from the unmaintained cve-check-tool to our own Python code
that fetches the JSON:

546d14135c5 cve-update-db: New recipe to update CVE database
bc144b028f6 cve-check: Remove dependency to cve-check-tool-native
7f62a20b32a cve-check: Manage CVE_PRODUCT with more than one name
3bf63bc6084 cve-check: Consider CVE that affects versions with less than operator
c0eabd30d7b cve-update-db: Use std library instead of urllib3
27eb839ee65 cve-check: be idiomatic
09be21f4d17 cve-update-db: Manage proxy if needed.
975793e3825 cve-update-db: do_populate_cve_db depends on do_fetch
0325dd72714 cve-update-db: Catch request.urlopen errors.
4078da92b49 cve-check: Depends on cve-update-db-native
f7676e9a38d cve-update-db: Use NVD CPE data to populate PRODUCTS table
bc0195be1b1 cve-check: Update unpatched CVE matching
c807c2a6409 cve-update-db-native: Skip recipe when cve-check class is not loaded.
07bb8b25e17 cve-check: remove redundant readline CVE whitelisting
5388ed6d137 cve-check-tool: remove
270ac00cb43 cve-check.bbclass: initialize to_append
e6bf9000987 cve-check: allow comparison of Vendor as well as Product
91770338f76 cve-update-db-native: use SQL placeholders instead of format strings
7069302a4cc cve-check: Replace CVE_CHECK_CVE_WHITELIST by CVE_CHECK_WHITELIST
78de2cb39d7 cve-update-db-native: Remove hash column from database.
4b301030cf9 cve-update-db-native: use os.path.join instead of +
f0d822fad2a cve-update-db: actually inherit native
b309840b6aa cve-update-db-native: use executemany() to optimise CPE insertion
bb4e53af33d cve-update-db-native: improve metadata parsing
94227459792 cve-update-db-native: clean up JSON fetching
95438d52b73 cve-update-db-native: fix https proxy issues
1f9a963b9ff glibc: exclude child recipes from CVE scanning

[1] https://nvd.nist.gov/General/News/XML-Vulnerability-Feed-Retirement

(From OE-Core rev: 8c87e78547c598cada1bce92e7b25d85b994e2eb)

(From OE-Core rev: beeed02f9831e75c3f773e44d7efc726f1ff859c)

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>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:11:10 +00:00
Dan Tran
53acd121ab sudo: Fix CVE-2019-14287
(From OE-Core rev: e21a8e3b2b2b035cf71883f72eeb665e3fa9c078)

Signed-off-by: Dan Tran <dantran@microsoft.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:11:10 +00:00
Dan Tran
4c556ab0d5 tar: Fix CVE-2018-20482
(From OE-Core rev: 95ab1519ea5f1a0ed73f6f484bcf15fde5de8140)

Signed-off-by: Dan Tran <dantran@microsoft.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:11:10 +00:00
Shubham Agrawal
a802677332 libgcrypt: CVE-2019-12904
fix Upstream-Status: Backport

(From OE-Core rev: fbc13f9774497866441916a95e12cc1e9d29b7b4)

Signed-off-by: Shubham Agrawal<shuagr@microsoft.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:11:10 +00:00
Khem Raj
304de32f80 sdk: Install nativesdk locales for all TCLIBC variants
install_locales() here is actually operating on nativesdk and only glibc
is the default library for nativesdk, since thats what most of
desktop/server distros use, therefore bailing out based on TCLIBC is not
needed here, since nativesdk-glibc would be required for all non-glibc
targetting SDKs as well.

Fixes SDK install time error

ERROR:  OE-core's config sanity checker detected a potential misconfiguration.
Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
Following is the list of potential problems / advisories:
Your system needs to support the en_US.UTF-8 locale.
ERROR: SDK preparation failed

(From OE-Core rev: 4a17afb3fe42cbc01c52b2d5357f6021bf782c01)

Signed-off-by: Khem Raj <raj.khem@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-12-16 23:11:10 +00:00
Jed
b54e834832 at-spi2: fix dbus-daemon path
"dbus_daemon" is supposed to be set to the full dbus-daemon file
path, not just its directory.

(From OE-Core rev: 3aead67fc219ab20617a2a0462cba550a08a4455)

Signed-off-by: Jed <jed.openxt@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-16 23:11:10 +00:00
Kyle Russell
9155e70299 bitbake: runqueue: fix multiconfig task dependency filtering
multiconfig dependencies should be excluded from BB_TASKDEPDATA.
However in thud, multiconfig filtering on task dependencies doesn't
happen until after deps has already been added to taskdepdata.

One manifestation of this results in multiconfig dependencies leaking
into staging processing.

File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
     0001:
 *** 0002:extend_recipe_sysroot(d)
     0003:
File: '/home/user/thud/meta/classes/staging.bbclass', lineno: 344, function: extend_recipe_sysroot
     0340:    #bb.note(" start is %s" % str(start))
     0341:
     0342:    # Direct dependencies should be present and can be depended upon
     0343:    for dep in set(start):
 *** 0344:        if setscenedeps[dep][1] == "do_populate_sysroot":
     0345:            if dep not in configuredeps:
     0346:                configuredeps.append(dep)
     0347:    bb.note("Direct dependencies are %s" % str(configuredeps))
     0348:    #bb.note(" or %s" % str(start))
Exception: KeyError: 'multiconfig:musl:/home/user/thud/meta/recipes-kernel/linux/linux-yocto_4.18.bb:do_deploy'

This can be reproduced on thud by backporting the multiconfig.MultiConfig.test_multiconfig
test and mcextend bbclass from warrior.

d22b6e03a5 mcextend: Add helper class useful for multiconfig
d9018a3d9c selftest: Add multiconfig test

Flipping the ordering to match warrior's behavior fixes the test case.

(Bitbake rev: b690030efc87850951e8e3ecf4ae3c1dd1dc9b63)

Signed-off-by: Kyle Russell <bkylerussell@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-12 20:02:51 +00:00
Armin Kuster
8cd3ee6e1a linux-yocto/4.14: meta-yocto-bsp update to 143
(From meta-yocto rev: 347093d4d24eac8165e2be66a4a7503af4bfc833)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-16 18:38:30 +00:00
Kevin Hao
5bb142d7dd meta-yocto-bsp: Bump to the latest stable kernel for the BSPs
In order to fix a systemtap bug [1] on arm board, we backport a kernel
patch from v5.0 kernel to v4.14 & v4.18 kernel, then need to bump the
kernel version to include this patch. Even this is only an arm specific
bug, we would like to bump the kernel version for the BSPs at the same
time. Boot test for all the boards.

[1] https://bugzilla.yoctoproject.org/show_bug.cgi?id=13273

(From meta-yocto rev: 23ea5a859346f19ea3a53451702621e9102c853d)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-16 18:38:30 +00:00
Richard Purdie
a8640d9a60 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: 97067634b1f149b56844b10e3a5e8d0d980b6e34)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-13 22:00:33 +00:00
Scott Rifenbark
3e42c33da5 documentation: Setup for 2.6.4 release
* Updated poky.ent to use 2.6.4 stuff
* Updated mega-manual.sed to use "2.6.4" string
* Updated all the <manual>.xml files manual revision table
  to be "November 2019"

(From yocto-docs rev: 607598f72bc3e7393ccf7c6380c03dddef3bb41c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-10 14:06:41 +00:00
Ivan Efimov
532f2df770 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: b51877cbb8a7c713aa2bcec8354ec66e2f3dad51)

Signed-off-by: Ivan Efimov <i.efimov@inango-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-07 19:47:04 +00:00
Richard Purdie
51f6145f8f build-appliance-image: Update to thud head revision
(From OE-Core rev: cd7cf933b3235560ec71576d8f3836dff736a39f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-17 16:45:38 +01:00
Armin Kuster
2c5af52109 Revert "OpkgPM: use --add-ignore-recommends to process BAD_RECOMMENDATIONS"
This reverts commit e8cd30ba6c.

This backport introduced an issue not seen the AB QA.

Issue can be seen if
BAD_RECOMMENDATIONS_append = " udev-hwdb" is used

(From OE-Core rev: 5110080fbecd3f1cf43797c7eeb742951d88d1a8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-17 16:45:28 +01:00
Richard Purdie
47925dc5f9 build-appliance-image: Update to thud head revision
(From OE-Core rev: bace400528115927ed0efa3cd941c9f9f128a555)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-15 16:53:51 +01:00
Richard Purdie
795af97c45 poky.conf: Bump version for 2.6.4 thud release
(From meta-yocto rev: 591984ed1d9f371af0410a91786c60b7cf8e3a5c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-15 16:53:32 +01:00
Muminul Islam
ebf1cc65a9 curl: Security fix for CVE-2019-5482
(From OE-Core rev: 57d30f26c3dbba720079e98d429dfcb53d527d54)

Signed-off-by: Muminul Islam <muislam@microsoft.com>
[Fixup for thud context]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-15 15:54:01 +01:00
Muminul Islam
507434199d libsolv: Security fix for CVEs: <CVE-2018-20532, CVE-2018-20533, CVE-2018-20534>
(From OE-Core rev: 82a9850d6ef8cca816f9e0a53a8d20b056f95320)

Signed-off-by: Muminul Islam <muislam@microsoft.com>

CVE: CVE-2018-20532 CVE-2018-20533 CVE-2018-20534

Upstream-Status: Backport

Cherry picked from  https://github.com/openSUSE/libsolv/pull/291/commits
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-15 15:54:01 +01:00
Dan Tran
ab318acf53 gnutls: Fix CVE-2019-3829 and CVE-2019-3836
(From OE-Core rev: 54c6892543319c4b8f7248e95966e956053c97b7)

Signed-off-by: Dan Tran <dantran@microsoft.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-15 15:54:01 +01:00
c-thaler
dba05668f7 kernel-devsrc: check for localversion files in the kernel source tree
localversion files are ignored. This might lead to a bad version magic when
building out-of-tree modules via SDK.
(Backport from master https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/meta/recipes-kernel/linux/kernel-devsrc.bb?id=59fcee90de0cbb5b6b8333ab2b0e36214b174e52)

(From OE-Core rev: 85da4ccfff2103815eb3cd9a0b0f1af122b05567)

Signed-off-by: Christian Thaler <christian.thaler@tes-dst.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-15 15:54:01 +01:00
Muminul Islam
7e20a2238c glibc: Security fix for cve <CVE-2019-6488, CVE-2019-7309>
(From OE-Core rev: d68441ed80fd43f091baf01bfdb47c3ec010c662)

Signed-off-by: Muminul Islam <muislam@microsoft.com>

CVE: CVE-2019-6488, CVE-2019-7309

Upstream-Status: Backport
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-15 15:54:00 +01:00
Peter Kjellerstedt
01d107f5c1 arch-arm64.inc: Lower the priority of aarch64 in MACHINEOVERRIDES
This makes sure, e.g., ${SOC_FAMILY} and ${MACHINE} have higher
priorities than aarch64.

(From OE-Core rev: 3b8db95973fc144b00d59c4797adb405a935cd7c)

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-10-15 15:54:00 +01:00
Dmitry Eremin-Solenikov
9257748714 kernel.bbclass: fix installation of modules signing certificates
If one has provided external key/certificate for modules signing, Kbuild
will skip creating signing_key.pem and will write only signing_key.x509
certificate. Thus we have to check for .x509 file existence rather than
.pem one.

(From OE-Core rev: 4972582767a3325d22a16db9a5479c2d0001964b)

Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2527e731eba43bd36d0ea268aca6b03155376134)
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-15 15:54:00 +01:00
Joshua Watt
c272ecd65b bitbake: cookerdata: Add mc conffiles hashes to cache hash
The variable values that result from parsing multiconfig should be
included in the cooker data hash, otherwise changes to these files won't
be detected, which will allow the parsing cache to be loaded with the
old values for the multiconfigs. This can either manifest as the
variable values simply not updating, or getting basehash changed errors
when building.

This bug was previously undetected because all of the multiconfig base
files were a direct file dependency in all parsed recipes. This was
fixed in 34137a00f60 ("bitbake: bitbake: cooker: Rename __depends in all
multiconfigs"), exposing this bug.

[YOCTO #13541]

(Bitbake rev: 6b045e074c6fea97d4e305a5a3c8bf82135d95eb)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-10 16:53:26 +01:00
Michael Halstead
8e23315bda uninative: Update to 2.7 release
The 2.7 release updates glibc to version 2.30. Recently added to openSUSE
Tumbleweed and needed for Fedora Core 31.

(From OE-Core rev: e6728a873f1eef335a9e21bdface304f13f0c952)

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
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-10 16:52:30 +01:00
Khem Raj
d31a23609c gnupg: Do not apply -Woverride-init guard for gcc >= 9
(From OE-Core rev: e40c38afc1747d1ed71c9bd2ab3189bbb1efcee9)

Signed-off-by: Khem Raj <raj.khem@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-10 16:52:30 +01:00
Sean Nyekjaer
0077503ed8 libgpg-error: Fix build with gawk 5.x
Based on poky master, but for version 1.35

(From OE-Core rev: ff3b021136d7af66f05475da8475495fe7c653ee)

Signed-off-by: Sean Nyekjaer <sean@geanix.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
[backported to thud
 yocto# 13580]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-10 16:52:30 +01:00
Armin Kuster
f3a4b20850 qemu: fix build issue on new hosts with glibc 2.30
This fixes the following error:

TOPDIR/tmp/work/x86_64-linux/qemu-native/3.1.0-r0/qemu-3.1.0/linux-user/syscall.c:254:16: error: static declaration of ‘gettid’ follows non-static declaration
 254 | _syscall0(int, gettid)
 |                ^~~~~~
 TOPDIR/tmp/work/x86_64-linux/qemu-native/3.1.0-r0/qemu-3.1.0/linux-user/syscall.c:185:13: note: in definition of macro ‘_syscall0’
 185 | static type name (void)   \
 |             ^~~~
 In file included from /usr/include/unistd.h:1170,
 from TOPDIR/tmp/work/x86_64-linux/qemu-native/3.1.0-r0/qemu-3.1.0/include/qemu/osdep.h:90,
 from TOPDIR/tmp/work/x86_64-linux/qemu-native/3.1.0-r0/qemu-3.1.0/linux-user/syscall.c:20:
 /usr/include/bits/unistd_ext.h:34:16: note: previous declaration of ‘gettid’ was here
 34 | extern __pid_t gettid (void) __THROW;
 |                ^~~~~~

(From OE-Core rev: 5b5ca76cc5dd424248c7e687e562597a2c85df57)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-10 16:52:30 +01:00
Andrii Bordunov via Openembedded-core
93cde08301 wget: Security fixes CVE-2018-20483
Source: http://git.savannah.gnu.org/cgit/wget.git/
Type: Security Fix
Disposition: Backport from http://git.savannah.gnu.org/cgit/wget.git/
Description:

Fixes CVE-2018-20483

(From OE-Core rev: c901bc8cd9de5853185af2059c6f1efeb4ccdd60)

Signed-off-by: Aviraj CJ <acj@cisco.com>
[Affects Wget before 1.20.1]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-10 16:52:30 +01:00
Shubham Agrawal
6d5867a94c sqlite3: Security fix for CVE-2019-8457
(From OE-Core rev: c0c66d213b4b6deb0a5e9a688810d2e9674d3ecf)

Signed-off-by: Shubham Agrawal <shuagr@microsoft.com>
[Cleaned up patch]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-10 16:52:30 +01:00
Dan Tran
bda26ff31c perl: Fix CVE-2018-18311 to 18314
(From OE-Core rev: cffd085ef77d055e5e837887b0eaf820aa982f00)

Signed-off-by: Dan Tran <dantran@microsoft.com>
[Perl before 5.26.3 and 5.28.x before 5.28.1]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-10 16:52:30 +01:00
Adrian Bunk
cc0605bad6 json-c: Don't --enable-rdrand
In recent years AMD CPUs have had various problems with RDRAND
giving either non-random data or no result at all, which is
problematic if either build or target machine has a CPU with
this problem.

The fallback is /dev/urandom, and I'd trust the kernel here.

--enable-rdrand was added in an upgrade to a new upstream
version without mentioning any reason.

[YOCTO #13534]

(From OE-Core rev: fad633eb5c464d4e2a984b9259625bcd150ee357)

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>
2019-10-10 16:52:30 +01:00
Dan Tran
b15ffd14ac unzip: fix CVE-2019-13232
(From OE-Core rev: 7857d85db69bcb2cb94399a22de6903263e52965)

Signed-off-by: Dan Tran <dantran@microsoft.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-10 16:52:30 +01:00
Shubham Agrawal
2d699f84a3 elfutils: CVE fix for elfutils
CVE: CVE-2019-7664.patch
CVE: CVE-2019-7665.patch

Sign off: Shubham Agrawal <shuagr@microsoft.com>

(From OE-Core rev: 8ca80002aa21897834b8c9869137461221e50225)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-10 16:52:30 +01:00
Dan Tran
7d0a5058e6 qemu: Fix 4 CVEs
Fixes CVE-2018-18954, CVE-2019-3812, CVE-2019-6778, and CVE-2019-8934.
Also deleted duplicated patch and cleanup.

(From OE-Core rev: e4b6a39bdf1b660233a7145599cd4fc3e971fc8f)

Signed-off-by: Dan Tran <dantran@microsoft.com>
[fixup for thud-next]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-10 16:52:30 +01:00
Chen Qi
70f57755d7 oeqa/selftest/context: ensure log directory exists
Ensure log directory exists to avoid the following error.

  FileNotFoundError: [Errno 2] No such file or directory: '/.../build-selftest/tmp/log/oe-selftest-results-20181207043431.log'

(From OE-Core rev: c54411d0e03fe1cea8b6bb0c80dea029dd264f36)

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-10 16:52:30 +01:00
Bruce Ashfield
87d0be72e7 linux-yocto/4.14: update to v4.14.143
Updating to the latest 4.14 -stable. Lightly build and boot tested
on qemu*

(From OE-Core rev: f5be8c8309a932cde507ba24d042880a922df0b6)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Anuj Mittal
d8b63d9ad6 pango: fix CVE-2019-1010238
(From OE-Core rev: 20b23cb40917b1c83b862817b13f0eefc8fa7a64)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
(cherry picked from commit 65631a048f57965745dc8cc23cb80c4c3a71ba94)
[Fix up for thud context]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Anuj Mittal
65ba01d602 patch: backport fixes
The original fix for CVE-2018-1000156 was incomplete. Backport more
fixes done later for a complete fix.

Also see:
https://savannah.gnu.org/bugs/index.php?53820

(From OE-Core rev: e2869ff2f76adb2b1ba6f003d6d02d242afe49e8)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
(cherry picked from commit 12f9689cba740da6b8c7d9292c74c3992c2e18f2)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Trevor Gamblin
6fc3dc1af5 patch: fix CVE-2019-13638
(From OE-Core rev: b59b1222b3f73f982286222a583de09c661dc781)

(From OE-Core rev: 308c44fd8f1d7d348c6c7cf9054f9c8403d8e8bd)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
(cherry picked from commit 555b0642579c00c41bc3daab9cef08452f9834d5)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Anuj Mittal
d59f2b0a74 libxslt: fix CVE-2019-13117 CVE-2019-13118
(From OE-Core rev: 7dc3048fec88dd62ef49ef16517b7382ab7cf2a5)

(From OE-Core rev: 07cd0d606fea63e683c7de7ebfaa6a55170b8318)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Fixup for thud context]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Muminul Islam
94ac57739c libxslt: Cve fix CVE-2019-11068
(From OE-Core rev: c9c3fabddb4e1779ef330f2073f85dce83cb460b)

Signed-off-by: Muminul Islam <muislam@microsoft.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Dan Tran
26ab554fd5 python3: Fix CVEs
Fixes CVE-2018-14647, CVE-2018-20406, CVE-2018-20852, CVE-2019-9636,
CVE-2019-9740, and CVE-2019-9747.

(From OE-Core rev: 5862716f22ca9f5745d3bca85c6ed0d8c35c437b)

Signed-off-by: Dan Tran <dantran@microsoft.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Dan Tran
90e5385568 python: Fix 3 CVEs
Fixes CVE-2018-20852, CVE-2019-9740, and CVE-2019-9747

(From OE-Core rev: 3f1c02aa7b7d485e64503d601124c335d4b7299f)

Signed-off-by: Dan Tran <dantran@microsoft.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Dan Tran
45cebeda6e binutils: Fix 4 CVEs
Fixes CVE-2018-20623, CVE-2018-20651, CVE-2018-20-671, and
CVE-2018-1000876 for binutils 2.31.1.

(From OE-Core rev: 981eeec0f26f25db444782f40a86c558a2358215)

Signed-off-by: Dan Tran <dantran@microsoft.com>
[fixed up .inc for thud-next context]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Adrian Bunk
36fa7fce02 dhcp: Replace OE specific patch for compatibility with latest bind with upstream patch
This also fixes a dhcp breakage noticed by Enrico Scholz.

(From OE-Core rev: 5deab12cdcf1d7372634324e1fd70145ff59f9f9)

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>
2019-10-08 22:52:28 +01:00
Ruslan Bilovol
458009f31a dhcp: drop lost patch
Commit 7cb42ae87ef9 "dhcp: update 4.4.1" dropped
0008-tweak-to-support-external-bind.patch
from recipe, but left the patch itself in source tree.
Remove this patch since nobody uses it.

Cc: Armin Kuster <akuster808@gmail.com>
(From OE-Core rev: 109e8420c8a4e94dccb3c83e2b0b7fc6ceb66b04)

Signed-off-by: Ruslan Bilovol <ruslan.bilovol@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-08 22:52:28 +01:00
Armin Kuster
5f125a31e1 dhcp: fix issue with new bind changes
(From OE-Core rev: d0e2babdab1625e86d0abc7fa7dab25caa73ccb6)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Armin Kuster
6518c248e6 go: update to 1.11.13, minor updates
Source: golang.org
MR: 99376
Type: Security Fix
Disposition: Backport from golang.org
ChangeID: 41576ab4a0abdebbc44f1a35a83bf04e5f2fde06
Description:

https://golang.org/doc/devel/release.html

go1.11.11 (released 2019/06/11) includes a fix to the crypto/x509 package. See the Go 1.11.11 milestone on our issue tracker for details.

go1.11.12 (released 2019/07/08) includes fixes to the compiler and the linker. See the Go 1.11.12 milestone on our issue tracker for details.

go1.11.13 (released 2019/08/13) includes security fixes to the net/http and net/url packages. See the Go 1.11.13 milestone on our issue tracker for details.

Includes CVE: CVE-2019-14809

(From OE-Core rev: 6018e9755dce3eaa22a1fe691dc18546c43c9cbe)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Adrian Bunk
6eaf69d732 bind: upgrade 9.11.5 -> 9.11.5-P4
Source: OE.org
MR: 99751, 99752, 99753
Type: Security Fix
Disposition: Backport from https://git.openembedded.org/openembedded-core/commit/meta/recipes-connectivity/bind?h=warrior&id=5d286da0fbe1a7ded2f84eec990e49d221bdeab4
ChangeID: ce3719ea11bd03af3baeca51a22115badf84be01
Description:

Bugfix-only compared to 9.11.5, mostly CVE fixes.

COPYRIGHT checksum changed due to 2018 -> 2019.

(From OE-Core rev: b24447b40e4988e337bdd4b5cf194df0827f9887)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Included cves:
CVE-2018-5744
CVE-2018-5745
CVE-2019-6465
]
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Armin Kuster
3d3a165925 bind: update to latest LTS 9.11.5
Source: bind.org
MR: 99750
Type: Security Fix
Disposition: Backport from bind.org
ChangeID: bca5c436229f1b8c7e8eb3e45fc6188ffdb5e224
Description:

includes:
CVE-2018-5738

drop patch for CVE-2018-5740 now included in update

see: https://ftp.isc.org/isc/bind9/9.11.5/RELEASE-NOTES-bind-9.11.5.html

Add RECIPE_NO_UPDATE_REASON for lts

(From OE-Core rev: 25b2f2c6fc67eabb0e7f0b7c5ffe08c554613c10)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Also includes CVE-2018-5740]
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Armin Kuster
176dc6eb01 binutils: Security fix for CVE-2019-12972
Source: git://sourceware.org / binutils-gdb.git
MR: 98770
Type: Security Fix
Disposition: Backport from https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=890f750a3b053532a4b839a2dd6243076de12031
ChangeID: 7ced6bffbe01cbeadf50177eb332eef514baa19c
Description:

Fixes CVE-2019-12972

(From OE-Core rev: 16f4520f5cb581eb93bd3f0e3aa1feecc5c567ba)

Signed-off-by: Armin Kuster <akuster@mvista.com>

[v2]
forgot to refresh inc file before sending

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Armin Kuster
d39b67e491 binutils: Security fix for CVE-2019-14444
Source: git://sourceware.org / binutils-gdb.git
MR: 99255
Type: Security Fix
Disposition: Backport from https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e17869db99195849826eaaf5d2d0eb2cfdd7a2a7
ChangeID: 67ad4ab1ec34b941bdcfbb4f55d16176bbbd3d72
Description:

Affects: <= 2.32.0

Fixes CVE-2019-14444

(From OE-Core rev: a367928942411b36a0b0bbb95055d01548430e8e)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Armin Kuster
09d46e9131 gcc: Security fix for CVE-2019-14250
Source: gcc.org
MR: 99120
Type: Security Fix
Disposition: Backport from https://gcc.gnu.org/viewcvs?rev=273794&root=gcc&view=rev
ChangeID: 28ab763c18f1543607181cd9657f45f7752b6fcb
Description:

Affects < 9.2

(From OE-Core rev: 79205966072bb6179d96b3af5aabc521da83e841)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Bartosz Golaszewski
0f7e6681a8 qemu: add a patch fixing the native build on newer kernels
The build fails on qemu-native if we're using kernels after commit
0768e17073dc527ccd18ed5f96ce85f9985e9115. This adds an upstream
patch that fixes the issue.

(From OE-Core rev: fac2d3846dadfda256e94500bdf33f546a8d1fb4)

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Refactoried for thud context]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Andrii Bordunov via Openembedded-core
4e6a44598f libcomps: fix CVE-2019-3817
(From OE-Core rev: 2cebc7faa10c7ac6f60437658702f7adce3b3a89)

Signed-off-by: Kevin Weng <t-keweng@microsoft.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Andrii Bordunov via Openembedded-core
9da2eb4bef glib-2.0: fix CVE-2019-13012
(From OE-Core rev: 51f7ecf2259e1fb669cd84c5317cbd8810d731b7)

Signed-off-by: Kevin Weng <t-keweng@microsoft.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Andrii Bordunov via Openembedded-core
fe27c50545 dbus: fix CVE-2019-12749
(From OE-Core rev: 144363decc922ed03a584eb9b29cf9808a469d08)

Signed-off-by: Kevin Weng <t-keweng@microsoft.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:28 +01:00
Andrii Bordunov via Openembedded-core
1b62838428 curl: fix CVE-2018-16890 CVE-2019-3822 CVE-2019-3823
(From OE-Core rev: 75a4b4d8fb14414bbe2e38be8ccda0af94ef9b40)

Signed-off-by: Kevin Weng <t-keweng@microsoft.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 22:52:27 +01:00
Anuj Mittal
20ee17a579 python3: fix CVE-2019-9740
CVE-2019-9947 is same as CVE-2019-9740 and mark it as such. See:

https://bugs.python.org/issue30458

(From OE-Core rev: ad90312adabbad951f62e3bd4ad95fcc763ad0c4)

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>
2019-10-08 22:52:27 +01:00
Anuj Mittal
d581f111db patch: fix CVE-2019-13636
(From OE-Core rev: bd367f58d9d6b5f0ce213e1be36763c5a9e425b6)

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>
2019-10-08 22:52:27 +01:00
Alexander Kanavin
fa4683a484 buildhistory: call a dependency parser only on actual dependency lists
Previously it was also called on filelists and possibly other items which
broke the parser.

(From OE-Core rev: f965ecbf558b6db1959e4ba8e599d65a5c8022b2)

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-08 22:52:27 +01:00
Armin Kuster
e694933647 bitbake: tests/fetch: Resolve fetch error in bitbake-selftest
FAIL: test_wget_latest_versionstring (bb.tests.fetch.FetchLatestVersionTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/pokybuild/yocto-worker/oe-selftest/build/bitbake/lib/bb/tests/fetch.py", line 1229, in test_wget_latest_versionstring
      self.assertTrue(verstring, msg="Could not find upstream version for %s" % k[0])
      AssertionError: '' is not true : Could not find upstream version for db

[YOCTO #13496]

The Oracle UPSTREAM_CHECK_URI used changed and does not work with logic in wget.

Update UPSTREAM_CHECK_URI and UPSTREAM_CHECK_REGEX to match the ones used in the
recipe. Also change the version being checked.

(Bitbake rev: 8a58c3c64240c6ab14858d18e6b89febdb315311)

Signed-off-by: Armin Kuster <akuster808@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-09-09 09:58:09 +01:00
Scott Rifenbark
55e9d7c1e4 YP Docs: Set up the August 2019 date for 2.6.3 release.
(From yocto-docs rev: 49abb21ec1728a8794c69997316a95ed0251a1e2)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 11:59:53 +01:00
Martin Jansa
dab13e1c79 bitbake: fetch2: show warning when renaming the archive with bad checksum failed
* noticed on read-only sshfs premirror
* it was showing the warning about renaming the file:
  WARNING: laser-geometry-1.6.4-r0 do_fetch: Renaming /jenkins/mjansa/sshfs/webos-ose-thud/downloads/laser_geometry-1.6.4.tar.gz to /jenkins/mjansa/sshfs/webos-ose-thud/downloads/laser_geometry-1.6.4.tar.gz_bad-checksum_1ee7479b8c5914b4ffae996945121441

  and then failed because of movefile() issue with python3 (fixed in previous commit):
  ERROR: laser-geometry-1.6.4-r0 do_fetch: Error executing a python function in exec_python_func() autogenerated:

  with movefile() fixed, it let do_fetch continue and re-fetch locally with the right
  checksum, but still the renamed file didn't exist, because of movefile failure - add
  another warning when the movefile fails - for whatever reason - unfortunately movefile
  prints error messages with just print() so the real error is hidden only in log.do_fetch
  in this case:
  movefile: Failed to move /jenkins/mjansa/sshfs/webos-ose-thud/downloads/laser_geometry-1.6.4.tar.gz to /jenkins/mjansa/sshfs/webos-ose-thud/downloads/laser_geometry-1.6.4.tar.gz_bad-checksum_1ee7479b8c5914b4ffae996945121441 [Errno 30] Read-only file system: '/jenkins/mjansa/sshfs/webos-ose-thud/downloads/laser_geometry-1.6.4.tar.gz' -> '/jenkins/mjansa/sshfs/webos-ose-thud/downloads/laser_geometry-1.6.4.tar.gz_bad-checksum_1ee7479b8c5914b4ffae996945121441'

(Bitbake rev: d36438759344caa447d9a0bf30749a0aa31d1fba)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 11:58:56 +01:00
Martin Jansa
3103c383b3 bitbake: utils: Fix movefile() exception handling with python3
* with python3 this fails with:
  File: 'bitbake/lib/bb/utils.py', lineno: 799, function: movefile
       0795:        try:
       0796:            os.rename(src, destpath)
       0797:            renamefailed = 0
       0798:        except Exception as e:
   *** 0799:            if e[0] != errno.EXDEV:
       0800:                # Some random error.
       0801:                print("movefile: Failed to move", src, "to", dest, e)
       0802:                return None
       0803:            # Invalid cross-device-link 'bind' mounted or actually Cross-Device
  Exception: TypeError: 'OSError' object is not subscriptable

(Bitbake rev: 9f92322fa8d6f1a68c0c3f4984afdf65126b51dc)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 11:58:56 +01:00
Richard Purdie
cb26830f76 build-appliance-image: Update to thud head revision
(From OE-Core rev: d3d3f443039b03f1200a14bfe99f985592632018)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-01 11:58:15 +01:00
Richard Purdie
d43a86de1a poky.conf: Bump version for 2.6.3 thud release
(From meta-yocto rev: 9a1d9fd77e2dd2d324654755633e143ef7730dc5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-01 11:58:07 +01:00
Anuj Mittal
d49de3810a expat: fix CVE-2018-20843
(From OE-Core rev: aad245ea1c55f8e778ae3420c5c31e94301e7cba)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Ross Burton
9e0a120c8e libcroco: fix CVE-2017-7961
(From OE-Core rev: 480f15850820746cecdfe0b8450b2be484c1f8f9)

(From OE-Core rev: f5cf064b3c138c8a6591d34f40253e10a6f01a14)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Ovidiu Panait
e6058824bb ghostscript: Fix 3 CVEs
It was discovered that the ghostscript /invalidaccess checks fail under
certain conditions. An attacker could possibly exploit this to bypass
the -dSAFER protection and, for example, execute arbitrary shell commands
via a specially crafted PostScript document.

It was found that the superexec operator was available in the internal
dictionary in ghostscript before 9.27. A specially crafted PostScript
file could use this flaw in order to, for example, have access to the
file system outside of the constrains imposed by -dSAFER.

It was found that the forceput operator could be extracted from the
DefineResource method in ghostscript before 9.27. A specially crafted
PostScript file could use this flaw in order to, for example, have
access to the file system outside of the constrains imposed by -dSAFER.

References:
https://nvd.nist.gov/vuln/detail/CVE-2019-6116
https://www.openwall.com/lists/oss-security/2019/01/23/5
https://nvd.nist.gov/vuln/detail/CVE-2019-3835
https://nvd.nist.gov/vuln/detail/CVE-2019-3838

Upstream patches:
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=13b0a36
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2db98f9
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=99f1309
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=59d8f4d
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2768d1a
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=49c8092
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2ff600a
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=779664d
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e8acf6d
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2055917
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d683d1e
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ed9fcd9
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a82601e

(From OE-Core rev: 12e140dfdac8456772223c816e37bd869419bb18)

(From OE-Core rev: cf5d29dcac6247e8476f7af78b4e0bb129b94677)

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Fix for CVE-2019-6116 is already in thud, so that has been removed]
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Anuj Mittal
885459d264 bzip2: fix CVE-2019-12900
Also include a patch to fix regression caused by it. See:

https://gitlab.com/federicomenaquintero/bzip2/issues/24

(From OE-Core rev: 7c0b2d228f51aebb4415e63a07bdd645e85b09d8)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Ross Burton
d0e65410f4 libarchive: integrate security fixes
Fix the following CVEs by backporting patches from upstream:
- CVE-2019-1000019
- CVE-2019-1000020
- CVE-2018-1000877
- CVE-2018-1000878
- CVE-2018-1000879
- CVE-2018-1000880

(From OE-Core rev: ea251020304b9c18f31c39de867a47311b1bb46c)

(From OE-Core rev: 6cba048de29dfea44e926b00e5ea91359e7cbebd)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Anuj Mittal
acd46a34c4 gstreamer1.0-plugins-base: fix CVE-2019-9928
(From OE-Core rev: 276567b6a8e4b21dc978b352b5c715d6381867b1)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Anuj Mittal
ecc1ac5b04 libsdl: CVE fixes
Fixes CVE-2019-7572, CVE-2019-7574, CVE-2019-7575, CVE-2019-7576,
CVE-2019-7577, CVE-2019-7578, CVE-2019-7635, CVE-2019-7637,
CVE-2019-7638.

(From OE-Core rev: 2cfcb3b0fce7e1156eb52260df4330c95d87dc17)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Alejandro del Castillo
e8cd30ba6c OpkgPM: use --add-ignore-recommends to process BAD_RECOMMENDATIONS
Currently, BAD_RECOMMENDATIONS on the opkg backed relies on editing the
opkg status file (it sets BAD_RECOMMENDATIONS pkg want state to
deinstalled and pinned). This is brittle, and not consistent across the
different solver backends. Use new --add-ignore-recommends flag instead.

(From OE-Core rev: 0d11e813ba9b4e8de9e6e5099ff85f5d914243bc)

(From OE-Core rev: bfb0acb6bc6bc11e4aa2c9527916359e1a763e85)

(From OE-Core rev: 13ba66338d16cc07cb0129de932f090d0edb7760)

Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@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-07-29 23:50:43 +01:00
Alejandro del Castillo
eecc4121ad opkg: add --ignore-recommends flag
To be used for BAD_RECOMMENDATIONS feature.

(From OE-Core rev: 788d97b4f8e4452cef1ba6bb3e565e1b52dbb7de)

(From OE-Core rev: 85007cdb260bc77ac4ae5f914b0e3a4408606dfd)

(From OE-Core rev: c60f9c47380bb53bd2b54373b72f86006edf326e)

Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Backport from opkg_0.4.0.bb]
Signed-off-by: Quentin Schulz <quentin.schulz@streamunlimited.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Richard Purdie
a872c96192 scripts: Remove deprecated imp module usage
The imp module is deprecated, port the code over to use importlib
as recently done for bb.utils as well.

(From OE-Core rev: f3ba6cee5927c7475c3dc47658fa0548aec52115)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Robert Yang
4d63da3fad uboot-sign.bbclass: Remove tab indentations in python code
Use 4 spaces to replace a tab.

(From OE-Core rev: 2bf6098ac1cbbf7ed28522b7f7dce84c8341ce00)

Signed-off-by: Robert Yang <liezhi.yang@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-07-27 18:05:18 +01:00
Armin Kuster
a51a3b1c82 glib: Security fix for CVE-2019-9633
Source: gnome.org
MR: 98802
Type: Security Fix
Disposition: Backport from d553d92d6e
ChangeID: b73c332f27f47ddc1b1cfd7424f24778acc0c318
Description:

includes supporting patch.
Fixes CVE-2019-9633

(From OE-Core rev: 3ebf0fc043b6c9b6c2381dab893b54ebcb8ac13d)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
e2f3997a84 qemu: Security fixes CVE-2018-20815 CVE-2019-9824
Source: qemu.org
MR: 98623
Type: Security Fix
Disposition: Backport from qemu.org
ChangeID: 03b3f28e5860ef1cb9f58dce89f252bd7ed59f37
Description:

Fixes both CVE-2018-20815 and CVE-2019-9824

(From OE-Core rev: 5c45cd09fb29d4a1ebda6153a25f16e312049c44)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Ross Burton
45e662b445 glibc: backport CVE fixes
Backport the fixes for several CVEs from the 2.28 stable branch:
- CVE-2016-10739
- CVE-2018-19591

(From OE-Core rev: 950a60c0e4183037a807031ddc9167b1a81a5348)

Signed-off-by: Ross Burton <ross.burton@intel.com>
[Dropped CVE-2019-9169 as its in my contrib already]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Ross Burton
f749c69115 lighttpd: fix CVE-2019-11072
(From OE-Core rev: 0dbd16a40a28bb75962f38c6ce450c909c22ee79)

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-07-27 18:05:18 +01:00
Richard Purdie
573a935860 uninative: Update to 2.6 release
The 2.6 release contains both libcrypt.so.1 and libcrypt.so.2 which fixes
compatibility with recent fedora/suse releases.

The difference is one is built with obsolete APIs enabled and one disabled.
We now ship both in uninative for compatibility regardless of which distro
a binary is built on.

(From OE-Core rev: 352ab80333096df92ef0f4cd331baea98e71aa21)

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-07-27 18:05:18 +01:00
Richard Purdie
59400377bb uninative: Switch from bz2 to xz
(From OE-Core rev: 29fc9210b973be68de474e75068e4c72371afe5a)

(From OE-Core rev: 16785ebdc50f38ef4bc30d477a6833bdd4b541d1)

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-07-27 18:05:18 +01:00
Richard Purdie
594d5c20e2 yocto-uninative: Update to 2.5 release
This includes libstdc++ changes from gcc 9.X.

It also switches uninative from bz2 to xz compression.

(From OE-Core rev: 0497623882da714cbe098a4281982b7f9ce6030f)

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-07-27 18:05:18 +01:00
Armin Kuster
8e6d657a9c qemu: Security fix for CVE-2019-12155
Source: qemu.org
MR: 98382
Type: Security Fix
Disposition: Backport from https://git.qemu.org/?p=qemu.git;a=commit;h=d52680fc932efb8a2f334cc6993e705ed1e31e99
ChangeID: e4e5983ec1fa489eb8a0db08d1afa0606e59dde3
Description:

Fixes CVE-2019-12155
Affects: <= 4.0.0
(From OE-Core rev: 6045c57895cad301c5e3a94de740427343a08065)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
a43499cf8e Curl: Securiyt fix CVE-2019-5435 CVE-2019-5436
Source: CUrl.org
MR: 98455
Type: Security Fix
Disposition: Backport from https://curl.haxx.se/
ChangeID: 86b094a440ea473b114764e8d64df8142d561609
Description:

Fixes CVE-2019-5435 CVE-2019-5436

(From OE-Core rev: 9d5a7dd654a17b67f5cd8a73145e5f5299bfebcc)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
21188466bc wget: Security fix for CVE-2019-5953
Source: http://git.savannah.gnu.org/cgit/wget.git
MR: 89341
Type: Security Fix
Disposition: Backport from http://git.savannah.gnu.org/cgit/wget.git/commit/?id=692d5c5215de0db482c252492a92fc424cc6a97c
ChangeID: 1c19a2fd7ead88cc4ee92d425179d60d4635864b
Description:

Fixes CVE-2019-5953
Affects: < 1.20.1
(From OE-Core rev: c897b862c6cfaa341cc6155b2c9d98ea7ad02884)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
f2d2148adb glib-2.0: Security fix for CVE-2019-12450
Source: glib-2.0
MR: 98443
Type: Security Fix
Disposition: Backport from d8f8f4d637
ChangeID: 880b9b349cb8d82c7c1314a3657ec9094baba741
Description:

(From OE-Core rev: 71bfb9dfdc806e0e95f1302d0d6c3c751f03bb4b)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
abefff23cd Tar: Security fix CVE-2019-0023
Source: tar.git
MR: 97928
Type: Security Fix
Disposition: Backport from http://git.savannah.gnu.org/cgit/tar.git/commit/?id=cb07844454d8cc9fb21f53ace75975f91185a120
ChangeID: 7aee4c0daf8ce813242fe7b872583560a32bc4e3
Description:

Affects tar < 1.32

fixes CVE-2019-9923

(From OE-Core rev: fc77edc8245ab90eee1f1e857f470b6842dc256f)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
e53f7d53f4 qemu: Security fix for CVE-2018-19489
Source: Qemu.org
MR: 97453
Type: Security Fix
Disposition: Backport from git.qemu.org/gemu.git

ChangeID: a06fcb432d447cec2ed1caf112822dd1b4831ace
Description:

In the spirt of YP Compatible, sending change upstream.

fixes CVE CVE-2018-19489

Affect < = 4.0.0

(From OE-Core rev: 249447828cd1ed13f9faf19793208b503acf0d30)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Joshua DeWeese
f381b778ae wpa_supplicant: Changed systemd template units
I goofed up the scissor line on the last attempt. Not sure how much it matters,
but here it is correct this time.

Here it is, updated to work with wpa-supplicant_2.6.bb.

-- >8 --
https://www.freedesktop.org/software/systemd/man/systemd.unit.html#WantedBy=

When building root filesystems with any of the wpa_supplicant systemd
template service files enabled (current default is to have them disabled) the
systemd-native-fake script would not process the line:

Alias=multi-user.target.wants/wpa_supplicant@%i.service

appropriately due the the use of "%i."

According to the systemd documentation "WantedBy=foo.service in a service
bar.service is mostly equivalent to Alias=foo.service.wants/bar.service in
the same file." However, this is not really the intended purpose of install
Aliases.

All lines of the form:

Alias=multi-user.target.wants/*%i.service

Were replaced with the following lines:

WantedBy=multi-user.target

(From OE-Core rev: d05e98cdccbe36be8906c31249adeb0f0bc13ac5)

Signed-off-by: Joshua DeWeese <jdeweese@hennypenny.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-07-27 18:05:18 +01:00
Armin Kuster
47d06b4c85 go: update to minor update 1.11.10
Source: golang.org
MR: 97548,
Type: Security Fix
Disposition: Backport from https://github.com/golang/go/issues?q=milestone%3AGo1.11.5
ChangeID: 54377c454f038a41bf35dd447a784e3e66db6268
Description:

Bug fix updates only
https://golang.org/doc/devel/release.html#go1.11

Fixes:
Affects <= 1.11.6
CVE-2019-6486
CVE-2019-9741

(From OE-Core rev: 4e40da53851c550f1a38eff5737d4b69c8cd0afb)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Khem Raj
d89c54ee99 go: Upgrade 1.11.1 -> 1.11.4 minor release
Source: OpenEmbedded.org
MR: 98328, 98329, 98330
Type: Security Fix
Disposition: Backport from https://git.openembedded.org/openembedded-core/commit/meta/recipes-devtools/go?h=warrior&id=b964551a0d08aa921d4e0ceea2f1e28a5e83510e

ChangeID: 0b4cc69c357ba14c4e7a6c7ff926cfc6f09489b2
Description:
include:
CVE-2018-16873
CVE-2018-16874
CVE-2018-16875

Changes: https://golang.org/doc/devel/release.html#go1.11

(From OE-Core rev: 69964488112899371b7fd88b6e86e533d968b457)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Bug fix only update]
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Richard Purdie
94bacd598d go-crosssdk: PN should use SDK_SYS, not TARGET_ARCH
The crosssdk dependencies are handled using the virtual/ namespace so
this name doesn't matter in the general sense. We want to be able to provide
recipe maintainer information through overrides though, so this standardises it
with the behaviour from gcc-crosssdk and ensures the maintainer overrides work.

(From OE-Core rev: 025cd45d4129266d34a919573c02a8504f092c1b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Hongxu Jia
3975d95822 go-target.inc: fix go not found while multilib enabled
Go binaries were installed to ${libdir}/go/bin, and create symlink
in ${bindir}, while enabling multilib, libdir was extended (such as
/usr/lib64), but BASELIB was not (still /lib), so use
baselib (such as /lib64)) to replace

(From OE-Core rev: fca74928bf2002daf526ad8c1446c8d9ba891a78)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Ross Burton
fc06d9b06d cairo: fix CVE-2018-19876 CVE-2019-6461 CVE-2019-6462
Source: OpenEmbedded.org
MR: 97538, 97543
Type: Security Fix
Disposition: Backport from https://git.openembedded.org/openembedded-core/commit/meta/recipes-graphics/cairo?h=warrior&id=078e4d5c2114d942806cd0d5ad501805a011e841
ChangeID: fa8bdd44ad8613bb0679a1f6d9d670c3b47a0677
Description:

CVE-2018-19876 is a backport from upstream.

CVE-2019-6461 and CVE-2019-6462 are patches taken from Clear Linux.

(From OE-Core rev: 8b5e68afc9767d8b6b966503e9353cadafae9bfb)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Dropped CVE-2018-19876, not affected]
Issue was introduced in 1.15.8 by:
commit 721b7ea0a785afaa04b6da63f970c3c57666fdfe

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Chen Qi
f24f361404 cups: upgrade to 2.2.10
Source: OpenEmbedded.org
MR: 97351
Type: Security Fix
Disposition: Backport from https://git.openembedded.org/openembedded-core/commit/meta/recipes-extended/cups?h=warrior&id=fbe7a0c9bab7c9be7fd2c0da8b2af61e66de1ebd
ChangeID: fbe7a0c9bab7c9be7fd2c0da8b2af61e66de1ebd
Description:

(From OE-Core rev: 85541b9ae8cff770e2c20a9132c0867a25d190c2)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

CUPS 2.2.10 is a bug fix release that addresses issues in the scheduler, IPP Everywhere support, CUPS library, and USB printer support. Changes include:

    CVE-2018-4300: Linux session cookies used a predictable random number seed.
    The lpoptions command now works with IPP Everywhere printers that have not yet been added as local queues (Issue #5045)
    Added USB quirk rules (Issue #5395, Issue #5443)
    The generated PPD files for IPP Everywhere printers did not contain the cupsManualCopies keyword (Issue #5433)
    Kerberos credentials might be truncated (Issue #5435)
    The handling of MaxJobTime 0 did not match the documentation (Issue #5438)
    Incorporated the page accounting changes from CUPS 2.3 (Issue #5439)
    Fixed a bug adding a queue with the -E option (Issue #5440)
    Fixed a crash bug when mapping PPD duplex options to IPP attributes (rdar://46183976)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Chen Qi
a6ffadd75f cups: upgrade to 2.2.9
Source: OpenEmbedded.org
MR: 97351
Type: Integration
Disposition: Backport from https://git.openembedded.org/openembedded-core/commit/meta/recipes-extended/cups?h=warrior&id=ee57d79aec06e9b160cf2713636cda650ba68d5a
ChangeID: ee57d79aec06e9b160cf2713636cda650ba68d5a
Description:

The following patch is rebased.

  0001-don-t-try-to-run-generated-binaries.patch

(From OE-Core rev: 3c76b6660fc21a987e960dedb2631dcd27b87d07)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

CUPS 2.2.9 is a bug fix release that addresses issues in the scheduler,
IPP Everywhere support, CUPS library, and USB printer support. Changes include:

    Localization changes (Issue #5348, Issue #5362, Issue #5408)
    Documentation updates (Issue #5369)
    The lpadmin command would create a non-working printer in some error cases
    (Issue #5305)
    The scheduler would crash if an empty AccessLog directive was specified
    (Issue #5309)
    Fixed a regression in the changes to ippValidateAttribute (Issue #5322,
    Issue #5330)
    Fixed a crash bug in the Epson dot matrix driver (Issue #5323)
    Automatic debug logging of job errors did not work with systemd (Issue #5337)
    The web interface did not list the IPP Everywhere "driver" (Issue #5338)
    The IPP Everywhere "driver" now properly supports face-up printers
    (Issue #5345)
    Fixed some typos in the label printer drivers (Issue #5350)
    Multi-file jobs could get stuck if the backend failed (Issue #5359,
    Issue #5413)
    The IPP Everywhere "driver" no longer does local filtering when printing to
    a shared CUPS printer (Issue #5361)
    The lpadmin command now correctly reports IPP errors when configuring an
    IPP Everywhere printer (Issue #5370)
    Fixed some memory leaks discovered by Coverity (Issue #5375)
    The PPD compiler incorrectly terminated JCL options (Issue #5379)
    The cupstestppd utility did not generate errors for missing/mismatched
    CloseUI/JCLCloseUI keywords (Issue #5381)
    The scheduler now reports the actual location of the log file (Issue #5398)
    Added a USB quirk rule (Issue #5420)
    The scheduler was being backgrounded on macOS, causing applications to spin
    (rdar://40436080)
    The scheduler did not validate that required initial request attributes were
    in the operation group (rdar://41098178)
    Authentication in the web interface did not work on macOS (rdar://41444473)
    Fixed an issue with HTTP Digest authentication (rdar://41709086)
    The scheduler could crash when job history was purged (rdar://42198057)
    Dropped non-working RSS subscriptions UI from web interface templates.
    Fixed a memory leak for some IPP (extension) syntaxes.

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
4faf6e9e07 file: Multiple Secruity fixes
Source: https://github.com/file
MR: 97573, 97578, 97583, 97588
Type: Security Fix
Disposition: Backport from https://github.com/file/file
ChangeID: 159e532d518623f19ba777c8edc24d2dc7e3a4e9
Description:

CVE-2019-8905 is the same fix as CVE-2019-8907

Affects < 5.36.0

Fixes:
CVE-2019-8904
CVE-2019-8906
CVE-2019-8906
CVE-2019-8907

(From OE-Core rev: 3d7375eb2e459b891b4ba16c1fc486afbfecef2c)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
015bfc5971 sqlite3: Security fixes for CVE-2018-20505 & 20506
Source: sqlite.org
MR: 97484, 97490
Type: Security Fix
Disposition: Backport from sqilte.org
ChangeID: c6105b5d3ce4fb2c0f38c3cab745b769d2df38f5
Description:

Affects < 3.26.0
fixes:
CVE-2018-20505
CVE-2018-20506

(From OE-Core rev: e2f9efdc93068bce00b07021aa447f0b8786f69d)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
14d23c29a2 busybox: Security fixes for CVE-2018-20679 CVE-2019-5747
Source: busybox.git
MR: 97332
Type: Security Fix
Disposition: Backport from busybox.git
ChangeID: ec203c79e7322de1ed5721d08b6f59b1eca67c7d
Description:

Affects < 1.30.0

Fixes:
CVE-2018-20679
CVE-2019-5747

(From OE-Core rev: 7db146abad6d2bbb7d7a549e7091412e0e494db2)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Martin Jansa
016a0b830e python: add a fix for CVE-2019-9948 and CVE-2019-9636
Source: OpenEmbedded.org
MR: 98320, 98319
Type: Security Fix
Disposition: Backport from https://git.openembedded.org/openembedded-core/commit/meta/recipes-devtools/python/python_2.7.16.bb?id=9d23b982fa4e0290761b3d15f6959779fed72ad6
ChangeID: e79b6fe3b7b4253bf0d76b029070ae869d5234bd
Description:

Fixes:
CVE-2019-9948
CVE-2019-9636

CVE-2019-9940 is a dup of 9948 per python.org
CVE-2019-9947 appears to be a dup of 9940 per https://bugs.python.org/issue30458#msg295067

(From OE-Core rev: e7bdff05da6075efc21c5ac9492b06e481e5a239)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Minor clean up for thud]
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
81439e7d18 python: Update to 2.7.16
Source: Python.org
MR: 98220
Type: Security Fix & Integration
Disposition: Backport from python.org
ChangeID: 96fdd2dee9fe9317eb72584583ae0100c0be9eaa
Description:

Bug fix update per Python.org
https://www.python.org/downloads/release/python-2716/

drop backported patch

License-update: copyright years

Helps prepare Thud for 2.7 EOL support moving forward.

Update includes:
CVE-CVE-2019-5010
06b15424b0

(From OE-Core rev: 592e7de7f5208940fbcfcad3371f93f8ce2ca738)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
f2961d88af qemu: Several CVE fixes
Source: qemu.org
MR: 97258, 97342, 97438, 97443
Type: Security Fix
Disposition: Backport from git.qemu.org/qemu.git
ChangeID: a5e9fd03ca5bebc880dcc3c4567e10a9ae47dba5
Description:

These issues affect qemu < 3.1.0

Fixes:
CVE-2018-16867
CVE-2018-16872
CVE-2018-18849
CVE-2018-19364

(From OE-Core rev: e3dfe53a334cd952cc2194fd3baad6d082659b7e)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
cd7f7bf385 elfutils: Security fixes CVE-2019-7146,7149,7150
Source: http://sourceware.org/git/elfutils.git
MR: 97563, 97568, 97558
Type: Security Fix
Disposition: Backport from http://sourceware.org/git/elfutils.git
ChangeID: 6183c2a25d5e32eec1846a428dd165e1de659f24
Description:

Affects <= 0.175

Fixes:
CVE-2019-7146
CVE-2019-7149
CVE-2019-7150

(From OE-Core rev: ac5dca7dc68519b36aa976dfd25d8efa76af74ec)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:17 +01:00
Armin Kuster
2c225a199d glibc: Security fix CVE-2019-9169
(From OE-Core rev: 3103f407ff0c579c7e5887fd925d52d5c92c83f9)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:17 +01:00
Scott Rifenbark
a7ffffd440 ref-manual: Fixed typo for BBMULTICONFIG variable.
There was a typo in the BBMULTICONFIG variable description.
It appeared as "BBMULTIFONFIG". I fixed it.

(From yocto-docs rev: 2ef4ab6d93ccb6208169db9757f9ca2c2551a6d2)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-18 12:17:05 +01:00
Scott Rifenbark
57d351b8e3 bsp-guide: Fixed build error.
I accidently submitted this with a build error.

(From yocto-docs rev: 44b659aa7fa1dca96cb38cd272ea96e20b94aadb)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-18 12:17:05 +01:00
Scott Rifenbark
4a8d999249 bsp-guide: Minor edits to Configuring Kernel section.
(From yocto-docs rev: de86d2725fc70e5805727ad1eca1a4cebd14228d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-18 12:17:05 +01:00
Scott Rifenbark
ebfe32a474 bsp.xml: Updated some output examples and the BSP structure
I ran fresh commands for several output examples where
repositories are cloned.  I also dumped the really detailed
listing of the Raspberry Pi BSP.  Rather, I provided a link
to the layer itself and sent the reader there to do their
own exploring.

(From yocto-docs rev: d6976296f237420cae7c9f157a4e3a868b0ac588)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-18 12:17:05 +01:00
Scott Rifenbark
90d98a4c9d brief-yoctoprojectqs: Updated examples.
I ran the examples against the latest poky repo to get updated
example output.

(From yocto-docs rev: c2b272f10b731e744f0ecddab6ad37dc13579dcf)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-18 12:17:05 +01:00
Scott Rifenbark
f8e62cc5e1 Documentation: Prepare for 2.6.3 release.
poky.ent - updated variables
mega-manual.sed - updated release string
<manual>.xml - updated manual revision history tables

(From yocto-docs rev: 6fd8afecc73b6734f9beb02e7ae3cea4d1148177)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-18 12:17:05 +01:00
Mark Hatle
2dd610cc27 bitbake: gitsm: Add need_update method to determine when we are going to a new SRCREV
If the system had previously fetched a source repository for use by gitsm,
and then the SRCREV was updated and the new commit already existed, the system
would not re-evaluate the submodules and update them accordingly.

The cause of this issue was that need_update was being used, unmodified, from
the base git fetcher.  It did not have any knowledge, nor did it care if we
were moving commits and needed to re-evaluate what was happening due to this
switch.

To fix the issue, during the download process we add all processed (by
gitsm) srcrevs to the git config file, as bitbake.srcrev.  This allows us to
use a new need_update function that not only checks if the git commit is
present, but if we have previously processed this commit to ensure all of the
submodule components are also present.

This approach is used, instead of iterating over the submodules in need_update
to avoid a potential race condition that has affected us in the past.  The
need_update is called only with the parent locking.  Any time we need to dive
into the submodules, we need to lock, and unlock them, at each stage.  This
opens the possibility of errors in either the code, or unintended race
conditions with rm_work.

This issue was discovered by William A. Kennington III <wak@google.com>.  The
included test case was also written by him, and included unmodified.

(Bitbake rev: 4ce92f43eeac6a4bfd06e8567fa6891614b5b3b0)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-18 11:31:10 +01:00
Mark Hatle
1f82ca6713 bitbake: gitsm: Fix a bug where the wrong path was used for the submodule init
Because we are trying to avoid network activity and use our own fetcher,
the system emulates the behavior of 'git submodule init'.

git submodule init uses the .gitmodules file, where typically the module
name and path are the same.  However, in this case the module name and
path (in the tree) were different. i.e.:

[submodule "edgelet/hsm-sys/azure-iot-hsm-c/deps/azure-c-shared-utility"]
        path = edgelet/hsm-sys/azure-iot-hsm-c/deps/c-shared
        url = https://github.com/Azure/azure-c-shared-utility.git

Previously the code assumed the 'path' was both the checkout location
under .git/modules, as well as the path to extract the components.  This
proved to be incorrect as the .git/modules path needs to match the submodule
'name'.  This causes the components that were fetched to be initialized in
the wrong location, which later caused the 'git submodule update' process to
skip not properly initialized modules.

A test case was added for this specific case to ensure a regression does
not appear in the future.

(Bitbake rev: ffd7ed530a17d22df576d986ac78428a6979e79c)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-18 11:31:10 +01:00
Alexander Kanavin
b035b4dcee bitbake: bitbake: fix version comparison when one of the versions ends in .
Previously, this would happen:

======================================================================
ERROR: test_vercmpstring (bb.tests.utils.VerCmpString)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/alexander/development/poky/bitbake/lib/bb/tests/utils.py", line 45, in test_vercmpstring
    result = bb.utils.vercmp_string('1.', '1.1')
  File "/home/alexander/development/poky/bitbake/lib/bb/utils.py", line 143, in vercmp_string
    return vercmp(ta, tb)
  File "/home/alexander/development/poky/bitbake/lib/bb/utils.py", line 135, in vercmp
    r = vercmp_part(va, vb)
  File "/home/alexander/development/poky/bitbake/lib/bb/utils.py", line 124, in vercmp_part
    elif ca < cb:
TypeError: '<' not supported between instances of 'NoneType' and 'int'

----------------------------------------------------------------------

(Bitbake rev: bd953d56d007a8bfa5ecb6e753da4abfb035f9f2)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-15 11:06:38 +01:00
Joshua Watt
a358cc2010 bitbake: bitbake: cooker: Rename __depends in all multiconfigs
The renaming of the __depends variable to __base_depends and file
watches needs to occurs for all multiconfigs, not just the base config.
Failing to do this for all multiconfigs will result in a huge increase
in the size of the parsing cache (about 5x for a single mulitconfig)
because all multiconfig caches will still depend on the base config
files. This will also seen a similar jump in the amount of time required
to load the parsing cache from memory, both because the cache is larger
and because of explosion of additional existence checks that must be
done for the base files.

[YOCTO #13359]

(Bitbake rev: da5d1560d4ad1c735f6166a5d9ce94f36c94186b)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-11 13:28:21 +01:00
David Reyna
14040a2613 bitbake: toaster: Fix Thud Bitbake release metadata
Fix the Bitbake version ID for Thud (1.40).

[YOCTO #13356]

(Bitbake rev: f8a23ad4f8f0336470a5d5b074b7a2d02ec94631)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-10 09:44:41 +01:00
Richard Purdie
cdd4a52578 core-image-sato-sdk-ptest: Tweak size to stay within 4GB limit
Adding the valgrind debug symbol information caused the genericx86-64 image to
overflow the 4GB boundary. Tweak the sizes to avoid autobuilder failures yet
leave enough space all the tests still run successfully.

(From OE-Core rev: f162d5bfe6eaeca24f441c83c87252c8d05744fc)

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-05-22 00:31:49 +01:00
Richard Purdie
ef1b4d1310 core-image-sato-sdk-ptest: Try and keep image below 4GB limit
(From OE-Core rev: 22f4d5218ad016442b8511e9ccae649faf79152c)

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-05-22 00:31:49 +01:00
Chee Yang Lee
34503c75b0 wic/bootimg-efi: replace hardcoded volume name with label
volume name should refer to --label in .wks.
Replace the hardcoded volume name  with label.
set "ESP" as default name when no lable specified.

(From OE-Core rev: becb0a3f855eff7700fa284a0a7981d6a260a1c5)

Signed-off-by: Chee Yang Lee <chee.yang.lee@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-05-22 00:31:49 +01:00
Joshua Watt
2d1077bb4f resulttool: Add option to dump all ptest logs
Adds an option to dump all the ptest logs to individual files in a
specified directory. If multiple test runs are present, the
'--prepend-run' argument will create separate directories for each test
run under the target directory and put the logs there to prevent each
test run from clobbering the others.

[YOCTO #13331]

(From OE-Core rev: 7d0dfd6ada9b2fdf0c14833c388730ffc887af49)

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-05-22 00:31:49 +01:00
Ross Burton
c965cb80ed wic: change expand behaviour to match docs
The documentation says that --expand takes a comma-separated list of
partition:size pairs, but the code was splitting on hyphens.

Hyphens are not a transitional separator for a list of items, so change the code
to reflect the documentation.

(From OE-Core rev: 8f6d55056a1c6f9fd00b09a8e91b3e888750e793)

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-05-22 00:31:49 +01:00
Alex Kiernan
fa3daedf7c recipetool: fix unbound variable when fixed SRCREV can't be found
If attempting to find a fixed SRCREV fails because the directory doesn't exit,
avoid failing with:

  Traceback (most recent call last):
    File "/home/vagrant/poky/scripts/recipetool", line 121, in <module>
      ret = main()
    File "/home/vagrant/poky/scripts/recipetool", line 110, in main
      ret = args.func(args)
    File "/home/vagrant/poky/scripts/lib/recipetool/create.py", line 707, in create_recipe
      srcrev = stdout.rstrip()
  UnboundLocalError: local variable 'stdout' referenced before assignment

Fixes: 000480c42797 ("recipetool / devtool: set a fixed SRCREV by default when fetching from git")
(From OE-Core rev: 7dbaaf8a823527a3523187327f5b0885fc682510)

Signed-off-by: Alex Kiernan <alex.kiernan@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-05-22 00:31:49 +01:00
sangeeta jain
a005b1897a resulttool/manualexecution: Enable test case configuration option
Current manualexecution required user to exceute all test cases defined inside a "modulename.json" file in oeqa/manual

There are cases when all test cases all not required to run for a module on specific DUT.

Enable manualexecution to have the optional feature where it will use pre-defined json format test case configuration file
where user will be able to select test cases from the "modulename.json" instead of running all of them. This will help
in reducing testing time and reporting unneccesary skip or failures.

Example pre-defined json format test case configuration file (for build-applince):

{
    "testcases" : [
        "build-appliance.build-appliance.Create_core-image-sato-sdk_using_build_appliance",
        "build-appliance.build-appliance.Build_a_image_without_error_(added_recipe)"
    ]
}

(From OE-Core rev: 1d3696bd3b6d05b91c119ade79c40510d1426a56)

Signed-off-by: sangeeta jain <sangeeta.jain@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-05-22 00:31:49 +01:00
Richard Purdie
ee7cffefbf resultool/resultutils: Fix module import error
Fix AttributeError: module 'urllib' has no attribute 'request' when
using remote http urls.

(From OE-Core rev: 170a233452539b0b6b8fc4db50cf69d848d1ac5b)

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-05-22 00:31:49 +01:00
Joshua Watt
02d88de4b5 resulttool: Add log subcommand
Adds a subcommand for dumping various logs from test results

(From OE-Core rev: 7bfb8bef5ec9c4137f439b35c56856697c6b79a4)

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-05-22 00:31:49 +01:00
Joshua Watt
35fa3e7e18 resulttool: Load results from URL
Adds support for resulttool to load JSON files directly from a http://
or https:// URL

(From OE-Core rev: 3e48404afe27c93fa6ffbd8d66bc52dcd6216005)

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-05-22 00:31:49 +01:00
Yeoh Ee Peng
47d3b81ad3 resulttool/manualexecution: Refactor and remove duplicate code
Remove duplicate codes. Replace unnecessary class variables with
local variables. Rename variables and arguments with simple and
standard name.

(From OE-Core rev: 3dae8d5a02c29523dc640bee31a362f46ffde6ca)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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-05-22 00:31:49 +01:00
Yeoh Ee Peng
559176c191 resulttool/manualexecution: Enable creation of configuration option file
Allow the creation of configuration option file based on user inputs.
Where this configuration option file will be used by the the manual
execution to display options for configuration rather than user
need to inputs configuration manually.

(From OE-Core rev: 17fd507e218bfd0f6745737bcd1a170d82e712e5)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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-05-22 00:31:49 +01:00
Hongxu Jia
87661cbe0c oeqa/targetcontrol.py: fix qemuparams not work in runqemu with launch_cmd
As runqemu with launch_cmd means directly run the command, don't need set
rootfs or env vars.

Since commit [a847dd7202 runqemu: Let qemuparams override default settings]
applied in oe-core, if launch_cmd contains "qemuparams='***'", it does not
work, which is overridden by latter qemuparams="-serial tcp:127.0.0.1" in
QemuRunner.launch();

So we set qemuparams as a parameter in runqemu, the fix makes it work

(From OE-Core rev: 7d4450d373a297f246b8c3708fd7d2cafadd3ae9)

Signed-off-by: Hongxu Jia <hongxu.jia@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-05-22 00:31:49 +01:00
Richard Purdie
afb311001c oeqa/target/ssh: Replace suggogatepass with ignoring errors
We continued to see encoding problems with ssh commands run in oeqa. After much
research the conclusion was we should use ignore the errors since some occasional bad
locale encoding is better than the unicode decoding issues we were seeing which crashed
large parts of tests.

(From OE-Core rev: cf4d3230ac439118a2ad3c381bac38e11b3e14e8)

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-05-22 00:31:49 +01:00
Mikko Rapeli
29e2a3f5e8 oeqa/sdk: use bash to execute SDK test commands
The commands only work with with bash. If /bin/sh is
dash like in Debian, the command execution fails with
errors like:

Standard Output: /bin/sh: 5: export: --sysroot: bad variable name

and all SDK tests fail.

(From OE-Core rev: 274c22a1fd95418e4afb6633bb4b2e6debc4d7ea)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.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-05-22 00:31:49 +01:00
Richard Purdie
8356d0f38c oeqa/concurrenttest: Patch subunit module to handle classSetup failures
Currently setupClass errors were not being mapped back to the failing tests
and they were hence being marked as UNKNOWN and the test statistics were
inaccurate.

This is because whilst the errors were being encoded into the test results
stream, the decoder doesn't cope with an error outside a testStart event.

We patch in an addError handler to the outsideTest parser so that this
does get handled in a way similar to the non-concurrent case.

It would be nice if we didn't have to do this but there doesn't seem
to be any other way to fix this other than forking subunit.

We also make a minor change so another of our changes can cope with
tests without a start time.

(From OE-Core rev: 6f58c301e2d3463848df35c5b5c55d167ab34035)

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-05-22 00:31:49 +01:00
Richard Purdie
63bea82d93 oeqa/runner: Fix subunit setupClass/setupModule failure handling
The string format for subunit setupClass/setupModule failures is slightly
different, tweak the regex to correctly handle both cases.

(From OE-Core rev: f1009d6d44097a3f140e2f8679e9184031b10b44)

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-05-22 00:31:49 +01:00
Richard Purdie
7b1cbc340b oeqa/core/runner: Handle unexpectedSucesses
Instead of showing:
RESULTS - ptest.PtestRunnerTest.test_ptestrunner - Testcase 1600: UNKNOWN (32.30s)

map unexpectedSuccesses to PASSED and improve the way they're displayed. We
expect/allow ptest runner to fail but if it passes we should handle it correctly.

(From OE-Core rev: 3c164b94fbb0efc513ee747cccd571a73688b541)

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-05-22 00:31:49 +01:00
Richard Purdie
2f91565eab oeqa/ssh: Avoid unicode decode exceptions
This code really needs to be rewritten to not split potential
multibyte characters, for now work around it to avoid exceptions like:

  File "/home/pokybuild/yocto-worker/qa-extras2/build/meta/lib/oeqa/core/target/ssh.py", line 211, in run
    data = reader.read(1024, 4096)
  File "/usr/lib64/python3.6/codecs.py", line 503, in read
    newchars, decodedbytes = self.decode(data, self.errors)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 0: invalid start byte

(From OE-Core rev: 53df0c93c46b6ab1366df44bd9927dc6f8699b29)

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-05-22 00:31:49 +01:00
Mardegan, Alberto
2ba5557e0b oeqa/core/runner: dump stdout and stderr of each test case
Some CI pipelines might perform further processing of the test output
(for instance, to plot some metrics into a chart). However, Since `thud`
we switched away from the XML-based jUnit reporting, and at the same
time we lost the ability of collecting the stdout and stderr of the
various tests.

We now restore this functionality by adding `stdout` and `stderr` keys
to the JSON reports. This behavior is off by default; in order to enable
it, one must set the `TESTREPORT_FULLLOGS` variable in the bitbake
configuration.

(From OE-Core rev: 68919826fe4d4db4582223569c5a939a9c2f9c72)

Signed-off-by: Alberto Mardegan <amardegan@luxoft.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-05-22 00:31:49 +01:00
Richard Purdie
bb3a8929c7 oeqa/utils/qemurunner: Fix typo in previous commit
(From OE-Core rev: 909baeb5901f7f212fbdd6c358c5ada6fe25e091)

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-05-22 00:31:48 +01:00
Richard Purdie
a01c029898 oeqa/qemurunner: Dont mix binary and non-binary strings
self.msg is a str(), bootlog is b'' so this code clearly doesn't work. Add
in a decode since its being used as a string.

(From OE-Core rev: 5685a349eb471f4c8c9dcc2dc3b34f20369920bb)

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-05-22 00:31:48 +01:00
Ming Liu
cba849c25b opkg-utils: backport a patch to fix a sstate timestamp issue
When using sstate, two parallel builds can produce two packages
with the same mtime but different checksums. When later one of
those two builds fetches the others ipk, the package index does
not get udpated properly (since mtime matches). This ends up with
messages such as:
  Downloading file:/../tmp/work/../image/...ipk.
  Removing corrupt package file /../sysroot/../var/cache/opkg/volatile/...ipk

However, in that case, ctime is different. Use ctime instead of
mtime to prevent failures like this.

(From OE-Core rev: 6351f52609af51055786f7b3b24aee722b4dcea4)

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:48 +01:00
Andreas Müller
522b0d8615 adwaita-icon-theme: do not delete symbolic svg but pack them in ${PN}-symbolic
This fixes:
* gtk-icon-browser: for symbolic view almost all icons were missing
* xfce's thunar: 'home' and 'up' icons were missing. Had a long discussion with
  XFCE-people [1] and asked here [2].

How could I overlook the most obvious...

[1] https://bugzilla.xfce.org/show_bug.cgi?id=14443
[2] http://lists.openembedded.org/pipermail/openembedded-core/2018-November/275815.html

(From OE-Core rev: 0911e7d2f5443210b594a198ada8465af7a2fc78)

(From OE-Core rev: 9c63433010aae6891149a7605a637bee879dc4ef)

Signed-off-by: Andreas Müller <schnitzeltony@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-05-22 00:31:48 +01:00
Chen Qi
a84ff1c062 runqemu: do not check return code of tput
The subprocess.run was replaced by subprocess.check_call because
of compatibility support down to python 3.4. But we really don't
care about whether that command succeeds. Some user reports that
in some tmux environment, this command fails and gives some
unpleasant traceback output. So we use 'call' instead of 'check_call'
to avoid such problem.

(From OE-Core rev: ced3c75fa75d9b9373d695d9204b197b98ea3bd9)

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-05-22 00:31:48 +01:00
Hongxu Jia
dfc74324c9 image_types.bbclass: fix a race between the ubi and ubifs FSTYPES
The ubi, ubifs and multiubi FSTYPES calls `mkfs.ubifs' to create UBIFS
images.

In do_image_ubi, $vname is empty, the name of UBIFS image conflicts with
the one in do_image_ubifs, and it's a race risk.
[do_image_ubi]
mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${IMGDEPLOYDIR}/${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubifs ${mkubifs_args}
[do_image_ubi]

[do_image_ubifs]
mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.ubifs ${MKUBIFS_ARGS}
[do_image_ubifs]

In do_image_multiubi, $vname is not empty, the UBIFS image name does
not conflict with others.

So do not call mkfs.ubifs in do_image_ubi and depend on do_image_ubifs
to create UBIFS images.

The fix does not affect do_image_multiubi which still call mkfs.ubifs to
create multiple UBIFS images and symlinks.

[YOCTO #13272]

(From OE-Core rev: 5e900f2c9319843c8905713dd3dd12a1ad435976)

Signed-off-by: Hongxu Jia <hongxu.jia@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-05-22 00:31:48 +01:00
Richard Purdie
cd7114274d e2fsprogs: Skip slow ptest tests
The slow tests run unreliably with our current setup/infrsstructure/timeouts.

There are only five slow ones and having the other ~250 run reliably without timeouts
is the priority right now. We can revisit the slow tests at some later date if wanted.

(From OE-Core rev: ae87e2fab31590aaf8c2f0672d327d633f896cbd)

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-05-22 00:31:48 +01:00
Changqing Li
0e354a5184 ruby: add ptest
(From OE-Core rev: ed650ca30379279f6a0f1e8f9f728cc542504732)

Signed-off-by: Changqing Li <changqing.li@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-05-22 00:31:48 +01:00
Changqing Li
6e17a309e2 ruby: make ext module fiddle can compile success
ext module fiddle depend on libffi, in ruby source tree,
there is in internal libffi in case target platfrom don't
install libffi, but autotools.bbclass delete configure
under libffi and not run autoreconf to regenerate one.so
we met this error:
ruby-2.5.3/ext/fiddle/libffi-3.2.1/configure: No such file or directory

the fix is add depend and extra_oeconf to use libffi in the system

(From OE-Core rev: 3a0272bab546a4b47feab117713e32873419bbe7)

Signed-off-by: Changqing Li <changqing.li@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-05-22 00:31:48 +01:00
Grandbois, Brett
0e159278a1 ruby: remove CVE-2018-1000073.patch as already fixed
rubygems 2.7.6 which is in ruby 2.5.3 has this fix and as currently
applied all gem extraction fails as the realpath check is done against
the full path including the file to be extracted which will always fail
as the file hasnt been extracted yet

(From OE-Core rev: a9cc1b3f9a684c14f02b06226693b023adc3e609)

Signed-off-by: Brett Grandbois <brett.grandbois@opengear.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-05-22 00:31:48 +01:00
Manjukumar Matha
589437ee23 ruby.inc: Add dependency on readline-native
Add dependency on readline-native to fix the following issue

uninitialized constant Logfile
|       Check ext/fiddle/mkmf.log for more details.
| readline:
|       Could not be configured. It will not be installed.
|
build/tmp/work/x86_64-linux/ruby-native/2.5.1-r0/ruby-2.5.1/ext/readline/extconf.rb:62:
Neither readline nor libedit was found
|       Check ext/readline/mkmf.log for more details.
| *** Fix the problems, then remove these directories and try again if
you want.

(From OE-Core rev: bddf9bec4913fb8eabe6f2995020bf06cc7f890a)

Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.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-05-22 00:31:48 +01:00
Lei Yang
70846334d1 recipetool: add missed module
When I use recipetool to add a new recipe, it says:

[snip]
sys.exit(14)
NameError: name 'sys' is not defined
[snip]

(From OE-Core rev: 4cf8d01d0066699f39162e25d1cdc847c0175473)

Signed-off-by: Lei Yang <Lei.Yang@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-05-22 00:31:48 +01:00
Richard Purdie
3c0cf0ecb2 pseudo: Update to gain key bugfixes
Newer distros are using new versions of glibc and coreutils which use the new glibc
renameat2 function. We need to intercept this for correct functioning of pseudo. This
is essential to ensure new distros continue to work with the project.

Also, this version has a fix for path/inode cross corruption problems which
may explain our mysterious locale permissions issues.

Many thanks to Otavio and Peter Seebach for the help in figuring this out and
fixing it.

(From OE-Core rev: b768cfb6c849cbbc2d6e2d03974af009ca5340de)

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-05-22 00:31:48 +01:00
Yeoh Ee Peng
3cbf1342dd resulttool/manualexecution: Enable configuration options selection
Current manualexecution required user to input configuration manually
where there were inconsistent inputs and human typo issues.

Enable manualexecution to have the optional feature where it
will use pre-compiled configuration options file where user will
be able to select configuration from the pre-compiled list instead
of manual key-in the configuration. This will eliminate human error.

Expect the pre-compiled configuration options file in json format below

{
    "bsps-hw": {
        "IMAGE_BASENAME": {
            "1": "core-image-sato-sdk"
        },
        "MACHINE": {
            "1": "beaglebone-yocto",
            "2": "edgerouter",
            "3": "mpc8315e-rdb",
            "4": "genericx86",
            "5": "genericx86-64"
        }
    },
    "bsps-qemu": {
        "IMAGE_BASENAME": {
            "1": "core-image-sato-sdk"
        },
        "MACHINE": {
            "1": "qemuarm",
            "2": "qemuarm64",
            "3": "qemumips",
            "4": "qemumips64",
            "5": "qemuppc",
            "6": "qemux86",
            "7": "qemux86-64"
        }
    }
}

(From OE-Core rev: 4c6bac8453768cab9c416c012019ead5edeaafa5)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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-05-22 00:31:48 +01:00
Bruce Ashfield
2acd92292d linux-yocto/4.18: update to v4.18.33
Integrating Paul Gortmaker's -stable ports to 4.18 which comprise the
following commits:

   56f9fe35a4c5 Linux 4.18.33
   bf44ff79b855 net: hns: Fixes the missing put_device in positive leg for roce reset
   81614c514f4e mm: Use fixed constant in page_frag_alloc instead of size + 1
   035b5a7a3e3f ipvs: fix warning on unused variable
   58ab04e46d92 intel_th: gth: Fix an off-by-one in output unassigning
   8cb600d53c6c ARM: dts: exynos: Fix max voltage for buck8 regulator on Odroid XU3/XU4
   f11b815f39bf s390/setup: fix boot crash for machine without EDAT-1
   4059d23a36a6 KVM: nVMX: Ignore limit checks on VMX instructions using flat segments
   d94637dc73e5 KVM: nVMX: Apply addr size mask to effective address for VMX instructions
   ee356457f2a3 KVM: nVMX: Sign extend displacements of VMX instr's mem operands
   b4485d9eb039 KVM: x86/mmu: Do not cache MMIO accesses while memslots are in flux
   fe7d69927661 KVM: x86/mmu: Detect MMIO generation wrap in any address space
   c34cae89374b KVM: Call kvm_arch_memslots_updated() before updating memslots
   9fb8b858d552 drm/amd/display: don't call dm_pp_ function from an fpu block
   d4302b79ffbd drm/amd/powerplay: correct power reading on fiji
   5f8c51055244 drm/radeon/evergreen_cs: fix missing break in switch statement
   3fc39cdce701 media: imx: csi: Stop upstream before disabling IDMA channel
   5c008f7971b8 media: imx: csi: Disable CSI immediately after last EOF
   74a5ff7db3b2 media: uvcvideo: Avoid NULL pointer dereference at the end of streaming
   142a9bd66395 media: lgdt330x: fix lock status reporting
   465204a0c772 media: imx: prpencvf: Stop upstream before disabling IDMA channel
   42a2c1a40db0 rcu: Do RCU GP kthread self-wakeup from softirq and interrupt
   f9480ca4fb29 tpm: Unify the send callback behaviour
   5f28509f81ad tpm/tpm_crb: Avoid unaligned reads in crb_recv()
   ea37270d4c87 md: Fix failed allocation of md_register_thread
   bd77b69a20ba perf intel-pt: Fix divide by zero when TSC is not available
   c9a63c17458f perf/x86/intel/uncore: Fix client IMC events return huge result
   63a25bdd4227 perf intel-pt: Fix overlap calculation for padding
   66a57e3b95b5 perf auxtrace: Define auxtrace record alignment
   76650254e18e perf intel-pt: Fix CYC timestamp calculation after OVF
   274ef4840d79 x86/unwind/orc: Fix ORC unwind table alignment
   3928a903e185 vt: perform safe console erase in the right order
   645a7ca69855 stable-kernel-rules.rst: add link to networking patch queue
   1c14622adb15 bcache: never writeback a discard operation
   261aad0b3ea7 PM / wakeup: Rework wakeup source timer cancellation
   ee610ce938cd svcrpc: fix UDP on servers with lots of threads
   0530b66bfd53 NFSv4.1: Reinitialise sequence results before retransmitting a request
   9a1d7090b36e nfsd: fix wrong check in write_v4_end_grace()
   e7edb30fd6b7 nfsd: fix memory corruption caused by readdir
   672f2e600d21 nfsd: fix performance-limiting session calculation
   624865483faa NFS: Don't recoalesce on error in nfs_pageio_complete_mirror()
   2b5fef7c9927 NFS: Fix an I/O request leakage in nfs_do_recoalesce
   63adecfe53e9 NFS: Fix I/O request leakages
   0b0545dd7e6e cpcap-charger: generate events for userspace
   8f27f8570fa7 mfd: sm501: Fix potential NULL pointer dereference
   f964d308797d dm integrity: limit the rate of error messages
   1ed46c0c4f65 dm: fix to_sector() for 32bit
   ea77e999f649 ipmi_si: fix use-after-free of resource->name
   5a0bc68e9a0d arm64: KVM: Fix architecturally invalid reset value for FPEXC32_EL2
   9dc4a1a6447e arm64: debug: Ensure debug handlers check triggering exception level
   c33e96f8ddb2 arm64: Fix HCR.TGE status for NMI contexts
   bb7edb8a409a ARM: s3c24xx: Fix boolean expressions in osiris_dvs_notify
   e8d7edd36a92 powerpc/traps: Fix the message printed when stack overflows
   fbea0579063f powerpc/hugetlb: Don't do runtime allocation of 16G pages in LPAR configuration
   88d0042148f0 powerpc/ptrace: Simplify vr_get/set() to avoid GCC warning
   b0fc119506bf powerpc: Fix 32-bit KVM-PR lockup and host crash with MacOS guest
   6e975dad4a8e powerpc/powernv: Don't reprogram SLW image on every KVM guest entry/exit
   fcf2d15a0a32 powerpc/83xx: Also save/restore SPRG4-7 during suspend
   87481c65c805 powerpc/powernv: Make opal log only readable by root
   12319dcc9a80 powerpc/wii: properly disable use of BATs when requested.
   be851891b1c9 powerpc/32: Clear on-stack exception marker upon exception return
   24d0b4b51dd1 security/selinux: fix SECURITY_LSM_NATIVE_LABELS on reused superblock
   3ea70bdc892f selinux: add the missing walk_size + len check in selinux_sctp_bind_connect
   00d550a195f2 jbd2: fix compile warning when using JBUFFER_TRACE
   b18848cc624a jbd2: clear dirty flag when revoking a buffer from an older transaction
   108ba9f62780 serial: 8250_pci: Have ACCES cards that use the four port Pericom PI7C9X7954 chip use the pci_pericom_setup()
   a79bc3e5fb7c serial: 8250_pci: Fix number of ports for ACCES serial cards
   78e39f8bb56e serial: 8250_of: assume reg-shift of 2 for mrvl,mmp-uart
   04eb2755b4e9 serial: uartps: Fix stuck ISR if RX disabled with non-empty FIFO
   9007ccc01a91 bpf: only test gso type on gso packets
   ef5b4e1f5735 drm/i915: Relax mmap VMA check
   23ca68189393 can: flexcan: FLEXCAN_IFLAG_MB: add () around macro argument
   8529fecb481e gpio: pca953x: Fix dereference of irq data in shutdown
   31e04ac8a8ba media: i2c: ov5640: Fix post-reset delay
   1855d8c9e6c4 i2c: tegra: fix maximum transfer size
   8bc3433b216d parport_pc: fix find_superio io compare code, should use equal test.
   2c0542dbb267 intel_th: Don't reference unassigned outputs
   c64422307c34 device property: Fix the length used in PROPERTY_ENTRY_STRING()
   c88db9c0d127 kernel/sysctl.c: add missing range check in do_proc_dointvec_minmax_conv
   5374924c9332 mm/memory.c: do_fault: avoid usage of stale vm_area_struct
   db693b432779 mm/vmalloc: fix size check for remap_vmalloc_range_partial()
   1811478753e3 mm: hwpoison: fix thp split handing in soft_offline_in_use_page()
   492ea426ddce dmaengine: usb-dmac: Make DMAC system sleep callbacks explicit
   f1bb88d5cee1 usb: chipidea: tegra: Fix missed ci_hdrc_remove_device()
   9377917b523a clk: ingenic: Fix doc of ingenic_cgu_div_info
   f0412cfc06af clk: ingenic: Fix round_rate misbehaving with non-integer dividers
   b6b4011ce7d1 clk: samsung: exynos5: Fix kfree() of const memory on setting driver_override
   715fe29adfd1 clk: samsung: exynos5: Fix possible NULL pointer exception on platform_device_alloc() failure
   eb9aa4ebf835 clk: clk-twl6040: Fix imprecise external abort for pdmclk
   917fa829bbf5 clk: uniphier: Fix update register for CPU-gear
   80d526380136 ext2: Fix underflow in ext2_max_size()
   bbf30be02326 cxl: Wrap iterations over afu slices inside 'afu_list_lock'
   94f31d712f26 IB/hfi1: Close race condition on user context disable and close
   a80eceacf85c PCI: dwc: skip MSI init if MSIs have been explicitly disabled
   084005af4966 PCI/ASPM: Use LTR if already enabled by platform
   821934eb7e75 ext4: fix crash during online resizing
   01767d409537 ext4: add mask of ext4 flags to swap
   f21830e67d5d ext4: update quota information while swapping boot loader inode
   4de71f7481a7 ext4: cleanup pagecache before swap i_data
   4821bf3c61bb ext4: fix check of inode in swap_inode_boot_loader
   3cd2f1153739 cpufreq: pxa2xx: remove incorrect __init annotation
   dc4443928ee2 cpufreq: tegra124: add missing of_node_put()
   a0e15a764318 cpufreq: kryo: Release OPP tables on module removal
   d28564a8e60e x86/kprobes: Prohibit probing on optprobe template code
   56955276ba2e irqchip/brcmstb-l2: Use _irqsave locking variants in non-interrupt code
   14dda7949f82 irqchip/gic-v3-its: Avoid parsing _indirect_ twice for Device table
   3a8560230470 libertas_tf: don't set URB_ZERO_PACKET on IN USB transfer
   7e7e5728d161 Btrfs: fix corruption reading shared and compressed extents after hole punching
   be1ee0e2fd42 btrfs: ensure that a DUP or RAID1 block group has exactly two stripes
   cb292a678ee2 Btrfs: setup a nofs context for memory allocation at __btrfs_set_acl
   f1f0ee2859e6 Btrfs: setup a nofs context for memory allocation at btrfs_create_tree()
   0e6de290666f m68k: Add -ffreestanding to CFLAGS
   f78f0d35d43a splice: don't merge into linked buffers
   433cbc2d30f3 fs/devpts: always delete dcache dentry-s in dput()
   dbb3e594eecd scsi: target/iscsi: Avoid iscsit_release_commands_from_conn() deadlock
   528af139ff6b scsi: sd: Optimal I/O size should be a multiple of physical block size
   ee579fc4e875 scsi: aacraid: Fix performance issue on logical drives
   818838eea45d scsi: virtio_scsi: don't send sc payload with tmfs
   478bd6b7f170 s390/virtio: handle find on invalid queue gracefully
   47c6ea331f58 s390/setup: fix early warning messages
   69304bcf9021 clocksource/drivers/arch_timer: Workaround for Allwinner A64 timer instability
   947a053a6d47 clocksource/drivers/exynos_mct: Clear timer interrupt when shutdown
   084c1f5522f1 clocksource/drivers/exynos_mct: Move one-shot check from tick clear to ISR
   95d7c41e448f regulator: s2mpa01: Fix step values for some LDOs
   69913dbd2d55 regulator: max77620: Initialize values for DT properties
   060c4f4e5d0c regulator: s2mps11: Fix steps for buck7, buck8 and LDO35
   9a215e43276c spi: pxa2xx: Setup maximum supported DMA transfer length
   913cb6579c9a spi: ti-qspi: Fix mmap read when more than one CS in use
   bb427df35f34 netfilter: ipt_CLUSTERIP: fix warning unused variable cn
   8fb8fb9b67bb mmc:fix a bug when max_discard is 0
   85d7e5a8000a mmc: sdhci-esdhc-imx: fix HS400 timing issue
   882b6b31ea55 ACPI / device_sysfs: Avoid OF modalias creation for removed device
   b3a0dfcfdd64 tracing/perf: Use strndup_user() instead of buggy open-coded version
   054dec51d4e6 tracing: Do not free iter->trace in fail path of tracing_open_pipe()
   9031822970ed tracing: Use strncpy instead of memcpy for string keys in hist triggers
   9367b21da22c CIFS: Fix read after write for files with read caching
   db6a6106224d CIFS: Do not reset lease state to NONE on lease break
   aef1cf600f41 crypto: arm64/aes-ccm - fix bugs in non-NEON fallback routine
   134135d884be crypto: arm64/aes-ccm - fix logical bug in AAD MAC handling
   6779d6bdf611 crypto: x86/morus - fix handling chunked inputs and MAY_SLEEP
   2dc6214860a1 crypto: x86/aesni-gcm - fix crash on empty plaintext
   a6e83e8b0777 crypto: x86/aegis - fix handling chunked inputs and MAY_SLEEP
   f62b08c81429 crypto: testmgr - skip crc32c context test for ahash algorithms
   817cbacff744 crypto: skcipher - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
   bc647ef1085e crypto: pcbc - remove bogus memcpy()s with src == dest
   9fb0d7b8f9c2 crypto: morus - fix handling chunked inputs
   76bc71692818 crypto: hash - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
   67a69738546d crypto: arm64/crct10dif - revert to C code for short inputs
   e1369ad2e0fc crypto: arm64/aes-neonbs - fix returning final keystream block
   7807003aab85 crypto: arm/crct10dif - revert to C code for short inputs
   f54fbb0e595b crypto: aegis - fix handling chunked inputs
   1e1f858caf7d crypto: aead - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
   c81bf050b880 fix cgroup_do_mount() handling of failure exits
   638f4fb4ec67 libnvdimm: Fix altmap reservation size calculation
   5ebf4aa4cf6b libnvdimm/pmem: Honor force_raw for legacy pmem regions
   8f42d7ac37af libnvdimm, pfn: Fix over-trim in trim_pfn_device()
   68ab49b299fb libnvdimm/label: Clear 'updating' flag after label-set update
   063d65ab9fdd nfit/ars: Attempt short-ARS even in the no_init_ars case
   387b9f01ac16 nfit/ars: Attempt a short-ARS whenever the ARS state is idle at boot
   b4a1581c801d acpi/nfit: Fix bus command validation
   0c27d62e5752 nfit: acpi_nfit_ctl(): Check out_obj->type in the right place
   fd8e9cd85f26 stm class: Prevent division by zero
   dd1250b50c61 tmpfs: fix uninitialized return value in shmem_link
   f4cadb1ec900 selftests: fib_tests: sleep after changing carrier. again.
   7d856eb21fd5 net: set static variable an initial value in atl2_probe()
   193e19cdf7a0 bnxt_en: Wait longer for the firmware message response to complete.
   36ca3daa9b6a bnxt_en: Fix typo in firmware message timeout logic.
   aae48df6d81b nfp: bpf: fix ALU32 high bits clearance bug
   9fbe31fda762 nfp: bpf: fix code-gen bug on BPF_ALU | BPF_XOR | BPF_K
   a58be12de08d net: thunderx: add nicvf_send_msg_to_pf result check for set_rx_mode_task
   76320607b755 net: thunderx: make CFG_DONE message to run through generic send-ack sequence
   6d0ebfc3fd3c bpf, lpm: fix lookup bug in map_delete_elem
   4e9c4ca54607 mac80211_hwsim: propagate genlmsg_reply return code
   ce8e30135705 phonet: fix building with clang
   92f628f3c945 ARCv2: don't assume core 0x54 has dual issue
   1faac2e0838b ARCv2: support manual regfile save on interrupts
   53fc181c111c ARC: uacces: remove lp_start, lp_end from clobber list
   515122c2d88a ARCv2: lib: memcpy: fix doing prefetchw outside of buffer
   b1ba6184493e ixgbe: fix older devices that do not support IXGBE_MRQC_L3L4TXSWEN
   a7bc4915f286 tmpfs: fix link accounting when a tmpfile is linked in
   5beffa8382a9 mm: handle lru_add_drain_all for UP properly
   7bd326b49004 net: marvell: mvneta: fix DMA debug warning
   70e79b53dd95 arm64: Relax GIC version check during early boot
   e3ca5da971e0 ARM: dts: armada-xp: fix Armada XP boards NAND description
   2ac1b780dae0 qed: Fix iWARP syn packet mac address validation.
   9e1395d75177 qed: Fix iWARP buffer size provided for syn packet processing.
   5db253fa68bf ASoC: topology: free created components in tplg load error
   31983c568574 mailbox: bcm-flexrm-mailbox: Fix FlexRM ring flush timeout issue
   98b9e4e542eb net: mv643xx_eth: disable clk on error path in mv643xx_eth_shared_probe()
   d19e6c11ca1f qmi_wwan: apply SET_DTR quirk to Sierra WP7607
   59e3fdbb9d45 pinctrl: meson: meson8b: fix the sdxc_a data 1..3 pins
   63c87ecf5134 net: dsa: bcm_sf2: Do not assume DSA master supports WoL
   a2e5d18914c1 net: systemport: Fix reception of BPDUs
   8d33e97da9c5 scsi: libiscsi: Fix race between iscsi_xmit_task and iscsi_complete_task
   1c976b2c9f19 keys: Fix dependency loop between construction record and auth key
   590d6228f163 assoc_array: Fix shortcut creation
   5aa6e4f891a2 af_key: unconditionally clone on broadcast
   8cae27e41068 bpf: fix lockdep false positive in stackmap
   c16b543d92ee bpf: only adjust gso_size on bytestream protocols
   908e6fda5d7d ARM: 8824/1: fix a migrating irq bug when hotplug cpu
   d6fb8e0d9e7d esp: Skip TX bytes accounting when sending from a request socket
   2dd0beec5a84 clk: sunxi: A31: Fix wrong AHB gate number
   48db12b60b5b kallsyms: Handle too long symbols in kallsyms.c
   882dbe3d5c03 clk: sunxi-ng: v3s: Fix TCON reset de-assert bit
   1ab0225d6786 Input: st-keyscan - fix potential zalloc NULL dereference
   8a6ef92721b7 auxdisplay: ht16k33: fix potential user-after-free on module unload
   53f4d6948b35 i2c: bcm2835: Clear current buffer pointers and counts after a transfer
   60bc9292260f i2c: cadence: Fix the hold bit setting
   e6e2c6c26a58 net: hns: Fix object reference leaks in hns_dsaf_roce_reset()
   bf6be978fece mm: page_alloc: fix ref bias in page_frag_alloc() for 1-byte allocs
   7f72a70062d7 x86/CPU: Add Icelake model number
   4342d099969c net: dsa: bcm_sf2: potential array overflow in bcm_sf2_sw_suspend()
   6093401c933b scsi: qla2xxx: Fix panic from use after free in qla2x00_async_tm_cmd
   09f4a1b6edf1 Revert "mm: use early_pfn_to_nid in page_ext_init"
   7b9dd6a4976b mm/gup: fix gup_pmd_range() for dax
   3cd584b00e50 NFS: Don't use page_file_mapping after removing the page
   7d8cf3eb1dc7 xprtrdma: Make sure Send CQ is allocated on an existing compvec
   5c64b19db5ce floppy: check_events callback should not return a negative number
   1cae395dd7c0 ipvs: fix dependency on nf_defrag_ipv6
   d05d4feda816 blk-mq: insert rq with DONTPREP to hctx dispatch list when requeue
   0af0889613a8 netfilter: compat: initialize all fields in xt_init
   f2883b8eb0a9 mac80211: Fix Tx aggregation session tear down with ITXQs
   665cb8ebf0f3 mac80211: call drv_ibss_join() on restart
   0a1d76449997 Input: matrix_keypad - use flush_delayed_work()
   375152e09de2 Input: ps2-gpio - flush TX work when closing port
   b15599627bd0 Input: cap11xx - switch to using set_brightness_blocking()
   a1e0fb446a4b ARM: OMAP2+: fix lack of timer interrupts on CPU1 after hotplug
   7a587d77b211 ASoC: samsung: Prevent clk_get_rate() calls in atomic context
   bf74076b7dd3 KVM: arm64: Forbid kprobing of the VHE world-switch code
   d74df61de605 arm/arm64: KVM: Don't panic on failure to properly reset system registers
   58d6ec80a286 arm/arm64: KVM: Allow a VCPU to fully reset itself
   c05c5a6e1f0e KVM: arm/arm64: Reset the VCPU without preemption and vcpu state loaded
   ba274486de32 ASoC: dapm: fix out-of-bounds accesses to DAPM lookup tables
   a3d8ea1f2555 ARM: OMAP2+: Variable "reg" in function omap4_dsi_mux_pads() could be uninitialized
   237e6c308062 Input: pwm-vibra - stop regulator after disabling pwm, not before
   6a48d09a77a1 Input: pwm-vibra - prevent unbalanced regulator
   fcae9decbc8f s390/dasd: fix using offset into zero size array error
   f98a25dc02b7 KVM: arm/arm64: vgic: Make vgic_dist->lpi_list_lock a raw_spinlock
   74b6b1e49d06 gpu: ipu-v3: Fix CSI offsets for imx53
   1c0723cba9a9 drm/imx: imx-ldb: add missing of_node_puts
   321e0fbdae09 gpu: ipu-v3: Fix i.MX51 CSI control registers offset
   f0e52962b9f2 drm/imx: ignore plane updates on disabled crtcs
   38fc637ca52e crypto: rockchip - update new iv to device in multiple operations
   5d89757429b3 crypto: rockchip - fix scatterlist nents error
   2365ae3a03c9 crypto: ahash - fix another early termination in hash walk
   512b0d76c2c9 crypto: cfb - remove bogus memcpy() with src == dest
   66b1348939de crypto: cfb - add missing 'chunksize' property
   40c76d76e11f crypto: ccree - don't copy zero size ciphertext
   2ff9501c582f crypto: ccree - fix free of unallocated mlli buffer
   ba3c72efd404 crypto: caam - fixed handling of sg list
   5d9cee322faf crypto: ccree - fix missing break in switch statement
   e0ea8deb72db stm class: Fix an endless loop in channel allocation
   95b10e2f6a61 mei: bus: move hw module get/put to probe/release
   1af8d0304685 iio: adc: exynos-adc: Fix NULL pointer exception on unbind
   513052a27dab ASoC: codecs: pcm186x: Fix energysense SLEEP bit
   d5f37b5d7009 ASoC: codecs: pcm186x: fix wrong usage of DECLARE_TLV_DB_SCALE()
   da21c5d9bacf ASoC: fsl_esai: fix register setting issue in RIGHT_J mode
   b3e4f70db4f3 9p/net: fix memory leak in p9_client_create
   4b84eeface08 9p: use inode->i_lock to protect i_size_write() under 32-bit
   4441736404a3 media: videobuf2-v4l2: drop WARN_ON in vb2_warn_zero_bytesused()
   3f7de80a22c6 perf/core: Fix impossible ring-buffer sizes warning

(From OE-Core rev: ad29465ccb9fea2622aa2ef8c7118a0deae829a2)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-05-22 00:31:48 +01:00
Bruce Ashfield
18585c3251 linux-yocto-tiny/4.18: point KBRANCH to 4.18
The other kernel versions had the -tiny KBRANCH typo of 4.15
fixed, but 4.18 was missed. So we update the kbranch to the right
version for 4.18 as well.

[YOCTO #13247]

(From OE-Core rev: d761b2ae95a84f353c4132bc9b0506c4a4b4c73f)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-05-22 00:31:48 +01:00
Richard Purdie
a7472df42d core-image-sato-sdk-ptest: Fix free space issues causing test failures
Some tests such as strace-ptest require more than the current 500MB of free
space. Increase the amount available, staying under the 4GB limit. We have more
flexibility now since we shrank kernel-devsrc and the comments are out of date
due to that.

This should improve the strace-ptest results and the util-linux ones since
those sort after strace and also hit the space issues as strace-ptest didn't
clean up after itself when failing.

(From OE-Core rev: c4bb2bdbe6f74141f30171dabab49fa5cd45371f)

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-05-22 00:31:48 +01:00
Richard Purdie
9728d8e4fa core-image-sato-sdk-ptest: Increase qemu memory to 1GB
(From OE-Core rev: 2861b339f4539ec4042cc7aa5351361246f4921f)

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-05-22 00:31:48 +01:00
Yeoh Ee Peng
08230d15a8 resulttool: Enable report for single result file
Current validation check function inside resulttool disallow the
report for single result file although the underlying library
was able to handle both directory and file as source input to report.
Removed the validation check as it was no longer needed and to
enable report for single result file.

(From OE-Core rev: dc15a21cbb3090dfb56e78f622486f843be4f54a)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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-05-22 00:31:48 +01:00
Kai Kang
032c2e5deb avahi: fix CVE-2017-6519
Backport patch to fix CVE-2017-6519.

CVE: CVE-2017-6519

(From OE-Core rev: cf787f8eab1c85dbafb5e74bf12eb4ddb5c5cbf7)

Signed-off-by: Kai Kang <kai.kang@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-05-22 00:31:48 +01:00
Ross Burton
5b80f507d2 libexif: fix CVE-2016-6328 and CVE-2018-20030
(From OE-Core rev: fbb34412641afa0fa7327cf599b82564ca375217)

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-05-22 00:31:48 +01:00
Ross Burton
3eb0322125 libsndfile1: fix CVE-2019-3832
The previous fix for CVE-2018-19758 wasn't complete, so backport another patch
to solve it properly.

(From OE-Core rev: 932762be3999906c2e8a0ed9236f1f01d9e2ea93)

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-05-22 00:31:48 +01:00
Ross Burton
c4d4765082 libsndfile1: update security patches
Remove CVE-2017-14245-14246.patch, fix rejected upstream as it doesn't solve the
underlying issue.

Instead 0001-a-ulaw-fix-multiple-buffer-overflows-432 also solves CVE-2017-14245
and CVE-2017-14246 properly.

Add patches for CVE-2017-12562 and CVE-2018-19758.

Refresh CVE-2018-13139.patch.

(From OE-Core rev: e6b272b7c0d10f49dde71dd9714aaa0fb6aec091)

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-05-22 00:31:48 +01:00
Ross Burton
0a0e9bd513 bluez5: fix CVE-2018-10910
Fix this CVE (Bluetooth discoverability may be enabled with no agents to handle
requests) by backporting a number of patches from upstream.

(From OE-Core rev: 883726c93b4e6d64eec942e2fc9c937f7092adb0)

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-05-22 00:31:48 +01:00
David Frey
3a9be51359 bluez5: Fix status subcommand of init script
Update the bluez5 init script to resolve an issue where the status
subcommand would exit without printing any message if bluez was not
running. The early exit was caused by the fact that the init script has
"set -e". When "pidof ${DAEMON} >/dev/null" is executed, the script
terminates immediately if bluez isn't running because pidof returns a
non-zero result. The fixed version does not suffer from this issue and
makes use of the "status" function from the functions library.

(From OE-Core rev: 383425fb86fdeccad88080369078d9ac988bab2f)

Signed-off-by: David Frey <dpfrey@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-05-22 00:31:48 +01:00
Peter A. Bigot
c184fa0892 bluez5: add mesh dependency on ell
Introduced at or before 5.50.

(From OE-Core rev: 0ae5ff4c0adc5fd727e5c5c47aba8c7859d60a73)

Signed-off-by: Peter A. Bigot <pab@pabigot.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-05-22 00:31:48 +01:00
Taras Kondratiuk
711064cad9 devtool: prevent starting git gc in background
Devtool creates a git repository for extracted sources in a temporary
directory and then moves it to a final destination after patching is
done. Unfortunately devtool is not aware that some of its git operations
may have caused git garbage collector to start in background. If timing
is just right a repository move fails because GC is removing git objects
while they are being moved.

The issue was hit on Krogoth release, but the code that moves created
git repository is still the same.

Disable gc.autodetach to make GC run synchronously and block git until
it is done.

Traceback (most recent call last):
  File "<snip>/openembedded-core/scripts/devtool", line 342, in <module>
    ret = main()
  File "<snip>/openembedded-core/scripts/devtool", line 329, in main
    ret = args.func(args, config, basepath, workspace)
  File "<snip>/openembedded-core/scripts/lib/devtool/standard.py", line 352, in extract
    initial_rev = _extract_source(srctree, args.keep_temp, args.branch, False, rd)
  File "<snip>/openembedded-core/scripts/lib/devtool/standard.py", line 644, in _extract_source
    shutil.move(srcsubdir, srctree)
  File "/usr/lib/python2.7/shutil.py", line 299, in move
    copytree(src, real_dst, symlinks=True)
  File "/usr/lib/python2.7/shutil.py", line 208, in copytree
    raise Error, errors
Error: [('/tmp/devtool5RXkuX/workdir/grpc-1.2.5/.git/objects/5e', '<snip>/build/grpc/grpc_src/.git/objects/5e', "[Errno 2] No such file or directory: '/tmp/devtool5RXkuX/workdir/grpc-1.2.5/.git/objects/5e'"), ('/tmp/devtool5RXkuX/workdir/grpc-1.2.5/.git/objects/57', '<snip>/build/grpc/grpc_src/.git/objects/57', "[Errno 2] No such file or directory: '/tmp/devtool5RXkuX/workdir/grpc-1.2.5/.git/objects/57'"), many git objects ... ]

(From OE-Core rev: eae5caaf050f54a065e2654a60f55fda2c3afd95)

Signed-off-by: Taras Kondratiuk <takondra@cisco.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-05-22 00:31:48 +01:00
Ross Burton
8422861b17 python: fix CVE-2018-14647 in python-native too
(From OE-Core rev: 65042ebf07afad2922dcdfceb6e8931c05255649)

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-05-22 00:31:48 +01:00
Changqing Li
51c5b21ae7 python-native: fix one do_populate_sysroot warning
Fix below warning:
WARNING: Skipping RPATH /usr/lib64 as is a standard search path for
work/x86_64-linux/python-native/2.7.15-r1.1/recipe-sysroot-native/
usr/lib/python2.7/lib-dynload/_bsddb.so

setup.py will check db.h under include_dirs, for native build,
/usr/lib64 will be insert to postion 0 of include_dirs, so
it's priority is higher then our sysroot, cause db.h sysroot
is ignored, and rpath set to /usr/lib64. and this cause warning
when do_populate_sysroot. use append to fix it.

(From OE-Core rev: 12df5392afb8446507bb73f4d33ee42e06a17b82)

Signed-off-by: Changqing Li <changqing.li@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-05-22 00:31:48 +01:00
Aditya Tayade
6a6756f46a run-ptest: use error handling for useradd and userdel
Error handling in shell scripts is too easy to forget and
get wrong. It is possible to check every external command
for return values but it is better to use a generic setting
which halts execution of the script on any failures.

Upstream-Status: Pending
(From OE-Core rev: ca415c4250e32e9430a13b9edf7b308637ce597f)

Signed-off-by: Aditya Tayade <Aditya.Tayade@kpit.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-05-22 00:31:48 +01:00
Ross Burton
fe415144db zlib: clean up ptest
Instead of patching and sedding the makefile, just install test/example and
execute it in run-ptest.  example is the bulk of the test suite, as minimal as
it is.

(From OE-Core rev: 9088a78e78f70721b2aa6bdbdf055551d5bd0265)

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-05-22 00:31:48 +01:00
Ross Burton
f1add4b50e zlib: cleanup
Drop remove.ldconfig.call.patch, as it's easier to just set LDCONFIG=true.

Pass uname=GNU via the documented configure option instead of undocumented
environment variable.

Rename zlib-1.2.11/ to just zlib/ as we don't ship multiple versions.

Send ldflags-tests.patch upstream and update Upstream-Status.

(From OE-Core rev: 9535dc7c6dc185defac2cad6a2733621c42420b7)

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-05-22 00:31:48 +01:00
Yann CARDAILLAC
bc4556512d correct do_patch for kernel bbappend in sdk
do_patch rule of SDK's workspace/appends/linux-*.bbhappend may fail if script are not written in Python

that was the case with Phytec's BSP, the fix was to replace the do_patch rule with :

do_patch[noexec]="1" when the file was generated in scripts/lib/devtool/standard.py

(From OE-Core rev: e041812a84025a9ff9121efabc3805ff2dfe6375)

Signed-off-by: Yann CARDAILLAC <yann.cardaillac@smile.fr>
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-05-22 00:31:48 +01:00
Robert Yang
2a708dec24 oe-init-build-env: Error out when failed to locate cwd
Ubuntu's /bin/sh symlinks to /bin/dash by default, so
subprocess.check_call(oe-init-build-env, cwd=builddir) would be failed since
pwd is builddir, and there is no $builddir/oe-init-build-env, this would
lead to other confusing errors, check and error it out earlier to make it
easier to locate the problem.

We don't meet the problem when manually run ". oe-init-build-env" is because
Ubuntu's default login shell is bash, but subprocess.check_call() doesn't
respect to login shell, so the error only happens in situations like
subprocess.check_call().

And also print errors to stderr as oe-buildenv-internal does.

(From OE-Core rev: aa4d86ff55b01d150f49b5b4517b0c661a10c36b)

Signed-off-by: Robert Yang <liezhi.yang@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-05-22 00:31:48 +01:00
Armin Kuster
c9595af8ad python: time.tzset missing
import time
time.tzset()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'time' has no attribute 'tzset'

enable tzset in both python versions

(From OE-Core rev: e7721ee7e7942570ebab793f5870d7a021154a92)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Fix up for Thud context ie python3_3.5.6]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:48 +01:00
Armin Kuster
371f57a1ee timezone: update to 2019a
The 2019a release of the tz code and data is available. It reflects the following changes, which were either circulated on the tz mailing list or are relatively minor technical or administrative changes:

  Briefly:
    Palestine "springs forward" on 2019-03-30 instead of 2019-03-23.
    Metlakatla "fell back" to rejoin Alaska Time on 2019-01-20 at 02:00.

  Changes to past and future timestamps

    Palestine will not start DST until 2019-03-30, instead of 2019-03-23 as
    previously predicted.  Adjust our prediction by guessing that spring
    transitions will be between 24 and 30 March, which matches recent practice
    since 2016.  (Thanks to Even Scharning and Tim Parenti.)

    Metlakatla ended its observance of Pacific standard time,
    rejoining Alaska Time, on 2019-01-20 at 02:00.  (Thanks to Ryan
    Stanley and Tim Parenti.)

  Changes to past timestamps

    Israel observed DST in 1980 (08-02/09-13) and 1984 (05-05/08-25).
    (Thanks to Alois Treindl and Isaac Starkman.)

  Changes to time zone abbreviations

    Etc/UCT is now a backward-compatibility link to Etc/UTC, instead
    of being a separate zone that generates the abbreviation "UCT",
    which nowadays is typically a typo.  (Problem reported by Isiah
    Meadows.)

  Changes to code

    zic now has an -r option to limit the time range of output data.
    For example, 'zic -r @1000000000' limits the output data to
    timestamps starting 1000000000 seconds after the Epoch.
    This helps shrink output size and can be useful for applications
    not needing the full timestamp history, such as TZDIST truncation;
    see Internet RFC 8536 section 5.1.  (Inspired by a feature request
    from Christopher Wong, helped along by bug reports from Wong and
    from Tim Parenti.)

  Changes to documentation

    Mention Internet RFC 8536 (February 2019), which documents TZif.

    tz-link.html now cites tzdata-meta
    <https://tzdata-meta.timtimeonline.com/>.

(From OE-Core rev: aa5c0d159c5016c6517f42a0a1738188b5646517)

Signed-off-by: Armin Kuster <akuster808@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-05-22 00:31:47 +01:00
Armin Kuster
ddfa6d1c2d timezone: refactor to simplify maint
move tzcode and tzdata-native into new dir

Updates are now limited to the common include file.

[v2]
Fix UMMARY typ0 in timezone.inc

(From OE-Core rev: a053af9d2bbd1f7cf2d05100af208c359190eb97)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[packages stayed the same, align for future updates]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:47 +01:00
Chen Qi
b715031fc6 openssl: follow OE's rule for specifying CVE ID
(From OE-Core rev: a3dd494337bbdf20d7bff651d533f944f270766e)

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-05-22 00:31:47 +01:00
Otavio Salvador
be0b881078 openssl10: Upgrade 1.0.2q -> 1.0.2r
(From OE-Core rev: 3aad3c98cf8af4929bc416bbda55ccc71879f2f2)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
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-05-22 00:31:47 +01:00
Otavio Salvador
b968e5a451 openssl: Upgrade 1.1.1a -> 1.1.1b
License-Update: copyright years updated
(From OE-Core rev: 5f15e883502e6f737f7cdc577f6c104e8fbeeaa9)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
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-05-22 00:31:47 +01:00
Ross Burton
5dca0e0091 openssl: fix CVE-2019-1543
(From OE-Core rev: d8fc8bbab4bf5c34d316cc884e83fc6e66d57954)

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-05-22 00:31:47 +01:00
Ross Burton
5bcdd22c23 openssl: don't disable the AFALG engine based on host kernel
Whether the AFALG engine (use of hardware crypto via AF_ALG) is enable or
disable depends on whether the host kernel is 4.1 or above, which has no bearing
on whether the target system supports it.

Remove the complicated logic and simply enable/disable as requested.

(From OE-Core rev: 6998a3d7d0ecd27014053fe40c9fb4e0ec970880)

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-05-22 00:31:47 +01:00
Ovidiu Panait
8d19b6aaa8 openssl: Add cryptodev-linux PACKAGECONFIG
The old bsd cryptodev engine was removed in
https://github.com/openssl/openssl/pull/3699
and the new one added in:
https://github.com/openssl/openssl/pull/3744

It can be enabled by configuring with "enable-devcryptoeng".

(From OE-Core rev: 89dc69464b9ec1c2cac5d2420dfe6928da50d384)

Signed-off-by: Ovidiu Panait <ovidiu.panait@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-05-22 00:31:47 +01:00
Alexander Kanavin
9854e29e7a openssl: drop Python 2.x dependency in -ptest
It is only needed by 95-test_external_pyca_data which is
actually skipped on the target.

[YOCTO #13204]

(From OE-Core rev: ba193703ccda16c0ed834248d8c9fda0d6ad2302)

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-05-22 00:31:47 +01:00
Richard Purdie
40b7fa68fb openssl: Fix ptest test output translation
openssl-ptest was recording now results, despite most tests passing. Fix
so that the successes/skips/failures are reported correctly.

(From OE-Core rev: 87728d921cfa5997b454ebc5074d2c1aee2def89)

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-05-22 00:31:47 +01:00
Khem Raj
1b57d8c575 glibc: Drop upstream rejected patches
These patches were applied, hoping that they will eventually be accepted
upstream but they have been rejected, I think its best that they are
dropped so we can avoid novel unintended behaviours that no other
distros will be seeing

(From OE-Core rev:54550aa42378ce4b215bccbfd95e5e650b0d2efa)

(From OE-Core rev: dc2238b268d48b4e62a795a4f6b257efc298e2b2)

Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Khem Raj <raj.khem@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-05-22 00:31:47 +01:00
Scott Rifenbark
50f33d3bfe overview-manual: Fixed broken link to pseudo.
Link has disappeared.  I am no longer using it and am using
the article to "Why Fakeroot" to cover both Fakeroot and
Pseudo "extra information" stuff.

(From yocto-docs rev: 2ed2d897ca6a8bfb20aefdbc11a815e10fa2376c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-04-09 22:16:00 +01:00
Scott Rifenbark
722e24a45e Documentation: Prepare for 2.6.2 release.
poky.ent - updated variables
mega-manual.sed - updated release string
<manual>.xml - updated manual revision history tables

(From yocto-docs rev: 5559b4006668d47595b3e4b5d5703bb1c200d6d1)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-04-09 22:16:00 +01:00
Chen Qi
3df4b6e536 pkgdata.py: avoid target-sdk-dummy-provides to mess things up
Sometimes we meet the following failure for the test_lookup_recipe
test case.

  AssertionError: 'zlib\nbusybox is in the RPROVIDES of target-sdk-provid[32 chars]ummy' != 'zlib\nbusybox'
    zlib
  + busybox- busybox is in the RPROVIDES of target-sdk-provides-dummy:
  - target-sdk-provides-dummy

This is because target-sdk-provides-dummy rprovides busybox.

So clean things up to avoid failure.

(From OE-Core rev: 7b5a069d4f11e36a1c407c4212aba5aafaf4ee7f)

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-04-09 22:15:46 +01:00
Yeoh Ee Peng
f2f7099b8a resulttool/manualexecution: Refactor and simplify codebase
Simplify and removed unnecessary codes.
Refactor to allow pythonic loop.

(From OE-Core rev: 31449f3a7649be781b7b61f915d5e879728e87af)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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-04-09 22:15:46 +01:00
Yeoh Ee Peng
e29a39142e resulttool/manualexecution: Fixed step sorted by integer
Currently the manual execution display step by sorting
the step as string, where steps were not being sorted
correctly when there are more than 9 steps.

Fixed the step sorting by sorting step as integer.

(From OE-Core rev: 2d96a9228fb451752c061c25582a5cc1735099bf)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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-04-09 22:15:46 +01:00
Yeoh Ee Peng
4a3d52537a resulttool/manualexecution: Enable display full steps without press enter
Current manualexecution required pressing enter button to show each step
information, where this was wasting execution time. Enable display
full steps without needing to any press enter button.

(From OE-Core rev: 6bb181b1e5f14d166cab8023b14316e54012c583)

Signed-off-by: Mazliana <mazliana.mohamad@intel.com>
Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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-04-09 22:15:46 +01:00
Yeoh Ee Peng
2147e148d1 resulttool/manualexecution: Standardize input check
Current input checking does not match the standard input practiced
by QA team. Change the input checking to match the standard
input practiced by the QA team.

(From OE-Core rev: f28cfbdad40a69f0cc1a7e71d20260c9621e6194)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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-04-09 22:15:46 +01:00
Richard Purdie
056ff02e98 resulttool: Allow extraction of ptest data
Rather than simply discarding the ptest data, change the code to discard
it when writing out the new testresult files, or optionally either preserve
it, or write it as seperate discrete logs.

This means the autobuilder should start writing out individual ptest log
files as well as allowing ueers to extract these manually.

(From OE-Core rev: 3c5e5730031ccfb8e851734db23814a4d4fcae4a)

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-04-09 22:15:46 +01:00
Richard Purdie
d80bcba0e3 resulttool: Allow store to work on single files
Store operations using a single file as a source weren't working as the os.walk
command didn't like being given a single file. Fix the store operation to
work for single files.

(From OE-Core rev: 5173954c1ec75629bedbe06d6979dae36eb71b6f)

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-04-09 22:15:46 +01:00
Yeoh Ee Peng
10d43f6d08 oeqa/manual/toaster: updated test id naming
All test id (eg. @alias) inside manual testcase file shall follow the same
test id naming convention from oeqa automated tests (eg. selftest,
runtime, sdk, etc), where the test id consists of
<test_module>.<test_suite>.<test_function>. Furthermore, there shall be
only 1 unique test_module per each manual testcases file, where
test_module match the file name itself.

This file was using test_module name that does not match the file name
itself. Fixed test_module name as well as the test_suite name.

(From OE-Core rev: ebb3076c847c379d8c620d14927f696302fc4f26)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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-04-09 22:15:46 +01:00
Yeoh Ee Peng
a50dcf1d0d oeqa/manual/toaster: transfer manual toaster test cases to oeqa
As part of the solution to replace Testopia, manual test cases
need to be migrated to OEQA. These manual test case json files
will serve two use cases.

Use case#1: as input to the future commandline-based manual test
runner script, where this script will display actions and expected
result information in user friendly text, then it will capture
user input for test result and log, finally it will write test
result and log into existing standardize test result json format
from OEQA framework for automated tests.

Use case#2: QA will open and read these json file manually for
planning manual test execution. Any reader interested in
understanding manual test cases will open and read these files.

(From OE-Core rev: 498f84fee3c85227ffb8dba9723c2acec00e03bd)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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-04-09 22:15:46 +01:00
sangeeta jain
6fda37f233 oeqa/manual/kernel-dev.json: test id updated
All test id (eg. @alias) inside manual testcase file shall follow the same test id
naming convention from oeqa automated tests (eg. selftest, runtime, sdk, etc), where
the test id consists of  <test_module>.<test_suite>.<test_function>. Furthermore,
there shall be only 1 unique test_module per each manual testcases file.

This file was using more than 1 unique test_module for testcases. Furthermore,
some of the testcases were defined using different test_suite where it was not needed.
This patch fix the manual testcases file to have only 1 unique test_module
as well as test_suite to simplify test id naming.

(From OE-Core rev: 879f5aeac3ca4d053347e5a86a6c0fb303cf0dc3)

Signed-off-by: sangeeta jain <sangeeta.jain@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-04-09 22:15:46 +01:00
sangeeta jain
c373eb01b2 oeqa/manual/compliance-test.json: test id updated and missing test cases added
Two changes made in oeqa/manual/compliance-test.json:

1. All test id (eg. @alias) inside manual testcase file shall follow the same test id
naming convention from oeqa automated tests (eg. selftest, runtime, sdk, etc), where
the test id consists of  <test_module>.<test_suite>.<test_function>. Furthermore,
there shall be only 1 unique test_module per each manual testcases file.

This file was using more than 1 unique test_module for testcases. Furthermore, some of
the testcases were defined using different test_suite where it was not needed. This patch
fix the manual testcases file to have only 1 unique test_module as well as test_suite to
simplify test id naming.

2. Added 2 missing test cases for Beaglebone Stress Test.

(From OE-Core rev: 2af492e8b34e59fc58fe267da05f0868cb13ea0f)

Signed-off-by: sangeeta jain <sangeeta.jain@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-04-09 22:15:46 +01:00
sangeeta jain
3cc6fc01f1 oeqa/manual/bsp-hw.json: test id updated and obsolete test cases removed
Two changes made in oeqa/manual/bsp-hw.json:

1. All test id (eg. @alias) inside manual testcase file shall follow the same test id naming
convention from oeqa automated tests (eg. selftest, runtime, sdk, etc), where the
test id consists of  <test_module>.<test_suite>.<test_function>. Furthermore,
there shall be only 1 unique test_module per each manual testcases file.

This file was using more than 1 unique test_module for testcases.
Furthermore, some of the testcases were defined using different test_suite where it was not
needed. This patch fix the manual testcases file to have only 1 unique
test_module as well as test_suite to simplify test id naming.

2. As per review by Intel and Windriver team, 7 testcases were found obsolete. Removed 7 testcases.

(From OE-Core rev: cfadaf037788f59dce84d569abaf3b1fb2d78824)

Signed-off-by: sangeeta jain <sangeeta.jain@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-04-09 22:15:45 +01:00
Mazliana
463b94d692 oeqa/manual/bsp-hw.json: add non-IA tests
QA team found that 10 manual bsp test cases from Testopia for
Beaglebone, EdgeRouter, and MPC need to be up streamed

[YOCTO #12650]

(From OE-Core rev: f86542369fc5aabe4376e66b282981f35d437d5d)

Signed-off-by: Mazliana <mazliana.mohamad@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-04-09 22:15:45 +01:00
sangeeta jain
bf2d20e9f0 oeqa/manual/sdk.json: Updated toolchain tarball to core-image-sato
Manual test step for SDK is updated. Previously toolchain was "poky-glibc-x86_64-core-image-sato-sdk<type-arch>-toolchain-<release-version>.sh"
But toochain for core-image-sato-sdk is not available in releases after 2.1, hence changed it to "poky-glibc-x86_64-core-image-sato-<type-arch>-toolchain-<release-version>.sh

Other less significant update is to add exepcted result in intermediate test steps.

(From OE-Core rev: 88f9b2c5f86b05b42ae6429a5f74fa2f8b66e8ab)

Signed-off-by: sangeeta jain <sangeeta.jain@intel.com>

"poky-glibc-x86_64-core-image-sato-<type-arch>-toolchain-<release-version>.sh"

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-04-09 22:15:45 +01:00
Sudhir Sharma
9b6a624cf6 oeqa/manual: Add manual runtime 'compliance' testcases to json
Added json file for compliance test cases to the manual runtime tests

(From OE-Core rev: ff596eb0f0e84decdb5addadd3f1f16d62c25401)

Signed-off-by: Sudhir Sharma <sudhirx.sharma@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-04-09 22:15:45 +01:00
Armin Kuster
e7f0177ef3 Revert "boost: update to 1.69.0"
This reverts commit a384248938.

This package update slipped in doing the maint process. Removing it.

(From OE-Core rev: fddd3ca8490adaceab6491632cf249c2320e4fda)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-04-09 22:15:45 +01:00
Richard Purdie
faeb366bc3 build-appliance-image: Update to thud head revision
(From OE-Core rev: 45032e30be70503faeee468159b216031b729309)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-27 23:22:57 +00:00
Richard Purdie
9dfebdaf7a build-appliance-image: Update to thud head revision
(From OE-Core rev: afb96dc9ecf15ecb89c749271c7f48d3f8048a02)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-26 15:55:32 +00:00
Richard Purdie
a192fff25b poky.conf: Bump version for 2.6.2 thud release
(From meta-yocto rev: b36886d9c06961420169842faeb060a31078f6e9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-26 15:55:23 +00:00
Richard Purdie
e6f5c3144c yocto-uninative: Update to 2.4
This supports glibc 2.29 which is appearing in distros like Ubuntu 19.04

(From OE-Core rev: 6b839dc9c55b2ea282041b9dc2dddb233236d612)

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-03-26 15:38:23 +00:00
Michael Halstead
57103b0adb yocto-uninative: Correct sha256sum for aarch64
Avoid uninative checksum warnings when building on aarch64 hardware.

(From OE-Core rev: 6c7cdf288d1b7dfd9be2c99f687949d368cecbd7)

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
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-03-26 15:38:23 +00:00
Richard Purdie
9505d6c48e scripts/wic: Be consistent about how we call bitbake
Whilst its tempting to call bitbake_main(), the script also directly executes
bitbake. By doing both this creates all kinds of races. Therefore
change to use subprocess execution in all cases.

(From OE-Core rev: 0507ec4c6069490c9a503e9e2b65f0e7b1962d34)

(From OE-Core rev: c48c37a436b3ebfe4d8ca5d12e97a0cdff0e20a1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-26 15:38:23 +00:00
Richard Purdie
002cf940a7 oeqa/utils/gitarchive: Handle case where parent is only on origin
The parent code currently assumed that any parent branch is locally
checked out which may not be the case.

Use the local branch by default but fall back to the origin. This
also means removing the later saftey check as the branch may not exist
locally.

This fixes the autobuilder resulttool test pushing code.

(From OE-Core rev: 36624a17d382d84647c5811134fe76251fd64dc3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-26 15:38:23 +00:00
Mazliana
df4d56b25a resulttool/manualexecution: To output right test case id
We found that manualexecution does not capture test suite values
correctly if there are more than one test suite in test cases.
After verification has made we found out we should retrieved
full test cases value <test_module.test_suite.test_case> from
oeqa/manual/ json file rather than split it them into new
variables test_suite and test_cases.

(From OE-Core rev: c4c63cdc1eca2acebc4ec9486b0d0592e47a8ae2)

Signed-off-by: Mazliana <mazliana.mohamad@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-26 15:38:23 +00:00
Yeoh Ee Peng
d41c0a34e7 resulttool/report: Enable roll-up report for a commit
Enable roll-up all test results belong to a commit
and to provide a roll-up report.

(From OE-Core rev: f2d6019f39a4037cf0914b1cfb3ccb3a03dacfc6)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-26 15:38:23 +00:00
Yeoh Ee Peng
1050296150 scripts/resulttool: Enable manual result store and regression
To enable store for testresults.json file from manualexecution,
add layers metadata to configuration and add "manual" map to
resultutils.store_map.

To enable regression for manual, add "manual" map to
resultutils.regression_map. Also added compulsory configurations
('MACHINE', 'IMAGE_BASENAME') to manualexecution.

(From OE-Core rev: 3e711cd0482e9df644b011a7d6dadffdfe139f8e)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-26 15:38:23 +00:00
Yeoh Ee Peng
b6fa6f7e6c resulttool/regression: Ensure regressoin results are sorted
Sorted regression results to provide friendly viewing of report.

(From OE-Core rev: cbe96a6dcb95032c61393bac348141e15a6b6590)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-26 15:38:23 +00:00
Richard Purdie
dcb9804dff resulttool/store: Fix missing variable causing testresult corruption
(From OE-Core rev: 0d98b9957c611af354efb33f4e915c5166c87ad3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-26 15:38:23 +00:00
Richard Purdie
38bbbb4ee1 resulttool/report: Ensure ptest results are sorted
(From OE-Core rev: 2e3ffad9e97c5f757e1457721308eb8da63bcabf)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-26 15:38:23 +00:00
Richard Purdie
19a3f1ba47 resulttool/report: Ensure test suites with no results show up on the report
ptest suites with no results don't show up on the reports even though we have
a duration for them. Fix this so the fact they report no tests is visible.

(From OE-Core rev: eb67a3cc4f8f57e85f1f95ced8f2c32ab5090866)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-26 15:38:23 +00:00
Richard Purdie
4b5686a0fd resulttool/report: Handle missing metadata sections more cleanly
Currently some older results files cause the code to give tracebacks.
Handle these missing sections more cleanly.

(From OE-Core rev: 93b87a9a7056fb507a585c454cef8db7194d7393)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-26 15:38:23 +00:00
Richard Purdie
3cbd483c42 resulttool/store: Handle results files for multiple revisions
Currently we cant store results if the results files span multiple
different build revisons. Remove this limitation by iterating.

(From OE-Core rev: 63d2c53c01d2aec90b3f0ab298a61a551b23d8fc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-26 15:38:23 +00:00
Richard Purdie
094b6ea1fc resulttool/resultutils: Avoids tracebacks for missing logs
(From OE-Core rev: faacf35d748067fd17d169c09bc2759606e6e819)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-26 15:38:23 +00:00
Richard Purdie
10b6fbfb8a resulttool: Improvements to allow integration to the autobuilder
This is a combined patch of the various tweaks and improvements I
made to resulttool:

* Avoid subprocess.run() as its a python 3.6 feature and we
  have autobuilder workers with 3.5.

* Avoid python keywords as variable names

* Simplify dict accesses using .get()

* Rename resultsutils -> resultutils to match the resultstool ->
  resulttool rename

* Formalised the handling of "file_name" to "TESTSERIES" which the code
  will now add into the json configuration data if its not present, based
  on the directory name.

* When we don't have failed test cases, print something saying so
  instead of an empty table

* Tweak the table headers in the report to be more readable (reference
  "Test Series" instead if file_id and ID instead of results_id)

* Improve/simplify the max string length handling

* Merge the counts and percentage data into one table in the report
  since printing two reports of the same data confuses the user

* Removed the confusing header in the regression report

* Show matches, then regressions, then unmatched runs in the regression
  report, also remove chatting unneeded output

* Try harder to "pair" up matching configurations to reduce noise in
  the regressions report

* Abstracted the "mapping" table concept used to pairing in the
  regression code to general code in resultutils

* Created multiple mappings for results analysis, results storage and
  'flattening' results data in a merge

* Simplify the merge command to take a source and a destination,
  letting the destination be a directory or a file, removing the need for
  an output directory parameter

* Add the 'IMAGE_PKGTYPE' and 'DISTRO' config options to the regression
  mappings

* Have the store command place the testresults files in a layout from
  the mapping, making commits into the git repo for results storage more
  useful for simple comparison purposes

* Set the oe-git-archive tag format appropriately for oeqa results
  storage (and simplify the commit messages closer to their defaults)

* Fix oe-git-archive to use the commit/branch data from the results file

* Cleaned up the command option help to match other changes

* Follow the model of git branch/tag processing used by oe-build-perf-report
  and use that to read the data using git show to avoid branch change

* Add ptest summary to the report command

* Update the tests to match the above changes

(From OE-Core rev: b4513e75f746a0989b09ee53cb85e489d41e5783)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-26 15:38:22 +00:00
Mazliana
12385bc69b scripts/resulttool: enable manual execution and result creation
Integrated “manualexecution” operation to resulttool scripts.
Manual execution script is a helper script to execute all manual
test cases in baseline command, which consists of user guideline
steps and the expected results. The last step will ask user to
provide their input to execute result. The input options are
passed/failed/blocked/skipped status. The result given will be
written in testresults.json including log error from the user
input and configuration if there is any.The output test result
for json file is created by using OEQA library.

The configuration part is manually key-in by the user. The system
allow user to specify how many configuration they want to add and
they need to define the required configuration name and value pair.
In QA perspective, "configuration" means the test environments and
parameters used during QA setup before testing can be carry out.
Example of configurations: image used for boot up, host machine
distro used, poky configurations, etc.

The purpose of adding the configuration is to standardize the
output test result format between automation and manual execution.

To use these scripts, first source oe environment, then run the
entry point script to look for help.
        $ resulttool

To execute manual test cases, execute the below
        $ resulttool manualexecution <manualjsonfile>

By default testresults.json store in <build_dir>/tmp/log/manual/

[YOCTO #12651]

(From OE-Core rev: 07054cc2691fd2822028a3fd55185af457f79ebf)

Signed-off-by: Mazliana <mazliana.mohamad@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-26 15:38:22 +00:00
Yeoh Ee Peng
661fa1335b resulttool: enable merge, store, report and regression analysis
OEQA outputs test results into json files and these files were
archived by Autobuilder during QA releases. Example: each oe-selftest
run by Autobuilder for different host distro generate a
testresults.json file.

These scripts were developed as a test result tools to manage
these testresults.json file.

Using the "store" operation, user can store multiple testresults.json
files as well as the pre-configured directories used to hold those files.

Using the "merge" operation, user can merge multiple testresults.json
files to a target file.

Using the "report" operation, user can view the test result summary
for all available testresults.json files inside a ordinary directory
or a git repository.

Using the "regression-file" operation, user can perform regression
analysis on testresults.json files specified. Using the "regression-dir"
and "regression-git" operations, user can perform regression analysis
on directory and git accordingly.

These resulttool operations expect the testresults.json file to use
the json format below.
{
    "<testresult_1>": {
        "configuration": {
            "<config_name_1>": "<config_value_1>",
            "<config_name_2>": "<config_value_2>",
            ...
            "<config_name_n>": "<config_value_n>",
        },
        "result": {
            "<testcase_namespace_1>": {
                "status": "<PASSED or FAILED or ERROR or SKIPPED>",
                "log": "<failure or error logging>"
            },
            "<testcase_namespace_2>": {
                "status": "<PASSED or FAILED or ERROR or SKIPPED>",
                "log": "<failure or error logging>"
            },
            ...
            "<testcase_namespace_n>": {
                "status": "<PASSED or FAILED or ERROR or SKIPPED>",
                "log": "<failure or error logging>"
            },
        }
    },
    ...
    "<testresult_n>": {
        "configuration": {
            "<config_name_1>": "<config_value_1>",
            "<config_name_2>": "<config_value_2>",
            ...
            "<config_name_n>": "<config_value_n>",
        },
        "result": {
            "<testcase_namespace_1>": {
                "status": "<PASSED or FAILED or ERROR or SKIPPED>",
                "log": "<failure or error logging>"
            },
            "<testcase_namespace_2>": {
                "status": "<PASSED or FAILED or ERROR or SKIPPED>",
                "log": "<failure or error logging>"
            },
            ...
            "<testcase_namespace_n>": {
                "status": "<PASSED or FAILED or ERROR or SKIPPED>",
                "log": "<failure or error logging>"
            },
        }
    },
}

To use these scripts, first source oe environment, then run the
entry point script to look for help.
    $ resulttool

To store test result from oeqa automated tests, execute the below
    $ resulttool store <source_dir> <git_branch>

To merge multiple testresults.json files, execute the below
    $ resulttool merge <base_result_file> <target_result_file>

To report test report, execute the below
    $ resulttool report <source_dir>

To perform regression file analysis, execute the below
    $ resulttool regression-file <base_result_file> <target_result_file>

To perform regression dir analysis, execute the below
    $ resulttool regression-dir <base_result_dir> <target_result_dir>

To perform regression git analysis, execute the below
    $ resulttool regression-git <source_dir> <base_branch> <target_branch>

[YOCTO# 13012]
[YOCTO# 12654]

(From OE-Core rev: 39cda3498ec68b91a671ead256231324d74f7d4c)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-26 15:38:22 +00:00
Douglas Royds
e4c0a8a7cb libpam: libpamc is licensed under its own BSD-style licence
Or alternatively GPL, the same as the top-level Linux-PAM COPYING.

(From OE-Core rev: 025c1b384635ef7a85e9f45f048901d6680563ae)

(From OE-Core rev: b79bd7c77635ed45509dfc288c2ca7a2dcf1cc67)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.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-03-24 16:48:38 +00:00
Chen Qi
2f467d8e9b target-sdk-provides-dummy: add more perl modules to avoid populate_sdk failure
When 'adduser' package, which is from meta-perl layer, is added to rootfs,
we will get do_populate_sdk failure like below.

Error:
 Problem: package perl-module-cwd-5.24.4-r0.core2_64 requires perl-module-dynaloader, but none of the providers can be installed
   - package perl-module-file-temp-5.24.4-r0.core2_64 requires perl-module-cwd, but none of the providers can be installed
   - package perl-module-dynaloader-5.24.4-r0.core2_64 requires perl-module-config, but none of the providers can be installed
   - package adduser-3.118-r0.core2_64 requires perl-module-file-temp, but none of the providers can be installed
   - package target-sdk-provides-dummy-1.0-r0.sdk_provides_dummy_target conflicts with perl provided by perl-5.24.4-r0.core2_64

This is because adduser depends on some perl modules which are not
listed in target-sdk-provides-dummy.

So add these perl modules to avoid such failure.

(From OE-Core rev: 1b12c176827c2d0cbb7867da73efac56826036ed)

(From OE-Core rev: 07eb2b7c56d3d2d1d435c16079c7badc1870d0c5)

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-03-24 16:48:38 +00:00
Jonathan Rajotte-Julien
70ab97087f lttng-tools: update to 2.9.11
Update 0001-Allow-multiple-attempts-to-connect-to-relayd.patch chunk
accordingly.

(From OE-Core rev: eb9668b5db2d61a25e47e77f4c35ba4e4b62c2cd)

Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-24 16:48:38 +00:00
Jonathan Rajotte-Julien
71a09dc251 lttng-modules: update to 2.10.9
Drop patch [1] since it is part of the 2.10.9 release.

[1] lttng-modules/0001-Fix-net-expose-sk-wmem-in-sock_exceed_buf_limit-trac.patch

(From OE-Core rev: b565ec33b908542b26527f3301672b4e3af6544c)

Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-24 16:48:38 +00:00
Jonathan Rajotte-Julien
edfce5377c lttng-ust: update to 2.10.3
(From OE-Core rev: 13cc1e7a9cd58b35044f8474b5b8601ea63b03f4)

Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-24 16:48:38 +00:00
Ming Liu
d4e6497ba2 rm_work: sort the value of do_build dependencies
This fixes some 'basehash changed' errors when rm_work is being
inherited.

(From OE-Core rev: e74158b6cc1d683ab14ef5d47ec531f986fc2259)

(From OE-Core rev: 8aed35802270345844239406266be37d66ba86c7)

Signed-off-by: Ming Liu <liu.ming50@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-03-24 16:48:38 +00:00
Robert Yang
5b80b1eabf send-error-report: Add --no-ssl to use http protocol
The script use https protocol by default, but the error-report-web server's
https connection may not work (e.g., doesn't work with python 2.7.6), so add an
option --no-ssl to make it use http.

(From OE-Core rev: a4c89902a24c0961657c8281425d480097aadfa6)

(From OE-Core rev: f9dac6e62623b0ac1a2b2f40b54337721afab7a5)

Signed-off-by: Robert Yang <liezhi.yang@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-03-24 16:48:38 +00:00
Ross Burton
22febdc60e libpng: fix CVE-2019-7317
(From OE-Core rev: 983d4757db7d46dcd4116269c4446392e28f16fb)

(From OE-Core rev: ab4483fbd95fecb951e765ebc7da918b503142ca)

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-03-24 16:48:38 +00:00
Changqing Li
c707714cfe libsndfile1: Security fix CVE-2018-19432
(From OE-Core rev: 6f010c9b7777aae5ce2108122d0c6d3b1d630a21)

(From OE-Core rev: 181d15b438ffa1d9da10399d33368906b464e4eb)

Signed-off-by: Changqing Li <changqing.li@windriver.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>
2019-03-24 16:48:38 +00:00
Richard Purdie
776bf0b46b kernel: Ensure an initramfs is added if configured
If ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE_NAME}.cpio does not exist,
nor any of the compressed variants, nothing is copied to kernel build's
./usr directory.

The code does not fail, but silently proceeds without a bundled initramfs.

Change to fail and tell the user something is wrong.

Also, if an initramfs is found, contrary to the comments, it does not stop
at the first uncompressed/compressed cpio image found. Instead it keeps
processing all so the last is used. Fix this to behave as per the comments.

[YOCTO #12909]

(Patch by Leon Woestenberg)

(From OE-Core rev: 5b5604e288af755eb5553a97d26533445b2cf94b)

(From OE-Core rev: 378f720090508d5c8c04f1b0265ba729f6ce827b)

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-03-24 16:48:38 +00:00
Alexander Kanavin
459c053917 ca-certificates: upgrade 20180409 -> 20190110
(From OE-Core rev: 73ebdcaedde460108f98971f037e50e9b15c9f0c)

(From OE-Core rev: 3bcc575367ac2519fc76fbd3d1d7f0223c059b96)

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-03-24 16:48:38 +00:00
George McCollister
39bc9d5f23 systemd: fix CVE-2019-6454
Apply patches from systemd_239-7ubuntu10.8 to fix CVE-2019-6454.
CVE-2019-6454 is an issue in which systemd (PID1) can be crashed with a
specially formed D-Bus message.

For information see:
https://usn.ubuntu.com/3891-1/
https://git.launchpad.net/ubuntu/+source/systemd/commit/?id=f8e75d5634904c8e672658856508c3a02f349adb

(From OE-Core rev: 9d2ec5970adfc906fcc4581528321a879953fd55)

(From OE-Core rev: 81199a83c5e5c4a107a025403bc0a79157ba6630)

Signed-off-by: George McCollister <george.mccollister@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-03-24 16:48:38 +00:00
Richard Purdie
d693d371a6 systemd: Update recent CVE patches
* Added CVE tag, Upstream-Status tag and Sign-off-by tags.
* Removed the verification of the entry length in the header
* Squashed CVE-2018-16865 patches into one
* CVE-2018-16866 patch now taken from systemd-stable and includes
  an additional heap buffer overflow fix.

(From OE-Core rev: bc79395e2fcb886f224a4ad837fd93c779d2c53d)

(From OE-Core rev: 554a65619c45fec24f1790792de2db12a098bd80)

Signed-off-by: Marcus Cooper <marcusc@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-03-24 16:48:38 +00:00
Richard Purdie
7fc2c193b2 target-sdk-provides-dummy: Extend to -dev and -src packages
This avoids errors when running populate_sdk under opkg:

 * Problem 1/1:
 *   - package busybox-dev-1.30.1-r0.core2-64 requires busybox = 1.30.1-r0, but none of the providers can be installed
 *
 * Solution 1:
 *   - allow deinstallation of target-sdk-provides-dummy-1.0-r0.sdk-provides-dummy-target

 * Solution 2:
 *   - do not ask to install a package providing busybox-dev

(From OE-Core rev: 29ea8bdf67829d296ae4755b919f8af828a9a235)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 33d2cde3be4d25389cbea07064ffbc7b2f74273e)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-24 16:48:38 +00:00
André Draszik
85bf473981 systemd: RDEPENDS on util-linux-umount
It looks like there is an implicit dependency on util-linux'
umount - as otherwise when using busybox' umount we see a
long delay on shutdown / reboot.

[YOCTO #13058]

(From OE-Core rev: 39a3d2c603429865af632fe41b2cf32c3dfdfb1d)

(From OE-Core rev: 68056a9f88021ee81e6475d35f2dc67f7436b9a5)

Signed-off-by: André Draszik <andre.draszik@jci.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-24 16:48:38 +00:00
Oleksandr Kravchuk
c1dbb55cd6 target-sdk-provides-dummy: add perl-module-overload
(From OE-Core rev: 9c2fbba5fcf377e650d16145c5313f027b5a5c43)

Signed-off-by: Oleksandr Kravchuk <oleksandr.kravchuk@pelagicore.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-24 16:48:38 +00:00
Mark Hatle
7a28e60171 bitbake: gitsm: The fetcher did not process some recursive submodules properly.
Move the submodule processing outside of the if statement to avoid any
optimizations that may happen.

Update the test cases to include the additional case, and split the other
test cases into individual tests to make it easier to figure out what
the failure may be.

(Bitbake rev: 7c1eb51d1e8a4c5f39bf9dddf05fb0b3598da72b)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0ec98c01ae50f95c9c74acf53013ac59e0e72b08)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-24 16:42:22 +00:00
Mark Hatle
f2da187f94 bitbake: gitsmy.py: Fix unpack of submodules of submodules
If the submodule is in a subdirectory, it needs to have that structure
preserved.  This means the unpack path needs to be in the 'dirname' of the
final path -- since the unpack directory name is specified in the URI.

Additional specific test cases were added to ensure this is working properly
based on two recent error reports.

(Bitbake rev: acca06d060e49b2441562b4dc94416af9ab8187e)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8c8ecec2a722bc2885e2648d41ac8df07bdf660d)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-24 16:42:22 +00:00
Mark Hatle
5de832c54f bitbake: gitsm.py: Fix relative URLs
Prior code happened to work with relative URLs, when the code was recently
restructured it caused all relative urls to no longer work.  Restore the prior
code flow for relative support and better comment why that code is there.

(Bitbake rev: 39afa6ead1d72813b2a294f065d759bad08fb53d)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 14bb383af0ca98e0e04ec217e537b6a899f3658e)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-24 16:42:22 +00:00
Mark Hatle
e97607a51e bitbake: gitsm.py: Refactor the functions and simplify the class
The update_submodules and unpack_submodules functions were nearly indentical,
so we made a common function where the different behavior could be passed
in by the download and unpack users.  The new function is process_submodules.

Moved the parse_gitmodules function under the new process_submodules, since
there are no external callers.

Refactor the file relative path processing to the URL translation code.
We also add a warning to the translation if a relative ssh URL has been
detected.  Since this can cause a problem.

In the case of a relative URL that does not work after being translated,
it should be possible to use the MIRROR functions to manual translate the
generated relative URL into one that works properly.

Remove 'git config' processing on download contents.  It turns out this is not
necessary since all of the later components work using the git fetcher.

Limit the 'git submodule update' call to only when unpacking a non-bare
repository.  Submodules are always loaded as bare, so this prevents
intermediate unpacks from being attempted.

Finally, the test cases were updated and the new commit ids in the test
repository were updates as well.

(Bitbake rev: 8b02eb8e5d8e3a09e19ed96a4ccdf5f755e97a74)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 610dbee5634677f5055e2b36a3043cd197fb8c51)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-24 16:42:22 +00:00
Mark Hatle
c674e7ff7e bitbake: gitsm.py: Rework the shallow fetcher and test case
A custom shallow submodule is no longer necessary, as the regular git
fetcher is used and shallow handling works with the same code.

The only general difference between the regular change is simply declaring a
clone as shallow, when appropriate.

This also removes a potential race condition in copying repositories
vs cloning them.

The gitsm shallow fetcher test was revised to verify that the submodule
is shallow cloned along with the primary repository.

The first step of this change was to be sure to clean the gitsubmodule download
directory, as was previously done with the may gitsource directory.

Additional test components were added to verify commit counts, and an
obsolete (and likely incorrect) test for the .git/modules directory to be
empty was also removed.

(Bitbake rev: 85dc1c65b661f9712ae98587d4d0d868146c8cff)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f9cc4684dcf4281acc557cda8cb35602354ac3d6)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-24 16:42:22 +00:00
Mark Hatle
4c6be64428 bitbake: gitsm.py: revise unpack
Greatly simply the unpack rule by copying the general functionality of
update_submodules as unpack_submodules.  This will recursively construct
a set of urls and unpack them using the standard system behaviors.

The overall code may be slightly bigger, but this ensures that all of the
standard locks are inplace, ensuring the code doesn't change out from
under the unpack function.  (This could have happened before due to using
'cp' instead of further unpacks on submodules.  This may still happen in
shallow clones.)

(Bitbake rev: 02ce6783bd3cfc117c77ca0380a87b0e1c60d8db)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7d7ee630f1c65e7dd234f945edf5e3b3bcb0fc30)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-24 16:42:22 +00:00
Mark Hatle
7d9f83731f bitbake: gitsm.py: Optimize code and attempt to resolve locking issue
It was reported that a race condition on a shared download directory could
occur with the gitsm fetcher, the result happened with a call to

  git config

that occured within the update_submodules.  Since the fetch is locked by the
upper level, it was probably the prior need_update(...) function causing this
because of some old code.

The gitsm class inherits the git class.  The need_update was overridding the
version in gitsm, so that it forceably checked the submodules.

It's clear we can optimize the code by only updating if the primary repository
needs updating.  Since we don't care if the submodule repository has changed
because if the primary hasn't, references to the submodule won't change.

(Bitbake rev: 4660933f83e528766d71eab662cc79dcf17b4be7)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 346338667edca1f58ace769ad417548da2b8d981)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-24 16:42:22 +00:00
Mark Hatle
2570de58a0 bitbake: tests/fetch.py: Add alternative gitsm test case
In order to test the ssh processing in gitsm, we add an alternative
testcase that can be downloaded from git.yoctoproject.org.  However,
this test case requries (read) access, via ssh, to git.yoctoproject.org.

(Bitbake rev: 54802438f2f2d73aba3e7fb8d6cce45aa7cffe77)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c8554cdc1287620fe8e8960561e614567879a010)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-24 16:42:22 +00:00
Mark Hatle
f72d43db80 bitbake: gitsm.py: Add support for alternative URL formats from submodule files
The following appear to be the git supported formats:

  proto://user:pass@host/path  (URI format)
  user@host:path (SSH format)
  /path or ./path or ../path (local file format)

We adjust the parsing to find out if we have a URI format or not.
When we are NOT in URI format, we do our best to determine SSH or
file format by looking for a ':' in the overall string.  If we find
a ':' we assume SSH format and adjust accordingly.

Note, in SSH format we simply replace the ':' with a '/' when constructing
the URL.  However, if the original path was ":/...", we don't want '//' so
we deal with this corner case as well.

(Bitbake rev: a21b2598531d52123933a0ac1c4deeecfdd1697d)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit dcac05e7dc6b0c5f8e63d36ad105b7eab41f0016)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-24 16:42:22 +00:00
Mark Hatle
d5a6da8b3d bitbake: gitsm.py: Fix when a submodule is defined, but not initialized
It is possible for a submodule to be defined in the .gitmodules file, but
never initialized in the repository itself.  This shows itself when searching
for the defined module hash you will get back a empty value.

Similarly we need to identify and skip defined but not initialized submodules
during the unpack stages as well.

Thanks to raphael.lisicki@siemens.com for their help is figuring out how
to resolve this issue.

Additionally a problem was found where, while unlikely, it may be possible
for the wrong revision to have been searched using ls-tree.  This has been
resolved in the update_submodules function by keeping the correct revision
along with the submodule path.

(Bitbake rev: e9c965bd816c8e4e5cc8e45db8e0dab597ce5a6f)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 49e1ff920143dcd4e7f73933d7ab8a84b8ffa1a3)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-24 16:42:22 +00:00
Filip Jareš
506ec088e5 ref-manual: Fixed SRC_URI cut-and-paste error.
The update fixes a copy-paste-and-forget-to-update-everything error
in the documentation of the `SRC_URI` entry in the Reference Manual.
The `maxdate` paragraph just repeated what is there for the
neighboring `mindate` paragraph which was incorrect.

(From yocto-docs rev: fdf0a0e2e0bd0852208d08e5661a04d25c04feef)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-19 23:54:13 +00:00
Ross Burton
f5a57e939e mesa: ship /etc/drirc in mesa-megadriver
Many years not shipping the stub drirc seemed like a good idea,
but now it has content and is essential for some applications to run.

Following patches in master, ship this file in mesa-megadriver.

(From OE-Core rev: fbb688ab3eeca1bbfbaaaaffd8c81fd8052bcc68)

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-03-05 22:24:13 +00:00
Denys Dmytriyenko
1c8d0dbe67 openssl10: Fix mutliple include assumptions for des.h in opensslconf.h
The fix is heavily based on Khem's previous fix for bn.h/BN_LLONG breakage:
https://git.openembedded.org/openembedded-core/commit/?id=f787b0bb9b0626ddbf2ac94cb206c76716a3773d

(From OE-Core rev: 914e1520bf9c45e14bce9993c9131a2c0702b9c9)

(From OE-Core rev: 266e73a99b54f741bdbe5d689933c46b2b4731fd)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Cc: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-05 22:24:13 +00:00
Hongxu Jia
e34a5eb55f rng-tools: Fix crazy defaults
Since commit [f1dc9ac rng-tools: Fix crazy defaults] fixed
init based on sysvinit, this fix rngd.service based on systemd.

(From OE-Core rev: b1980460839baa04d10866877cbfe31ca8093ff3)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-05 22:22:51 +00:00
Richard Purdie
7c76c5d78b bitbake: cooker: Tweak multiconfig dependency resolution
There were a couple of problems with the multiconfig dependency resolution:

- the "if mc" condition triggering this code wasn't correct, it needs
  to be "if more than one multiconfig" configured
- after adding providers we need to call add_unresolved again
  and rebuild mcdeps within the "while new" loop

By fixing these issues we allow various other combinations of multiconfig
builds to work which previously didn't.

[YOCTO #13090]
[YOCTO #13130]

(Bitbake rev: b59cb2bc63940b9ebd8288de7ca4b1d9e96e026c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-25 22:33:05 +00:00
Richard Purdie
50b9800631 bitbake: siggen: Fix multiconfig corner case
There was already a fix to ignore some multiconfig dependencies but its
'opposite' case wasn't covered. Cover that combination to so as to avoid
tracebacks in multiconfig builds.

[YOCTO #13090]
[YOCTO #13130]

(Bitbake rev: 3d4e557a539a8ef4a3b7a1e36fc99b118c01cbf4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-25 22:33:05 +00:00
Richard Purdie
f19652fc3f bitbake: runqueue: Filter out multiconfig dependencies from BB_TASKDEPDATA
The consumers of BB_TASKDEPDATA in OE metadata can't cope with multiconfig
dependencies. The choice is either to start adding code to each of them to
filter out multiconfig dependencies, or do this at source.

After consideration we've decided to do this at source as doing otherwise
is code duplication and error prone and in any case we've looked at, they
don't make sense.

[YOCTO #13090]
[YOCTO #13130]

(Bitbake rev: 7f157ea8ecf9ba259bb7e226cfd5f2870b7853a3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-25 22:33:05 +00:00
Richard Purdie
c67e44b839 bitbake: runqueue: Fix dependency loop analysis 'hangs'
Currently the mechanism for breaking out of the dependnecy loop analysis
code is broken and doesn't work leading to bitbake appearing to hang.

Add in a custom exception for this purpose and fix the code to exit
as intended, fixing the hang and making the dependency loop code
usable again.

(Bitbake rev: e39dbd72ef44eebae32f9fe3b75a1bf789605558)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-25 22:33:05 +00:00
Peter Kjellerstedt
75c837e274 libaio: Extend to native
lvm2 currently requires libaio. So building lvm2-native will result in
the following error.

  ERROR: Required build target 'lvm2-native' has no buildable providers.
  Missing or unbuildable dependency chain was: ['lvm2-native', 'libaio-native']

Extend libaio to native to fix this issue.

(From OE-Core rev: 6c9b23b77e62ed382d44f94849c13c1f831e64a7)

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-02-25 22:27:40 +00:00
Richard Purdie
80adac85bc oe-build-perf-report/gitarchive: Move common useful functions to library
These functions can be reused by the resulttool code so move to the common
function library for this purpose.

(From OE-Core rev: c66f848938c04e133259c5b6903dc592866ab385)

(From OE-Core rev: 4b1bd35030c5502873106782a35c4f5a9446e20c)

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-02-25 22:27:40 +00:00
Richard Purdie
59714c52f0 scripts/oe-git-archive: Separate out functionality to library function
This turns the core of the script into a library function. Ultimately this
will let us call that code with custom 'keywords' rather than relying
on the data parsed from bitbake metadata which can't be used when archiving
historical results.

(From OE-Core rev: 4820ca2b0850e29b04a4fd5659a6e9837d6714d0)

(From OE-Core rev: e47c48768a01191ec36b9732288e05c9f5e80d52)

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-02-25 22:27:40 +00:00
Richard Purdie
4c25cd5f7a lib/buildstats: Improve error message
Just stating the recipe counts are different isn't helpful, showing
the differences makes it much easier to understand what changed.

(From OE-Core rev: 1d84b782e3af6f0e6922d72895c905877cc33739)

(From OE-Core rev: 047fd7cf6fc2a3d5d170241f5cc5b61b8d9d8522)

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-02-25 22:27:40 +00:00
Robert Yang
a0f99f3bcf runqemu: Make QB_MEM easier to set
It only could be set as the following in the past:
QB_MEM = "-m 256"

Now it also can be set as:
QB_MEM = "-m 256M (or m)"
QB_MEM = "256M (or m)"

[YOCTO #11522]

(From OE-Core rev: ad246f5ce0652bd917d85884176baa746e1379ff)

(From OE-Core rev: ed10ef4f8deaec739ce3713b6ce3b63e134a8c4a)

Signed-off-by: Robert Yang <liezhi.yang@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-02-25 22:27:40 +00:00
Robert Yang
18f000c708 runqemu: Let qemuparams override default settings
Fixed:
In meta/conf/machine/include/qemuboot-x86.inc:
QB_CPU_x86-64 = "-cpu core2duo"

$ runqemu qemux86-64 qemuparams="-cpu coreduo"
Check /proc/cpuinfo, it should use coreduo rather than core2duo since user
specifies it, but it doesn't, append qemuparams to the last can fix the
problem.

[YOCTO #11773]

(From OE-Core rev: a847dd7202a2c493788c45d11eb86866264af7a4)

(From OE-Core rev: 81ab6332bee0426201626cc8a0339ce3e6b81d6f)

Signed-off-by: Robert Yang <liezhi.yang@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-02-25 22:27:40 +00:00
Richard Purdie
11ec3b28b4 wic/engine: Fix missing parted autobuilder failures
OE-Core rev: a88bcbae850a2e6d182291d3f8e167aabdbe4842 broke the ability
to find parted as it may be in sbin which is not in PATH for some users
on some distros.

Iterate on the original patch to fix this and also fix the original problem.

(From OE-Core rev: af3803e5189d7814f9dbd238fb6dab200f351e1a)

(From OE-Core rev: 6e2bf8691ffd6004cb40e71a2d1d002b5ed5808f)

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-02-25 22:27:40 +00:00
William Bourque
b55c0d0a17 wic/engine.py: Load paths from PATH environment variable
Load self.paths from environment variable and
if it fails, fall back to hardcoded list.
This is required for users that would need to load
different e2fsprogs binaries if their system's ones
are not recent enought

(From OE-Core rev: a88bcbae850a2e6d182291d3f8e167aabdbe4842)

(From OE-Core rev: 319ee1bb146b91f78d7a141def2b1cf92cf88887)

Signed-off-by: William Bourque <wbourque@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-02-25 22:27:40 +00:00
Leonardo Augusto
11e09611df scripts/lib/wic/engine: Fix cp's target path for ext* filesystems
Python subprocess' shell=True defaults to /bin/sh[1][2], which
often refers to a POSIX-compliant shell. As the -e flag is
not defined in the POSIX standard[3], some shells may
interpret "-e" as the first argument to the echo command,
causing the rest of the command line to fail.

In this particular case, "echo -e 'cd {}'" is interpreted
as "-e cd {}", which causes the first line of the command
to fail, and causing cp to always place the source file
in the filesystem's root.

Replacing "echo -e" for a printf command makes this
more portable.

This issue only affects "wic cp" for ext* filesystems.

[1] https://docs.python.org/2/library/subprocess.html
[2] https://docs.python.org/3/library/subprocess.html
[3] http://pubs.opengroup.org/onlinepubs/9699919799

(From OE-Core rev: 9a5b703d4e60c3ccdf80b5289b8e6fc91133fcde)

(From OE-Core rev: bf51d6da725a3d5850c3cbd70fb91b91c08e507f)

Signed-off-by: Leonardo Augusto <leobsd@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-02-25 22:27:40 +00:00
Robert Yang
422710e0db checklayer: Avoid adding the layer if it is already present
* Rename add_layer() to add_layers() so that add_layer_dependencies() can
  re-use it.

* Avoid adding the layer if it is already present

[YOCTO #13148]

(From OE-Core rev: b9cc18d83f55ff48c3d6e60c56359f6736d5a06a)

(From OE-Core rev: 64310d9d18bb1751595c197e6955774ad5514844)

Signed-off-by: Robert Yang <liezhi.yang@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-02-25 22:27:39 +00:00
Changqing Li
35015f1751 checklayer: generate locked-sigs.inc under builddir
yocto-check-layer will find locked-sigs.inc under builddir,
but locked-sigs.inc is generated under current bitbake working
dir. if run yocto-check-layer outside builddir, we will met error
like "No such file or directory: *locked-sigs.inc". change to
run bitbake -S under builddir to fix this problem.

[YOCTO #12973]

(From OE-Core rev: 2ec0bc0b038bc6413978c8f34ef5c0d22b4bc3e7)

(From OE-Core rev: f236d8782958df953ca1e2a6f09779cbc8f2d600)

Signed-off-by: Changqing Li <changqing.li@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-02-25 22:27:39 +00:00
Robert Yang
3fd921d551 yocto-check-layer-wrapper: Fix path for oe-init-build-env
We only could run it in top of oe-core dir since it assumed oe-init-build-env
was in cwd, this patch fixes the problem.

[YOCTO #13148]

(From OE-Core rev: 47d7b5fcad127171243cc95c586c2c7f35cfac3b)

(From OE-Core rev: 09e4b9bead32f143f4a685794c4709fe41bf014d)

Signed-off-by: Robert Yang <liezhi.yang@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-02-25 22:27:39 +00:00
Richard Purdie
56cc4c12b1 oe-build-perf-report: Fix missing buildstats comparisions
Integers were being compared to strings leading to missing buildstats comparision
data. Fix this.

(From OE-Core rev: 2dbbf598192ae2b3aa488df042f56aa6c6634a00)

(From OE-Core rev: 9ee8845a583a3fa9e9b07d1b0301201ae56c6c41)

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-02-25 22:27:39 +00:00
Richard Purdie
f0853bfb3d oe-build-perf-report: Improve branch comparision handling
When comparing branches, correctly filter the revisions corresponding
to the specific branch specified.

Also use the commit numbers as a way to gauge spatially related commits
for comparision meaning comparisions for out of order build revisions
becomes meaninful.

This should improve the reporting for autobuilder generated builds.

Also improve the branch option help text.

(From OE-Core rev: 9f6f4ab6eec9dca07af7f53da5f737a6167bfb38)

(From OE-Core rev: 111ee3499308bcde54268d58bf6163a98a9733db)

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-02-25 22:27:39 +00:00
Richard Purdie
2968103ecf oe-build-perf-report: Allow commits from different branches
The code won't currently allow comparisions of two commits on different
branches even if the commits are specified by their hashes.

This updates the code to search two branches for any relavent commits,
hence allowing comparisions to be made. A particularly useful case is
master vs. master-next for example.

(From OE-Core rev: 2d835bb1570c515ae501442f3ce19fae8e249b27)

(From OE-Core rev: c4263bf021daafd4e89acd4cba48c9a7fbd0d8a1)

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-02-25 22:27:39 +00:00
Richard Purdie
8c32ee01a3 oe-build-perf-report: Allow branch without hostname
Allow the branch to be set without the hostname option. Previously
if hostname wasn't set, branch would be overwritten regardless of
whether it was set or not.

(From OE-Core rev: 3ec43bf4c6c8f7730a67f63ad4e14903f289014e)

(From OE-Core rev: b162c70dd6e926e1700553e27b41eb1c12ee2dce)

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-02-25 22:27:39 +00:00
Khem Raj
e9d1be84be multilib_header_wrapper.h: Use #pragma once
Avoid infinite include loops, especially with bits/wordsize.h which is
now possible with the synthesized headers since we now also synthesize
bits/wordsize.h itelf for some arches e.g. arm/aarch64

In cases where extra preprocessing tools are used such as clang-tidy
e.g. and these tools are not passed the knowledge about architecture
then case comes where we enter into header include loop for
bits/wordsize.h, since this template does explicitly include
bits/wordsize.h

To fix this emits the pragma once at beginning of file, this is better
solution than include guards, and pragma once is practically supported
on all compilers except few e.g. cray c/c++ compiler

(From OE-Core rev: 6ab11ac25bb987642d5ca1a07f4bd5f30c66c9c5)

(From OE-Core rev: 8f00480fe826ebaff2b78796d757b9e2734f2deb)

Signed-off-by: Khem Raj <raj.khem@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-02-25 22:27:39 +00:00
Khem Raj
6ea2afed93 send-error-report: Use https instead of http protocol
errors.yp.org can understand https

(From OE-Core rev: f540fed0aec24e28eff8522fddbe3cf7ee45e30b)

(From OE-Core rev: 857ebd7fac590f569bff7e8ca29b6ae22eaaa65a)

Signed-off-by: Khem Raj <raj.khem@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-02-25 22:27:39 +00:00
Jan Kiszka
909e75e53b oe-git-proxy: Avoid resolving NO_PROXY against local files
NO_PROXY may contain * elements, and if we are unlucky (or want to match
all hosts with *), we will pick up local files rather than doing the
match in match_host. Quoting helps here.

(From OE-Core rev: 7e216e806ca765152fd874e24785f783a3201284)

(From OE-Core rev: 5b5c8ccaba188530ae4b05fd49804aaa74cbb949)

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.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-02-25 22:27:39 +00:00
Dan Dedrick
31ed0032ed devtool: improve git repo checks before check_commits logic
The check_commits logic assumes that both devtool-base and args.branch
exist in the git repo that it is operating on. In order to prevent
errors at that point it's best to first ensure that both of these refs
actually exist. If they don't both exist then the check_commits logic
should just be skipped, as it would be if the repo wasn't originally
checked out by devtool.

Previously if a user removed the args.branch branch from their devtool
cloned repo this code would crash on adding the repo with -n. The crash
would look like this:

Traceback (most recent call last):
  File "/home/ddedrick/src/poky/scripts/devtool", line 344, in <module>
    ret = main()
  File "/home/ddedrick/src/poky/scripts/devtool", line 331, in main
    ret = args.func(args, config, basepath, workspace)
  File "/home/ddedrick/src/poky/scripts/lib/devtool/standard.py", line 812, in modify
    (stdout, _) = bb.process.run('git log devtool-base..%s' % branch, cwd=srctree)
  File "/home/ddedrick/src/poky/bitbake/lib/bb/process.py", line 178, in run
    raise ExecutionError(cmd, pipe.returncode, stdout, stderr)
bb.process.ExecutionError: Execution of 'git log devtool-base..devtool' failed with exit code 128:
fatal: ambiguous argument 'devtool-base..devtool': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

(From OE-Core rev: f13a3490fdb404bbd4c77e45b83540d6deec1358)

(From OE-Core rev: ebd3c5e1534ba4ac2a6e97725f8d8650d4aa52a0)

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-02-25 22:27:39 +00:00
Dan Dedrick
68934a4beb devtool: remove duplicate overrides
DEVTOOL_EXTRA_OVERRIDES only needs one entry for each instance of
overrides. Previous to these changes it would find every override to
SRC_URI and add it to the list. This would duplicate instances where
SRC_URI is modified multiple times with the same override like:
SRC_URI_append_foo += "file://0001-foo.patch"
SRC_URI_append_foo += "file://0002-bar.patch"

A bbappend might also overwrite a SRC_URI override, which would also
cause multiple instances to occur.

When there are multiple instances of the same override in
DEVTOOL_EXTRA_OVERRIDES it causes devtool modify to fail when creating
override branches. The failure occurs when attempting to create the same
override branch a second time and looks like this:

The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
     0001:
 *** 0002:devtool_post_patch(d)
     0003:
File: '/build/poky/meta/classes/devtool-source.bbclass', lineno: 202, function: devtool_post_patch
     0198:
     0199:        for override in extra_override_list:
     0200:            localdata = bb.data.createCopy(d)
     0201:            if override in default_overrides:
 *** 0202:                bb.process.run('git branch devtool-override-%s %s' % (override, devbranch), cwd=srcsubdir)
     0203:            else:
     0204:                # Reset back to the initial commit on a new branch
     0205:                bb.process.run('git checkout %s -b devtool-override-%s' % (initial_rev, override), cwd=srcsubdir)
     0206:                # Run do_patch function with the override applied
File: '/build/poky/bitbake/lib/bb/process.py', lineno: 178, function: run
     0174:        if not stderr is None:
     0175:            stderr = stderr.decode("utf-8")
     0176:
     0177:    if pipe.returncode != 0:
 *** 0178:        raise ExecutionError(cmd, pipe.returncode, stdout, stderr)
     0179:    return stdout, stderr
Exception: bb.process.ExecutionError: Execution of 'git branch devtool-override-foo devtool' failed with exit code 128:
fatal: A branch named 'devtool-override-foo' already exists.

(From OE-Core rev: 90f667db2219f04e6d61588cd61056d3d8da6d7d)

(From OE-Core rev: 162be3d43f1d48a22b3aed32cc2f593355e5bf81)

Signed-off-by: Dan Dedrick <ddedrick@lexmark.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-02-25 22:27:39 +00:00
Richard Purdie
67e7e1aaab scripts/contrib/build-perf-test.sh: Remove it
This is the older script which the code in lib/oeqa/buildperf replaces so
delete the obsolete script to avoid confusion.

(From OE-Core rev: 9908b7955e75e10d6a1384e4c08417ef534464af)

(From OE-Core rev: 9dd395357d32286b5f81673920638316cf01f883)

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-02-25 22:27:39 +00:00
Richard Purdie
faab57c597 scripts/contrib/build-perf-test-wrapper.sh: Improve interaction with autobuilder automation
This tweaks the script to:

* Ensure directories exist and can be written to
* Allow the downloads directory to be specified
* Error early if the phantomjs or optipng dependencies are not installed
* Allow the location of the globalres.log file to be specified

This means that the main build directory can be destroyed and any state
from the script is stored elsewhere allowing it to be triggered
automatically from the autobuilder infrastructure.

(From OE-Core rev: 1de5fbd484e6a747ae6419ccc89d8c2911b9706b)

(From OE-Core rev: d6f00d9d89f62e60eaa87abf89477ed7865e2859)

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-02-25 22:27:39 +00:00
Khem Raj
7322e64f9b openssl10: Fix mutliple include assumptions for bn.h in opensslconf.h
After adding #pragma once to wrapper header ( opensslconf.h ) this
latent issue got to bite us, where it expect bn.h to be including
openssl.h to define BN_* defines, which is fragile. This patch removes
the contraints for nested includes for bn.h

(From OE-Core rev: f787b0bb9b0626ddbf2ac94cb206c76716a3773d)

(From OE-Core rev: 19d5bffafb17ea0d5e8060716205cab6ab64f302)

Signed-off-by: Khem Raj <raj.khem@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-02-25 22:27:39 +00:00
Alexander Kanavin
ab1ba8137d openssl10: update to 1.0.2q
(From OE-Core rev: 03149ca307282c22dd9ceb6fe3224bf586b03f6d)

(From OE-Core rev: 572865e0d0a61e2096083edc622366e4ac9a8ad0)

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-02-25 22:27:39 +00:00
Xulin Sun
118407fb1e openssl: fix multilib file install conflicts
To avoid issue like below if run "bitbake lib32-core-image-minimal"
with series userspace packages(LAMP,krb5...) added.

Add multilib_script support for openssl's c_rehash which is a perl script.

Error: Transaction check error:
  file /usr/bin/c_rehash conflicts between attempted installs of
  lib32-openssl-bin-1.1.1-r0.armv7at2hf_neon and openssl-bin-1.1.1-r0.aarch64

(From OE-Core rev: a4032f3cc5de451f0e97eca1f0cbe4a310e1560b)

(From OE-Core rev: eb875a7ecb74a9a63d81c64ec770ec65ed5d0211)

Signed-off-by: Xulin Sun <xulin.sun@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-02-25 22:27:39 +00:00
Liu Haitao
a9c1c920c0 iw: fix parsing of WEP keys
The current iw4.14 has a fatal bug that could casue a Segmentation fault
when parsing WEP keys. The issue has been fixed by upstream.
[https://git.kernel.org/pub/scm/linux/kernel/git/jberg/iw.git/commit/?id=0e39f109c4b8155697a12ef090b59cdb304c8c44]

(From OE-Core rev: 6de9eb72f679dd8d8e4de972b1da978522cff8b4)

(From OE-Core rev: fcc56a2e2689a1574b9b928f8cd53e28721e4b9f)

Signed-off-by: Liu Haitao <haitao.liu@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-02-25 22:27:39 +00:00
Robert Yang
8c31da0835 bluez5: Fix a race issue for tools
Fixed:
cp ../bluez-5.50/tools/hid2hci.rules tools/97-hid2hci.rules
cp: cannot create regular file tools/97-hid2hci.rules: No such file or directory
make[1]: *** [tools/97-hid2hci.rules] Error 1

(From OE-Core rev: 5cb2b165cf89a307531e199248bc98fb51541521)

(From OE-Core rev: be0c94a40972618433c85fc097ede255f95e6c1d)

Signed-off-by: Robert Yang <liezhi.yang@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-02-25 22:27:39 +00:00
Serhey Popovych
67f6006b8e openssl: Skip assembler optimized code for powerpc64 with musl
This code is written for elfv1 ABI in mind and linked as such: disable
all optimizations at the moment when building for powerpc64 with musl.

(From OE-Core rev: bee9e807430178426b2a5635b573ae285e889c39)

(From OE-Core rev: f2513232d9adb6ec9cf6de06d577aeb6e34b69e0)

Signed-off-by: Serhey Popovych <serhe.popovych@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-02-25 22:27:39 +00:00
Jens Rehsack
a5e7dae45e avahi: avoid depending on skipped package
When built without D-Bus, libavahi-client is not build:
  Building libavahi-client:           no   (You need avahi-daemon and D-Bus!)
which causes avahi-dev RDEPENDS failing when creating an image
containing development-tools:
 *   - nothing provides libavahi-client = 0.7-r0 needed by avahi-dev-0.7-r0.cortexa8hf-neon

(From OE-Core rev: 319532792435be73e96c8319e90336e1298ac2a1)

(From OE-Core rev: 0e65ddb5873c6d32ae3c8e86b269ada730cf6e9c)

Signed-off-by: Jens Rehsack <sno@netbsd.org>
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-02-25 22:27:39 +00:00
Douglas Royds
db11912b39 openssl: Strip perl version from installed ptest configdata.pm file
(From OE-Core rev: fab0f5162b930f87798be61359a5c287fb13a76c)

(From OE-Core rev: d59e340dcd16b2b6a361196f867d9a31a9f36677)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.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-02-25 22:27:39 +00:00
Douglas Royds
95e71ff647 openssl ptest: Strip build host paths from configdata.pm
This file contains CC, CPP, CFLAGS, CXXFLAGS and the like.

(From OE-Core rev: c423cd1070045849c3a5b4e2b53043b28e5194f7)

(From OE-Core rev: a51c48feffb20a1d53dbcd3c06e3ebb5afc5ace6)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.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-02-25 22:27:39 +00:00
Jonas Bonn
88789cabeb keymaps: tighten package write dependency
The dependency on systemd-systemctl-native is only needed if _both_
systemd and sysvinit are in play.

(From OE-Core rev: 3ea08f4b24f8a49c3d5039b62b39d6419cfe234c)

(From OE-Core rev: a1031ce496f6d8b54169ae9ae0e928032631d5df)

Signed-off-by: Jonas Bonn <jonas@norrbonn.se>
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-02-25 22:27:39 +00:00
Otavio Salvador
eed221a15e linux-firmware: Bump to 710963f revision
Following changes are applied:

710963f Merge https://github.com/ajaykuee/linux-firmware
c24aec4 nvidia: add TU10x typec controller firmware
28f5f7d Merge git://git.marvell.com/mwifiex-firmware
f30a319 Merge branch 'ath10k-20190201' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/linux-firmware
8fcf0ec bnx2x: Add FW 7.13.11.0.
8bf607c amdgpu: add firmware for vega20 from 18.50
578aee3 amdgpu: bump year on license
bd72387 linux-firmware: update Marvell PCIe-USB8997 firmware image
6cfdd52 linux-firmware: update Marvell SD8897-B0 firmware image
2206320 linux-firmware: add Marvell SD8977 firmware image
6b5e23a ath10k: QCA9984 hw1.0: update firmware-5.bin to 10.4-3.9.0.2-00021
0eef77d ath10k: QCA988X hw2.0: update firmware-5.bin to 10.2.4-1.0-00043
1bd5312 ath10k: QCA9888 hw2.0: update firmware-5.bin to 10.4-3.9.0.2-00024
97b1f93 ath10k: QCA6174 hw3.0: update board-2.bin
a8b75ca Merge tag 'add-rpi-fw' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux-firmware
56483ad brcm: Add BCM43455 NVRAM for Raspberry Pi 3 B+
638a91a brcm: Fix filename for BCM43430 NVRAM for the Raspberry Pi 3 Model B
bc65650 amdgpu: add raven2 fw for 18.50 release
32201bb amdgpu: add picasso fw for 18.50 release
b1eae29 Revert "brcm: Add BCM43455 NVRAM for Raspberry Pi 3 B+"
89d37c6 linux-firmware: Update firmware file for Intel Bluetooth,8265
f089658 linux-firmware: Update firmware patch for Intel Bluetooth 8260
ae90c3b linux-firmware: Update firmware file for Intel Bluetooth,9260
9723ba4 linux-firmware: Update firmware file for Intel Bluetooth,9560
c7148ed Merge tag 'add-rpi-fw' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux-firmware
128441e Merge tag 'iwlwifi-fw-2018-12-30' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/linux-firmware
56cbf41 Merge git://git.marvell.com/mwifiex-firmware
930f276 brcm: Add BCM43430 NVRAM for the Raspberry Pi 3 Model B
fca5958 brcm: Add BCM43455 NVRAM for Raspberry Pi 3 B+
63ca64a linux-firmware: update Marvell USB8801 B0 firmware image
b727739 iwlwifi: update firmwares for 9000 series
80dee31 cxgb4: update firmware to revision 1.22.9.0
0f22c85 Revert "amdgpu: update vega10 fw for 18.50 release"
117d211 brcm: Add 4330 NVRAM for the Prowise PT301 tablet
912d6a5 brcm: Add 43430 NVRAM for the Chuwi Vi8 Plus tablet
f16cf5e brcm: Add 43340 based AP6234 NVRAM for the Meegopad T08 HDMI stick
5a2766c brcm: Add 43430a0 based AP6212 NVRAM for the Jumper EZpad mini 3 tablet
867ac13 brcm: Add 43430a0 based AP6212 NVRAM for the Onda V80 Plus tablet
a5662fb brcm: Add 4356 based AP6356 NVRAM for the GPD win handheld
f055ceb brcm: Add brcmfmac43362-sdio.lemaker,bananapro.txt symlink
d9430ac brcm: Add 43362 based AP6210 NVRAM for the Cubietech Cubietruck
eb34562 WHENCE: Put quotes around brcmfmac NVRAM filenames
be15035 check_whence.py: Add support for filenames with spaces in them
e6b9001 rtl_bt: Add firmware and configuration files for the Bluetooth part of RTL8723BS
3de2546 Merge git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/linux-firmware
494709e Merge branch 'BXT_HUC' of git://anongit.freedesktop.org/drm/drm-firmware
8707ef3 iwlwifi: update firmwares for 8000 series
156b549 iwlwifi: add -43.ucode for 9000 series
8a396b6 iwlwifi: update -41.ucode for 9000 series
211de16 brcm: provide new firmwares for BCM4366 chipset
813fa1f Mellanox: Add new mlxsw_spectrum firmware 13.1910.622
a330ddb Merge branch 'for-upstream' of https://github.com/crojewsk/linux-firmware
8de1d88 cavium: Update firmware for CNN55XX crypto driver
a7ea5a8 amdgpu: update vega12 fw for 18.50 release
ec4b0cd amdgpu: update vega10 fw for 18.50 release
1abe3c3 amdgpu: update raven fw for 18.50 release
6e38fef amdgpu: update polaris11 fw for 18.50 release
df89864 amdgpu: update polaris10 fw for 18.50 release
a91e850 amdgpu: add firmware for vega12
6cca138 amdgpu: Add new polaris MC firmwares
e8404a6 amdgpu: Add new polaris SMC firmwares
8aa9e3e linux-firmware: Update AMD cpu microcode
f3f6ada Merge branch 'MSCC-PHYs' of https://github.com/QSchulz/linux-firmware
4bbd950 Merge branch 'for-upstream' of git://git.chelsio.net/pub/git/linux-firmware
d9fb2ee nfp: update Agilio SmartNIC flower firmware to rev AOTC-2.10.A.13
57d49d5 microchip: add firmware for VSC8574 and VSC8584 Ethernet PHYs
82f6dbf linux-firmware: intel: Update Cannonlake audio firmware.
69f153b firmware/huc/bxt: Add huC Update for BXT
5904eab nfp: update Agilio SmartNIC firmware to rev 2.1.16
e7cdec4 cxgb4: update firmware to revision 1.21.5.0

License-Update:
  - LICENSE.amdgpu: Copyright year update;
  - WHENCE: New firmware files additions and version updates;

(From OE-Core rev: 4e6d242eb9678430df387c0c106d305df6d2e71b)

(From OE-Core rev: c6b514f0f729a5ee2f97d54dbe142de8d0bf1900)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
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-02-25 22:27:39 +00:00
Ross Burton
26fbff1363 linux-firmware: split out liquidio firmware
Part of this firmware is a pre-built Linux kernel, so it's both huge (25MB) and
triggers binary security scanners as the kernel is 3.10.87.

(From OE-Core rev: 973befb880094c1d862291be0bdfa74ccdfa0929)

(From OE-Core rev: b2885302dfb4b25ff1faf1906c06ba290c644be8)

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-02-25 22:27:39 +00:00
Ross Burton
5f17ea24a3 linux-firmware: recommend split up packages
(From OE-Core rev: 54cd9bd1b7d089169e6d6fe73a77930d736f46f0)

(From OE-Core rev: 463a99a08866936fbbd4178bfe5b6679d6d103fa)

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-02-25 22:27:39 +00:00
Bruce Ashfield
782066691b linux-yocto/4.18: update to v4.18.27
Integrating the -stable updates from Paul Gortmaker that comprise the
following commits:

   fb957805a800 Linux 4.18.27
   e40e99b6b15d ipmi:ssif: Fix handling of multi-part return messages
   ec5b2f3f897b ipmi: Prevent use-after-free in deliver_response
   d605dfec5314 ipmi: msghandler: Fix potential Spectre v1 vulnerabilities
   6fcd5c67bbed ipmi: fix use-after-free of user->release_barrier.rda
   8978d7c6dec4 Bluetooth: Fix unnecessary error message for HCI request completion
   9aa6a6afdc9d iwlwifi: mvm: Send LQ command as async when necessary
   be293e2c8d5d mm, proc: be more verbose about unstable VMA flags in /proc/<pid>/smaps
   5da1802b5dd9 userfaultfd: clear flag if remap event not enabled
   08861c6db0c1 mm/swap: use nr_node_ids for avail_lists in swap_info_struct
   fbd6851e6d57 mm/page-writeback.c: don't break integrity writeback on ->writepage() error
   42af1b118dec ocfs2: fix panic due to unrecovered local alloc
   e701c6b47b1e scsi: megaraid: fix out-of-bound array accesses
   c2414688a11f scsi: smartpqi: call pqi_free_interrupts() in pqi_shutdown()
   248849ffcee8 ath10k: fix peer stats null pointer dereference
   e6e7a27d9894 scsi: smartpqi: correct lun reset issues
   f82c77b69dd4 scsi: mpt3sas: fix memory ordering on 64bit writes
   7fe3902a1b30 IB/usnic: Fix potential deadlock
   07716336ae4f sysfs: Disable lockdep for driver bind/unbind files
   52223b291461 ALSA: bebob: fix model-id of unit for Apogee Ensemble
   f55b7d8c5747 dm: Check for device sector overflow if CONFIG_LBDAF is not set
   744fb8e55bdc clocksource/drivers/integrator-ap: Add missing of_node_put()
   c7e5ef0fad26 quota: Lock s_umount in exclusive mode for Q_XQUOTA{ON,OFF} quotactls.
   051f86c6e4fe perf tools: Add missing open_memstream() prototype for systems lacking it
   f40cb62ae378 perf tools: Add missing sigqueue() prototype for systems lacking it
   fe10d3ee10ae dm snapshot: Fix excessive memory usage and workqueue stalls
   dbb2e01442dd tools lib subcmd: Don't add the kernel sources to the include path
   9844e0dbc6d0 perf stat: Avoid segfaults caused by negated options
   d8dc75d3d9fc dm kcopyd: Fix bug causing workqueue stalls
   dff3fa1af70f dm crypt: use u64 instead of sector_t to store iv_offset
   26dfea580c42 x86/topology: Use total_cpus for max logical packages calculation
   5f13f97aad1e netfilter: ipt_CLUSTERIP: fix deadlock in netns exit routine
   d5e112ef684d netfilter: ipt_CLUSTERIP: remove wrong WARN_ON_ONCE in netns exit routine
   ed843e0c755b netfilter: ipt_CLUSTERIP: check MAC address when duplicate config is set
   ab68568470d6 perf vendor events intel: Fix Load_Miss_Real_Latency on SKL/SKX
   5ddf63d48c16 perf parse-events: Fix unchecked usage of strncpy()
   882079829dfb perf svghelper: Fix unchecked usage of strncpy()
   e689fb5da3fc perf tests ARM: Disable breakpoint tests 32-bit
   ef3ae9b3e540 perf intel-pt: Fix error with config term "pt=0"
   8639a6aacfd7 tty/serial: do not free trasnmit buffer page under port lock
   80c3cdea380c btrfs: improve error handling of btrfs_add_link
   2202b846b13c btrfs: alloc_chunk: fix more DUP stripe size handling
   ab3a0bbe8b0b mmc: atmel-mci: do not assume idle after atmci_request_end
   32f972da3d3a kconfig: fix memory leak when EOF is encountered in quotation
   10d9a6a992ee kconfig: fix file name and line number of warn_ignored_character()
   f7bcc8b2f7ef bpf: relax verifier restriction on BPF_MOV | BPF_ALU
   eec0856907da arm64: Fix minor issues with the dcache_by_line_op macro
   f2300824da71 clk: imx6q: reset exclusive gates on init
   1604baf07d22 arm64: kasan: Increase stack size for KASAN_EXTRA
   13ba93449b46 selftests: do not macro-expand failed assertion expressions
   3bbd076d9136 scsi: target: use consistent left-aligned ASCII INQUIRY data
   e37db031ef5a net: call sk_dst_reset when set SO_DONTROUTE
   fb614921bc34 media: venus: core: Set dma maximum segment size
   eb2c9c4ca615 ASoC: use dma_ops of parent device for acp_audio_dma
   68a03c142063 media: firewire: Fix app_info parameter type in avc_ca{,_app}_info
   b60c7a6713d5 powerpc/pseries/cpuidle: Fix preempt warning
   df30a1b5d8d2 powerpc/xmon: Fix invocation inside lock region
   4f03e69412ba media: uvcvideo: Refactor teardown of uvc on USB disconnect
   e6b355ae24ba pstore/ram: Do not treat empty buffers as valid
   72d479d16ec9 clk: imx: make mux parent strings const
   277364cbbd21 jffs2: Fix use of uninitialized delayed_work, lockdep breakage
   d206a38109fc efi/libstub: Disable some warnings for x86{,_64}
   643a876a5b01 rxe: IB_WR_REG_MR does not capture MR's iova field
   f5d7d77be0a6 scsi: qedi: Check for session online before getting iSCSI TLV data.
   5c28f6e86aff ASoC: pcm3168a: Don't disable pcm3168a when CONFIG_PM defined
   6ca660928969 selinux: always allow mounting submounts
   128146d4fb71 fpga: altera-cvp: fix probing for multiple FPGAs on the bus
   3e60aeeefaeb usb: gadget: udc: renesas_usb3: add a safety connection way for forced_b_device
   e1c8feafd5fe samples: bpf: fix: error handling regarding kprobe_events
   2b3081b77e3f clk: meson: meson8b: fix incorrect divider mapping in cpu_scale_table
   0bf0163094a9 drm/atomic-helper: Complete fake_commit->flip_done potentially earlier
   21330a217643 arm64: perf: set suppress_bind_attrs flag to true
   066b9fddd721 crypto: ecc - regularize scalar for scalar multiplication
   e26359f1620c MIPS: SiByte: Enable swiotlb for SWARM, LittleSur and BigSur
   3afff9e63c8e x86/mce: Fix -Wmissing-prototypes warnings
   9b3a195320ca ALSA: oxfw: add support for APOGEE duet FireWire
   04aba67bbf94 bpf: Allow narrow loads with offset > 0
   f30cc07af44f serial: set suppress_bind_attrs flag only if builtin
   d264a0f394ba writeback: don't decrement wb->refcnt if !wb->bdi
   74691a75e365 of: overlay: add missing of_node_put() after add new node to changeset
   419af4cd1015 selftests/bpf: enable (uncomment) all tests in test_libbpf.sh
   2e3f88e667c6 e1000e: allow non-monotonic SYSTIM readings
   f782c9d1da48 platform/x86: asus-wmi: Tell the EC the OS will handle the display off hotkey
   1261977d0ab4 ixgbe: allow IPsec Tx offload in VEPA mode
   7c73931b7303 drm/amd/display: Guard against null stream_state in set_crc_source
   39d92f35a8dc gpio: pl061: Move irq_chip definition inside struct pl061
   3aec221e313a netfilter: ipset: Allow matching on destination MAC address for mac and ipmac sets
   6a5be9a2ffef ipv6: Take rcu_read_lock in __inet6_bind for mapped addresses
   50d329eca381 r8169: Add support for new Realtek Ethernet
   d1aad26bb964 qmi_wwan: add MTU default to qmap network interface
   62b4f9e777bf net, skbuff: do not prefer skb allocation fails early
   eb5c8d69ea42 net: dsa: mv88x6xxx: mv88e6390 errata
   993bc7d54dac mlxsw: spectrum_switchdev: Set PVID correctly during VLAN deletion
   8fb8533a5309 mlxsw: spectrum: Disable lag port TX before removing it
   75daf3c475df ipv6: Consider sk_bound_dev_if when binding a socket to a v4 mapped address
   73827a8e2e30 nbd: Use set_blocksize() to set device blocksize
   f65d7d5574e1 drm/fb-helper: Ignore the value of fb_var_screeninfo.pixclock
   528fa9207170 loop: drop caches if offset or block_size are changed
   3df31feee60d loop: Fix double mutex_unlock(&loop_ctl_mutex) in loop_control_ioctl()
   d4082dc05ac9 loop: Get rid of 'nested' acquisition of loop_ctl_mutex
   78f210acfd34 loop: Avoid circular locking dependency between loop_ctl_mutex and bd_mutex
   3ebf94b079ba loop: Fix deadlock when calling blkdev_reread_part()
   fc4a4583f9f1 loop: Move loop_reread_partitions() out of loop_ctl_mutex
   2c2c3aa3ab1c loop: Move special partition reread handling in loop_clr_fd()
   e2c6ee2931ca loop: Push loop_ctl_mutex down to loop_change_fd()
   b442997a7285 loop: Push loop_ctl_mutex down to loop_set_fd()
   33d682700fb0 loop: Push loop_ctl_mutex down to loop_set_status()
   49f911a6a4c0 loop: Push loop_ctl_mutex down to loop_get_status()
   c3be2cd6ad9e loop: Push loop_ctl_mutex down into loop_clr_fd()
   9a4a7555c177 loop: Split setting of lo_state from loop_clr_fd
   d1f05249099a loop: Push lo_ctl_mutex down into individual ioctls
   50bbdfab99c1 loop: Get rid of loop_index_mutex
   bc40dc95afdc loop: Fold __loop_release into loop_release
   23d5eac305d0 block/loop: Use global lock for ioctl() operation.
   e0d29ef2a8b0 block/loop: Don't grab "struct file" for vfs_getattr() operation.
   8281310f32aa tipc: fix uninit-value in tipc_nl_compat_doit
   95c94c995d8e tipc: fix uninit-value in tipc_nl_compat_name_table_dump
   b099f94e1e4d tipc: fix uninit-value in tipc_nl_compat_link_set
   8e649a4839e0 tipc: fix uninit-value in tipc_nl_compat_bearer_enable
   e54458ac168e tipc: fix uninit-value in tipc_nl_compat_link_reset_stats
   9a8f56b713dc tipc: fix uninit-value in in tipc_conn_rcv_sub
   08ea8e1bfd4b sctp: allocate sctp_sockaddr_entry with kzalloc
   4c02dbac416c blockdev: Fix livelocks on loop device
   af7bec66e3ee selinux: fix GPF on invalid policy
   de9b736152ed block: use rcu_work instead of call_rcu to avoid sleep in softirq
   b232d75be71a netfilter: ebtables: account ebt_table_info to kmemcg
   aa4d1d6641b5 sunrpc: handle ENOMEM in rpcb_getport_async
   ddb29b79dbff media: vb2: be sure to unlock mutex on errors
   b9f0f2f9cf59 media: vb2: vb2_mmap: move lock up
   7308ece86dd0 LSM: Check for NULL cred-security on free
   71ba5763243b ipv6: make icmp6_send() robust against null skb->dev
   05e6bff7e7a6 bpf: in __bpf_redirect_no_mac pull mac only if present
   4181e7d61b1a media: vivid: set min width/height to a value > 0
   cbfc610ae5f2 media: vivid: fix error handling of kthread_run
   05f5b1394483 omap2fb: Fix stack memory disclosure
   28063cb50ed8 fix int_sqrt64() for very large numbers
   37112a960b7f Disable MSI also when pcie-octeon.pcie_disable on
   8fd61f25fcf3 arm64: dts: marvell: armada-ap806: reserve PSCI area
   58c3acda1754 arm64: kaslr: ensure randomized quantities are clean to the PoC
   9a013b991c02 pstore/ram: Avoid allocation and leak of platform data
   1aa9985076dc RDMA/nldev: Don't expose unsafe global rkey to regular user
   b409b102c7d8 media: v4l: ioctl: Validate num_planes for debug messages
   92dd1f93a3c9 mfd: tps6586x: Handle interrupts on suspend
   2e63388cbfdb OF: properties: add missing of_node_put
   1957d16bceca drm/i915/gvt: Fix mmap range check
   f1e756d98a46 MIPS: lantiq: Fix IPI interrupt handling
   ac8f34885340 mips: fix n32 compat_ipc_parse_version
   0830f02f81b3 scsi: sd: Fix cache_type_store()
   f25d687e3d8b scsi: core: Synchronize request queue PM status only on successful resume
   0f7357d9b8e4 Yama: Check for pid death before checking ancestry
   f94e8c0566d0 btrfs: wait on ordered extents on abort cleanup
   4b1129e59323 Revert "btrfs: balance dirty metadata pages in btrfs_finish_ordered_io"
   f9ac2ffa0255 xen: Fix x86 sched_clock() interface for xen
   79ad9eda6689 x86/xen/time: Output xen sched_clock time from 0
   7b3718f98f17 crypto: talitos - fix ablkcipher for CONFIG_VMAP_STACK
   c194e944dc98 crypto: talitos - reorder code in talitos_edesc_alloc()
   0b612c90335c crypto: authenc - fix parsing key with misaligned rta_len
   bed3cec44833 crypto: bcm - convert to use crypto_authenc_extractkeys()
   f1daff3d1cb1 crypto: ccree - convert to use crypto_authenc_extractkeys()
   b445d866e2fa crypto: authencesn - Avoid twice completion call in decrypt path
   1d5d8babb9a8 crypto: caam - fix zero-length buffer DMA mapping
   04836f6b86bd crypto: sm3 - fix undefined shift by >= width of value
   42cd579fd790 bonding: update nest level on unlink
   12dff858b935 r8169: don't try to read counters if chip is in a PCI power-save state
   5087c2825807 smc: move unhash as early as possible in smc_release()
   cf652d77ac45 tun: publish tfile after it's fully initialized
   faee48550bf4 tcp: change txhash on SYN-data timeout
   e87c244b11cd net: bridge: fix a bug on using a neighbour cache entry without checking its state
   c499692ded84 ipv6: fix kernel-infoleak in ipv6_local_error()
   a3ab077a3f79 arm64: Don't trap host pointer auth use to EL2
   6f127252fe5f arm64/kvm: consistently handle host HCR_EL2 flags
   e5fed8d49b5b scsi: target: iscsi: cxgbit: fix csk leak
   f1778e1523fa netfilter: nf_conncount: don't skip eviction when age is negative
   df00c2c10e4f can: gw: ensure DLC boundaries after CAN frame modification
   58e9f5227691 tty: Don't hold ldisc lock in tty_reopen() if ldisc present
   c6e522371001 tty: Simplify tty->count math in tty_reopen()
   e3ac534b8aa5 tty: Hold tty_ldisc_lock() during tty_reopen()
   3456ecaf8d34 tty/ldsem: Wake up readers after timed out down_write()
   2b1afc9c3506 Btrfs: use nofs context when initializing security xattrs to avoid deadlock
   403d0f9134a7 Btrfs: fix access to available allocation bits when starting balance
   343ae5df68a2 KVM: arm/arm64: Fix VMID alloc race by reverting to lock-less
   42e3a4424b12 sunrpc: use-after-free in svc_process_common()
   39e372a81d13 mm: page_mapped: don't assume compound page is huge or THP
   845f8457893a ext4: track writeback errors using the generic tracking infrastructure
   a0e9782472b8 ext4: use ext4_write_inode() when fsyncing w/o a journal
   c60e8096cc4d ext4: avoid kernel warning when writing the superblock to a dead device
   3ec6f7792def ext4: fix a potential fiemap/page fault deadlock w/ inline_data
   02d823cdb2a4 ext4: make sure enough credits are reserved for dioread_nolock writes
   154261392771 rbd: don't return 0 on unmap if RBD_DEV_FLAG_REMOVING is set
   98213a9d5ce0 drm/amdgpu: Don't fail resume process if resuming atomic state fails
   dc2660871a4a drm/amdgpu: Don't ignore rc from drm_dp_mst_topology_mgr_resume()
   26089047b42c drm/amd/display: Fix MST dp_blank REG_WAIT timeout
   003d29ca6fba PCI: dwc: Move interrupt acking into the proper callback
   b90e95417c02 PCI: dwc: Take lock when ACKing an interrupt
   d51df9e16301 PCI: dwc: Use interrupt masking instead of disabling
   c122260b25cd drm/amdgpu: Add new VegaM pci id
   789040bc5039 vfio/type1: Fix unmap overflow off-by-one
   86cecca3d93e i2c: dev: prevent adapter retries and timeout being set as minus value
   50558f1ca67b ACPI / PMIC: xpower: Fix TS-pin current-source handling
   4b75905144c7 ACPI: power: Skip duplicate power resource references in _PRx
   c78b2116c9d7 mm, memcg: fix reclaim deadlock with writeback
   8bf6869b4d75 mm/usercopy.c: no check page span for stack objects
   d6c879709135 slab: alien caches must not be initialized if the allocation of the alien cache failed
   bb1c250d55ff USB: Add USB_QUIRK_DELAY_CTRL_MSG quirk for Corsair K70 RGB
   39fa1b192449 USB: storage: add quirk for SMI SM3350
   4385b42a4cc2 USB: storage: don't insert sane sense for SPC3+ when bad sense specified
   d10e7b64e2b3 usb: cdc-acm: send ZLP for Telit 3G Intel based modems
   af318dc8d1f4 cifs: Fix potential OOB access of lock element array
   4c26d3a072da CIFS: Do not hide EINTR after sending network packets
   50c6b89008ec CIFS: Fix adjustment of credits for MTU requests
   a7eb3c3dc214 ALSA: hda/realtek - Disable headset Mic VREF for headset mode of ALC225
   dcb78b2a6e1c ALSA: hda/realtek - Add unplug function into unplug state of Headset Mode for ALC225
   26b78760c7ae ALSA: hda/realtek - Support Dell headset mode for New AIO platform
   94ddf9e27eb5 cpufreq: scmi: Fix frequency invariance in slow path
   516c5e5f484f Revert "x86/hyper-v: Check cpumask_to_vpset() return value in hyperv_flush_tlb_others_ex()"

(From OE-Core rev: c05bd600a4200a76513ff5a127f44efe1eab4045)

(From OE-Core rev: 0e064f8d2a5385fa937a06e230f1ffa650b4a8d9)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-02-25 22:27:39 +00:00
Bruce Ashfield
f18a9fe3f1 linux-yocto/4.18: update to v4.18.26
Integrating Paul Gortmaker's stable updates that comprise the following
commits:

   89754c7da63f Linux 4.18.26
   c564abe1908c NFSv4: Fix a tracepoint Oops in initiate_file_draining()
   890d46c677fd net: hns3: fix return value error while hclge_cmd_csq_clean failed
   9cee553eeef0 PCI/AER: Remove duplicate PCI_EXP_AER_FLAGS definition
   5ffe615c7959 fbdev: omap2: omapfb: fix ifnullfree.cocci warnings
   9a2eb194c961 fbdev: omap2: omapfb: fix bugon.cocci warnings
   795731d5307f fbdev: omap2: omapfb: fix boolreturn.cocci warnings
   8c656840a4cc PCI: mobiveil: Add Kconfig/Makefile entries
   0f7c216a5905 pinctrl: mediatek: include chained_irq.h header
   3f240c958d39 m68k/io: Add missing ioremap define guards, fix typo
   3aca0a7960d4 dm writecache: report start_sector in status line
   50de44fbe274 arm64: mm: Export __sync_icache_dcache() for xen-privcmd
   4c521f993bb9 tipc: add missing dev_put() on error in tipc_enable_l2_media
   0a7f5ef06a67 clk: actions: Add missing REGMAP_MMIO dependency
   90cbc3a9021a net: remove redundant input checks in SIOCSIFTXQLEN case of dev_ifsioc
   92b0d2a490ba nvmet: check fileio lba range access boundaries
   95550ccfee82 EVM: fix return value check in evm_write_xattrs()
   9c63338b2ecc multicast: remove useless parameter for group add
   818380e81f55 regulator: qcom_spmi: Do not initialise static to NULL
   80faeb6437d9 netfilter: nft_socket: Break evaluation if no socket found
   7896db3d286a netfilter: nft_tproxy: Move nf_tproxy_assign_sock() to nf_tproxy.h
   6ee2615cbc6c x86/hyper-v: Check cpumask_to_vpset() return value in hyperv_flush_tlb_others_ex()
   b98d573d572f drm/nouveau/kms/nv50-: fix drm-get-put.cocci warnings
   5b4fbedbb14a ASoC: qdsp6: q6routing: off by one in routing_hw_params()
   0ce601464e44 drm/amdgpu: get VCN start to process in the dpm disabled case
   cdb988723c92 net: stmmac: Fix PCI module removal leak
   f014d3b35b9f ip: on queued skb use skb_header_pointer instead of pskb_may_pull
   ee45cb43d804 linux/device.h: fix kernel-doc notation warning
   eb11d9a94de0 regulator: Revert "regulator: pfuze100: add enable/disable for switch"
   26d53be66490 KVM: VMX: hide flexpriority from guest when disabled at the module level
   1c9ebfaf8229 media: omap3isp: fix warning for !CONFIG_PM
   60f30bf144b8 cfg80211: fix wext-compat memory leak
   9685f469611b spi: spi-mem: Add missing description for data.nbytes field
   07b7e110c17b arm64: dts: renesas: r8a77990: Remove non-existing STBE region
   d6e90a26c5bd media: cx231xx: fix RC_CORE dependency
   7a281dbd6967 media: v4l: cadence: add VIDEO_V4L2 dependency
   3b95f46801af perf Documentation: Fix out-of-tree asciidoctor man page generation
   8d927494900d selftests: forwarding: mirror_gre_vlan_bridge_1q: Unset rp_filter
   8359363df5a6 net/mlx5: Use u16 for Work Queue buffer strides offset
   0f85219db2ee kconfig: remove a spurious self-assignment
   40535cf8ca98 netfilter: nf_tables: don't prevent event handler from device cleanup on netns exit
   10d27d084c16 drm/i915: Stop holding a ref to the ppgtt from each vma
   e9c0ce028417 f2fs: wake up gc thread immediately when gc_urgent is set
   b9f47e1e8a61 tcp: avoid resetting ACK timer upon receiving packet with ECN CWR flag
   f1a29b5218b0 tcp: mandate a one-time immediate ACK
   4474fad367bf selftests: rtnetlink: use a local IP address for IPsec tests
   f9229f11713c selftests: rtnetlink: hide complaint from terminated monitor
   2b4cb6ad782d i40iw: Reorganize acquire/release of locks in i40iw_manage_apbvt
   f2aa45e70b9a drm/sun4i: mark PM functions as __maybe_unused
   6c4f9bb9e2c7 drm/v3d: Checking for NULL vs IS_ERR()

(From OE-Core rev: 920440b0406f04963603e54f49527772fb14dacb)

(From OE-Core rev: 526af7d7741d678ccb0858131d511b2a9e67c9f2)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-02-25 22:27:39 +00:00
Mingli Yu
85e8503306 logrotate.py: restore /etc/logrotate.d/wtmp
During the test logrotate.LogrotateTest.test_1_logrotate_setup,
there is below logic:
 # mkdir $HOME/logrotate_dir
 # sed -i "s#wtmp {#wtmp {\n    olddir $HOME/logrotate_dir#" /etc/logrotate.d/wtmp

After all logrotate.LogrotateTest finished, only cleanup
$HOME/logrotate_dir as below, but don't restore
the config file /etc/logrotate.d/wtmp.
[snip]
def tearDownClass(cls):
    cls.tc.target.run('rm -rf $HOME/logrotate_dir')
[snip]

That's to say, there is one additional line added
to /etc/logrotate.d/wtmp and will make the logrotate
service start failed when run systemd.SystemdBasicTests.test_systemd_failed

Take an example as below when run test as root:
 # cat /etc/logrotate.d/wtmp
 # no packages own wtmp -- we'll rotate it here
 /var/log/wtmp {
    olddir /root/logrotate_dir
    missingok
    monthly
    create 0664 root utmp
    minsize 1M
    rotate 1
 }

 # ls /root/logrotate_dir
 ls: cannot access '/root/logrotate_dir': No such file or directory

 # systemctl start logrotate
 Job for logrotate.service failed because the control process exited with error code.
 See "systemctl status logrotate.service" and "journalctl -xe" for details.

 # systemctl status logrotate
  logrotate.service - Rotate log files
   Loaded: loaded (/lib/systemd/system/logrotate.service; static; vendor preset>
   Active: failed (Result: exit-code) since Wed 2019-02-13 03:35:19 UTC; 7s ago
     Docs: man:logrotate(8)
           man:logrotate.conf(5)
   Process: 540 ExecStart=/usr/sbin/logrotate /etc/logrotate.conf (code=exited, status=1/FAILURE)
   Main PID: 540 (code=exited, status=1/FAILURE)

  Feb 13 03:35:18 qemumips systemd[1]: Starting Rotate log files...
  Feb 13 03:35:19 qemumips logrotate[540]: error: wtmp:9 error verifying olddir path /root/logrotate_dir: No such file or directory
  Feb 13 03:35:19 qemumips logrotate[540]: error: found error in file wtmp, skipping
  Feb 13 03:35:19 qemumips systemd[1]: logrotate.service: Main process exited, code=exited, status=1/FAILURE
  Feb 13 03:35:19 qemumips systemd[1]: logrotate.service: Failed with result 'exit-code'.
  Feb 13 03:35:19 qemumips systemd[1]: Failed to start Rotate log files.

Add the logic to restore /etc/logrotate.d/wtmp to
make the cleanup complete to fix the above issue.

(From OE-Core rev: a2db9320d97d12d87524ff16a329f9c38a8da33f)

(From OE-Core rev: 9036f78bdfde1d79af6ce57db78e2cdff9fb5677)

Signed-off-by: Mingli Yu <Mingli.Yu@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-02-25 22:27:39 +00:00
Richard Purdie
b784649ed3 oeqa/runtime/ptest: Ensure OOM errors are logged
Currently processed being killed by the OOM killer may not be spotted by
ptest-runner. After we complete the tests, check the logs and report if there
were any. This ensures the user is aware of OOM conditions affecting the
ptest results.

(From OE-Core rev: 20a441d53817f80e0ce1597e77f6e794422ac49a)

(From OE-Core rev: f922970b119849bcdd7f7df74bd2029816ff637c)

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-02-25 22:27:39 +00:00
Richard Purdie
ddabcfa8ea oeqa/logparser: Various misc cleanups
Get rid of further unneeded code complications:

* value mappings we could just direct use
* ftools when we can write files easily ourself
* test result status filtering we don't use
* variable overwriting module imports

(From OE-Core rev: d6065f136f6d353c3054cc3f440a4e259509f876)

(From OE-Core rev: ba944a72302fa088c31c7b1eee4ad9f64f9769e4)

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-02-25 22:27:39 +00:00
Richard Purdie
c792536bcb oeqa/logparser: Improve results handling
Merge the results handling into the ptest log parser as a seperate
method.

Drop the weird "pass.skip.fail." prefix to the results filename, its
just bizarre.

Drop the code turning a list into a regex then searching the regex for
an item, "x in y" is perfectly capable.

Use a dict, sort the keys as needed and drop the list sorting code.

(From OE-Core rev: f317800e950b4a37b4034133bc52e0c47f04dc29)

(From OE-Core rev: 966ffaada3e9f43a25b1361c53d4b16a521aa517)

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-02-25 22:27:39 +00:00
Richard Purdie
6cb1b12565 oeqa/utils/logparser: Add in support for duration, exitcode and logs by section
Allow parsing of the ptest duration, exit code and timeout keywords
from the logs, returning data on each section.

Also include the logs broken out per section.

(From OE-Core rev: a9a67dccaa5be0f06eedcab46dcff7cbf9202850)

(From OE-Core rev: dc49021f75ed7e82713d1c9a04e045718bb9a548)

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-02-25 22:27:39 +00:00
Richard Purdie
ff0a227e4c oeqa/logparser: Reform the ptest results parser
Now we have a dedicated ptest parser, merge in the remaining ptest
specific pieces to further clarify and simplify the code, moving to
a point where we can consider extending/enhancing it.

(From OE-Core rev: 05991bb5bc8018275d03fdeecee3d5a757840c7c)

(From OE-Core rev: e514c34195a7e1b2b7a1916ebd8c8ef631c60a01)

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-02-25 22:27:39 +00:00
Richard Purdie
a18ab724da oeqa/logparser: Further simplification/clarification
Rename the paster to be ptest specific and apply some further cleanups
to the code to simplify and clarify what its doing.

(From OE-Core rev: 45a5886f1ec458d4c306b8d68fd31d568bc36b47)

(From OE-Core rev: a4187e32f2cf90c0c7a155bef29fe558cea1edd9)

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-02-25 22:27:39 +00:00
Richard Purdie
f89486cda1 oeqa/utils/logparser: Simplify ptest log parsing code
logparser is only used by ptest. Its slightly overcomplicated as it was
intended to be reusable but wasn't. Simplify it as a dedicated parser is
likely to me more readable and maintainable.

(From OE-Core rev: c7478345b2b4a85cb1fec40e762633871f0e94cb)

(From OE-Core rev: 1a6fcc97f3842deed3e78ededa8a21da274c0572)

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-02-25 22:27:39 +00:00
Richard Purdie
31e10dd927 oeqa/runtime/ptest: Avoid traceback for tests with no section
Some tests end up without a section, avoid tracebacks trying to use
None as a string in that case.

(From OE-Core rev: 86fb5d898a29761f120c2eaa538a32cf2e078487)

(From OE-Core rev: fca18914013b2f05b36e6985a7ff4a7c8dddf8a5)

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-02-25 22:27:39 +00:00
Kai Kang
b023be7714 selftest/wic: update test case test_qemu
This test case boots the image in qemu and checks for mounted partitions.
But the outputs of mount are different between sysvinit and systemd:

sysvinit:
/dev/root /\r\n/dev/sda1 /boot\r\n/dev/sda3 /media\r\n/dev/sda4 /mnt
systemd:
/dev/sda1 /boot\r\n/dev/sda2 /\r\n/dev/sda3 /media\r\n/dev/sda4 /mnt

So check mounted partitions by egrep rather than check output of runqemu.

(From OE-Core rev: 8e3311d45ec68d74e934e966f67cf5102634981c)

(From OE-Core rev: 828db9026c61d0a6ad12b8e05929eef31abfd57d)

Signed-off-by: Kai Kang <kai.kang@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-02-25 22:27:39 +00:00
Armin Kuster
a9b4266f62 perl: add testdepends for ssh
fixes:

 DEBUG: [Running]$ ssh -l root -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.4 export PATH=/usr/sbin:/sbin:/usr/bin:/bin; perl -e '$_="Uryyb, jbeyq"; tr/a-zA-Z/n-za-mN-ZA-M/;print'
| DEBUG: time: 1548816904.4024463, endtime: 1548817204.397057
| DEBUG: Partial data from SSH call: ssh: connect to host 192.168.7.4 port 22: Connection refused

for master/thud/sumo

(From OE-Core rev: a590e7805e3bec5dd995f7ea0b9e79a21f82b48b)

(From OE-Core rev: 7dbccf13493dad534c0cc604bc4c5ab16e5f0fc0)

Signed-off-by: Armin Kuster <akuster808@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-02-25 22:27:39 +00:00
Zheng Ruoqin
f1c7d5d719 mdadm: add init and service scripts
Add init script and service file for sysvinit and systemd.

(From OE-Core rev: 4556380fc582646506fb69a18ad2c8ded904b8ba)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Hong Liu <hongl.fnst@cn.fujitsu.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-25 22:27:38 +00:00
Ovidiu Panait
7756de368d ghostscript: Fix CVE-2019-6116
It was discovered that the ghostscript /invalidaccess checks fail under
certain conditions. An attacker could possibly exploit this to bypass
the -dSAFER protection and, for example, execute arbitrary shell commands
via a specially crafted PostScript document.

Reference:
https://www.openwall.com/lists/oss-security/2019/01/23/5

Upstream patches:
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=13b0a36f8181db66a91bcc8cea139998b53a8996
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2db98f9c66135601efb103d8db7d020a672308db
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=99f13091a3f309bdc95d275ea9fec10bb9f42d9a
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=59d8f4deef90c1598ff50616519d5576756b4495
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2768d1a6dddb83f5c061207a7ed2813999c1b5c9
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=49c8092da88ef6bb0aa281fe294ae0925a44b5b9
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2ff600a3c4fc169e7c6c1e83874a6bf63a6fb42b

(From OE-Core rev: af397d31e467d6af00ef835537221bc211d94ca6)

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-25 22:27:38 +00:00
Adam Trhon
391d8a0fca icecc-env: don't raise error when icecc not installed
When icecc is not installed, the `which icecc` command in icecc-env.sh
returns nonzero. This happens when environment is being sourced. When
the terminal has `set -e`, the whole script fails and terminal is
closed.

Fix this by ignoring errors from the which command.

(From OE-Core rev: 84c63858be47d33e49140181d73c253886d5aec5)

Signed-off-by: Adam Trhon <adam.trhon@tbs-biometrics.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-02-25 22:27:38 +00:00
Richard Purdie
cd32a7d089 package: Add pkg_postinst_ontarget to PACKAGEVARS
Changes to pkg_postinst_ontarget were not triggering rebuilds, this fixes
that.

[YOCTO #13127]

(From OE-Core rev: f3e2f78f282bf3a68a4923009825eb4fb460ca50)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.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-02-25 22:27:38 +00:00
Ross Burton
2ae09cc132 e2fsprogs: fix file system generation with large files
When copying files into the file system the file offset was being truncated to a
signed 32-bit value, so any files that are larger than 2^31 bytes were the right
size, but no content after that point.

(From OE-Core rev: a77360db529d0ac3cb91161001546754d0371aa2)

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-02-25 22:27:38 +00:00
Dustin Bain
4e262fb162 busybox: update to 1.29.3
Updates busybox to version 1.29.3 to fix a bug related to parsing of
config files: 2993551ef ("Revert "libbb: remove unnecessary variable in
xmalloc_fgets"")

Upgrading the recipe was chosen instead of backporting the fix as a
patch because the only difference between version 1.29.2 and 1.29.3 is
this revert.

(From OE-Core rev: 11d4fd16c3d7dad5d7e3b4d44a96724075be7126)

(From OE-Core rev: 1ee1701a01e1bd9146e53613e80ea9185579c719)

Signed-off-by: Dustin Bain <dustin.bain@garmin.com>
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-02-25 22:27:38 +00:00
Scott Rifenbark
9b41eae273 overview-manual, mega-manual: Updated Package Feeds diagram
The diagram had a typo in it ".ipd" rather than ".ipk".
Fixed and dropped in the figures folder for each manual.

(From yocto-docs rev: d085c285a41bacc15aa78a9f3900f4be7c45fa62)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-25 10:43:55 +00:00
Scott Rifenbark
a2e241d760 poky.ent: Updated "meta-intel" version to "10.1"
(From yocto-docs rev: 96f549eb4b047863bebadc4097fbef35a57573f7)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-25 10:43:55 +00:00
Daniel Ammann
137ef19b36 ref-manual: Typo found and fixed.
(From yocto-docs rev: 035c6bc2089b19b0d0ae332bca25a75211f86964)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-25 10:43:55 +00:00
Brian Silverman
b904775c2b overview-manual: Fixed typo.
"eSDSK" -> "eSDK"

(From yocto-docs rev: 01d61e03cf004559ecccb43e8114b20823766bfa)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-12 21:48:56 +00:00
Scott Rifenbark
1b59e69854 poky.ent: Changed release month to February
Release slipped out past January

(From yocto-docs rev: 640cbaa433e94c37f4ef83088ac692fd1f5bbb2e)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-12 21:48:56 +00:00
Scott Rifenbark
3d7f2555af ref-manual: Fixed INC_PR literal example indentation.
Five-space indentation missing.

(From yocto-docs rev: 6e43669a0100bb4520770d8aadee3b9c8526dbf5)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-12 21:48:56 +00:00
Scott Rifenbark
8afd4cc3ec ref-manual: Updated list of supported distros.
Had to make some tweaks.

(From yocto-docs rev: 7200f3d0b75e2ffc8b755c4962b532f399b78885)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-12 21:48:56 +00:00
Scott Rifenbark
9502933d44 ref-manual: Updated the list of supported distros
Ran the script against the tip of the "thud" branch in poky
and used the supported distros returned.

(From yocto-docs rev: 75b72c440a08d38562fb846ef0714e96d4b4a811)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-12 21:48:56 +00:00
Scott Rifenbark
0a1666685b bitbake: bitbake-user-manual: Fixed section head typo
Unseting -> Unsetting

(Bitbake rev: 238a936f60cbffb73f7b370b867e45f91925951c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-12 21:44:18 +00:00
Kevin Hao
ee7dd31944 meta-yocto-bsp: Bump to the latest stable kernel for the non-x86 BSPs
Bump to the latest stable kernel for 4.18.

(From meta-yocto rev: e9a9591f36d1e7a602fdb245a1f2d1707958e0e5)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-06 16:39:00 +00:00
Naveen Saini
0cdd8c7376 linux-yocto: update genericx86* SRCREV for 4.18
Bump to kernel release v4.18.22

(From meta-yocto rev: c702fdaaf4c2a9fe68cf43c2eb92f643da09653c)

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-06 16:39:00 +00:00
Naveen Saini
143dcb4183 linux-yocto: update genericx86* SRCREV for 4.18
Bump kernel version to v4.18.21.

(From meta-yocto rev: 89c0a8746b98c8e60e2e2c88630b85cf58fc3b08)

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-06 16:39:00 +00:00
Chen Qi
90dec2ffa5 eSDK.py: unset BBPATH and BUILDDIR to avoid eSDK failure
When executing eSDK test case, the following error appears.

  WARNING: attempting to use the extensible SDK in an environment
  	   set up to run bitbake - this may lead to unexpected
	   results. Please source this script in a new shell session
	   instead.

  FileExistsError: [Errno 17] File exists: '/.../tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/selftest-esdk-fcuyzsqu/tmp/sysroots/x86_64/bin/pigz' -> '/.../tmp/hosttools/pigz'

So unset these two vars to avoid messing things up.

(From OE-Core rev: bc07d825ce8bb3b337623c232fef61f2781c82af)

(From OE-Core rev: 748f946ee74f7480200a7eb0bb0b695467b08f0a)

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-02-06 16:38:31 +00:00
Chen Qi
ecec5a8fdb eSDK.py: avoid error in tearDownClass due to race condistion
When removing the temporary directory, it's possible that bitbake.lock
file is removed by bitbake during the cleanup. And this leads to the
following error.

  FileNotFoundError: [Errno 2] No such file or directory: 'bitbake.lock'

So add a check to remove this file before cleaning up the temporary
directory.

(From OE-Core rev: 984f56b37bd0014e5bf9509fc8ed181973e61773)

(From OE-Core rev: 6a5cce862f1e950439dc8ee1d84a10397a7fac4f)

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-02-06 16:38:31 +00:00
Marcus Cooper
d5845c8bc1 systemd: Security fix CVE-2018-16866
Affects < v240

(From OE-Core rev: bdee9122fe67467d1ec17012902a441fecb0cb9b)

(From OE-Core rev: 5e4d9fd5b13dd0603d9001b478b0c3170dd81004)

Signed-off-by: Marcus Cooper <marcusc@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-02-06 16:38:31 +00:00
Marcus Cooper
dc09249022 systemd: Security fix CVE-2018-16865
Affects < v240

(From OE-Core rev: 314887a475ae1ac638eb80d973ffee1bd2a31a35)

(From OE-Core rev: d5d2b821fc85b8cf39f683061ac2a45bddd2139f)

Signed-off-by: Marcus Cooper <marcusc@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-02-06 16:38:31 +00:00
Marcus Cooper
db1f6cba40 systemd: Security fix CVE-2018-16864
Affects < v240

(From OE-Core rev: 6900b9cc2cd3e66469a9561bb478b87c0903b0ea)

(From OE-Core rev: 403e74b07b6f3c4a2444e68c74a8434fb17aee49)

Signed-off-by: Marcus Cooper <marcusc@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-02-06 16:38:31 +00:00
Peter Kjellerstedt
6454aba9dd systemd: Correct a conditional add to SYSTEMD_PACKAGES
The code conditionally adding ${PN}-journal-remote to SYSTEMD_PACKAGE
checked PACKAGECONFIG for an empty string rather than 'microhttpd'...

(From OE-Core rev: 42d52a279a75c94c4deba50b448dd3b6b2ac75df)

(From OE-Core rev: 86de2bff77054bb35b78aeaed8fcf95c6815779c)

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-02-06 16:38:31 +00:00
Peter Kjellerstedt
a80485e6a2 systemd: Correct and clean up user/group definitions
This makes sure that packages are only added to USERADD_PACKAGES if
they will create users/groups. This avoids the following error:

  ERROR: systemd_239.bb: meta/recipes-core/systemd/systemd_239.bb
  inherits useradd but doesn't set USERADD_PARAM, GROUPADD_PARAM or
  GROUPMEMS_PARAM for package systemd-journal-gateway

Normally this problem is not triggered even if the conditional code that
expands in, e.g., USERADD_PARAM_${PN}-journal-gateway is empty because
it is assigned with += and thus ends up as " ", which fools the check in
useradd.bbclass.

However, if USERADDEXTENSION += "useradd-staticids" and
INHERIT += "extrausers" are used, they cause the problem to occur. The
reason for this is because when useradd-staticids is used, it rewrites
USERADD_PARAM_${PN}-journal-gateway, which strips unnecessary whitespace
and thus USERADD_PARAM_${PN}-journal-gateway becomes empty. And
extrausers is needed, because otherwise the test in useradd.bbclass is
triggered before useradd-staticids has rewritten the variables...

(From OE-Core rev: 63ae444b1dba65ccb1693648914becabd65ac30d)

(From OE-Core rev: 419aaf698b2823ec9bb5a94d4605bdcfd8e90142)

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-02-06 16:38:31 +00:00
André Draszik
afadb9aa51 meta: remove True option to getVar calls (again)
A couple have still been missed in the past despite multiple
attempts at doing so (or simply have re-appeared?).

Search & replace made using the following command:
    sed -e 's|\(d\.getVar \?\)( \?\([^,()]*\), \?True)|\1(\2)|g' \
        -i $(git grep -E 'getVar ?\( ?([^,()]*), ?True\)' \
             | cut -d':' -f1 \
             | sort -u)

(From OE-Core rev: 9f551d588693328e4d99d33be94f26684eafcaba)

(From OE-Core rev: 2da88ecbbf118bb7440f48184d4b39c273ab57e9)

Signed-off-by: André Draszik <andre.draszik@jci.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-02-06 16:38:31 +00:00
Alex Kiernan
46d75fd3db systemd: Add PACKAGECONFIG for gnutls
(From OE-Core rev: da0c196cdc4eb74c7517089dc192d6a77227b6e2)

(From OE-Core rev: 1bd93c625fa64cdddc260fdd164cc0d2c5272ee0)

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: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-06 16:38:31 +00:00
Alexander Kanavin
3f6e5c54f1 systemd: backport a patch to fix meson 0.49.0 issue
(From OE-Core rev: 81ecfbb19ccb5b5241cfdd871d41459bda3dba4d)

(From OE-Core rev: 925113cfa0f2467cd818bd6f2ec9fe372a99bc79)

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-02-06 16:38:31 +00:00
Khem Raj
57a370c254 systemd: Fix memory use after free errors
Found with gcc trunk

(From OE-Core rev: 381c63ad2a6e004658b0232b6e6763f49f412b2b)

(From OE-Core rev: 82cb42d24250d211c1d9bd4ab9e91bbb0ef6ffa2)

Signed-off-by: Khem Raj <raj.khem@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-02-06 16:38:31 +00:00
Kai Kang
9f02ad5cfa systemd: fix compile error for x32
Backport patch to fix systemd compile error for x32:

| ../git/src/timesync/timesyncd-manager.c:607:19: error: format '%lli'
| expects argument of type 'long long int', but argument 11 has type
| 'long int' [-Werror=format=]

[YOCTO #13074]

(From OE-Core rev: 7201df413616cab8d7f3257f86dd7a0a5c7719ee)

(From OE-Core rev: 9a78a8821f863ca6af15132201bc38f36d6e17a6)

Signed-off-by: Kai Kang <kai.kang@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-02-06 16:38:31 +00:00
Alex Kiernan
da23651d01 systemd: backport fix to stop enabling ECN
>From upstream:

  Turning on ECN still causes slow or broken network on linux. Our tcp
  is not yet ready for wide spread use of ECN.

https://github.com/systemd/systemd/issues/9748

(From OE-Core rev: f951aa6f9fcf318f108ecdc3371498ee2e919e68)

(From OE-Core rev: f2c5e46392b364a8c77734a77049487c6e19ebc1)

Signed-off-by: Alex Kiernan <alex.kiernan@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-02-06 16:38:31 +00:00
Brad Bishop
54a0e331c6 systemd-systemctl-native: handle Install wildcards
Handle the %i wildcard appearing in a dependency in the Install section
of a template unit, e.g.

  $ cat foo@.service

  [Install]
  WantedBy=bar@%i.target

Using the real systemctl something like:

  $ systemctl enable foo@baz.service

will create a symlink in /etc/systemd/system/bar@baz.target.wants.
Detect wildcards in templates and make the appropriate substitution.

(From OE-Core rev: 22ed19292d160461042d4a2294fe2ec0b953873e)

(From OE-Core rev: aee9c2c28bf8d90f2bd30834b6d9f51141837338)

Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.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-02-06 16:38:31 +00:00
Bruce Ashfield
7bba05391b linux-yocto/4.18: update to v4.18.25
Integrating the -stable updates from Paul Gortmaker that comprise the
following commits:

   e07895ef36e2 Linux 4.18.25
   735782c616aa drm/rockchip: psr: do not dereference encoder before it is null checked.
   90d4d21063af drm/vc4: Set ->is_yuv to false when num_planes == 1
   5758821188c7 drm/nouveau/drm/nouveau: Check rc from drm_dp_mst_topology_mgr_resume()
   8a79f6e48dc7 lib: fix build failure in CONFIG_DEBUG_VIRTUAL test
   c85e10aa1ea6 of: __of_detach_node() - remove node from phandle cache
   d7ba3e8331c7 of: of_node_get()/of_node_put() nodes held in phandle cache
   9739deeff0bf power: supply: olpc_battery: correct the temperature units
   2e4bfb04a730 intel_th: msu: Fix an off-by-one in attribute store
   233fc3ff6d19 genwqe: Fix size check
   3722e178318e drivers/perf: hisi: Fixup one DDRC PMU register offset
   e7153ded4c17 ceph: don't update importing cap's mseq when handing cap export
   96c39638d19f sched/fair: Fix infinite loop in update_blocked_averages() by reverting a9e7f6544b9c
   f73f80f3cff6 iommu/vt-d: Handle domain agaw being less than iommu agaw
   87310c3e7901 RDMA/srpt: Fix a use-after-free in the channel release code
   49cb944dbb54 rxe: fix error completion wr_id and qp_num
   9c1e8e00a232 9p/net: put a lower bound on msize
   595eab91d583 iio: dac: ad5686: fix bit shift read register
   6930d7e4b110 powerpc/tm: Set MSR[TS] just prior to recheckpoint
   da655a6fd9a9 powerpc/tm: Unset MSR[TS] if not recheckpointing
   6c968fff7e66 leds: pwm: silently error out on EPROBE_DEFER
   d92af6def7be arm64: relocatable: fix inconsistencies in linker script and options
   5c7ffec8c4a1 arm64: drop linker script hack to hide __efistub_ symbols
   231c17d7fe6d lockd: Show pid of lockd for remote locks
   bb36bf436ae9 PCI / PM: Allow runtime PM without callback functions
   109e48764a2d selinux: policydb - fix byte order and alignment issues
   a608335e8a1c b43: Fix error in cordic routine
   ce624ec2363b gfs2: Fix loop in gfs2_rbm_find
   7b0eb99a925c gfs2: Get rid of potential double-freeing in gfs2_create_inode
   2e8e0dc1bbff dlm: memory leaks on error path in dlm_user_request()
   20e150ecbb17 dlm: lost put_lkb on error path in receive_convert() and receive_unlock()
   eb1cbd2d152c dlm: possible memory leak on error path in create_lkb()
   700687f3cb98 dlm: fixed memory leaks after failed ls_remove_names allocation
   c45cc3521032 block: mq-deadline: Fix write completion handling
   9d3b67453638 block: deactivate blk_stat timer in wbt_disable_default()
   53a5e3001ad1 Fix failure path in alloc_pid()
   1da2e8ee069f driver core: Add missing dev->bus->need_parent_lock checks
   8fb38bca0d9a srcu: Lock srcu_data structure in srcu_gp_start()
   fabb4446a87b ALSA: usb-audio: Always check descriptor sizes in parser code
   eaf28235170f ALSA: usb-audio: Fix an out-of-bound read in create_composite_quirks
   1a814f226eee ALSA: usb-audio: Check mixer unit descriptors more strictly
   974f484d8ff9 ALSA: usb-audio: Avoid access before bLength check in build_audio_procunit()
   7fac2a4ca7d3 ALSA: cs46xx: Potential NULL dereference in probe
   a489f553dc12 media: cx23885: only reset DMA on problematic CPUs
   4c7d8d7c1308 raid6/ppc: Fix build for clang
   dabfa8988258 powerpc: Disable -Wbuiltin-requires-header when setjmp is used
   71a4448d5e50 powerpc: avoid -mno-sched-epilog on GCC 4.9 and newer
   77355e0e98c6 powerpc: consolidate -mno-sched-epilog into FTRACE flags
   0f5ac11d097d powerpc: remove old GCC version checks
   9fcbfe720a66 sunrpc: use SVC_NET() in svcauth_gss_* functions
   192b590d4aec sunrpc: fix cache_head leak due to queued request
   c7c58f2faee2 mm, swap: fix swapoff with KSM pages
   8289463a7e9d mm, hmm: mark hmm_devmem_{add, add_resource} EXPORT_SYMBOL_GPL
   1a799c400ed1 mm, hmm: use devm semantics for hmm_devmem_{add, remove}
   0c99af45252a mm, devm_memremap_pages: add MEMORY_DEVICE_PRIVATE support
   59333a88f665 kernel/memremap, kasan: make ZONE_DEVICE with work with KASAN
   58bc5ba9a00d mm, devm_memremap_pages: fix shutdown handling
   948d528a2a6f mm, devm_memremap_pages: kill mapping "System RAM" support
   df07b8f0fb0a mm, devm_memremap_pages: mark devm_memremap_pages() EXPORT_SYMBOL_GPL
   ebd7e55e0733 hwpoison, memory_hotplug: allow hwpoisoned pages to be offlined
   959653a9bf73 zram: fix double free backing device
   8b9b4edba3be fork: record start_time late
   b901d884c9e8 scsi: lpfc: do not set queue->page_count to 0 if pc_sli4_params.wqpcnt is invalid
   82485bca00f2 scsi: zfcp: fix posting too many status read buffers leading to adapter shutdown
   773911d8b527 auxdisplay: charlcd: fix x/y command parsing
   49c70d21c358 serial/sunsu: fix refcount leak
   0ec65d840ea3 qmi_wwan: Fix qmap header retrieval in qmimux_rx_fixup
   0438f1ea114b net: netxen: fix a missing check and an uninitialized use
   1567f283e00e Input: synaptics - enable SMBus for HP EliteBook 840 G4
   a3913c9c9c8c gpio: mvebu: only fail on missing clk if pwm is actually to be used
   9e1a572ef0b5 lan743x: Remove MAC Reset from initialization
   3cda7e7e3ecb virtio: fix test build after uio.h change
   09d4f9477813 kbuild: fix false positive warning/error about missing libelf
   02b8b59bea29 mac80211: free skb fraglist before freeing the skb
   6499acbbd54f nl80211: fix memory leak if validate_pae_over_nl80211() fails
   65fbf8702ff9 vxge: ensure data0 is initialized in when fetching firmware version information
   6eee1a4d51f3 lan78xx: Resolve issue with changing MAC address
   a200d52163e4 net: macb: add missing barriers when reading descriptors
   8bbf0bc96ad7 net: macb: fix dropped RX frames due to a race
   acbf1fb508aa net: macb: fix random memory corruption on RX with 64-bit DMA
   02c208c4c6b2 qed: Fix an error code qed_ll2_start_xmit()
   88f38f2f554e SUNRPC: Fix a race with XPRT_CONNECTING
   78f44c6b4abc net: hns: Fix ping failed when use net bridge and send multicast
   028ea5c9d17a net: hns: Add mac pcs config when enable|disable mac
   4f6210aba92c net: hns: Fix ntuple-filters status error.
   02c9ec12dd21 net: hns: Avoid net reset caused by pause frames storm
   1a4c0bc47d5e net: hns: Free irq when exit from abnormal branch
   3153ec7cf997 net: hns: Clean rx fbd when ae stopped.
   716fc005da40 net: hns: Fixed bug that netdev was opened twice
   dd3287b18cf8 net: hns: Some registers use wrong address according to the datasheet.
   23cccfe76598 net: hns: All ports can not work when insmod hns ko after rmmod.
   4982bfce35ef net: hns: Incorrect offset address used for some registers.
   90bd8d1a20b2 w90p910_ether: remove incorrect __init annotation
   c392d1a12520 net/tls: Init routines in create_ctx
   1e623fa0042c drivers: net: xgene: Remove unnecessary forward declarations
   ecd5c4ebb822 x86, hyperv: remove PCI dependency
   81dae7a1df1c mt76: fix potential NULL pointer dereference in mt76_stop_tx_queues
   e28b6d2c57b5 scsi: target: iscsi: cxgbit: add missing spin_lock_init()
   68d361ffeabd scsi: target: iscsi: cxgbit: fix csk leak
   6c1b3803a6e3 bnx2x: Send update-svid ramrod with retry/poll flags enabled
   3acfa2246629 bnx2x: Clear fip MAC when fcoe offload support is disabled
   7e20b7779059 netfilter: nat: can't use dst_hold on noref dst
   e3a08d34d535 netfilter: ipset: do not call ipset_nest_end after nla_nest_cancel
   48f3cb1f4e86 i40e: fix mac filter delete when setting mac address
   5d04bcd6e69e ieee802154: ca8210: fix possible u8 overflow in ca8210_rx_done
   f53ba1853ffd ibmvnic: Fix non-atomic memory allocation in IRQ context
   34bd82d476ad ibmvnic: Convert reset work item mutex to spin lock
   0a597b1ccd73 Input: synaptics - enable RMI on ThinkPad T560
   014633247654 Input: omap-keypad - fix idle configuration to not block SoC idle states
   a284212b45ed scsi: bnx2fc: Fix NULL dereference in error handling
   e639597419e9 Revert "scsi: qla2xxx: Fix NVMe Target discovery"
   cea74ed31970 netfilter: seqadj: re-load tcp header pointer after possible head reallocation
   b139c854a00a xfrm: Fix bucket count reported to userspace
   d3353f400809 checkstack.pl: fix for aarch64
   ca5e170a8f47 drm/amdgpu: Fix DEBUG_LOCKS_WARN_ON(depth <= 0) in amdgpu_ctx.lock
   fe69ecd10177 powerpc/mm: Fallback to RAM if the altmap is unusable
   50a6a1e7140b Input: restore EV_ABS ABS_RESERVED
   495cd33a97d6 ARM: dts: imx7d-nitrogen7: Fix the description of the Wifi clock
   8d8cbaca6ba2 ARM: imx: update the cpu power up timing setting on i.mx6sx
   b930167e8ec5 ARM: dts: imx7d-pico: Describe the Wifi clock
   4ef7a4b98ce3 HID: ite: Add USB id match for another ITE based keyboard rfkill key quirk
   e5a9a47bd51a powerpc/mm: Fix linux page tables build with some configs
   251058825091 powerpc: Fix COFF zImage booting on old powermacs
   d113f206d275 ARM: dts: sun8i: a83t: bananapi-m3: increase vcc-pd voltage to 3.3V
   26068dd8b8cf Linux 4.18.24
   aec6f6bc5108 MIPS: Only include mmzone.h when CONFIG_NEED_MULTIPLE_NODES=y
   edc9f994d18e spi: bcm2835: Unbreak the build of esoteric configs
   7675f3ad41aa tpm: tpm_i2c_nuvoton: use correct command duration for TPM 2.x
   62c528f41b75 arm64: compat: Avoid sending SIGILL for unallocated syscall numbers
   fe9ecf948b3f iommu/arm-smmu-v3: Fix big-endian CMD_SYNC writes
   daf79a7eff57 KVM: arm/arm64: vgic: Fix off-by-one bug in vgic_get_irq()
   4e397462644c KVM: arm/arm64: vgic-v2: Set active_source to 0 when restoring state
   679602791d84 KVM: arm/arm64: vgic: Cap SPIs to the VM-defined maximum
   c48ea7b2f18b KVM: arm/arm64: vgic: Do not cond_resched_lock() with IRQs disabled
   c96e540c5472 rtc: m41t80: Correct alarm month range with RTC reads
   728bdad63d25 ARM: dts: exynos: Specify I2S assigned clocks in proper node
   85157899ecd7 arm/arm64: KVM: vgic: Force VM halt when changing the active state of GICv3 PPIs/SGIs
   61f42110c833 arm64: KVM: Avoid setting the upper 32 bits of VTCR_EL2 to 1
   3b0dec9f506f CIFS: Fix error mapping for SMB2_LOCK command which caused OFD lock problem
   9829db6a18eb MIPS: OCTEON: mark RGMII interface disabled on OCTEON III
   cee82d1ae17b MIPS: Expand MIPS32 ASIDs to 64 bits
   c808d70b9e27 MIPS: Align kernel load address to 64KB
   eb8af7549685 MIPS: Ensure pmd_present() returns false after pmd_mknotpresent()
   45bff3e8e6a5 MIPS: c-r4k: Add r4k_blast_scache_node for Loongson-3
   9c6f89bc1709 MIPS: math-emu: Write-protect delay slot emulation pages
   7f7b89296833 tools lib traceevent: Fix processing of dereferenced args in bprintk events
   b8a224716756 media: v4l2-tpg: array index could become negative
   6f9be5d7e3f3 media: vb2: check memory model for VIDIOC_CREATE_BUFS
   11f1d3879a7d media: vivid: free bitmap_cap when updating std/timings/etc.
   cb40fc23227e media: imx274: fix stack corruption in imx274_read_reg
   b64ba5d0b731 media: rc: cec devices do not have a lirc chardev
   4e3ad74d0a78 media: cec-pin: fix broken tx_ignore_nack_until_eom error injection
   2696fefea8a6 media: cec: keep track of outstanding transmits
   fd247353c0f9 serial: uartps: Fix interrupt mask issue to handle the RX interrupts properly
   22fcd1b2f73e f2fs: sanity check of xattr entry size
   29c1ff73b20b f2fs: fix validation of the block count in sanity_check_raw_super
   cb1c54a6a7d5 brcmfmac: Fix out of bounds memory access during fw load
   a9a25c4bd9bb brcmfmac: fix roamoff=1 modparam
   146ef869a043 Btrfs: send, fix race with transaction commits that create snapshots
   ba440c3c4a27 btrfs: run delayed items before dropping the snapshot
   6ba644894048 Btrfs: fix fsync of files with multiple hard links in new directories
   593a1bdf137a btrfs: skip file_extent generation check for free_space_inode in run_delalloc_nocow
   6eb353db8d32 btrfs: dev-replace: go back to suspend state if another EXCL_OP is running
   e113e7d0b41f btrfs: dev-replace: go back to suspended state if target device is missing
   cbf669bb140f cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader.
   cdb991cbe9ca cgroup: fix CSS_TASK_ITER_PROCS
   d9d96d8f9665 crypto: cfb - fix decryption
   c29db9d0e70c crypto: testmgr - add AES-CFB tests
   f35387186793 crypto: chcr - small packet Tx stalls the queue
   57d999759174 crypto: cavium/nitrox - fix a DMA pool free failure
   a040dc4c332a clk: sunxi-ng: Use u64 for calculation of NM rate
   25bfefc210fd clk: rockchip: fix typo in rk3188 spdif_frac parent
   78f1e2ce6bec spi: bcm2835: Avoid finishing transfer prematurely in IRQ mode
   ce8fd4553894 spi: bcm2835: Fix book-keeping of DMA termination
   2ed14d56eb9a spi: bcm2835: Fix race on DMA termination
   fdfc740438e4 ext4: fix special inode number checks in __ext4_iget()
   8912afbd5a69 ext4: check for shutdown and r/o file system in ext4_write_inode()
   0fd748f86521 ext4: force inode writes when nfsd calls commit_metadata()
   743da24c6365 ext4: avoid declaring fs inconsistent due to invalid file handles
   5636580f533c ext4: include terminating u32 in size of xattr entries when expanding inodes
   398f2e6ee30e ext4: fix EXT4_IOC_GROUP_ADD ioctl
   f22c319b9afa ext4: missing unlock/put_page() in ext4_try_to_write_inline_data()
   3c6a7b0029a9 ext4: fix possible use after free in ext4_quota_enable
   8ec2e8ccc275 ext4: add ext4_sb_bread() to disambiguate ENOMEM cases
   2253b6438f00 ocxl: Fix endiannes bug in read_afu_name()
   031013077a31 ocxl: Fix endiannes bug in ocxl_link_update_pe()
   bff7ed6c9727 perf pmu: Suppress potential format-truncation warning
   ccd3a28ebefd clocksource/drivers/arc_timer: Utilize generic sched_clock
   a08eae1dccb6 DRM: UDL: get rid of useless vblank initialization
   3b278133c061 drm/v3d: Skip debugfs dumping GCA on platforms without GCA.
   dce6965d4e91 platform-msi: Free descriptors in platform_msi_domain_free()
   26712157a7e8 KVM: nVMX: Free the VMREAD/VMWRITE bitmaps if alloc_kvm_area() fails
   f5a53ddee2a0 arm64: KVM: Make VHE Stage-2 TLB invalidation operations non-interruptible
   4224dc370109 KVM: x86: Use jmp to invoke kvm_spurious_fault() from .fixup
   43df8745c955 Input: elan_i2c - add ACPI ID for touchpad in ASUS Aspire F5-573G
   de2c125b1e40 s390/pci: fix sleeping in atomic during hotplug
   c96a4e056b97 staging: wilc1000: fix missing read_write setting when reading data
   4f30183ffc00 media: dvb-usb-v2: Fix incorrect use of transfer_flags URB_FREE_BUFFER
   af84c969f481 usb: roles: Add a description for the class to Kconfig
   f6019125567c usb: r8a66597: Fix a possible concurrency use-after-free bug in r8a66597_endpoint_disable()
   dadfc9d5b5c4 USB: serial: option: add Fibocom NL678 series
   d589d1192b88 USB: serial: pl2303: add ids for Hewlett-Packard HP POS pole displays
   836492f91017 usb: dwc2: host: use hrtimer for NAK retries
   0c046d05b49c ALSA: hda/tegra: clear pending irq handlers
   03cfeaa90d58 ALSA: firewire-lib: use the same print format for 'without_header' tracepoints
   012b3d3a29f0 ALSA: firewire-lib: fix wrong assignment for 'out_packet_without_header' tracepoint
   852d675f1d0c ALSA: firewire-lib: fix wrong handling payload_length as payload_quadlet
   a84e166fe7f2 ALSA: fireface: fix for state to fetch PCM frames
   5e20e79d9939 ALSA: hda: add mute LED support for HP EliteBook 840 G4
   ea84faf00d17 mtd: rawnand: marvell: prevent timeouts on a loaded machine
   a941558bd40c mtd: atmel-quadspi: disallow building on ebsa110
   90a23a9a0a4b ALSA: emux: Fix potential Spectre v1 vulnerabilities
   be9ee86f4eee ALSA: pcm: Fix potential Spectre v1 vulnerability
   4c9cf57302b4 ALSA: emu10k1: Fix potential Spectre v1 vulnerabilities
   48c20b51db1e ALSA: rme9652: Fix potential Spectre v1 vulnerability
   0e48718ccbbc IB/hfi1: Incorrect sizing of sge for PIO will OOPs
   7eff9c1500e1 net/mlx5e: RX, Fix wrong early return in receive queue poll
   4717407dfe21 mlxsw: core: Increase timeout during firmware flash process
   11acf8fbd110 qed: Fix command number mismatch between driver and the mfw
   865270a3cb40 net/mlx5e: RX, Verify MPWQE stride size is in range
   423f90f819f6 net/mlx5e: Cancel DIM work on close SQ
   63e31b4cc7a1 mscc: Configured MAC entries should be locked.
   a6988f6f3fb8 ipv6: route: Fix return value of ip6_neigh_lookup() on neigh_create() error
   20b706e8bf44 nfp: flower: ensure TCP flags can be placed in IPv6 frame
   2d7aa068e5ea net/ipv6: Fix a test against 'ipv6_find_idev()' return value
   9685169f3280 ipv6: frags: Fix bogus skb->sk in reassembled packets
   e3d4855a5aea net/mlx5e: Remove the false indication of software timestamping support
   f28566f8d6c1 tipc: check group dests after tipc_wait_for_cond()
   1e5ef82d6ba3 net/mlx5: Typo fix in del_sw_hw_rule
   afe50f0b53fc xen/netfront: tolerate frags with no data
   51125e14bcd9 VSOCK: Send reset control packet when socket is partially bound
   d99050a5b574 vhost: make sure used idx is seen before log in vhost_add_used_n()
   4ce7430e49b2 tipc: use lock_sock() in tipc_sk_reinit()
   ce57d1d97f83 tipc: fix a double kfree_skb()
   a95f3e4813ba tipc: fix a double free in tipc_enable_bearer()
   813c817626cd tipc: compare remote and local protocols in tipc_udp_enable()
   2d9a3dc2539e tipc: check tsk->group in tipc_wait_for_cond()
   c934db384fcf tcp: fix a race in inet_diag_dump_icsk()
   9c4201f36ac8 sock: Make sock->sk_stamp thread-safe
   3f95e9533d48 sctp: initialize sin6_flowinfo for ipv6 addrs in sctp_inet6addr_event
   e01f35c50eec qmi_wwan: Add support for Fibocom NL678 series
   c4889ffd91f4 qmi_wwan: Added support for Telit LN940 series
   02df72acc8d0 qmi_wwan: Added support for Fibocom NL668 series
   7fdbc7a1e2ae ptr_ring: wrap back ->producer in __ptr_ring_swap_queue()
   5e3a73f0075c net/wan: fix a double free in x25_asy_open_tty()
   01ff438449fe net: stmmac: Fix an error code in probe()
   570725e3eb49 net/smc: fix TCP fallback socket release
   b093b2bcb009 netrom: fix locking in nr_find_socket()
   39eead897120 net: phy: Fix the issue that netif always links up after resuming
   21e87a82fa5c net: macb: restart tx after tx used bit read
   e76b3cc898a3 net/hamradio/6pack: use mod_timer() to rearm timers
   b69120829e6e isdn: fix kernel-infoleak in capi_unlocked_ioctl
   4099e52fdca2 ip: validate header length on virtual device xmit
   5cd2dc4cbf28 ipv6: tunnels: fix two use-after-free
   99b91aad172d ipv6: explicitly initialize udp6_addr in udp_sock_create6()
   dd6292ddd74d ipv4: Fix potential Spectre v1 vulnerability
   5476a3d1c7aa ip6mr: Fix potential Spectre v1 vulnerability
   98b15b0c0f6d ieee802154: lowpan_header_create check must check daddr
   d6025c2f233b ibmveth: fix DMA unmap error in ibmveth_xmit_start error path
   6e2e801ef5e9 gro_cell: add napi_disable in gro_cells_destroy
   d347cc2d0383 ax25: fix a use-after-free in ax25_fillin_cb()
   3ea51578ff5f drm/ioctl: Fix Spectre v1 vulnerabilities
   42ef003d4562 proc/sysctl: don't return ENOMEM on lookup when a table is unregistering
   3a4e7b8d4815 Input: elantech - disable elan-i2c for P52 and P72
   29eb38509a18 mm: don't miss the last page because of round-off error
   0dd101b35dc8 mm, page_alloc: fix has_unmovable_pages for HugePages
   fa9b81a99860 mm: thp: fix flags for pmd migration when split
   2161b228a28e mm, memory_hotplug: initialize struct pages for the full memory section
   567b54213293 iwlwifi: add new cards for 9560, 9462, 9461 and killer series
   a3a2be9932c4 rtlwifi: Fix leak of skb when processing C2H_BT_INFO
   08372e4a8a12 xfrm_user: fix freeing of xfrm states on acquire
   069467d9f4a9 mm: introduce mm_[p4d|pud|pmd]_folded
   eefeffc11188 mm: make the __PAGETABLE_PxD_FOLDED defines non-empty
   a31fff8051df mm: add mm_pxd_folded checks to pgtable_bytes accounting functions
   d50fbd2cbce5 panic: avoid deadlocks in re-entrant console drivers
   06251134c592 x86/mtrr: Don't copy uninitialized gentry fields back to userspace
   bb898527a1c7 futex: Cure exit race
   0bbaf6c392f0 Drivers: hv: vmbus: Return -EINVAL for the sys files for unopened channels
   303b25349d17 KVM: Fix UAF in nested posted interrupt processing
   1d53c9694d61 kvm: x86: Add AMD's EX_CFG to the list of ignored MSRs
   2b3f1bd62f4a KVM: X86: Fix NULL deref in vcpu_scan_ioapic
   7a773622fc03 posix-timers: Fix division by zero bug
   f14b8859148c gpio: max7301: fix driver for use with CONFIG_VMAP_STACK
   477761b67ccd mmc: omap_hsmmc: fix DMA API warning
   a681b2da2c88 mmc: core: Use a minimum 1600ms timeout when enabling CACHE ctrl
   89f2351adfac mmc: core: Allow BKOPS and CACHE ctrl even if no HPI support
   ddf77476eb50 mmc: core: Reset HPI enabled state during re-init and in case of errors
   a49c12bd3427 scsi: sd: use mempool for discard special page
   80f7b4857185 ubifs: Handle re-linking of inodes correctly while recovery
   a3fa57176fc3 USB: serial: option: add Telit LN940 series
   4079ef6f75e0 USB: serial: option: add Fibocom NL668 series
   dced7dfb270b USB: serial: option: add Simcom SIM7500/SIM7600 (MBIM mode)
   dce4d3b1443f USB: serial: option: add HP lt4132
   551e6023cc86 USB: serial: option: add GosunCn ZTE WeLink ME3630
   66ae0bdde44c USB: hso: Fix OOB memory access in hso_probe/hso_get_config_data
   740745a91e92 Revert "vfs: Allow userns root to call mknod on owned filesystems."
   2c5ca276d2ae nvme: validate controller state before rescheduling keep alive
   fbdd7e1e387f i2c: uniphier-f: fix violation of tLOW requirement for Fast-mode
   bc2fbb452ec1 i2c: uniphier: fix violation of tLOW requirement for Fast-mode
   4a3280619c2a i2c: scmi: Fix probe error on devices with an empty SMB0001 ACPI device node
   5e6e49d9a2dc i2c: axxia: properly handle master timeout
   8546aaab43e0 mlxsw: spectrum_switchdev: Fix VLAN device deletion via ioctl
   abcaa45cfc72 vhost/vsock: fix reset orphans race with close timeout
   8365792328f0 cifs: In Kconfig CONFIG_CIFS_POSIX needs depends on legacy (insecure cifs)
   935b7a30671d drm/ast: Fix connector leak during driver unload
   91ee67721601 tools/testing/nvdimm: Align test resources to 128M
   150d613009a7 drm/amdgpu/vcn: Update vcn.cur_state during suspend
   c999e264b2e8 ethernet: fman: fix wrong of_node_put() in probe function
   2040e90bd48a ARM: 8816/1: dma-mapping: fix potential uninitialized return
   8b1e20a3df5d ARM: 8815/1: V7M: align v7m_dma_inv_range() with v7 counterpart
   c277c0e1b0e7 ARM: 8814/1: mm: improve/fix ARM v7_dma_inv_range() unaligned address handling
   52f34d6d10d4 bpf: check pending signals while verifying programs
   cd17f2d553dc net/mlx4_en: Fix build break when CONFIG_INET is off
   536fca86ba87 mv88e6060: disable hardware level MAC learning
   2d9e565170d7 macvlan: return correct error value
   349c7c7a5880 libata: whitelist all SAMSUNG MZ7KM* solid-state disks
   ee58548c5cd2 Input: omap-keypad - fix keyboard debounce configuration
   47155a7f238a Input: synaptics - enable SMBus for HP 15-ay000
   31b7a055ad25 clk: mmp: Off by one in mmp_clk_add()
   83a71b688529 clk: mvebu: Off by one bugs in cp110_of_clk_get()
   90bcde56db66 drm/amd/powerplay: issue pre-display settings for display change event
   c7d3364fa445 drm/msm: Fix error return checking
   f5e8e639af30 drm/msm/hdmi: Enable HPD after HDMI IRQ is set up
   51c8414a3df7 ide: pmac: add of_node_put()
   1b75425347bf drivers/tty: add missing of_node_put()
   12cdbd02480c drivers/sbus/char: add of_node_put()
   c937d742441c sbus: char: add of_node_put()
   ec06c2365739 SUNRPC: Fix a potential race in xprt_connect()
   9e370ae200de nfs: don't dirty kernel pages read by direct-io
   4e52a4ee3fd4 liquidio: read sc->iq_no before release sc
   d65e4426decd bpf: Fix verifier log string check for bad alignment.
   f75ea663b145 bonding: fix 802.3ad state sent to partner when unbinding slave
   bac2acf174bb net: stmmac: Move debugfs init/exit to ->probe()/->remove()
   3fb715bbd6c1 ARC: io.h: Implement reads{x}()/writes{x}()
   1af56dd937b0 drm/amdgpu: wait for IB test on first device open
   ff3fec41655d drm/msm: Grab a vblank reference when waiting for commit_done
   2f71ee62933d drm/msm/dsi: configure VCO rate for 10nm PLL driver
   e66c684213a9 drm/msm: fix handling of cmdstream offset
   840811d0633f x86/earlyprintk/efi: Fix infinite loop on some screen widths
   66d3d30021bb drm/amd/display: Fix 6x4K displays light-up on Vega20 (v2)
   9bd27a8b616e net: ethernet: ave: Replace NET_IP_ALIGN with AVE_FRAME_HEADROOM
   82de9c06a97b tools/bpf: add addition type tests to test_btf
   277da06f81cd tools/bpf: fix two test_btf unit test cases
   2329fbe32f13 scsi: vmw_pscsi: Rearrange code to avoid multiple calls to free_irq during unload
   475aa44e2e0f scsi: libiscsi: Fix NULL pointer dereference in iscsi_eh_session_reset
   9e957fbd1a9a i2c: rcar: check bus state before reinitializing
   d8245e2588f7 Input: hyper-v - fix wakeup from suspend-to-idle
   02fb6a1529b1 mac80211_hwsim: fix module init error paths for netlink
   14b0e82132c7 IB/hfi1: Remove race conditions in user_sdma send path
   5623e2407bb8 locking/qspinlock, x86: Provide liveness guarantee
   8e02266863b2 locking/qspinlock: Re-order code
   70c590120035 Linux 4.18.23
   9cf5402745e6 dm zoned: Fix target BIO completion handling
   2fa0d692ad6f dm zoned: target: use refcount_t for dm zoned reference counters
   61bfc80fbe52 drm/amdgpu: update SMC firmware image for polaris10 variants
   df1c1bcf1c4e drm/amdgpu: update smu firmware images for VI variants (v2)
   db1207f9310d drm/amdgpu: add some additional vega10 pci ids
   5724922ae4d7 drm/amdkfd: add new vega10 pci ids
   d525e2cdf832 drm/amdgpu/powerplay: Apply avfs cks-off voltages on VI
   53835137f8e7 drm/i915/execlists: Apply a full mb before execution for Braswell
   5f99e72756cd drm/nouveau/kms: Fix memory leak in nv50_mstm_del()
   2c94183dbe89 powerpc: Look for "stdout-path" when setting up legacy consoles
   fb4f2f865a85 powerpc/msi: Fix NULL pointer access in teardown code
   056fb552b47f media: vb2: don't call __vb2_queue_cancel if vb2_start_streaming failed
   2729394ef4d3 tracing: Fix memory leak of instance function hash filters
   3ccaf85e64f0 tracing: Fix memory leak in set_trigger_filter()
   8d2b0c01ecb9 tracing: Fix memory leak in create_filter()
   b5a75238a5ea dm: call blk_queue_split() to impose device limits on bios
   a234ec33c6a3 dm cache metadata: verify cache has blocks in blocks_are_clean_separate_dirty()
   d4921c64ab6f dm thin: send event about thin-pool state change _after_ making it
   696142d867f8 ARM: dts: bcm2837: Fix polarity of wifi reset GPIOs
   a854f226870b ARM: mmp/mmp2: fix cpu_is_mmp2() on mmp2-dt
   2fd965e41eeb fuse: continue to send FUSE_RELEASEDIR when FUSE_OPEN returns ENOSYS
   eeb7db93fdc4 mmc: sdhci: fix the timeout check window for clock and reset
   ded687bfc9fc mmc: sdhci-omap: Fix DCRC error handling during tuning
   c40d26e2aebb mmc: core: use mrq->sbc when sending CMD23 for RPMB
   e7e84222759e MMC: OMAP: fix broken MMC on OMAP15XX/OMAP5910/OMAP310
   2ceb08b99848 ovl: fix decode of dir file handle with multi lower layers
   77d91ee8c4a3 arm64: dma-mapping: Fix FORCE_CONTIGUOUS buffer clearing
   ff0ded5c2c54 aio: fix spectre gadget in lookup_ioctx
   011f3bf616f1 pinctrl: sunxi: a83t: Fix IRQ offset typo for PH11
   419b946bd2f3 staging: olpc_dcon: add a missing dependency
   7d8acff1f129 scsi: raid_attrs: fix unused variable warning
   fb9e55d63efa bpf: fix off-by-one error in adjust_subprog_starts
   ef2ec7729026 IB/hfi1: Fix an out-of-bounds access in get_hw_stats
   0defcee2b10f ALSA: hda/realtek - Fixed headphone issue for ALC700
   24c4139a1a7b ALSA: fireface: fix reference to wrong register for clock configuration
   67f2dd243dc6 flexfiles: enforce per-mirror stateid only for v4 DSes
   8d30703d6d56 ocfs2: fix potential use after free
   6f2718bb8624 initramfs: clean old path before creating a hardlink
   23399a09fda4 kernel/kcov.c: mark funcs in __sanitizer_cov_trace_pc() as notrace
   d8979491c9fc proc: fixup map_files test on arm
   ad71ec08f8b1 debugobjects: avoid recursive calls with kmemleak
   8a5ae5ba9bd9 hfsplus: do not free node before using
   1b4d458615cf hfs: do not free node before using
   7bc2546c9a43 mm/page_alloc.c: fix calculation of pgdat->nr_zones
   21bf0b91ba0b ocfs2: fix deadlock caused by ocfs2_defrag_extent()
   a907830b4425 ACPI/IORT: Fix iort_get_platform_device_domain() uninitialized pointer value
   f4bebbf5c1da nvme-rdma: fix double freeing of async event data
   4a26fd2794ef nvme: flush namespace scanning work just before removing namespaces
   5cbbefd895b8 fscache, cachefiles: remove redundant variable 'cache'
   aac96283f143 cachefiles: Explicitly cast enumerated type in put_object
   214b0f7241f4 fscache: fix race between enablement and dropping of object
   2352fd0ff37c afs: Fix validation/callback interaction
   874cc883482c pstore/ram: Correctly calculate usable PRZ bytes
   f7dd088587d8 pvcalls-front: fixes incorrect error handling
   23f5fbe66464 Revert "xen/balloon: Mark unallocated host memory as UNUSABLE"
   60382e03a73f xen: xlate_mmu: add missing header to fix 'W=1' warning
   ee24ad3eedc5 drm/ast: fixed reading monitor EDID not stable issue
   2af2d7794f32 drm/amdgpu: Add delay after enable RLC ucode
   6ca52fbbee20 net: hisilicon: remove unexpected free_netdev
   7501d55624c2 ixgbe: recognize 1000BaseLX SFP modules as 1Gbps
   5a5d699051f2 igb: fix uninitialized variables
   9e42380eab9a cachefiles: Fix page leak in cachefiles_read_backing_file while vmscan is active
   4701317cee0f fscache: Fix race in fscache_op_complete() due to split atomic_sub & read
   7395908ac92d cachefiles: Fix an assertion failure when trying to update a failed object
   689b67edb5f0 ALSA: usb-audio: Add vendor and product name for Dell WD19 Dock
   4b61635fc96f netfilter: nf_tables: deactivate expressions in rule replecement routine
   ae9b39bd26ab usb: gadget: u_ether: fix unsafe list iteration
   866e243e89c4 net: thunderx: fix NULL pointer dereference in nic_remove
   914fa3100245 x86/kvm/vmx: fix old-style function declaration
   4da0cd45e88a KVM: x86: fix empty-body warnings
   7c1ff883a73e netfilter: nat: fix double register in masquerade modules
   6741803da10e netfilter: add missing error handling code for register functions
   f018d5eae708 IB/mlx5: Fix page fault handling for MW
   03f7f8880455 netfilter: ipv6: Preserve link scope traffic original oif
   c465b31ab032 drm/meson: add support for 1080p25 mode
   bb9e268e9d7e USB: omap_udc: fix rejection of out transfers when DMA is used
   8d5bbff94d07 USB: omap_udc: fix USB gadget functionality on Palm Tungsten E
   09ec687795df USB: omap_udc: fix omap_udc_start() on 15xx machines
   88d2c380cc95 USB: omap_udc: fix crashes on probe error and module removal
   1b288004247d USB: omap_udc: use devm_request_irq()
   7872b15dde9d ipvs: call ip_vs_dst_notifier earlier than ipv6_dev_notf
   c78d20b2a104 bpf: fix check of allowed specifiers in bpf_trace_printk
   cd5689673b74 RDMA/hns: Bugfix pbl configuration for rereg mr
   01b473861aa5 exportfs: do not read dentry after free
   9a215042b425 ASoC: omap-dmic: Add pm_qos handling to avoid overruns with CPU_IDLE
   e646abb7b69a ASoC: omap-mcpdm: Add pm_qos handling to avoid under/overruns with CPU_IDLE
   c45caaef2252 ASoC: omap-mcbsp: Fix latency value calculation for pm_qos
   b9daf5f65c75 RDMA/rdmavt: Fix rvt_create_ah function signature
   77861b6c5671 RDMA/bnxt_re: Avoid accessing the device structure after it is freed
   eb1f01e4226a RDMA/mlx5: Fix fence type for IB_WR_LOCAL_INV WR
   0d27ad481081 Btrfs: send, fix infinite loop due to directory rename dependencies
   4af31d016230 ARM: dts: at91: sama5d2: use the divided clock for SMC
   d2b8c6a8a1b8 phy: qcom-qusb2: Fix HSTX_TRIM tuning with fused value for SDM845
   ca9eb79073a8 phy: qcom-qusb2: Use HSTX_TRIM fused value as is
   aaab6336eb9c objtool: Fix segfault in .cold detection with -ffunction-sections
   ef2f6bee2159 objtool: Fix double-free in .cold detection error path
   e432cceeb8bd ASoC: acpi: fix: continue searching when machine is ignored
   bba8179fae04 PCI: imx6: Fix link training status detection in link up check
   5362dba7b696 perf tools: Restore proper cwd on return from mnt namespace
   d8c06c8c36b9 hwmon: (w83795) temp4_type has writable permission
   885bf92930f8 netfilter: xt_hashlimit: fix a possible memory leak in htable_create()
   8ae7dfd71f06 aio: fix failure to put the file pointer
   46b5558d5a1a spi: omap2-mcspi: Add missing suspend and resume calls
   5ec9552fc58b ASoC: dapm: Recalculate audio map forcely when card instantiated
   77b10c913a16 ASoC: omap-abe-twl6040: Fix missing audio card caused by deferred probing
   8c6f04133b20 hwmon: (ina2xx) Fix current value calculation
   c18d4263d24a s390/cpum_cf: Reject request for sampling in event initialization
   6b064b5de14f ASoC: wm_adsp: Fix dma-unsafe read of scratch registers
   60e1eccd5fb5 hwmon (ina2xx) Fix NULL id pointer in probe()
   f4b4f286496e s390/cio: Fix cleanup when unsupported IDA format is used
   ded23ec5857c s390/cio: Fix cleanup of pfn_array alloc failure
   4a0d7435b9c2 netfilter: nf_tables: fix use-after-free when deleting compat expressions
   9ce994a65de6 netfilter: xt_RATEEST: remove netns exit routine
   0f94c96587ab perf tools: Fix crash on synthesizing the unit
   255e04f5a250 selftests: add script to stress-test nft packet path vs. control plane
   0a7e0d53afd2 netfilter: nf_tables: don't skip inactive chains during update
   84dae51b3b3b sysv: return 'err' instead of 0 in __sysv_write_inode
   cfd7d86743d4 ASoC: sun8i-codec: fix crash on module removal
   fceaf70e406d tools: bpftool: prevent infinite loop in get_fdinfo()
   dc752d44748a ARM: OMAP1: ams-delta: Fix possible use of uninitialized field
   fa0914f171b6 ARM: dts: logicpd-somlv: Fix interrupt on mmc3_dat1
   5d2ea9832d2e ARM: dts: LogicPD Torpedo: Fix mmc3_dat1 interrupt
   7831d2076244 ARM: dts: am3517: Fix pinmuxing for CD on MMC1
   7d8ee81c2c7e staging: rtl8723bs: Fix the return value in case of error in 'rtw_wx_read32()'
   604f01123bc4 ASoC: qdsp6: q6afe: Fix wrong MI2S SD line mask
   ce35cd5ee1e3 ASoC: rsnd: fixup clock start checker
   3ea13a21d07a ARM: OMAP2+: prm44xx: Fix section annotation on omap44xx_prm_enable_io_wakeup
   8d42df355212 sctp: update frag_point when stream_interleave is set
   fafdf91a4940 net: phy: sfp: correct store of detected link modes
   524ad2fabf9b virtio-net: keep vnet header zeroed after processing XDP
   b3de25aafea1 tun: forbid iface creation with rtnl ops
   b9e84444a172 tcp: fix NULL ref in tail loss probe
   bfe7b2583c29 sctp: kfree_rcu asoc
   763df95b2195 rtnetlink: ndo_dflt_fdb_dump() only work for ARPHRD_ETHER devices
   13a1ce2ad74f Revert "net/ibm/emac: wrong bit is used for STA control"
   e21d76868b2c net: phy: don't allow __set_phy_supported to add unsupported modes
   ec6cff67dc81 net/mlx4_en: Change min MTU size to ETH_MIN_MTU
   4edc05c73545 net/mlx4_core: Correctly set PFC param if global pause is turned off.
   4c10e8930e85 net: 8139cp: fix a BUG triggered by changing mtu with network traffic
   751c494d491a ipv6: sr: properly initialize flowi6 prior passing to ip6_route_output
   f9c324ce9f08 neighbour: Avoid writing before skb->head in neigh_hh_output()
   612931cc02b5 ipv6: Check available headroom in ip6_xmit() even without options
   552cf47e54a1 ipv4: ipv6: netfilter: Adjust the frag mem limit when truesize changes
   7ec7433c5890 HID: quirks: fix RetroUSB.com devices
   455549628a0b mac80211: ignore NullFunc frames in the duplicate detection
   0c7da0aa7b1c mac80211: fix reordering of buffered broadcast packets
   ba2caf535dc3 mac80211: ignore tx status for PS stations in ieee80211_tx_status_ext
   2545ea1dcdcb mac80211: Clear beacon_int in ieee80211_do_stop
   39ca1b1a5f04 mac80211: fix GFP_KERNEL under tasklet context
   babb30868c1c mac80211_hwsim: Timer should be initialized before device registered
   1f1afa100306 cfg80211: Fix busy loop regression in ieee80211_ie_split_ric()
   3ca6ef9feafa libnvdimm, pfn: Pad pfn namespaces relative to other regions
   60b82363d437 kgdboc: fix KASAN global-out-of-bounds bug in param_set_kgdboc_var()
   3d7dc255fe92 tty: do not set TTY_IO_ERROR flag if console port
   adf103eac922 tty: serial: 8250_mtk: always resume the device in probe.
   9df22addf43b Drivers: hv: vmbus: Offload the handling of channels to two workqueues
   93fd54970c3c kprobes/x86: Fix instruction patching corruption when copying more than one RIP-relative instruction
   5af246208420 drm/i915: Downgrade Gen9 Plane WM latency error
   e8c4ec7a8cb5 drm/amdgpu/gmc8: always load MC firmware in the driver
   b8b88b63975b drm/amdgpu/gmc8: update MC firmware for polaris
   d1569baf730a drm/msm: Move fence put to where failure occurs
   1c2a37eae264 drm/lease: Send a distinct uevent
   f558434b38cc drm/amdgpu: update mc firmware image for polaris12 variants
   50152de6de4f crypto: do not free algorithm before using
   4352e6c016ec Revert commit ef9209b642f "staging: rtl8723bs: Fix indenting errors and an off-by-one mistake in core/rtw_mlme_ext.c"
   4e9e20b3082c staging: rtl8712: Fix possible buffer overrun
   05ae28903d5c cifs: Fix separator when building path from dentry
   f0fd776c02c4 Revert "x86/e820: put !E820_TYPE_RAM regions into memblock.reserved"
   7b1469c3f003 xhci: Prevent U1/U2 link pm states if exit latency is too long
   ac4556802707 USB: xhci: fix 'broken_suspend' placement in struct xchi_hcd
   dc04aae7f67c xhci: workaround CSS timeout on AMD SNPS 3.0 xHC
   d7bad132104f ARM: 8806/1: kprobes: Fix false positive with FORTIFY_SOURCE
   f192f717a29d dmaengine: cppi41: delete channel from pending list when stop channel
   9901c1492367 dmaengine: dw: Fix FIFO size for Intel Merrifield
   e62d2249c68e SUNRPC: Fix leak of krb5p encode pages
   a2a5e2fde8c3 vhost/vsock: fix use-after-free in network stack callers
   ed5a4844a3bd virtio/s390: fix race in ccw_io_helper()
   e956edc8a6c8 virtio/s390: avoid race on vcdev->config
   666ba2ee65fa parisc: Enable -ffunction-sections for modules on 32-bit kernel
   61502a480493 Revert "mfd: cros_ec: Use devm_kzalloc for private data"
   ccb717e43ac1 media: gspca: fix frame overflow error
   bce19403ad9e ALSA: hda/realtek - Fix speaker output regression on Thinkpad T570
   f24c98d59963 ALSA: pcm: Call snd_pcm_unlink() conditionally at closing
   f4be72e0bf8c ALSA: pcm: Fix starvation on down_write_nonblock()
   c93f1f31d1bd ALSA: hda: Add support for AMD Stoney Ridge
   01da3695a290 ALSA: usb-audio: Fix UAF decrement if card has no live interfaces in card.c
   74a5ec298bee ALSA: usb-audio: Add SMSL D1 to quirks for native DSD support
   026947331690 USB: serial: console: fix reported terminal settings
   673238324c4e USB: check usb_get_extra_descriptor for proper size
   3889e33bb1d0 usb: appledisplay: Add 27" Apple Cinema Display
   7a84b5a362e2 usb: quirk: add no-LPM quirk on SanDisk Ultra Flair device
   ca857e5103dd net: amd: add missing of_node_put()
   0da2f98fc745 team: no need to do team_notify_peers or team_mcast_rejoin when disabling port
   e9a722de9249 ibmvnic: Update driver queues after change in ring size support
   3f4134c1db37 ibmvnic: Fix RX queue buffer cleanup
   15604a70011d flexfiles: use per-mirror specified stateid for IO
   8c88fb37b2c9 iommu/vt-d: Use memunmap to free memremap
   7bdd56b674cd net: faraday: ftmac100: remove netif_running(netdev) check before disabling interrupts
   d30aa84cf6de riscv: fix warning in arch/riscv/include/asm/module.h
   2b492d33ce39 net/ibmvnic: Fix RTNL deadlock during device reset
   5aa8e66efe3c net/ibmnvic: Fix deadlock problem in reset
   d15648cc57d6 qed: Fix QM getters to always return a valid pq
   3f44a9e68949 qed: Fix bitmap_weight() check
   121e97d57b63 NFSv4: Fix a NFSv4 state manager deadlock
   176e0f131cbc mtd: spi-nor: Fix Cadence QSPI page fault kernel panic
   a51b12e14de8 HID: multitouch: Add pointstick support for Cirque Touchpad
   61f7e06c559d Revert "HID: uhid: use strlcpy() instead of strncpy()"
   8b26c115fdab cpufreq: ti-cpufreq: Only register platform_device when supported
   bd3ddbff7a21 mtd: rawnand: qcom: Namespace prefix some commands
   8a70c6977ac9 tc-testing: tdc.py: Guard against lack of returncode in executed command
   ab8885c434bc tc-testing: tdc.py: ignore errors when decoding stdout/stderr
   625510a08d3c gpio: mockup: fix indicated direction
   6abc9f8ddae4 gpio: pxa: fix legacy non pinctrl aware builds again
   5e228fca94b5 net/mlx4: Fix UBSAN warning of signed integer overflow
   47a0a222daa6 net/mlx4_core: Fix uninitialized variable compilation warning
   5b53369dbb76 net/mlx4_core: Zero out lkey field in SW2HW_MPT fw command
   596f8d294724 drm/amd/display: Support amdgpu "max bpc" connector property (v2)
   31436df3a605 drm/amdgpu: Add amdgpu "max bpc" connector property (v2)
   021a2a365e35 nvme-fc: resolve io failures during connect
   9dc330320b96 Revert "usb: gadget: ffs: Fix BUG when userland exits with submitted AIO transfers"
   dbd1e112f822 usb: dwc2: pci: Fix an error code in probe
   88aeb64586df qed: Fix reading wrong value in loop condition
   d7cdbdfa0446 qed: Fix PTT leak in qed_drain()
   b678bf52f8a5 bnx2x: Assign unique DMAE channel number for FW DMAE transactions.
   a88bcdc2f534 amd/iommu: Fix Guest Virtual APIC Log Tail Address Register
   5f3352a721d7 batman-adv: Expand merged fragment buffer for full packet
   77bfec5b5de0 batman-adv: Use explicit tvlv padding for ELP packets
   a934bcb21cd2 HID: input: Ignore battery reported by Symbol DS4308
   e711cc95c600 test_firmware: fix error return getting clobbered
   baa8bdeb4c77 can: rcar_can: Fix erroneous registration
   ae6ed5e2d24a iommu/ipmmu-vmsa: Fix crash on early domain free
   894857cf8a55 mt76: fix building without CONFIG_LEDS_CLASS
   ae5157c74bb4 iommu/vt-d: Fix NULL pointer dereference in prq_event_thread()
   b882f3a05330 media: ipu3-cio2: Unregister device nodes first, then release resources
   d7fe182705df media: omap3isp: Unregister media device as first
   ee69fa8a8dd0 media: cec: check for non-OK/NACK conditions while claiming a LA

(From OE-Core rev: f9afa2bb7fe78a0f2223ce32f908c22f2194adfe)

(From OE-Core rev: 7800f42e94fefb1644664384f569af0df87cc721)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-02-06 16:38:31 +00:00
Manjukumar Matha
55626f0c90 kernel.bbclass: Fix incorrect deploying of fitimage.initramfs
When kernel-fitimage and initramfs is enabled using
INITRAMFS_IMAGE_BUNDLE = "1", kernel do_deploy tries to deploy
fitImage.initramfs with following error

| install: cannot stat 'arch/arm64/boot/fitImage.initramfs': No such
file or directory

Skip deploying fitimage.initramfs, since fitimage does not
create fitimage.initramfs

(From OE-Core rev: 0f87f8522a2c1b5a7042738887952b98060fbd9d)

(From OE-Core rev: e35ced70ff3d9be4a94773df4f4558c677dcd9af)

Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.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-02-06 16:38:31 +00:00
Richard Purdie
6731390a1a oeqa/utils/buildproject: Only clean files if we've done something
We should only be wiping out things on target if the tests have
actually run.

(From OE-Core rev: d38c3eac0a5a1a9b0eb98385832e92f48145655e)

(From OE-Core rev: 34efb674999781448411a04f876d6b3423ebe26c)

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-02-06 16:38:31 +00:00
Robert Yang
22243e44c1 oeqa/selftest/runqemu: Enable kvm when QEMU_USE_KVM is set
(From OE-Core rev: 564de3681353fe8e203425388e8be9703a89d2da)

(From OE-Core rev: ffea871575d0e80f73daf6b36c90798ce5e055e6)

Signed-off-by: Robert Yang <liezhi.yang@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-02-06 16:38:31 +00:00
Robert Yang
5af780686d oeqa/manual/bsp-qemu.json: Update for QEMU_USE_KVM
Now QEMU_USE_KVM can only be boolean, can not contain MACHINE any more.

(From OE-Core rev: 37e5035a2ba27595eeef22062580a5b04a73ba15)

(From OE-Core rev: 63f0ce0e084d2d24daeacf226d9c432e4a53fd21)

Signed-off-by: Robert Yang <liezhi.yang@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-02-06 16:38:31 +00:00
Yeoh Ee Peng
5e3b9adf28 oeqa/qemu & runtime: qemu do not need ip input from external
Qemu do not use the ip input from external. It will
retrieve ip from QemuRunner instance and assign
ip value.

(From OE-Core rev: 14d99dc6c39c963ba3e0d9a30274846bd5369210)

(From OE-Core rev: c3d51e92f412becd3e067c637ffbdc5ad13e8894)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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-02-06 16:38:31 +00:00
Richard Purdie
22ebbe5c2a oeqa/runtime/cases: Improve dependencies of kernel/gcc/build tests
Mark up these tests as needing a compiler, make and kernel source code
as appropriate, the image feature requirements can then be retired.

(From OE-Core rev: 9f64e6c25abdf494fb511e9cd401f8dcaa08be2a)

(From OE-Core rev: e65d1680d406e50313f90e659527b9aa795eeb45)

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-02-06 16:38:31 +00:00
Richard Purdie
aaab0dfa83 oeqa/runtime/cases: Improve test dependency information
Add the OEHasPackage decorator to a variety of tests so they determine
automatically if they should run against a given image.

To ensure tests can do this we need to move target operations such
as scp commands into the tests and out of the class startup/teardown.

(From OE-Core rev: 60d6580b85714b8960a964e775d76a7f937f5e5a)

(From OE-Core rev: 601f87016c6772a4ec8410bccb195989bcf05b55)

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-02-06 16:38:31 +00:00
Khem Raj
0dd5642977 binutils: bfd doesn't handle ELF compressed data alignment
Backport patches for ld/gold from master

[YOCTO# 13136]

(From OE-Core rev: e0ed2313f22c2ca30477942fc57877b8b194428a)

(From OE-Core rev: f8298017f78f58bbe25d832dc838f1ba6becee8d)

Signed-off-by: Khem Raj <raj.khem@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-02-06 16:38:31 +00:00
Khem Raj
798f11f079 binutils: Upgrade to latest on 2.31 release branch
* Append minor version to PV so recipe checker is happy
* Drop upstreamed patches
* Remove changelog from CVE patches, they dont apply and are in patch
  log anyway

(From OE-Core rev: 550085bc092d773c8c481e238d0d3210466166dc)

(From OE-Core rev: 27b9008618fa981d12424eecbff9bbf113b735f7)

Signed-off-by: Khem Raj <raj.khem@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-02-06 16:38:31 +00:00
Alexey Brodkin
625ae4a70b wic: sdimage-bootpart: Use mmcblk0 drive instead of bogus mmcblk
Apparently either nobody ever used sdimage-bootpart.wks
or fstab was kept untouched due to "--no-fstab-update" usage as
some boards like IMX may have, see [1].

Otherwise addition of the following line to the target's fstab:
---------------------->8-----------------
/dev/mmcblkp1   /boot   vfat    defaults        0       0
---------------------->8-----------------

gets us unusable target:
---------------------->8-----------------
[*     ] A start job is running for dev-mmcblkp1.device (23s / 1min 30s)
[ TIME ] Timed out waiting for device dev-mmcblkp1.device.
[DEPEND] Dependency failed for /boot.
[DEPEND] Dependency failed for Local File Systems.

You are in emergency mode. After logging in, type "journalctl -xb" to view
system logs, "systemctl reboot" to reboot, "systemctl default" or "exit"
to boot into default mode.
Press Enter for maintenance
---------------------->8-----------------

Fix it with use of "mmcblk0" device name.

[1] https://lists.yoctoproject.org/pipermail/meta-freescale/2018-February/022156.html

(From OE-Core rev: 57a925dbd949e488980b02896106efd82bf47ed2)

(From OE-Core rev: a916a923dcd470a15d1136c818d77867e726600d)

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Maciej Borzecki <maciej.borzecki@open-rnd.pl>
Cc: Maciek Borzecki <maciek.borzecki@gmail.com>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

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-02-06 16:38:31 +00:00
Robert Yang
a849af7f9f runqemu-gen-tapdevs: Allow run --help without sudo
Then we can get user's UID and GID rather than hardcode to 1000, e.g.:

- Without sudo
$ runqemu-gen-tapdevs --help
[snip]
$ sudo ../poky/scripts/runqemu-gen-tapdevs 15220 100 4 tmp/sysroots-components/x86_64/qemu-helper-native/usr/bin
[snip]

- With sudo
$ sudo ../poky/scripts/runqemu-gen-tapdevs --help
[snip]
$ sudo ../poky/scripts/runqemu-gen-tapdevs 15220 100 4 tmp/sysroots-components/x86_64/qemu-helper-native/usr/bin
[snip]

(From OE-Core rev: 446e7da7e56f9de3602498b5ef40e9e0f8f71837)

(From OE-Core rev: 79471a27018d2e766b349540693e6c196fa75869)

Signed-off-by: Robert Yang <liezhi.yang@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-02-06 16:38:31 +00:00
Ross Burton
5fe0d8a8d7 runqemu: clean up subprocess usage
Where possible pass lists instead of strings, don't use a subshell, and call
check*() instead of using Popen directly.

(From OE-Core rev: d2374623444752af1ad748ed36b68ea58f629bf6)

(From OE-Core rev: 4b5a4b718c027f54ef0660a731f11a9d249b4af8)

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-02-06 16:38:31 +00:00
Joshua Watt
676046bc36 classes/testsdk: Split implementation into classes
Splits the SDK test implementation into configurable Python classes. The
classes used for the normal and extensible SDKs are
${TESTSDK_CLASS_NAME} and ${TESTSDKEXT_CLASS_NAME} respectively.

This allows SDK machines to override the classes used to implement the
tests. For the traditional SDK, a common "run()" function is provided by
the class (oeqa.sdk.testsdk.TestSDK), with several hook member functions
that can be overridden in child classes, making it easier to have
consistent behavior. The extensible SDK class
(oeqa.sdkext.testsdk.TestSDKEXT) also has a common "run()" function, but
no hooks have yet been added as there is not currently a known use case
for create derived classes.

These changes should be purely organizational; no functional changes
have been made to either the standard SDK or extensible SDK tests.

[YOCTO #13020]

(From OE-Core rev: a06d53928b22d5f88276023c4d57b206db2f27f9)

(From OE-Core rev: d0828522fc3a4bd3f86488edcedcce10833c18dc)

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-02-06 16:38:30 +00:00
Robert Yang
f54aac732b oeqa: make it work for multiple users
There are failures when multiple users run oe-selftest on the same
host:

PermissionError: [Errno 13] Permission denied: '/tmp/oe-saved-
tests/201812250324_qemu'

This is because /tmp/oe-saved-tests was created by user A, while user B tries
to write data in it, then the error will happen. This patch can fix the
problem.

Move the dumped data to ${LOG_DIR}/runtime-hostdump/ rather than
/tmp/oe-saved-tests/ to fix the problem.

(From OE-Core rev: e219fe5329599cd6c3682f521eaee3852a2c8980)

(From OE-Core rev: 310a2b137f2cb249885844fa12830365f94866f0)

Signed-off-by: Robert Yang <liezhi.yang@windriver.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>
2019-02-06 16:38:30 +00:00
Aníbal Limón
87845031ae meta/classes/testimage.bbclass: Only validate IMAGE_FSTYPES when is QEMU
When use simpleremote target the flash/boot process is executed
manually, the IMAGE_FSTYPES validation is only needed when execute
testimage against qemu.

The supported_fstypes comes from oeqa.core.target.qemu module.

(From OE-Core rev: e7dc5963adbacc091fe8943119262166977623ad)

(From OE-Core rev: 5fedb011f9b2d4f6d14757a7cc9c2d8300fa0223)

Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
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-02-06 16:38:30 +00:00
Kai Kang
7de83fe2ed testimage.bbclass: remove boot parameter systemd.log_target
Boot parameter systemd.log_target=console affects command journalctl's
output and causes oe selftest case test_systemd_boot_time fail to pass.

| Error at obtaining the boot time from journalctl
| RESULTS:
| RESULTS - systemd.SystemdJournalTests.test_systemd_boot_time - Testcase -1: SKIPPED (0.74s)

systemd.log_target=console was introduced by oe-core commit a0bb649 and
work with parameter systemd.log_level to enable systemd debug.
systemd.log_level has been removed already, so remove systemd.log_target
too to make case test_systemd_boot_time pass.

(From OE-Core rev: caa776bdcf8ea34c857f45970370bf771075f4bc)

(From OE-Core rev: 51423c3945d55ebabe38dd365d24f226155c1a97)

Signed-off-by: Kai Kang <kai.kang@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-02-06 16:38:30 +00:00
Erik Botö
b8ab2f0c17 testimage: Add possibility to pass parmeters to qemu
Add a variable called TEST_QEMUPARAMS in testimage.bbclass to make it
possible to pass parameters to qemu. This can be useful for e.g.
increasing the amount of RAM available during testimage runs.

(From OE-Core rev: 1a9163f5779d233c884c8fd50e0812eabab4fdf3)

(From OE-Core rev: 0469c757e4a48d8ca2e2b7b128a285cf6d50513e)

Signed-off-by: Erik Botö <erik.boto@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-02-06 16:38:30 +00:00
Yeoh Ee Peng
c4d6499723 testimage: Add support for slirp
Enable testimage to support qemu slirp. Configure "QEMU_USE_SLIRP"
& "TEST_SERVER_IP" variables to enable slirp.

[YOCTO#10713]

(From OE-Core rev: 3df9ee85ce7fe52f0893fd33aea3bf1fcc6ead0a)

(From OE-Core rev: ab4989123d8a6c2dc8e058110c495320955bf0de)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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-02-06 16:38:30 +00:00
Richard Purdie
8660ae3df6 testimage: Enable autorunning of the package manager testsuites
Now that the hangs in httpservice are fixed we can let these tests
auto skip as appropriate.

(From OE-Core rev: 42a0d70291d551578e21f590fcb85ca72a78ccb5)

(From OE-Core rev: 1da4c2e18e0897b3dc24d0d54b5d949bec39c990)

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-02-06 16:38:30 +00:00
Richard Purdie
447f02fff1 testimage: Further cleanup DEFAULT_TEST_SUITES
Now the test markup of the development tools tests is complete, this
can be further tweaked to auto run the correct tests.

(From OE-Core rev: bd4f8d12fe1f9f2643ee9e68fa2bb981134294fb)

(From OE-Core rev: 7dce3564534ee67c88feaa14304dbee7161df145)

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-02-06 16:38:30 +00:00
Richard Purdie
0f9682a0d7 testimage: Simplfy DEFAULT_TEST_SUITES logic
Now that the tests have correct markup to automatically determine which images
they can run against, clean up the default test suites logic to be simpler
and not image specific.

Some cleanup of the compiler tests still needs to be completed but this
is a good first step.

The only downside to this is more noise during testing as we now see
many skipped messages for simple images like core-image-minimal.

The auto type is being removed since it currently breaks badly due to the
socat mandatory inclusion from the meta-selftest layer which is a problem
which needs to be addressed seperately.

(From OE-Core rev: 4966bc33845752eb0aeae54b72e8ba0146a7ed52)

(From OE-Core rev: 16c9002d5b4ab091f49a7bec2527d2a21830ab0c)

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-02-06 16:38:30 +00:00
Richard Purdie
d3cbb5a9a4 testimage: Remove duplicate dependencies
(From OE-Core rev: 16d4368e7b85d5179374adb0a2d1ac215793e104)

(From OE-Core rev: bfd72574aa1ef035ecafef3cfde9ac5f8801b93c)

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-02-06 16:38:30 +00:00
Richard Purdie
5ab73d1747 classes: Correctly markup regex strings
There are various escape characters in these stings which python warns
about so use the correct regex markup for them.

(From OE-Core rev: 252b69c9f2abe3258366c540f56b156ed63e5437)

(From OE-Core rev: 778f33d40c7e2f4174cc99d25516e5db63d6f75b)

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-02-06 16:38:30 +00:00
Federico Sauter
91c93503fd kernel: don't assign the build user/host
The KBUILD_BUILD_USER and KBUILD_BUILD_HOST variables were
assigned at the kernel class level, which made it impossible
to override them in the local configuration.

By setting only the default values of those variables in the
kernel class, it is now possible to override them as expected.

(From OE-Core rev: a3e8cdf9c3ba966fa4b5a21235540eb0b00fb487)

(From OE-Core rev: 694d62ece58ba996a63a7089bbeb445efe922419)

Signed-off-by: Federico Sauter <federico.sauter@ableton.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-02-06 16:38:30 +00:00
Douglas Royds
eab307542c patch: reproducibility: Fix host umask leakage
Some patch files create entirely new files, so their permissions are subject to
the host umask. If such a file is later installed into a package with no change
in permissions, it breaks the reproducibility of the package.

This was observed on libpam, for instance: The patch file
pam-security-abstract-securetty-handling.patch creates a new file
(tty_secure.c). This file is later copied into the -dbg package with no change
in permissions.

(From OE-Core rev: 2a2bbd755b330cd63f7f6e2f2b374a3ae065b37a)

(From OE-Core rev: 9841962b5bfdaaeed31f79573f6fbd9d1d56dd17)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.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>
2019-02-06 16:38:30 +00:00
Ross Burton
83a235665b toolchain-scripts: run post-relocate scripts for every environment
SDKs for multilib configurations have multiple environment scripts, so
re-arrange the post-relocate hook invocation so that it runs the post-relocate
hooks after sourcing each environment script.

(From OE-Core rev: c4897001cb3eeda1f4f11197b28c09c950bdcf02)

(From OE-Core rev: 2bb4774e6d873400e8a084e554a563925cf1c9b5)

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-02-06 16:38:30 +00:00
Yeoh Ee Peng
1433f5b865 scripts/oe-git-archive: fix non-existent key referencing error
Without installing gitpython package, oe-git-archive will face error
below, where it was referencing key that was non-existent inside
metadata object.

Traceback (most recent call last):
  File "<poky_dir>/scripts/oe-git-archive", line 271, in <module>
    sys.exit(main())
  File "<poky_dir>/scripts/oe-git-archive", line 229, in main
    'commit_count': metadata['layers']['meta']['commit_count'],
KeyError: 'commit_count'

Fix this error by adding exception catch when referencing
non-existent key (based on inputs provided by Richard Purdie).

[YOCTO# 13082]

(From OE-Core rev: 9a3cc9b8523b78dda6c3f3f2e12798b2b907d7e5)

(From OE-Core rev: f51e59bb6d571606cf887a3f623380cc3516c5a2)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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-02-06 16:38:30 +00:00
Chen Qi
f6d2003f09 package.bbclass: fix python unclosed file ResourceWarning
Fix the following warning.

  ResourceWarning: unclosed file <_io.TextIOWrapper name='/.../systemd/1_239-r0/debugsources.list' mode='a' encoding='UTF-8'>

(From OE-Core rev: 91810a57f0edd8b37c5f3f989a5aca69d9a40b37)

(From OE-Core rev: 284252d1b6d1672a5b6c042fa591f00d89613a22)

Signed-off-by: Chen Qi <Qi.Chen@windriver.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>
2019-02-06 16:38:30 +00:00
Michael Ho
5646749d60 sstate: add support for caching shared workdir tasks
The sstate bbclass uses workdir as a hardcoded string in path
manipulations. This means that the sstate caching mechanism does
not work for the work-shared directory which the kernel uses to
share its build configuration and source files for out of tree
kernel modules.

This commit modifies the path manipulation mechanism to use the
work-shared directory if detected in the paths when handling the
sstate cache packages.

(From OE-Core rev: 27642449f95e38598f9c83948ce109c5891e5877)

(From OE-Core rev: f57d83c72b5f53fb10bc8377862668580d331a8c)

Signed-off-by: Michael Ho <Michael.Ho@bmw.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-02-06 16:38:30 +00:00
Richard Purdie
179c5cb7fd nativesdk-*-provides-dummy: Fixes to allow correct operation with opkg
opkg needs the replaces/conflicts/provides in order for this package
to function as intended. When enabled, this code caused failures for
core-image-sato -c populate_sdk.

The reason is that nativesdk-autoconf has several perl dependencies. We
need to list more of the things which this package provides/conflicts
with in order for it to function correctly. Therefore add the missing
entries.

(From OE-Core rev: 27412b377dda47daa87bfcb3a41babe53ff8b0a3)

(From OE-Core rev: e0db1beb6db624b3b743e780c298c63a1e177cfb)

(From OE-Core rev: 30b68e820d641c837b6f60c7b6c21ea987804e8e)

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-02-06 16:38:30 +00:00
Robert Yang
6b6b442f3e oeqa: Fix for QEMU_USE_KVM
Fixed:
MACHINE = "qemux86"
QEMU_USE_KVM = "qemux86"
IMAGE_CLASSES += "testimage"

$ oe-selftest -r runqemu.RunqemuTests.test_boot_rootfs

[snip]
  File "/buildarea1/lyang1/poky/meta/lib/oe/types.py", line 122, in boolean
    raise ValueError("Invalid boolean value '%s'" % value)
ValueError: Invalid boolean value 'qemux86'

Now QEMU_USE_KVM can only be boolean, can not contain MACHINE any more, kvm
will be enabled if target_arch == build_arch or both of them are x86 archs.

(From OE-Core rev: 7c1a8a624cad8d967635c6cb5f99cf655bde3d44)

(From OE-Core rev: 2c12e1d9c262fb7e5fe02ae2d092789d6536413f)

Signed-off-by: Robert Yang <liezhi.yang@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-02-06 16:38:30 +00:00
Khem Raj
e82e4d2cb0 binutils: Fix build with clang
(From OE-Core rev: 208dadb8f1864aca88c69766f3bfb37a2ef4953c)

(From OE-Core rev: 86a4ecad734087cff7d5c1d6109f6256b8e2b75b)

Signed-off-by: Khem Raj <raj.khem@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-02-06 16:38:30 +00:00
Changqing Li
4655904dbd libsndfile1: Security fix CVE-2017-17456/17457 CVE-2018-19661/19662
fix 4 CVEs, which is backport from
585cc28a93

(From OE-Core rev: 8f4af329df5373db8910726a6b954652623003dd)

(From OE-Core rev: 1f3577fb6bacb09d2826c879a38d3d7d329cc39a)

Signed-off-by: Changqing Li <changqing.li@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-02-06 16:38:30 +00:00
Robert Yang
938ada24fb oeqa/utils/qemurunner: set timeout to 60s for run_serial
The 5s timeout for non-kvm is too short, especially when the load is high,
which leads to unexpected errors, so set timeout to 60s by default.

(From OE-Core rev: 8197d0f638a760fc03062c7a9009117d083d7ead)

(From OE-Core rev: 70e942e77493cb5851a78c5592b4e13de860d931)

Signed-off-by: Robert Yang <liezhi.yang@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-02-06 16:38:30 +00:00
Alexander Kanavin
a384248938 boost: update to 1.69.0
Drop upstreamed reproducibility-add-file-directive-to-assembler.patch

Drop signals library as upstream has removed it:
https://www.boost.org/users/history/version_1_69_0.html

(From OE-Core rev: 894d2867275e72caac9181ea3b859d7595268f7f)

(From OE-Core rev: 4f14eacc4806d9b824045b5b782746c5954dbe2d)

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-02-06 16:38:30 +00:00
Alexander Kanavin
cdd02aaf5b lighttpd: update to 1.4.51
(From OE-Core rev: 7e95eca23f06bfeb7b780958a46ec01feb58f20b)

(From OE-Core rev: 4a7945cfe3280a039a57d6b8f47742d6bad6ae21)

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-02-06 16:38:30 +00:00
Armin Kuster
2532f2bbd2 tzdata/tzcode-native: update to 2018i
2018i:

  Briefly:
    São Tomé and Príncipe switches from +01 to +00 on 2019-01-01.

  Changes to future timestamps

    Due to a change in government, São Tomé and Príncipe switches back
    from +01 to +00 on 2019-01-01 at 02:00.  (Thanks to Vadim
    Nasardinov and Michael Deckers.)

2018h:
Briefly:
    Qyzylorda, Kazakhstan moved from +06 to +05 on 2018-12-21.
    New zone Asia/Qostanay because Qostanay, Kazakhstan didn't move.
    Metlakatla, Alaska observes PST this winter only.
    Guess Morocco will continue to adjust clocks around Ramadan.
    Add predictions for Iran from 2038 through 2090.

  Changes to future timestamps

    Guess that Morocco will continue to fall back just before and
    spring forward just after Ramadan, the practice since 2012.
    (Thanks to Maamar Abdelkader.)  This means Morocco will observe
    negative DST during Ramadan in main and vanguard formats, and in
    rearguard format it stays in the +00 timezone and observes
    ordinary DST in all months other than Ramadan.  As before, extend
    this guesswork to the year 2037.  As a consequence, Morocco is
    scheduled to observe three DST transitions in some Gregorian years
    (e.g., 2033) due to the mismatch between the Gregorian and Islamic
    calendars.

    The table of exact transitions for Iranian DST has been extended.
    It formerly cut off before the year 2038 in a nod to 32-bit time_t.
    It now cuts off before 2091 as there is doubt about how the Persian
    calendar will treat 2091.  This change predicts DST transitions in
    2038-9, 2042-3, and 2046-7 to occur one day later than previously
    predicted.  As before, post-cutoff transitions are approximated.

  Changes to past and future timestamps

    Qyzylorda (aka Kyzylorda) oblast in Kazakhstan moved from +06 to
    +05 on 2018-12-21.  This is a zone split as Qostanay (aka
    Kostanay) did not switch, so create a zone Asia/Qostanay.

    Metlakatla moved from Alaska to Pacific standard time on 2018-11-04.
    It did not change clocks that day and remains on -08 this winter.
    (Thanks to Ryan Stanley.)  It will revert to the usual Alaska
    rules next spring, so this change affects only timestamps
    from 2018-11-04 through 2019-03-10.

  Change to past timestamps

    Kwajalein's 1993-08-20 transition from -12 to +12 was at 24:00,
    not 00:00.  I transcribed the time incorrectly from Shanks.
    (Thanks to Phake Nick.)

    Nauru's 1979 transition was on 02-10 at 02:00, not 05-01 at 00:00.
    (Thanks to Phake Nick.)

    Guam observed DST irregularly from 1959 through 1977.
    (Thanks to Phake Nick.)

    Hong Kong observed DST in 1941 starting 06-15 (not 04-01), then on
    10-01 changed standard time to +08:30 (not +08).  Its transition
    back to +08 after WWII was on 1945-09-15, not the previous day.
    Its 1904-10-30 change took effect at 01:00 +08 (not 00:00 LMT).
    (Thanks to Phake Nick, Steve Allen, and Joseph Myers.)  Also,
    its 1952 fallback was on 11-02 (not 10-25).

    This release contains many changes to timestamps before 1946 due
    to Japanese possession or occupation of Pacific/Chuuk,
    Pacific/Guam, Pacific/Kosrae, Pacific/Kwajalein, Pacific/Majuro,
    Pacific/Nauru, Pacific/Palau, and Pacific/Pohnpei.
    (Thanks to Phake Nick.)

    Assume that the Spanish East Indies was like the Philippines and
    observed American time until the end of 1844.  This affects
    Pacific/Chuuk, Pacific/Kosrae, Pacific/Palau, and Pacific/Pohnpei.

  Changes to past tm_isdst flags

    For the recent Morocco change, the tm_isdst flag should be 1 from
    2018-10-27 00:00 to 2018-10-28 03:00.  (Thanks to Michael Deckers.)
    Give a URL to the official decree.  (Thanks to Matt Johnson.)

(From OE-Core rev: 100d0d0f24cabedd1a89b69ac8ffb05d85663761)

(From OE-Core rev: a44c7ba8b98c40cf0ba838d5ddef136fd0ba6fc4)

Signed-off-by: Armin Kuster <akuster808@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-02-06 16:38:30 +00:00
Khem Raj
8ae70ff876 gnupg: Upgrade to 2.2.12 release
(From OE-Core rev: af3e1bbcc615adfc1f915448afe9c794ad938522)

(From OE-Core rev: e3ef28a7a131f89b9718ef7039d85ef481c7b1de)

Signed-off-by: Khem Raj <raj.khem@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-02-06 16:38:30 +00:00
Khem Raj
9c0e458e7b grub2: Fix passing null to printf formats
Backport a patch that helps with this error which is found
by gcc9

(From OE-Core rev: 93419fb569b827056a422614d3dc29cd41b2b6bb)

(From OE-Core rev: 47731b43e6d287b3b03347ae94b99dea515d9a56)

Signed-off-by: Khem Raj <raj.khem@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-02-06 16:38:30 +00:00
Robert Yang
fc6d6411aa oeqa/utils/qemurunner: Print output when failed to login
This is useful for debugging.

(From OE-Core rev: da527d73f5eeae0f29b5f99aab757491d3f87ec7)

(From OE-Core rev: b09f261867fbdf206afc1059fc5a84a52d49a97a)

Signed-off-by: Robert Yang <liezhi.yang@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-02-06 16:38:30 +00:00
Anuj Mittal
da340150ed i2c-tools: upgrade 4.0 -> 4.1
* For changes, see:
https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git/log/?qt=range&q=v4.0...v4.1

* Remove upstreamed patches

(From OE-Core rev: 085530e8fff016d7cadcae4a769a82cddf9e6695)

(From OE-Core rev: 93c76fe812613cfe6bc7296e770c070112e3f244)

Signed-off-by: Anuj Mittal <anuj.mittal@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-02-06 16:38:30 +00:00
Anuj Mittal
61ec1b660b common-licenses: update Libpng license text
The new libpng license comprises the terms and conditions from the zlib
license, and the disclaimer from the Boost license. The legacy libpng
license license, used until libpng-1.6.35, is appended to the
new license, following the precedent established in the Python Software
Foundation License version 2.

See for details:

https://sourceforge.net/projects/libpng/files/libpng16/1.6.36/

(From OE-Core rev: 673c2dcf1045f7264570f81e2880d7a03befd2af)

(From OE-Core rev: be1429b671973a18305b502ef2104c73a9a6dce2)

Signed-off-by: Anuj Mittal <anuj.mittal@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-02-06 16:38:30 +00:00
Anuj Mittal
1d9af23531 libpng: upgrade 1.6.35 -> 1.6.36
For changes, see:

https://sourceforge.net/p/libpng/code/ci/libpng16/tree/CHANGES

License-Update: Added authors to license, formatting, version changes,
export classification clarification and a new libpng2 license with
clarification:

The new libpng license comprises the terms and conditions from the zlib
license, and the disclaimer from the Boost license. The legacy libpng
license license, used until libpng-1.6.35, is appended to the
new license, following the precedent established in the Python Software
Foundation License version 2.

(From OE-Core rev: 099aecfaa3baf6b24c2b751da92d7d2fa0266bf9)

(From OE-Core rev: 7c6e9f5447ff95755105088a3566989be4684250)

Signed-off-by: Anuj Mittal <anuj.mittal@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-02-06 16:38:30 +00:00
Anuj Mittal
e1ade036e8 libatomic-ops: upgrade 7.6.6 -> 7.6.8
For changes, see:

https://github.com/ivmai/libatomic_ops/compare/v7.6.6...v7.6.8

Also switch to using tarball release instead.

(From OE-Core rev: a33170ff9a7abc5689e266e093069fd716c62622)

(From OE-Core rev: 88581ac9f694e950bdbe6f26eb164b23d3b5530c)

Signed-off-by: Anuj Mittal <anuj.mittal@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-02-06 16:38:30 +00:00
Anuj Mittal
b830af1159 gsettings-desktop-schemas: upgrade 3.28.0 -> 3.28.1
Changes from release notes:

- Set default background image for screen lock to an existing one
- Translation updates

(From OE-Core rev: 6a10ff0bcd6e00660a419ca535239af55e30d5aa)

(From OE-Core rev: a316146ff7517f8952d19bffc97336e74d70a177)

Signed-off-by: Anuj Mittal <anuj.mittal@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-02-06 16:38:30 +00:00
Anuj Mittal
c1f3c2cd2e eudev: upgrade 3.2.5 -> 3.2.7
For changes, see:

https://github.com/gentoo/eudev/compare/v3.2.5...v3.2.7

(From OE-Core rev: dd2c4d9d85e70abacfa70fbe9281f393452875ea)

(From OE-Core rev: d8bf7e578bee8ece424ac1b2a3108734f115d737)

Signed-off-by: Anuj Mittal <anuj.mittal@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-02-06 16:38:30 +00:00
Douglas Royds
8163c7cbde icecc: patchelf is needed by icecc-create-env
Although we could potentially build patchelf and all its dependencies,
they would all have to be blacklisted to avoid trying to build them with
icecc. We use the host patchelf instead.

(From OE-Core rev: 0860216a81092fba084d29696db6d0c65a226c85)

(From OE-Core rev: 9d3587dda0e068efb72a89fd94002f13882fe335)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.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-02-06 16:38:30 +00:00
Douglas Royds
beaffe5b70 icecc: Don't generate recipe-sysroot symlinks at recipe-parsing time
The python function icecc_path() was being invoked inline by set_icecc_env(),
meaning that it was being invoked at recipe-parsing time.
As a side-effect, icecc_path() was creating the recipe-sysroot directory and
symlinking icecc into it. Because this was done at parsing time (rather than
configure time), we were generating otherwise-empty WORKDIRs for *all* parsed
recipes, and for all virtual classes (-native, -nativesdk).
In my build, this generated more than 800 of these otherwise-empty WORKDIRs.

I have simplified icecc_path() to return only the intended path to the icecc
symlinks in the recipe-sysroot, with no side-effect.
We then create the directory and the icecc symlinks at configure time.

Because get_cross_kernel_cc() is still invoked at parse-time,
it needs a guard-clause for the non-kernel case.
We are now finding the host icecc at do_configure time,
so icecc needs to be in the HOSTTOOLS. I have made this non-fatal,
so that we can still inherit icecc without icecc installed.

(From OE-Core rev: d2fcaeb153fdc3f8d7143ea823139f1537055ff1)

(From OE-Core rev: 46db052def5c4fa0de7943262092582c8d897117)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.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-02-06 16:38:30 +00:00
Douglas Royds
62333edce7 icecc: Syntax error meant that we weren't waiting for tarball generation
If two bitbake processes try to generate the ICECC_VERSION tarball at the same
time, the thread that fails to get the lock will wait 30 sec for the first to
finish. A syntax error meant that this was not happening, and in particular, if
tarball generation failed (eg. for lack of patchelf), it did so silently.

(From OE-Core rev: 4455c46bf7f49c2b44f250aa89b63b342368e2e3)

(From OE-Core rev: d4ec47005d29e30b31bc61fe126b385e9e781228)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.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-02-06 16:38:30 +00:00
Douglas Royds
f05f48d425 icecc: Trivial simplification
(From OE-Core rev: fa6bae80bc3392bf99ce53bbe19a0e05dbd0c4ee)

(From OE-Core rev: 57673fe89a9c597d7e1d657a0710f3c60df3c28d)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.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-02-06 16:38:30 +00:00
Douglas Royds
b903dfe925 icecc: readlink -f on the recipe-sysroot gcc/g++
We were accidentally doing a readlink -f on simply 'gcc', for instance

(From OE-Core rev: 6d6788a3ea45d9693743d9b3319fb0368a4d5d33)

(From OE-Core rev: 193eb75f21daa131b53358a4a1bf63028fe2a28c)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.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-02-06 16:38:30 +00:00
Bruce Ashfield
d6f2a6ad25 linux-yocto/4.18: update to v4.18.22
Integrating the -stable commits from Paul Gortmaker:

   24ed0744622e Linux 4.18.22
   8266951957ab tipc: use destination length for copy string
   2f2b82e7b4f8 arc: [devboards] Add support of NFSv3 ACL
   047e43ba5173 ARC: change defconfig defaults to ARCv2
   f8d102775911 Input: elan_i2c - add ACPI ID for Lenovo IdeaPad 330-15ARR
   91dfecd75ee7 Input: elan_i2c - add support for ELAN0621 touchpad
   7c63af1039aa Input: elan_i2c - add ELAN0620 to the ACPI table
   673d11935f70 Input: cros_ec_keyb - fix button/switch capability reports
   39f1f992639d Input: matrix_keypad - check for errors from of_get_named_gpio()
   b3cda161024f Input: synaptics - add PNP ID for ThinkPad P50 to SMBus
   3e533ca9eb5d Input: xpad - quirk all PDP Xbox One gamepads
   1c42a30f4824 i40e: Fix deletion of MAC filters
   0f2cbfeff18f svm: Add mutex_lock to protect apic_access_page_done on AMD systems
   af2cd1276d57 kgdboc: Fix warning with module build
   c72ba0c17cce kgdboc: Fix restrict error
   6571f7ba5f6a userfaultfd: shmem: UFFDIO_COPY: set the page dirty if VM_WRITE is not set
   3876646cbe3a userfaultfd: shmem: add i_size checks
   c8a600a72f36 userfaultfd: shmem: allocate anonymous memory for MAP_PRIVATE shmem
   bc43472443ee userfaultfd: use ENOENT instead of EFAULT if the atomic copy user fails
   34bfc624bb6b drm/meson: Fix OOB memory accesses in meson_viu_set_osd_lut()
   a5fdd876d4f9 drm/meson: Enable fast_io in meson_dw_hdmi_regmap_config
   c98737cc98c1 drm/meson: Fixes for drm_crtc_vblank_on/off support
   b6ba7cf72463 drm: set is_master to 0 upon drm_new_set_master() failure
   f5551d7db284 drm/ast: Fix incorrect free on ioregs
   f43ce49c718d tracing/fgraph: Fix set_graph_function from showing interrupts
   c31675335d18 IB/mlx5: Avoid load failure due to unknown link width
   339fc991ac42 mips: fix mips_get_syscall_arg o32 check
   ba720f00b540 MIPS: ralink: Fix mt7620 nd_sd pinmux
   87b2d7eda8cc sched, trace: Fix prev_state output in sched_switch tracepoint
   52338737ea2c mtd: nand: Fix memory allocation in nanddev_bbt_init()
   fa8d131f585a uprobes: Fix handle_swbp() vs. unregister() + register() race once more
   f895888ad58f iser: set sector for ambiguous mr status errors
   62613ca14469 unifdef: use memcpy instead of strncpy
   8a4fd8949897 test_hexdump: use memcpy instead of strncpy
   f68e638adaa5 misc: mic/scif: fix copy-paste error in scif_create_remote_lookup
   021b5e5a42e3 Drivers: hv: vmbus: check the creation_status in vmbus_establish_gpadl()
   f6167c3770f1 mm: use swp_offset as key in shmem_replace_page()
   d7044875a946 mm: cleancache: fix corruption on missed inode invalidation
   b14c4a131d36 lib/test_kmod.c: fix rmmod double free
   1b42a6def46d iio:st_magn: Fix enable device after trigger
   f6bd7b8e4dbc iio/hid-sensors: Fix IIO_CHAN_INFO_RAW returning wrong values for signed numbers
   a7cf14d6bbf0 Revert "usb: dwc3: gadget: skip Set/Clear Halt when invalid"
   b9be70d82cf4 usb: core: quirks: add RESET_RESUME quirk for Cherry G230 Stream series
   c233ce9ca873 USB: usb-storage: Add new IDs to ums-realtek
   726cd6bbfb4f staging: rtl8723bs: Add missing return for cfg80211_rtw_get_station
   cc91a66f70cd staging: rtl8723bs: Fix incorrect sense of ether_addr_equal
   a4827072018e staging: mt7621-dma: fix potentially dereferencing uninitialized 'tx_desc'
   3278d1121784 staging: vchiq_arm: fix compat VCHIQ_IOC_AWAIT_COMPLETION
   4871268b9733 staging: most: use format specifier "%s" in snprintf
   f52619fef6f3 dmaengine: at_hdmac: fix module unloading
   55a2c785818e dmaengine: at_hdmac: fix memory leak in at_dma_xlate()
   7def2114f963 ARM: dts: rockchip: Remove @0 from the veyron memory node
   d66e9553bb93 ASoC: pcm186x: Fix device reset-registers trigger value
   f28e4296150d ext2: fix potential use after free
   13cd83a3fdc6 ext2: initialize opts.s_mount_opt as zero before using it
   715877236823 binder: fix race that allows malicious free of live buffer
   4c80a994e1c3 function_graph: Reverse the order of pushing the ret_stack and the callback
   401bacb8a999 function_graph: Move return callback before update of curr_ret_stack
   5a45629359d8 function_graph: Have profiler use curr_ret_stack and not depth
   cdf8638a4a78 function_graph: Use new curr_ret_depth to manage depth instead of curr_ret_stack
   f54f3a8c164c function_graph: Make ftrace_push_return_trace() static
   19ebfe10ab9d MIPS: function_graph: Simplify with function_graph_enter()
   be7bcea6943b arm64: function_graph: Simplify with function_graph_enter()
   25465f3e0f89 s390/function_graph: Simplify with function_graph_enter()
   212fd6ab8b90 riscv/function_graph: Simplify with function_graph_enter()
   7845921e7845 parisc: function_graph: Simplify with function_graph_enter()
   02c3b2f09537 sparc/function_graph: Simplify with function_graph_enter()
   fadb32957bd3 sh/function_graph: Simplify with function_graph_enter()
   e8dab372f22f powerpc/function_graph: Simplify with function_graph_enter()
   06e04113d8ee x86/function_graph: Simplify with function_graph_enter()
   8974d9ddee8c microblaze: function_graph: Simplify with function_graph_enter()
   2ed3d836c186 ARM: function_graph: Simplify with function_graph_enter()
   a46f2a2ab8f7 function_graph: Create function_graph_enter() to consolidate architecture code
   0c23df1fb2ee ALSA: hda/realtek - fix headset mic detection for MSI MS-B171
   d33625c9ad99 ALSA: hda/realtek - Support ALC300
   d3736fa6a629 ALSA: hda: Add ASRock N68C-S UCC the power_save blacklist
   ac3d401ca588 ALSA: sparc: Fix invalid snd_free_pages() at error path
   5f8920cbdf8b ALSA: control: Fix race between adding and removing a user element
   68d40bdae9e1 ALSA: ac97: Fix incorrect bit shift at AC97-SPSA control write
   8a066b939728 ALSA: wss: Fix invalid snd_free_pages() at error path
   4e153baac165 fs: fix lost error code in dio_complete
   b3a80504fc6b perf/x86/intel: Disallow precise_ip on BTS events
   ef7ffa5edebb perf/x86/intel: Add generic branch tracing check to intel_pmu_has_bts()
   f273d7b0f5ea perf/x86/intel: Move branch tracing setup to the Intel-specific source file
   920db419fad5 x86/fpu: Disable bottom halves while loading FPU registers
   01ae1b649cc4 x86/MCE/AMD: Fix the thresholding machinery initialization order
   598ab7f4e75e arm64: dts: rockchip: Fix PCIe reset polarity for rk3399-puma-haikou.
   39b75abd266e PCI: layerscape: Fix wrong invocation of outbound window disable accessor
   aede037397ca btrfs: relocation: set trans to be NULL after ending transaction
   2fa66c494021 Btrfs: fix race between enabling quotas and subvolume creation
   050f755e1050 Btrfs: ensure path name is null terminated at btrfs_control_ioctl
   8640e4eba7a1 btrfs: Always try all copies when reading extent buffers
   d57b922c1fc6 udf: Allow mounting volumes with incorrect identification strings
   633f035c73f8 xtensa: fix coprocessor part of ptrace_{get,set}xregs
   e3b5970eae2a xtensa: fix coprocessor context offset definitions
   7123932c3463 xtensa: enable coprocessors that are being flushed
   4fea3a135968 KVM: VMX: re-add ple_gap module parameter
   2eda497b4155 KVM: X86: Fix scan ioapic use-before-initialization
   8c896ea1f95d KVM: x86: Fix kernel info-leak in KVM_HC_CLOCK_PAIRING hypercall
   cee09b048c40 KVM: nVMX/nSVM: Fix bug which sets vcpu->arch.tsc_offset to L1 tsc_offset
   60fa1976cc5a kvm: svm: Ensure an IBPB on all affected CPUs when freeing a vmcb
   151d0990d8c6 kvm: mmu: Fix race in emulated page table writes
   e7f4a4ecf899 userfaultfd: shmem/hugetlbfs: only allow to register VM_MAYWRITE vmas
   d04ea8a3e52b x86/speculation: Provide IBPB always command line options
   ba6fd92d9dde x86/speculation: Add seccomp Spectre v2 user space protection mode
   e162e0cb9f48 x86/speculation: Enable prctl mode for spectre_v2_user
   4fe877ade966 x86/speculation: Add prctl() control for indirect branch speculation
   26a22284be5b x86/speculation: Prepare arch_smt_update() for PRCTL mode
   3380e40c38d1 x86/speculation: Prevent stale SPEC_CTRL msr content
   dafcdc4d3ef4 x86/speculation: Split out TIF update
   b34c1d1e20ff ptrace: Remove unused ptrace_may_access_sched() and MODE_IBRS
   2f191447843d x86/speculation: Prepare for conditional IBPB in switch_mm()
   3c4a52665935 x86/speculation: Avoid __switch_to_xtra() calls
   9a02cf2b59f7 x86/process: Consolidate and simplify switch_to_xtra() code
   e45f1bf477c2 x86/speculation: Prepare for per task indirect branch speculation control
   40e17356647d x86/speculation: Add command line control for indirect branch speculation
   34ca30f6ebb2 x86/speculation: Unify conditional spectre v2 print functions
   8cf2abe5a48d x86/speculataion: Mark command line parser data __initdata
   b2e49f57b3d3 x86/speculation: Mark string arrays const correctly
   a951ec1282ca x86/speculation: Reorder the spec_v2 code
   f6e97c269fdf x86/l1tf: Show actual SMT state
   124f1934f087 x86/speculation: Rework SMT state change
   0db58041bd88 sched/smt: Expose sched_smt_present static key
   9b76ef59f198 x86/Kconfig: Select SCHED_SMT if SMP enabled
   74c0d392f4d2 sched/smt: Make sched_smt_present track topology
   4b44044665b7 x86/speculation: Reorganize speculation control MSRs update
   9d35dc0b1975 x86/speculation: Rename SSBD update functions
   ae5c861d44a2 x86/speculation: Disable STIBP when enhanced IBRS is in use
   9fdce9f0d6f6 x86/speculation: Move STIPB/IBPB string conditionals out of cpu_show_common()
   d9e0d122ae45 x86/speculation: Remove unnecessary ret variable in cpu_show_common()
   9ca44b34145e x86/speculation: Clean up spectre_v2_parse_cmdline()
   f472b112c142 x86/speculation: Update the TIF_SSBD comment
   4fe817e5f922 x86/retpoline: Remove minimal retpoline support
   cdda9afbdbcb x86/build: Fix compiler support check for CONFIG_RETPOLINE
   80420a04a82c x86/retpoline: Make CONFIG_RETPOLINE depend on compiler support
   e338c91ae9bb x86/speculation: Add RETPOLINE_AMD support to the inline asm CALL_NOSPEC variant
   dd970c7bb37c x86/speculation: Propagate information about RSB filling mitigation to sysfs
   1a42c7686198 x86/speculation: Apply IBPB more strictly to avoid cross-process data leak
   3fafe253622e tcp: defer SACK compression after DupThresh
   973b2d8edb37 net/dim: Update DIM start sample after each DIM iteration
   0541a4ad4c11 virtio-net: fail XDP set if guest csum is negotiated
   326888b906c0 virtio-net: disable guest csum during XDP set
   ce853ea2a2e1 net: skb_scrub_packet(): Scrub offload_fwd_mark
   497d616f9ef9 net: thunderx: set xdp_prog to NULL if bpf_prog_add fails
   32978c0d13b0 usbnet: ipheth: fix potential recvmsg bug and recvmsg bug 2
   303b14516da0 s390/qeth: fix length check in SNMP processing
   beedfff965e4 rapidio/rionet: do not free skb before reading its length
   9bde4bd658b6 packet: copy user buffers before orphan or clone
   8240b24014e5 net: thunderx: set tso_hdrs pointer to NULL in nicvf_free_snd_queue
   f4b7bf2f7824 net: gemini: Fix copy/paste error
   1a57f5e05433 net: don't keep lonely packets forever in the gro hash
   fa9f95c537f2 lan743x: fix return value for lan743x_tx_napi_poll
   e7ef14941113 lan743x: Enable driver to work with LAN7431
   a7a42d6ae23e mm/khugepaged: collapse_shmem() do not crash on Compound
   219f7f003c6b mm/khugepaged: collapse_shmem() without freezing new_page
   a5df6e4dd710 mm/khugepaged: minor reorderings in collapse_shmem()
   1d0476b09ae2 mm/khugepaged: collapse_shmem() remember to clear holes
   ba76e023cbcd mm/khugepaged: fix crashes due to misaccounted holes
   4ee51871be50 mm/khugepaged: collapse_shmem() stop if punched or truncated
   4b7da0a23ab7 mm/huge_memory: fix lockdep complaint on 32-bit i_size_read()
   4ea44ec50a87 mm/huge_memory: splitting set mapping+index before unfreeze
   9385e2751953 mm/huge_memory: rename freeze_page() to unmap_page()
   cfe3f465651c media: ov5640: fix auto controls values when switching to manual mode
   ce92e4309a8f media: ov5640: fix wrong binning value in exposure calculation
   797f0d9cdb19 media: ov5640: fix auto gain & exposure when changing mode
   09dd7d55020c media: ov5640: fix exposure regression
   d081f6351a54 media: ov5640: Fix timings setup code
   e27220212028 media: ov5640: Re-work MIPI startup sequence
   1941b77cf04d rcu: Make need_resched() respond to urgent RCU-QS needs
   2d694e55c1a8 tty: wipe buffer if not echoing data
   ff91ad4b37b6 tty: wipe buffer.
   c9a2097b5bca include/linux/pfn_t.h: force '~' to be parsed as an unary operator
   69adf873d6b7 mm, page_alloc: check for max order in hot path
   4cf135795c19 tmpfs: make lseek(SEEK_DATA/SEK_HOLE) return ENXIO with a negative offset
   5056621d3d82 mm, memory_hotplug: check zone_movable in has_unmovable_pages
   dfa625fbef30 z3fold: fix possible reclaim races
   32536aab2f6d powerpc/numa: Suppress "VPHN is not supported" messages
   41d104c27a25 NFSv4: Fix an Oops during delegation callbacks
   7d1687dde51a kdb: Use strscpy with destination buffer size
   32fe7d4fb78e drm/amdgpu: fix bug with IH ring setup
   f93e575d397a RISC-V: Silence some module warnings on 32-bit
   8e1136c5aff5 riscv: add missing vdso_install target
   48182b646f13 SUNRPC: Fix a bogus get/put in generic_key_to_expire()
   11e0046dcfea perf/x86/intel/uncore: Add more IMC PCI IDs for KabyLake and CoffeeLake CPUs
   73141f3f7b4f sched/fair: Fix cpu_util_wake() for 'execl' type workloads
   757ebe2cf812 powerpc/io: Fix the IO workarounds code to work with Radix
   cf650c21904c floppy: fix race condition in __floppy_read_block_0()
   7e04a587b960 crypto: simd - correctly take reqsize of wrapped skcipher into account
   eeb7ebec5993 rtc: pcf2127: fix a kmemleak caused in pcf2127_i2c_gather_write
   1a7a12521b42 rtc: cmos: Do not export alarm rtc_ops when we do not support alarms
   06200773ff6b cpufreq: imx6q: add return value check for voltage scale
   8bc2418df6ef KVM: PPC: Move and undef TRACE_INCLUDE_PATH/FILE
   c2d490ff84be scsi: hisi_sas: Remove set but not used variable 'dq_list'
   7fa1b9068daf pinctrl: meson: fix meson8b ao pull register bits
   c3faa93f65aa pinctrl: meson: fix meson8 ao pull register bits
   539eae5c2efb pinctrl: meson: fix gxl ao pull register bits
   81e6fb4d21c9 pinctrl: meson: fix gxbb ao pull register bits
   23980899fd33 pinctrl: meson: fix pinconf bias disable
   2acf52e0d024 fsnotify: generalize handling of extra event flags
   70804a2395f9 IB/hfi1: Eliminate races in the SDMA send error path
   36f0ce79eea5 ACPICA: AML interpreter: add region addresses in global list during initialization
   98a7ff363966 can: flexcan: remove not needed struct flexcan_priv::tx_mb and struct flexcan_priv::tx_mb_idx
   7e6c6e8f96a3 can: flexcan: Always use last mailbox for TX
   09c695304ced can: hi311x: Use level-triggered interrupt
   d5f1bed61e87 can: raw: check for CAN FD capable netdev in raw_sendmsg()
   5dbbeea479ba can: flexcan: handle tx-complete CAN frames via rx-offload infrastructure
   9d698b0e8c60 can: flexcan: use can_rx_offload_queue_sorted() for flexcan_irq_bus_*()
   3ca38586737b can: rx-offload: rename can_rx_offload_irq_queue_err_skb() to can_rx_offload_queue_tail()
   b564520dc84a can: rx-offload: introduce can_rx_offload_get_echo_skb() and can_rx_offload_queue_sorted() functions
   ba4d601f11da can: dev: __can_get_echo_skb(): print error message, if trying to echo non existing skb
   14daeee327c0 can: dev: __can_get_echo_skb(): Don't crash the kernel if can_priv::echo_skb is accessed out of bounds
   bd8f43390a6e can: dev: __can_get_echo_skb(): replace struct can_frame by canfd_frame to access frame length
   ec51a36d40ba can: dev: can_get_echo_skb(): factor out non sending code to __can_get_echo_skb()
   17afd6b2f539 can: flexcan: Unlock the MB unconditionally
   4e10eaf14115 drm/ast: Remove existing framebuffers before loading driver
   2059f682eac4 drm/ast: fixed cursor may disappear sometimes
   47d28426881e drm/ast: change resolution may cause screen blurred
   231220ffbd0c drm/i915: Disable LP3 watermarks on all SNB machines
   0ca629caa428 tcp: do not release socket ownership in tcp_close()
   235bb14bb504 mm/memory.c: recheck page table entry with page table lock held
   700d687423ce mm: don't warn about large allocations for slab
   3deb594eb9cc llc: do not use sk_eat_skb()
   d62cdc16c019 gfs2: Don't leave s_fs_info pointing to freed memory in init_sbd
   91aa78f105a0 sctp: clear the transport of some out_chunk_list chunks in sctp_assoc_rm_peer
   1ffe2390eec3 bfs: add sanity check at bfs_fill_super()
   609b2f88baa9 Input: synaptics - avoid using uninitialized variable when probing
   1c3712cd9ec5 selinux: Add __GFP_NOWARN to allocation at str_read()
   f4dd907859f6 v9fs_dir_readdir: fix double-free on p9stat_read error
   43fb0f750bf5 tools/power/cpupower: fix compilation with STATIC=true
   7b18c23b8a15 opp: ti-opp-supply: Correct the supply in _get_optimal_vdd_voltage call
   cdcc687a7c0f opp: ti-opp-supply: Dynamically update u_volt_min
   adf820e7040b brcmfmac: fix reporting support for 160 MHz channels
   77260dca90d8 iwlwifi: mvm: don't use SAR Geo if basic SAR is not used
   230956227e0f iwlwifi: mvm: fix regulatory domain update when the firmware starts
   34c26e7ff77e iwlwifi: mvm: support sta_statistics() even on older firmware
   4e7059a1ef08 iwlwifi: fix wrong WGDS_WIFI_DATA_SIZE
   00db19541478 gpio: don't free unallocated ida on gpiochip_add_data_with_key() error path
   1c65bc42b0b6 mmc: sdhci-pci: Workaround GLK firmware failing to restore the tuning value
   e670f3c0bd7f mmc: sdhci-pci: Try "cd" for card-detect lookup before using NULL
   0279a3e8c9a3 Documentation/security-bugs: Postpone fix publication in exceptional cases
   bea263a4d369 Documentation/security-bugs: Clarify treatment of embargoed information
   85225e451366 MAINTAINERS: Add Sasha as a stable branch maintainer
   a820ce4d4189 ALSA: oss: Use kvzalloc() for local buffer allocations
   7ca1b0cfd1f5 usb: xhci: Prevent bus suspend if a port connect change or polling state is detected
   6dc2234cfc3d xhci: Add quirk to workaround the errata seen on Cavium Thunder-X2 Soc
   e23d44bfb180 usb: xhci: fix timeout for transition from RExit to U0
   794e4eca3eb8 usb: xhci: fix uninitialized completion when USB3 port got wrong status
   e705be077247 xhci: Add check for invalid byte size error when UAS devices are connected.
   a065ce744fcb xhci: handle port status events for removed USB3 hcd
   d0ab048de951 xhci: Fix leaking USB3 shared_hcd at xhci removal
   c191d670df6c usb: dwc3: core: Clean up ULPI device
   baae5ac1953b usb: dwc3: gadget: Properly check last unaligned/zero chain TRB
   a3c907510737 usb: dwc3: gadget: fix ISOC TRB type on unaligned transfers
   2b5d953d4120 usb: core: Fix hub port connection events lost
   015ca0f92560 efi/libstub: arm: support building with clang
   7972aba9b9a0 HID: steam: remove input device when a hid client is running.

(From OE-Core rev: d288dc17d6fe6e88d6a490f258e8d2502d661aad)

(From OE-Core rev: 933712eb6a2b212ac53fbc79d1d3e79dd551523f)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-02-06 16:38:29 +00:00
Bruce Ashfield
6e640ff1e8 kernel: use olddefconfig as the primary target for KERNEL_CONFIG_COMMAND
As was warned by commit 312ee68752fa [kconfig: announce removal of
oldnoconfig if used], oldnoconfig has been removed from the 4.20 kernel.

So we switch our default mode to olddefconfig.

commit fb16d8912 [kconfig: replace 'oldnoconfig' with 'olddefconfig',
and keep the old name as an alias] introduced olddefconfig in the 3.10
kernel, we shuffle oldnoconfig to the fallback target.

The fallback mode allows kernels between 3.10 and the currently listed
oldest kernel of 3.2 to continue to configure.

(From OE-Core rev: 8593dcb7e8c938530ff00ffedf7f3d02d26c3bad)

(From OE-Core rev: 0bbe3d579e4363a0ee34a9490dbf10f2a7a6736c)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-02-06 16:38:29 +00:00
Richard Purdie
1d987b98ed bitbake: server/process: Add missing exception raise
The intent of the code was to catch one kind of error, it was actually swallowing
all exceptions and looping indefinitely. Fix it to work as intended.

This explains some mystery hangs we've been seeing.

(Bitbake rev: d89358c7b8aa69f12b8c384c4fdb493782633494)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-06 08:32:00 +00:00
David Reyna
9bd81c492c bitbake: toaster: correctly register the thud branch
There are typos in the fixture files that need to be fixed to correctly
check out the 'thud' branch.

[YOCTO #13064]

(Bitbake rev: 03a2bc00a070794452aa1df0fd75a338bdccc47d)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-06 08:32:00 +00:00
Richard Purdie
3541f019a5 bitbake: process: Rewrite multiple connection handling
If the bitbake server recieved multiple connections, it currently closes
ones it can't handle (while its dealing with another). This is rather
antisocial behaviour which causes clients to quickly run through their
retries and abort.

Instead, queue any other connections until the current one is closed. This
way the client can decide when it wants to stop waiting for the server. If the
client is gone by the time we handle it, we handle that gracefully.

This also fixes a number of bugs in the connection handling where connections
which did drop early were badly handled causing tracebacks in the logs.

Also, handle queue incomming connections in a loop to ensure that the main
client handling doesn't starve that piece of the system.

This code was stress tested by running 50 connection attempts in parallel at
once, ensuring the code correctly handled them.

(Bitbake rev: 220193dc38c4e78cb7cf36132a3a5b499a35bc8a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-28 17:03:14 +00:00
Richard Purdie
563a74d522 bitbake: process: Handle EWOULDBLOCK in socket connect
Now that we set a timeout for the socket, it can return EWOULDBLOCK
if a signal or other event happens to wake up even if we don't timeout.

If this happens, retry the connection, else we simply see it quickly
loop through the retries and abort the connection in a very short
interval.

(Bitbake rev: c2000651a200530ba08161207ade5eea8bbeec43)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-28 17:03:14 +00:00
Richard Purdie
86209d4365 bitbake: process.py: Set socket timeout to 10 seconds
The current value of 2 seconds has shown to be short in
wider testing.

(Bitbake rev: 469cc520593ba52775a373faad03072b7af05dba)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-28 17:03:14 +00:00
Richard Purdie
b2660f423e bitbake: server/process: Ensure socket has a timeout set
We're seeing hangs in oe-selftest where server startup and shutdown are
racing. The assumption was a connect would timeout however no timeout is
set which can leave processes hanging. Set a short timeout for
the connection to avoid this.

(Bitbake rev: 833d95f538c007c27c6eb8d8f2f97094dc2b1a41)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-28 17:03:14 +00:00
Richard Purdie
d52655e517 bitbake: lib/bb/server: Avoid UnboundLocalError traceback
Traceback (most recent call last):
  File "/home/pokybuild/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/main.py", line 464, in setup_bitbake
    server_connection = bb.server.process.connectProcessServer(sockname, featureset)
  File "/home/pokybuild/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/server/process.py", line 490, in connectProcessServer
    if command_chan_recv:
UnboundLocalError: local variable 'command_chan_recv' referenced before assignment

(Bitbake rev: 257ed88590883f46beec0164749e45733e67954e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-28 17:03:13 +00:00
Richard Purdie
6399d307ad bitbake: server/process: Handle short reads
Its possible the read may return a smaller number of characters. Remove
the possibility by using a single character to signal the server is ready.

(Bitbake rev: 7fb2d6bed06439e59a81dd91798d886ee0a72e99)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-28 17:03:13 +00:00
Richard Purdie
4e3ab56b9f bitbake: cooker: Add some timing debug messages to the server startup
We're seeing slow startup in bitbake, add some timeing debug messages so
the logs are more useful for debugging when its slow.

(Bitbake rev: 92f61dfe409da2fdd7c609cf1125878aad273d04)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-28 17:03:13 +00:00
Richard Purdie
bb1f8f0891 bitbake: server/process: Increase server startup time delay
On loaded production systems we've seen bitbake server take over
40s to start up. Increase the timeout to 90s which tries to avoid
failures in selftests.

The delays come from setting up the inotify watches (31s) so can't
really be avoided.

After 5s delay we now warn the user we're waiting for 90s so the
interactive exeperience shouldn't be much changed and its very
unlikely the user would see that anyway.

(Bitbake rev: 492a5c1b32bee1f5d7978954ee0ebdf4fccdf56f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-28 17:03:13 +00:00
Alejandro Enedino Hernandez Samaniego
c425c0a38f bitbake: cooker: fix indirect multiconfig dependencies
When an indirect multiconfig dependency exists, such as:

A depends on B, B has a multiconfig dependency to C,and our build
target is A, the multiconfig dependency to C is not processed on
time, hence no providers are added for it, causing an exception in
the runqueue because the dependency does exist in it.

Call add_unresolved() for all available multiconfigs before processing
providers for multiconfig dependencies, detecting mcdepends on time so
providers for them can be added correctly.

(Bitbake rev: 25b585b981cc7e4ed48b0f7c89a075486fa1eb2b)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-28 17:03:13 +00:00
Scott Rifenbark
cc73390a75 dev-manual, brief-yoctoprojectqs: Added "2.6.1" tag to examples
Even though the tag does not exist at this point because the
release is in development, I added the tag to the list of
tags returned by the "git tag" command in the two examples
in these books.  The manual at this point is under development
so all bets are off as to things being totally accurate here.
Once the release is out, the example will work.

(From yocto-docs rev: 41e25a93eed0b75bfeb934c59a5bc4c34df53445)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-23 07:56:37 +00:00
Scott Rifenbark
7022689b10 brief-yoctoprojectqs, dev-manual: Update tag checkout examples
Turns out I had some hard-coded stuff in these examples.
Furthermore, I did not have good enough detail in the
brief-yoctoprojectqs manual.  I added more detail on how to get
that sato example going.

(From yocto-docs rev: 8d2fe4968eec9250c6bf9da530d2d7521f68b986)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-16 15:35:47 +00:00
Scott Rifenbark
a5b9706722 poky.ent: Updated release date to "January 2019"
Variable used in the manual revision tables had gone stale.

(From yocto-docs rev: 9325027bbc7bccbb9e4d4a6a02b9b2b1817f8725)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-16 15:35:47 +00:00
Richard Purdie
1cab405d88 build-appliance-image: Update to thud head revision
(From OE-Core rev: ad0a553f0bbdbed5f78a27162289a1e358580dcc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-08 22:50:45 +00:00
Richard Purdie
ca417455d7 poky: Update version to 2.6.1
(From meta-yocto rev: e8de212ef932e6e837483517dff324aa9d9bbe5d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-08 22:49:30 +00:00
Khem Raj
5fe5271c9d local.conf.sample: Update the sample config as per new migration manual
Syncs with oe-core and the documentation
https://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#var-TESTIMAGE_AUTO
https://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#migration-2.6-automatic-testing-changes

(From meta-yocto rev: 1d180bc08eb6b46be4127d0b1a067b0fb92544d5)

(From meta-yocto rev: 42ee4df294851e442d7abf11e6126c82ae3270ee)

Signed-off-by: Khem Raj <raj.khem@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-01-08 21:41:06 +00:00
Peter Kjellerstedt
8bbd177bb8 bitbake: bitbake-diffsigs: Support recursive deps with signature files
Follow dependent hash changes recursively also when specifying two
signature files explicitly. Previously this was only done when using the
--task option.

(Bitbake rev: a5f5ec9e09e2b2891cade97d0568284fc064cb26)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-08 21:41:06 +00:00
Peter Kjellerstedt
2ef46c44f5 bitbake: bitbake-diffsigs: Merge with bitbake-dumpsig
The functionalities of bitbake-diffsigs and bitbake-dumpsig are so
similar that they can be merged into one. Add an option --dump to make
bitbake-diffsigs dump the last signature data instead of comparing it.
Keep bitbake-dumpsig as a symbolic link to bitbake-diffsigs. When it is
called as bitbake-dumpsig, it behaves as if --dump was specified.

Also make -D the short option for --debug again (the way it used to be,
and still was for bitbake-dumpsig), so that -d can be used as the short
option for --dump.

(Bitbake rev: e7130f8bd86843c0b780b2ecabd297cd35ddcbe3)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-08 21:41:06 +00:00
Richard Purdie
263cf203bd poky.conf: Update the distros we test against on the autobuilder
(From meta-yocto rev: e2bad29f075d668d70b55f85aec4fd6039e7c119)

(From meta-yocto rev: 7c7856b863f43dc1d88e7ce343e52336cf7bf4fd)

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-01-08 20:18:55 +00:00
Richard Purdie
0c6290b6bc bitbake: server/process: Show last 60 lines of the log if the server didn't start
We're seeing issues where the server doesn't start with no logs as to why. Allow
the server to print the last 60 log lines just in case this shows us something useful
about what is failing.

(Bitbake rev: 1351978585b76262cb104f3d609d79c184ee5d2b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-08 20:18:55 +00:00
Richard Purdie
cfbd125fef bitbake: server/process: Show the last 60 log lines, not the last 10
10 log lines may not capture any full traceback, increase the number of
lines to 60 which covers most tracebacks.

(Bitbake rev: 2626ff964c0a5726037e539cfd07027aded0b7a9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-08 20:18:55 +00:00
Robert Yang
103f13ac6e bitbake: server/process: print a message when no logfile
[YOCTO #12898]

There might be no bitbake-cookerdaemon.log, print a message for debugging.

(Bitbake rev: 9c3c965b9d90617e8aa2cf439019534a35a7bcb1)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-08 20:18:55 +00:00
Richard Purdie
b5dd9158e9 bitbake: server/process: Make lockfile handling clearer
This simplifies the code and makes it easier to read but has the
same functionality.

(Bitbake rev: b829d1b5eb486786cae088f6927530433a7e08e8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-08 20:18:55 +00:00
Ross Burton
25c7bf985e bitbake: fetch: don't use shell=True when listing ar files
(Bitbake rev: ff2e5d435046886791551587a0988f21ddfe6e2a)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-08 20:18:55 +00:00
Ross Burton
e313645b88 bitbake: layerindex: don't use shell=True when cloning
(Bitbake rev: b94d4728b35350b812838cdbc7afada776ad5122)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-08 20:18:54 +00:00
Bruce Ashfield
894df54323 linux-yocto: correct qemumips64el definition
The big endian mips definition was used as the basis for the little
endian machine. Unfortunatey, the KMACHINE definitions were not fully
cleared, so big endian builds will match on the 'le' variant .. and
break.

We drop the BE machine definitions from the LE variant and we are fixed.

(From OE-Core rev: 863e520059cdc96817ec87983d1e036f291bf37c)

(From OE-Core rev: 16643e8309afd03e99be2482ae7f7ce11cb0bebe)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Dropped 4.19 changes]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-08 20:14:44 +00:00
Bruce Ashfield
de7be89608 linux-yocto: configuration updates (virtio and tpm)
Integrating the following configuration changes:

  1992fb4dad30 virtio.cfg: enable CONFIG_DRM_VIRTIO_GPU
  9e9ba7cb6756 features/tpm: enable tpm support

(From OE-Core rev: c4e273f6a2213ac898fbc504b9bfc12af633c9b8)

(From OE-Core rev: a6356975709cb7bcfbea60ce9f1507583eccd2e2)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Drop 4.19 changes]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-08 20:14:44 +00:00
Khem Raj
a4e7bb5346 populate_sdk_ext.bbclass: Include site.conf in parsing for contents for local.conf
Some distros use site.conf to emit certain variables which are important
for eSDK e.g. DISTRO with out which eSDK will not be able to ger right
metadata when it tries to build

(From OE-Core rev: 95659bed3f6f3216b346f70cfc9ffae9788c0fc1)

(From OE-Core rev: d2f802b656dea7f9c227bd86db35e02c33f69021)

Signed-off-by: Khem Raj <raj.khem@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-01-08 20:14:44 +00:00
Zheng Ruoqin
c9bffece78 createrepo-c: Fix setup of logging (log domains)
New debug messages were added into GLib library. These messages come
from the "GLib" log domain and were not hidden in the standard and
quiet mode of the application.
This fix hides log messages regardless on source log domain.

Backport from 80810f04f2de6bae6e394f52ad9cdd2189862f74.

(From OE-Core rev: a41927366c3c3070dfb95ec7f595e9f73105a517)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-08 20:14:44 +00:00
Zheng Ruoqin
bb2d4def8d nss: Fix SHA_HTONL bug for arm 32be.
Rpm use nss as digest crypto library and which will cause an error as follows:

error: test-manual-1.2.3-20181012.noarch.rpm: Header SHA1 digest: BAD (Expected
f1deb7dc4a10742d88ccd1e967dbc62ae45095a5 !=4ad9d7dad6d70d6086eefec62612ad5d77f2fe81)  => this value is wrong
error: test-manual-1.2.3-20181012.noarch.rpm: not an rpm package (or package manifest)

The error is caused by SHA_HTONL in nss, for there is no need to reverse the host value for arm 32be, so fix it.

(From OE-Core rev: 257a1ccd16928dff64aa4d2e1553f52e910edbb2)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-08 20:14:44 +00:00
Hongxu Jia
a8bccfa9a5 go 1.9/1.11: fix textrel qa warning for non mips arch
While building go itself, the go build system does not support
to set `-buildmode=pie' from environment.

Add GOBUILDMODE to support it which make PIE executables the default
build mode, as PIE executables are required as of Yocto

But mips doesn't support -buildmode=pie, so skip the QA checking for
mips and its variants

(From OE-Core rev: 7a8c5d29f70574043d695bc60da16c823d12a83e)

Signed-off-by: Hongxu Jia <hongxu.jia@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-01-08 20:14:44 +00:00
Ross Burton
3fc361f5f0 python3: drop redundant patch
This patch altered the clean target's behaviour to skip the ipkg-install
directory.  However this directory isn't created by opkg, opkg-utils, or the
package_ipk class; and we don't invoke the clean target as we perform
out-of-tree builds.

(From OE-Core rev: 9f8bd475701e5d797d3ffc1ba97647101ba0b9b0)

(From OE-Core rev: e147baad7ab722b8319225561eb23cd4442629e1)

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-01-08 20:14:44 +00:00
Ross Burton
356c6a7b68 python3: don't cripple target distutils
We stop distutils for *native* Python from rewriting hashbangs when installing
(so installed scripts don't have a hashbang that refers to sysroot paths), but
this isn't needed nor desirable for the *target* Python.

(From OE-Core rev: 52e128619803907c804d42815ea979b1848529c4)

(From OE-Core rev: 17a2731bd2795974197b1dca3de53094cec58126)

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-01-08 20:14:44 +00:00
Alexey Brodkin
45e3843c30 gdb: Remove long ago upstreamed patch
This fix was upstreamed a long ago, see [1].

[1] https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=37ce4055fe907b9edd25498dcda7a133dbd19784

(From OE-Core rev: 873507c0cbbf1f7ef22d1cb9dcb0e2b167460490)

(From OE-Core rev: 7a4cc4c690272579491ba8340b63da7efa3ca665)

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.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-01-08 20:14:44 +00:00
Khem Raj
7c7daa3ec0 valgrind: Skip vgpreload_memcheck shared object from stripping
This is a special library for memcheck tool, where it needs to have the
symbols intact for the stack traces to work on target, current option is
to install valgrind-dbg ( 151 MB uncompressed ) is quite big for some
systems which may not have space to install it all. Leaving it
unstripped adds about 200KB to image which is much better, this alone
gets memcheck working, as an aside we might need same solution for other
tools e.g. helgrind etc. when needed, they also have leading libraries
installed

(From OE-Core rev: 23da8f50b1e0a74777035c9f7b65b81456908f9f)

(From OE-Core rev: 49e38e029a21c02ca44d6db1bc91190f7c6e11ca)

Signed-off-by: Khem Raj <raj.khem@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-01-08 20:14:44 +00:00
Joshua Watt
ee036060a8 classes/icecc.bbclass: Fix ccache disable
The ccache disable flag was misspelled, preventing it from being
disabled.

(From OE-Core rev: 33fba601a7365aced9f4b206c1fadda997076d4c)

(From OE-Core rev: aefa930d9cfcdc32ba9411311f269e005e5372e0)

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-01-08 20:14:44 +00:00
Ross Burton
436b5ceca4 patchreview: Various fixes/improvements
Add various fixes and improvements including the ability to export
patch statsitics as json data.

(From OE-Core rev: aa4a4b3ca799948047337e006ee9bf482be7b409)

(From OE-Core rev: 1d0eb08f016db5d5ab08b37dea654950731fcab3)

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-01-08 20:14:44 +00:00
Ross Burton
2b91be4910 insane: Clarify GNU_HASH warning
We have a fatal error if ELF objects don't have GNU_HASH segments but it
doesn't explain what the problem is.  At least give a hint to users by
suggesting that LDFLAGS wasn't passed to the compiler.

(From OE-Core rev: 5d4da6713b40e10e853eb746f700096307ffe158)

(From OE-Core rev: a0ac85826aeee633e01d00d7a1f188724a2937f0)

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-01-08 20:14:44 +00:00
André Draszik
e82982094a linux-firmware: better packaging for TI wl12xx & wl18xx firmwares
Currently, the linux-firmware-wl12xx contains all wl12xx and
wl18xx firmwares, except for the wl18xx compatibility symlinks
for old kernels and the linux-firmware-wl18xx contains just
those compatibility symlinks and nothing else. This doesn't
make sense...

Be more specific about what to package into each package, in
particular because the existing wl12xx package is specific
about symlinks already.

At the same time, we split the common bits into a -wlcommon
package, so that the wl18xx package doesn't need to depend
on all the wl12xx firmwares, saving several MiB in the file
system.

(From OE-Core rev: e4423eef71c463efe7a1cdf1a426cc9619c78b8a)

(From OE-Core rev: eb85e7c4d011157d7d7db1b4706a60f6e609c980)

Signed-off-by: André Draszik <andre.draszik@jci.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-01-08 20:14:44 +00:00
Otavio Salvador
171367cbfd linux-firmware: Bump revision to 1baa348
This adds following changes:

1baa348 Merge branch 'nxp_mc' of https://github.com/NXP/linux-firmware
c7ba355 qed: Add 8.37.7.0 firmware image
1cb4e51 amdgpu: add raven dmcu firmware
aa71b2d amdgpu: update raven firmware to 18.40
fcd5a5f amdgpu: update fiji firmware to 18.40
453caa3 amdgpu: update tonga firmware to 18.40
7ceb224 amdgpu: update carrizo firmware to 18.40
a136e78 amdgpu: update polaris10 firmware to 18.40
ac5f8bd amdgpu: update vega10 firmware to 18.40
8d3825c linux-firmware: add firmware for mt7650e
96d6db5 linux-firmware: add MC firmware for NXP DPAA2 SoCs
d877533 linux-firmware: liquidio: fix GPL compliance issue
2618544 linux-firmware: Update firmware file for Intel Bluetooth,8265
c34a52a linux-firmware: Update firmware patch for Intel Bluetooth 8260
d8e8163 linux-firmware: Update firmware file for Intel Bluetooth,9260
66b58d4 linux-firmware: Update firmware file for Intel Bluetooth,9560
50b8b0b linux-firmware: add firmware for mt7610e
de9cefa Merge branch 'firmware-update' of https://github.com/01org/opa-firmware
951cd9e Merge branch 'ath10k-20181010' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/linux-firmware
c6398e3 Update Intel OPA hfi1 firmware
eaceb79 ath10k: QCA9984 hw1.0: update board-2.bin
a00e61b ath10k: QCA9984 hw1.0: update firmware-5.bin to 10.4-3.6.0.1-00003
50d4180 ath10k: QCA988X hw2.0: update firmware-5.bin to 10.2.4-1.0-00041
427d31d ath10k: QCA9888 hw2.0: update board-2.bin
d87e815 ath10k: QCA9888 hw2.0: update firmware-5.bin to 10.4-3.6-00140
097bbdf ath10k: QCA9887 hw1.0: update firmware-5.bin to 10.2.4-1.0-00041
3e2e5d3 ath10k: QCA9377 hw1.0: add firmware-6.bin to WLAN.TF.2.1-00021-QCARMSWP-1
a87eb5f ath10k: QCA6174 hw3.0: update firmware-6.bin to RM.4.4.1.c2-00057-QCARMSWP-1
14024d3 ath10k: QCA4019 hw1.0: update board-2.bin
2ac415e ath10k: QCA4019 hw1.0: update firmware-5.bin to 10.4-3.6-00140
f503e1d nfp: Add Agilio BPF firmware rev 2.0.6.124
c6b6265 Merge tag 'iwlwifi-fw-2018-10-03' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/linux-firmware
338684a rtw88: Add firmware file for driver rtw88
68a4930 nfp: update Agilio SmartNIC flower firmware to rev AOTC-2.9.A.37
da110f2 iwlwifi: add -41.ucode firmwares for 9000 series
b1ac8f4 iwlwifi: update firmwares for 9000 series
58265e0 iwlwifi: update firmwares for 7000, 8000 and 9000 series
dc638d6 nfp: update Agilio SmartNIC firmware to rev 2.1.13
7c81f23 ti-connectivity: add firmware for CC2560(A) Bluetooth
f0a1cbf linux-firmware: mediatek: add firmware for mt7668u Bluetooth
eb6419c nvidia: add GV100 signed firmware
1ab9095 Merge git://git.marvell.com/mwifiex-firmware
2ddd8f0 Merge branch 'master' of https://github.com/bgodavar/qca_rome_firmware
18c4c8a firmware/icl/dmc: Add v1.07 of DMC for Icelake
52b23a9 linux-firmware: add Marvell SD8997 firmware image
534daf4 qca: update BT firmware files for QCA ROME chip.

License-Update: new firmware files additions
(From OE-Core rev: f1638d3acbabe43f4909a6dc8de6158e1d8cb439)

(From OE-Core rev: c3a5769d04c974051f8ed0b8e7547170cbca252f)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
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-01-08 20:14:44 +00:00
Christophe PRIOUZEAU
2b70fb6ff9 openssl: correct bad path on package preprocess
In case of SDK generation, /usr/bin/ path are not correct
and must be replaced by ${bindir}.

(From OE-Core rev: 0fa7d99444763192914e798d8bc9dba1d9cdae42)

(From OE-Core rev: 6a1c020008d334b56b94399a61ad1dc3a4817b36)

Signed-off-by: Christophe Priouzeau <christophe.priouzeau@st.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>
2019-01-08 20:14:44 +00:00
Ross Burton
25f260f593 ruby: upgrade 2.5.1 -> 2.5.3
(From OE-Core rev: 17a8576375fadbfa44e9272a942bf12887b5e1a2)

(From OE-Core rev: ef91e281bb1e24a26f3179fd9f511714a0d4c746)

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-01-08 20:14:43 +00:00
Bruce Ashfield
477b925f55 linux-yocto/4.18: update to v4.18.21
Integrating Paul Gortmaker's 4.18.x -stable queue that comprises the
following commits:

   7791d9ae24f8 Linux 4.18.21
   a80801badd68 libceph: fall back to sendmsg for slab pages
   fa1d15db0676 HID: Add quirk for Microsoft PIXART OEM mouse
   539bf8a221c2 HID: Add quirk for Primax PIXART OEM mice
   e5cfd0902404 HID: uhid: forbid UHID_CREATE under KERNEL_DS or elevated privileges
   c2d5a17480e1 ACPI / platform: Add SMB0001 HID to forbidden_id_list
   a6f05874e5e4 drivers/misc/sgi-gru: fix Spectre v1 vulnerability
   a2106abb1311 mtd: rawnand: atmel: fix OF child-node lookup
   852707bdc43c USB: misc: appledisplay: add 20" Apple Cinema Display
   025b1def8764 misc: atmel-ssc: Fix section annotation on atmel_ssc_get_driver_data
   9e7b23298a7e usb: quirks: Add delay-init quirk for Corsair K70 LUX RGB
   013de23dac1c USB: Wait for extra delay time after USB_PORT_FEAT_RESET for quirky hub
   3f514468061f USB: quirks: Add no-lpm quirk for Raydium touchscreens
   bbcc56d2f095 usb: cdc-acm: add entry for Hiro (Conexant) modem
   97e2f24e1a83 ALSA: hda/ca0132 - Call pci_iounmap() instead of iounmap()
   745bb5e7cfeb ALSA: hda/realtek - Add quirk entry for HP Pavilion 15
   1c6195c1d07e RISC-V: Fix raw_copy_{to,from}_user()
   58d333dec778 MIPS: OCTEON: cavium_octeon_defconfig: re-enable OCTEON USB driver
   574cddd586ad x86/ldt: Unmap PTEs for the slot before freeing LDT pages
   e5992ad333bb x86/ldt: Split out sanity check in map_ldt_struct()
   4fec0315cc99 x86/mm: Move LDT remap out of KASLR region on 5-level paging
   06e06217b513 x86/mm/doc: Enhance the x86-64 virtual memory layout descriptions
   afddf2bc08b8 x86/mm/doc: Clean up the x86-64 virtual memory layout descriptions
   251fe62f9fbd SUNRPC: drop pointless static qualifier in xdr_get_next_encode_buffer()
   39cc3a6bf7a4 kbuild: deb-pkg: fix too low build version number
   4cbf9bb5d870 net: aquantia: invalid checksumm offload implementation
   7efe7160032f net: aquantia: fixed enable unicast on 32 macvlan
   3dcebf4e0021 net: aquantia: fix potential IOMMU fault after driver unbind
   7ab68bbd45e5 net: stmmac: Fix RX packet size > 8191
   13cf931db889 qed: Fix potential memory corruption
   edc856a3748d qed: Fix SPQ entries not returned to pool in error flows
   85423a9f1925 qed: Fix blocking/unlimited SPQ entries leak
   98e7cd88b52b qed: Fix memory/entry leak in qed_init_sp_request()
   82f212b802a0 i40e: restore NETIF_F_GSO_IPXIP[46] to netdev features
   85f5e5f14d5a ice: Change req_speeds to be u16
   da1d12c17f9f ice: Fix the bytecount sent to netdev_tx_sent_queue
   2a7e71e87d96 ice: Fix dead device link issue with flow control
   14e275bde8d7 perf tools: Do not zero sample_id_all for group members
   76cc23113132 perf tools: Fix undefined symbol scnprintf in libperf-jvmti.so
   2d21e584e738 sched/core: Take the hotplug lock in sched_init_smp()
   2ada9a15c672 i2c: omap: Enable for ARCH_K3
   53d22ae3d66e nvme: make sure ns head inherits underlying device limits
   446c01fb4f92 ceph: quota: fix null pointer dereference in quota check
   9e10f7374c41 s390/perf: Change CPUM_CF return code in event init function
   9de8b1448395 drm/amd/amdgpu/dm: Fix dm_dp_create_fake_mst_encoder()
   f360a418cccb drm/amd/display: Drop reusing drm connector for MST
   7f7cef0bfc2f block: Clear kernel memory before copying to user
   f9e5bd7ff2eb drm/amd/display: Stop leaking planes
   4239764e6ba8 lib/raid6: Fix arm64 test build
   7c5fe0f1b003 mtd: nand: Fix nanddev_pos_next_page() kernel-doc header
   c3c978e03a0b clk: fixed-factor: fix of_node_get-put imbalance
   1e6a626e9a85 arm64: dts: renesas: r8a7795: add missing dma-names on hscif2
   8904df27645c Revert "drm/exynos/decon5433: implement frame counter"
   bc80947ec235 ARM: dts: fsl: Fix improperly quoted stdout-path values
   0256a4666ccc hwmon: (ibmpowernv) Remove bogus __init annotations
   7cce145bb0bc net: hns3: Fix for out-of-bounds access when setting pfc back pressure
   49ca763b85a3 s390/qeth: fix HiperSockets sniffer
   2a5adbb88317 netfilter: nft_compat: ebtables 'nat' table is normal chain type
   b1045a2ed7d0 netfilter: ipset: Fix calling ip_set() macro at dumping
   6339fe77369f netfilter: xt_IDLETIMER: add sysfs filename checking routine
   5f53cf58e657 netfilter: ipset: Correct rcu_dereference() call in ip_set_put_comment()
   ac802253a7f6 bpf: fix bpf_prog_get_info_by_fd to return 0 func_lens for unpriv
   38dd3dd00b30 s390/mm: Fix ERROR: "__node_distance" undefined!
   da97e4fe8be9 s390/mm: fix mis-accounting of pgtable_bytes
   8d30ef7ca397 netfilter: ipset: fix ip_set_list allocation failure
   61c4117c1a74 netfilter: ipset: actually allow allowable CIDR 0 in hash:net,port,net
   969721e7b329 netfilter: ipset: list:set: Decrease refcount synchronously on deletion and replace
   429746904248 Revert "netfilter: nft_numgen: add map lookups for numgen random operations"
   a5e3863ac044 netfilter: use PTR_ERR_OR_ZERO()
   0ae8e99ec8cd HID: alps: allow incoming reports when only the trackstick is opened
   15b457203750 Revert "HID: add NOGET quirk for Eaton Ellipse MAX UPS"
   b031d919f5a3 HID: i2c-hid: Add a small delay after sleep command for Raydium touchpanel
   6e7506e7ffa1 netfilter: ipv6: fix oops when defragmenting locally generated fragments
   ffe4bc3d6f34 netfilter: ipv6: nf_defrag: drop skb dst before queueing
   9b1f3e55b288 clk: ti: fix OF child-node lookup
   dd638be4185f clk: meson: clk-pll: drop CLK_GET_RATE_NOCACHE where unnecessary
   0d6b6e708bc7 arm64: percpu: Initialize ret in the default case
   bbc36472de49 platform/x86: acerhdf: Add BIOS entry for Gateway LT31 v1.3307
   1a256be39690 x86/earlyprintk: Add a force option for pciserial device
   f7554181a88f apparmor: Fix uninitialized value in aa_split_fqname
   012871d08c0d clk: samsung: exynos5420: Enable PERIS clocks for suspend
   064e571701ce fs/exofs: fix potential memory leak in mount option parsing
   831690c6459c perf symbols: Set PLT entry/header sizes properly on Sparc
   0f9ecdb3bd83 clk: fixed-rate: fix of_node_get-put imbalance
   ede1c4fcdde1 platform/x86: intel_telemetry: report debugfs failure
   ee66e4013b23 afs: Handle EIO from delivery function
   aef20e808b30 drm/edid: Add 6 bpc quirk for BOE panel.
   24bb4410cef8 um: Give start_idle_thread() a return code
   2d40d681ae35 perf unwind: Take pgoff into account when reporting elf to libdwfl
   cb3e550391e9 hfsplus: prevent btree data loss on root split
   fa5cc3040873 hfs: prevent btree data loss on root split
   ee916b4885a5 reiserfs: propagate errors from fill_with_dentries() properly
   ef40ee9ed9ae ixgbe: fix MAC anti-spoofing filter after VFLR
   c0fee8923e4f net: hns3: bugfix for the initialization of command queue's spin lock
   8d77763100a2 net: hns3: bugfix for handling mailbox while the command queue reinitialized
   2fb7315d2cf8 net: hns3: Prevent sending command during global or core reset
   ab0b26b06885 net: hns3: bugfix for rtnl_lock's range in the hclgevf_reset()
   cd72d052e2e0 block: brd: associate with queue until adding disk
   0d11623a80f2 arm64: kprobe: make page to RO mode when allocate it
   a52826b7b283 cifs: fix return value for cifs_listxattr
   875f9a25fe16 cifs: don't dereference smb_file_target before null check
   726e26c18837 usbnet: smsc95xx: disable carrier check while suspending
   1b02f8a0f99a net: smsc95xx: Fix MTU range
   43ec8ff9d9d1 mlxsw: spectrum: Fix IP2ME CPU policer configuration
   5084168f4ddb sctp: not increase stream's incnt before sending addstrm_in request
   2d3ba28f6872 net: phy: mdio-gpio: Fix working over slow can_sleep GPIOs
   fbe671bf4640 sctp: fix strchange_flags name for Stream Change Event
   1071eded0415 net: dsa: microchip: initialize mutex before use
   92df935ee5bd net: qualcomm: rmnet: Fix incorrect assignment of real_dev
   8524e5f23056 sctp: define SCTP_SS_DEFAULT for Stream schedulers
   839c08b2e53f net: phy: realtek: fix RTL8201F sysfs name
   511ac11522c8 net: dsa: mv88e6xxx: Fix clearing of stats counters
   4166d97c8114 net/mlx5e: IPoIB, Reset QP after channels are closed
   057174ecf7c3 net/mlx5: IPSec, Fix the SA context hash key
   776d3005c370 l2tp: fix a sock refcnt leak in l2tp_tunnel_register
   5b7d8593e89d inet: frags: better deal with smp races
   38cdb31946c1 net/mlx5e: Removed unnecessary warnings in FEC caps query
   0fa0336430a4 net/mlx5e: Fix selftest for small MTUs
   35f08cfda6e4 net/mlx5e: Always use the match level enum when parsing TC rule match
   81dff097d4f1 Revert "sctp: remove sctp_transport_pmtu_check"
   956f3384ec99 net/mlx5e: Adjust to max number of channles when re-attaching
   e717c85edd16 net/mlx5e: Claim TC hw offloads support only under a proper build config
   73965525b4a5 net: systemport: Protect stop from timeout
   0c6765847a3e tuntap: fix multiqueue rx
   1f1f1f9f5c04 tipc: fix lockdep warning when reinitilaizing sockets
   4882b7bfa4f4 tipc: don't assume linear buffer when reading ancillary data
   8ee89a1dba58 tg3: Add PHY reset for 5717/5719/5720 in change ring and flow control paths
   29939b28474d tcp: Fix SOF_TIMESTAMPING_RX_HARDWARE to use the latest timestamp during TCP coalescing
   2d02df9e00f6 sctp: not allow to set asoc prsctp_enable by sockopt
   f8079b5a352d net-gro: reset skb->pkt_type in napi_reuse_skb()
   893ebde4310f net: bcmgenet: protect stop from timeout
   d50e12a49aa0 ipv6: Fix PMTU updates for UDP/raw sockets in presence of VRF
   a72cc86b5f1b ipv6: fix a dst leak when removing its exception
   05b6cf8bd43b ip_tunnel: don't force DF when MTU is locked
   9de9dc5fac67 ibmvnic: fix accelerated VLAN handling
   67485ab94ea6 flow_dissector: do not dissect l4 ports for fragments

(From OE-Core rev: 39afea5282fed75a4f70d8f8b1af767620923828)

(From OE-Core rev: 7b820f693fa6c2a9d9464a2a8bc8368b70ffd9f7)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-01-08 20:14:43 +00:00
Bruce Ashfield
f130b74f8d linux-yocto/4.18: update to v4.18.20
Integrating the korg releases that comprise the following commits:

   a9da8725b7a7 Linux 4.18.20
   55eac9e85dea Revert "ACPICA: AML interpreter: add region addresses in global list during initialization"
   770271829fbe CONFIG_XEN_PV breaks xen_create_contiguous_region on ARM
   355c0d23ff88 drm/i915: Fix possible race in intel_dp_add_mst_connector()
   0400eb06d37c drm/i915/execlists: Force write serialisation into context image vs execution
   06e562e7f515 drm/i915/ringbuffer: Delay after EMIT_INVALIDATE for gen4/gen5
   41a2334c224e drm/i915: Mark pin flags as u64
   a4820798a2ed drm/i915: Don't oops during modeset shutdown after lpe audio deinit
   d0baf6ac9fcc drm/i915: Compare user's 64b GTT offset even on 32b
   b9d3cae0b451 drm/i915: Fix ilk+ watermarks when disabling pipes
   877e75bc93ec drm/i915: Fix error handling for the NV12 fb dimensions check
   63f4972b9b22 drm/i915/hdmi: Add HDMI 2.0 audio clock recovery N values
   df00d4ac7d26 drm/i915/dp: Restrict link retrain workaround to external monitors
   6440b1a7f8f2 drm/i915/dp: Fix link retraining comment in intel_dp_long_pulse()
   f28285d10021 drm/i915: Large page offsets for pread/pwrite
   874d2275ee94 drm/i915: Skip vcpi allocation for MSTB ports that are gone
   0cf4813b215f drm/i915: Don't unset intel_connector->mst_port
   6aba99c55748 drm/i915: Restore vblank interrupts earlier
   68b4918e7072 drm/i915/dp: Link train Fallback on eDP only if fallback link BW can fit panel's native mode
   a90d6f083b7a drm: panel-orientation-quirks: Add quirk for Acer One 10 (S1003)
   4a7daecdaab9 drm/dp_mst: Check if primary mstb is null
   fbea4573dc0b drm/etnaviv: fix bogus fence complete check in timeout handler
   13b3707bafea drm/amd/powerplay: Enable/Disable NBPSTATE on On/OFF of UVD
   1cca6c472fcc drm/nouveau: Fix nv50_mstc->best_encoder()
   699242cf4aca drm/nouveau: Check backlight IDs are >= 0, not > 0
   bbf40af9c2d8 drm/amdgpu: add missing CHIP_HAINAN in amdgpu_ucode_get_load_type
   842b99a831c5 drm/amdgpu: Fix typo in amdgpu_vmid_mgr_init
   5b231a7b3326 drm/msm: fix OF child-node lookup
   0ad256e8ed36 drm/rockchip: Allow driver to be shutdown on reboot/kexec
   6f680252dc25 efi/arm/libstub: Pack FDT after populating it
   e47645d9b0fb mm/swapfile.c: use kvzalloc for swap_info_struct allocation
   82743f44a420 hugetlbfs: fix kernel BUG at fs/hugetlbfs/inode.c:444!
   2ca904bea902 lib/ubsan.c: don't mark __ubsan_handle_builtin_unreachable as noreturn
   f4ae32cf2589 crypto: user - fix leaking uninitialized memory to userspace
   f784bb167d5f libata: blacklist SAMSUNG MZ7TD256HAFV-000L9 SSD
   08f382aeba0c gfs2: Fix metadata read-ahead during truncate (2)
   47e7c3fc9b8b gfs2: Put bitmap buffers in put_super
   bd9568c3484b configfs: replace strncpy with memcpy
   5fe5a24a8cc8 selinux: check length properly in SCTP bind hook
   a80cb9b67334 fuse: fix leaked notify reply
   e6fed825e0eb fuse: fix use-after-free in fuse_direct_IO()
   693a06b52aab rtc: hctosys: Add missing range error reporting
   651c5d16f3a9 nfsd: COPY and CLONE operations require the saved filehandle to be set
   f194756edd6c NFSv4: Don't exit the state manager without clearing NFS4CLNT_MANAGER_RUNNING
   7142f0dcc2c8 sunrpc: correct the computation for page_ptr when truncating
   13c70ef5b3c7 kdb: print real address of pointers instead of hashed addresses
   6514d22a21ad kdb: use correct pointer when 'btc' calls 'btt'
   6520fe938946 mnt: fix __detach_mounts infinite loop
   d1a5f8e4d27e mount: Prevent MNT_DETACH from disconnecting locked mounts
   376732709e5d mount: Don't allow copying MNT_UNBINDABLE|MNT_LOCKED mounts
   afae7f7336d5 mount: Retest MNT_LOCKED in do_umount
   e1d8594f10d1 ext4: fix buffer leak in __ext4_read_dirblock() on error path
   4f1e87322991 ext4: fix buffer leak in ext4_expand_extra_isize_ea() on error path
   73b05bc9cfdc ext4: fix buffer leak in ext4_xattr_move_to_block() on error path
   93b0fc8e9005 ext4: release bs.bh before re-using in ext4_xattr_block_find()
   ef3af4ee5b81 ext4: fix buffer leak in ext4_xattr_get_block() on error path
   2efa77a4df20 ext4: fix possible leak of s_journal_flag_rwsem in error path
   891dd04dc1cc ext4: fix possible leak of sbi->s_group_desc_leak in error path
   0ff14c16afc8 ext4: avoid possible double brelse() in add_new_gdb() on error path
   84d88fc7e751 ext4: fix missing cleanup if ext4_alloc_flex_bg_array() fails while resizing
   78805335fb17 ext4: avoid buffer leak in ext4_orphan_add() after prior errors
   aac055dfa4ee ext4: avoid buffer leak on shutdown in ext4_mark_iloc_dirty()
   d61417997e50 ext4: fix possible inode leak in the retry loop of ext4_resize_fs()
   dd6d368f6f18 ext4: missing !bh check in ext4_xattr_inode_write()
   c802502a2e80 ext4: avoid potential extra brelse in setup_new_flex_group_blocks()
   56415293423b ext4: add missing brelse() add_new_gdb_meta_bg()'s error path
   ab88f38df803 ext4: add missing brelse() in set_flexbg_block_bitmap()'s error path
   5ee0b3985aec ext4: add missing brelse() update_backups()'s error path
   d4b97e20c7ea clockevents/drivers/i8253: Add support for PIT shutdown quirk
   a77da38bfda3 Btrfs: fix data corruption due to cloning of eof block
   0c4fb98c8f6f Btrfs: fix infinite loop on inode eviction after deduplication of eof block
   1064b11af79d Btrfs: fix cur_offset in the error case for nocow
   383ceb87733b btrfs: fix pinned underflow after transaction aborted
   57da76a94a8a watchdog/core: Add missing prototypes for weak functions
   11cf9be2e473 arch/alpha, termios: implement BOTHER, IBSHIFT and termios2
   7d7a750eabf2 termios, tty/tty_baudrate.c: fix buffer overrun
   d74a4fc841cf x86/hyper-v: Enable PIT shutdown quirk
   bcdff99a9348 x86/cpu/vmware: Do not trace vmware_sched_clock()
   9eaed9022502 of, numa: Validate some distance map rules
   688995faeb6f perf stat: Handle different PMU names with common prefix
   b66ad9290fbf hwmon: (core) Fix double-free in __hwmon_device_register()
   1ef2d80cb3da mtd: docg3: don't set conflicting BCH_CONST_PARAMS option
   ca589cb08cd6 mtd: nand: Fix nanddev_neraseblocks()
   98f1ce39c92c mtd: spi-nor: cadence-quadspi: Return error code in cqspi_direct_read_execute()
   ab2b363733ac bonding/802.3ad: fix link_failure_count tracking
   e36798fc10e2 ARM: 8809/1: proc-v7: fix Thumb annotation of cpu_v7_hvc_switch_mm
   5d64390cff09 netfilter: conntrack: fix calculation of next bucket number in early_drop
   ca1c5698fa94 memory_hotplug: cond_resched in __remove_pages
   a01e1536fc68 mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings
   b74b152e9442 ocfs2: free up write context when direct IO failed
   8362d09a7ff3 ocfs2: fix a misuse a of brelse after failing ocfs2_check_dir_entry
   f458499f2c96 soc: ti: QMSS: Fix usage of irq_set_affinity_hint
   dd4f21dfb81d Revert "powerpc/8xx: Use L1 entry APG to handle _PAGE_ACCESSED for CONFIG_SWAP"
   094e5a111d0e SCSI: fix queue cleanup race before queue initialization is done
   aef93deeff58 scsi: qla2xxx: Initialize port speed to avoid setting lower speed
   3fb039d37f96 vhost/scsi: truncate T10 PI iov_iter to prot_bytes
   543c52975eb8 reset: hisilicon: fix potential NULL pointer dereference
   84d1d9cc1c0c acpi, nfit: Fix ARS overflow continuation
   13bb0de8e25c acpi/nfit, x86/mce: Validate a MCE's address before using it
   cdd219834f93 acpi/nfit, x86/mce: Handle only uncorrectable machine checks
   69df28065f30 mach64: fix image corruption due to reading accelerator registers
   7f6c07f5402e mach64: fix display corruption on big endian machines
   c5a924179783 thermal: core: Fix use-after-free in thermal_cooling_device_destroy_sysfs
   bb34fbacd90c Revert "ceph: fix dentry leak in splice_dentry()"
   e5d8d13800ca libceph: bump CEPH_MSG_MAX_DATA_LEN
   1189a2216800 clk: rockchip: Fix static checker warning in rockchip_ddrclk_get_parent call
   91a17b82ae41 clk: rockchip: fix wrong mmc sample phase shift for rk3328
   7b659a3e5116 clk: sunxi-ng: h6: fix bus clocks' divider position
   3a6f7116bf57 clk: at91: Fix division by zero in PLL recalc_rate()
   b4972d19dbf8 clk: s2mps11: Fix matching when built as module and DT node contains compatible
   7b8b07a696c2 um: Drop own definition of PTRACE_SYSEMU/_SINGLESTEP
   8e81ecdcbaaf xtensa: fix boot parameters address translation
   b9474cabc3c4 xtensa: make sure bFLT stack is 16 byte aligned
   8501e03baaf2 xtensa: add NOTES section to the linker script
   454dd3e93e38 MIPS: Loongson-3: Fix BRIDGE irq delivery problem
   099ef76d3dd9 MIPS: Loongson-3: Fix CPU UART irq delivery problem
   22f185cf0272 zram: close udev startup race condition as default groups
   b2405b2330d3 clk: meson: axg: mark fdiv2 and fdiv3 as critical
   b7dcf0d3a8f1 clk: meson-gxbb: set fclk_div3 as CLK_IS_CRITICAL
   74cd739ed987 arm64: dts: stratix10: fix multicast filtering
   f0ef4cf3d407 arm64: dts: stratix10: Support Ethernet Jumbo frame
   f8c835816ad4 scsi: qla2xxx: Fix NVMe session hang on unload
   318cb27e7fa0 scsi: qla2xxx: Fix re-using LoopID when handle is in use
   aa67028ac422 ovl: fix recursive oi->lock in ovl_link()
   1b8ca12ee8af fuse: set FR_SENT while locked
   10b6b5d193b6 fuse: fix blocked_waitq wakeup
   8b71920c90c3 fuse: Fix use-after-free in fuse_dev_do_write()
   f7e709c59e58 fuse: Fix use-after-free in fuse_dev_do_read()
   38d3f7b2e20f scsi: qla2xxx: Fix driver hang when FC-NVMe LUNs are configured
   f05744c0277c scsi: qla2xxx: Fix duplicate switch database entries
   792b70b674bf scsi: qla2xxx: shutdown chip if reset fail
   187dc52ddacb scsi: qla2xxx: Remove stale debug trace message from tcm_qla2xxx
   008bab2eb77d scsi: qla2xxx: Fix process response queue for ISP26XX and above
   7e9178071fb1 scsi: qla2xxx: Fix incorrect port speed being set for FC adapters
   c1d44176f2c3 serial: sh-sci: Fix could not remove dev_attr_rx_fifo_timeout
   6fcbb25da516 ovl: check whiteout in ovl_create_over_whiteout()
   6915a20df5f8 ovl: fix error handling in ovl_verify_set_fh()
   1dffd49a92dd cdrom: fix improper type cast, which can leat to information leak.
   09901a24c215 9p: clear dangling pointers in p9stat_free
   ab5b8371449b ARM: dts: imx6ull: keep IMX6UL_ prefix for signals on both i.MX6UL and i.MX6ULL
   8515b9edf7a0 udf: Prevent write-unsupported filesystem to be remounted read-write
   a9dbfcffbfba 9p locks: fix glock.client_id leak in do_lock
   b710256edba8 staging: most: video: fix registration of an empty comp core_component
   938e30c56446 drm/amdgpu: Fix SDMA TO after GPU reset v3
   35c37a531fa0 drm: rcar-du: Update Gen3 output limitations
   e6b5db61b2d6 staging:iio:ad7606: fix voltage scales
   3136e7a31323 powerpc/selftests: Wait all threads to join
   e7bce56063ac media: tvp5150: fix width alignment during set_selection()
   2139f23fd233 sc16is7xx: Fix for multi-channel stall
   809923bfbf77 MIPS/PCI: Call pcie_bus_configure_settings() to set MPS/MRRS
   0305be8f74fb powerpc/memtrace: Remove memory in chunks
   439f5244a9f4 powerpc/boot: Ensure _zimage_start is a weak symbol
   c6e2ae7ca034 MIPS: kexec: Mark CPU offline before disabling local IRQ
   09249888b1ad media: coda: don't overwrite h.264 profile_idc on decoder instance
   56a738841c49 media: pci: cx23885: handle adding to list failure
   ae2a9a2cebf3 drm/hisilicon: hibmc: Do not carry error code in HiBMC framebuffer pointer
   7cb3b831fea3 drm/amd/display: fix gamma not being applied
   7657b5bd3475 drm/omap: fix memory barrier bug in DMM driver
   56b14ace2cda powerpc/mm: Don't report hugepage tables as memory leaks when using kmemleak
   905119e2ea85 powerpc/nohash: fix undefined behaviour when testing page size support
   c89005fa57cc ARM: imx_v6_v7_defconfig: Select CONFIG_TMPFS_POSIX_ACL
   fab609de31de drm/amdgpu/powerplay: fix missing break in switch statements
   50513ecaf5f8 tracing/kprobes: Check the probe on unloaded module correctly
   39abc57fe589 tty: check name length in tty_find_polling_driver()
   45394cc9a3c4 powerpc/eeh: Fix possible null deref in eeh_dump_dev_log()
   6fc2ea857297 powerpc/Makefile: Fix PPC_BOOK3S_64 ASFLAGS
   9cfe21c38e5b Input: wm97xx-ts - fix exit path
   f813b2981fc3 drm/amd/display: fix bug of accessing invalid memory
   d74680a91a15 powerpc/mm: fix always true/false warning in slice.c
   7bd05ac862e2 powerpc/mm: Fix page table dump to work on Radix
   c467bb652d44 powerpc/64/module: REL32 relocation range check
   8d16dd049428 powerpc/traps: restore recoverability of machine_check interrupts
   6559b2338d96 Linux 4.18.19
   5c4f8ea1f313 MD: fix invalid stored role for a disk - try2
   ddf734ede053 bpf: wait for running BPF programs when updating map-in-map
   bbfed258eb08 userns: also map extents in the reverse map to kernel IDs
   46aa7eb182c9 net: sched: Remove TCA_OPTIONS from policy
   928b261cfbe6 Btrfs: fix use-after-free when dumping free space
   b7edab6df938 Btrfs: fix use-after-free during inode eviction
   4fbcf14ceb4c btrfs: move the dio_sem higher up the callchain
   904c7dc9dec1 btrfs: don't run delayed_iputs in commit
   13d6628c019d btrfs: fix insert_reserved error handling
   68c7db7c8f76 btrfs: only free reserved extent if we didn't insert it
   3e9205b1d619 btrfs: don't use ctl->free_space for max_extent_size
   171d45102ea8 btrfs: set max_extent_size properly
   17a7240a9508 btrfs: reset max_extent_size properly
   645dd2f9feab Btrfs: fix deadlock when writing out free space caches
   d7c7d298a76f Btrfs: fix assertion on fsync of regular file when using no-holes feature
   191597b15b24 Btrfs: fix null pointer dereference on compressed write path error
   07cf04229031 btrfs: qgroup: Dirty all qgroups before rescan
   96437af32b61 Btrfs: fix wrong dentries after fsync of file that got its parent replaced
   41bdbc9ea1ec Btrfs: fix warning when replaying log after fsync of a tmpfile
   09cbc39c1b7f btrfs: make sure we create all new block groups
   302e6eaa09d8 btrfs: reset max_extent_size on clear in a bitmap
   6078b6126651 btrfs: protect space cache inode alloc with GFP_NOFS
   ff9e68fd136b btrfs: release metadata before running delayed refs
   07ddb36eb150 Btrfs: don't clean dirty pages during buffered writes
   0efba7a66329 btrfs: wait on caching when putting the bg cache
   112249f4f379 btrfs: keep trim from interfering with transaction commits
   74a0609298dc btrfs: don't attempt to trim devices that don't support it
   599c6e4376cb btrfs: iterate all devices during trim, instead of fs_devices::alloc_list
   d12a47554ea9 btrfs: Ensure btrfs_trim_fs can trim the whole filesystem
   89dbabf7e2c3 btrfs: Enhance btrfs_trim_fs function to handle error better
   449f9b8dcf15 btrfs: fix error handling in btrfs_dev_replace_start
   e7e2afa8f83c btrfs: fix error handling in free_log_tree
   9fc2295c6ce8 btrfs: locking: Add extra check in btrfs_init_new_buffer() to avoid deadlock
   a0d7061e2905 btrfs: Handle owner mismatch gracefully when walking up tree
   68b0e1cae6f3 btrfs: qgroup: Avoid calling qgroup functions if qgroup is not enabled
   3734cce8cf6c tracing: Return -ENOENT if there is no target synthetic event
   7d3714bb7abe selftests/powerpc: Fix ptrace tm failure
   4bd6237fc951 selftests/ftrace: Fix synthetic event test to delete event correctly
   efd03258cc5c soc/tegra: pmc: Fix child-node lookup
   d4d1e7a2b1c8 soc: qcom: rmtfs-mem: Validate that scm is available
   4bfdd88d22a1 arm64: dts: stratix10: Correct System Manager register size
   09242a77726c ARM: dts: socfpga: Fix SDRAM node address for Arria10
   29b85eacc07a Cramfs: fix abad comparison when wrap-arounds occur
   cb3de273d7a3 rpmsg: smd: fix memory leak on channel create
   fd376dc39890 arm64: lse: remove -fcall-used-x0 flag
   391d6f13307e media: hdmi.h: rename ADOBE_RGB to OPRGB and ADOBE_YCC to OPYCC
   11e879dd4a6d media: replace ADOBERGB by OPRGB
   aff52a2f431b media: media colorspaces*.rst: rename AdobeRGB to opRGB
   2b33dfe74c2a drm/mediatek: fix OF sibling-node lookup
   795449cb0c51 media: adv7842: when the EDID is cleared, unconfigure CEC as well
   feb3a39a17ab media: adv7604: when the EDID is cleared, unconfigure CEC as well
   5df5d951c107 media: em28xx: fix handler for vidioc_s_input()
   634eb3c8780a media: em28xx: make v4l2-compliance happier by starting sequence on zero
   be91657a304c media: em28xx: fix input name for Terratec AV 350
   95dfd1d5aad4 media: tvp5150: avoid going past array on v4l2_querymenu()
   1ac7a4b394ad media: em28xx: use a default format if TRY_FMT fails
   e448dfd6d3ec media: cec: forgot to cancel delayed work
   b8ee0bd5b099 media: cec: fix the Signal Free Time calculation
   11f9f361470d media: cec: add new tx/rx status bits to detect aborts/timeouts
   6b92b55fd2cf xen-blkfront: fix kernel panic with negotiate_mq error path
   6bc564ec5682 xen: remove size limit of privcmd-buf mapping interface
   905632c2e61d xen: fix xen_qlock_wait()
   dbcbbbbf5aa3 media: cec: integrate cec_validate_phys_addr() in cec-api.c
   e4e97d13dd13 media: cec: make cec_get_edid_spa_location() an inline function
   239efda32abd kgdboc: Passing ekgdboc to command line causes panic
   e589ba2d14ad Revert "media: dvbsky: use just one mutex for serializing device R/W ops"
   d661c89b177d media: v4l2-tpg: fix kernel oops when enabling HFLIP and OSD
   ebc14b2ad1e7 net: bcmgenet: fix OF child-node lookup
   0f664bdc5f98 TC: Set DMA masks for devices
   eddf6140dbea iommu/arm-smmu: Ensure that page-table updates are visible before TLBI
   220720a431bf ocxl: Fix access to the AFU Descriptor Data
   02eabf6ac681 power: supply: twl4030-charger: fix OF sibling-node lookup
   8631b7bd98b9 rtc: cmos: Remove the `use_acpi_alarm' module parameter for !ACPI
   5b6bdf14357c rtc: cmos: Fix non-ACPI undefined reference to `hpet_rtc_interrupt'
   e0e518677149 rtc: ds1307: fix ds1339 wakealarm support
   1145e2b587d7 MIPS: OCTEON: fix out of bounds array access on CN68XX
   5cd5e22d5b1d MIPS: memset: Fix CPU_DADDI_WORKAROUNDS `small_fixup' regression
   163121109386 powerpc/64s/hash: Do not use PPC_INVALIDATE_ERAT on CPUs before POWER9
   ba5a3866a609 powerpc/tm: Fix HFSCR bit for no suspend case
   c0668860758e powerpc/msi: Fix compile error on mpc83xx
   a0bac51733c0 fsnotify: Fix busy inodes during unmount
   ddb75410b6a6 media: ov7670: make "xclk" clock optional
   933833d56e3c dm zoned: fix various dmz_get_mblock() issues
   8acae84c058c dm zoned: fix metadata block ref counting
   58963dc60bb5 dm ioctl: harden copy_params()'s copy_from_user() from malicious users
   1bc549827094 lockd: fix access beyond unterminated strings in prints
   7b4718d2d53d nfsd: Fix an Oops in free_session()
   04868067e324 nfsd: correctly decrement odstate refcount in error path
   209502944483 nfs: Fix a missed page unlock after pg_doio()
   006a1e6a2d9e NFSv4.1: Fix the r/wsize checking
   8fb746ed8e0c NFC: nfcmrvl_uart: fix OF child-node lookup
   193e214685dd genirq: Fix race on spurious interrupt detection
   06cbcf582caf printk: Fix panic caused by passing log_buf_len to command line
   fa4aec4d1e65 smb3: on kerberos mount if server doesn't specify auth type use krb5
   e8c4202e4b16 smb3: do not attempt cifs operation in smb3 query info error path
   278223e1fa26 smb3: allow stats which track session and share reconnects to be reset
   418f8bfb26e9 w1: omap-hdq: fix missing bus unregister at removal
   9cdbf32ae7d2 iio: adc: at91: fix wrong channel number in triggered buffer mode
   b4c1120e3182 iio: adc: at91: fix acking DRDY irq on simple conversions
   8221ff37fbb8 iio: adc: imx25-gcq: Fix leak of device_node in mx25_gcq_setup_cfgs()
   bcd4f42d000c iio: ad5064: Fix regulator handling
   33af6b490a1b kbuild: fix kernel/bounds.c 'W=1' warning
   dad142caf8b3 KVM: arm64: Fix caching of host MDCR_EL2 value
   a665c4ab7796 KVM: arm/arm64: Ensure only THP is candidate for adjustment
   d09d8eaa1806 mm/hmm: fix race between hmm_mirror_unregister() and mmu_notifier callback
   7bf8e1e365ba mm/rmap: map_pte() was not handling private ZONE_DEVICE page properly
   6d2ac8dbfd92 hugetlbfs: dirty pages as they are added to pagecache
   e484e62bc857 ima: fix showing large 'violations' or 'runtime_measurements_count'
   6f3691794c1a mm: /proc/pid/smaps_rollup: fix NULL pointer deref in smaps_pte_range()
   2016e63b7692 crypto: speck - remove Speck
   d4c47d9cf347 crypto: aegis/generic - fix for big endian systems
   805fd900bda2 crypto: morus/generic - fix for big endian systems
   9899e0e4528e crypto: aesni - don't use GFP_ATOMIC allocation if the request doesn't cross a page in gcm
   c00600a96550 crypto: tcrypt - fix ghash-generic speed test
   6aa3369f1768 crypto: lrw - Fix out-of bounds access on counter overflow
   9f0654d9a878 signal: Guard against negative signal numbers in copy_siginfo_from_user32
   071161f0cce4 signal/GenWQE: Fix sending of SIGKILL
   a5d415583c30 PCI: vmd: White list for fast interrupt handlers
   a06dfc8d5e18 PCI: Add Device IDs for Intel GPU "spurious interrupt" quirk
   c34f34ce93bb PCI/ASPM: Fix link_state teardown on device removal
   2e952918d04a ARM: dts: dra7: Fix up unaligned access setting for PCIe EP
   5074cd8b9936 EDAC, skx_edac: Fix logical channel intermediate decoding
   b0fc82d940a5 EDAC, {i7core,sb,skx}_edac: Fix uncorrected error counting
   6ba33971125c EDAC, amd64: Add Family 17h, models 10h-2fh support
   d08463386852 HID: hiddev: fix potential Spectre v1
   fafa54248a2f HID: wacom: Work around HID descriptor bug in DTK-2451 and DTH-2452
   6f076021ce7e selinux: fix mounting of cgroup2 under older policies
   dabb79bd2602 ext4: fix use-after-free race in ext4_remount()'s error path
   798d9a4c4d37 ext4: propagate error from dquot_initialize() in EXT4_IOC_FSSETXATTR
   c68737e3e4c3 ext4: fix setattr project check in fssetxattr ioctl
   5dd65242be71 ext4: initialize retries variable in ext4_da_write_inline_data_begin()
   34e60cb2f8ea ext4: fix EXT4_IOC_SWAP_BOOT
   d543195430fa gfs2_meta: ->mount() can get NULL dev_name
   08a394fe1c04 jbd2: fix use after free in jbd2_log_do_checkpoint()
   54baa22b41dc IB/rxe: Revise the ib_wr_opcode enum
   5855f2051298 IB/mlx5: Fix MR cache initialization
   2a270b59969a ASoC: sta32x: set ->component pointer in private struct
   31a02dd4ee74 ASoC: intel: skylake: Add missing break in skl_tplg_get_token()
   db1af9641867 libnvdimm, pmem: Fix badblocks population for 'raw' namespaces
   847179b1261a libnvdimm, region: Fail badblocks listing for inactive regions
   e31a8418c8df libnvdimm: Hold reference on parent while scheduling async init
   1ebefc8202c8 dmaengine: ppc4xx: fix off-by-one build failure
   389d46234082 net/ipv4: defensive cipso option parsing
   a11eb1510617 iwlwifi: mvm: check return value of rs_rate_from_ucode_rate()
   255768cf1b57 mt76: mt76x2: fix multi-interface beacon configuration
   7ea2dd519f59 usb: gadget: udc: renesas_usb3: Fix b-device mode for "workaround"
   4d5f0d220a29 usb: typec: tcpm: Fix APDO PPS order checking to be based on voltage
   d0e02f4b273b usbip:vudc: BUG kmalloc-2048 (Not tainted): Poison overwritten
   fc988a353d59 libertas: don't set URB_ZERO_PACKET on IN USB transfer
   9c47f44d0a93 xen/pvh: don't try to unplug emulated devices
   9006cb392293 xen/pvh: increase early stack size
   f91721a7895e xen: make xen_qlock_wait() nestable
   2c2395aaa9ba xen: fix race in xen_qlock_wait()
   726a8d0ae0f9 xen/balloon: Support xend-based toolstack
   a49e27c0efe5 xen/blkfront: avoid NULL blkfront_info dereference on device removal
   a76ef635cb22 tpm: Restore functionality to xen vtpm driver.
   2c400cb65dc4 xen-swiotlb: use actually allocated size on check physical continuous
   884f8f6e1b41 ARM: dts: exynos: Mark 1 GHz CPU OPP as suspend OPP on Exynos5250
   feb08c3f3916 ARM: dts: exynos: Convert exynos5250.dtsi to opp-v2 bindings
   4d5dd7609a88 arm: dts: exynos: Add missing cooling device properties for CPUs
   e552bb9a21fd OPP: Free OPP table properly on performance state irregularities
   d07c6c437300 f2fs: fix to account IO correctly
   16eb8add5ee9 f2fs: fix to recover cold bit of inode block during POR
   e8683288c629 Revert "f2fs: fix to clear PG_checked flag in set_page_dirty()"
   e602d368b007 cpupower: Fix AMD Family 0x17 msr_pstate size
   1511aba32429 ALSA: hda: Check the non-cached stream buffers more explicitly
   050d782641c2 IB/rxe: fix for duplicate request processing and ack psns
   8efbd111471e dmaengine: dma-jz4780: Return error if not probed from DT
   faef9773f48a mfd: menelaus: Fix possible race condition and leak
   2dc063e47362 signal: Always deliver the kernel's SIGKILL and SIGSTOP to a pid namespace init
   6d5b9f9d3ec3 f2fs: report error if quota off error during umount
   b41c30c5acc9 f2fs: avoid sleeping under spin_lock
   ec8eb8b57057 scsi: lpfc: Correct race with abort on completion path
   051b5fa2890b scsi: lpfc: Correct soft lockup when running mds diagnostics
   e30cf6a23808 uio: ensure class is registered before devices
   6a5975e8383c IB/mlx5: Allow transition of DCI QP to reset
   12142fb13d30 firmware: coreboot: Unmap ioregion after device population
   0470ae4236d0 driver/dma/ioat: Call del_timer_sync() without holding prep_lock
   fbb33dd581b3 Smack: ptrace capability use fixes
   6ae6cf2975fe usb: chipidea: Prevent unbalanced IRQ disable
   c4b86b1461f0 crypto: caam - fix implicit casts in endianness helpers
   d7f59eb8ae0d PCI: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode
   0cf50920c081 coresight: etb10: Fix handling of perf mode
   c259506c8a79 PCI/MSI: Warn and return error if driver enables MSI/MSI-X twice
   14bbbe74bc3e f2fs: fix to recover inode's i_flags during POR
   9e40e1123323 f2fs: fix to recover inode's crtime during POR
   60e562bb965a xhci: Avoid USB autosuspend when resuming USB2 ports.
   2c5e9a93e478 nvmem: check the return value of nvmem_add_cells()
   40cdac6bfb73 MD: fix invalid stored role for a disk
   175d020db6cf ext4: fix argument checking in EXT4_IOC_MOVE_EXT
   f41d070e9fcb usb: gadget: udc: atmel: handle at91sam9rl PMC
   3162e793c743 usb: dwc2: fix a race with external vbus supply
   bcb003c30ac3 irqchip/pdc: Setup all edge interrupts as rising edge at GIC
   10be774a8d44 xprtrdma: Reset credit grant properly after a disconnect
   5f8ffba0789c PCI / ACPI: Enable wake automatically for power managed bridges
   eedd2de8dc72 VMCI: Resource wildcard match fixed
   fe0f3e9e6830 Drivers: hv: vmbus: Use cpumask_var_t for on-stack cpu mask
   0e264876d8a6 f2fs: clear PageError on the read path
   fbc88d502e81 tpm: suppress transmit cmd error logs when TPM 1.2 is disabled/deactivated
   47b1c864123a usb: typec: tcpm: Report back negotiated PPS voltage and current
   b88a5dd150a5 PCI: cadence: Use AXI region 0 to signal interrupts from EP
   979fbe4045c8 PCI: mediatek: Fix mtk_pcie_find_port() endpoint/port matching logic
   f91a686192f6 usb: host: ohci-at91: fix request of irq for optional gpio
   fd4049585f15 RDMA/bnxt_re: Fix recursive lock warning in debug kernel
   12100249f2be RDMA/bnxt_re: Avoid accessing nq->bar_reg_iomem in failure case
   255cecf2a5eb IB/ipoib: Clear IPCB before icmp_send
   086b1e14c525 RDMA/core: Do not expose unsupported counters
   9b7b9aead186 scsi: megaraid_sas: fix a missing-check bug
   4b4ae263d7d5 KVM: nVMX: Clear reserved bits of #DB exit qualification
   58d06d2dbea7 UAPI: ndctl: Fix g++-unsupported initialisation in headers
   97f21a6b942c scsi: ufs: Schedule clk gating work on correct queue
   34fb187df0d0 scsi: esp_scsi: Track residual for PIO transfers
   9b9dd8af6dd5 md: fix memleak for mempool
   99c08e1dd146 MD: Memory leak when flush bio size is zero
   e2065558bfab f2fs: fix to account IO correctly for cgroup writeback
   8eadae7951d5 net: stmmac: dwmac-sun8i: fix OF child-node lookup
   35df1a8080ab cgroup, netclassid: add a preemption point to write_classid
   477fa78844c3 thermal: da9062/61: Prevent hardware access during system suspend
   2ba7c7660bed thermal: rcar_thermal: Prevent doing work after unbind
   363e948fcc3a libata: Apply NOLPM quirk for SAMSUNG MZ7TD256HAFV-000L9
   043b60105fc2 ath10k: schedule hardware restart if WMI command times out
   c0368ed155a2 ixgbevf: VF2VF TCP RSS
   0cfe42772c1d ixgbe: disallow IPsec Tx offload when in SR-IOV mode
   253b526d998b gpio: brcmstb: allow 0 width GPIO banks
   ab9a0e99bf29 iwlwifi: mvm: fix BAR seq ctrl reporting
   dec405826694 rsi: fix memory alignment issue in ARM32 platforms
   d8b03c1e7663 net: dsa: mv88e6xxx: Fix writing to a PHY page.
   ba0885680af7 net: hns3: Fix for vf vlan delete failed problem
   ff80ed73b6cf net: hns3: Fix ping exited problem when doing lp selftest
   65187c05f489 net: hns3: Preserve vlan 0 in hardware table
   23c98b4d9fbd pinctrl: ssbi-gpio: Fix pm8xxx_pin_config_get() to be compliant
   f5ba8363907c pinctrl: spmi-mpp: Fix pmic_mpp_config_get() to be compliant
   f0ff16f0402a perf tests: Fix record+probe_libc_inet_pton.sh without ping's debuginfo
   baef398e5dea failover: Add missing check to validate 'slave_dev' in net_failover_slave_unregister
   f47ceb5f3a08 bpf/verifier: fix verifier instability
   c0222ea97aa1 pinctrl: qcom: spmi-mpp: Fix drive strength setting
   64b74ae515f7 ACPI / LPSS: Add alternative ACPI HIDs for Cherry Trail DMA controllers
   d70f08ad0162 spi: gpio: No MISO does not imply no RX
   e67ec9ef7925 kprobes: Return error if we fail to reuse kprobe instead of BUG_ON()
   7a035a98f1b3 arm64: entry: Allow handling of undefined instructions from EL1
   ae9fc312a6d8 block, bfq: correctly charge and reset entity service in all cases
   3f353034eaf7 net: phy: phylink: ensure the carrier is off when starting phylink
   4ac72411c7b4 net: hns3: Set STATE_DOWN bit of hdev state when stopping net
   110bdc652904 net: hns3: Check hdev state when getting link status
   a0f6b282ca78 brcmfmac: fix for proper support of 160MHz bandwidth
   2cd3b487ff72 pinctrl: qcom: spmi-mpp: Fix err handling of pmic_mpp_set_mux
   fae41efdcdb6 pinctrl: sunxi: fix 'pctrl->functions' allocation in sunxi_pinctrl_build_state
   7458126fbbf3 net: hns3: Fix ets validate issue
   e0d9799dffb1 net: hns3: Add nic state check before calling netif_tx_wake_queue
   9fae4092be8b x86: boot: Fix EFI stub alignment
   249af5d52486 Bluetooth: btbcm: Add entry for BCM4335C0 UART bluetooth
   f8ec431379a5 net: hns3: Fix for packet buffer setting bug
   9ffa5136a36b ice: update fw version check logic
   345e47a7dfc2 ice: fix changing of ring descriptor size (ethtool -G)
   e7a23fd7c189 signal: Introduce COMPAT_SIGMINSTKSZ for use in compat_sys_sigaltstack
   0f1f59872204 mtd: rawnand: atmel: Fix potential NULL pointer dereference
   e8c9540b02ce x86/intel_rdt: Show missing resctrl mount options
   0efa31256ace cpufreq: dt: Try freeing static OPPs only if we have added them
   17b8bb13ac9d ACPI / processor: Fix the return value of acpi_processor_ids_walk()
   dcb2a7c21469 ACPI / PM: LPIT: Register sysfs attributes based on FADT
   9c7247b6f6a9 ACPI/PPTT: Handle architecturally unknown cache types
   ef9c7ed4de60 x86/olpc: Indicate that legacy PC XO-1 platform should not register RTC
   f7121de89b55 iwlwifi: mvm: check for n_profiles validity in EWRD ACPI
   af0d1438f4e2 iwlwifi: mvm: clear HW_RESTART_REQUESTED when stopping the interface
   e364a986fe41 iwlwifi: pcie: avoid empty free RB queue
   ba4a1b62a2d7 mtd: rawnand: denali: set SPARE_AREA_SKIP_BYTES register to 8 if unset
   8c9e66266a16 sdhci: acpi: add free_slot callback
   8be558fb46df mmc: sdhci-pci-o2micro: Add quirk for O2 Micro dev 0x8620 rev 0x01
   f9fa6d72d149 bcache: Populate writeback_rate_minimum attribute
   46b8a8d2f33a cpupower: Fix coredump on VMWare
   3d8b0617b2a5 perf strbuf: Match va_{add,copy} with va_end
   74a5a6e86f82 perf tools: Cleanup trace-event-info 'tdata' leak
   6b6ed6f4c33b perf tools: Free temporary 'sys' string in read_event_files()
   91747a58abc5 spi: spi-ep93xx: Use dma_data_direction for ep93xx_spi_dma_{finish,prepare}
   feea46d8f5b0 lightnvm: pblk: fix race condition on metadata I/O
   afa8688bd3bf lightnvm: pblk: fix two sleep-in-atomic-context bugs
   beaff0a07547 lightnvm: pblk: fix race on sysfs line state
   fd524f47ecc5 hwmon: (pwm-fan) Set fan speed to 0 on suspend
   340029579377 s390/sthyi: Fix machine name validity indication
   034d29a7ef6a tun: Consistently configure generic netdev params via rtnetlink
   dcaa9d656d10 nfp: devlink port split support for 1x100G CXP NIC
   4db6211a5bda arm64: cpufeature: ctr: Fix cpu capability check for late CPUs
   ddb265c32880 swim: fix cleanup on setup error
   140a8e218463 ataflop: fix error handling during setup
   3967f93cb91b netfilter: xt_nat: fix DNAT target for shifted portmap ranges
   0713bef08f09 locking/lockdep: Fix debug_locks off performance problem
   92cc2f9792aa net: socionext: Reset tx queue in ndo_stop
   9da20df2fbf6 i2c: rcar: cleanup DMA for all kinds of failure
   4f7381656228 selftests: ftrace: Add synthetic event syntax testcase
   89c678ab4908 drm: Get ref on CRTC commit object when waiting for flip_done
   9fdd80c2ef12 r8169: re-enable MSI-X on RTL8168g
   6b78ea67151b net: qla3xxx: Remove overflowing shift statement
   8a5805bcc603 x86/fpu: Remove second definition of fpu in __fpu__restore_sig()
   027622eacae7 perf report: Don't crash on invalid inline debug information
   a34b5a9d90b1 perf cpu_map: Align cpu map synthesized events properly.
   632f9277621b perf tools: Fix use of alternatives to find JDIR
   71797bf860be perf evsel: Store ids for events with their own cpus perf_event__synthesize_event_update_cpus
   f8148d7cea1f sched/fair: Fix the min_vruntime update logic in dequeue_entity()
   e0d017fe2a43 nfp: flower: use offsets provided by pedit instead of index for ipv6
   d8e7c3329332 nfp: flower: fix pedit set actions for multiple partial masks
   23ef37c73bd7 r8169: Enable MSI-X on RTL8106e
   1810feb860b1 perf vendor events intel: Fix wrong filter_band* values for uncore events
   4e670a32d242 xfrm: policy: use hlist rcu variants on insert
   2b0cdfb29439 xsk: do not call synchronize_net() under RCU read lock
   d1d394e201f0 selftests: usbip: add wait after attach and before checking port status
   c714f12f60ba Revert "perf tools: Fix PMU term format max value calculation"
   7ceb3d05aff5 nvme: remove ns sibling before clearing path
   c5849e9bf203 bpf: do not blindly change rlimit in reuseport net selftest
   6dd0eaf03c0a drm: fix use of freed memory in drm_mode_setcrtc
   c9493729df39 ARM: dts: exynos: Disable pull control for MAX8997 interrupts on Origen
   db611db0ee15 x86/speculation: Support Enhanced IBRS on future CPUs
   178ecd621450 x86/mm/pat: Disable preemption around __flush_tlb_all()
   d601f8c2e0b0 x86/corruption-check: Fix panic in memory_corruption_check() when boot option without value is provided
   1a359f8f8ec8 x86/xen: Fix boot loader version reported for PVH guests
   02fb68711ba6 x86/speculation: Enable cross-hyperthread spectre v2 STIBP mitigation
   e5e99bd18db3 ALSA: ca0106: Disable IZD on SB0570 DAC to fix audio pops
   9c30febb7383 ALSA: hda: Add 2 more models to the power_save blacklist
   0cfca999ee94 ALSA: hda - Add mic quirk for the Lenovo G50-30 (17aa:3905)
   43a57738232c ALSA: hda/realtek - Fix the problem of the front MIC on the Lenovo M715
   9580bd128c3b ALSA: hda - Fix headphone pin config for ASUS G751
   618ad7fe0e41 ALSA: hda - Add quirk for ASUS G751 laptop
   1396c159647a parisc: Fix exported address of os_hpmc handler
   5e3efb6ff698 parisc: Fix map_pages() to not overwrite existing pte entries
   d9ad0ecfd503 parisc: Fix address in HPMC IVA
   acf2f1783055 acpi, nfit: Fix Address Range Scrub completion tracking
   cf7d33fa2dd3 mailbox: PCC: handle parse error
   f703cf73a0cd ipmi: Fix timer race with module unload
   13b8c2e55d7b kprobes/x86: Use preempt_enable() in optimized_callback()
   5ef3e6e8d3e6 ACPICA: AML Parser: fix parse loop to correctly skip erroneous extended opcodes
   7876d54ad642 ACPICA: AML interpreter: add region addresses in global list during initialization
   165ec328038d ACPI / OSL: Use 'jiffies' as the time bassis for acpi_os_get_timer()
   9c869687da7c pcmcia: Implement CLKRUN protocol disabling for Ricoh bridges
   6457bbfb62d8 dma-mapping: fix panic caused by passing empty cma command line argument
   6995a939af68 cpufreq: conservative: Take limits changes into account properly
   f793bede6a92 block: make sure writesame bio is aligned with logical block size
   1e660a354aaa block: make sure discard bio is aligned with logical block size
   5d7cc07a4a09 block: don't deal with discard limit in blkdev_issue_discard()
   9acb7e6aa615 block: setup bounce bio_sets properly
   22315bd1693b jffs2: free jffs2_sb_info through jffs2_kill_sb()
   4e0b30d87323 hwmon: (pmbus) Fix page count auto-detection.
   79e8dc743d12 bcache: fix miss key refill->end in writeback
   c483d0e293af bcache: correct dirty data statistics
   0d0bac807a44 bcache: trace missed reading by cache_missed
   4588df8e529c spi: bcm-qspi: fix calculation of address length
   af70ba70b95e spi: bcm-qspi: switch back to reading flash using smaller chunks
   9b86e6f06127 spi: spi-mem: Adjust op len based on message/transfer size limitations
   056a4dd50034 mtd: spi-nor: fsl-quadspi: Don't let -EINVAL on the bus
   0368e0a3ab70 mtd: spi-nor: intel-spi: Add support for Intel Ice Lake SPI serial flash
   82a401cad1be mtd: spi-nor: fsl-quadspi: fix read error for flash size larger than 16MB
   57459faa2fbe mtd: rawnand: marvell: fix the IRQ handler complete() condition
   99661278215d Linux 4.18.18
   afc1e5e54138 x86/fpu: Fix i486 + no387 boot crash by only saving FPU registers on context switch if there is an FPU
   5581e4eed999 x86/swiotlb: Enable swiotlb for > 4GiG RAM on 32-bit kernels
   022601efef9e x86/time: Correct the attribute on jiffies' definition
   5d59cf0b1833 x86/percpu: Fix this_cpu_read()
   d1c0e525c430 x86, hibernate: Fix nosave_regions setup for hibernation
   227db93beac0 x86/tsc: Force inlining of cyc2ns bits
   dfc1a81b0143 sched/fair: Fix throttle_list starvation with low CFS quota
   962bc4202bf0 drm/sun4i: Fix an ulong overflow in the dotclock driver
   05d586677df0 Input: elan_i2c - add ACPI ID for Lenovo IdeaPad 330-15IGM
   ea6b10f79dd3 tracing: Fix synthetic event to allow semicolon at end
   762472aec1f9 tracing: Fix synthetic event to accept unsigned modifier
   e6b8e426bf8f USB: fix the usbfs flag sanitization for control transfers
   a790c9e4d51f usb: xhci: pci: Enable Intel USB role mux on Apollo Lake platforms
   06a70c3f60b6 usb: roles: intel_xhci: Fix Unbalanced pm_runtime_enable
   ebe34fdc10ad usb: gadget: storage: Fix Spectre v1 vulnerability
   8ae5849083f4 usb: usbip: Fix BUG: KASAN: slab-out-of-bounds in vhci_hub_control()
   b69c7f45b2d3 cdc-acm: fix race between reset and control messaging
   ffc3136034c3 cdc-acm: correct counting of UART states in serial state notification
   e4e6a27f3786 cdc-acm: do not reset notification buffer index upon urb unlinking
   1d375e3b4663 IB/ucm: Fix Spectre v1 vulnerability
   7f99af5c5510 RDMA/ucma: Fix Spectre v1 vulnerability
   a69c03dca8c1 drm: fb-helper: Reject all pixel format changing requests
   c6dd29d7a92d drm/edid: VSDB yCBCr420 Deep Color mode bit definitions
   1ef7c81f8d5f drm/edid: Add 6 bpc quirk for BOE panel in HP Pavilion 15-n233sl
   32c95444f91b ptp: fix Spectre v1 vulnerability
   fc7f79df0f2a fscache: Fix out of bound read in long cookie keys
   4bdc50b060ca cachefiles: fix the race between cachefiles_bury_object() and rmdir(2)
   9ccc817d3fb0 fscache: Fix incomplete initialisation of inline key space
   e65c5ffc44ad clk: sunxi-ng: sun4i: Set VCO and PLL bias current to lowest setting
   cfb0622c2d95 gpio: mxs: Get rid of external API call
   c6259258b48b bpf: fix partial copy of map_ptr when dst is scalar
   1d15a9f08704 vfs: swap names of {do,vfs}_clone_file_range()
   de1341b7a671 eeprom: at24: Add support for address-width property

(From OE-Core rev: 77939f82e29dccd170c4f0a1d63dba89d5320ded)

(From OE-Core rev: 68129febe9adfbeed01d0aadab016ae83be3474e)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-01-08 20:14:43 +00:00
Bruce Ashfield
d8276fb3af linux-yocto/4.18: integrate CVE fixes
Integrating the following CVE fixes into the 4.18 tree:

  e78a46f375fe cdrom: fix improper type cast, which can leat to information leak.
  4815231b9b65 btrfs: tree-checker: Verify block_group_item
  6dfe2fe5dd52 btrfs: Introduce mount time chunk <-> dev extent mapping check
  ccd06dcdc11b btrfs: Verify that every chunk has corresponding block group at mount time
  7cf70b1e759a btrfs: Check that each block group has corresponding chunk at mount time
  166bbd6ff86b btrfs: validate type when reading a chunk
  ecf31c809599 ip: frags: fix crash in ip_do_fragment()
  02fc22c5eb30 ip: use rb trees for IP frag queue.
  72dd075ee367 net: modify skb_rbtree_purge to return the truesize of all purged skbs.
  7a9f904c49aa ip: discard IPv4 datagrams with overlapping segments.
  abea198657b7 f2fs: fix to do sanity check with i_extra_isize
  408c425c41e4 f2fs: fix to do sanity check with node footer and iblocks
  5e4ccef734c3 f2fs: fix to do sanity check with user_block_count

(From OE-Core rev: e09309a50dd5f4d8fc75915a5f2e97a16603aa9a)

(From OE-Core rev: 75e694bd12906a88894f6541ab490039204ec4e2)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-01-08 20:14:43 +00:00
Bruce Ashfield
1118e24f23 linux-yocto/4.14: update to v4.14.79
Integrating the -stable releases the comprise the following changes:

   50961e4888a1 Linux 4.14.79
   fe54a7c4f0d1 net/mlx5: Fix build break when CONFIG_SMP=n
   b0ee9bd40d74 net/sched: cls_api: add missing validation of netlink attributes
   c8c2df18eedf net: bcmgenet: Poll internal PHY for GENETv5
   71944eb54288 net: ipmr: fix unresolved entry dumps
   4ca72d6336df rtnetlink: Disallow FDB configuration for non-Ethernet device
   ac65fd7094ac net/mlx5e: fix csum adjustments caused by RXFCS
   855cb69f4e6d net: fix pskb_trim_rcsum_slow() with odd trim offset
   623670a9f207 net: drop skb on failure in ip_check_defrag()
   fd090ba395fb net: sched: Fix for duplicate class dump
   bc4787003687 net/mlx5: Take only bit 24-26 of wqe.pftype_wq for page fault type
   1d50b74a33d0 openvswitch: Fix push/pop ethernet validation
   f288424ea85e ip6_tunnel: Fix encapsulation layout
   8a865095d399 bonding: fix length of actor system
   95c337646585 ethtool: fix a privilege escalation bug
   574af67123c3 virtio_net: avoid using netif_tx_disable() for serializing tx routine
   b522f279f91b vhost: Fix Spectre V1 vulnerability
   189771d69e14 udp6: fix encap return code for resubmitting
   606694e5ec81 sctp: fix race on sctp_id2asoc
   aa8d067c8547 r8169: fix NAPI handling under high load
   0ecebdfb2e3a net: udp: fix handling of CHECKSUM_COMPLETE packets
   441d0e754082 net: stmmac: Fix stmmac_mdio_reset() when building stmmac as modules
   7d58456872c4 net: socket: fix a missing-check bug
   29d871195e9e net: sched: gred: pass the right attribute to gred_change_table_def()
   e581e28f9dcb net/ipv6: Fix index counter for unicast addresses in in6_dump_addrs
   ff96a3977440 net: fec: don't dump RX FIFO register when not available
   6bb1381cc865 llc: set SOCK_RCU_FREE in llc_sap_add_socket()
   1e42e97af983 ipv6/ndisc: Preserve IPv6 control buffer if protocol error handlers are called
   5d4c5861211f ipv6: mcast: fix a use-after-free in inet6_mc_check
   c3cf86dac56d net: bridge: remove ipv6 zero address check in mcast queries
   1bd68d5612af bridge: do not add port to router list when receives query with source 0.0.0.0
   b6534b3e08e8 drm/i915/gvt: fix memory leak of a cmd_entry struct on error exit path
   2980235974cd perf tools: Disable parallelism for 'make clean'
   ac7c2bb59870 Revert "netfilter: ipv6: nf_defrag: drop skb dst before queueing"
   ee66ad5896ae ALSA: usx2y: Fix invalid stream URBs
   e75194d29442 media: uvcvideo: Fix driver reference counting
   cdb44bdafc3a ARM: dts: r8a7790: Correct critical CPU temperature
   871424f0c3cf kvm: x86: fix WARN due to uninitialized guest FPU state
   3642e3544749 mtd: spi-nor: Add support for is25wp series chips
   bd6df7a19559 sch_netem: restore skb->dev after dequeuing from the rbtree
   3d69b85e14be fs/fat/fatent.c: add cond_resched() to fat_count_free_clusters()
   5309191ec049 selftests: rtnetlink.sh explicitly requires bash.
   1e4f8315a5c8 net: ena: fix NULL dereference due to untimely napi initialization
   ba4cf1eefd54 net: ena: fix warning in rmmod caused by double iounmap
   252869e5fb49 rxrpc: Fix connection-level abort handling
   f1d27ff6e027 rxrpc: Only take the rwind and mtu values from latest ACK
   9a6d45700adf rxrpc: Don't check RXRPC_CALL_TX_LAST after calling rxrpc_rotate_tx_window()
   4fdaadbce403 perf python: Use -Wno-redundant-decls to build with PYTHON=python3
   c005e014fbc6 ARM: dts: imx53-qsb: disable 1.2GHz OPP
   3c3bec81e267 compiler.h: Allow arch-specific asm/compiler.h
   b8f4d375cd1e perf tests: Fix indexing when invoking subtests
   543f1084b67f libertas: call into generic suspend code before turning off power
   48f1b3b56ee4 kconfig: fix the rule of mainmenu_stmt symbol
   cbc38304947e net: stmmac: mark PM functions as __maybe_unused
   726f05951941 x86/paravirt: Fix some warning messages
   aa3aff5b469b net: phy: phylink: Don't release NULL GPIO
   f72388e3670e btrfs: quota: Set rescan progress to (u64)-1 if we hit last leaf
   3c92c7e96fc4 scsi: sd: Remember that READ CAPACITY(16) succeeded
   5aa0d86363b2 scsi: ibmvfc: Avoid unnecessary port relogin
   07e2121f4f2b selftests/powerpc: Add ptrace hw breakpoint test
   672fdbd5966e iio: buffer: fix the function signature to match implementation
   1bee5f3d9530 enic: do not overwrite error code
   b9627a218e2b lan78xx: Don't reset the interface on open
   f18ed65d70f0 MIPS: Workaround GCC __builtin_unreachable reordering bug
   f274c57f0479 mmc: dw_mmc-rockchip: correct property names in debug
   e6df57b60b86 IB/usnic: Update with bug fixes from core code
   d29f27192a2d xen-netfront: Fix mismatched rtnl_unlock
   a0fcefb70022 xen-netfront: Update features after registering netdev
   9de255666ce3 tpm: tpm_crb: relinquish locality on error path.
   3c0cff34e91e bpf: sockmap, map_release does not hold refcnt for pinned maps
   db9d15988afb tpm: move the delay_msec increment after sleep in tpm_transmit()
   c1fdafea627c sparc64: Fix regression in pmdp_invalidate().
   090246ff5f6c KVM: x86: Update the exit_qualification access bits while walking an address
   7d768c84ec31 test_bpf: Fix testing with CONFIG_BPF_JIT_ALWAYS_ON=y on other arches
   8f041940aaf2 cifs: Use ULL suffix for 64-bit constant
   5c097f55e980 l2tp: remove configurable payload offset
   b39ac5421519 ARM: tegra: Fix ULPI regression on Tegra20
   579493b9f689 IB/mlx5: Avoid passing an invalid QP type to firmware
   6cfb67394a42 kbuild: set no-integrated-as before incl. arch Makefile
   a972222a6a30 scsi: qla2xxx: Avoid double completion of abort command
   651f11a83af3 net/mlx5e: Refine ets validation function
   8b882dbba717 net: phy: Add general dummy stubs for MMD register access
   8d9d7f018464 net: phy: realtek: Use the dummy stubs for MMD register access for rtl8211b
   4fbd26a1484c dm integrity: fail early if required HMAC key is not available
   aa2a0c23c9b7 powerpc/pseries: Add empty update_numa_cpu_lookup_table() for NUMA=n
   71a9d1240a30 net/mlx5: Fix mlx5_get_vector_affinity function
   049fee28bba3 s390/qeth: fix error handling in adapter command callbacks
   18addd960fe8 IB/rxe: put the pool on allocation failure
   8c954368de69 IB/ipoib: Fix lockdep issue found on ipoib_ib_dev_heavy_flush
   c750773f3942 scsi: aacraid: address UBSAN warning regression
   3b6c6d9cbdea usbip: vhci_hcd: update 'status' file header and format
   e37e383a4e66 tools/testing/nvdimm: unit test clear-error commands
   18a83c013392 iwlwifi: fix the ALIVE notification layout
   4187fbd60c39 iwlwifi: dbg: allow wrt collection before ALIVE
   d1efab095c20 iwlwifi: mvm: check for short GI only for OFDM
   f83f38fcf17f ocfs2: fix crash in ocfs2_duplicate_clusters_by_page()
   d0539c56391d yam: fix a missing-check bug
   ec4e9618d1fd net: cxgb3_main: fix a missing-check bug
   049b662eeadd be2net: don't flip hw_features when VXLANs are added/deleted
   45894023bee9 locking/ww_mutex: Fix runtime warning in the WW mutex selftest
   a0ab962b674d net: qualcomm: rmnet: Skip processing loopback packets
   3095f0c98c6a declance: Fix continuation with the adapter identification message
   1837dbb25cc5 net: fec: fix rare tx timeout
   784f8395895f perf/x86/amd/uncore: Set ThreadMask and SliceMask for L3 Cache perf events
   40568f21f235 perf/x86/intel/uncore: Fix PCI BDF address of M3UPI on SKX
   a18e2159c3ff perf/ring_buffer: Prevent concurent ring buffer access
   ffc3cb561ece perf/core: Fix perf_pmu_unregister() locking
   492a81318e8c cfg80211: fix use-after-free in reg_process_hint()
   35ffbd523797 smsc95xx: Check for Wake-on-LAN modes
   9e3a0366365b smsc75xx: Check for Wake-on-LAN modes
   9eaabc0a7779 r8152: Check for supported Wake-on-LAN Modes
   4301fb3391ed sr9800: Check for supported Wake-on-LAN modes
   9f0962c0f6f7 lan78xx: Check for supported Wake-on-LAN modes
   a0fc06335530 ax88179_178a: Check for supported Wake-on-LAN modes
   eef5935c2d7a asix: Check for supported Wake-on-LAN modes
   915670c48eb3 nl80211: Fix possible Spectre-v1 for CQM RSSI thresholds
   b93393d63d8f qed: Avoid implicit enum conversion in qed_iwarp_parse_rx_pkt
   ee86b4d659c2 qed: Avoid constant logical operation warning in qed_vf_pf_acquire
   935d441968b1 qed: Avoid implicit enum conversion in qed_roce_mode_to_flavor
   ab7998abfea2 qed: Fix mask parameter in qed_vf_prep_tunn_req_tlv
   76f86190774e qed: Avoid implicit enum conversion in qed_set_tunn_cls_info
   865741554925 pxa168fb: prepare the clock
   0f8a689c6a2f Bluetooth: SMP: fix crash in unpairing
   db2a11e706bf mac80211_hwsim: do not omit multicast announce of first added radio
   c7b66583c9ed nl80211: Fix possible Spectre-v1 for NL80211_TXRATE_HT
   fa1578ec411d soc: fsl: qe: Fix copy/paste bug in ucc_get_tdm_sync_shift()
   795b13034224 soc: fsl: qbman: qman: avoid allocating from non existing gen_pool
   d9e742766c76 net: macb: Clean 64b dma addresses if they are not detected
   a5bdfc6892b5 ARM: dts: BCM63xx: Fix incorrect interrupt specifiers
   1241679ce248 arm64: hugetlb: Fix handling of young ptes
   1157713407a6 netfilter: bridge: Don't sabotage nf_hook calls from an l3mdev
   26c6b9da7a00 xfrm: validate template mode
   5d7bf7b4d022 ARM: 8799/1: mm: fix pci_ioremap_io() offset check
   73c6f8606070 xfrm: Fix NULL pointer dereference when skb_dst_force clears the dst_entry.
   35507aabf0e5 mac80211: fix TX status reporting for ieee80211s
   ebec37ed21a2 mac80211: TDLS: fix skb queue/priority assignment
   9da59d2e283d cfg80211: Address some corner cases in scan result channel updating
   574be53ab82c mac80211: fix pending queue hang due to TX_DROP
   d46c334f07f5 cfg80211: reg: Init wiphy_idx in regulatory_hint_core()
   b0be0d83fc68 mac80211: Always report TX status
   64f38286c7be xfrm: reset crypto_done when iterating over multiple input xfrms
   a95d9004fbde xfrm: reset transport header back to network header after all input transforms ahave been applied
   2a55e64d5c5e xfrm6: call kfree_skb when skb is toobig
   3b5d512831af xfrm: Validate address prefix lengths in the xfrm selector.
   e7405910ca55 Linux 4.14.78
   6edd85a7870a IB/hfi1: Fix destroy_qp hang after a link down
   4d5af836674f i2c: rcar: handle RXDMA HW behaviour on Gen3
   faf578e3593e drm/i915/glk: Add Quirk for GLK NUC HDMI port issues.
   2a797fd8f8ae mm: disallow mappings that conflict for devm_memremap_pages()
   8e6173c12467 staging: ccree: check DMA pool buf !NULL before free
   61377bc80861 drm/i915: Nuke the LVDS lid notifier
   e896a2adba93 HID: quirks: fix support for Apple Magic Keyboards
   7b9f716d5550 ARC: build: Don't set CROSS_COMPILE in arch's Makefile
   b6d06b180ff8 ARC: build: Get rid of toolchain check
   541500abfe9e mremap: properly flush TLB before releasing the page
   f473bf921696 Revert "vfs: fix freeze protection in mnt_want_write_file() for overlayfs"
   e261faa2eccb powerpc/lib/feature-fixups: use raw_patch_instruction()
   f78ae314c6e3 iommu/amd: Return devid as alias for ACPI HID devices
   62c15d061f5f powerpc/tm: Avoid possible userspace r1 corruption on reclaim
   256707d3b89b powerpc/tm: Fix userspace r13 corruption
   4f5dbf26a1bd clocksource/drivers/fttmr010: Fix set_next_event handler
   f75ad0441a0a net/mlx4: Use cpumask_available for eq->affinity_mask
   4c0e2e4a4b54 scsi: sd: don't crash the host on invalid commands
   b6b5bc245dc2 scsi: ipr: System hung while dlpar adding primary ipr adapter back
   26377fe2f7b0 drm: mali-dp: Call drm_crtc_vblank_reset on device init
   940d35f3a572 PCI: dwc: Fix scheduling while atomic issues
   48047b847808 ravb: do not write 1 to reserved bits
   997cdc46f436 net: emac: fix fixed-link setup for the RTL8363SB switch
   1c22d2cbd9f2 Input: atakbd - fix Atari CapsLock behaviour
   8b8ab47a093d Input: atakbd - fix Atari keymap
   2b8b339c53d2 intel_th: pci: Add Ice Lake PCH support
   3353c04dd4d7 scsi: ibmvscsis: Ensure partition name is properly NUL terminated
   40e49c155313 scsi: ibmvscsis: Fix a stringop-overflow warning
   89450e431a63 clocksource/drivers/ti-32k: Add CLOCK_SOURCE_SUSPEND_NONSTOP flag for non-am43 SoCs
   498c536f5931 batman-adv: fix hardif_neigh refcount on queue_work() failure
   3e9f714fb58b batman-adv: fix backbone_gw refcount on queue_work() failure
   2b1c4897f256 batman-adv: Prevent duplicated tvlv handler
   b46fd722b7bc batman-adv: Prevent duplicated global TT entry
   2a544b2da44b batman-adv: Prevent duplicated softif_vlan entry
   18733cfe4126 batman-adv: Prevent duplicated nc_node entry
   3b38bed3304d batman-adv: Prevent duplicated gateway_node entry
   c553f7e514b9 batman-adv: Fix segfault when writing to sysfs elp_interval
   acdaf28d8cf5 batman-adv: Fix segfault when writing to throughput_override
   fa04cc5e7b81 batman-adv: Avoid probe ELP information leak
   88be243901ff media: af9035: prevent buffer overflow on write
   8263087bf627 Linux 4.14.77
   d0c9f9f9fb44 perf tools: Fix snprint warnings for gcc 8
   57bff812c4e2 ARM: spectre-v1: mitigate user accesses
   4a1948d692f1 ARM: spectre-v1: use get_user() for __get_user()
   f64824a3d475 ARM: use __inttype() in get_user()
   70b96be10d15 ARM: oabi-compat: copy semops using __copy_from_user()
   38752f417487 ARM: vfp: use __copy_from_user() when restoring VFP state
   faac72dc9150 ARM: signal: copy registers using __copy_from_user()
   b690ec0dc735 ARM: spectre-v1: fix syscall entry
   4186f7cfa1d6 ARM: spectre-v1: add array_index_mask_nospec() implementation
   f6909113ad1f ARM: spectre-v1: add speculation barrier (csdb) macros
   e7fc401a8800 ARM: KVM: report support for SMCCC_ARCH_WORKAROUND_1
   8502541ee216 ARM: KVM: Add SMCCC_ARCH_WORKAROUND_1 fast handling
   ee4e537d3aa1 ARM: spectre-v2: KVM: invalidate icache on guest exit for Brahma B15
   1df9a0a8201b ARM: KVM: invalidate icache on guest exit for Cortex-A15
   75e48eff8aae ARM: KVM: invalidate BTB on guest exit for Cortex-A12/A17
   6d75fe7ed2f6 ARM: spectre-v2: warn about incorrect context switching functions
   510155b2d95b ARM: spectre-v2: add firmware based hardening
   5ab8c6e8879c ARM: spectre-v2: harden user aborts in kernel space
   81b215a5b80b ARM: spectre-v2: add Cortex A8 and A15 validation of the IBE bit
   3e52aff79d5e ARM: spectre-v2: harden branch predictor on context switches
   c0f64070a310 ARM: spectre: add Kconfig symbol for CPUs vulnerable to Spectre
   0d5360ee15e9 ARM: bugs: add support for per-processor bug checking
   c7825c277bad ARM: bugs: hook processor bug checking into SMP and suspend paths
   9a42b70744b1 ARM: bugs: prepare processor bug infrastructure
   1789de335428 ARM: add more CPU part numbers for Cortex and Brahma B15 CPUs
   d62b8ac8cd54 mm: don't show nr_indirectly_reclaimable in /proc/vmstat
   5de69d648a09 mm: treat indirectly reclaimable memory as free in overcommit logic
   6d7942377c88 dcache: account external names as indirectly reclaimable memory
   dc09a5b68d83 mm: treat indirectly reclaimable memory as available in MemAvailable
   c605894c84b9 mm: introduce NR_INDIRECTLY_RECLAIMABLE_BYTES
   7a4f9efdb213 xhci: Don't print a warning when setting link state for disabled ports
   74a960430a8d i2c: i2c-scmi: fix for i2c_smbus_write_block_data
   1b7ff5208d2f mm: Preserve _PAGE_DEVMAP across mprotect() calls
   68ba0bdfe494 mm/thp: fix call to mmu_notifier in set_pmd_migration_entry() v2
   3e6275d940a4 arm64: perf: Reject stand-alone CHAIN events for PMUv3
   b3e4b3c70a0a pinctrl: mcp23s08: fix irq and irqchip setup order
   d5833a50c6a3 mmc: block: avoid multiblock reads for the last sector in SPI mode
   bc183079ddfd cgroup: Fix dom_cgrp propagation when enabling threaded mode
   c339fab172a9 dm linear: fix linear_end_io conditional definition
   efd6537984d5 dm linear: eliminate linear_end_io call if CONFIG_DM_ZONED disabled
   261f2cba100b dm: fix report zone remapping to account for partition offset
   6c8faa19e9cc dm cache: destroy migration_cache if cache target registration failed
   8d2f62cb2d46 s390/cio: Fix how vfio-ccw checks pinned pages
   e3f725f5c46a perf script python: Fix export-to-sqlite.py sample columns
   82ac2740aa74 perf script python: Fix export-to-postgresql.py occasional failure
   54886c978397 percpu: stop leaking bitmap metadata blocks
   6c8f4babb57b mach64: detect the dot clock divider correctly on sparc
   86717a97f921 MIPS: VDSO: Always map near top of user memory
   8676e0b4a28f mm/vmstat.c: fix outdated vmstat_text
   059726864271 drm/amdgpu: Fix SDMA HQD destroy error on gfx_v7
   e4865b46e195 x86/kvm/lapic: always disable MMIO interface in x2APIC mode
   88659387b9d5 clk: x86: Stop marking clocks as CLK_IS_CRITICAL
   ba54417f8d01 clk: x86: add "ether_clk" alias for Bay Trail / Cherry Trail
   cac34c122cf3 PCI: hv: support reporting serial number as slot information
   18918ed70db9 ARM: dts: at91: add new compatibility string for macb on sama5d3
   c77295d6fa1c net: macb: disable scatter-gather for macb on sama5d3
   3265bda5bd9f stmmac: fix valid numbers of unicast filter entries
   1826e5562516 hv_netvsc: fix schedule in RCU context
   37ca1cc8d4c0 sound: don't call skl_init_chip() to reset intel skl soc
   2af2b70c107b sound: enable interrupt after dma buffer initialization
   a5733703e38c scsi: qla2xxx: Fix an endian bug in fcpcmd_is_corrupted()
   254cc00e53d7 scsi: iscsi: target: Don't use stack buffer for scatterlist
   5d53f0d897c3 mfd: omap-usb-host: Fix dts probe of children
   e3583d7b1bd9 Bluetooth: hci_ldisc: Free rw_semaphore on close
   bac561137155 ASoC: rsnd: don't fallback to PIO mode when -EPROBE_DEFER
   ad9ad950a37b ASoC: rsnd: adg: care clock-frequency size
   6d52f3e1e729 selftests: memory-hotplug: add required configs
   e121efd796c9 selftests/efivarfs: add required kernel configs
   c5f7b0d2ce9e ASoC: sigmadsp: safeload should not have lower byte limit
   c08a99325a56 ASoC: wm8804: Add ACPI support
   a15fac93a3e6 ASoC: rt5514: Fix the issue of the delay volume applied again
   c5df58138946 inet: make sure to grab rcu_read_lock before using ireq->ireq_opt
   17af5475aef3 tcp/dccp: fix lockdep issue when SYN is backlogged
   4b7b26024f52 net-ethtool: ETHTOOL_GUFO did not and should not require CAP_NET_ADMIN
   98c77f2eef29 bnxt_en: don't try to offload VLAN 'modify' action
   eb79c31aac15 nfp: avoid soft lockups under control message storm
   f578e5b34c38 bonding: fix warning message
   90a3d8afe1f4 bonding: pass link-local packets to bonding master also.
   83eb2fdd0483 net/mlx5: E-Switch, Fix out of bound access when setting vport rate
   7aa339e90994 net: aquantia: memory corruption on jumbo frames
   7ba8867fb3a7 net/mlx5e: Set vlan masks for all offloaded TC rules
   431a4fee7114 net: dsa: bcm_sf2: Fix unbind ordering
   5150140b4ea7 net/packet: fix packet drop as of virtio gso
   5e7bb38dc696 net: stmmac: Fixup the tail addr setting in xmit path
   7976e6b70ecf udp: Unbreak modules that rely on external __skb_recv_udp() availability
   49984ca4e60e tipc: fix flow control accounting for implicit connect
   66c1b9cfa07d team: Forbid enslaving team device to itself
   d63d3995d7db sctp: update dst pmtu with the correct daddr
   a8b0f004eb90 rtnl: limit IFLA_NUM_TX_QUEUES and IFLA_NUM_RX_QUEUES to 4096
   5f999abba33f rtnetlink: fix rtnl_fdb_dump() for ndmsg header
   72675512fb1a qmi_wwan: Added support for Gemalto's Cinterion ALASxx WWAN interface
   0d5b9edea995 qlcnic: fix Tx descriptor corruption on 82xx devices
   133aea0f2108 net/usb: cancel pending work when unbinding smsc75xx
   3e80ad8cbf22 net: systemport: Fix wake-up interrupt race during resume
   d9057423312e net: sched: Add policy validation for tc attributes
   85ebbc5a2543 net: mvpp2: fix a txq_done race condition
   d9bf6699aee8 net: mvpp2: Extract the correct ethtype from the skb for tx csum offload
   19c5e73c745c netlabel: check for IPV4MASK in addrinfo_get
   335c37612f9f net/ipv6: Display all addresses in output of /proc/net/if_inet6
   9b4869cf385a net: ipv4: update fnhe_pmtu when first hop's MTU changes
   6c61dae979ae net: hns: fix for unmapping problem when SMMU is on
   8193b775247a net: dsa: bcm_sf2: Call setup during switch resume
   48c14f2ea5c5 ipv6: take rcu lock in rawv6_send_hdrinc()
   32b193216e18 ipv4: fix use-after-free in ip_cmsg_recv_dstaddr()
   deb33b68f40e ip_tunnel: be careful when accessing the inner header
   18bf9a724362 ip6_tunnel: be careful when accessing the inner header
   94402f23659f bonding: avoid possible dead-lock
   e73b51a995ac bnxt_en: free hwrm resources, if driver probe fails.
   67d1ee6c7b76 bnxt_en: Fix TX timeout during netpoll.

(From OE-Core rev: 01a2f1ca3d06f0b2a4eb1cf4c8450352031296ff)

(From OE-Core rev: 849a3549fbf72343248094c043602a926155b38e)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-01-08 20:14:43 +00:00
Bruce Ashfield
7171e8dcfc linux-yocto/4.18: update to v4.18.17
Integrating the korg -stable updates that comprise the following
commits:

   2237effd7edc Linux 4.18.17
   1757ec69500e net: bridge: remove ipv6 zero address check in mcast queries
   2ec673dbb0cd sparc: Throttle perf events properly.
   12176be9fc14 sparc: Fix syscall fallback bugs in VDSO.
   366187ea2b33 sparc: Fix single-pcr perf event counter management.
   4ce6adbc410a sparc64: Wire up compat getpeername and getsockname.
   a756494fb7bd sparc64: Set %l4 properly on trap return after handling signals.
   1a47e59c4471 sparc64: Make proc_id signed.
   f64ff34d414e sparc64: Make corrupted user stacks more debuggable.
   69e6b8f41fbf sparc64: Export __node_distance.
   6a84bdb84df3 mlxsw: core: Fix devlink unregister flow
   2d484ce0a878 net/mlx5: WQ, fixes for fragmented WQ buffers API
   f8e70fa84f76 net: fix pskb_trim_rcsum_slow() with odd trim offset
   4eb937395873 net: drop skb on failure in ip_check_defrag()
   dc4526d3bfeb net: bpfilter: use get_pid_task instead of pid_task
   79a6dd1cb8e3 mlxsw: spectrum_switchdev: Don't ignore deletions of learned MACs
   f235cdcf4fc4 net/smc: fix smc_buf_unuse to use the lgr pointer
   d09a8fb16103 net/mlx5: Fix memory leak when setting fpga ipsec caps
   63f8939f793b sctp: not free the new asoc when sctp_wait_for_connect returns err
   c1b1e96cffd2 sctp: fix the data size calculation in sctp_data_size
   81e31abfa81d net/ipv6: Allow onlink routes to have a device mismatch if it is the default route
   c5038b492cb1 net/sched: cls_api: add missing validation of netlink attributes
   45675e6e6344 net: sched: Fix for duplicate class dump
   11681b07d320 net: bcmgenet: Poll internal PHY for GENETv5
   b9a30ce087b4 net/mlx5: Take only bit 24-26 of wqe.pftype_wq for page fault type
   739b2449f0cf net: ipmr: fix unresolved entry dumps
   f8c96597387e openvswitch: Fix push/pop ethernet validation
   0b73d75ab52f ip6_tunnel: Fix encapsulation layout
   2f75b5a2c832 bonding: fix length of actor system
   03e00d0609eb ethtool: fix a privilege escalation bug
   e30293d0a03a virtio_net: avoid using netif_tx_disable() for serializing tx routine
   c75d697c8197 vhost: Fix Spectre V1 vulnerability
   886de7239b16 udp6: fix encap return code for resubmitting
   b3c2e8e106df tipc: fix unsafe rcu locking when accessing publication list
   721933262ef7 sctp: fix race on sctp_id2asoc
   2645237c90e7 rtnetlink: Disallow FDB configuration for non-Ethernet device
   9ae97da02a54 r8169: fix NAPI handling under high load
   6c5f9c2de021 net: udp: fix handling of CHECKSUM_COMPLETE packets
   cbfb26f3eb03 net: stmmac: Fix stmmac_mdio_reset() when building stmmac as modules
   a04092cebd73 net: socket: fix a missing-check bug
   ea824d70d673 net: sched: gred: pass the right attribute to gred_change_table_def()
   7344adab32c7 net/mlx5e: fix csum adjustments caused by RXFCS
   60a2c3b4a991 net/ipv6: Fix index counter for unicast addresses in in6_dump_addrs
   4dcde3a4c5ea net: fec: don't dump RX FIFO register when not available
   cc30c16a04cb llc: set SOCK_RCU_FREE in llc_sap_add_socket()
   23b5d05d9114 ipv6: rate-limit probes for neighbourless routes
   9198d01eb02d ipv6/ndisc: Preserve IPv6 control buffer if protocol error handlers are called
   558af64846ca ipv6: mcast: fix a use-after-free in inet6_mc_check
   9801a672beb6 bridge: do not add port to router list when receives query with source 0.0.0.0
   b13411edcf71 perf tools: Disable parallelism for 'make clean'
   f1f040bf29b7 Revert "netfilter: ipv6: nf_defrag: drop skb dst before queueing"
   d496cdeede28 Revert "mm: slowly shrink slabs with a relatively small number of objects"
   4afb03f48e7e fs/fat/fatent.c: add cond_resched() to fat_count_free_clusters()
   9721f5af4d23 afs: Fix cell proc list
   9277b65e04d6 vmlinux.lds.h: Fix linker warnings about orphan .LPBX sections
   e266c397e724 vmlinux.lds.h: Fix incomplete .text.exit discards
   c4659254b987 selftests: udpgso_bench.sh explicitly requires bash
   92e648292600 selftests: rtnetlink.sh explicitly requires bash.
   941a8d0b8409 rds: RDS (tcp) hangs on sendto() to unresponding address
   87113db1242c IB/mlx5: Unmap DMA addr from HCA before IOMMU
   e14b8b11ac50 gpio: Assign gpio_irq_chip::parents to non-stack pointer
   e7579cb736ec net: ena: fix NULL dereference due to untimely napi initialization
   2abc117c9799 net: ena: fix rare bug when failed restart/resume is followed by driver removal
   b0af327d145f net: ena: fix warning in rmmod caused by double iounmap
   6be48d8274ef KVM: x86: support CONFIG_KVM_AMD=y with CONFIG_CRYPTO_DEV_CCP_DD=m
   98154205f7a9 rxrpc: Fix connection-level abort handling
   47af9661cc87 rxrpc: Only take the rwind and mtu values from latest ACK
   54776c736d41 rxrpc: Carry call state out of locked section in rxrpc_rotate_tx_window()
   e3dcbf121240 rxrpc: Don't check RXRPC_CALL_TX_LAST after calling rxrpc_rotate_tx_window()
   903fb78f7436 perf record: Use unmapped IP for inline callchain cursors
   37e241d14094 perf python: Use -Wno-redundant-decls to build with PYTHON=python3
   2b401f26406f ARM: dts: imx53-qsb: disable 1.2GHz OPP
   755b72711bbc compiler.h: Allow arch-specific asm/compiler.h
   ff78e12f6587 HID: i2c-hid: Remove RESEND_REPORT_DESCR quirk and its handling
   e911f46c0cc5 tls: Fix improper revert in zerocopy_from_iter
   2033959b7421 perf report: Don't try to map ip to invalid map
   15ea940bc3fb libertas: call into generic suspend code before turning off power
   d33c4297bac5 clk: mvebu: armada-37xx-periph: Remove unused var num_parents
   e7f8508aca5e x86/paravirt: Fix some warning messages
   3b917cecac61 mm/migrate.c: split only transparent huge pages when allocation fails
   28d6d2236564 mm/gup_benchmark: fix unsigned comparison to zero in __gup_benchmark_ioctl
   203711a8820b ocfs2: fix crash in ocfs2_duplicate_clusters_by_page()
   72c25b9bf77d yam: fix a missing-check bug
   4c8345b62cfe net: cxgb3_main: fix a missing-check bug
   3397d28b3e27 powerpc/numa: Skip onlining a offline node in kdump path
   a7af3a2ae488 be2net: don't flip hw_features when VXLANs are added/deleted
   43cb734246c0 drm/amd/display: Signal hw_done() after waiting for flip_done()
   76c84d0a2313 locking/ww_mutex: Fix runtime warning in the WW mutex selftest
   1ac18a1dbc3f Revert "serial: 8250_dw: Fix runtime PM handling"
   0cf9edba8270 RISCV: Fix end PFN for low memory
   5278d9550d4d declance: Fix continuation with the adapter identification message
   c770ce978ac2 net: fec: fix rare tx timeout
   5613fc70844b thunderbolt: Initialize after IOMMUs
   1699207e9c7c thunderbolt: Do not handle ICM events after domain is stopped
   14ad1e0af45f perf/x86/amd/uncore: Set ThreadMask and SliceMask for L3 Cache perf events
   9f1aaaae92ff perf/x86/intel/uncore: Fix PCI BDF address of M3UPI on SKX
   8764955cc03e perf/ring_buffer: Prevent concurent ring buffer access
   3617d16a5744 perf/x86/intel/uncore: Use boot_cpu_data.phys_proc_id instead of hardcorded physical package ID 0
   d318ef466d5f perf/core: Fix perf_pmu_unregister() locking
   2f56f220a61e KVM: nVMX: Fix emulation of VM_ENTRY_LOAD_BNDCFGS
   3c81fff77cfd KVM: x86: Do not use kvm_x86_ops->mpx_supported() directly
   82ba86c25383 KVM: nVMX: Do not expose MPX VMX controls when guest MPX disabled
   2dbf48f8ffb3 cfg80211: fix use-after-free in reg_process_hint()
   9069c847f3fe smsc95xx: Check for Wake-on-LAN modes
   4f1268db2975 smsc75xx: Check for Wake-on-LAN modes
   e3935fa141b8 r8152: Check for supported Wake-on-LAN Modes
   e8f4ce7df75e sr9800: Check for supported Wake-on-LAN modes
   35c636108bc4 lan78xx: Check for supported Wake-on-LAN modes
   58d2f3f743a1 ax88179_178a: Check for supported Wake-on-LAN modes
   afc7b1940200 asix: Check for supported Wake-on-LAN modes
   723b7d86877d netfilter: avoid erronous array bounds warning
   8d3156b3c109 netfilter: nft_set_rbtree: add missing rb_erase() in GC routine
   18cb92701a5d rxrpc: Fix error distribution
   4ca2cf672c5b rxrpc: Fix transport sockopts to get IPv4 errors on an IPv6 socket
   1a75026c857a rxrpc: Fix RTT gathering
   6a14d1c9336f rxrpc: Fix checks as to whether we should set up a new call
   605c374d8d70 scsi: qedi: Initialize the stats mutex lock
   aa1945964a7c nl80211: Fix possible Spectre-v1 for CQM RSSI thresholds
   7a9bda693628 qed: Avoid implicit enum conversion in qed_iwarp_parse_rx_pkt
   d627d3b8bed3 qed: Avoid constant logical operation warning in qed_vf_pf_acquire
   02e2aef498f7 qed: Avoid implicit enum conversion in qed_roce_mode_to_flavor
   b65e69499980 qed: Fix mask parameter in qed_vf_prep_tunn_req_tlv
   a2b1a38ad02b qed: Avoid implicit enum conversion in qed_set_tunn_cls_info
   b9e005da34ff pxa168fb: prepare the clock
   6c2222c8f039 Bluetooth: SMP: fix crash in unpairing
   68fd462426c4 mac80211_hwsim: do not omit multicast announce of first added radio
   5b79f65376d3 mac80211_hwsim: fix race in radio destruction from netlink notifier
   a245a12394fe mac80211_hwsim: fix locking when iterating radios during ns exit
   de835e3911a3 nl80211: Fix possible Spectre-v1 for NL80211_TXRATE_HT
   4417f9e05c28 soc: fsl: qe: Fix copy/paste bug in ucc_get_tdm_sync_shift()
   d87e83a55f4b soc: fsl: qbman: qman: avoid allocating from non existing gen_pool
   da5e35d2f776 net: macb: Clean 64b dma addresses if they are not detected
   5499ce65ff9c ARM: dts: BCM63xx: Fix incorrect interrupt specifiers
   a958dc5482c1 arm64: hugetlb: Fix handling of young ptes
   eaab185b06cd netfilter: conntrack: get rid of double sizeof
   044c43754741 netfilter: bridge: Don't sabotage nf_hook calls from an l3mdev
   6b7174a50fb2 drm/i2c: tda9950: set MAX_RETRIES for errors only
   4abac4cf573a drm/i2c: tda9950: fix timeout counter check
   9981ca44ae4b xfrm: validate template mode
   3dc70478360e ARM: 8799/1: mm: fix pci_ioremap_io() offset check
   c473a489d409 xfrm: Fix NULL pointer dereference when skb_dst_force clears the dst_entry.
   53d617654c50 mac80211: fix TX status reporting for ieee80211s
   fd6b693e1d94 mac80211: TDLS: fix skb queue/priority assignment
   a9489521a39c cfg80211: Address some corner cases in scan result channel updating
   2c4739102f0e mac80211: fix pending queue hang due to TX_DROP
   2953d28476c3 cfg80211: reg: Init wiphy_idx in regulatory_hint_core()
   e20c2a6a7144 mac80211: Always report TX status
   c3767729df27 xfrm: reset crypto_done when iterating over multiple input xfrms
   fdb06c787b34 xfrm: reset transport header back to network header after all input transforms ahave been applied
   401979de6e8b xfrm6: call kfree_skb when skb is toobig
   36ad133bf987 xfrm: Validate address prefix lengths in the xfrm selector.
   6b3252287aa2 Linux 4.18.16
   645ad2d5cccc ARC: build: Don't set CROSS_COMPILE in arch's Makefile
   dfed0698a22e ARC: build: Get rid of toolchain check
   d80183541e60 mremap: properly flush TLB before releasing the page
   94d2da5ba1dd Revert "vfs: fix freeze protection in mnt_want_write_file() for overlayfs"
   7fde798123ef x86/boot: Fix kexec booting failure in the SEV bit detection code
   44e564aa4525 iommu/amd: Return devid as alias for ACPI HID devices
   0e963ecefb72 powerpc/numa: Use associativity if VPHN hcall is successful
   4a079f0a5398 powerpc/tm: Avoid possible userspace r1 corruption on reclaim
   8725b910e72d powerpc/tm: Fix userspace r13 corruption
   b0b901600550 pinctrl/amd: poll InterruptEnable bits in amd_gpio_irq_set_type
   0fe04d27b5e3 iommu/rockchip: Free irqs in shutdown handler
   1e23af485f89 RISC-V: include linux/ftrace.h in asm-prototypes.h
   086906d90bae RDMA/bnxt_re: Fix system crash during RDMA resource initialization
   87e75317fe81 clocksource/drivers/fttmr010: Fix set_next_event handler
   323ad7436184 net/mlx4: Use cpumask_available for eq->affinity_mask
   bcb2acdf27b3 bpf: test_maps, only support ESTABLISHED socks
   19e43942cbb7 bpf: sockmap, fix transition through disconnect without close
   60c302b7aea5 bpf: sockmap only allow ESTABLISHED sock state
   019a15f9bd44 scsi: sd: don't crash the host on invalid commands
   6dba1e338b6e scsi: ipr: System hung while dlpar adding primary ipr adapter back
   ce32caf41e53 drm: mali-dp: Call drm_crtc_vblank_reset on device init
   fab5471586f4 scsi: lpfc: Synchronize access to remoteport via rport
   7dc74b2622c2 RDMA/uverbs: Fix validity check for modify QP
   2c93f6f118ad PCI: dwc: Fix scheduling while atomic issues
   1093a05b5828 qed: Do not add VLAN 0 tag to untagged frames in multi-function mode.
   c23f22169cac qed: Fix populating the invalid stag value in multi function mode.
   9bdac39234d0 net/smc: fix sizeof to int comparison
   4b238ea05476 net/smc: fix non-blocking connect problem
   6b7d727a2d18 ravb: do not write 1 to reserved bits
   14bbe1ab20ac net: emac: fix fixed-link setup for the RTL8363SB switch
   66acb86c0905 selftests: pmtu: properly redirect stderr to /dev/null
   6a08cbb10aac Input: atakbd - fix Atari CapsLock behaviour
   ef17628c07da Input: atakbd - fix Atari keymap
   462809659a39 intel_th: pci: Add Ice Lake PCH support
   ee43eeb4d1b9 scsi: ibmvscsis: Ensure partition name is properly NUL terminated
   10ad9dcade4b scsi: ibmvscsis: Fix a stringop-overflow warning
   bb59249268cf clocksource/drivers/ti-32k: Add CLOCK_SOURCE_SUSPEND_NONSTOP flag for non-am43 SoCs
   385ce0611598 cxgb4: fix abort_req_rss6 struct
   413baacefef9 batman-adv: fix hardif_neigh refcount on queue_work() failure
   04125a63ea54 batman-adv: fix backbone_gw refcount on queue_work() failure
   39b0e1c4c79f batman-adv: Prevent duplicated tvlv handler
   c25ae7c479af batman-adv: Prevent duplicated global TT entry
   71d6d75e5801 batman-adv: Prevent duplicated softif_vlan entry
   2d1749b0fab0 batman-adv: Prevent duplicated nc_node entry
   d8ed2b187456 batman-adv: Prevent duplicated gateway_node entry
   eddab21dd463 batman-adv: Fix segfault when writing to sysfs elp_interval
   54231bb59a9a batman-adv: Fix segfault when writing to throughput_override
   52406f34bbb6 batman-adv: Avoid probe ELP information leak
   26c0bac0c117 spi: gpio: Fix copy-and-paste error
   affb1840c578 media: af9035: prevent buffer overflow on write
   1228a75335e0 soundwire: Fix acquiring bus lock twice during master release
   ad9107d7e1c7 soundwire: Fix incorrect exit after configuring stream
   b1bafbe4ff2d soundwire: Fix duplicate stream state assignment
   2724bf10255a Linux 4.18.15
   4a15f8a1de59 KVM: PPC: Book3S HV: Avoid crash from THP collapse during radix page fault
   726c11216e33 i2c: i2c-scmi: fix for i2c_smbus_write_block_data
   a249cdf8fc74 mm: Preserve _PAGE_DEVMAP across mprotect() calls
   7230bb7c98c1 filesystem-dax: Fix dax_layout_busy_page() livelock
   3c3bb028a3b7 mm/thp: fix call to mmu_notifier in set_pmd_migration_entry() v2
   ffa4d6624e1a mm/mmap.c: don't clobber partially overlapping VMA with MAP_FIXED_NOREPLACE
   53abe5164894 arm64: perf: Reject stand-alone CHAIN events for PMUv3
   59d9c7cba4ba pinctrl: mcp23s08: fix irq and irqchip setup order
   3df1331f63cd mmc: block: avoid multiblock reads for the last sector in SPI mode
   7088776eb06a drm/nouveau/drm/nouveau: Grab runtime PM ref in nv50_mstc_detect()
   ca45da09bc32 Input: xpad - add support for Xbox1 PDP Camo series gamepad
   d8408e8fc720 cgroup: Fix dom_cgrp propagation when enabling threaded mode
   012e6bceab53 dm linear: fix linear_end_io conditional definition
   996a427d8683 dm linear: eliminate linear_end_io call if CONFIG_DM_ZONED disabled
   689ba84574c2 dm: fix report zone remapping to account for partition offset
   e725141c0f4e dm cache: destroy migration_cache if cache target registration failed
   d8e15b143e4d s390/cio: Fix how vfio-ccw checks pinned pages
   b51943f088e5 perf script python: Fix export-to-sqlite.py sample columns
   cfb08fb1815f perf script python: Fix export-to-postgresql.py occasional failure
   37e64cb69f0f percpu: stop leaking bitmap metadata blocks
   71cfcc667ffa vsprintf: Fix off-by-one bug in bstr_printf() processing dereferenced pointers
   254754169d9d mach64: detect the dot clock divider correctly on sparc
   e4882348eaa9 MIPS: VDSO: Always map near top of user memory
   baa63c6a5b11 MIPS: Fix CONFIG_CMDLINE handling
   84a397478153 afs: Fix clearance of reply
   b28b1a5f8653 afs: Fix afs_server struct leak
   04473bb7793b mm/vmstat.c: fix outdated vmstat_text
   62aad93f09c1 mm: slowly shrink slabs with a relatively small number of objects
   3792c002b9ff drm/amdkfd: Fix ATS capablity was not reported correctly on some APUs
   c2fd5b21cbd9 drm/amdkfd: Change the control stack MTYPE from UC to NC on GFX9
   2d3966dd95dc drm/amdgpu: Fix SDMA HQD destroy error on gfx_v7
   1c9f357d3ebb x86/kvm/lapic: always disable MMIO interface in x2APIC mode
   5d85d4e0e105 pinctrl: cannonlake: Fix gpio base for GPP-E
   9f8318a1c50c clk: x86: Stop marking clocks as CLK_IS_CRITICAL
   81b8b9dffca8 clk: x86: add "ether_clk" alias for Bay Trail / Cherry Trail
   b25a8dd9895b PCI: hv: support reporting serial number as slot information
   aed5429279f8 ARM: dts: at91: add new compatibility string for macb on sama5d3
   ee62a5d3ea8a net: macb: disable scatter-gather for macb on sama5d3
   53035808c294 net: ethernet: ti: add missing GENERIC_ALLOCATOR dependency
   8be050c4011b hwmon: (nct6775) Use different register to get fan RPM for fan7
   1d753e689276 stmmac: fix valid numbers of unicast filter entries
   d8eeee24ced8 hwmon: (nct6775) Fix RPM output for fan7 on NCT6796D
   510dc356ff2c hwmon: (nct6775) Fix virtual temperature sources for NCT6796D
   4dc76c13f297 bpf: use __GFP_COMP while allocating page
   d2440a0b0672 bpf: btf: Fix end boundary calculation for type section
   aeaca3563bea sound: don't call skl_init_chip() to reset intel skl soc
   9761976f8e01 sound: enable interrupt after dma buffer initialization
   a1d77f9cd10a scsi: qla2xxx: Fix an endian bug in fcpcmd_is_corrupted()
   9ac4572a7374 scsi: iscsi: target: Don't use stack buffer for scatterlist
   970f5df113b1 KVM: PPC: Book3S HV: Don't use compound_order to determine host mapping size
   ba73c6ed5010 mfd: omap-usb-host: Fix dts probe of children
   e7c4c41389ff Bluetooth: hci_ldisc: Free rw_semaphore on close
   0d95a3d1fcf6 Bluetooth: Use correct tfm to generate OOB data
   3194c412f471 Bluetooth: SMP: Fix trying to use non-existent local OOB data
   5421ce8b59bc drm/pl111: Make sure of_device_id tables are NULL terminated
   d0200873bc9c ASoC: AMD: Ensure reset bit is cleared before configuring
   5d1a5a5eed92 Fix cg_read_strcmp()
   636dd4536009 hwmon: (nct6775) Fix access to fan pulse registers
   59fcb2491ca0 ASoC: rsnd: don't fallback to PIO mode when -EPROBE_DEFER
   ee3953f7b81c ASoC: rsnd: adg: care clock-frequency size
   b7bad669da54 selftests: memory-hotplug: add required configs
   9a90b9e380c5 selftests/efivarfs: add required kernel configs
   40299ec565fa selftests: add headers_install to lib.mk
   36a89768d19f ASoC: q6routing: initialize data correctly
   64458ca97124 ASoC: sigmadsp: safeload should not have lower byte limit
   4a7f15b6d5fa ASoC: wm8804: Add ACPI support
   55261a2cddb5 ASoC: max98373: Added 10ms sleep after amp software reset
   686da99baa28 selftests: kselftest: Remove outdated comment
   6a4d1b70e323 selftests: android: move config up a level
   334411face5a ASoC: rt5514: Fix the issue of the delay volume applied again
   e4c577698c7c ASoC: max98373: Added speaker FS gain cotnrol register to volatile.
   6e6b32ed0413 ASoC: dapm: Fix NULL pointer deference on CODEC to CODEC DAIs
   ffac8fa2bee5 vxlan: fill ttl inherit info
   241e5a13a5ad r8169: set RX_MULTI_EN bit in RxConfig for 8168F-family chips
   87441df1e19e r8169: fix network stalls due to missing bit TXCFG_AUTO_FIFO
   761ea5beff71 qed: Fix shmem structure inconsistency between driver and the mfw.
   6133d8e499e6 net: mscc: fix the frame extraction into the skb
   d29a558b56ee net/ipv6: stop leaking percpu memory in fib6 info
   e3827b9bc3ba net/ipv6: Remove extra call to ip6_convert_metrics for multipath case
   47049f54f89d bnxt_en: get the reduced max_irqs by the ones used by RDMA
   dce53396b52d bnxt_en: Fix enables field in HWRM_QUEUE_COS2BW_CFG request
   23631aa634ef net/mlx5: Check for SQ and not RQ state when modifying hairpin SQ
   6691a126ed63 net: ipv4: don't let PMTU updates increase route MTU
   530a9463cbe6 bnxt_en: Fix VNIC reservations on the PF.
   5d4fe8e6344b rtnetlink: Fail dump if target netnsid is invalid
   36298c66d8dc net: dsa: b53: Keep CPU port as tagged in all VLANs
   efef3f2073d1 inet: make sure to grab rcu_read_lock before using ireq->ireq_opt
   9fd4b0122ac3 tcp/dccp: fix lockdep issue when SYN is backlogged
   54d72415f8b2 sfp: fix oops with ethtool -m
   24205e4e62dd net: phy: phylink: fix SFP interface autodetection
   37b309773a67 net-ethtool: ETHTOOL_GUFO did not and should not require CAP_NET_ADMIN
   2402fbb7aa01 bnxt_en: don't try to offload VLAN 'modify' action
   f219cd971281 nfp: avoid soft lockups under control message storm
   2b4588d75b89 net: stmmac: Rework coalesce timer and fix multi-queue races
   8f389cd37d10 bonding: fix warning message
   5fb48fe95e41 bonding: pass link-local packets to bonding master also.
   92a2a40c876f net/mlx5: E-Switch, Fix out of bound access when setting vport rate
   02e16d375ee6 net: aquantia: memory corruption on jumbo frames
   6db3fc2839be net/mlx5e: Set vlan masks for all offloaded TC rules
   42296a164196 net: dsa: bcm_sf2: Fix unbind ordering
   53afeb0b222b net/packet: fix packet drop as of virtio gso
   75ebeb2e6a60 net: stmmac: Fixup the tail addr setting in xmit path
   0c5eff9c2cf2 tun: napi flags belong to tfile
   d013c6b952f0 tun: initialize napi_mutex unconditionally
   7d96410f397b tun: remove unused parameters
   095a5309c6c6 net: qualcomm: rmnet: Fix incorrect allocation flag in receive path
   9db5df4c92dd net: qualcomm: rmnet: Fix incorrect allocation flag in transmit
   3283c92e91f7 net: qualcomm: rmnet: Skip processing loopback packets
   3ab83c6a1fb4 udp: Unbreak modules that rely on external __skb_recv_udp() availability
   4f6017d6ef53 tipc: fix flow control accounting for implicit connect
   0240ca1b11d3 team: Forbid enslaving team device to itself
   375c63d4a70c sctp: update dst pmtu with the correct daddr
   2ac4b03c0fcc rtnl: limit IFLA_NUM_TX_QUEUES and IFLA_NUM_RX_QUEUES to 4096
   5369306f960f rtnetlink: fix rtnl_fdb_dump() for ndmsg header
   7f4a4fa5fa58 qmi_wwan: Added support for Gemalto's Cinterion ALASxx WWAN interface
   cbf2e16dd724 qlcnic: fix Tx descriptor corruption on 82xx devices
   0993dc028ed2 net/usb: cancel pending work when unbinding smsc75xx
   a308452e12c0 net: systemport: Fix wake-up interrupt race during resume
   6da1bd2d008f net: sched: cls_u32: fix hnode refcounting
   57ad6586fd57 net: sched: Add policy validation for tc attributes
   94d93e549eb1 net: mvpp2: fix a txq_done race condition
   ac521a40054c net: mvpp2: Extract the correct ethtype from the skb for tx csum offload
   dbbae2c07809 netlabel: check for IPV4MASK in addrinfo_get
   e4a00db35924 net/ipv6: Display all addresses in output of /proc/net/if_inet6
   ff34695ced21 net: ipv4: update fnhe_pmtu when first hop's MTU changes
   87d57bb87dd8 net: hns: fix for unmapping problem when SMMU is on
   1ae21378ab43 net: dsa: bcm_sf2: Call setup during switch resume
   08e8e22b6d3a ipv6: take rcu lock in rawv6_send_hdrinc()
   18ea575f665d ipv4: fix use-after-free in ip_cmsg_recv_dstaddr()
   fa111ec2d2c5 ip_tunnel: be careful when accessing the inner header
   84b262a5a008 ip6_tunnel: be careful when accessing the inner header
   1b420a9999f0 bonding: avoid possible dead-lock
   2fc26dfba49d bnxt_en: free hwrm resources, if driver probe fails.
   f462adcb0638 bnxt_en: Fix TX timeout during netpoll.

(From OE-Core rev: 9c7770cf622571b7e8ba0f3447323bcf777b5486)

(From OE-Core rev: e778de28d83637c08e538f42fb24acbe8cb24d4b)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-01-08 20:14:43 +00:00
Bruce Ashfield
e662a84379 linux-yocto/4.18: bug fixes and configuration tweaks
Integrating the following commits:

  2ba9a28434f8 netfilter: use kvmalloc_array to allocate memory for hashtable
  6e1fae5d233a ipv4: net namespace does not inherit network configurations

As well as the following configuration changes:

  ed1978c99214 features/module-signing: add new feature
  a28fd4843381 edac: Drop CONFIG_EDAC_MM_EDAC and add dependency
  8ae63963256e xfs: add xfs support

(From OE-Core rev: d88ce948ff2c910e796b78be388bec9578f6eb9c)

(From OE-Core rev: 13aa70bbcd508816dd9452a86afd2e198bc1841d)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-01-08 20:14:43 +00:00
Bruce Ashfield
5114d69d95 linux-yocto/tiny: restore qemuarm support
qemuarm-tiny support was added to the 4.15 linux-yocto kernel, and
was incorrectly dropped from 4.18.

This restores the support for out of the box builds in 4.18+.

(From OE-Core rev: bd066bf4aa47b6ca37fbeb4ac4909d75a8a1e285)

(From OE-Core rev: 4d84095d30e7b2c525622b4bc01226306833a8a7)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-01-08 20:14:43 +00:00
Bruce Ashfield
0e75cee6fb linux-yocto/tiny: switch default branch to standard/tiny/base
The default KBRANCH for building -tiny should not be machine specific.
In fact, the SRCREVs that have been in place for -tiny have been using
the hashes from tiny/base for some time, but since the machine specific
branches all contain that hash, the mismatch hasn't been spotted.

Setting the default branch to standard/tiny/base makes sure that the
default branch and SRCREVs always match.

(From OE-Core rev: dc11aab60e7561d764c56808277b47e7bb40c6c0)

(From OE-Core rev: 7e11000c348175aabc60cf65d07e61b24d24d396)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-01-08 20:14:43 +00:00
Bruce Ashfield
18ac0e2cee linux-yocto/4.18: -rt sync and config cleanups
Integrating the following -rt patches:

  cab37ca8426b rt: update localversion to match latest content
  186274b2b6dc tty: serial: pl011: explicitly initialize the flags variable
  ac121b7124a0 mm/kasan: make quarantine_lock a raw_spinlock_t
  6100773500e7 watchdog: prevent deferral of watchdogd wakeup on RT
  ce594291c4eb kthread: convert worker lock to raw spinlock

And the following configuration tweaks:

  e39413ec2bdd sound.cfg: enable SND_SOC_INTEL_SKYLAKE

(From OE-Core rev: a757e0638e8411fe6b4c58f3840ee27d49feb97e)

(From OE-Core rev: f2a881c7db339166f8fd5f21db38b7d30fbf3ec4)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-01-08 20:14:43 +00:00
Bruce Ashfield
7f3ee480cd linux-yocto/4.14: configuration cleanups
Integrating the following configuration cleanups/tweaks:

 19c174f547e6 sound.cfg: enable SND_SOC_INTEL_SKYLAKE explicitly

(From OE-Core rev: bd754dbf1f0c8ba7a77e720cbc30232712ee34e0)

(From OE-Core rev: f0dba9b17492b45f9362b2f37bd08f45eb160f4d)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-01-08 20:14:43 +00:00
Bruce Ashfield
d4326022ba linux-yocto: remove obselete options from lxc config
The lxc config fragments have some options that are no long valid. So we
can safely drop them.

  721f3cfcb199 lxc: drop CONFIG_MM_OWNER
  3b5f717d0311 vfio: drop CONFIG_KVM_DEVICE_ASSIGNMENT

(From OE-Core rev: b7ddaeab2c48b68e2be24c8f810ac9e84c6bb171)

(From OE-Core rev: 4dd28e8426abcd8520bcecdac13fed655a3c6d17)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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-01-08 20:14:43 +00:00
Eric Chanudet
910cdcc764 licence: Add license file CC-BY-SA-4.0
Original legalcode.txt:
https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt

(From OE-Core rev: fa06fcce7942f5960178dcdeb61a7b659f7f8207)

(From OE-Core rev: 7e53f67d2d94d6811aa9d6fa078ea3fbeddb708c)

Signed-off-by: Eric Chanudet <chanudete@ainfosec.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-01-08 20:14:43 +00:00
Ross Burton
14c767243b piglit: add missing waffle-bin dependency
The sanity test uses wflinfo, so depend on waffle-bin.

(From OE-Core rev: 0f5c8ce010a296904f767f38e262eef251417c4e)

(From OE-Core rev: 75e8193ae708e5dba9888e098c05c6435a77cc2e)

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-01-08 20:14:43 +00:00
Ross Burton
c8e72df9f1 binconfig: only try to mangles files
If a file matches the glob that is an absolute symlink then sed will try to
alter files on the host, so restrict the search to just actual files.

(From OE-Core rev: 5556b5ca9efac132754bd82af52a0f68bc4ce85a)

(From OE-Core rev: 3d148218387e968dbf2d3d587329b37d22d7d19e)

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-01-08 20:14:43 +00:00
Alexander Kanavin
e09515d282 libc-package: fix postinst error when ENABLE_BINARY_LOCALE_GENERATION = "0"
[YOCTO #13028]

(From OE-Core rev: f630da64b010795482e013362c3fe184dcbd8d25)

(From OE-Core rev: 29759c2c3b4d97c835740a7f233b8e8f7b4570a1)

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-01-08 20:14:43 +00:00
Alejandro Enedino Hernandez Samaniego
8bfb94cc9f python: Adds instructions to the manifest file
While there is a bit of documentation regarding building a new
manifest file for python, it seems that users usually only read
the manifest file.

The manifest file is in JSON format which doesn't allow comments,
hence why instructions were initially put elsewhere.

This patch hacks the call to open the JSON manifest file by using a
marker to trick it into reading only part of the file as the manifest
itself, and keep the other part as comments, which contain instructions
for the user to run the create_manifest task after an upgrade or
when adding a new package.

(From OE-Core rev: 5641a24a70b54544012c04c6a082514d9a5aa49a)

(From OE-Core rev: 3050a4c634da74eba53380bf23de515ed651bc03)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.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>
2019-01-08 20:14:43 +00:00
Ross Burton
72c040ef58 libtasn1: no need to inherit binconfig
This recipe doesn't ship a *-config binary, so don't inherit binconfig.

(From OE-Core rev: 8b7d74aa7bb73daf84593fafde3eef4595918b63)

(From OE-Core rev: 8fd1b5fb464a3b72c94dffb3535e244b72c18b02)

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-01-08 20:14:43 +00:00
Ross Burton
f3205c7e24 image_types: use cpio-native to build cpio images
As per the previous commit, upstream cpio has a bug which means it crashes on
append. If the image being built has already had testimage ran then cpio-native
will be in the sysroot.  It's also possible that some distributions are shipping
this broken CVE patch too.

Now that our cpio-native is fixed, until we can be sure that the host cpio isn't
broken depend on cpio-native if building a cpio image.

[ YOCTO #13042 ]

(From OE-Core rev: c3b9aedcbe538d7fa74bd814644b4899769dec46)

(From OE-Core rev: a75eba71145efa1c3d206c5e5c00608a50f013bc)

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-01-08 20:14:43 +00:00
Ross Burton
cfee41c482 cpio: fix crash when appending to archives
The upstream fix for CVE-2016-2037 introduced a read from uninitialized memory
bug when appending to an existing archive, which is an operation we perform when
building an image.

(From OE-Core rev: 046e3e1fca925febf47b3fdd5d4e9ee2e1fad868)

(From OE-Core rev: 2ff6ab2e2944c6a53523b4b1611e1d22f6393500)

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-01-08 20:14:43 +00:00
Richard Purdie
f5a6daefa7 meta-selftest/error: Cleanup large trailing whitespace
(From OE-Core rev: 0772b6de9dfbb276845c0a08ebcce41896b8056e)

(From OE-Core rev: 9037102e38e55a47102660daa274db544a79463f)

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-01-08 20:14:43 +00:00
Mingli Yu
06558e8263 nspr: improve reproducibility
Remove _BUILD_STRING and _BUILD_TIME in _pl_bld.h
to avoid introducing timestamp in the .so library
such as libnspr4.so as below:
 $ readelf --wide --decompress --hex-dump=.rodata libnspr4.so
 [snip]
  0x00004000 32303138 2d31312d 31352030 353a3439 2018-11-15 05:49
 [snip]

[YOCTO #12639]

(From OE-Core rev: a3ca6272845c33f48430210470f133034ad8399d)

(From OE-Core rev: af18be423ead8a5aabf29dcf2fa5fcb874edd24d)

Signed-off-by: Mingli Yu <Mingli.Yu@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-01-08 20:14:43 +00:00
Hongxu Jia
19627f0f0f ghostscript: 9.25 -> 9.26
- Drop backported CVE fixes
  000[1-8]*.patch

(From OE-Core rev: f30bd6bf01dbf81f0872382be44d507fb981f953)

(From OE-Core rev: c62b64e771eb27089738a153ee61d34cdf6441ab)

Signed-off-by: Hongxu Jia <hongxu.jia@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-01-08 20:14:43 +00:00
Richard Purdie
cefe82c765 scripts/runqemu: Fix logic error causing failures with MACHINE from the environment
MACHINE=qemux86-64 oe-selftest -r runqemu.RunqemuTests.test_boot_machine_slirp_qcow2

fails yet

oe-selftest -r runqemu.RunqemuTests.test_boot_machine_slirp_qcow2

with MACHINE in local.conf would work.

It turns out that:

runqemu slirp wic.qcow2 qemux86-64

works but:

MACHINE=qemux86-64 runqemu slirp wic.qcow2 qemux86-64

does not.

The reason are the misplaced return statements in runqemu, its skipping a block
of logic when MACHINE is set in the environment when it shouldn't. Fix this.

(From OE-Core rev: 98d113ae52cbbc88773a81a17b0933412a8e463b)

(From OE-Core rev: bf2ae1ca01edf02a930d70e50b8e1e71f7ec2237)

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-01-08 20:14:43 +00:00
Anuj Mittal
6806965405 gst-validate: upgrade 1.14.2 -> 1.14.4
(From OE-Core rev: 21387613fec1a8c142ed48d7a74d587e205b0c98)

(From OE-Core rev: 1d753f62d3e09cac92aadffc45992a04b95f0396)

Signed-off-by: Anuj Mittal <anuj.mittal@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-01-08 20:14:43 +00:00
Anuj Mittal
aa22459112 gstreamer1.0-python: upgrade 1.14.3 -> 1.14.4
(From OE-Core rev: 454129a0dc8eabb53753f9d416cf7271c796acf4)

(From OE-Core rev: 3f54c23c0ebed00de72d395c2718a6a86f13f3ef)

Signed-off-by: Anuj Mittal <anuj.mittal@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-01-08 20:14:43 +00:00
Anuj Mittal
499c3f1b18 gstreamer1.0-omx: upgrade 1.14.3 -> 1.14.4
(From OE-Core rev: 9b613f029490a3540492393206be004b649c0806)

(From OE-Core rev: 4f431f740186a2d5ab8cc0f592f6d8e908411637)

Signed-off-by: Anuj Mittal <anuj.mittal@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-01-08 20:14:43 +00:00
Anuj Mittal
f1273ebf04 gstreamer1.0-rtsp-server: upgrade 1.14.3 -> 1.14.4
(From OE-Core rev: 8a73dc7da63bbd3c57bde2a3733d172d784e5f46)

(From OE-Core rev: 1c010f3162cfd2047ce7e2df19423fd30aa87043)

Signed-off-by: Anuj Mittal <anuj.mittal@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-01-08 20:14:43 +00:00
Anuj Mittal
ca9b96c55e gstreamer1.0-vaapi: upgrade 1.14.3 -> 1.14.4
(From OE-Core rev: 9caacfe4c3ef92f3701f24ff3c924f50adb5f9de)

(From OE-Core rev: 7fbf1dbacb7a55ac5b1b34bff01f485a88a05cd0)

Signed-off-by: Anuj Mittal <anuj.mittal@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-01-08 20:14:43 +00:00
Anuj Mittal
75edf19b26 gstreamer1.0-libav: upgrade 1.14.3 -> 1.14.4
(From OE-Core rev: 14370389a50bda84eee7b3a024709fd43fc7c5aa)

(From OE-Core rev: b6d44a2acb3ce38932f43cfe9ae72bd0501d62d8)

Signed-off-by: Anuj Mittal <anuj.mittal@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-01-08 20:14:43 +00:00
Anuj Mittal
6ea3ee45c8 gstreamer1.0-plugins-ugly: upgrade 1.14.3 -> 1.14.4
(From OE-Core rev: d1e5c9b85f980e747c9d6c5682448e0756bd25cd)

(From OE-Core rev: 85717f65cec20275d50d88228e087d2ed4d32daf)

Signed-off-by: Anuj Mittal <anuj.mittal@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-01-08 20:14:43 +00:00
Anuj Mittal
f0da07d5ec gstreamer1.0-plugins-bad: upgrade 1.14.3 -> 1.14.4
(From OE-Core rev: 74d9bd02f41d555317eef6b82e94f351ffc61529)

(From OE-Core rev: d91ae9f5bf03c4880510093da5fc621b95d069c9)

Signed-off-by: Anuj Mittal <anuj.mittal@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-01-08 20:14:43 +00:00
Anuj Mittal
c85578d5c8 gstreamer1.0-plugins-good: upgrade 1.14.3 -> 1.14.4
(From OE-Core rev: adeec11d875a5603bd64b9bfb888da5cdb7631e5)

(From OE-Core rev: 76ac5c6154e0f6531b3a35ad7d460e606d54f16f)

Signed-off-by: Anuj Mittal <anuj.mittal@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-01-08 20:14:43 +00:00
Anuj Mittal
11e16fcf37 gstreamer1.0-plugins-base: upgrade 1.14.3 -> 1.14.4
(From OE-Core rev: 868059f052547a73e428fe8d4066dc4412e29478)

(From OE-Core rev: e6aa515e0e7f70a791f032fb4a25ec9f8729b08e)

Signed-off-by: Anuj Mittal <anuj.mittal@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-01-08 20:14:43 +00:00
Anuj Mittal
7ab39b34cf gstreamer1.0: upgrade 1.14.3 -> 1.14.4
This release only contains bugfixes and it should be safe to update from
1.14.x.

Release notes:

https://gstreamer.freedesktop.org/releases/1.14/

(From OE-Core rev: 4286f191c4b10cf5f3a14ed391902a11a9d61a09)

(From OE-Core rev: 4dbc8e765f58aa24d148b7d2cbf87f14755d412b)

Signed-off-by: Anuj Mittal <anuj.mittal@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-01-08 20:14:43 +00:00
Anuj Mittal
bdb6d5e51c gst-plugins-bad: add PACKAGECONFIG for msdk
gst-msdk is a plugin for Intel Media SDK. More details:

https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/sys/msdk/README

(From OE-Core rev: c138fa26dde7fca5b366ab69bac84359ebbd0fd7)

(From OE-Core rev: aff1dc73ef17cb26eea1428b2ade0bae566711c9)

Signed-off-by: Anuj Mittal <anuj.mittal@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-01-08 20:14:43 +00:00
Carlos Rafael Giani
e215480cff gstreamer1.0-python: upgrade to version 1.14.3
(From OE-Core rev: 750e03a231eb3bcf31c30cf67ff80a6bc821ee66)

(From OE-Core rev: 5220cda51a22536f2d64a655ffeecd756d042dc5)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
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-01-08 20:14:43 +00:00
Carlos Rafael Giani
a1130dca9c gstreamer1.0-omx: upgrade to version 1.14.3
(From OE-Core rev: ea4882b89500d9da8d7a731968ea7a311737f6ea)

(From OE-Core rev: cce309ad98133c30cb2ab086bad4851e9833bd84)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
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-01-08 20:14:43 +00:00
Carlos Rafael Giani
f193f12407 gstreamer1.0-vaapi: upgrade to version 1.14.3
(From OE-Core rev: c3d863f4f989461c61e7d61259423fe0e8202eed)

(From OE-Core rev: 70032101535a4430a1f9233ec7d730cc1ce88e28)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
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-01-08 20:14:42 +00:00
Carlos Rafael Giani
91c987bda1 gstreamer1.0-rtsp-server: upgrade to version 1.14.3
(From OE-Core rev: f62a87b3c6638c6da764d19133eba552f2102bae)

(From OE-Core rev: 0217240ceab31732405d452eebabf908ac1737aa)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
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-01-08 20:14:42 +00:00
Carlos Rafael Giani
0d7fc933c2 gstreamer1.0-libav: upgrade to version 1.14.3
(From OE-Core rev: 4508d6f0befb1b91f9cfe74b0ca84c8fb5f79da5)

(From OE-Core rev: 0bdcc3761d87137b6b706856fb135c55f5fc45f3)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
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-01-08 20:14:42 +00:00
Carlos Rafael Giani
2402547c97 gstreamer1.0-plugin-ugly: upgrade to version 1.14.3
(From OE-Core rev: aedec50bc8fb2ddcd1ea7cadbdd07f9d103840aa)

(From OE-Core rev: e8d3087ddd782d40ac0ea93024b4e07c58e937b5)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
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-01-08 20:14:42 +00:00
Carlos Rafael Giani
d488e8c03b gstreamer1.0-plugin-bad: upgrade to version 1.14.3
(From OE-Core rev: 22e124ef0b01c3aae75e8e29a3078cb42a47ae17)

(From OE-Core rev: da106910ac04d9bc215378a8b681d2286ab45755)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
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-01-08 20:14:42 +00:00
Carlos Rafael Giani
d28d537a54 gstreamer1.0-plugin-good: upgrade to version 1.14.3
(From OE-Core rev: 63753e9c06641025ba4711af61a4f34e2388ec72)

(From OE-Core rev: b601bde71de9270a6b64112ac128e5178004f65a)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
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-01-08 20:14:42 +00:00
Carlos Rafael Giani
9299827d5b gstreamer1.0-plugin-base: upgrade to version 1.14.3
(From OE-Core rev: df2a0fd27a23ece636c018d007e2dcf9343fb7a8)

(From OE-Core rev: 3396554efc6853949039090dce56bd26ec1a932c)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
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-01-08 20:14:42 +00:00
Carlos Rafael Giani
0fee785a13 gstreamer1.0: upgrade to version 1.14.3
(From OE-Core rev: fb840932018cb449ee96904b8a2f17e7693a5669)

(From OE-Core rev: 96442dab95a24d8716d12cf1e8fce3921a600d55)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
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-01-08 20:14:42 +00:00
Anuj Mittal
99c989b250 maintainers.inc: update Intel owners
(From OE-Core rev: 198fe6d08f000b3db9082b5fd4337536931719ee)

(From OE-Core rev: a7be891dde68225bd037d4ae1c9f81e6920037ce)

Signed-off-by: Anuj Mittal <anuj.mittal@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-01-08 20:14:42 +00:00
Adrian Freihofer
6fa338d15e devtool: fix target-deploy --strip
This is a fixup for: e1ba46109e

devtool deploy-target --strip foo root@192.168.7.2
ended up with:
Traceback (most recent call last):
  File "/home/user/bar_sdk/sysroots/x86_64-pokysdk-linux/usr/bin/
        devtool", line 344, in <module>
   ret = main()
  File "/home/user/bar_sdk/sysroots/x86_64-pokysdk-linux/usr/bin/
        devtool", line 331, in main
    ret = args.func(args, config, basepath, workspace)
  File "/home/user/bar_sdk/layers/poky/scripts/lib/devtool/
        deploy.py", line 187, in deploy
    rd.getVar('base_libdir'))
TypeError: strip_exbar() missing 1 required positional argument: 'd'

(From OE-Core rev: bc349b2d99d74f6d7fb590fd97750e5ff8d6e6c4)

(From OE-Core rev: fc5cd4b4b17fc932b987f66cbfc002345ee694b6)

Signed-off-by: Adrian Freihofer <adrian.freihofer@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-01-08 20:14:42 +00:00
Kai Kang
117da4d473 multilib_script: fix packages split
In multilib_script.bbclass it renames script file which listed in
MULTILIB_SCRIPTS. It may mix up packages split. Take package curl as
example, ${bindir}/curl-config is packaged to curl-dev originally. But
it is renamed to curl-config-${MULTILIB_SUFFIX} and packaged to curl
when multilib is enabled.

And expand 'pkg' to fix QA warning:

| WARNING: Variable key FILES_${PN}-dev (
| ${bindir}/curl-config-${MULTILIB_SUFFIX}) replaces original key
| FILES_curl-dev (${includedir} ${FILES_SOLIBSDEV} ... ${bindir}/*-config)

Insert a necessary space to the argument 'value' of d.appendVar() as well.

(From OE-Core rev: 841bcbe429dcab54de3b89a927394750f9ccae60)

(From OE-Core rev: de222b08fbcc46f60da811a5542d20a9346c32df)

Signed-off-by: Kai Kang <kai.kang@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-01-08 20:14:42 +00:00
Adrian Freihofer
e92d3cfbb4 systemd: fix PN-container package splitting
- Fix package splitting for services installed with
  systemd-container. Some files have been installed with systemd
  package instead of systemd-container package. (*.service,
  *.socket, *.html...)
- Split journal-upload, journal-remote, journal-gatewayd into
  separate packages. These services are not strictly related to
  nspawn containers. Remote logging is now possible without
  installing all the container stuff.
- systemd-container package rrecommends journal-upload, journal-
  remote, journal-gatewayd packages.

(From OE-Core rev: d31ff84a5f4723700ed48fd14ace81d3c707065e)

(From OE-Core rev: 44f552c93f7053794289c0bc8cf1defadb8a6a06)

Signed-off-by: Adrian Freihofer <adrian.freihofer@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-01-08 20:14:42 +00:00
Adrian Bunk
b68c73127e archiver.bbclass: Fix COPYLEFT_LICENSE_{IN, EX}CLUDE
Setting them to empty before inheriting copyleft_filter
made them not getting their documented values there.

(From OE-Core rev: ee1f86ca7affc65265f219f0718f89406c9181a5)

(From OE-Core rev: b5586a83155e07b0c7a7e82568c18f5e29eaaed2)

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>
2019-01-08 20:14:42 +00:00
Alexander Kanavin
e4694ebda6 openssl: update to 1.1.1a
(From OE-Core rev: eec95f90093a6aa1d8be145e351fc9df4abef172)

(From OE-Core rev: c9909ff8b5134d77d9ae5f205f863fcdab7b9fd0)

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-01-08 20:14:42 +00:00
Ming Liu
d1138c618c image.bbclass: fix a wrong position blank
A flaw was introduced by commit c5fa6034:
[ image.bbclass: use prependVarFlag for postfuncs ]

it changed to use prependVarFlag instead of appendVarFlag, then the
blank also needs change to adapt it.

(From OE-Core rev: 6085023158ffbfbaf0f3d65ef18054c003d3f463)

(From OE-Core rev: 0e62a5a6e2d3c453dc7e970fd497e050a9e17c7a)

Signed-off-by: Ming Liu <liu.ming50@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-01-08 20:14:42 +00:00
Mingli Yu
cc4ce7db19 mdadm: improve the run-ptest
* There are 120+ cases under ${libdir}/mdadm/ptest/tests,
  but the test will break if one test fails as
  below logic in run-ptest.
  ./test &>./test.log

  That's to say, the tests after the failed test
  have no chance to run with the current logic.

  To guarantee all the tests can run even one
  of the tests fails, the option --keep-going
  should be added.

* Refactor the test report to make the report
  more detailed and more common

(From OE-Core rev: 80d17497b719efb2ca9f36b8a730815547e93aa7)

(From OE-Core rev: 1b84064b15022a0834d7f443a8d6bde7f4cfeb6d)

Signed-off-by: Mingli Yu <Mingli.Yu@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-01-08 20:14:42 +00:00
Peter Kjellerstedt
f48d96e4df meson: Correct use of the _append operator
The value to SRC_URI_append_class-native was not prefixed with a space.
This was not noticed as the SRC_URI before applying the _append contains
trailing spaces. However, if one, e.g., has a .bbappend and adds to the
SRC_URI using SRC_URI += "file://foo.patch", then there no longer is any
trailing space and the _append concatenates the two URIs together,
leading to a build failue.

(From OE-Core rev: c07ee11e99dfe28405a7225903a541b33aeb1de6)

(From OE-Core rev: 53594c9fd01f7bd02e24aa82a5bd3a14d3dd465e)

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-01-08 20:14:42 +00:00
Richard Purdie
b55b254f4e meson: Disable rpath stripping at install time
As discussed in https://github.com/mesonbuild/meson/issues/2567 there
needs to be a way to allow our rpath options passed to the linker to be
preserved, else we run into weird build failures.

(e.g. libmodulemd-native used by libdnf can't find libyaml)

Disable this for now until upstream come up with a better way of handling
this.

(From OE-Core rev: b4e36281631e0b59d1058f5cf391eb8b15e605cf)

(From OE-Core rev: 98a76c3171f9080d6246aac0188ef05c40852adc)

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-01-08 20:14:42 +00:00
Alexander Kanavin
1cfa86d80f meson: do not manipulate the environment when looking for python via pkg-config
meson does it in a way that breaks oe builds (they export a bunch of PKG_CONFIG_ variables)

(From OE-Core rev: f071c5eb0a46b8ac5424c5baeb471a8080d4a078)

(From OE-Core rev: d5f1211b0820d5039ecec932fda92cbe1ba9132e)

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-01-08 20:14:42 +00:00
Changhyeok Bae
b4e664db71 ethtool: 4.17 -> 4.19
(From OE-Core rev: 565bbbf43da14de466fccdfaa259bdb9b50b686e)

(From OE-Core rev: 4bcacd05428498158ae2fedc11bf4d6f11824967)

Signed-off-by: Changhyeok Bae <changhyeok.bae@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-01-08 20:14:42 +00:00
Changhyeok Bae
34a2953a95 iproute2: 4.18.0 -> 4.19.0
(From OE-Core rev: b5acefc041b2316c75eefae745d894412ac7bd78)

(From OE-Core rev: 875ebdcaf479b38f7564d68f1530de08e50f8ba8)

Signed-off-by: Changhyeok Bae <changhyeok.bae@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-01-08 20:14:42 +00:00
Robert Yang
90e0658f2e sstate.bbclass: Only remove sstate file when task is existed
This can improve the performance a lot for "bitbake <recipe-native/cross/crosssdk>
-ccleansstate" when there are a lot of sstate files.

For example:
* Before
  $ bitbake quilt-native -ccleansstate
  - Check log.do_cleansstate:
  Removing /sstate-cache/*/*/sstate:quilt-native:x86_64-linux:0.65:r0:x86_64:3:*_package.tgz*
  Removing /sstate-cache/*/*/sstate:quilt-native:x86_64-linux:0.65:r0:x86_64:3:*_package_qa.tgz*
  Removing /sstate-cache/*/*/sstate:quilt-native:x86_64-linux:0.65:r0:x86_64:3:*_package_write_rpm.tgz*
  Removing /sstate-cache/*/*/sstate:quilt-native:x86_64-linux:0.65:r0:x86_64:3:*_packagedata.tgz*
  Removing /sstate-cache/*/sstate:quilt-native::0.65:r0::3:*_populate_lic.tgz*
  Removing /sstate-cache/*/*/sstate:quilt-native:x86_64-linux:0.65:r0:x86_64:3:*_populate_sysroot.tgz*

  There are no package tasks for quilt-native, so the first 4 lines doesn't
  make any sense, but the glob pattern "sstate-cache/*/*" is very time
  consuming when there are no disk caches. E.g., I have more than 600,000
  sstate files:
  - Without disk caches
  # echo 3 >/proc/sys/vm/drop_caches
  $ time python3 -c 'import glob; glob.glob("/sstate-cache/*/*/sstate:quilt-native:x86_64-linux:0.65:r0:x86_64:3:*_package.tgz*")'
    real    4m32.583s
    user    0m5.768s
    sys     0m12.892s

  - With disk caches (e.g., run it in the second time)
  $ time python3 -c 'import glob; glob.glob("/sstate-cache/*/*/sstate:quilt-native:x86_64-linux:0.65:r0:x86_64:3:*_package.tgz*")'
    real    0m5.128s
    user    0m2.772s
    sys     0m2.308s

  So the 4 removing *package* commands cost more than 20s or 272s in theory.

* After
  $ bitbake quilt-native -ccleansstate
  - Check log.do_cleansstate:
  Removing /sstate-cache/*/sstate:quilt-native::0.65:r0::3:*_populate_lic.tgz*
  Removing /sstate-cache/*/*/sstate:quilt-native:x86_64-linux:0.65:r0:x86_64:3:*_populate_sysroot.tgz*

  We can see that it saved 20s or 272s in theory.

(From OE-Core rev: bb2d6349ea87f090c58001f0d4348b24c2982cde)

(From OE-Core rev: aa35fbeb995b62523d44c8fad17f67d9852c594f)

Signed-off-by: Robert Yang <liezhi.yang@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-01-08 20:14:42 +00:00
Robert Yang
037a69934c bugzilla.bbclass: Remove it since obsoleted
It is a still python2 bbclass, so it has been broken since bitbake changed to
python3 which was 2 years ago. No one reported/fixed it for python3 in recent 2
years. So we can assume that no one uses it anymore.

(From OE-Core rev: 7f6da5fb54cbcf8e358e988382f45839a8b80019)

(From OE-Core rev: 7264c248946c09b139110b512dd12ce6d8d72ddc)

Signed-off-by: Robert Yang <liezhi.yang@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-01-08 20:14:42 +00:00
Hongxu Jia
26750a75dc libgcrypt: upgrade 1.8.3 -> 1.8.4
(From OE-Core rev: 1100e7f1519be91c90b139c337799c7ea635a8b3)

(From OE-Core rev: 6187f5eff556d5f308fa6812dc5335a2769cb249)

Signed-off-by: Hongxu Jia <hongxu.jia@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-01-08 20:14:42 +00:00
Hongxu Jia
ce93ac6395 gnupg: upgrade 2.2.10 -> 2.2.11
(From OE-Core rev: 4a373ce7d718ee3299bcf7f9fa62e7337d41e40a)

(From OE-Core rev: 65134404a6572f126e159503a079d5b8d3e1c1d5)

Signed-off-by: Hongxu Jia <hongxu.jia@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-01-08 20:14:42 +00:00
Hongxu Jia
98d689400d gnupg: upgrade 2.2.9 -> 2.2.10
(From OE-Core rev: 5efe9eb79ac325f55fc52f67b522afaf7ebb847a)

(From OE-Core rev: 5c8a8465d24b33f53a7e3bc4dc1d0dfbb14685d6)

Signed-off-by: Hongxu Jia <hongxu.jia@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-01-08 20:14:42 +00:00
Armin Kuster
6b673012d9 gnutls: update to 3.6.4
Notable change:

libgnutls: Added the final (RFC8446) version numbering of the TLS1.3 protocol.
see: https://lists.gnupg.org/pipermail/gnutls-help/2018-September/004457.html

(From OE-Core rev: 0697141e7be0b755db600aa0d5a975eac62cc7b8)

(From OE-Core rev: 7c062c9d2c48cd758b3ca9a4c7a5b26d74b9c1e3)

Signed-off-by: Armin Kuster <akuster808@gmail.com>

--
[v2]
Fix typo in version in subject

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-01-08 20:14:42 +00:00
Hongxu Jia
d50041ea78 elfutils: 0.174 -> 0.175
- Drop backport CVE patches
  0001-libdwfl-Sanity-check-partial-core-file-data-reads.patch
  0001-size-Handle-recursive-ELF-ar-files.patch
  0001-arlib-Check-that-sh_entsize-isn-t-zero.patch

- Drop patches that upstream has fixed
  0005-fix-a-stack-usage-warning.patch [9a74c19 backends: ppc use define
  instead of const for size of dwarf_regs array.]

- Update debian patches to 0.175

- Rebase local patch to 0.175
  0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch

(From OE-Core rev: 8748de4df5a4ece303f07f8bbb248920a199478a)

(From OE-Core rev: 81ae67e603087166ec5583cc9686a60f769be799)

Signed-off-by: Hongxu Jia <hongxu.jia@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-01-08 20:14:42 +00:00
Robert Yang
38887e6c1a recipes: Remove tab indentations in python code
Use 4 spaces to replace a tab.

(From OE-Core rev: cbb6743d46752481782789fa1a0dfade11057114)

(From OE-Core rev: 42ebdc7253c3a319d671a7f924603d85a22bbb4e)

Signed-off-by: Robert Yang <liezhi.yang@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-01-08 20:14:42 +00:00
Robert Yang
bc246384a1 classes: Remove tab indentations in python code
Use 4 spaces to replace a tab.

(From OE-Core rev: 55eaf8779170b9396e94dc4a44667824c4f36363)

(From OE-Core rev: dadd66706515ada3fab50779bfb75be8e776c975)

Signed-off-by: Robert Yang <liezhi.yang@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-01-08 20:14:42 +00:00
Douglas Royds
1dc65214c8 ptest: Reproducibility: Take control of umask
The build host umask was leaking into the thing-ptest packages
at do_install_ptest() time.

(From OE-Core rev: 891343e8ba6490ca3e1876c892269b611ddc7877)

(From OE-Core rev: 6cbc54790d9a0784fb0df4772aa38392ddea682b)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.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-01-08 20:14:42 +00:00
Douglas Royds
c90a56ed6d reproducible: Don't look for youngest file when no source tarball
Some packages (eg. init-ifupdown) take their source files entirely from
openembedded-core, that is, they download no source tarball.
These recipes either don't use S at all (ie. it is empty at unpack time),
or they set S = WORKDIR (as in init-ifupdown).
Looking at the file timestamps in the WORKDIR causes a non-reproducible
SOURCE_DATE_EPOCH, as files taken from file:// URIs do not have
reproducible timestamps.

If S == WORKDIR, we are better to assume that there is no source tarball,
and to fall back to a fixed timestamp for the SOURCE_DATE_EPOCH.
This makes the init-ifupdown build reproducible.

(From OE-Core rev: d395bad0179037eb5d0fa4d921985c87ae13f3a4)

(From OE-Core rev: cd56795a1588d780ca6a0cb974bf4024ab636be7)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.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-01-08 20:14:42 +00:00
Douglas Royds
e2a2f8cd89 reproducible: Refactor: Break out fixed_source_date_epoch() function
(From OE-Core rev: 4eb6def4fe82959c2a348142b9eada27d3354aef)

(From OE-Core rev: 98b7d22ed563efdf58beba1ba65270b731673103)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.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-01-08 20:14:42 +00:00
Douglas Royds
d513b1d6bb boost-context: Reproducibility: Set .file section for all *_elf_gas.S files
Add a .file directive explicitly for all *_elf_gas.S files to prevent the linker
adding a host build-system path as a FILE symbol to the object file.

This replaces the existing patch that added the .file directive to a small
subset of these files.

Upstream-Status: Submitted [https://github.com/boostorg/context/issues/91]
(From OE-Core rev: 5ff5f89f2db079a6baf0275ebf1333b4b9642504)

(From OE-Core rev: 763398b87c257ab672430bedd01004b9317d02b2)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.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-01-08 20:14:42 +00:00
Niko Mauno
da35b05c7f opkg-utils: Fix update-alternatives link relocation
Recently Debian-style support for link relocation was added to
'update-alternatives' script, but it fails under circumstances where
host rootfs root directory differs from target rootfs root directory
and two alternative packages provide a symbolic link with source
located in different directories.

An example of the case is busybox provided /bin/rev (symlinking to
/bin/busybox.nosuid) and util-linux provided /usr/bin/rev (symlinking
to /usr/bin/rev.util-linux) in which case following failure occurs
during image recipe's do_rootfs() task:

  ERROR: core-image-minimal-1.0-r0 do_rootfs: Postinstall scriptlets of ['util-linux'] 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.
  Details of the failure are in .../tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.do_rootfs.
  ERROR: core-image-minimal-1.0-r0 do_rootfs: Function failed: do_rootfs

Looking in log.do_rootfs file, following relevant lines can be observed:

  update-alternatives: renaming rev link from /bin/rev to /usr/bin/rev
  mv: cannot stat '/bin/rev': No such file or directory

Mitigate issue by applying patch which adds target root filesystem root
directory path prefix to failing 'mv' calls relevant variable references

(From OE-Core rev: f0912e23629758fe4303284e7db8f4089bb7b4cb)

(From OE-Core rev: 58f062843008c42d28f14c42fb5f991aef73728e)

Signed-off-by: Niko Mauno <niko.mauno@iki.fi>
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-01-08 20:14:42 +00:00
Joshua Watt
7e27a9c351 meta/icecc.bbclass: Update system blacklists
Updates the system blacklists to include packages that are known to have
problems compiling under icecream

(From OE-Core rev: fc5418e7bbdecfb27bafe595084e0fd0f991a388)

(From OE-Core rev: be54e1e0e769a9833b9b595e7a820ea9e098b91d)

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-01-08 20:14:42 +00:00
Joshua Watt
f85b494630 meta/icecc.bbclass: Move system blacklist to variables
The system blacklists are moved to variables which are ignore when
hashing. This prevents changes to the blacklists from causing all
taskhashes to change (and thus rebuild).

(From OE-Core rev: f5be9f6e9180ace3362bba52c7ced3b039441d7d)

(From OE-Core rev: 6f001b7b2ec3a6fb77184ca32664f89fee7ff5c3)

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-01-08 20:14:41 +00:00
Paul Eggleton
c56383ce65 socat: fix LICENSE
According to both the README and source headers, the LICENSE value for
socat is explicitly GPLv2, not v2 or later, so adjust LICENSE
accordingly (leaving aside whether "GPL-2.0+-with-OpenSSL-exception"
should actually be considered a valid LICENSE string or not).

(From OE-Core rev: 466044a341a8b42159bd9388950c9079e0d7a2c3)

(From OE-Core rev: 8d5565274545628cb0a7125b660e94f763cc7f49)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.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-01-08 20:14:41 +00:00
Peter Kjellerstedt
87e3a9739d bitbake: siggen: Adapt colors used by bitbake-diffsigs to support light themes
The colors specified for use with bitbake-diffsigs were adapted for a
dark theme, e.g., by setting the background color to black, which made
it look very bad when used with a light theme.

To make it look good both with a dark or a light theme, it is better
to drop the background color. It is also better to leave out the color
altogether for the title and just use bold. Finally, dropping bold for
the red and green texts indicating removed/added values better matches
other colorized diff implementations as, e.g., git diff.

(Bitbake rev: 35769412de6387f55e5efa4ebc59a8d1e3c8870f)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-02 16:32:59 +00:00
Scott Rifenbark
004ec4fb4d Documentation: Prepare for 2.6.1 release.
Updated the following:

 * poky.ent to use new variables values for 2.6.1
 * mega-manual.sed to use "2.6.1" string for links
 * *.xml manual files to have a new entry in the manual history
   tables.  Using the variable for the most recent entry.
   Hard-coded "November 2018" for the previous release, which
   was "2.6".

(From yocto-docs rev: bada424e14169d1ae378c0481970e55ce8f5df51)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:55 +00:00
Peter Kjellerstedt
8349383002 ref-manual: Document the fifth argument to PACKAGECONFIG
(From yocto-docs rev: 1a4a95d070d79bfeb202faf381c2e0a288ba88f5)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:55 +00:00
Peter Kjellerstedt
af4b3c6f9b ref-manual: Add missing whitespace around "=" in a few code examples.
(From yocto-docs rev: 0ed3bd9cfe6a3ad04e2ebbbcc95320275dcfacad)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:55 +00:00
Scott Rifenbark
a3c44df7b7 poky.ent: Updated copyright variable to span into 2019.
(From yocto-docs rev: 995543e9810ba7870ba17b35bd9696af13c57e23)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:55 +00:00
Scott Rifenbark
dbc9755027 ref-manual: Updates to CMake and cmake.bbclass.
I cleaned up the terminology used for the CMake build system.
I provided some meaningful links to a good overview page for CMake.
I also built in some cross-referencing as needed.

(From yocto-docs rev: 7e825427a2dcef2b91a1bfbf1827b73e034e0974)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:55 +00:00
Armin Kuster
d99d261613 ref-manual: Updated list of supported Linux Distros:
Updates for the "thud" release.

(From yocto-docs rev: 1e8dd2130c7814895cf745b615346d3715d39fac)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:55 +00:00
Scott Rifenbark
59c4460203 dev-manual: Added note stating no WSL support
The Windows Subsystem for Linux is not supported.  Added a note
in the section on setting up the build host.

(From yocto-docs rev: e806ea6ae534608e84540ac59f972914017ccce9)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:55 +00:00
Scott Rifenbark
582f0ca361 ref-manual: Added a note saying WSL is not supported.
Windows Subsystem for Linux (WSL) is not supported with the
Yocto Project.

(From yocto-docs rev: 68dea2908b5cfeb9e374c6e72493f6b635267dda)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:55 +00:00
Scott Rifenbark
1b2dccd9b9 brief-yoctoprojectqs: Added warnings about WSL, which can't be used.
Windows Subsystem for Linux (WSL) is not compatible with the
Yocto Project.  Added information in the beginning to note this
fact to the user.

(From yocto-docs rev: 2f8f4eb5534125396fdb1958c4ef271a9ece0e7c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:55 +00:00
Scott Rifenbark
8271ca3968 kernel-dev: Updated phrasing for what a "defconfig" file is.
It was over simplistic.

(From yocto-docs rev: 8c66db6f2a35e9e57423690976a16d6a815ccbc9)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:55 +00:00
Ming Liu
94a6cd1c2f ref-manual: Updated image_types.bbclass description.
The "image_types" class is now inherited mandatorily in
image.bbclass through the variable IMGCLASSES.  Users do not
have to inherit it in their customized image type bbclass.
They also do not have to put it in IMAGE_CLASSES.

(From yocto-docs rev: 9d71cd281864478c76e40fa6e0b9cd0055f131c0)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
95b373b7eb ref-manual: Added description for devupstream.bbclass
New section added.

Fixes [YOCTO #12732]

(From yocto-docs rev: e0c4006614cca76f07782c8273f4c8cba5394220)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
e8fb450ad5 dev-manual: Updated the "Post-Installation Scripts" section.
Added a better, more up-to-date description of the way to defer
a post-installation script past the boot.

(From yocto-docs rev: 722b1b9c5bee1d43c45d943624854a53adc07939)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
7ded3cc8cc ref-manual: Added cross-references to "Post-Installation Scripts"
Two areas in the migration chapter discuss the post-installation
behavior when you defer the scripts to after boot.  I added a
couple references to each of those migration note sections that
go into the dev-manual's section.

(From yocto-docs rev: fd550364c6fcfdff24b5c69f289733ed319c6be1)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
4623ec19ac ref-manual: Updated "Packaging Changes" section for 2.6 migration.
Changed reference to "python-modules" to "python-modules /
python3-modules".

(From yocto-docs rev: d3efb499d0f027be5233dc2f922cef98b03015ca)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
274946ead7 ref-manual: Applied review edits to the 2.6 migration section.
Minor fixes here and there.

(From yocto-docs rev: 37617222d5e76cd9debfb8271807ff016d124010)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
2559ad01c3 ref-manual: New 2.6 Migration section complete.
(From yocto-docs rev: 6d898834bbcef29934f9fcf895880acdb8838a57)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
7d0a2ece0b ref-manual: Added new python3 profile-optimization migration topic
(From yocto-docs rev: 108adb60eabf43ddd4fa91f26b701e7a2930dcee)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
44d52d9c72 ref-manual: Updated postinstall migration note.
(From yocto-docs rev: beb7286abdfa2a6f9cc1772429671250a52d6425)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
339d7d2bd6 ref-manual: Updates to the 2.6 migration section.
This is the completed first draft.

(From yocto-docs rev: f7f7e6b64c3dc8380b107851abc5719fd806683a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
7ef287ae21 ref-manual: Added KERNEL_ARTIFACT_NAME and adjusted referencing variables.
The KERNEL_ARTIFACT_NAME variable is used throughout to set the names
of build artifacts.  Rather than repeat informaiton about
KERNEL_ARTIFACT_NAME in the many variables that use it, I added
a new entry for the variable.  This also impacted the descriptions
of the variables that were repeating information.  I updated those
variable descriptions as well.

(From yocto-docs rev: e3fd82b1c65460097d7e0f2398be8c8756892e65)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
e886536f1b ref-manual: Removed the NOISO and NOHDD references.
(From yocto-docs rev: ae83daebbb316d2c34136c466bdf7b491c9fff1b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
494ba9bf74 dev-manual: Removed occurrence of mkefidisk.sh script.
Script has been removed.

(From yocto-docs rev: e1db4da1f7de8b9aa6e1ffffe71cdcf4929e5821)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
b57a73f9c3 ref-manual: Removed the NOISO and NOHDD variables.
(From yocto-docs rev: 969533a299c559eadeb8807e94f6af79fbf8f66a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
2aabfcb46d ref-manual: Added several new sections to the 2.6 migration section.
(From yocto-docs rev: 0f5d18d0118632db43706beef7d2020ec6890ade)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
667f70276d ref-manual: Added new artifact naming variables to glossary.
(From yocto-docs rev: 8c4d8fba8e5bf84a230c112b1b46a3bc5453184a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
356355d1a7 ref-manual: Changed "post 2.6" to correct wording.
I changed the wording "post 2.6" to state "2.6 and
forward".  It was incorrect as the changes are  inclusive
of YP release 2.6.

(From yocto-docs rev: 93720a1c072ad6268cb5681c51660f03059d880a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
8b9e5b95e5 ref-manual: Added KERNEL_IMAGE_NAME description
The KERNEL_IMAGE_NAME variable is new and is effectively
a renamed KERNEL_IMAGE_BASE_NAME variable now.  I provided a
new glossary description for the new variable.  I updated the
existing KERNEL_IMAGE_BASE_NAME description to note it has
changed.  We can't just delete the old variable as there are
migration notes for previous releases of YP.

(From yocto-docs rev: 2a7bc2dd274f23d58c997771175c37005763ed08)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
d6725d934d ref-manual: Added GCCVERSION variable description to glossary.
(From yocto-docs rev: f48ffe39e2d0c1bc57579e4ee457c72b7c626ad1)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
425b42f720 ref-manual: Updated migration section for 2.6
Made two minor corrections from reviewer feedback.

(From yocto-docs rev: 41e657ba47dd91a10a1d1ae4855e959eb697ea76)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
f34e49fa2f ref-manual: Updated 2.6 migration topic "_remove"
Provided more explanation and also a link into the BB manual
for a detailed example.

(From yocto-docs rev: eb2a3bc65c99ae72173d5f3848af423af112ccb2)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
d0884492a8 ref-manual: Added the 2.6 Migration Section.
Provided some new sections on the information for migrating from the
2.5 release to the 2.6 release.

(From yocto-docs rev: b95183e9f2358ec5bc67081334e13526ba1ad48d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
c5ba99bc06 ref-manual: Updated testimage and testsdk class descriptions.
I added notes indicating that the best practice for automated testing
is to inherit these classes by using the IMAGE_CLASSES variable instead
of the INHERIT variable.

(From yocto-docs rev: 70e18e93e96f283ae183f5f4468859bfca37c581)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
400d491e8d ref-manual, dev-manual: Removed TEST_IMAGE for TESTIMAGE_AUTO.
The TEST_IMAGE variable went away and was replaced with the
TESTIMAGE_AUTO variable.  Fixed all related/affected areas.

(From yocto-docs rev: 84e2c149fa823ab6e12be17b049c9bae1c1dd904)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Scott Rifenbark
9cedaa6740 poky.ent: Updated release month to November 2018 (thud)
(From yocto-docs rev: 8f7b74097e29b4dc8fea5b999b54a0a92896d9e3)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-27 22:54:54 +00:00
Richard Purdie
074cd4f22c oeqa/selftest/esdk: Fix typo causing test failure
2018-12-06 23:19:24,564 - oe-selftest - INFO - Traceback (most recent call last):
  File "/media/build1/poky-sumo/meta/lib/oeqa/core/case.py", line 32, in _oeSetUpClass
    clss.setUpClassMethod()
  File "/media/build1/poky-sumo/meta/lib/oeqa/selftest/cases/eSDK.py", line 78, in setUpClass
    cls.tmpdir_eSDKQA = cls.tempdirobj.name
AttributeError: type object 'oeSDKExtSelfTest' has no attribute 'tempdirobj'

(From OE-Core rev: 75cd4edaa8a42f76c0594ce26df05c7a51d620df)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Richard Purdie
2cafee8620 oeqa/selftest/esdk: Ensure parent directory exists
INFO - ======================================================================
INFO - ERROR: setUpClass (eSDK.oeSDKExtSelfTest)
INFO - ----------------------------------------------------------------------
INFO - Traceback (most recent call last):
  File "/home/pokybuild/yocto-worker/oe-selftest-debian/build/meta/lib/oeqa/core/case.py", line 32, in _oeSetUpClass
    clss.setUpClassMethod()
  File "/home/pokybuild/yocto-worker/oe-selftest-debian/build/meta/lib/oeqa/selftest/cases/eSDK.py", line 76, in setUpClass
    cls.tmpdirobj = tempfile.TemporaryDirectory(prefix="selftest-esdk-", dir=bb_vars["WORKDIR"])
  File "/usr/lib/python3.5/tempfile.py", line 929, in __init__
    self.name = mkdtemp(suffix, prefix, dir)
  File "/usr/lib/python3.5/tempfile.py", line 507, in mkdtemp
    _os.mkdir(file, 0o700)
FileNotFoundError: [Errno 2] No such file or directory: '/home/pokybuild/yocto-worker/oe-selftest-debian/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/selftest-esdk-q7ln84gc'

(From OE-Core rev: eca3c0a6aa4bce48f295ba25f613da8dcaefac20)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Richard Purdie
237ff3e462 testimage/testsdk/selftest: Avoid platform.distro_identifier deprecation warnings
Use our own lsb function instead as used elsewhere by the codebase.

(From OE-Core rev: acac45a6fd604d28ef7c23d67482af3d7e8bcfe3)

(From OE-Core rev: 570256a64af5a3fa994a20a5cc4c74d59ffc361f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Richard Purdie
ea1ffae258 oeqa/concurrencytest: Avoid unclosed file warnings
Avoid an unclosed file per thread warning when running selftests concurrently
by closing the result stream.

(From OE-Core rev: 33a4a076e8aa72a872807332501e7f5ae1cee0e2)

(From OE-Core rev: a7dceca55b169bcdb8d1528238cbdedfd131f37f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Richard Purdie
19287294c1 oeqa/utils/qemurunner.py: Fix python regex warnings
Fix the warnings:

meta/lib/oeqa/utils/qemurunner.py:250: DeprecationWarning: invalid escape sequence \.
  ips = re.findall("((?:[0-9]{1,3}\.){3}[0-9]{1,3})", cmdline.split("ip=")[1])
meta/lib/oeqa/utils/qemurunner.py:343: DeprecationWarning: invalid escape sequence \-
  if re.search("root@[a-zA-Z0-9\-]+:~#", output):
poky/meta/lib/oeqa/utils/qemurunner.py:350: DeprecationWarning: invalid escape sequence \-
  if re.search("root@[a-zA-Z0-9\-]+:~#", output):
meta/lib/oeqa/utils/qemurunner.py:448: DeprecationWarning: invalid escape sequence \-
  if re.search("[a-zA-Z0-9]+@[a-zA-Z0-9\-]+:~#", data):

by correctly marking the regexs.

(From OE-Core rev: 8e6987735002560fca714f77ea8ece9d4b28f7fa)

(From OE-Core rev: a980cb8a0940d4db4bb5d338650cf848cd292f5b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Richard Purdie
0a5b7850e5 oeqa/selftest/context: Replace deprecated imp module usage
Avoid the warning:

meta/lib/oeqa/selftest/context.py:8: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
  import imp

In this case importlib is a direct replacement.

(From OE-Core rev: db7a60c36a2d3eefc61ae6e1ede01680dc932035)

(From OE-Core rev: 1e7bbdaf78fd2a75d03c6a0c48afed13fffd4397)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Richard Purdie
01d00cd776 oeqa/utils/commands: Avoid unclosed file warnings
Avoid warnings such as:

meta/lib/oeqa/utils/commands.py:213: ResourceWarning: unclosed file <_io.BufferedReader name=4>
  return runCmd(cmd, ignore_status, timeout, output_log=output_log, **options)

(From OE-Core rev: 6a68c42de08cffbadb59ebda63fa5e19f6e5acef)

(From OE-Core rev: f65a5fbd4fd13a52b54c808a6f5d2afab426e050)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Richard Purdie
f349ec0424 oeqa/core/runner: Correctly markup regexs
Avoid the warning "DeprecationWarning: invalid escape sequence \(" by marking
the regexs correctly.

(From OE-Core rev: cb49980fa4a158d5529902df731dec61a8c9b3d4)

(From OE-Core rev: bb2cddb08d7c4c6c56dfe6b2f0d26dce1cdf20e4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Richard Purdie
e09a79e997 oeqa/loader: Fix deprecation warning
Clean up the warning:
meta/lib/oeqa/core/loader.py:27: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() or inspect.getfullargspec()
  _failed_test_args = inspect.getargspec(unittest.loader._make_failed_test).args

(From OE-Core rev: d2deb66830be2d44532fea3d5db763b57778252a)

(From OE-Core rev: e65e9492acad4861b22e6f29d5f470a82778f2b4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Richard Purdie
86dbdfa00d oeqa/runner: Sort the test result output by result class
We want to see failures/errors listed last since this is the most easily
visible part of the log on consoles or autobuilder output and makes
human processing easier rather than having to scroll up and scan for
a single failure.

(From OE-Core rev: 7954b19020c28a4120bc1671aa81b9e1e2b05fa2)

(From OE-Core rev: 260738158b09aea0beeca85b778aa4ab08ba1c4c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Richard Purdie
359ce89adf oeqa/runner: Always show a summary of success/fail/error/skip counts
Its useful to have the counts of success/failure/error/skipped at the end of the
results to allow for easier human reading of what happened.

(From OE-Core rev: 080d8900d470a8e7f929b0c5c2765ad461744fbb)

(From OE-Core rev: 5bc862d8f16df5611537cb51da95812e519c61f6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Ross Burton
510e6e2143 oeqa/selftest/esdk: run selftest inside workdir not /tmp
We've seen issues with rootfs size calculations and we've seen systems
like opensuse which have btrfs mounted on /tmp causing selftest failures.

(From OE-Core rev: 61be3cd748d1b7321a1fc4cfe84efa9b26a6aee0)

(From OE-Core rev: 63eefbe21612e58e88f1eb3fde3d314da53927fa)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Ross Burton
29361d7aeb oeqa: don't litter /tmp with temporary directories
If we need to create a temporary directory in targetbuild or buildproject use
tempfile.TemporaryDirectory so that when the test case is finished, the
directory is deleted.

Also synchronise the logic and don't possibly store the temporary directory in
self.tmpdir as nothing uses that.

(From OE-Core rev: db0e658097130d146752785d0d45f46a3e0bad71)

(From OE-Core rev: 6e2c6668791a80ee0ffe44c756cc0caceebea0e2)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Richard Purdie
c7ff99ab44 oeqa/utils/qemurunner: Avoid tracebacks on closed files
Reorder the shutdown/teardown to avoid:

  File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/lib/oeqa/utils/qemurunner.py", line 224, in launch
    op = self.getOutput(output)
  File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/lib/oeqa/utils/qemurunner.py", line 90, in getOutput
    fl = fcntl.fcntl(o, fcntl.F_GETFL)
ValueError: I/O operation on closed file

(From OE-Core rev: 8e7d756862d2a8d62f3c87497d6d65ddb3c1b962)

(From OE-Core rev: 11d4bf460030eb6f072bd0e15550e26e055e632b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Richard Purdie
d69080b9da oeqa/selftest/runqemu: Improve testcase failure handling
assertTrue doesn't give good debug information when things fail. Update
several to use assertIn which gives information upon failure, for the
others print the log information upon failure.

(From OE-Core rev: c29cb75d5ce6b0873a934f4709b0c8824f7164d3)

(From OE-Core rev: e9c6e974b49b8821cce8f2c7e3ba0dc16a5b46a0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Richard Purdie
d6ba484506 lib/oe/utils: Improve multiprocess_lauch exception handling
We've seen a cryptic:

"ERROR: Fatal errors occurred in subprocesses, tracebacks printed above"

message from oe-selftest with no other traceback information. Improve the
traceback logging to try and give a better indication of any errors that is
ocurring.

(From OE-Core rev: 521dd3d00979a27b6932e58d5497de68abac26e1)

(From OE-Core rev: 2696e69af0b32e03692d8644cc01b28dcf221aa1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Ross Burton
72d7b5b5d4 oeqa/oelib/path: don't leak temporary directories
setUp() is used to populate a directory of temporary files, and deleted in
__del__.  However setUp() is called once *per test* so __del__ would only be
able to remove the last directory created.

Fix the code by using the natural counterpart to setUp, tearDown(), to clean up.

(From OE-Core rev: 68b4723e6fb11d171869185bccf28f32f6284c18)

(From OE-Core rev: eee30d799ff892443d21de4128e7d643215b0ac1)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Richard Purdie
3c27f3b3a7 oeqa/selftest/context: Improve log file handling
The existing logfile is simply placed in the current directory. Since the test
changes cwd to BUILDDIR, the symlink to the log can be placed in an invalid
directory. We also see trackbacks if the symlink is invalid.

Improve things by:

* Placing logs in LOG_DIR (or BUILDDIR if unset).
* Using a full path to the log meaning the log and link are placed in the same directory.
* Using lexists instead of exists so invalid symlinks are handled correctly.

(From OE-Core rev: 750ece11bed0e62a11e0003d1d16a81f7c219761)

(From OE-Core rev: 1ec53b8d82491aeb9f49e7a78f531e98b5608f0f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Richard Purdie
c414b06ea6 oeqa/selftest/buildoptions: Ensure diskmon tests run consistently
Heartbeat events default to once a second and we need to ensure we have
enough time in the task to see them.

Add a nostamp delay task 5s long so we can have a consistently timed
task which doesn't need cleanup or have unneeded dependencies. This
ensures we should deterministically see the disk moinitor events
regardless of the state of the build. This is done in a way which
doesn't corrupt build state or need cleanup and is efficient.

(From OE-Core rev: ecc49ee8986929e2429d948000a0ca588fe63959)

(From OE-Core rev: a883aa053ddeb4591109c7c1374525e63a59bd80)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:33 +00:00
Richard Purdie
d7594fd2ae oeqa/selftest/buildoptions: Improve ccache test
This test occisionally fails as m4 doesn't recompile, meaning the logfile test
then doesn't find mention of ccache.

To ensure m4 does recompile, clean m4 before force compiling it.

(Reading the test is confusing due to the test cleanup also involving a clean)

(From OE-Core rev: 6e0b9214a0d57ed45a5df0ba5c9887a9045b89b1)

(From OE-Core rev: bddb09a411ce69f49a37260e2188bbd9b02f5902)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:32 +00:00
Richard Purdie
5e12af7587 oeqa/qemurunner: Remove resource python warnings
If runqemu fails it would leak an unclosed socket and file. Ensure we
close these in all cases to remove the resource warning.

(From OE-Core rev: ed80e46ccbc8fe8e9148d80723152066fa00ba28)

(From OE-Core rev: 81ce67fb1274faafb9e7386c5982aeaf4c74294d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:32 +00:00
Richard Purdie
1cd8b3b789 oeqa/utils/commands: Avoid log message duplication
Each time a runqemu() fails, the log handler would be left behind meaning
messages from any subsequent run would be duplicated (or worse/more).

This ensures we remove the handler regardless and means we no longer
have the duplication.

(From OE-Core rev: 532984708436bdfa3a8cac2c684a425eb249bad0)

(From OE-Core rev: 018549bf94d1e5d33344691fde0fb27ca50f675f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:32 +00:00
Richard Purdie
ce291652c5 oeqa/utils/qemurunner: Fix python ResourceWarning for unclosed file
Fixes:

Stderr:
/media/build1/poky/meta/lib/oeqa/utils/qemurunner.py:381: ResourceWarning: unclosed file <_io.BufferedWriter name=16>
  self.runqemu = None

(From OE-Core rev: b9e0bf919e6fc1a58e02145a363ebe7066e5bf4f)

(From OE-Core rev: 43b7ee731d2cfc3fd4a4c26381c8d035b5fbcdeb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:32 +00:00
Richard Purdie
594679bb48 oeqa/utils/commands: Add extra qemu failure logging
Rather than just referring the user to the logs containing the failure, print
them on the console. This aids debugging with oe-selftest with parallelisation
as the logs may otherwise be lost.

(From OE-Core rev: 36a018e245a232f520ff946f152cc875927a6fb4)

(From OE-Core rev: 85b373f571cf2076d93e96db2aca295c53d3c16a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:32 +00:00
Richard Purdie
9cf4132158 oeqa/selftest/buildoptions: Improve ccache test failure output
The current failure mode doesn't show us what the logs actually looked like
and later cleans can lose them. Show the whole log in case of failure
to aid debugging intermittent problems on the autobuilder.

(From OE-Core rev: 7c3a0dc5978cea898b1ca51decf4d6e7cf9d519f)

(From OE-Core rev: 8a9fa1597245d13db89361c40db7867786f137ff)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:32 +00:00
Richard Purdie
835cf20001 oeqa/selftest/case: Use bb.utils.remove() instead of shutil.remove()
This avoids problems where shutil.remove will error with:

  File "/usr/lib/python3.5/shutil.py", line 436, in _rmtree_safe_fd
    os.unlink(name, dir_fd=topfd)
FileNotFoundError: [Errno 2] No such file or directory: 'S.gpg-agent.extra'

when there are races over file deletion (gpg agent may be slow to exit).

We already worked around speed and race issues in bb.utils.

(From OE-Core rev: 00a8fd5b93a5c19ce0b7498e2bc653ce8ad58aaf)

(From OE-Core rev: ee8255128e11d69d82e6093b58b761dfe773e71d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:32 +00:00
Richard Purdie
588480ff19 oeqa/selftest/signing: Use do_populate_lic target instead of do_package
This should speed the test up signficiantly without any loss of functionality
for the purposes of the test.

(From OE-Core rev: 3dde0b749643575878bfbca2f8d2d9ec30bad166)

(From OE-Core rev: 9fcfc43e1a51520a86761cf5534cff9e70167b77)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:32 +00:00
Richard Purdie
920a95e424 oeqa/selftest/signing: Allow tests not to need gpg on the host
We ideally don't want to use gpg from the host. This is straightforward for package
management but not for sstate.

For sstate, create a second build directory to run the test in using gnupg-native
from the original build directory.

(From OE-Core rev: 10afa94c3f0d7eb7524a26deda86949073d55fde)

(From OE-Core rev: 8c91e74ebcd4b1b851026c7ed5e984aa6a39cf90)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:32 +00:00
Richard Purdie
5778c709b5 oeqa/selftest/signing: Skip tests if gpg isn't found
Raising an assertionError in the class setup isn't a particuarly good way to
indicate gpg isn't installed. Instead skip the tests if the required binary
isn't present. For the signing tests we do require it to be present and can't
use a prebuilt one.

(From OE-Core rev: 2d486af97e51b9daa9c40482c31d637c9ab4ae79)

(From OE-Core rev: 9bb190d5bee70d2d3d5ec2eeee3439cd24548cb8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:32 +00:00
Richard Purdie
b9943e4bfe scripts/runqemu: Improve lockfile handling for python with close_fd=True
On python versions with close_fds=True (python 3.2 onwards), the tap
device lockfile isn't passed to the child process.

Since this guards against use of an active interface, we really want this
here, so pass it in pass_fds. This means if the parent exits early, the child
still holds the lock, avoiding messages like:

runqemu - ERROR - Failed to run qemu: qemu-system-x86_64: could not configure /dev/net/tun (tap0): Device or resource busy

(From OE-Core rev: 17a0a067d597c445c5892ff9914e91a2187f7e09)

(From OE-Core rev: 1d03e0d54863124c5a65b59ecdc76dbac13d312a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:32 +00:00
Richard Purdie
7ad6069850 scripts/runqemu: Tidy up lock handling code
Various tweaks:
- Balance up the aquire/release functions
- Use debug messge for both acquiring and release message for consistency in logs
- Use None instead of an empty string
- Reset the value of the field if we don't have the lock any more

(From OE-Core rev: 2728394ed75526f338cc9cb6bc62fb0ed6dc605f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:32 +00:00
Michael Halstead
fecdb7c64a scripts/runqemu: Replace subprocess.run() for compatibilty
subprocess.run() was introduced in Python 3.5. We currently support down to
Python 3.4 so I've replaced it with subprocess.check_call() which is available
in that version.

(From OE-Core rev: 4ba803d9834565cbe9a89838eb2fcf0328c44bef)

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-16 14:31:32 +00:00
Yong, Jonathan
d0e0a3d7a8 bitbake: bitbake-user-manual: Added "usehead" parameter.
(Bitbake rev: a9d361e39f110f6deecd1f35c425e0f0affcf828)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-15 11:49:15 +00:00
Richard Purdie
6b504019d6 bitbake: main: Don't use print() directly, use logger
Avoid failures like:

2018-12-04 03:30:56,033 - oe-selftest - INFO - ======================================================================
2018-12-04 03:30:56,033 - oe-selftest - INFO - FAIL: pkgdata.OePkgdataUtilTests.test_find_path (subunit.RemotedTestCase)
2018-12-04 03:30:56,033 - oe-selftest - INFO - ----------------------------------------------------------------------
2018-12-04 03:30:56,033 - oe-selftest - INFO - testtools.testresult.real._StringException: Traceback (most recent call last):
[...]
AssertionError: 'Previous bitbake instance shutting down?,[77 chars]xist' != 'ERROR: Unable to find any package produci[14 chars]xist'
- Previous bitbake instance shutting down?, waiting to retry...
  ERROR: Unable to find any package producing path /not/exist

We need to use the logger so output is correctly handled in such cases.

(Bitbake rev: 1711a17dfe3980af96d713da6926e8aaa4545453)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-06 10:27:59 +00:00
Richard Purdie
f6f17e974a bitbake: process: Flush key output to logs
Small tweak to ensure these items are printed into the log since there
is other logging code which looks for the header and this makes it clearer
the server did start but is slow somewhere in startup.

(Bitbake rev: 9b15f265643af8bd85af87164ee5cab0bf58ccbb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-06 10:27:59 +00:00
Ulf Magnusson
d62c933d84 bitbake: fetch2/svn: Fix SVN repository concurrent update race
The ${DL_DIR}/svn directory is used by BitBake to keep checked-out SVN
repositories from which tarballs are generated. These repositories were
protected from concurrent update with a lock on the tarballs. However,
the tarballs are specific to the SRCREV and module checked out (many
tarballs can come from the same repository), meaning a repository could
be modified concurrently if two recipes checked out two different
SRCREVs or modules from it in parallel. This caused errors like the
following:

ERROR: Fetcher failure: Fetch command failed with exit code 1, output:
svn: E155004: Run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
svn: E155004: Working copy '/home/foo/downloads/svn/repo/trunk' locked.
svn: E155004: '/home/foo/downloads/svn/repo/trunk' is already locked.

Fix it by adding a per-repository lock that's independent of the module
and SRCREV.

(Bitbake rev: cddd27fb66bf82465cf8eb5012cb8e3c088625a5)

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@bmw.de>
Signed-off-by: Michael Ho <Michael.Ho@bmw.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-06 10:27:59 +00:00
Richard Purdie
6ebd270b08 bitbake: runqueue: Ensure disk monitor is started when no setscene tasks are run
Currently if there are no setscene tasks, the disk monitor isn't started.

Move the startup code to somewhere to ensure it always is started. This
issue would partially explain occasional selftest failures.

(Bitbake rev: 7e76237c930d354ee7eb37d247d71b4f4fbf7993)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-06 10:27:59 +00:00
Richard Purdie
810f4827b6 bitbake: server/process: Fix ConnectionRefusedError tracebacks
Improve connetion refused error handling:

NOTE: Retrying server connection...
NOTE: Reconnecting to bitbake server...
NOTE: Retrying server connection... (Traceback (most recent call last):
  File "/home/pokybuild/yocto-worker/oe-selftest-opensuse/build/bitbake/lib/bb/server/process.py", line 471, in connectProcessServer
    sock.connect(os.path.basename(sockname))
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pokybuild/yocto-worker/oe-selftest-opensuse/build/bitbake/lib/bb/main.py", line 464, in setup_bitbake
    server_connection = bb.server.process.connectProcessServer(sockname, featureset)
  File "/home/pokybuild/yocto-worker/oe-selftest-opensuse/build/bitbake/lib/bb/server/process.py", line 502, in connectProcessServer
    os.close(i)
TypeError: an integer is required (got type NoneType)
)
WARNING: /home/pokybuild/yocto-worker/oe-selftest-opensuse/build/bitbake/lib/bb/main.py:481: ResourceWarning: unclosed <socket.socket fd=14, family=AddressFamily.AF_UNIX, type=SocketKind.SOCK_STREAM, proto=0>
  logger.info("Retrying server connection... (%s)" % traceback.format_exc())

(Bitbake rev: c36803dba4fce8e6b16e437d702116a918ff718b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-06 10:27:59 +00:00
Richard Purdie
5ab68ca832 bitbake: fetch2: Avoid warning about incorrect character escaping in regex
Fixes:

lib/bb/fetch2/__init__.py:259: DeprecationWarning: invalid escape sequence \w
  re.compile("^\w+:(?!//)").match(uri):

(Bitbake rev: 9c619f1eb1583582fafda6acabaf08a5761215ef)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-06 10:27:59 +00:00
Anuj Mittal
3896bf313f gstreamer1.0-vaapi: downgrade vaapisink to marginal rank
Using vaapisink (which doesn't supports DRI3 [1] and uses DRI2) with
default poky configuration currently results in an unresponsive display
because DRI2 rendering doesn't work (as of xserver 1.20.3) in non-composited
environments [2].

Downgrade vaapisink to marginal for now so playbin (and in turn gst-play
and gtk-play examples) uses next best sink element and works out of box.

[1] https://github.com/intel/libva/issues/122
[2] https://gitlab.freedesktop.org/xorg/xserver/issues/13

(From OE-Core rev: 0ac1b496823a57ac6a234a14c60318bf1ffa19b0)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-04 10:41:16 +00:00
Richard Purdie
33e5b9e5ad bitbake: tests/fetch: Update after recent gitsm message changes
Also use assetIn instead of assertTrue which aids debugging failures.

(Bitbake rev: 7e9c0bffb95ca92cab61deeeef18f45f1b4edb6f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-11-26 20:16:24 +00:00
Alejandro Enedino Hernandez Samaniego
8dccbf6752 bitbake: cooker: Fix multiconfig dependencies
When multiconfig is enabled the cooker adds providers
for all the targets to be built on all the multiconfig
variables that were set, regardless if there is a dependency
to it or not.

This causes an issue when a certain target is incompatible
with one or more of the multiconfigs, e.g. the target is not
in COMPATIBLE_MACHINE for one of the MACHINEs being built,
causing the cooker to error out since no providers can be
found for that certain target on that multiconfig.

This patch modifies the behavior to only look for PROVIDERS
for a target on the multiconfig that was selected to be built,
PROVIDERS are then looked for in other multiconfigs only when
there is a defined dependency to them.

[YOCTO #12985]

(Bitbake rev: 8bd519b04c7d6ee4cf626d5e04110c3759488d28)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-11-26 20:16:24 +00:00
Christopher Larson
93fc92cf42 bitbake: fetch/git: fix AttributeError in shallow extraction logic
This code checks to see if shallow is either disabled or the tarball is
missing, but the else block tries to print the tarball filename, and
this attribute doesn't exist at all when shallow is disabled. Handle the
two cases separately to give sane errors for both cases without the
exception:

    Exception: AttributeError: 'FetchData' object has no attribute 'fullshallow'

(Bitbake rev: b0ad961064ef6ecd77fab3435e5652c4ae284426)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-11-26 20:16:24 +00:00
Richard Purdie
94b1388251 sanity: Add check for WSL
Users are starting to expect OE to work under WSL which it doesn't. Add a warning to
tell them about this up front and manage expectations.

(From OE-Core rev: 4f22710f9a310412f1de0b4e6905c058ec416f25)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-11-24 22:02:47 +00:00
Richard Purdie
1c88c939f8 oeqa/utils/httpserver: Rework to avoid hangs and improve logging
testimage.bbclass installs a SIGTERM handler which conflicts with the
use of multiprocessing here. This is paritcularly problematic if the http
service is terminated before its started and hence before its had a chance
to reset the default signal handler (as the code was written).

Instead, temporarily remove testimage's handler whilst forking the http process
which means the correct handler is installed and won't deadlock.

Also take the opportunity to add in some log messages about the server start
and shutdown so that future debugging is easier and its clearer what the code
is doing.

(From OE-Core rev: cc0471439aa0085ca87deccf061c5b676ef12388)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-11-24 22:02:47 +00:00
Martin Hundebøll
7692a65189 openssl-1.1.1: remove build path from version info
The openssl build system generates buildinf.h containing the full
compiler command line used to compile objects. This breaks
reproducibility, as the compile command is baked into libcrypto, where
it is used when running `openssl version -f`.

Add stripped build variables for the compiler and cflags lines, and use
those when generating buildinfo.h.

This is based on a similar patch for older openssl versions:
https://patchwork.openembedded.org/patch/147229/

(From OE-Core rev: 8f5b6a3789a7fcbac0a384b84b4c7ef5994023b6)

Signed-off-by: Martin Hundebøll <martin@geanix.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-11-24 22:02:47 +00:00
Martin Hundebøll
c31c80aa8a busybox: make busybox.links.{suid, nosuid} reproducible
The busybox.link.* files are generated from autoconf.h and applets.h,
which are both auto-generated by the build system. The contents of the
two files might be in different order, and so the link files are not
reproducble as is.

Fix this by sorting the lists using `sort`.

(From OE-Core rev: bade7cc344c2f0e9316f973c34e9c9dfcbdbe32d)

Signed-off-by: Martin Hundebøll <martin@geanix.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-11-24 22:02:47 +00:00
Martin Hundebøll
436da7fbf3 shadow: improve reproducibility by hard-coding shell path
The shadow configure script tries really hard to detect the running
shell to make sure it doesn't do unsupported calls.

On my system the shell is detected as /bin/sh, while a build in an
ubuntu docker it resolves to /bin/bash. And since the shell path is
baked into the target binaries through config.h, the build becomes
inreproducible.

Fix reproducibility by hard-coding the shell to be /bin/sh

(From OE-Core rev: 5f4fe91cb6c21cd3ecd0b68d1c6b46a9530c7570)

Signed-off-by: Martin Hundebøll <martin@geanix.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-11-24 22:02:47 +00:00
7480 changed files with 397000 additions and 449000 deletions

9
.gitignore vendored
View File

@@ -8,7 +8,6 @@ pstage/
scripts/oe-git-proxy-socks
sources/
meta-*/
buildtools/
!meta-skeleton
!meta-selftest
hob-image-*.bb
@@ -30,10 +29,4 @@ hob-image-*.bb
pull-*/
bitbake/lib/toaster/contrib/tts/backlog.txt
bitbake/lib/toaster/contrib/tts/log/*
bitbake/lib/toaster/contrib/tts/.cache/*
bitbake/lib/bb/tests/runqueue-tests/bitbake-cookerdaemon.log
_toaster_clones/
downloads/
sstate-cache/
toaster.sqlite
.vscode/
bitbake/lib/toaster/contrib/tts/.cache/*

View File

@@ -1,2 +1,2 @@
# Template settings
TEMPLATECONF=${TEMPLATECONF:-meta-poky/conf/templates/default}
TEMPLATECONF=${TEMPLATECONF:-meta-poky/conf}

24
LICENSE
View File

@@ -1,20 +1,14 @@
Different components of OpenEmbedded are under different licenses (a mix
of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
details of the individual licenses.
of MIT and GPLv2). Please see:
meta/COPYING.GPLv2 (GPLv2)
meta/COPYING.MIT (MIT)
meta-selftest/COPYING.MIT (MIT)
meta-skeleton/COPYING.MIT (MIT)
All metadata is MIT licensed unless otherwise stated. Source code
included in tree for individual recipes (e.g. patches) are under
the LICENSE stated in the associated recipe (.bb file) unless
otherwise stated.
included in tree for individual recipes is under the LICENSE stated in
the associated recipe (.bb file) unless otherwise stated.
License information for any other files is either explicitly stated
or defaults to GPL version 2 only.
Individual files contain the following style tags instead of the full license
text to identify their license:
SPDX-License-Identifier: GPL-2.0-only
SPDX-License-Identifier: MIT
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/
or defaults to GPL version 2.

View File

@@ -1,288 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Note:
Individual files contain the following tag instead of the full license text.
SPDX-License-Identifier: GPL-2.0-only
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

View File

@@ -1,25 +0,0 @@
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.
Note:
Individual files contain the following tag instead of the full license text.
SPDX-License-Identifier: MIT
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

View File

@@ -1,71 +0,0 @@
OpenEmbedded-Core and Yocto Project Maintainer Information
==========================================================
OpenEmbedded and Yocto Project work jointly together to maintain the metadata,
layers, tools and sub-projects that make up their ecosystems.
The projects operate through collaborative development. This currently takes
place on mailing lists for many components as the "pull request on github"
workflow works well for single or small numbers of maintainers but we have
a large number, all with different specialisms and benefit from the mailing
list review process. Changes therefore undergo peer review through mailing
lists in many cases.
This file aims to acknowledge people with specific skills/knowledge/interest
both to recognise their contributions but also empower them to help lead and
curate those components. Where we have people with specialist knowledge in
particular areas, during review patches/feedback from these people in these
areas would generally carry weight.
This file is maintained in OE-Core but may refer to components that are separate
to it if that makes sense in the context of maintainership. The README of specific
layers and components should ultimately be definitive about the patch process and
maintainership for the component.
Recipe Maintainers
------------------
See meta/conf/distro/include/maintainers.inc
Component/Subsystem Maintainers
-------------------------------
* Kernel (inc. linux-yocto, perf): Bruce Ashfield
* Reproducible Builds: Joshua Watt
* Toaster: David Reyna
* Hash-Equivalence: Joshua Watt
* Recipe upgrade infrastructure: Alex Kanavin
* Toolchain: Khem Raj
* ptest-runner: Aníbal Limón
* opkg: Alex Stewart
* devtool: Saul Wold
* eSDK: Saul Wold
* overlayfs: Vyacheslav Yurkov
* Patchtest: Trevor Gamblin
Maintainers needed
------------------
* Pseudo
* Layer Index
* recipetool
* QA framework/automated testing
* error reporting system/web UI
* wic
* Patchwork
* Matchbox
* Sato
* Autobuilder
Layer Maintainers needed
------------------------
* meta-gplv2 (ideally new strategy but active maintainer welcome)
Shadow maintainers/development needed
--------------------------------------
* toaster
* bitbake

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

26
README.LSB Normal file
View File

@@ -0,0 +1,26 @@
OE-Core aims to be able to provide basic LSB compatible images. There
are some challenges for OE as LSB isn't always 100% relevant to its
target embedded and IoT audiences.
One challenge is that the LSB spec is no longer being actively
developed [https://github.com/LinuxStandardBase/lsb] and has
components which are end of life or significantly dated. OE
therefore provides compatibility with the following caveats:
* Qt4 is provided by the separate meta-qt4 layer. Its noted that Qt4
is end of life and this isn't something the core project regularly
tests any longer. Users are recommended to group together to support
maintenance of that layer. [http://git.yoctoproject.org/cgit/cgit.cgi/meta-qt4/]
* mailx has been dropped since its no longer being developed upstream
and there are better, more modern replacements such as s-nail
(http://sdaoden.eu/code.html) or mailutils (http://mailutils.org/).
* A few perl modules that were required by LSB 4.x aren't provided:
libclass-isa, libenv, libdumpvalue, libfile-checktree,
libi18n-collate, libpod-plainer.
* libpng 1.2 isn't provided; oe-core includes the latest release of libpng
instead.
* pax (POSIX standard archive) tool is not provided.

View File

@@ -1,33 +0,0 @@
OpenEmbedded-Core
=================
OpenEmbedded-Core is a layer containing the core metadata for current versions
of OpenEmbedded. It is distro-less (can build a functional image with
DISTRO = "nodistro") and contains only emulated machine support.
For information about OpenEmbedded, see the OpenEmbedded website:
https://www.openembedded.org/
The Yocto Project has extensive documentation about OE including a reference manual
which can be found at:
https://docs.yoctoproject.org/
Contributing
------------
Please refer to our contributor guide here: https://docs.yoctoproject.org/dev/contributor-guide/
for full details on how to submit changes.
As a quick guide, patches should be sent to openembedded-core@lists.openembedded.org
The git command to do that would be:
git send-email -M -1 --to openembedded-core@lists.openembedded.org
Mailing list:
https://lists.openembedded.org/g/openembedded-core
Source code:
https://git.openembedded.org/openembedded-core/

1
README.hardware Symbolic link
View File

@@ -0,0 +1 @@
meta-yocto-bsp/README.hardware

View File

@@ -1 +0,0 @@
meta-yocto-bsp/README.hardware.md

View File

@@ -1 +0,0 @@
README.poky.md

1
README.poky Symbolic link
View File

@@ -0,0 +1 @@
meta-poky/README.poky

View File

@@ -1 +0,0 @@
meta-poky/README.poky.md

View File

@@ -1,22 +0,0 @@
How to Report a Potential Vulnerability?
========================================
If you would like to report a public issue (for example, one with a released
CVE number), please report it using the
[https://bugzilla.yoctoproject.org/enter_bug.cgi?product=Security Security Bugzilla]
If you are dealing with a not-yet released or urgent issue, please send a
message to security AT yoctoproject DOT org, including as many details as
possible: the layer or software module affected, the recipe and its version,
and any example code, if available.
Branches maintained with security fixes
---------------------------------------
See [https://wiki.yoctoproject.org/wiki/Stable_Release_and_LTS Stable release and LTS]
for detailed info regarding the policies and maintenance of Stable branches.
The [https://wiki.yoctoproject.org/wiki/Releases Release page] contains a list of all
releases of the Yocto Project. Versions in grey are no longer actively maintained with
security patches, but well-tested patches may still be accepted for them for
significant issues.

View File

@@ -1,2 +0,0 @@
*min.js binary
*min.css binary

339
bitbake/COPYING Normal file
View File

@@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

19
bitbake/HEADER Normal file
View File

@@ -0,0 +1,19 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# <one line to give the program's name and a brief idea of what it does.>
# Copyright (C) <year> <name of author>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

View File

@@ -1,13 +1,4 @@
BitBake is licensed under the GNU General Public License version 2.0. See
LICENSE.GPL-2.0-only for further details.
Individual files contain the following style tags instead of the full license text:
SPDX-License-Identifier: GPL-2.0-only
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/
BitBake is licensed under the GNU General Public License version 2.0. See COPYING for further details.
The following external components are distributed with this software:
@@ -26,4 +17,3 @@ Foundation and individual contributors.
* Font Awesome fonts redistributed under the SIL Open Font License 1.1
* simplediff is distributed under the zlib license.

View File

@@ -1,288 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Note:
Individual files contain the following tag instead of the full license text.
SPDX-License-Identifier: GPL-2.0-only
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

View File

@@ -1,25 +0,0 @@
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.
Note:
Individual files contain the following tag instead of the full license text.
SPDX-License-Identifier: MIT
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

View File

@@ -7,57 +7,29 @@ One of BitBake's main users, OpenEmbedded, takes this core and builds embedded L
stacks using a task-oriented approach.
For information about Bitbake, see the OpenEmbedded website:
https://www.openembedded.org/
http://www.openembedded.org/
Bitbake plain documentation can be found under the doc directory or its integrated
html version at the Yocto Project website:
https://docs.yoctoproject.org
Bitbake requires Python version 3.8 or newer.
http://yoctoproject.org/documentation
Contributing
------------
Please refer to our contributor guide here: https://docs.yoctoproject.org/contributor-guide/
for full details on how to submit changes.
As a quick guide, patches should be sent to bitbake-devel@lists.openembedded.org
The git command to do that would be:
Please refer to
http://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded
for guidelines on how to submit patches, just note that the latter documentation is intended
for OpenEmbedded (and its core) not bitbake patches (bitbake-devel@lists.openembedded.org)
but in general main guidelines apply. Once the commit(s) have been created, the way to send
the patch is through git-send-email. For example, to send the last commit (HEAD) on current
branch, type:
git send-email -M -1 --to bitbake-devel@lists.openembedded.org
If you're sending a patch related to the BitBake manual, make sure you copy
the Yocto Project documentation mailing list:
git send-email -M -1 --to bitbake-devel@lists.openembedded.org --cc docs@lists.yoctoproject.org
Mailing list:
https://lists.openembedded.org/g/bitbake-devel
http://lists.openembedded.org/mailman/listinfo/bitbake-devel
Source code:
https://git.openembedded.org/bitbake/
Testing
-------
Bitbake has a testsuite located in lib/bb/tests/ whichs aim to try and prevent regressions.
You can run this with "bitbake-selftest". In particular the fetcher is well covered since
it has so many corner cases. The datastore has many tests too. Testing with the testsuite is
recommended before submitting patches, particularly to the fetcher and datastore. We also
appreciate new test cases and may require them for more obscure issues.
To run the tests "zstd" and "git" must be installed.
The assumption is made that this testsuite is run from an initialized OpenEmbedded build
environment (i.e. `source oe-init-build-env` is used). If this is not the case, run the
testsuite as follows:
export PATH=$(pwd)/bin:$PATH
bin/bitbake-selftest
The testsuite can alternatively be executed using pytest, e.g. obtained from PyPI (in this
case, the PATH is configured automatically):
pytest
http://git.openembedded.org/bitbake/

View File

@@ -1,24 +0,0 @@
How to Report a Potential Vulnerability?
========================================
If you would like to report a public issue (for example, one with a released
CVE number), please report it using the
[https://bugzilla.yoctoproject.org/enter_bug.cgi?product=Security Security Bugzilla].
If you have a patch ready, submit it following the same procedure as any other
patch as described in README.md.
If you are dealing with a not-yet released or urgent issue, please send a
message to security AT yoctoproject DOT org, including as many details as
possible: the layer or software module affected, the recipe and its version,
and any example code, if available.
Branches maintained with security fixes
---------------------------------------
See [https://wiki.yoctoproject.org/wiki/Stable_Release_and_LTS Stable release and LTS]
for detailed info regarding the policies and maintenance of Stable branches.
The [https://wiki.yoctoproject.org/wiki/Releases Release page] contains a list of all
releases of the Yocto Project. Versions in grey are no longer actively maintained with
security patches, but well-tested patches may still be accepted for them for
significant issues.

View File

@@ -1,4 +1,6 @@
#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2003, 2004 Phil Blundell
@@ -7,13 +9,21 @@
# Copyright (C) 2005 ROAD GmbH
# Copyright (C) 2006 Richard Purdie
#
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os
import sys
import warnings
warnings.simplefilter("default")
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)),
'lib'))
@@ -25,9 +35,10 @@ except RuntimeError as exc:
from bb import cookerdata
from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException
bb.utils.check_system_locale()
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__ = "2.9.1"
__version__ = "1.40.0"
if __name__ == "__main__":
if __version__ != bb.__version__:

View File

@@ -1 +0,0 @@
bitbake-layers

View File

@@ -5,14 +5,22 @@
#
# Copyright (C) 2012-2013, 2017 Intel Corporation
#
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os
import sys
import warnings
warnings.simplefilter("default")
import argparse
import logging
import pickle
@@ -28,7 +36,6 @@ logger = bb.msg.logger_create(myname)
is_dump = myname == 'bitbake-dumpsig'
def find_siginfo(tinfoil, pn, taskname, sigs=None):
result = None
tinfoil.set_event_mask(['bb.event.FindSigInfoResult',
@@ -54,7 +61,6 @@ def find_siginfo(tinfoil, pn, taskname, sigs=None):
sys.exit(2)
return result
def find_siginfo_task(bbhandler, pn, taskname, sig1=None, sig2=None):
""" Find the most recent signature files for the specified PN/task """
@@ -63,26 +69,22 @@ def find_siginfo_task(bbhandler, pn, taskname, sig1=None, sig2=None):
if sig1 and sig2:
sigfiles = find_siginfo(bbhandler, pn, taskname, [sig1, sig2])
if not sigfiles:
if len(sigfiles) == 0:
logger.error('No sigdata files found matching %s %s matching either %s or %s' % (pn, taskname, sig1, sig2))
sys.exit(1)
elif sig1 not in sigfiles:
elif not sig1 in sigfiles:
logger.error('No sigdata files found matching %s %s with signature %s' % (pn, taskname, sig1))
sys.exit(1)
elif sig2 not in sigfiles:
elif not sig2 in sigfiles:
logger.error('No sigdata files found matching %s %s with signature %s' % (pn, taskname, sig2))
sys.exit(1)
latestfiles = [sigfiles[sig1]['path'], sigfiles[sig2]['path']]
latestfiles = [sigfiles[sig1], sigfiles[sig2]]
else:
sigfiles = find_siginfo(bbhandler, pn, taskname)
latestsigs = sorted(sigfiles.keys(), key=lambda h: sigfiles[h]['time'])[-2:]
if not latestsigs:
filedates = find_siginfo(bbhandler, pn, taskname)
latestfiles = sorted(filedates.keys(), key=lambda f: filedates[f])[-2:]
if not latestfiles:
logger.error('No sigdata files found matching %s %s' % (pn, taskname))
sys.exit(1)
latestfiles = [sigfiles[latestsigs[0]]['path']]
if len(latestsigs) > 1:
latestfiles.append(sigfiles[latestsigs[1]]['path'])
return latestfiles
@@ -93,17 +95,17 @@ def recursecb(key, hash1, hash2):
hashfiles = find_siginfo(tinfoil, key, None, hashes)
recout = []
if not hashfiles:
if len(hashfiles) == 0:
recout.append("Unable to find matching sigdata for %s with hashes %s or %s" % (key, hash1, hash2))
elif hash1 not in hashfiles:
elif not hash1 in hashfiles:
recout.append("Unable to find matching sigdata for %s with hash %s" % (key, hash1))
elif hash2 not in hashfiles:
elif not hash2 in hashfiles:
recout.append("Unable to find matching sigdata for %s with hash %s" % (key, hash2))
else:
out2 = bb.siggen.compare_sigfiles(hashfiles[hash1]['path'], hashfiles[hash2]['path'], recursecb, color=color)
out2 = bb.siggen.compare_sigfiles(hashfiles[hash1], hashfiles[hash2], recursecb, color=color)
for change in out2:
for line in change.splitlines():
recout.append(' ' + line)
recout.append(' ' + line)
return recout
@@ -117,36 +119,36 @@ parser.add_argument('-D', '--debug',
if is_dump:
parser.add_argument("-t", "--task",
help="find the signature data file for the last run of the specified task",
action="store", dest="taskargs", nargs=2, metavar=('recipename', 'taskname'))
help="find the signature data file for the last run of the specified task",
action="store", dest="taskargs", nargs=2, metavar=('recipename', 'taskname'))
parser.add_argument("sigdatafile1",
help="Signature file to dump. Not used when using -t/--task.",
action="store", nargs='?', metavar="sigdatafile")
help="Signature file to dump. Not used when using -t/--task.",
action="store", nargs='?', metavar="sigdatafile")
else:
parser.add_argument('-c', '--color',
help='Colorize the output (where %(metavar)s is %(choices)s)',
choices=['auto', 'always', 'never'], default='auto', metavar='color')
help='Colorize the output (where %(metavar)s is %(choices)s)',
choices=['auto', 'always', 'never'], default='auto', metavar='color')
parser.add_argument('-d', '--dump',
help='Dump the last signature data instead of comparing (equivalent to using bitbake-dumpsig)',
action='store_true')
help='Dump the last signature data instead of comparing (equivalent to using bitbake-dumpsig)',
action='store_true')
parser.add_argument("-t", "--task",
help="find the signature data files for the last two runs of the specified task and compare them",
action="store", dest="taskargs", nargs=2, metavar=('recipename', 'taskname'))
help="find the signature data files for the last two runs of the specified task and compare them",
action="store", dest="taskargs", nargs=2, metavar=('recipename', 'taskname'))
parser.add_argument("-s", "--signature",
help="With -t/--task, specify the signatures to look for instead of taking the last two",
action="store", dest="sigargs", nargs=2, metavar=('fromsig', 'tosig'))
help="With -t/--task, specify the signatures to look for instead of taking the last two",
action="store", dest="sigargs", nargs=2, metavar=('fromsig', 'tosig'))
parser.add_argument("sigdatafile1",
help="First signature file to compare (or signature file to dump, if second not specified). Not used when using -t/--task.",
action="store", nargs='?')
help="First signature file to compare (or signature file to dump, if second not specified). Not used when using -t/--task.",
action="store", nargs='?')
parser.add_argument("sigdatafile2",
help="Second signature file to compare",
action="store", nargs='?')
help="Second signature file to compare",
action="store", nargs='?')
options = parser.parse_args()
if is_dump:
@@ -164,8 +166,7 @@ if options.taskargs:
with bb.tinfoil.Tinfoil() as tinfoil:
tinfoil.prepare(config_only=True)
if not options.dump and options.sigargs:
files = find_siginfo_task(tinfoil, options.taskargs[0], options.taskargs[1], options.sigargs[0],
options.sigargs[1])
files = find_siginfo_task(tinfoil, options.taskargs[0], options.taskargs[1], options.sigargs[0], options.sigargs[1])
else:
files = find_siginfo_task(tinfoil, options.taskargs[0], options.taskargs[1])
@@ -174,8 +175,7 @@ if options.taskargs:
output = bb.siggen.dump_sigfile(files[-1])
else:
if len(files) < 2:
logger.error('Only one matching sigdata file found for the specified task (%s %s)' % (
options.taskargs[0], options.taskargs[1]))
logger.error('Only one matching sigdata file found for the specified task (%s %s)' % (options.taskargs[0], options.taskargs[1]))
sys.exit(1)
# Recurse into signature comparison

View File

@@ -1,66 +0,0 @@
#! /usr/bin/env python3
#
# Copyright (C) 2021 Richard Purdie
#
# SPDX-License-Identifier: GPL-2.0-only
#
import argparse
import io
import os
import sys
import warnings
warnings.simplefilter("default")
bindir = os.path.dirname(__file__)
topdir = os.path.dirname(bindir)
sys.path[0:0] = [os.path.join(topdir, 'lib')]
import bb.providers
import bb.tinfoil
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Bitbake Query Variable")
parser.add_argument("variable", help="variable name to query")
parser.add_argument("-r", "--recipe", help="Recipe name to query", default=None, required=False)
parser.add_argument('-u', '--unexpand', help='Do not expand the value (with --value)', action="store_true")
parser.add_argument('-f', '--flag', help='Specify a variable flag to query (with --value)', default=None)
parser.add_argument('--value', help='Only report the value, no history and no variable name', action="store_true")
parser.add_argument('-q', '--quiet', help='Silence bitbake server logging', action="store_true")
parser.add_argument('--ignore-undefined', help='Suppress any errors related to undefined variables', action="store_true")
args = parser.parse_args()
if not args.value:
if args.unexpand:
sys.exit("--unexpand only makes sense with --value")
if args.flag:
sys.exit("--flag only makes sense with --value")
quiet = args.quiet or args.value
with bb.tinfoil.Tinfoil(tracking=True, setup_logging=not quiet) as tinfoil:
if args.recipe:
tinfoil.prepare(quiet=3 if quiet else 2)
try:
d = tinfoil.parse_recipe(args.recipe)
except bb.providers.NoProvider as e:
sys.exit(str(e))
else:
tinfoil.prepare(quiet=2, config_only=True)
# Expand keys and run anonymous functions to get identical result to
# "bitbake -e"
d = tinfoil.finalizeData()
value = None
if args.flag:
value = d.getVarFlag(args.variable, args.flag, expand=not args.unexpand)
if value is None and not args.ignore_undefined:
sys.exit(f"The flag '{args.flag}' is not defined for variable '{args.variable}'")
else:
value = d.getVar(args.variable, expand=not args.unexpand)
if value is None and not args.ignore_undefined:
sys.exit(f"The variable '{args.variable}' is not defined")
if args.value:
print(str(value if value is not None else ""))
else:
bb.data.emit_var(args.variable, d=d, all=True)

View File

@@ -1,431 +0,0 @@
#! /usr/bin/env python3
#
# Copyright (C) 2019 Garmin Ltd.
#
# SPDX-License-Identifier: GPL-2.0-only
#
import argparse
import hashlib
import logging
import os
import pprint
import sys
import threading
import time
import warnings
import netrc
import json
import statistics
import textwrap
warnings.simplefilter("default")
try:
import tqdm
ProgressBar = tqdm.tqdm
except ImportError:
class ProgressBar(object):
def __init__(self, *args, **kwargs):
pass
def __enter__(self):
return self
def __exit__(self, *args, **kwargs):
pass
def update(self):
pass
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib'))
import hashserv
import bb.asyncrpc
DEFAULT_ADDRESS = 'unix://./hashserve.sock'
METHOD = 'stress.test.method'
def print_user(u):
print(f"Username: {u['username']}")
if "permissions" in u:
print("Permissions: " + " ".join(u["permissions"]))
if "token" in u:
print(f"Token: {u['token']}")
def main():
def handle_get(args, client):
result = client.get_taskhash(args.method, args.taskhash, all_properties=True)
if not result:
return 0
print(json.dumps(result, sort_keys=True, indent=4))
return 0
def handle_get_outhash(args, client):
result = client.get_outhash(args.method, args.outhash, args.taskhash)
if not result:
return 0
print(json.dumps(result, sort_keys=True, indent=4))
return 0
def handle_stats(args, client):
if args.reset:
s = client.reset_stats()
else:
s = client.get_stats()
print(json.dumps(s, sort_keys=True, indent=4))
return 0
def handle_stress(args, client):
def thread_main(pbar, lock):
nonlocal found_hashes
nonlocal missed_hashes
nonlocal max_time
nonlocal times
with hashserv.create_client(args.address) as client:
for i in range(args.requests):
taskhash = hashlib.sha256()
taskhash.update(args.taskhash_seed.encode('utf-8'))
taskhash.update(str(i).encode('utf-8'))
start_time = time.perf_counter()
l = client.get_unihash(METHOD, taskhash.hexdigest())
elapsed = time.perf_counter() - start_time
with lock:
if l:
found_hashes += 1
else:
missed_hashes += 1
times.append(elapsed)
pbar.update()
max_time = 0
found_hashes = 0
missed_hashes = 0
lock = threading.Lock()
times = []
start_time = time.perf_counter()
with ProgressBar(total=args.clients * args.requests) as pbar:
threads = [threading.Thread(target=thread_main, args=(pbar, lock), daemon=False) for _ in range(args.clients)]
for t in threads:
t.start()
for t in threads:
t.join()
total_elapsed = time.perf_counter() - start_time
with lock:
mean = statistics.mean(times)
median = statistics.median(times)
stddev = statistics.pstdev(times)
print(f"Number of clients: {args.clients}")
print(f"Requests per client: {args.requests}")
print(f"Number of requests: {len(times)}")
print(f"Total elapsed time: {total_elapsed:.3f}s")
print(f"Total request rate: {len(times)/total_elapsed:.3f} req/s")
print(f"Average request time: {mean:.3f}s")
print(f"Median request time: {median:.3f}s")
print(f"Request time std dev: {stddev:.3f}s")
print(f"Maximum request time: {max(times):.3f}s")
print(f"Minimum request time: {min(times):.3f}s")
print(f"Hashes found: {found_hashes}")
print(f"Hashes missed: {missed_hashes}")
if args.report:
with ProgressBar(total=args.requests) as pbar:
for i in range(args.requests):
taskhash = hashlib.sha256()
taskhash.update(args.taskhash_seed.encode('utf-8'))
taskhash.update(str(i).encode('utf-8'))
outhash = hashlib.sha256()
outhash.update(args.outhash_seed.encode('utf-8'))
outhash.update(str(i).encode('utf-8'))
client.report_unihash(taskhash.hexdigest(), METHOD, outhash.hexdigest(), taskhash.hexdigest())
with lock:
pbar.update()
def handle_remove(args, client):
where = {k: v for k, v in args.where}
if where:
result = client.remove(where)
print("Removed %d row(s)" % (result["count"]))
else:
print("No query specified")
def handle_clean_unused(args, client):
result = client.clean_unused(args.max_age)
print("Removed %d rows" % (result["count"]))
return 0
def handle_refresh_token(args, client):
r = client.refresh_token(args.username)
print_user(r)
def handle_set_user_permissions(args, client):
r = client.set_user_perms(args.username, args.permissions)
print_user(r)
def handle_get_user(args, client):
r = client.get_user(args.username)
print_user(r)
def handle_get_all_users(args, client):
users = client.get_all_users()
print("{username:20}| {permissions}".format(username="Username", permissions="Permissions"))
print(("-" * 20) + "+" + ("-" * 20))
for u in users:
print("{username:20}| {permissions}".format(username=u["username"], permissions=" ".join(u["permissions"])))
def handle_new_user(args, client):
r = client.new_user(args.username, args.permissions)
print_user(r)
def handle_delete_user(args, client):
r = client.delete_user(args.username)
print_user(r)
def handle_get_db_usage(args, client):
usage = client.get_db_usage()
print(usage)
tables = sorted(usage.keys())
print("{name:20}| {rows:20}".format(name="Table name", rows="Rows"))
print(("-" * 20) + "+" + ("-" * 20))
for t in tables:
print("{name:20}| {rows:<20}".format(name=t, rows=usage[t]["rows"]))
print()
total_rows = sum(t["rows"] for t in usage.values())
print(f"Total rows: {total_rows}")
def handle_get_db_query_columns(args, client):
columns = client.get_db_query_columns()
print("\n".join(sorted(columns)))
def handle_gc_status(args, client):
result = client.gc_status()
if not result["mark"]:
print("No Garbage collection in progress")
return 0
print("Current Mark: %s" % result["mark"])
print("Total hashes to keep: %d" % result["keep"])
print("Total hashes to remove: %s" % result["remove"])
return 0
def handle_gc_mark(args, client):
where = {k: v for k, v in args.where}
result = client.gc_mark(args.mark, where)
print("New hashes marked: %d" % result["count"])
return 0
def handle_gc_sweep(args, client):
result = client.gc_sweep(args.mark)
print("Removed %d rows" % result["count"])
return 0
def handle_unihash_exists(args, client):
result = client.unihash_exists(args.unihash)
if args.quiet:
return 0 if result else 1
print("true" if result else "false")
return 0
def handle_ping(args, client):
times = []
for i in range(1, args.count + 1):
if not args.quiet:
print(f"Ping {i} of {args.count}... ", end="")
start_time = time.perf_counter()
client.ping()
elapsed = time.perf_counter() - start_time
times.append(elapsed)
if not args.quiet:
print(f"{elapsed:.3f}s")
mean = statistics.mean(times)
median = statistics.median(times)
std_dev = statistics.pstdev(times)
if not args.quiet:
print("------------------------")
print(f"Number of pings: {len(times)}")
print(f"Average round trip time: {mean:.3f}s")
print(f"Median round trip time: {median:.3f}s")
print(f"Round trip time std dev: {std_dev:.3f}s")
print(f"Min time is: {min(times):.3f}s")
print(f"Max time is: {max(times):.3f}s")
return 0
parser = argparse.ArgumentParser(
formatter_class=argparse.RawDescriptionHelpFormatter,
description='Hash Equivalence Client',
epilog=textwrap.dedent(
"""
Possible ADDRESS options are:
unix://PATH Connect to UNIX domain socket at PATH
ws://HOST[:PORT] Connect to websocket at HOST:PORT (default port is 80)
wss://HOST[:PORT] Connect to secure websocket at HOST:PORT (default port is 443)
HOST:PORT Connect to TCP server at HOST:PORT
"""
),
)
parser.add_argument('--address', default=DEFAULT_ADDRESS, help='Server address (default "%(default)s")')
parser.add_argument('--log', default='WARNING', help='Set logging level')
parser.add_argument('--login', '-l', metavar="USERNAME", help="Authenticate as USERNAME")
parser.add_argument('--password', '-p', metavar="TOKEN", help="Authenticate using token TOKEN")
parser.add_argument('--become', '-b', metavar="USERNAME", help="Impersonate user USERNAME (if allowed) when performing actions")
parser.add_argument('--no-netrc', '-n', action="store_false", dest="netrc", help="Do not use .netrc")
subparsers = parser.add_subparsers()
get_parser = subparsers.add_parser('get', help="Get the unihash for a taskhash")
get_parser.add_argument("method", help="Method to query")
get_parser.add_argument("taskhash", help="Task hash to query")
get_parser.set_defaults(func=handle_get)
get_outhash_parser = subparsers.add_parser('get-outhash', help="Get output hash information")
get_outhash_parser.add_argument("method", help="Method to query")
get_outhash_parser.add_argument("outhash", help="Output hash to query")
get_outhash_parser.add_argument("taskhash", help="Task hash to query")
get_outhash_parser.set_defaults(func=handle_get_outhash)
stats_parser = subparsers.add_parser('stats', help='Show server stats')
stats_parser.add_argument('--reset', action='store_true',
help='Reset server stats')
stats_parser.set_defaults(func=handle_stats)
stress_parser = subparsers.add_parser('stress', help='Run stress test')
stress_parser.add_argument('--clients', type=int, default=10,
help='Number of simultaneous clients')
stress_parser.add_argument('--requests', type=int, default=1000,
help='Number of requests each client will perform')
stress_parser.add_argument('--report', action='store_true',
help='Report new hashes')
stress_parser.add_argument('--taskhash-seed', default='',
help='Include string in taskhash')
stress_parser.add_argument('--outhash-seed', default='',
help='Include string in outhash')
stress_parser.set_defaults(func=handle_stress)
remove_parser = subparsers.add_parser('remove', help="Remove hash entries")
remove_parser.add_argument("--where", "-w", metavar="KEY VALUE", nargs=2, action="append", default=[],
help="Remove entries from table where KEY == VALUE")
remove_parser.set_defaults(func=handle_remove)
clean_unused_parser = subparsers.add_parser('clean-unused', help="Remove unused database entries")
clean_unused_parser.add_argument("max_age", metavar="SECONDS", type=int, help="Remove unused entries older than SECONDS old")
clean_unused_parser.set_defaults(func=handle_clean_unused)
refresh_token_parser = subparsers.add_parser('refresh-token', help="Refresh auth token")
refresh_token_parser.add_argument("--username", "-u", help="Refresh the token for another user (if authorized)")
refresh_token_parser.set_defaults(func=handle_refresh_token)
set_user_perms_parser = subparsers.add_parser('set-user-perms', help="Set new permissions for user")
set_user_perms_parser.add_argument("--username", "-u", help="Username", required=True)
set_user_perms_parser.add_argument("permissions", metavar="PERM", nargs="*", default=[], help="New permissions")
set_user_perms_parser.set_defaults(func=handle_set_user_permissions)
get_user_parser = subparsers.add_parser('get-user', help="Get user")
get_user_parser.add_argument("--username", "-u", help="Username")
get_user_parser.set_defaults(func=handle_get_user)
get_all_users_parser = subparsers.add_parser('get-all-users', help="List all users")
get_all_users_parser.set_defaults(func=handle_get_all_users)
new_user_parser = subparsers.add_parser('new-user', help="Create new user")
new_user_parser.add_argument("--username", "-u", help="Username", required=True)
new_user_parser.add_argument("permissions", metavar="PERM", nargs="*", default=[], help="New permissions")
new_user_parser.set_defaults(func=handle_new_user)
delete_user_parser = subparsers.add_parser('delete-user', help="Delete user")
delete_user_parser.add_argument("--username", "-u", help="Username", required=True)
delete_user_parser.set_defaults(func=handle_delete_user)
db_usage_parser = subparsers.add_parser('get-db-usage', help="Database Usage")
db_usage_parser.set_defaults(func=handle_get_db_usage)
db_query_columns_parser = subparsers.add_parser('get-db-query-columns', help="Show columns that can be used in database queries")
db_query_columns_parser.set_defaults(func=handle_get_db_query_columns)
gc_status_parser = subparsers.add_parser("gc-status", help="Show garbage collection status")
gc_status_parser.set_defaults(func=handle_gc_status)
gc_mark_parser = subparsers.add_parser('gc-mark', help="Mark hashes to be kept for garbage collection")
gc_mark_parser.add_argument("mark", help="Mark for this garbage collection operation")
gc_mark_parser.add_argument("--where", "-w", metavar="KEY VALUE", nargs=2, action="append", default=[],
help="Keep entries in table where KEY == VALUE")
gc_mark_parser.set_defaults(func=handle_gc_mark)
gc_sweep_parser = subparsers.add_parser('gc-sweep', help="Perform garbage collection and delete any entries that are not marked")
gc_sweep_parser.add_argument("mark", help="Mark for this garbage collection operation")
gc_sweep_parser.set_defaults(func=handle_gc_sweep)
unihash_exists_parser = subparsers.add_parser('unihash-exists', help="Check if a unihash is known to the server")
unihash_exists_parser.add_argument("--quiet", action="store_true", help="Don't print status. Instead, exit with 0 if unihash exists and 1 if it does not")
unihash_exists_parser.add_argument("unihash", help="Unihash to check")
unihash_exists_parser.set_defaults(func=handle_unihash_exists)
ping_parser = subparsers.add_parser('ping', help="Ping server")
ping_parser.add_argument("-n", "--count", type=int, help="Number of pings. Default is %(default)s", default=10)
ping_parser.add_argument("-q", "--quiet", action="store_true", help="Don't print each ping; only print results")
ping_parser.set_defaults(func=handle_ping)
args = parser.parse_args()
logger = logging.getLogger('hashserv')
level = getattr(logging, args.log.upper(), None)
if not isinstance(level, int):
raise ValueError('Invalid log level: %s' % args.log)
logger.setLevel(level)
console = logging.StreamHandler()
console.setLevel(level)
logger.addHandler(console)
login = args.login
password = args.password
if login is None and args.netrc:
try:
n = netrc.netrc()
auth = n.authenticators(args.address)
if auth is not None:
login, _, password = auth
except FileNotFoundError:
pass
except netrc.NetrcParseError as e:
sys.stderr.write(f"Error parsing {e.filename}:{e.lineno}: {e.msg}\n")
func = getattr(args, 'func', None)
if func:
try:
with hashserv.create_client(args.address, login, password) as client:
if args.become:
client.become_user(args.become)
return func(args, client)
except bb.asyncrpc.InvokeError as e:
print(f"ERROR: {e}")
return 1
return 0
if __name__ == '__main__':
try:
ret = main()
except Exception:
ret = 1
import traceback
traceback.print_exc()
sys.exit(ret)

View File

@@ -1,179 +0,0 @@
#! /usr/bin/env python3
#
# Copyright (C) 2018 Garmin Ltd.
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import sys
import logging
import argparse
import sqlite3
import warnings
warnings.simplefilter("default")
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), "lib"))
import hashserv
from hashserv.server import DEFAULT_ANON_PERMS
VERSION = "1.0.0"
DEFAULT_BIND = "unix://./hashserve.sock"
def main():
parser = argparse.ArgumentParser(
description="Hash Equivalence Reference Server. Version=%s" % VERSION,
formatter_class=argparse.RawTextHelpFormatter,
epilog="""
The bind address may take one of the following formats:
unix://PATH - Bind to unix domain socket at PATH
ws://ADDRESS:PORT - Bind to websocket on ADDRESS:PORT
ADDRESS:PORT - Bind to raw TCP socket on ADDRESS:PORT
To bind to all addresses, leave the ADDRESS empty, e.g. "--bind :8686" or
"--bind ws://:8686". To bind to a specific IPv6 address, enclose the address in
"[]", e.g. "--bind [::1]:8686" or "--bind ws://[::1]:8686"
Note that the default Anonymous permissions are designed to not break existing
server instances when upgrading, but are not particularly secure defaults. If
you want to use authentication, it is recommended that you use "--anon-perms
@read" to only give anonymous users read access, or "--anon-perms @none" to
give un-authenticated users no access at all.
Setting "--anon-perms @all" or "--anon-perms @user-admin" is not allowed, since
this would allow anonymous users to manage all users accounts, which is a bad
idea.
If you are using user authentication, you should run your server in websockets
mode with an SSL terminating load balancer in front of it (as this server does
not implement SSL). Otherwise all usernames and passwords will be transmitted
in the clear. When configured this way, clients can connect using a secure
websocket, as in "wss://SERVER:PORT"
The following permissions are supported by the server:
@none - No permissions
@read - The ability to read equivalent hashes from the server
@report - The ability to report equivalent hashes to the server
@db-admin - Manage the hash database(s). This includes cleaning the
database, removing hashes, etc.
@user-admin - The ability to manage user accounts. This includes, creating
users, deleting users, resetting login tokens, and assigning
permissions.
@all - All possible permissions, including any that may be added
in the future
""",
)
parser.add_argument(
"-b",
"--bind",
default=os.environ.get("HASHSERVER_BIND", DEFAULT_BIND),
help='Bind address (default $HASHSERVER_BIND, "%(default)s")',
)
parser.add_argument(
"-d",
"--database",
default=os.environ.get("HASHSERVER_DB", "./hashserv.db"),
help='Database file (default $HASHSERVER_DB, "%(default)s")',
)
parser.add_argument(
"-l",
"--log",
default=os.environ.get("HASHSERVER_LOG_LEVEL", "WARNING"),
help='Set logging level (default $HASHSERVER_LOG_LEVEL, "%(default)s")',
)
parser.add_argument(
"-u",
"--upstream",
default=os.environ.get("HASHSERVER_UPSTREAM", None),
help="Upstream hashserv to pull hashes from ($HASHSERVER_UPSTREAM)",
)
parser.add_argument(
"-r",
"--read-only",
action="store_true",
help="Disallow write operations from clients ($HASHSERVER_READ_ONLY)",
)
parser.add_argument(
"--db-username",
default=os.environ.get("HASHSERVER_DB_USERNAME", None),
help="Database username ($HASHSERVER_DB_USERNAME)",
)
parser.add_argument(
"--db-password",
default=os.environ.get("HASHSERVER_DB_PASSWORD", None),
help="Database password ($HASHSERVER_DB_PASSWORD)",
)
parser.add_argument(
"--anon-perms",
metavar="PERM[,PERM[,...]]",
default=os.environ.get("HASHSERVER_ANON_PERMS", ",".join(DEFAULT_ANON_PERMS)),
help='Permissions to give anonymous users (default $HASHSERVER_ANON_PERMS, "%(default)s")',
)
parser.add_argument(
"--admin-user",
default=os.environ.get("HASHSERVER_ADMIN_USER", None),
help="Create default admin user with name ADMIN_USER ($HASHSERVER_ADMIN_USER)",
)
parser.add_argument(
"--admin-password",
default=os.environ.get("HASHSERVER_ADMIN_PASSWORD", None),
help="Create default admin user with password ADMIN_PASSWORD ($HASHSERVER_ADMIN_PASSWORD)",
)
parser.add_argument(
"--reuseport",
action="store_true",
help="Enable SO_REUSEPORT, allowing multiple servers to bind to the same port for load balancing",
)
args = parser.parse_args()
logger = logging.getLogger("hashserv")
level = getattr(logging, args.log.upper(), None)
if not isinstance(level, int):
raise ValueError(
"Invalid log level: %s (Try ERROR/WARNING/INFO/DEBUG)" % args.log
)
logger.setLevel(level)
console = logging.StreamHandler()
console.setLevel(level)
logger.addHandler(console)
read_only = (os.environ.get("HASHSERVER_READ_ONLY", "0") == "1") or args.read_only
if "," in args.anon_perms:
anon_perms = args.anon_perms.split(",")
else:
anon_perms = args.anon_perms.split()
server = hashserv.create_server(
args.bind,
args.database,
upstream=args.upstream,
read_only=read_only,
db_username=args.db_username,
db_password=args.db_password,
anon_perms=anon_perms,
admin_username=args.admin_user,
admin_password=args.admin_password,
reuseport=args.reuseport,
)
server.serve_forever()
return 0
if __name__ == "__main__":
try:
ret = main()
except Exception:
ret = 1
import traceback
traceback.print_exc()
sys.exit(ret)

View File

@@ -7,34 +7,43 @@
# Copyright (C) 2011 Mentor Graphics Corporation
# Copyright (C) 2011-2015 Intel Corporation
#
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import logging
import os
import sys
import argparse
import warnings
warnings.simplefilter("default")
import signal
bindir = os.path.dirname(__file__)
toolname = os.path.basename(__file__).split(".")[0]
topdir = os.path.dirname(bindir)
sys.path[0:0] = [os.path.join(topdir, 'lib')]
import bb.tinfoil
import bb.msg
logger = bb.msg.logger_create(toolname, sys.stdout)
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",
add_help=False)
parser.add_argument('-d', '--debug', help='Enable debug output', action='store_true')
parser.add_argument('-q', '--quiet', help='Print only errors', action='store_true')
parser.add_argument('-F', '--force', help='Forced execution: can be specified multiple times. -F will force add without recipe parse verification and -FF will additionally force the run withput layer parsing.', action='count', default=0)
parser.add_argument('-F', '--force', help='Force add without recipe parse verification', action='store_true')
parser.add_argument('--color', choices=['auto', 'always', 'never'], default='auto', help='Colorize output (where %(metavar)s is %(choices)s)', metavar='COLOR')
global_args, unparsed_args = parser.parse_known_args()
@@ -53,32 +62,25 @@ 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 = []
with bb.tinfoil.Tinfoil(tracking=True) as tinfoil:
tinfoil.logger.setLevel(logger.getEffectiveLevel())
if global_args.force > 1:
bbpaths = []
else:
tinfoil.prepare(True)
bbpaths = tinfoil.config_data.getVar('BBPATH').split(':')
for path in ([topdir] + bbpaths):
pluginbasepath = {"bitbake-layers":'bblayers', 'bitbake-config-build':'bbconfigbuild'}[toolname]
pluginpath = os.path.join(path, 'lib', pluginbasepath)
tinfoil = bb.tinfoil.Tinfoil(tracking=True)
tinfoil.logger.setLevel(logger.getEffectiveLevel())
try:
tinfoil.prepare(True)
for path in ([topdir] +
tinfoil.config_data.getVar('BBPATH').split(':')):
pluginpath = os.path.join(path, 'lib', 'bblayers')
bb.utils.load_plugins(logger, plugins, pluginpath)
registered = False
for plugin in plugins:
if hasattr(plugin, 'tinfoil_init') and global_args.force <= 1:
plugin.tinfoil_init(tinfoil)
if hasattr(plugin, 'register_commands'):
registered = True
plugin.register_commands(subparsers)
if hasattr(plugin, 'tinfoil_init'):
plugin.tinfoil_init(tinfoil)
if not registered:
logger.error("No commands registered - missing plugins?")
@@ -92,6 +94,8 @@ def main():
tinfoil.config_data.enableTracking()
return args.func(args)
finally:
tinfoil.shutdown()
if __name__ == "__main__":

View File

@@ -1,103 +1,45 @@
#!/usr/bin/env python3
#
# Copyright BitBake Contributors
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import sys,logging
import argparse
import warnings
warnings.simplefilter("default")
import optparse
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), "lib"))
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)),'lib'))
import prserv
import prserv.serv
VERSION = "2.0.0"
__version__="1.0.0"
PRHOST_DEFAULT="0.0.0.0"
PRHOST_DEFAULT='0.0.0.0'
PRPORT_DEFAULT=8585
def init_logger(logfile, loglevel):
numeric_level = getattr(logging, loglevel.upper(), None)
if not isinstance(numeric_level, int):
raise ValueError("Invalid log level: %s" % loglevel)
FORMAT = "%(asctime)-15s %(message)s"
logging.basicConfig(level=numeric_level, filename=logfile, format=FORMAT)
def main():
parser = argparse.ArgumentParser(
description="BitBake PR Server. Version=%s" % VERSION,
formatter_class=argparse.RawTextHelpFormatter)
parser = optparse.OptionParser(
version="Bitbake PR Service Core version %s, %%prog version %s" % (prserv.__version__, __version__),
usage = "%prog < --start | --stop > [options]")
parser.add_argument(
"-f",
"--file",
default="prserv.sqlite3",
help="database filename (default: prserv.sqlite3)",
)
parser.add_argument(
"-l",
"--log",
default="prserv.log",
help="log filename(default: prserv.log)",
)
parser.add_argument(
"--loglevel",
default="INFO",
help="logging level, i.e. CRITICAL, ERROR, WARNING, INFO, DEBUG",
)
parser.add_argument(
"--start",
action="store_true",
help="start daemon",
)
parser.add_argument(
"--stop",
action="store_true",
help="stop daemon",
)
parser.add_argument(
"--host",
help="ip address to bind",
default=PRHOST_DEFAULT,
)
parser.add_argument(
"--port",
type=int,
default=PRPORT_DEFAULT,
help="port number (default: 8585)",
)
parser.add_argument(
"-r",
"--read-only",
action="store_true",
help="open database in read-only mode",
)
parser.add_argument(
"-u",
"--upstream",
default=os.environ.get("PRSERV_UPSTREAM", None),
help="Upstream PR service (host:port)",
)
parser.add_option("-f", "--file", help="database filename(default: prserv.sqlite3)", action="store",
dest="dbfile", type="string", default="prserv.sqlite3")
parser.add_option("-l", "--log", help="log filename(default: prserv.log)", action="store",
dest="logfile", type="string", default="prserv.log")
parser.add_option("--loglevel", help="logging level, i.e. CRITICAL, ERROR, WARNING, INFO, DEBUG",
action = "store", type="string", dest="loglevel", default = "INFO")
parser.add_option("--start", help="start daemon",
action="store_true", dest="start")
parser.add_option("--stop", help="stop daemon",
action="store_true", dest="stop")
parser.add_option("--host", help="ip address to bind", action="store",
dest="host", type="string", default=PRHOST_DEFAULT)
parser.add_option("--port", help="port number(default: 8585)", action="store",
dest="port", type="int", default=PRPORT_DEFAULT)
args = parser.parse_args()
init_logger(os.path.abspath(args.log), args.loglevel)
options, args = parser.parse_args(sys.argv)
prserv.init_logger(os.path.abspath(options.logfile),options.loglevel)
if args.start:
ret=prserv.serv.start_daemon(
args.file,
args.host,
args.port,
os.path.abspath(args.log),
args.read_only,
args.upstream
)
elif args.stop:
ret=prserv.serv.stop_daemon(args.host, args.port)
if options.start:
ret=prserv.serv.start_daemon(options.dbfile, options.host, options.port,os.path.abspath(options.logfile))
elif options.stop:
ret=prserv.serv.stop_daemon(options.host, options.port)
else:
ret=parser.print_help()
return ret

View File

@@ -2,38 +2,38 @@
#
# Copyright (C) 2012 Richard Purdie
#
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os
import sys, logging
import warnings
warnings.simplefilter("default")
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib'))
import unittest
try:
import bb
import hashserv
import prserv
import layerindexlib
except RuntimeError as exc:
sys.exit(str(exc))
tests = ["bb.tests.codeparser",
"bb.tests.color",
"bb.tests.cooker",
"bb.tests.cow",
"bb.tests.data",
"bb.tests.event",
"bb.tests.fetch",
"bb.tests.parse",
"bb.tests.runqueue",
"bb.tests.siggen",
"bb.tests.utils",
"bb.tests.compression",
"hashserv.tests",
"prserv.tests",
"layerindexlib.tests.layerindexobj",
"layerindexlib.tests.restapi",
"layerindexlib.tests.cooker"]

View File

@@ -1,55 +0,0 @@
#!/usr/bin/env python3
#
# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2020 Richard Purdie
#
import os
import sys
import warnings
warnings.simplefilter("default")
import logging
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
import bb
bb.utils.check_system_locale()
# Users shouldn't be running this code directly
if len(sys.argv) != 11 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])
profile = bool(int(sys.argv[8]))
xmlrpcinterface = (sys.argv[9], int(sys.argv[10]))
if xmlrpcinterface[0] == "None":
xmlrpcinterface = (None, xmlrpcinterface[1])
# Replace standard fds with our own
with open('/dev/null', 'r') as si:
os.dup2(si.fileno(), sys.stdin.fileno())
with open(logfile, 'a+') as so:
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, profile)

View File

@@ -1,14 +1,8 @@
#!/usr/bin/env python3
#
# Copyright BitBake Contributors
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import sys
import warnings
warnings.simplefilter("default")
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
from bb import fetch2
import logging
@@ -19,17 +13,11 @@ import signal
import pickle
import traceback
import queue
import shlex
import subprocess
import fcntl
from multiprocessing import Lock
from threading import Thread
# Remove when we have a minimum of python 3.10
if not hasattr(fcntl, 'F_SETPIPE_SZ'):
fcntl.F_SETPIPE_SZ = 1031
bb.utils.check_system_locale()
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) != 2 or not sys.argv[1].startswith("decafbad"):
@@ -49,6 +37,7 @@ if sys.argv[1].startswith("decafbadbad"):
# updates to log files for use with tail
try:
if sys.stdout.name == '<stdout>':
import fcntl
fl = fcntl.fcntl(sys.stdout.fileno(), fcntl.F_GETFL)
fl |= os.O_SYNC
fcntl.fcntl(sys.stdout.fileno(), fcntl.F_SETFL, fl)
@@ -60,12 +49,6 @@ logger = logging.getLogger("BitBake")
worker_pipe = sys.stdout.fileno()
bb.utils.nonblockingfd(worker_pipe)
# Try to make the pipe buffers larger as it is much more efficient. If we can't
# e.g. out of buffer space (/proc/sys/fs/pipe-user-pages-soft) then just pass over.
try:
fcntl.fcntl(worker_pipe, fcntl.F_SETPIPE_SZ, 512 * 1024)
except:
pass
# Need to guard against multiprocessing being used in child processes
# and multiple processes trying to write to the parent at the same time
worker_pipe_lock = None
@@ -79,6 +62,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)
@@ -101,21 +85,21 @@ def worker_fire_prepickled(event):
worker_thread_exit = False
def worker_flush(worker_queue):
worker_queue_int = bytearray()
worker_queue_int = b""
global worker_pipe, worker_thread_exit
while True:
try:
worker_queue_int.extend(worker_queue.get(True, 1))
worker_queue_int = worker_queue_int + worker_queue.get(True, 1)
except queue.Empty:
pass
while (worker_queue_int or not worker_queue.empty()):
try:
(_, ready, _) = select.select([], [worker_pipe], [], 1)
if not worker_queue.empty():
worker_queue_int.extend(worker_queue.get())
worker_queue_int = worker_queue_int + worker_queue.get()
written = os.write(worker_pipe, worker_queue_int)
del worker_queue_int[0:written]
worker_queue_int = worker_queue_int[written:]
except (IOError, OSError) as e:
if e.errno != errno.EAGAIN and e.errno != errno.EPIPE:
raise
@@ -131,10 +115,9 @@ def worker_child_fire(event, d):
data = b"<event>" + pickle.dumps(event) + b"</event>"
try:
with bb.utils.lock_timeout(worker_pipe_lock):
while(len(data)):
written = worker_pipe.write(data)
data = data[written:]
worker_pipe_lock.acquire()
worker_pipe.write(data)
worker_pipe_lock.release()
except IOError:
sigterm_handler(None, None)
raise
@@ -153,59 +136,40 @@ def sigterm_handler(signum, frame):
os.killpg(0, signal.SIGTERM)
sys.exit()
def fork_off_task(cfg, data, databuilder, workerdata, extraconfigdata, runtask):
fn = runtask['fn']
task = runtask['task']
taskname = runtask['taskname']
taskhash = runtask['taskhash']
unihash = runtask['unihash']
appends = runtask['appends']
layername = runtask['layername']
taskdepdata = runtask['taskdepdata']
quieterrors = runtask['quieterrors']
def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, appends, taskdepdata, extraconfigdata, quieterrors=False, dry_run_exec=False):
# We need to setup the environment BEFORE the fork, since
# a fork() or exec*() activates PSEUDO...
envbackup = {}
fakeroot = False
fakeenv = {}
umask = None
uid = os.getuid()
gid = os.getgid()
taskdep = runtask['taskdep']
taskdep = workerdata["taskdeps"][fn]
if 'umask' in taskdep and taskname in taskdep['umask']:
umask = taskdep['umask'][taskname]
elif workerdata["umask"]:
umask = workerdata["umask"]
if umask:
# umask might come in as a number or text string..
try:
umask = int(umask, 8)
umask = int(taskdep['umask'][taskname],8)
except TypeError:
pass
umask = taskdep['umask'][taskname]
dry_run = cfg.dry_run or runtask['dry_run']
dry_run = cfg.dry_run or dry_run_exec
# We can't use the fakeroot environment in a dry run as it possibly hasn't been built
if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not dry_run:
fakeroot = True
envvars = (runtask['fakerootenv'] or "").split()
for key, value in (var.split('=',1) for var in envvars):
envvars = (workerdata["fakerootenv"][fn] or "").split()
for key, value in (var.split('=') for var in envvars):
envbackup[key] = os.environ.get(key)
os.environ[key] = value
fakeenv[key] = value
fakedirs = (runtask['fakerootdirs'] or "").split()
fakedirs = (workerdata["fakerootdirs"][fn] or "").split()
for p in fakedirs:
bb.utils.mkdirhier(p)
logger.debug2('Running %s:%s under fakeroot, fakedirs: %s' %
logger.debug(2, 'Running %s:%s under fakeroot, fakedirs: %s' %
(fn, taskname, ', '.join(fakedirs)))
else:
envvars = (runtask['fakerootnoenv'] or "").split()
for key, value in (var.split('=',1) for var in envvars):
envvars = (workerdata["fakerootnoenv"][fn] or "").split()
for key, value in (var.split('=') for var in envvars):
envbackup[key] = os.environ.get(key)
os.environ[key] = value
fakeenv[key] = value
@@ -247,21 +211,19 @@ def fork_off_task(cfg, data, databuilder, workerdata, extraconfigdata, runtask):
# Let SIGHUP exit as SIGTERM
signal.signal(signal.SIGHUP, sigterm_handler)
# No stdin & stdout
# stdout is used as a status report channel and must not be used by child processes.
dumbio = os.open(os.devnull, os.O_RDWR)
os.dup2(dumbio, sys.stdin.fileno())
os.dup2(dumbio, sys.stdout.fileno())
# No stdin
newsi = os.open(os.devnull, os.O_RDWR)
os.dup2(newsi, sys.stdin.fileno())
if umask is not None:
if umask:
os.umask(umask)
try:
bb_cache = bb.cache.NoCache(databuilder)
(realfn, virtual, mc) = bb.cache.virtualfn2realfn(fn)
the_data = databuilder.mcdata[mc]
the_data.setVar("BB_WORKERCONTEXT", "1")
the_data.setVar("BB_TASKDEPDATA", taskdepdata)
the_data.setVar('BB_CURRENTTASK', taskname.replace("do_", ""))
if cfg.limited_deps:
the_data.setVar("BB_LIMITEDDEPS", "1")
the_data.setVar("BUILDNAME", workerdata["buildname"])
@@ -271,24 +233,13 @@ def fork_off_task(cfg, data, databuilder, workerdata, extraconfigdata, runtask):
the_data.setVar(varname, value)
bb.parse.siggen.set_taskdata(workerdata["sigdata"])
if "newhashes" in workerdata:
bb.parse.siggen.set_taskhashes(workerdata["newhashes"])
ret = 0
the_data = databuilder.parseRecipe(fn, appends, layername)
the_data.setVar('BB_TASKHASH', taskhash)
the_data.setVar('BB_UNIHASH', unihash)
bb.parse.siggen.setup_datacache_from_datastore(fn, the_data)
the_data = bb_cache.loadDataFull(fn, appends)
the_data.setVar('BB_TASKHASH', workerdata["runq_hash"][task])
bb.utils.set_process_name("%s:%s" % (the_data.getVar("PN"), taskname.replace("do_", "")))
if not bb.utils.to_boolean(the_data.getVarFlag(taskname, 'network')):
if bb.utils.is_local_uid(uid):
logger.debug("Attempting to disable network for %s" % taskname)
bb.utils.disable_network(uid, gid)
else:
logger.debug("Skipping disable network for %s since %s is not a local uid." % (taskname, uid))
# exported_vars() returns a generator which *cannot* be passed to os.environ.update()
# successfully. We also need to unset anything from the environment which shouldn't be there
exports = bb.data.exported_vars(the_data)
@@ -317,20 +268,10 @@ def fork_off_task(cfg, data, databuilder, workerdata, extraconfigdata, runtask):
if not quieterrors:
logger.critical(traceback.format_exc())
os._exit(1)
sys.stdout.flush()
sys.stderr.flush()
try:
if dry_run:
return 0
try:
ret = bb.build.exec_task(fn, taskname, the_data, cfg.profile)
finally:
if fakeroot:
fakerootcmd = shlex.split(the_data.getVar("FAKEROOTCMD"))
subprocess.run(fakerootcmd + ['-S'], check=True, stdout=subprocess.PIPE)
return ret
return bb.build.exec_task(fn, taskname, the_data, cfg.profile)
except:
os._exit(1)
if not profiling:
@@ -362,12 +303,12 @@ class runQueueWorkerPipe():
if pipeout:
pipeout.close()
bb.utils.nonblockingfd(self.input)
self.queue = bytearray()
self.queue = b""
def read(self):
start = len(self.queue)
try:
self.queue.extend(self.input.read(512*1024) or b"")
self.queue = self.queue + (self.input.read(102400) or b"")
except (OSError, IOError) as e:
if e.errno != errno.EAGAIN:
raise
@@ -375,9 +316,7 @@ class runQueueWorkerPipe():
end = len(self.queue)
index = self.queue.find(b"</event>")
while index != -1:
msg = self.queue[:index+8]
assert msg.startswith(b"<event>") and msg.count(b"<event>") == 1
worker_fire_prepickled(msg)
worker_fire_prepickled(self.queue[:index+8])
self.queue = self.queue[index+8:]
index = self.queue.find(b"</event>")
return (end > start)
@@ -395,7 +334,7 @@ class BitbakeWorker(object):
def __init__(self, din):
self.input = din
bb.utils.nonblockingfd(self.input)
self.queue = bytearray()
self.queue = b""
self.cookercfg = None
self.databuilder = None
self.data = None
@@ -429,14 +368,13 @@ class BitbakeWorker(object):
if len(r) == 0:
# EOF on pipe, server must have terminated
self.sigterm_exception(signal.SIGTERM, None)
self.queue.extend(r)
self.queue = self.queue + r
except (OSError, IOError):
pass
if len(self.queue):
self.handle_item(b"cookerconfig", self.handle_cookercfg)
self.handle_item(b"extraconfigdata", self.handle_extraconfigdata)
self.handle_item(b"workerdata", self.handle_workerdata)
self.handle_item(b"newtaskhashes", self.handle_newtaskhashes)
self.handle_item(b"runtask", self.handle_runtask)
self.handle_item(b"finishnow", self.handle_finishnow)
self.handle_item(b"ping", self.handle_ping)
@@ -449,35 +387,19 @@ class BitbakeWorker(object):
while self.process_waitpid():
continue
def handle_item(self, item, func):
opening_tag = b"<" + item + b">"
if not self.queue.startswith(opening_tag):
return
tag_len = len(opening_tag)
if len(self.queue) < tag_len + 4:
# we need to receive more data
return
header = self.queue[tag_len:tag_len + 4]
payload_len = int.from_bytes(header, 'big')
# closing tag has length (tag_len + 1)
if len(self.queue) < tag_len * 2 + 1 + payload_len:
# we need to receive more data
return
index = self.queue.find(b"</" + item + b">")
if index != -1:
try:
func(self.queue[(tag_len + 4):index])
except pickle.UnpicklingError:
workerlog_write("Unable to unpickle data: %s\n" % ":".join("{:02x}".format(c) for c in self.queue))
raise
self.queue = self.queue[(index + len(b"</") + len(item) + len(b">")):]
if self.queue.startswith(b"<" + item + b">"):
index = self.queue.find(b"</" + item + b">")
while index != -1:
func(self.queue[(len(item) + 2):index])
self.queue = self.queue[(index + len(item) + 3):]
index = self.queue.find(b"</" + item + b">")
def handle_cookercfg(self, data):
self.cookercfg = pickle.loads(data)
self.databuilder = bb.cookerdata.CookerDataBuilder(self.cookercfg, worker=True)
self.databuilder.parseBaseConfiguration(worker=True)
self.databuilder.parseBaseConfiguration()
self.data = self.databuilder.data
def handle_extraconfigdata(self, data):
@@ -485,17 +407,12 @@ 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"])
self.databuilder.mcdata[mc].setVar("BB_HASHSERVE", self.workerdata["hashservaddr"])
self.databuilder.mcdata[mc].setVar("__bbclasstype", "recipe")
def handle_newtaskhashes(self, data):
self.workerdata["newhashes"] = pickle.loads(data)
def handle_ping(self, _):
workerlog_write("Handling ping\n")
@@ -510,15 +427,11 @@ class BitbakeWorker(object):
sys.exit(0)
def handle_runtask(self, data):
runtask = pickle.loads(data)
fn = runtask['fn']
task = runtask['task']
taskname = runtask['taskname']
fn, task, taskname, quieterrors, appends, taskdepdata, dry_run_exec = pickle.loads(data)
workerlog_write("Handling runtask %s %s %s\n" % (task, fn, taskname))
pid, pipein, pipeout = fork_off_task(self.cookercfg, self.data, self.databuilder, self.workerdata, self.extraconfigdata, runtask)
pid, pipein, pipeout = fork_off_task(self.cookercfg, self.data, self.databuilder, self.workerdata, fn, task, taskname, appends, taskdepdata, self.extraconfigdata, quieterrors, dry_run_exec)
self.build_pids[pid] = task
self.build_pipes[pid] = runQueueWorkerPipe(pipein, pipeout)
@@ -582,11 +495,9 @@ except BaseException as e:
import traceback
sys.stderr.write(traceback.format_exc())
sys.stderr.write(str(e))
finally:
worker_thread_exit = True
worker_thread.join()
workerlog_write("exiting")
if not normalexit:
sys.exit(1)
worker_thread_exit = True
worker_thread.join()
workerlog_write("exitting")
sys.exit(0)

531
bitbake/bin/bitdoc Executable file
View File

@@ -0,0 +1,531 @@
#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2005 Holger Hans Peter Freyther
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
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

@@ -1,10 +1,4 @@
#!/usr/bin/env python3
#
# Copyright BitBake Contributors
#
# SPDX-License-Identifier: GPL-2.0-only
#
"""git-make-shallow: make the current git repository shallow
Remove the history of the specified revisions, then optionally filter the
@@ -18,23 +12,19 @@ import itertools
import os
import subprocess
import sys
import warnings
warnings.simplefilter("default")
version = 1.0
git_cmd = ['git', '-c', 'safe.bareRepository=all']
def main():
if sys.version_info < (3, 4, 0):
sys.exit('Python 3.4 or greater is required')
git_dir = check_output(git_cmd + ['rev-parse', '--git-dir']).rstrip()
git_dir = check_output(['git', 'rev-parse', '--git-dir']).rstrip()
shallow_file = os.path.join(git_dir, 'shallow')
if os.path.exists(shallow_file):
try:
check_output(git_cmd + ['fetch', '--unshallow'])
check_output(['git', 'fetch', '--unshallow'])
except subprocess.CalledProcessError:
try:
os.unlink(shallow_file)
@@ -43,21 +33,21 @@ def main():
raise
args = process_args()
revs = check_output(git_cmd + ['rev-list'] + args.revisions).splitlines()
revs = check_output(['git', 'rev-list'] + args.revisions).splitlines()
make_shallow(shallow_file, args.revisions, args.refs)
ref_revs = check_output(git_cmd + ['rev-list'] + args.refs).splitlines()
ref_revs = check_output(['git', 'rev-list'] + args.refs).splitlines()
remaining_history = set(revs) & set(ref_revs)
for rev in remaining_history:
if check_output(git_cmd + ['rev-parse', '{}^@'.format(rev)]):
if check_output(['git', 'rev-parse', '{}^@'.format(rev)]):
sys.exit('Error: %s was not made shallow' % rev)
filter_refs(args.refs)
if args.shrink:
shrink_repo(git_dir)
subprocess.check_call(git_cmd + ['fsck', '--unreachable'])
subprocess.check_call(['git', 'fsck', '--unreachable'])
def process_args():
@@ -74,12 +64,12 @@ def process_args():
args = parser.parse_args()
if args.refs:
args.refs = check_output(git_cmd + ['rev-parse', '--symbolic-full-name'] + args.refs).splitlines()
args.refs = check_output(['git', 'rev-parse', '--symbolic-full-name'] + args.refs).splitlines()
else:
args.refs = get_all_refs(lambda r, t, tt: t == 'commit' or tt == 'commit')
args.refs = list(filter(lambda r: not r.endswith('/HEAD'), args.refs))
args.revisions = check_output(git_cmd + ['rev-parse'] + ['%s^{}' % i for i in args.revisions]).splitlines()
args.revisions = check_output(['git', 'rev-parse'] + ['%s^{}' % i for i in args.revisions]).splitlines()
return args
@@ -97,7 +87,7 @@ def make_shallow(shallow_file, revisions, refs):
def get_all_refs(ref_filter=None):
"""Return all the existing refs in this repository, optionally filtering the refs."""
ref_output = check_output(git_cmd + ['for-each-ref', '--format=%(refname)\t%(objecttype)\t%(*objecttype)'])
ref_output = check_output(['git', 'for-each-ref', '--format=%(refname)\t%(objecttype)\t%(*objecttype)'])
ref_split = [tuple(iter_extend(l.rsplit('\t'), 3)) for l in ref_output.splitlines()]
if ref_filter:
ref_split = (e for e in ref_split if ref_filter(*e))
@@ -115,8 +105,8 @@ def filter_refs(refs):
all_refs = get_all_refs()
to_remove = set(all_refs) - set(refs)
if to_remove:
check_output(git_cmd + ['update-ref', '--no-deref', '--stdin', '-z'],
input=''.join('delete ' + l + '\0\0' for l in to_remove))
check_output(['xargs', '-0', '-n', '1', 'git', 'update-ref', '-d', '--no-deref'],
input=''.join(l + '\0' for l in to_remove))
def follow_history_intersections(revisions, refs):
@@ -128,7 +118,7 @@ def follow_history_intersections(revisions, refs):
if rev in seen:
continue
parents = check_output(git_cmd + ['rev-parse', '%s^@' % rev]).splitlines()
parents = check_output(['git', 'rev-parse', '%s^@' % rev]).splitlines()
yield rev
seen.add(rev)
@@ -136,12 +126,12 @@ def follow_history_intersections(revisions, refs):
if not parents:
continue
check_refs = check_output(git_cmd + ['merge-base', '--independent'] + sorted(refs)).splitlines()
check_refs = check_output(['git', 'merge-base', '--independent'] + sorted(refs)).splitlines()
for parent in parents:
for ref in check_refs:
print("Checking %s vs %s" % (parent, ref))
try:
merge_base = check_output(git_cmd + ['merge-base', parent, ref]).rstrip()
merge_base = check_output(['git', 'merge-base', parent, ref]).rstrip()
except subprocess.CalledProcessError:
continue
else:
@@ -161,14 +151,14 @@ def iter_except(func, exception, start=None):
def shrink_repo(git_dir):
"""Shrink the newly shallow repository, removing the unreachable objects."""
subprocess.check_call(git_cmd + ['reflog', 'expire', '--expire-unreachable=now', '--all'])
subprocess.check_call(git_cmd + ['repack', '-ad'])
subprocess.check_call(['git', 'reflog', 'expire', '--expire-unreachable=now', '--all'])
subprocess.check_call(['git', 'repack', '-ad'])
try:
os.unlink(os.path.join(git_dir, 'objects', 'info', 'alternates'))
except OSError as exc:
if exc.errno != errno.ENOENT:
raise
subprocess.check_call(git_cmd + ['prune', '--expire', 'now'])
subprocess.check_call(['git', 'prune', '--expire', 'now'])
if __name__ == '__main__':

View File

@@ -3,18 +3,27 @@
# toaster - shell script to start Toaster
# Copyright (C) 2013-2015 Intel Corp.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# SPDX-License-Identifier: GPL-2.0-or-later
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
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()
@@ -33,7 +42,7 @@ databaseCheck()
$MANAGE migrate --noinput || retval=1
if [ $retval -eq 1 ]; then
echo "Failed migrations, halting system start" 1>&2
echo "Failed migrations, aborting system start" 1>&2
return $retval
fi
# Make sure that checksettings can pick up any value for TEMPLATECONF
@@ -41,7 +50,7 @@ databaseCheck()
$MANAGE checksettings --traceback || retval=1
if [ $retval -eq 1 ]; then
printf "\nError while checking settings; exiting\n"
printf "\nError while checking settings; aborting\n"
return $retval
fi
@@ -84,7 +93,7 @@ webserverStartAll()
echo "Starting webserver..."
$MANAGE runserver --noreload "$ADDR_PORT" \
</dev/null >>${TOASTER_LOGS_DIR}/web.log 2>&1 \
</dev/null >>${BUILDDIR}/toaster_web.log 2>&1 \
& echo $! >${BUILDDIR}/.toastermain.pid
sleep 1
@@ -181,14 +190,6 @@ WEBSERVER=1
export TOASTER_BUILDSERVER=1
ADDR_PORT="localhost:8000"
TOASTERDIR=`dirname $BUILDDIR`
# ${BUILDDIR}/toaster_logs/ became the default location for toaster logs
# This is needed for implemented django-log-viewer: https://pypi.org/project/django-log-viewer/
# If the directory does not exist, create it.
TOASTER_LOGS_DIR="${BUILDDIR}/toaster_logs/"
if [ ! -d $TOASTER_LOGS_DIR ]
then
mkdir $TOASTER_LOGS_DIR
fi
unset CMD
for param in $*; do
case $param in
@@ -217,21 +218,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
@@ -256,7 +249,7 @@ fi
# 3) the sqlite db if that is being used.
# 4) pid's we need to clean up on exit/shutdown
export TOASTER_DIR=$TOASTERDIR
export BB_ENV_PASSTHROUGH_ADDITIONS="$BB_ENV_PASSTHROUGH_ADDITIONS TOASTER_DIR"
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE TOASTER_DIR"
# Determine the action. If specified by arguments, fine, if not, toggle it
if [ "$CMD" = "start" ] ; then
@@ -307,7 +300,7 @@ case $CMD in
export BITBAKE_UI='toasterui'
if [ $TOASTER_BUILDSERVER -eq 1 ] ; then
$MANAGE runbuilds \
</dev/null >>${TOASTER_LOGS_DIR}/toaster_runbuilds.log 2>&1 \
</dev/null >>${BUILDDIR}/toaster_runbuilds.log 2>&1 \
& echo $! >${BUILDDIR}/.runbuilds.pid
else
echo "Toaster build server not started."
@@ -323,10 +316,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,12 +1,25 @@
#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2014 Alex Damian
#
# SPDX-License-Identifier: GPL-2.0-only
#
# This file re-uses code spread throughout other Bitbake source files.
# As such, all other copyrights belong to their own right holders.
#
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
"""
This command takes a filename as a single parameter. The filename is read
@@ -19,8 +32,6 @@ import sys
import json
import pickle
import codecs
import warnings
warnings.simplefilter("default")
from collections import namedtuple
@@ -30,23 +41,79 @@ sys.path.insert(0, join(dirname(dirname(abspath(__file__))), 'lib'))
import bb.cooker
from bb.ui import toasterui
from bb.ui import eventreplay
class EventPlayer:
"""Emulate a connection to a bitbake server."""
def __init__(self, eventfile, variables):
self.eventfile = eventfile
self.variables = variables
self.eventmask = []
def waitEvent(self, _timeout):
"""Read event from the file."""
line = self.eventfile.readline().strip()
if not line:
return
try:
event_str = json.loads(line)['vars'].encode('utf-8')
event = pickle.loads(codecs.decode(event_str, 'base64'))
event_name = "%s.%s" % (event.__module__, event.__class__.__name__)
if event_name not in self.eventmask:
return
return event
except ValueError as err:
print("Failed loading ", line)
raise err
def runCommand(self, command_line):
"""Emulate running a command on the server."""
name = command_line[0]
if name == "getVariable":
var_name = command_line[1]
variable = self.variables.get(var_name)
if variable:
return variable['v'], None
return None, "Missing variable %s" % var_name
elif name == "getAllKeysWithFlags":
dump = {}
flaglist = command_line[1]
for key, val in self.variables.items():
try:
if not key.startswith("__"):
dump[key] = {
'v': val['v'],
'history' : val['history'],
}
for flag in flaglist:
dump[key][flag] = val[flag]
except Exception as err:
print(err)
return (dump, None)
elif name == 'setEventMask':
self.eventmask = command_line[-1]
return True, None
else:
raise Exception("Command %s not implemented" % command_line[0])
def getEventHandle(self):
"""
This method is called by toasterui.
The return value is passed to self.runCommand but not used there.
"""
pass
def main(argv):
with open(argv[-1]) as eventfile:
# load variables from the first line
variables = None
while line := eventfile.readline().strip():
try:
variables = json.loads(line)['allvariables']
break
except (KeyError, json.JSONDecodeError):
continue
if not variables:
sys.exit("Cannot find allvariables entry in event log file %s" % argv[-1])
eventfile.seek(0)
variables = json.loads(eventfile.readline().strip())['allvariables']
params = namedtuple('ConfigParams', ['observe_only'])(True)
player = eventreplay.EventPlayer(eventfile, variables)
player = EventPlayer(eventfile, variables)
return toasterui.main(player, player, params)

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,4 +1,6 @@
#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2012, 2018 Wind River Systems, Inc.
#

View File

@@ -1,23 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2021 Joshua Watt <JPEWhacker@gmail.com>
#
# Dockerfile to build a bitbake hash equivalence server container
#
# From the root of the bitbake repository, run:
#
# docker build -f contrib/hashserv/Dockerfile .
#
FROM alpine:3.13.1
RUN apk add --no-cache python3 libgcc
COPY bin/bitbake-hashserv /opt/bbhashserv/bin/
COPY lib/hashserv /opt/bbhashserv/lib/hashserv/
COPY lib/bb /opt/bbhashserv/lib/bb/
COPY lib/codegen.py /opt/bbhashserv/lib/codegen.py
COPY lib/ply /opt/bbhashserv/lib/ply/
COPY lib/bs4 /opt/bbhashserv/lib/bs4/
ENTRYPOINT ["/opt/bbhashserv/bin/bitbake-hashserv"]

View File

@@ -1,62 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2022 Daniel Gomez <daniel@qtec.com>
#
# Dockerfile to build a bitbake PR service container
#
# From the root of the bitbake repository, run:
#
# docker build -f contrib/prserv/Dockerfile . -t prserv
#
# Running examples:
#
# 1. PR Service in RW mode, port 18585:
#
# docker run --detach --tty \
# --env PORT=18585 \
# --publish 18585:18585 \
# --volume $PWD:/var/lib/bbprserv \
# prserv
#
# 2. PR Service in RO mode, default port (8585) and custom LOGFILE:
#
# docker run --detach --tty \
# --env DBMODE="--read-only" \
# --env LOGFILE=/var/lib/bbprserv/prservro.log \
# --publish 8585:8585 \
# --volume $PWD:/var/lib/bbprserv \
# prserv
#
FROM alpine:3.14.4
RUN apk add --no-cache python3
COPY bin/bitbake-prserv /opt/bbprserv/bin/
COPY lib/prserv /opt/bbprserv/lib/prserv/
COPY lib/bb /opt/bbprserv/lib/bb/
COPY lib/codegen.py /opt/bbprserv/lib/codegen.py
COPY lib/ply /opt/bbprserv/lib/ply/
COPY lib/bs4 /opt/bbprserv/lib/bs4/
ENV PATH=$PATH:/opt/bbprserv/bin
RUN mkdir -p /var/lib/bbprserv
ENV DBFILE=/var/lib/bbprserv/prserv.sqlite3 \
LOGFILE=/var/lib/bbprserv/prserv.log \
LOGLEVEL=debug \
HOST=0.0.0.0 \
PORT=8585 \
DBMODE=""
ENTRYPOINT [ "/bin/sh", "-c", \
"bitbake-prserv \
--file=$DBFILE \
--log=$LOGFILE \
--loglevel=$LOGLEVEL \
--start \
--host=$HOST \
--port=$PORT \
$DBMODE \
&& tail -f $LOGFILE"]

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! GetBBPythonIndent(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 = GetBBPythonIndent(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")
@@ -51,34 +51,31 @@ syn region bbString matchgroup=bbQuote start=+'+ skip=+\\$+ end=+'+
syn match bbExport "^export" nextgroup=bbIdentifier skipwhite
syn keyword bbExportFlag export contained nextgroup=bbIdentifier skipwhite
syn match bbIdentifier "[a-zA-Z0-9\-_\.\/\+]\+" display contained
syn match bbVarDeref "${[a-zA-Z0-9\-_:\.\/\+]\+}" contained
syn match bbVarDeref "${[a-zA-Z0-9\-_\.\/\+]\+}" contained
syn match bbVarEq "\(:=\|+=\|=+\|\.=\|=\.\|?=\|??=\|=\)" contained nextgroup=bbVarValue
syn match bbVarDef "^\(export\s*\)\?\([a-zA-Z0-9\-_\.\/\+][${}a-zA-Z0-9\-_:\.\/\+]*\)\s*\(:=\|+=\|=+\|\.=\|=\.\|?=\|??=\|=\)\@=" contains=bbExportFlag,bbIdentifier,bbOverrideOperator,bbVarDeref nextgroup=bbVarEq
syn match bbVarDef "^\(export\s*\)\?\([a-zA-Z0-9\-_\.\/\+]\+\(_[${}a-zA-Z0-9\-_\.\/\+]\+\)\?\)\s*\(:=\|+=\|=+\|\.=\|=\.\|?=\|??=\|=\)\@=" contains=bbExportFlag,bbIdentifier,bbVarDeref nextgroup=bbVarEq
syn match bbVarValue ".*$" contained contains=bbString,bbVarDeref,bbVarPyValue
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
syn match bbIncludeRest ".*$" contained contains=bbString,bbVarDeref,bbVarPyValue
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 match bbStatementRest /[^\\]*$/ skipwhite contained contains=bbStatement,bbVarDeref,bbVarPyValue
syn region bbStatementRestCont start=/.*\\$/ end=/^[^\\]*$/ contained contains=bbStatement,bbVarDeref,bbVarPyValue,bbContinue keepend
syn match bbStatementLine "^\(addtask\|deltask\|addhandler\|after\|before\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest,bbStatementRestCont
syn keyword bbStatement addtask addhandler after before EXPORT_FUNCTIONS contained
syn match bbStatementRest ".*$" skipwhite contained contains=bbStatement
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 keyword bbOverrideOperator append prepend remove contained
syn match bbFunction "\h[0-9A-Za-z_-]*" display contained contains=bbOEFunctions
" BitBake shell metadata
syn include @shell syntax/sh.vim
@@ -86,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,bbOverrideOperator,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
@@ -94,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,bbOverrideOperator,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
@@ -123,9 +120,7 @@ hi def link bbPyFlag Type
hi def link bbPyDef Statement
hi def link bbStatement Statement
hi def link bbStatementRest Identifier
hi def link bbStatementRestCont Identifier
hi def link bbOEFunctions Special
hi def link bbVarPyValue PreProc
hi def link bbOverrideOperator Operator
let b:current_syntax = "bb"

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 ?= -W --keep-going -j auto
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

@@ -8,48 +8,32 @@ Manual Organization
Folders exist for individual manuals as follows:
* bitbake-user-manual --- The BitBake User Manual
* bitbake-user-manual - The BitBake User Manual
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 https://www.openembedded.org/wiki/Documentation.
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 doc
$ make 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,9 +0,0 @@
<footer>
<hr/>
<div role="contentinfo">
<p>&copy; Copyright {{ copyright }}
<br>Last updated on {{ last_updated }} from the <a href="https://git.openembedded.org/bitbake/">bitbake</a> git repository.
</p>
</div>
</footer>

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,761 +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
:term:`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`.
:term:`BBPATH` is used to search for configuration and class files under the
``conf`` and ``classes`` directories, respectively. :term:`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 :term:`BBPATH` and :term:`BBFILES` directly in the environment.
Next, the ``bitbake.conf`` file is located using the :term:`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_PASSTHROUGH`
- :term:`BB_ENV_PASSTHROUGH_ADDITIONS`
- :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 :term:`BBPATH` and :term:`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 :term:`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 :term:`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. :term:`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 :term:`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 :term:`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.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
PV = "${@bb.parse.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
:term:`PN` to "something" and :term:`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_IGNORE_VARS`) 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 :term:`PROVIDES` list for each
of the recipes. A :term:`PROVIDES` list is the list of names by which the
recipe can be known. Each recipe's :term:`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 :term:`PROVIDES`, that recipe's functionality can be
found under an alternative name or names other than the implicit :term:`PN`
name. As an example, suppose a recipe named ``keyboard_1.0.bb``
contained the following::
PROVIDES += "fullkeyboard"
The :term:`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 :term:`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 :term:`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
:term:`DEFAULT_PREFERENCE` to "-1" makes the recipe unlikely to be used
unless it is explicitly referenced. Setting :term:`DEFAULT_PREFERENCE` to
"1" makes it likely the recipe is used. :term:`PREFERRED_VERSION` overrides
any :term:`DEFAULT_PREFERENCE` setting. :term:`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 :term:`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
``${``\ :term:`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_BASEHASH_IGNORE_VARS` 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_BASEHASH_IGNORE_VARS ?= "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 basic signature generator
OpenEmbedded-Core uses: "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 main feature of the "OEBasicHash" :term:`BB_SIGNATURE_HANDLER` is that
it adds the task hash to the stamp files. Thanks to this, any metadata
change will change 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 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.
- :term:`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 most recent
signature match it can (e.g. in the sstate cache) and then run
compare the matched signatures to determine the stamps and delta
where these two stamp trees diverge. This can be used to determine why
tasks need to be re-run in situations where that is not expected.
.. 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.
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 a first example, you can create a ``hashequiv.json`` user logging
configuration file to log all Hash Equivalence related messages of ``VERBOSE``
or higher priority 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"]
}
}
}
Then set the :term:`BB_LOGCONFIG` variable in ``conf/local.conf``::
BB_LOGCONFIG = "hashequiv.json"
Another example is this ``warn.json`` file to log all ``WARNING`` and
higher priority messages to a ``warn.log`` file::
{
"version": 1,
"formatters": {
"warnlogFormatter": {
"()": "bb.msg.BBLogFormatter",
"format": "%(levelname)s: %(message)s"
}
},
"handlers": {
"warnlog": {
"class": "logging.FileHandler",
"formatter": "warnlogFormatter",
"level": "WARNING",
"filename": "warn.log"
}
},
"loggers": {
"BitBake": {
"handlers": ["warnlog"]
}
},
"@disable_existing_loggers": false
}
Note that BitBake's helper classes for structured logging are implemented in
``lib/bb/msg.py``.

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_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-BBPATH'><filename>BBPATH</filename></link>
and
<link linkend='var-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_ENV_WHITELIST'><filename>BB_ENV_WHITELIST</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-BB_ENV_EXTRAWHITE'><filename>BB_ENV_EXTRAWHITE</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-BB_PRESERVE_ENV'><filename>BB_PRESERVE_ENV</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-BB_ORIGENV'><filename>BB_ORIGENV</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-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-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-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-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-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-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-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-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-PN'><filename>PN</filename></link> and
<link linkend='var-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_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-PN'><filename>PN</filename></link> variable
and explicitly through the recipe's
<link linkend='var-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-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-PREFERRED_VERSION'><filename>PREFERRED_VERSION</filename></link>
variable to specify a particular version.
You can influence the order by using the
<link linkend='var-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-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-PN'><filename>PN</filename></link> variable
will be set to “a”, and the
<link linkend='var-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-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-DEPENDS'><filename>DEPENDS</filename></link> and
<link linkend='var-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_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-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-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_SCHEDULER'><filename>BB_SCHEDULER</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-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_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-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_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_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_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,851 +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 :term:`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 :term:`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 :term:`SRC_URI` variable.
Consider the following two URLs::
https://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/ \
cvs://.*/.\* http://somemirror.org/sources/ \
git://.*/.\* http://somemirror.org/sources/ \
hg://.*/.\* http://somemirror.org/sources/ \
osc://.*/.\* http://somemirror.org/sources/ \
p4://.*/.\* http://somemirror.org/sources/ \
svn://.*/.\* http://somemirror.org/sources/"
MIRRORS =+ "\
ftp://.*/.\* http://somemirror.org/sources/ \
http://.*/.\* http://somemirror.org/sources/ \
https://.*/.\* http://somemirror.org/sources/"
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 :term:`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 :term:`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 :term:`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.
If :term:`BB_CHECK_SSL_CERTS` is set to ``0`` then SSL certificate checking will
be disabled. This variable defaults to ``1`` so SSL certificates are normally
checked.
.. _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.
- *striplevel:* Strip specified number of leading components (levels)
from file names on extraction
- *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.
If a username and password are specified in the ``SRC_URI``, a Basic
Authorization header will be added to each request, including across redirects.
To instead limit the Authorization header to the first request, add
"redirectauth=0" to the list of parameters.
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".
.. note::
When ``protocol`` is "ssh", the URL expected in :term:`SRC_URI` differs
from the one that is typically passed to ``git clone`` command and provided
by the Git server to fetch from. For example, the URL returned by GitLab
server for ``mesa`` when cloning over SSH is
``git@gitlab.freedesktop.org:mesa/mesa.git``, however the expected URL in
:term:`SRC_URI` is the following::
SRC_URI = "git://git@gitlab.freedesktop.org/mesa/mesa.git;branch=main;protocol=ssh;..."
Note the ``:`` character changed for a ``/`` before the path to the project.
- *"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 any namespace
(branch, 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. Unless
"nobranch" is set to "1", this is a mandatory parameter. The number of
branch parameters must 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://github.com/fronteed/icheck.git;protocol=https;branch=${PV};tag=${PV}"
SRC_URI = "git://github.com/asciidoc/asciidoc-py;protocol=https;branch=main"
SRC_URI = "git://git@gitlab.freedesktop.org/mesa/mesa.git;branch=main;protocol=ssh;..."
.. note::
When using ``git`` as the fetcher of the main source code of your software,
``S`` should be set accordingly::
S = "${WORKDIR}/git"
.. note::
Specifying passwords directly in ``git://`` urls is not supported.
There are several reasons: :term:`SRC_URI` is often written out to logs and
other places, and that could easily leak passwords; it is also all too
easy to share metadata without removing passwords. SSH keys, ``~/.netrc``
and ``~/.ssh/config`` files can be used as alternatives.
Using tags with the git fetcher may cause surprising behaviour. Bitbake needs to
resolve the tag to a specific revision and to do that, it has to connect to and use
the upstream repository. This is because the revision the tags point at can change and
we've seen cases of this happening in well known public repositories. This can mean
many more network connections than expected and recipes may be reparsed at every build.
Source mirrors will also be bypassed as the upstream repository is the only source
of truth to resolve the revision accurately. For these reasons, whilst the fetcher
can support tags, we recommend being specific about revisions in recipes.
.. _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 :term:`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 :term:`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"
.. _az-fetcher:
Az Fetcher (``az://``)
--------------------------
This submodule fetches data from an
`Azure Storage account <https://docs.microsoft.com/en-us/azure/storage/>`__ ,
it inherits its functionality from the HTTP wget fetcher, but modifies its
behavior to accomodate the usage of a
`Shared Access Signature (SAS) <https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview>`__
for non-public data.
Such functionality is set by the variable:
- :term:`AZ_SAS`: The Azure Storage Shared Access Signature provides secure
delegate access to resources, if this variable is set, the Az Fetcher will
use it when fetching artifacts from the cloud.
You can specify the AZ_SAS variable as shown below::
AZ_SAS = "se=2021-01-01&sp=r&sv=2018-11-09&sr=c&skoid=<skoid>&sig=<signature>"
Here is an example URL::
SRC_URI = "az://<azure-storage-account>.blob.core.windows.net/<foo_container>/<bar_file>"
It can also be used when setting mirrors definitions using the :term:`PREMIRRORS` variable.
.. _gcp-fetcher:
GCP Fetcher (``gs://``)
--------------------------
This submodule fetches data from a
`Google Cloud Storage Bucket <https://cloud.google.com/storage/docs/buckets>`__.
It uses the `Google Cloud Storage Python Client <https://cloud.google.com/python/docs/reference/storage/latest>`__
to check the status of objects in the bucket and download them.
The use of the Python client makes it substantially faster than using command
line tools such as gsutil.
The fetcher requires the Google Cloud Storage Python Client to be installed, along
with the gsutil tool.
The fetcher requires that the machine has valid credentials for accessing the
chosen bucket. Instructions for authentication can be found in the
`Google Cloud documentation <https://cloud.google.com/docs/authentication/provide-credentials-adc#local-dev>`__.
If it used from the OpenEmbedded build system, the fetcher can be used for
fetching sstate artifacts from a GCS bucket by specifying the
``SSTATE_MIRRORS`` variable as shown below::
SSTATE_MIRRORS ?= "\
file://.* gs://<bucket name>/PATH \
"
The fetcher can also be used in recipes::
SRC_URI = "gs://<bucket name>/<foo_container>/<bar_file>"
However, the checksum of the file should be also be provided::
SRC_URI[sha256sum] = "<sha256 string>"
.. _crate-fetcher:
Crate Fetcher (``crate://``)
----------------------------
This submodule fetches code for
`Rust language "crates" <https://doc.rust-lang.org/reference/glossary.html?highlight=crate#crate>`__
corresponding to Rust libraries and programs to compile. Such crates are typically shared
on https://crates.io/ but this fetcher supports other crate registries too.
The format for the :term:`SRC_URI` setting must be::
SRC_URI = "crate://REGISTRY/NAME/VERSION"
Here is an example URL::
SRC_URI = "crate://crates.io/glob/0.2.11"
.. _npm-fetcher:
NPM Fetcher (``npm://``)
------------------------
This submodule fetches source code from an
`NPM <https://en.wikipedia.org/wiki/Npm_(software)>`__
Javascript package registry.
The format for the :term:`SRC_URI` setting must be::
SRC_URI = "npm://some.registry.url;ParameterA=xxx;ParameterB=xxx;..."
This fetcher supports the following parameters:
- *"package":* The NPM package name. This is a mandatory parameter.
- *"version":* The NPM package version. This is a mandatory parameter.
- *"downloadfilename":* Specifies the filename used when storing the downloaded file.
- *"destsuffix":* Specifies the directory to use to unpack the package (default: ``npm``).
Note that NPM fetcher only fetches the package source itself. The dependencies
can be fetched through the `npmsw-fetcher`_.
Here is an example URL with both fetchers::
SRC_URI = " \
npm://registry.npmjs.org/;package=cute-files;version=${PV} \
npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json \
"
See :yocto_docs:`Creating Node Package Manager (NPM) Packages
</dev-manual/packages.html#creating-node-package-manager-npm-packages>`
in the Yocto Project manual for details about using
:yocto_docs:`devtool <https://docs.yoctoproject.org/ref-manual/devtool-reference.html>`
to automatically create a recipe from an NPM URL.
.. _npmsw-fetcher:
NPM shrinkwrap Fetcher (``npmsw://``)
-------------------------------------
This submodule fetches source code from an
`NPM shrinkwrap <https://docs.npmjs.com/cli/v8/commands/npm-shrinkwrap>`__
description file, which lists the dependencies
of an NPM package while locking their versions.
The format for the :term:`SRC_URI` setting must be::
SRC_URI = "npmsw://some.registry.url;ParameterA=xxx;ParameterB=xxx;..."
This fetcher supports the following parameters:
- *"dev":* Set this parameter to ``1`` to install "devDependencies".
- *"destsuffix":* Specifies the directory to use to unpack the dependencies
(``${S}`` by default).
Note that the shrinkwrap file can also be provided by the recipe for
the package which has such dependencies, for example::
SRC_URI = " \
npm://registry.npmjs.org/;package=cute-files;version=${PV} \
npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json \
"
Such a file can automatically be generated using
:yocto_docs:`devtool <https://docs.yoctoproject.org/ref-manual/devtool-reference.html>`
as described in the :yocto_docs:`Creating Node Package Manager (NPM) Packages
</dev-manual/packages.html#creating-node-package-manager-npm-packages>`
section of the Yocto Project.
Other Fetchers
--------------
Fetch submodules also exist for the following:
- Bazaar (``bzr://``)
- Mercurial (``hg://``)
- OSC (``osc://``)
- S3 (``s3://``)
- 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 :term:`SRCREV_FORMAT` here.

View File

@@ -0,0 +1,865 @@
<!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-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-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-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-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_STRICT_CHECKSUM'><filename>BB_STRICT_CHECKSUM</filename></link>
is set, any download without a checksum triggers an
error message.
The
<link linkend='var-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-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-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-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-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-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-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-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-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-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-SRC_URI'><filename>SRC_URI</filename></link>,
<link linkend='var-SRCREV'><filename>SRCREV</filename></link>, and
<link linkend='var-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-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-SRC_URI'><filename>SRC_URI</filename></link>,
<link linkend='var-SRCREV'><filename>SRCREV</filename></link>, and
<link linkend='var-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-REPODIR'><filename>REPODIR</filename></link>,
which is usually
<link linkend='var-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>
Trees using Git Annex (<filename>gitannex://</filename>)
</para></listitem>
<listitem><para>
Secure FTP (<filename>sftp://</filename>)
</para></listitem>
<listitem><para>
Secure Shell (<filename>ssh://</filename>)
</para></listitem>
<listitem><para>
OSC (<filename>osc://</filename>)
</para></listitem>
<listitem><para>
Mercurial (<filename>hg://</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,408 +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-intro: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 108
drwxr-xr-x 9 fawkh 10000 4096 feb 24 12:10 .
drwx------ 36 fawkh 10000 4096 mar 2 17:00 ..
-rw-r--r-- 1 fawkh 10000 365 feb 24 12:10 AUTHORS
drwxr-xr-x 2 fawkh 10000 4096 feb 24 12:10 bin
-rw-r--r-- 1 fawkh 10000 16501 feb 24 12:10 ChangeLog
drwxr-xr-x 2 fawkh 10000 4096 feb 24 12:10 classes
drwxr-xr-x 2 fawkh 10000 4096 feb 24 12:10 conf
drwxr-xr-x 5 fawkh 10000 4096 feb 24 12:10 contrib
drwxr-xr-x 6 fawkh 10000 4096 feb 24 12:10 doc
drwxr-xr-x 8 fawkh 10000 4096 mar 2 16:26 .git
-rw-r--r-- 1 fawkh 10000 31 feb 24 12:10 .gitattributes
-rw-r--r-- 1 fawkh 10000 392 feb 24 12:10 .gitignore
drwxr-xr-x 13 fawkh 10000 4096 feb 24 12:11 lib
-rw-r--r-- 1 fawkh 10000 1224 feb 24 12:10 LICENSE
-rw-r--r-- 1 fawkh 10000 15394 feb 24 12:10 LICENSE.GPL-2.0-only
-rw-r--r-- 1 fawkh 10000 1286 feb 24 12:10 LICENSE.MIT
-rw-r--r-- 1 fawkh 10000 229 feb 24 12:10 MANIFEST.in
-rw-r--r-- 1 fawkh 10000 2413 feb 24 12:10 README
-rw-r--r-- 1 fawkh 10000 43 feb 24 12:10 toaster-requirements.txt
-rw-r--r-- 1 fawkh 10000 2887 feb 24 12:10 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 2.3.1
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!"
<https://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
ERROR: 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?
When you run BitBake, it begins looking for metadata files. The
:term:`BBPATH` variable is what tells BitBake where
to look for those files. :term:`BBPATH` is not set and you need to set
it. Without :term:`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 :term:`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
:term:`BBPATH` variable up in a configuration file for each project.
From your shell, enter the following commands to set and export the
:term:`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 :term:`BBPATH` defined, run the
``bitbake`` command again::
$ bitbake
ERROR: Unable to parse /home/scott-lenovo/bitbake/lib/bb/parse/__init__.py
Traceback (most recent call last):
File "/home/scott-lenovo/bitbake/lib/bb/parse/__init__.py", line 127, in resolve_file(fn='conf/bitbake.conf', d=<bb.data_smart.DataSmart object at 0x7f22919a3df0>):
if not newfn:
> raise IOError(errno.ENOENT, "file %s not found in %s" % (fn, bbpath))
fn = newfn
FileNotFoundError: [Errno 2] file conf/bitbake.conf not found in <projectdirectory>
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
https://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.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 :term:`PN`, the variables :term:`STAMP`, :term:`T`, and :term:`B`, prevent more
than one recipe from working. You can fix this by either setting :term:`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 :term:`PN`. You will also need to include :term:`PN` as part of the :term:`STAMP`,
:term:`T`, and :term:`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: Unable to parse /home/scott-lenovo/bitbake/lib/bb/parse/parse_py/BBHandler.py
Traceback (most recent call last):
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/BBHandler.py", line 67, in inherit(files=['base'], fn='configuration INHERITs', lineno=0, d=<bb.data_smart.DataSmart object at 0x7fab6815edf0>):
if not os.path.exists(file):
> raise ParseError("Could not inherit file %s" % (file), fn, lineno)
bb.parse.ParseError: 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}/"
LAYERSERIES_CORENAMES = "hello_world_example"
LAYERSERIES_COMPAT_mylayer = "hello_world_example"
For information on these variables, click on :term:`BBFILES`,
:term:`LAYERDIR`, :term:`BBFILE_COLLECTIONS`, :term:`BBFILE_PATTERN_mylayer <BBFILE_PATTERN>`
or :term:`LAYERSERIES_COMPAT` to go to the definitions in the glossary.
.. note::
We are setting both ``LAYERSERIES_CORENAMES`` and :term:`LAYERSERIES_COMPAT` in this particular case, because we
are using bitbake without OpenEmbedded.
You should usually just use :term:`LAYERSERIES_COMPAT` to specify the OE-Core versions for which your layer
is compatible, and add the meta-openembedded layer to your project.
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
Loading cache: 100% |
Loaded 0 entries from dependency cache.
Parsing recipes: 100% |##################################################################################|
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
Initialising tasks: 100% |###############################################################################|
NOTE: No setscene tasks
NOTE: Executing 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-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-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-TOPDIR'>TOPDIR</link>}/tmp"
<link linkend='var-CACHE'>CACHE</link> = "${TMPDIR}/cache"
<link linkend='var-STAMP'>STAMP</link> = "${TMPDIR}/${PN}/stamps"
<link linkend='var-T'>T</link> = "${TMPDIR}/${PN}/work"
<link linkend='var-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-LAYERDIR'>LAYERDIR</link>}"
<link linkend='var-BBFILES'>BBFILES</link> += "${LAYERDIR}/*.bb"
<link linkend='var-BBFILE_COLLECTIONS'>BBFILE_COLLECTIONS</link> += "mylayer"
<link linkend='var-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-DESCRIPTION'>DESCRIPTION</link> = "Prints Hello World"
<link linkend='var-PN'>PN</link> = 'printhello'
<link linkend='var-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,679 +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 the 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 <https://www.openembedded.org/>`__ project, which is being
used to build and maintain Linux distributions such as the `Poky
Reference Distribution <https://www.yoctoproject.org/software-item/poky/>`__,
developed under the umbrella of the `Yocto Project <https://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 https://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 [-s] [-e] [-g] [-u UI] [--version] [-h] [-f] [-c CMD]
[-C INVALIDATE_STAMP] [--runall RUNALL] [--runonly RUNONLY]
[--no-setscene] [--skip-setscene] [--setscene-only] [-n] [-p]
[-k] [-P] [-S SIGNATURE_HANDLER] [--revisions-changed]
[-b BUILDFILE] [-D] [-l DEBUG_DOMAINS] [-v] [-q]
[-w WRITEEVENTLOG] [-B BIND] [-T SERVER_TIMEOUT]
[--remote-server REMOTE_SERVER] [-m] [--token XMLRPCTOKEN]
[--observe-only] [--status-only] [--server-only] [-r PREFILE]
[-R POSTFILE] [-I EXTRA_ASSUME_PROVIDED]
[recipename/target ...]
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.
General options:
recipename/target Execute the specified task (default is 'build') for
these target recipes (.bb files).
-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.
-u UI, --ui UI The user interface to use (knotty, ncurses, taskexp,
taskexp_ncurses or teamcity - default knotty).
--version Show programs version and exit.
-h, --help Show this help message and exit.
Task control options:
-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).
--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).
--no-setscene Do not run any setscene tasks. sstate will be ignored
and everything needed, built.
--skip-setscene Skip setscene tasks if they would be executed. Tasks
previously restored from sstate will be kept, unlike
--no-setscene.
--setscene-only Only run setscene tasks, don't run any real tasks.
Execution control options:
-n, --dry-run Don't execute, just go through the motions.
-p, --parse-only Quit after parsing the BB 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.
-P, --profile Profile the command and save reports.
-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
recursively compare the dumped signature with the most
recent one in a local build or sstate cache (can be
used to find out why tasks re-run when that is not
expected)
--revisions-changed Set the exit code depending on whether upstream
floating revisions have changed or not.
-b BUILDFILE, --buildfile BUILDFILE
Execute tasks from a specific .bb recipe directly.
WARNING: Does not handle any dependencies from other
recipes.
Logging/output control options:
-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.
-l DEBUG_DOMAINS, --log-domains DEBUG_DOMAINS
Show debug logging for the specified logging domains.
-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_<task>).
-q, --quiet Output less log message data to the terminal. You can
specify this more than once.
-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.
Server options:
-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.
--remote-server REMOTE_SERVER
Connect to the specified server.
-m, --kill-server Terminate any running bitbake server.
--token XMLRPCTOKEN Specify the connection token to be used when
connecting to a remote server.
--observe-only Connect to a server as an observing-only client.
--status-only Check the status of the remote bitbake server.
--server-only Run bitbake without a UI, only starting a server
(cooker) process.
Configuration options:
-r PREFILE, --read PREFILE
Read the specified file before bitbake.conf.
-R POSTFILE, --postread POSTFILE
Read the specified file after bitbake.conf.
-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.
..
Bitbake help output generated with "stty columns 80; bin/bitbake -h"
.. _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
:term:`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 :term:`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-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 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 [multiconfig:<replaceable>multiconfigname</replaceable>:]<replaceable>target</replaceable> [[[multiconfig:<replaceable>multiconfigname</replaceable>:]<replaceable>target</replaceable>] ... ]
</literallayout>
Here is an example for two multiconfigs:
<filename>target1</filename> and
<filename>target2</filename>:
<literallayout class='monospaced'>
$ bitbake multiconfig:target1:<replaceable>target</replaceable> multiconfig: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] = "multiconfig:<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] = "multiconfig: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 multiconfig: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] = "multiconfig: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

View File

@@ -1,91 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
================
Variable Context
================
|
Variables might only have an impact or can be used in certain contexts. Some
should only be used in global files like ``.conf``, while others are intended only
for local files like ``.bb``. This chapter aims to describe some important variable
contexts.
.. _ref-varcontext-configuration:
BitBake's own configuration
===========================
Variables starting with ``BB_`` usually configure the behaviour of BitBake itself.
For example, one could configure:
- System resources, like disk space to be used (:term:`BB_DISKMON_DIRS`),
or the number of tasks to be run in parallel by BitBake (:term:`BB_NUMBER_THREADS`).
- How the fetchers shall behave, e.g., :term:`BB_FETCH_PREMIRRORONLY` is used
by BitBake to determine if BitBake's fetcher shall search only
:term:`PREMIRRORS` for files.
Those variables are usually configured globally.
BitBake configuration
=====================
There are variables:
- Like :term:`B` or :term:`T`, that are used to specify directories used by
BitBake during the build of a particular recipe. Those variables are
specified in ``bitbake.conf``. Some, like :term:`B`, are quite often
overwritten in recipes.
- Starting with ``FAKEROOT``, to configure how the ``fakeroot`` command is
handled. Those are usually set by ``bitbake.conf`` and might get adapted in a
``bbclass``.
- Detailing where BitBake will store and fetch information from, for
data reuse between build runs like :term:`CACHE`, :term:`DL_DIR` or
:term:`PERSISTENT_DIR`. Those are usually global.
Layers and files
================
Variables starting with ``LAYER`` configure how BitBake handles layers.
Additionally, variables starting with ``BB`` configure how layers and files are
handled. For example:
- :term:`LAYERDEPENDS` is used to configure on which layers a given layer
depends.
- The configured layers are contained in :term:`BBLAYERS` and files in
:term:`BBFILES`.
Those variables are often used in the files ``layer.conf`` and ``bblayers.conf``.
Recipes and packages
====================
Variables handling recipes and packages can be split into:
- :term:`PN`, :term:`PV` or :term:`PF` for example, contain information about
the name or revision of a recipe or package. Usually, the default set in
``bitbake.conf`` is used, but those are from time to time overwritten in
recipes.
- :term:`SUMMARY`, :term:`DESCRIPTION`, :term:`LICENSE` or :term:`HOMEPAGE`
contain the expected information and should be set specifically for every
recipe.
- In recipes, variables are also used to control build and runtime
dependencies between recipes/packages with other recipes/packages. The
most common should be: :term:`PROVIDES`, :term:`RPROVIDES`, :term:`DEPENDS`,
and :term:`RDEPENDS`.
- There are further variables starting with ``SRC`` that specify the sources in
a recipe like :term:`SRC_URI` or :term:`SRCDATE`. Those are also usually set
in recipes.
- Which version or provider of a recipe should be given preference when
multiple recipes would provide the same item, is controlled by variables
starting with ``PREFERRED_``. Those are normally set in the configuration
files of a ``MACHINE`` or ``DISTRO``.

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,101 +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 sys
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,39 +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-ref-variables-context
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.

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

@@ -0,0 +1,59 @@
<!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 ECLIPSE_MAIN_URL "http://www.eclipse.org/downloads">
<!ENTITY ECLIPSE_DL_URL "http://download.eclipse.org">
<!ENTITY ECLIPSE_DL_PLUGIN_URL "&YOCTO_DL_URL;/releases/eclipse-plugin/&DISTRO;">
<!ENTITY ECLIPSE_UPDATES_URL "&ECLIPSE_DL_URL;/tm/updates/3.3">
<!ENTITY ECLIPSE_INDIGO_URL "&ECLIPSE_DL_URL;/releases/indigo">
<!ENTITY ECLIPSE_JUNO_URL "&ECLIPSE_DL_URL;/releases/juno">
<!ENTITY ECLIPSE_INDIGO_CDT_URL "&ECLIPSE_DL_URL;tools/cdt/releases/indigo">
<!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_ECLIPSE_DL_URL "&YOCTO_RELEASE_DL_URL;/eclipse-plugin/indigo;">
<!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,187 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
=================================
BitBake Supported Release Manuals
=================================
****************************
Release Series 5.1 (styhead)
****************************
- :yocto_docs:`BitBake 2.10 User Manual </bitbake/2.10/>`
*******************************
Release Series 5.0 (scarthgap)
*******************************
- :yocto_docs:`BitBake 2.8 User Manual </bitbake/2.8/>`
******************************
Release Series 4.0 (kirkstone)
******************************
- :yocto_docs:`BitBake 2.0 User Manual </bitbake/2.0/>`
================================
BitBake Outdated Release Manuals
================================
*******************************
Release Series 4.3 (nanbield)
*******************************
- :yocto_docs:`BitBake 2.6 User Manual </bitbake/2.6/>`
*******************************
Release Series 4.2 (mickledore)
*******************************
- :yocto_docs:`BitBake 2.4 User Manual </bitbake/2.4/>`
*****************************
Release Series 4.1 (langdale)
*****************************
- :yocto_docs:`BitBake 2.2 User Manual </bitbake/2.2/>`
******************************
Release Series 3.4 (honister)
******************************
- :yocto_docs:`BitBake 1.52 User Manual </bitbake/1.52/>`
******************************
Release Series 3.3 (hardknott)
******************************
- :yocto_docs:`BitBake 1.50 User Manual </bitbake/1.50/>`
*******************************
Release Series 3.2 (gatesgarth)
*******************************
- :yocto_docs:`BitBake 1.48 User Manual </bitbake/1.48/>`
****************************
Release Series 3.1 (dunfell)
****************************
- :yocto_docs:`BitBake 1.46 User Manual </bitbake/1.46/>`
- :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>`
- :yocto_docs:`3.1.3 BitBake User Manual </3.1.3/bitbake-user-manual/bitbake-user-manual.html>`
*************************
Release Series 3.0 (zeus)
*************************
- :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>`
- :yocto_docs:`3.0.4 BitBake User Manual </3.0.4/bitbake-user-manual/bitbake-user-manual.html>`
****************************
Release Series 2.7 (warrior)
****************************
- :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>`
*************************
Release Series 2.6 (thud)
*************************
- :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>`
*************************
Release Series 2.5 (sumo)
*************************
- :yocto_docs:`2.5 Documentation </2.5>`
- :yocto_docs:`2.5.1 Documentation </2.5.1>`
- :yocto_docs:`2.5.2 Documentation </2.5.2>`
- :yocto_docs:`2.5.3 Documentation </2.5.3>`
**************************
Release Series 2.4 (rocko)
**************************
- :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>`
*************************
Release Series 2.3 (pyro)
*************************
- :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>`
**************************
Release Series 2.2 (morty)
**************************
- :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>`
****************************
Release Series 2.1 (krogoth)
****************************
- :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>`
***************************
Release Series 2.0 (jethro)
***************************
- :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>`
*************************
Release Series 1.8 (fido)
*************************
- :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>`
**************************
Release Series 1.7 (dizzy)
**************************
- :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>`
**************************
Release Series 1.6 (daisy)
**************************
- :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

@@ -1,18 +1,31 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# This is a copy on write dictionary and set which abuses classes to try and be nice and fast.
#
# Copyright (C) 2006 Tim Ansell
#
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# Please Note:
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
#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,
@@ -25,29 +38,23 @@ ImmutableTypes = (
MUTABLE = "__mutable__"
class COWMeta(type):
pass
class COWDictMeta(COWMeta):
__warn__ = False
__hasmutable__ = False
__marker__ = tuple()
def __str__(cls):
ignored_keys = set(["__count__", "__doc__", "__module__", "__firstlineno__", "__static_attributes__"])
keys = set(cls.__dict__.keys()) - ignored_keys
return "<COWDict Level: %i Current Keys: %i>" % (cls.__count__, len(keys))
# 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
@@ -79,9 +86,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)
@@ -148,30 +154,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):
ignored_keys = set(["__count__", "__doc__", "__module__", "__firstlineno__", "__static_attributes__"])
keys = set(cls.__dict__.keys()) - ignored_keys
return "<COWSet Level: %i Current Keys: %i>" % (cls.__count__, len(keys))
# FIXME: I have magic numbers!
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):
@@ -189,11 +189,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

@@ -1,3 +1,5 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# BitBake Build System Python Library
#
@@ -6,73 +8,54 @@
#
# Based on Gentoo's portage.py.
#
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
__version__ = "2.9.1"
__version__ = "1.40.0"
import sys
if sys.version_info < (3, 8, 0):
raise RuntimeError("Sorry, python 3.8.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")
if sys.version_info < (3, 10, 0):
# With python 3.8 and 3.9, we see errors of "libgcc_s.so.1 must be installed for pthread_cancel to work"
# https://stackoverflow.com/questions/64797838/libgcc-s-so-1-must-be-installed-for-pthread-cancel-to-work
# https://bugs.ams1.psf.io/issue42888
# so ensure libgcc_s is loaded early on
import ctypes
libgcc_s = ctypes.CDLL('libgcc_s.so.1')
class BBHandledException(Exception):
"""
The big dilemma for generic bitbake code is what information to give the user
when an exception occurs. Any exception inheriting this base exception class
has already provided information to the user via some 'fired' message type such as
an explicitly fired event using bb.fire, or a bb.error message. If bitbake
encounters an exception derived from this class, no backtrace or other information
an explicitly fired event using bb.fire, or a bb.error message. If bitbake
encounters an exception derived from this class, no backtrace or other information
will be given to the user, its assumed the earlier event provided the relevant information.
"""
pass
import os
import logging
from collections import namedtuple
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._debug_helper
def _debug_helper(self, *args, **kwargs):
return self.bbdebug(1, *args, **kwargs)
def debug2(self, *args, **kwargs):
return self.bbdebug(2, *args, **kwargs)
def debug3(self, *args, **kwargs):
return self.bbdebug(3, *args, **kwargs)
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]):
return
if loglevel < bb.msg.loggerDefaultLogLevel:
return
if not isinstance(level, int) or not isinstance(msg, str):
mainlogger.warning("Invalid arguments in bbdebug: %s" % repr((level, msg,) + args))
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)
@@ -83,43 +66,16 @@ class BBLoggerMixin(object):
def verbnote(self, msg, *args, **kwargs):
return self.log(logging.INFO + 2, msg, *args, **kwargs)
def warnonce(self, msg, *args, **kwargs):
return self.log(logging.WARNING - 1, msg, *args, **kwargs)
def erroronce(self, msg, *args, **kwargs):
return self.log(logging.ERROR - 1, 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)
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
@@ -136,7 +92,7 @@ def debug(lvl, *args):
mainlogger.warning("Passed invalid debug level '%s' to bb.debug", lvl)
args = (lvl,) + args
lvl = 1
mainlogger.bbdebug(lvl, ''.join(args))
mainlogger.debug(lvl, ''.join(args))
def note(*args):
mainlogger.info(''.join(args))
@@ -156,15 +112,9 @@ def verbnote(*args):
def warn(*args):
mainlogger.warning(''.join(args))
def warnonce(*args):
mainlogger.warnonce(''.join(args))
def error(*args, **kwargs):
mainlogger.error(''.join(args), extra=kwargs)
def erroronce(*args):
mainlogger.erroronce(''.join(args))
def fatal(*args, **kwargs):
mainlogger.critical(''.join(args), extra=kwargs)
raise BBHandledException()
@@ -208,14 +158,3 @@ def deprecate_import(current, modulename, fromlist, renames = None):
setattr(sys.modules[current], newname, newobj)
TaskData = namedtuple("TaskData", [
"pn",
"taskname",
"fn",
"deps",
"provides",
"taskhash",
"unihash",
"hashfn",
"taskhash_deps",
])

View File

@@ -1,215 +0,0 @@
#! /usr/bin/env python3
#
# Copyright 2023 by Garmin Ltd. or its subsidiaries
#
# SPDX-License-Identifier: MIT
import sys
import ctypes
import os
import errno
import pwd
import grp
libacl = ctypes.CDLL("libacl.so.1", use_errno=True)
ACL_TYPE_ACCESS = 0x8000
ACL_TYPE_DEFAULT = 0x4000
ACL_FIRST_ENTRY = 0
ACL_NEXT_ENTRY = 1
ACL_UNDEFINED_TAG = 0x00
ACL_USER_OBJ = 0x01
ACL_USER = 0x02
ACL_GROUP_OBJ = 0x04
ACL_GROUP = 0x08
ACL_MASK = 0x10
ACL_OTHER = 0x20
ACL_READ = 0x04
ACL_WRITE = 0x02
ACL_EXECUTE = 0x01
acl_t = ctypes.c_void_p
acl_entry_t = ctypes.c_void_p
acl_permset_t = ctypes.c_void_p
acl_perm_t = ctypes.c_uint
acl_tag_t = ctypes.c_int
libacl.acl_free.argtypes = [acl_t]
def acl_free(acl):
libacl.acl_free(acl)
libacl.acl_get_file.restype = acl_t
libacl.acl_get_file.argtypes = [ctypes.c_char_p, ctypes.c_uint]
def acl_get_file(path, typ):
acl = libacl.acl_get_file(os.fsencode(path), typ)
if acl is None:
err = ctypes.get_errno()
raise OSError(err, os.strerror(err), str(path))
return acl
libacl.acl_get_entry.argtypes = [acl_t, ctypes.c_int, ctypes.c_void_p]
def acl_get_entry(acl, entry_id):
entry = acl_entry_t()
ret = libacl.acl_get_entry(acl, entry_id, ctypes.byref(entry))
if ret < 0:
err = ctypes.get_errno()
raise OSError(err, os.strerror(err))
if ret == 0:
return None
return entry
libacl.acl_get_tag_type.argtypes = [acl_entry_t, ctypes.c_void_p]
def acl_get_tag_type(entry_d):
tag = acl_tag_t()
ret = libacl.acl_get_tag_type(entry_d, ctypes.byref(tag))
if ret < 0:
err = ctypes.get_errno()
raise OSError(err, os.strerror(err))
return tag.value
libacl.acl_get_qualifier.restype = ctypes.c_void_p
libacl.acl_get_qualifier.argtypes = [acl_entry_t]
def acl_get_qualifier(entry_d):
ret = libacl.acl_get_qualifier(entry_d)
if ret is None:
err = ctypes.get_errno()
raise OSError(err, os.strerror(err))
return ctypes.c_void_p(ret)
libacl.acl_get_permset.argtypes = [acl_entry_t, ctypes.c_void_p]
def acl_get_permset(entry_d):
permset = acl_permset_t()
ret = libacl.acl_get_permset(entry_d, ctypes.byref(permset))
if ret < 0:
err = ctypes.get_errno()
raise OSError(err, os.strerror(err))
return permset
libacl.acl_get_perm.argtypes = [acl_permset_t, acl_perm_t]
def acl_get_perm(permset_d, perm):
ret = libacl.acl_get_perm(permset_d, perm)
if ret < 0:
err = ctypes.get_errno()
raise OSError(err, os.strerror(err))
return bool(ret)
class Entry(object):
def __init__(self, tag, qualifier, mode):
self.tag = tag
self.qualifier = qualifier
self.mode = mode
def __str__(self):
typ = ""
qual = ""
if self.tag == ACL_USER:
typ = "user"
qual = pwd.getpwuid(self.qualifier).pw_name
elif self.tag == ACL_GROUP:
typ = "group"
qual = grp.getgrgid(self.qualifier).gr_name
elif self.tag == ACL_USER_OBJ:
typ = "user"
elif self.tag == ACL_GROUP_OBJ:
typ = "group"
elif self.tag == ACL_MASK:
typ = "mask"
elif self.tag == ACL_OTHER:
typ = "other"
r = "r" if self.mode & ACL_READ else "-"
w = "w" if self.mode & ACL_WRITE else "-"
x = "x" if self.mode & ACL_EXECUTE else "-"
return f"{typ}:{qual}:{r}{w}{x}"
class ACL(object):
def __init__(self, acl):
self.acl = acl
def __del__(self):
acl_free(self.acl)
def entries(self):
entry_id = ACL_FIRST_ENTRY
while True:
entry = acl_get_entry(self.acl, entry_id)
if entry is None:
break
permset = acl_get_permset(entry)
mode = 0
for m in (ACL_READ, ACL_WRITE, ACL_EXECUTE):
if acl_get_perm(permset, m):
mode |= m
qualifier = None
tag = acl_get_tag_type(entry)
if tag == ACL_USER or tag == ACL_GROUP:
qual = acl_get_qualifier(entry)
qualifier = ctypes.cast(qual, ctypes.POINTER(ctypes.c_int))[0]
yield Entry(tag, qualifier, mode)
entry_id = ACL_NEXT_ENTRY
@classmethod
def from_path(cls, path, typ):
acl = acl_get_file(path, typ)
return cls(acl)
def main():
import argparse
import pwd
import grp
from pathlib import Path
parser = argparse.ArgumentParser()
parser.add_argument("path", help="File Path", type=Path)
args = parser.parse_args()
acl = ACL.from_path(args.path, ACL_TYPE_ACCESS)
for entry in acl.entries():
print(str(entry))
return 0
if __name__ == "__main__":
sys.exit(main())

View File

@@ -1,16 +0,0 @@
#
# Copyright BitBake Contributors
#
# SPDX-License-Identifier: GPL-2.0-only
#
from .client import AsyncClient, Client
from .serv import AsyncServer, AsyncServerConnection
from .connection import DEFAULT_MAX_CHUNK
from .exceptions import (
ClientError,
ServerError,
ConnectionClosedError,
InvokeError,
)

View File

@@ -1,271 +0,0 @@
#
# Copyright BitBake Contributors
#
# SPDX-License-Identifier: GPL-2.0-only
#
import abc
import asyncio
import json
import os
import socket
import sys
import re
import contextlib
from threading import Thread
from .connection import StreamConnection, WebsocketConnection, DEFAULT_MAX_CHUNK
from .exceptions import ConnectionClosedError, InvokeError
UNIX_PREFIX = "unix://"
WS_PREFIX = "ws://"
WSS_PREFIX = "wss://"
ADDR_TYPE_UNIX = 0
ADDR_TYPE_TCP = 1
ADDR_TYPE_WS = 2
WEBSOCKETS_MIN_VERSION = (9, 1)
# Need websockets 10 with python 3.10+
if sys.version_info >= (3, 10, 0):
WEBSOCKETS_MIN_VERSION = (10, 0)
def parse_address(addr):
if addr.startswith(UNIX_PREFIX):
return (ADDR_TYPE_UNIX, (addr[len(UNIX_PREFIX) :],))
elif addr.startswith(WS_PREFIX) or addr.startswith(WSS_PREFIX):
return (ADDR_TYPE_WS, (addr,))
else:
m = re.match(r"\[(?P<host>[^\]]*)\]:(?P<port>\d+)$", addr)
if m is not None:
host = m.group("host")
port = m.group("port")
else:
host, port = addr.split(":")
return (ADDR_TYPE_TCP, (host, int(port)))
class AsyncClient(object):
def __init__(
self,
proto_name,
proto_version,
logger,
timeout=30,
server_headers=False,
headers={},
):
self.socket = None
self.max_chunk = DEFAULT_MAX_CHUNK
self.proto_name = proto_name
self.proto_version = proto_version
self.logger = logger
self.timeout = timeout
self.needs_server_headers = server_headers
self.server_headers = {}
self.headers = headers
async def connect_tcp(self, address, port):
async def connect_sock():
reader, writer = await asyncio.open_connection(address, port)
return StreamConnection(reader, writer, self.timeout, self.max_chunk)
self._connect_sock = connect_sock
async def connect_unix(self, path):
async def connect_sock():
# AF_UNIX has path length issues so chdir here to workaround
cwd = os.getcwd()
try:
os.chdir(os.path.dirname(path))
# The socket must be opened synchronously so that CWD doesn't get
# changed out from underneath us so we pass as a sock into asyncio
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM, 0)
sock.connect(os.path.basename(path))
finally:
os.chdir(cwd)
reader, writer = await asyncio.open_unix_connection(sock=sock)
return StreamConnection(reader, writer, self.timeout, self.max_chunk)
self._connect_sock = connect_sock
async def connect_websocket(self, uri):
import websockets
try:
version = tuple(
int(v)
for v in websockets.__version__.split(".")[
0 : len(WEBSOCKETS_MIN_VERSION)
]
)
except ValueError:
raise ImportError(
f"Unable to parse websockets version '{websockets.__version__}'"
)
if version < WEBSOCKETS_MIN_VERSION:
min_ver_str = ".".join(str(v) for v in WEBSOCKETS_MIN_VERSION)
raise ImportError(
f"Websockets version {websockets.__version__} is less than minimum required version {min_ver_str}"
)
async def connect_sock():
try:
websocket = await websockets.connect(
uri,
ping_interval=None,
open_timeout=self.timeout,
)
except asyncio.exceptions.TimeoutError:
raise ConnectionError("Timeout while connecting to websocket")
except (OSError, websockets.InvalidHandshake, websockets.InvalidURI) as exc:
raise ConnectionError(f"Could not connect to websocket: {exc}") from exc
return WebsocketConnection(websocket, self.timeout)
self._connect_sock = connect_sock
async def setup_connection(self):
# Send headers
await self.socket.send("%s %s" % (self.proto_name, self.proto_version))
await self.socket.send(
"needs-headers: %s" % ("true" if self.needs_server_headers else "false")
)
for k, v in self.headers.items():
await self.socket.send("%s: %s" % (k, v))
# End of headers
await self.socket.send("")
self.server_headers = {}
if self.needs_server_headers:
while True:
line = await self.socket.recv()
if not line:
# End headers
break
tag, value = line.split(":", 1)
self.server_headers[tag.lower()] = value.strip()
async def get_header(self, tag, default):
await self.connect()
return self.server_headers.get(tag, default)
async def connect(self):
if self.socket is None:
self.socket = await self._connect_sock()
await self.setup_connection()
async def disconnect(self):
if self.socket is not None:
await self.socket.close()
self.socket = None
async def close(self):
await self.disconnect()
async def _send_wrapper(self, proc):
count = 0
while True:
try:
await self.connect()
return await proc()
except (
OSError,
ConnectionError,
ConnectionClosedError,
json.JSONDecodeError,
UnicodeDecodeError,
) as e:
self.logger.warning("Error talking to server: %s" % e)
if count >= 3:
if not isinstance(e, ConnectionError):
raise ConnectionError(str(e))
raise e
await self.close()
count += 1
def check_invoke_error(self, msg):
if isinstance(msg, dict) and "invoke-error" in msg:
raise InvokeError(msg["invoke-error"]["message"])
async def invoke(self, msg):
async def proc():
await self.socket.send_message(msg)
return await self.socket.recv_message()
result = await self._send_wrapper(proc)
self.check_invoke_error(result)
return result
async def ping(self):
return await self.invoke({"ping": {}})
async def __aenter__(self):
return self
async def __aexit__(self, exc_type, exc_value, traceback):
await self.close()
class Client(object):
def __init__(self):
self.client = self._get_async_client()
self.loop = asyncio.new_event_loop()
# Override any pre-existing loop.
# Without this, the PR server export selftest triggers a hang
# when running with Python 3.7. The drawback is that there is
# potential for issues if the PR and hash equiv (or some new)
# clients need to both be instantiated in the same process.
# This should be revisited if/when Python 3.9 becomes the
# minimum required version for BitBake, as it seems not
# required (but harmless) with it.
asyncio.set_event_loop(self.loop)
self._add_methods("connect_tcp", "ping")
@abc.abstractmethod
def _get_async_client(self):
pass
def _get_downcall_wrapper(self, downcall):
def wrapper(*args, **kwargs):
return self.loop.run_until_complete(downcall(*args, **kwargs))
return wrapper
def _add_methods(self, *methods):
for m in methods:
downcall = getattr(self.client, m)
setattr(self, m, self._get_downcall_wrapper(downcall))
def connect_unix(self, path):
self.loop.run_until_complete(self.client.connect_unix(path))
self.loop.run_until_complete(self.client.connect())
@property
def max_chunk(self):
return self.client.max_chunk
@max_chunk.setter
def max_chunk(self, value):
self.client.max_chunk = value
def disconnect(self):
self.loop.run_until_complete(self.client.close())
def close(self):
if self.loop:
self.loop.run_until_complete(self.client.close())
self.loop.run_until_complete(self.loop.shutdown_asyncgens())
self.loop.close()
self.loop = None
def __enter__(self):
return self
def __exit__(self, exc_type, exc_value, traceback):
self.close()
return False

View File

@@ -1,146 +0,0 @@
#
# Copyright BitBake Contributors
#
# SPDX-License-Identifier: GPL-2.0-only
#
import asyncio
import itertools
import json
from datetime import datetime
from .exceptions import ClientError, ConnectionClosedError
# The Python async server defaults to a 64K receive buffer, so we hardcode our
# maximum chunk size. It would be better if the client and server reported to
# each other what the maximum chunk sizes were, but that will slow down the
# connection setup with a round trip delay so I'd rather not do that unless it
# is necessary
DEFAULT_MAX_CHUNK = 32 * 1024
def chunkify(msg, max_chunk):
if len(msg) < max_chunk - 1:
yield "".join((msg, "\n"))
else:
yield "".join((json.dumps({"chunk-stream": None}), "\n"))
args = [iter(msg)] * (max_chunk - 1)
for m in map("".join, itertools.zip_longest(*args, fillvalue="")):
yield "".join(itertools.chain(m, "\n"))
yield "\n"
def json_serialize(obj):
if isinstance(obj, datetime):
return obj.isoformat()
raise TypeError("Type %s not serializeable" % type(obj))
class StreamConnection(object):
def __init__(self, reader, writer, timeout, max_chunk=DEFAULT_MAX_CHUNK):
self.reader = reader
self.writer = writer
self.timeout = timeout
self.max_chunk = max_chunk
@property
def address(self):
return self.writer.get_extra_info("peername")
async def send_message(self, msg):
for c in chunkify(json.dumps(msg, default=json_serialize), self.max_chunk):
self.writer.write(c.encode("utf-8"))
await self.writer.drain()
async def recv_message(self):
l = await self.recv()
m = json.loads(l)
if not m:
return m
if "chunk-stream" in m:
lines = []
while True:
l = await self.recv()
if not l:
break
lines.append(l)
m = json.loads("".join(lines))
return m
async def send(self, msg):
self.writer.write(("%s\n" % msg).encode("utf-8"))
await self.writer.drain()
async def recv(self):
if self.timeout < 0:
line = await self.reader.readline()
else:
try:
line = await asyncio.wait_for(self.reader.readline(), self.timeout)
except asyncio.TimeoutError:
raise ConnectionError("Timed out waiting for data")
if not line:
raise ConnectionClosedError("Connection closed")
line = line.decode("utf-8")
if not line.endswith("\n"):
raise ConnectionError("Bad message %r" % (line))
return line.rstrip()
async def close(self):
self.reader = None
if self.writer is not None:
self.writer.close()
self.writer = None
class WebsocketConnection(object):
def __init__(self, socket, timeout):
self.socket = socket
self.timeout = timeout
@property
def address(self):
return ":".join(str(s) for s in self.socket.remote_address)
async def send_message(self, msg):
await self.send(json.dumps(msg, default=json_serialize))
async def recv_message(self):
m = await self.recv()
return json.loads(m)
async def send(self, msg):
import websockets.exceptions
try:
await self.socket.send(msg)
except websockets.exceptions.ConnectionClosed:
raise ConnectionClosedError("Connection closed")
async def recv(self):
import websockets.exceptions
try:
if self.timeout < 0:
return await self.socket.recv()
try:
return await asyncio.wait_for(self.socket.recv(), self.timeout)
except asyncio.TimeoutError:
raise ConnectionError("Timed out waiting for data")
except websockets.exceptions.ConnectionClosed:
raise ConnectionClosedError("Connection closed")
async def close(self):
if self.socket is not None:
await self.socket.close()
self.socket = None

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